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 compute provides access to the Compute Engine API.
8//
9// For product documentation, see: https://developers.google.com/compute/docs/reference/latest/
10//
11// Creating a client
12//
13// Usage example:
14//
15//   import "google.golang.org/api/compute/v0.beta"
16//   ...
17//   ctx := context.Background()
18//   computeService, err := compute.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//   computeService, err := compute.NewService(ctx, option.WithScopes(compute.DevstorageReadWriteScope))
29//
30// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
31//
32//   computeService, err := compute.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//   computeService, err := compute.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
40//
41// See https://godoc.org/google.golang.org/api/option/ for details on options.
42package compute // import "google.golang.org/api/compute/v0.beta"
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 = "compute:beta"
79const apiName = "compute"
80const apiVersion = "beta"
81const basePath = "https://compute.googleapis.com/compute/beta/"
82const mtlsBasePath = "https://compute.mtls.googleapis.com/compute/beta/"
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	// View and manage your Google Compute Engine resources
90	ComputeScope = "https://www.googleapis.com/auth/compute"
91
92	// View your Google Compute Engine resources
93	ComputeReadonlyScope = "https://www.googleapis.com/auth/compute.readonly"
94
95	// Manage your data and permissions in Google Cloud Storage
96	DevstorageFullControlScope = "https://www.googleapis.com/auth/devstorage.full_control"
97
98	// View your data in Google Cloud Storage
99	DevstorageReadOnlyScope = "https://www.googleapis.com/auth/devstorage.read_only"
100
101	// Manage your data in Google Cloud Storage
102	DevstorageReadWriteScope = "https://www.googleapis.com/auth/devstorage.read_write"
103)
104
105// NewService creates a new Service.
106func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
107	scopesOption := option.WithScopes(
108		"https://www.googleapis.com/auth/cloud-platform",
109		"https://www.googleapis.com/auth/compute",
110		"https://www.googleapis.com/auth/compute.readonly",
111		"https://www.googleapis.com/auth/devstorage.full_control",
112		"https://www.googleapis.com/auth/devstorage.read_only",
113		"https://www.googleapis.com/auth/devstorage.read_write",
114	)
115	// NOTE: prepend, so we don't override user-specified scopes.
116	opts = append([]option.ClientOption{scopesOption}, opts...)
117	opts = append(opts, internaloption.WithDefaultEndpoint(basePath))
118	opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath))
119	client, endpoint, err := htransport.NewClient(ctx, opts...)
120	if err != nil {
121		return nil, err
122	}
123	s, err := New(client)
124	if err != nil {
125		return nil, err
126	}
127	if endpoint != "" {
128		s.BasePath = endpoint
129	}
130	return s, nil
131}
132
133// New creates a new Service. It uses the provided http.Client for requests.
134//
135// Deprecated: please use NewService instead.
136// To provide a custom HTTP client, use option.WithHTTPClient.
137// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
138func New(client *http.Client) (*Service, error) {
139	if client == nil {
140		return nil, errors.New("client is nil")
141	}
142	s := &Service{client: client, BasePath: basePath}
143	s.AcceleratorTypes = NewAcceleratorTypesService(s)
144	s.Addresses = NewAddressesService(s)
145	s.Autoscalers = NewAutoscalersService(s)
146	s.BackendBuckets = NewBackendBucketsService(s)
147	s.BackendServices = NewBackendServicesService(s)
148	s.DiskTypes = NewDiskTypesService(s)
149	s.Disks = NewDisksService(s)
150	s.ExternalVpnGateways = NewExternalVpnGatewaysService(s)
151	s.FirewallPolicies = NewFirewallPoliciesService(s)
152	s.Firewalls = NewFirewallsService(s)
153	s.ForwardingRules = NewForwardingRulesService(s)
154	s.GlobalAddresses = NewGlobalAddressesService(s)
155	s.GlobalForwardingRules = NewGlobalForwardingRulesService(s)
156	s.GlobalNetworkEndpointGroups = NewGlobalNetworkEndpointGroupsService(s)
157	s.GlobalOperations = NewGlobalOperationsService(s)
158	s.GlobalOrganizationOperations = NewGlobalOrganizationOperationsService(s)
159	s.GlobalPublicDelegatedPrefixes = NewGlobalPublicDelegatedPrefixesService(s)
160	s.HealthChecks = NewHealthChecksService(s)
161	s.HttpHealthChecks = NewHttpHealthChecksService(s)
162	s.HttpsHealthChecks = NewHttpsHealthChecksService(s)
163	s.Images = NewImagesService(s)
164	s.InstanceGroupManagers = NewInstanceGroupManagersService(s)
165	s.InstanceGroups = NewInstanceGroupsService(s)
166	s.InstanceTemplates = NewInstanceTemplatesService(s)
167	s.Instances = NewInstancesService(s)
168	s.InterconnectAttachments = NewInterconnectAttachmentsService(s)
169	s.InterconnectLocations = NewInterconnectLocationsService(s)
170	s.Interconnects = NewInterconnectsService(s)
171	s.LicenseCodes = NewLicenseCodesService(s)
172	s.Licenses = NewLicensesService(s)
173	s.MachineImages = NewMachineImagesService(s)
174	s.MachineTypes = NewMachineTypesService(s)
175	s.NetworkEndpointGroups = NewNetworkEndpointGroupsService(s)
176	s.Networks = NewNetworksService(s)
177	s.NodeGroups = NewNodeGroupsService(s)
178	s.NodeTemplates = NewNodeTemplatesService(s)
179	s.NodeTypes = NewNodeTypesService(s)
180	s.OrganizationSecurityPolicies = NewOrganizationSecurityPoliciesService(s)
181	s.PacketMirrorings = NewPacketMirroringsService(s)
182	s.Projects = NewProjectsService(s)
183	s.PublicAdvertisedPrefixes = NewPublicAdvertisedPrefixesService(s)
184	s.PublicDelegatedPrefixes = NewPublicDelegatedPrefixesService(s)
185	s.RegionAutoscalers = NewRegionAutoscalersService(s)
186	s.RegionBackendServices = NewRegionBackendServicesService(s)
187	s.RegionCommitments = NewRegionCommitmentsService(s)
188	s.RegionDiskTypes = NewRegionDiskTypesService(s)
189	s.RegionDisks = NewRegionDisksService(s)
190	s.RegionHealthCheckServices = NewRegionHealthCheckServicesService(s)
191	s.RegionHealthChecks = NewRegionHealthChecksService(s)
192	s.RegionInstanceGroupManagers = NewRegionInstanceGroupManagersService(s)
193	s.RegionInstanceGroups = NewRegionInstanceGroupsService(s)
194	s.RegionInstances = NewRegionInstancesService(s)
195	s.RegionNetworkEndpointGroups = NewRegionNetworkEndpointGroupsService(s)
196	s.RegionNotificationEndpoints = NewRegionNotificationEndpointsService(s)
197	s.RegionOperations = NewRegionOperationsService(s)
198	s.RegionSslCertificates = NewRegionSslCertificatesService(s)
199	s.RegionTargetHttpProxies = NewRegionTargetHttpProxiesService(s)
200	s.RegionTargetHttpsProxies = NewRegionTargetHttpsProxiesService(s)
201	s.RegionUrlMaps = NewRegionUrlMapsService(s)
202	s.Regions = NewRegionsService(s)
203	s.Reservations = NewReservationsService(s)
204	s.ResourcePolicies = NewResourcePoliciesService(s)
205	s.Routers = NewRoutersService(s)
206	s.Routes = NewRoutesService(s)
207	s.SecurityPolicies = NewSecurityPoliciesService(s)
208	s.ServiceAttachments = NewServiceAttachmentsService(s)
209	s.Snapshots = NewSnapshotsService(s)
210	s.SslCertificates = NewSslCertificatesService(s)
211	s.SslPolicies = NewSslPoliciesService(s)
212	s.Subnetworks = NewSubnetworksService(s)
213	s.TargetGrpcProxies = NewTargetGrpcProxiesService(s)
214	s.TargetHttpProxies = NewTargetHttpProxiesService(s)
215	s.TargetHttpsProxies = NewTargetHttpsProxiesService(s)
216	s.TargetInstances = NewTargetInstancesService(s)
217	s.TargetPools = NewTargetPoolsService(s)
218	s.TargetSslProxies = NewTargetSslProxiesService(s)
219	s.TargetTcpProxies = NewTargetTcpProxiesService(s)
220	s.TargetVpnGateways = NewTargetVpnGatewaysService(s)
221	s.UrlMaps = NewUrlMapsService(s)
222	s.VpnGateways = NewVpnGatewaysService(s)
223	s.VpnTunnels = NewVpnTunnelsService(s)
224	s.ZoneOperations = NewZoneOperationsService(s)
225	s.Zones = NewZonesService(s)
226	return s, nil
227}
228
229type Service struct {
230	client    *http.Client
231	BasePath  string // API endpoint base URL
232	UserAgent string // optional additional User-Agent fragment
233
234	AcceleratorTypes *AcceleratorTypesService
235
236	Addresses *AddressesService
237
238	Autoscalers *AutoscalersService
239
240	BackendBuckets *BackendBucketsService
241
242	BackendServices *BackendServicesService
243
244	DiskTypes *DiskTypesService
245
246	Disks *DisksService
247
248	ExternalVpnGateways *ExternalVpnGatewaysService
249
250	FirewallPolicies *FirewallPoliciesService
251
252	Firewalls *FirewallsService
253
254	ForwardingRules *ForwardingRulesService
255
256	GlobalAddresses *GlobalAddressesService
257
258	GlobalForwardingRules *GlobalForwardingRulesService
259
260	GlobalNetworkEndpointGroups *GlobalNetworkEndpointGroupsService
261
262	GlobalOperations *GlobalOperationsService
263
264	GlobalOrganizationOperations *GlobalOrganizationOperationsService
265
266	GlobalPublicDelegatedPrefixes *GlobalPublicDelegatedPrefixesService
267
268	HealthChecks *HealthChecksService
269
270	HttpHealthChecks *HttpHealthChecksService
271
272	HttpsHealthChecks *HttpsHealthChecksService
273
274	Images *ImagesService
275
276	InstanceGroupManagers *InstanceGroupManagersService
277
278	InstanceGroups *InstanceGroupsService
279
280	InstanceTemplates *InstanceTemplatesService
281
282	Instances *InstancesService
283
284	InterconnectAttachments *InterconnectAttachmentsService
285
286	InterconnectLocations *InterconnectLocationsService
287
288	Interconnects *InterconnectsService
289
290	LicenseCodes *LicenseCodesService
291
292	Licenses *LicensesService
293
294	MachineImages *MachineImagesService
295
296	MachineTypes *MachineTypesService
297
298	NetworkEndpointGroups *NetworkEndpointGroupsService
299
300	Networks *NetworksService
301
302	NodeGroups *NodeGroupsService
303
304	NodeTemplates *NodeTemplatesService
305
306	NodeTypes *NodeTypesService
307
308	OrganizationSecurityPolicies *OrganizationSecurityPoliciesService
309
310	PacketMirrorings *PacketMirroringsService
311
312	Projects *ProjectsService
313
314	PublicAdvertisedPrefixes *PublicAdvertisedPrefixesService
315
316	PublicDelegatedPrefixes *PublicDelegatedPrefixesService
317
318	RegionAutoscalers *RegionAutoscalersService
319
320	RegionBackendServices *RegionBackendServicesService
321
322	RegionCommitments *RegionCommitmentsService
323
324	RegionDiskTypes *RegionDiskTypesService
325
326	RegionDisks *RegionDisksService
327
328	RegionHealthCheckServices *RegionHealthCheckServicesService
329
330	RegionHealthChecks *RegionHealthChecksService
331
332	RegionInstanceGroupManagers *RegionInstanceGroupManagersService
333
334	RegionInstanceGroups *RegionInstanceGroupsService
335
336	RegionInstances *RegionInstancesService
337
338	RegionNetworkEndpointGroups *RegionNetworkEndpointGroupsService
339
340	RegionNotificationEndpoints *RegionNotificationEndpointsService
341
342	RegionOperations *RegionOperationsService
343
344	RegionSslCertificates *RegionSslCertificatesService
345
346	RegionTargetHttpProxies *RegionTargetHttpProxiesService
347
348	RegionTargetHttpsProxies *RegionTargetHttpsProxiesService
349
350	RegionUrlMaps *RegionUrlMapsService
351
352	Regions *RegionsService
353
354	Reservations *ReservationsService
355
356	ResourcePolicies *ResourcePoliciesService
357
358	Routers *RoutersService
359
360	Routes *RoutesService
361
362	SecurityPolicies *SecurityPoliciesService
363
364	ServiceAttachments *ServiceAttachmentsService
365
366	Snapshots *SnapshotsService
367
368	SslCertificates *SslCertificatesService
369
370	SslPolicies *SslPoliciesService
371
372	Subnetworks *SubnetworksService
373
374	TargetGrpcProxies *TargetGrpcProxiesService
375
376	TargetHttpProxies *TargetHttpProxiesService
377
378	TargetHttpsProxies *TargetHttpsProxiesService
379
380	TargetInstances *TargetInstancesService
381
382	TargetPools *TargetPoolsService
383
384	TargetSslProxies *TargetSslProxiesService
385
386	TargetTcpProxies *TargetTcpProxiesService
387
388	TargetVpnGateways *TargetVpnGatewaysService
389
390	UrlMaps *UrlMapsService
391
392	VpnGateways *VpnGatewaysService
393
394	VpnTunnels *VpnTunnelsService
395
396	ZoneOperations *ZoneOperationsService
397
398	Zones *ZonesService
399}
400
401func (s *Service) userAgent() string {
402	if s.UserAgent == "" {
403		return googleapi.UserAgent
404	}
405	return googleapi.UserAgent + " " + s.UserAgent
406}
407
408func NewAcceleratorTypesService(s *Service) *AcceleratorTypesService {
409	rs := &AcceleratorTypesService{s: s}
410	return rs
411}
412
413type AcceleratorTypesService struct {
414	s *Service
415}
416
417func NewAddressesService(s *Service) *AddressesService {
418	rs := &AddressesService{s: s}
419	return rs
420}
421
422type AddressesService struct {
423	s *Service
424}
425
426func NewAutoscalersService(s *Service) *AutoscalersService {
427	rs := &AutoscalersService{s: s}
428	return rs
429}
430
431type AutoscalersService struct {
432	s *Service
433}
434
435func NewBackendBucketsService(s *Service) *BackendBucketsService {
436	rs := &BackendBucketsService{s: s}
437	return rs
438}
439
440type BackendBucketsService struct {
441	s *Service
442}
443
444func NewBackendServicesService(s *Service) *BackendServicesService {
445	rs := &BackendServicesService{s: s}
446	return rs
447}
448
449type BackendServicesService struct {
450	s *Service
451}
452
453func NewDiskTypesService(s *Service) *DiskTypesService {
454	rs := &DiskTypesService{s: s}
455	return rs
456}
457
458type DiskTypesService struct {
459	s *Service
460}
461
462func NewDisksService(s *Service) *DisksService {
463	rs := &DisksService{s: s}
464	return rs
465}
466
467type DisksService struct {
468	s *Service
469}
470
471func NewExternalVpnGatewaysService(s *Service) *ExternalVpnGatewaysService {
472	rs := &ExternalVpnGatewaysService{s: s}
473	return rs
474}
475
476type ExternalVpnGatewaysService struct {
477	s *Service
478}
479
480func NewFirewallPoliciesService(s *Service) *FirewallPoliciesService {
481	rs := &FirewallPoliciesService{s: s}
482	return rs
483}
484
485type FirewallPoliciesService struct {
486	s *Service
487}
488
489func NewFirewallsService(s *Service) *FirewallsService {
490	rs := &FirewallsService{s: s}
491	return rs
492}
493
494type FirewallsService struct {
495	s *Service
496}
497
498func NewForwardingRulesService(s *Service) *ForwardingRulesService {
499	rs := &ForwardingRulesService{s: s}
500	return rs
501}
502
503type ForwardingRulesService struct {
504	s *Service
505}
506
507func NewGlobalAddressesService(s *Service) *GlobalAddressesService {
508	rs := &GlobalAddressesService{s: s}
509	return rs
510}
511
512type GlobalAddressesService struct {
513	s *Service
514}
515
516func NewGlobalForwardingRulesService(s *Service) *GlobalForwardingRulesService {
517	rs := &GlobalForwardingRulesService{s: s}
518	return rs
519}
520
521type GlobalForwardingRulesService struct {
522	s *Service
523}
524
525func NewGlobalNetworkEndpointGroupsService(s *Service) *GlobalNetworkEndpointGroupsService {
526	rs := &GlobalNetworkEndpointGroupsService{s: s}
527	return rs
528}
529
530type GlobalNetworkEndpointGroupsService struct {
531	s *Service
532}
533
534func NewGlobalOperationsService(s *Service) *GlobalOperationsService {
535	rs := &GlobalOperationsService{s: s}
536	return rs
537}
538
539type GlobalOperationsService struct {
540	s *Service
541}
542
543func NewGlobalOrganizationOperationsService(s *Service) *GlobalOrganizationOperationsService {
544	rs := &GlobalOrganizationOperationsService{s: s}
545	return rs
546}
547
548type GlobalOrganizationOperationsService struct {
549	s *Service
550}
551
552func NewGlobalPublicDelegatedPrefixesService(s *Service) *GlobalPublicDelegatedPrefixesService {
553	rs := &GlobalPublicDelegatedPrefixesService{s: s}
554	return rs
555}
556
557type GlobalPublicDelegatedPrefixesService struct {
558	s *Service
559}
560
561func NewHealthChecksService(s *Service) *HealthChecksService {
562	rs := &HealthChecksService{s: s}
563	return rs
564}
565
566type HealthChecksService struct {
567	s *Service
568}
569
570func NewHttpHealthChecksService(s *Service) *HttpHealthChecksService {
571	rs := &HttpHealthChecksService{s: s}
572	return rs
573}
574
575type HttpHealthChecksService struct {
576	s *Service
577}
578
579func NewHttpsHealthChecksService(s *Service) *HttpsHealthChecksService {
580	rs := &HttpsHealthChecksService{s: s}
581	return rs
582}
583
584type HttpsHealthChecksService struct {
585	s *Service
586}
587
588func NewImagesService(s *Service) *ImagesService {
589	rs := &ImagesService{s: s}
590	return rs
591}
592
593type ImagesService struct {
594	s *Service
595}
596
597func NewInstanceGroupManagersService(s *Service) *InstanceGroupManagersService {
598	rs := &InstanceGroupManagersService{s: s}
599	return rs
600}
601
602type InstanceGroupManagersService struct {
603	s *Service
604}
605
606func NewInstanceGroupsService(s *Service) *InstanceGroupsService {
607	rs := &InstanceGroupsService{s: s}
608	return rs
609}
610
611type InstanceGroupsService struct {
612	s *Service
613}
614
615func NewInstanceTemplatesService(s *Service) *InstanceTemplatesService {
616	rs := &InstanceTemplatesService{s: s}
617	return rs
618}
619
620type InstanceTemplatesService struct {
621	s *Service
622}
623
624func NewInstancesService(s *Service) *InstancesService {
625	rs := &InstancesService{s: s}
626	return rs
627}
628
629type InstancesService struct {
630	s *Service
631}
632
633func NewInterconnectAttachmentsService(s *Service) *InterconnectAttachmentsService {
634	rs := &InterconnectAttachmentsService{s: s}
635	return rs
636}
637
638type InterconnectAttachmentsService struct {
639	s *Service
640}
641
642func NewInterconnectLocationsService(s *Service) *InterconnectLocationsService {
643	rs := &InterconnectLocationsService{s: s}
644	return rs
645}
646
647type InterconnectLocationsService struct {
648	s *Service
649}
650
651func NewInterconnectsService(s *Service) *InterconnectsService {
652	rs := &InterconnectsService{s: s}
653	return rs
654}
655
656type InterconnectsService struct {
657	s *Service
658}
659
660func NewLicenseCodesService(s *Service) *LicenseCodesService {
661	rs := &LicenseCodesService{s: s}
662	return rs
663}
664
665type LicenseCodesService struct {
666	s *Service
667}
668
669func NewLicensesService(s *Service) *LicensesService {
670	rs := &LicensesService{s: s}
671	return rs
672}
673
674type LicensesService struct {
675	s *Service
676}
677
678func NewMachineImagesService(s *Service) *MachineImagesService {
679	rs := &MachineImagesService{s: s}
680	return rs
681}
682
683type MachineImagesService struct {
684	s *Service
685}
686
687func NewMachineTypesService(s *Service) *MachineTypesService {
688	rs := &MachineTypesService{s: s}
689	return rs
690}
691
692type MachineTypesService struct {
693	s *Service
694}
695
696func NewNetworkEndpointGroupsService(s *Service) *NetworkEndpointGroupsService {
697	rs := &NetworkEndpointGroupsService{s: s}
698	return rs
699}
700
701type NetworkEndpointGroupsService struct {
702	s *Service
703}
704
705func NewNetworksService(s *Service) *NetworksService {
706	rs := &NetworksService{s: s}
707	return rs
708}
709
710type NetworksService struct {
711	s *Service
712}
713
714func NewNodeGroupsService(s *Service) *NodeGroupsService {
715	rs := &NodeGroupsService{s: s}
716	return rs
717}
718
719type NodeGroupsService struct {
720	s *Service
721}
722
723func NewNodeTemplatesService(s *Service) *NodeTemplatesService {
724	rs := &NodeTemplatesService{s: s}
725	return rs
726}
727
728type NodeTemplatesService struct {
729	s *Service
730}
731
732func NewNodeTypesService(s *Service) *NodeTypesService {
733	rs := &NodeTypesService{s: s}
734	return rs
735}
736
737type NodeTypesService struct {
738	s *Service
739}
740
741func NewOrganizationSecurityPoliciesService(s *Service) *OrganizationSecurityPoliciesService {
742	rs := &OrganizationSecurityPoliciesService{s: s}
743	return rs
744}
745
746type OrganizationSecurityPoliciesService struct {
747	s *Service
748}
749
750func NewPacketMirroringsService(s *Service) *PacketMirroringsService {
751	rs := &PacketMirroringsService{s: s}
752	return rs
753}
754
755type PacketMirroringsService struct {
756	s *Service
757}
758
759func NewProjectsService(s *Service) *ProjectsService {
760	rs := &ProjectsService{s: s}
761	return rs
762}
763
764type ProjectsService struct {
765	s *Service
766}
767
768func NewPublicAdvertisedPrefixesService(s *Service) *PublicAdvertisedPrefixesService {
769	rs := &PublicAdvertisedPrefixesService{s: s}
770	return rs
771}
772
773type PublicAdvertisedPrefixesService struct {
774	s *Service
775}
776
777func NewPublicDelegatedPrefixesService(s *Service) *PublicDelegatedPrefixesService {
778	rs := &PublicDelegatedPrefixesService{s: s}
779	return rs
780}
781
782type PublicDelegatedPrefixesService struct {
783	s *Service
784}
785
786func NewRegionAutoscalersService(s *Service) *RegionAutoscalersService {
787	rs := &RegionAutoscalersService{s: s}
788	return rs
789}
790
791type RegionAutoscalersService struct {
792	s *Service
793}
794
795func NewRegionBackendServicesService(s *Service) *RegionBackendServicesService {
796	rs := &RegionBackendServicesService{s: s}
797	return rs
798}
799
800type RegionBackendServicesService struct {
801	s *Service
802}
803
804func NewRegionCommitmentsService(s *Service) *RegionCommitmentsService {
805	rs := &RegionCommitmentsService{s: s}
806	return rs
807}
808
809type RegionCommitmentsService struct {
810	s *Service
811}
812
813func NewRegionDiskTypesService(s *Service) *RegionDiskTypesService {
814	rs := &RegionDiskTypesService{s: s}
815	return rs
816}
817
818type RegionDiskTypesService struct {
819	s *Service
820}
821
822func NewRegionDisksService(s *Service) *RegionDisksService {
823	rs := &RegionDisksService{s: s}
824	return rs
825}
826
827type RegionDisksService struct {
828	s *Service
829}
830
831func NewRegionHealthCheckServicesService(s *Service) *RegionHealthCheckServicesService {
832	rs := &RegionHealthCheckServicesService{s: s}
833	return rs
834}
835
836type RegionHealthCheckServicesService struct {
837	s *Service
838}
839
840func NewRegionHealthChecksService(s *Service) *RegionHealthChecksService {
841	rs := &RegionHealthChecksService{s: s}
842	return rs
843}
844
845type RegionHealthChecksService struct {
846	s *Service
847}
848
849func NewRegionInstanceGroupManagersService(s *Service) *RegionInstanceGroupManagersService {
850	rs := &RegionInstanceGroupManagersService{s: s}
851	return rs
852}
853
854type RegionInstanceGroupManagersService struct {
855	s *Service
856}
857
858func NewRegionInstanceGroupsService(s *Service) *RegionInstanceGroupsService {
859	rs := &RegionInstanceGroupsService{s: s}
860	return rs
861}
862
863type RegionInstanceGroupsService struct {
864	s *Service
865}
866
867func NewRegionInstancesService(s *Service) *RegionInstancesService {
868	rs := &RegionInstancesService{s: s}
869	return rs
870}
871
872type RegionInstancesService struct {
873	s *Service
874}
875
876func NewRegionNetworkEndpointGroupsService(s *Service) *RegionNetworkEndpointGroupsService {
877	rs := &RegionNetworkEndpointGroupsService{s: s}
878	return rs
879}
880
881type RegionNetworkEndpointGroupsService struct {
882	s *Service
883}
884
885func NewRegionNotificationEndpointsService(s *Service) *RegionNotificationEndpointsService {
886	rs := &RegionNotificationEndpointsService{s: s}
887	return rs
888}
889
890type RegionNotificationEndpointsService struct {
891	s *Service
892}
893
894func NewRegionOperationsService(s *Service) *RegionOperationsService {
895	rs := &RegionOperationsService{s: s}
896	return rs
897}
898
899type RegionOperationsService struct {
900	s *Service
901}
902
903func NewRegionSslCertificatesService(s *Service) *RegionSslCertificatesService {
904	rs := &RegionSslCertificatesService{s: s}
905	return rs
906}
907
908type RegionSslCertificatesService struct {
909	s *Service
910}
911
912func NewRegionTargetHttpProxiesService(s *Service) *RegionTargetHttpProxiesService {
913	rs := &RegionTargetHttpProxiesService{s: s}
914	return rs
915}
916
917type RegionTargetHttpProxiesService struct {
918	s *Service
919}
920
921func NewRegionTargetHttpsProxiesService(s *Service) *RegionTargetHttpsProxiesService {
922	rs := &RegionTargetHttpsProxiesService{s: s}
923	return rs
924}
925
926type RegionTargetHttpsProxiesService struct {
927	s *Service
928}
929
930func NewRegionUrlMapsService(s *Service) *RegionUrlMapsService {
931	rs := &RegionUrlMapsService{s: s}
932	return rs
933}
934
935type RegionUrlMapsService struct {
936	s *Service
937}
938
939func NewRegionsService(s *Service) *RegionsService {
940	rs := &RegionsService{s: s}
941	return rs
942}
943
944type RegionsService struct {
945	s *Service
946}
947
948func NewReservationsService(s *Service) *ReservationsService {
949	rs := &ReservationsService{s: s}
950	return rs
951}
952
953type ReservationsService struct {
954	s *Service
955}
956
957func NewResourcePoliciesService(s *Service) *ResourcePoliciesService {
958	rs := &ResourcePoliciesService{s: s}
959	return rs
960}
961
962type ResourcePoliciesService struct {
963	s *Service
964}
965
966func NewRoutersService(s *Service) *RoutersService {
967	rs := &RoutersService{s: s}
968	return rs
969}
970
971type RoutersService struct {
972	s *Service
973}
974
975func NewRoutesService(s *Service) *RoutesService {
976	rs := &RoutesService{s: s}
977	return rs
978}
979
980type RoutesService struct {
981	s *Service
982}
983
984func NewSecurityPoliciesService(s *Service) *SecurityPoliciesService {
985	rs := &SecurityPoliciesService{s: s}
986	return rs
987}
988
989type SecurityPoliciesService struct {
990	s *Service
991}
992
993func NewServiceAttachmentsService(s *Service) *ServiceAttachmentsService {
994	rs := &ServiceAttachmentsService{s: s}
995	return rs
996}
997
998type ServiceAttachmentsService struct {
999	s *Service
1000}
1001
1002func NewSnapshotsService(s *Service) *SnapshotsService {
1003	rs := &SnapshotsService{s: s}
1004	return rs
1005}
1006
1007type SnapshotsService struct {
1008	s *Service
1009}
1010
1011func NewSslCertificatesService(s *Service) *SslCertificatesService {
1012	rs := &SslCertificatesService{s: s}
1013	return rs
1014}
1015
1016type SslCertificatesService struct {
1017	s *Service
1018}
1019
1020func NewSslPoliciesService(s *Service) *SslPoliciesService {
1021	rs := &SslPoliciesService{s: s}
1022	return rs
1023}
1024
1025type SslPoliciesService struct {
1026	s *Service
1027}
1028
1029func NewSubnetworksService(s *Service) *SubnetworksService {
1030	rs := &SubnetworksService{s: s}
1031	return rs
1032}
1033
1034type SubnetworksService struct {
1035	s *Service
1036}
1037
1038func NewTargetGrpcProxiesService(s *Service) *TargetGrpcProxiesService {
1039	rs := &TargetGrpcProxiesService{s: s}
1040	return rs
1041}
1042
1043type TargetGrpcProxiesService struct {
1044	s *Service
1045}
1046
1047func NewTargetHttpProxiesService(s *Service) *TargetHttpProxiesService {
1048	rs := &TargetHttpProxiesService{s: s}
1049	return rs
1050}
1051
1052type TargetHttpProxiesService struct {
1053	s *Service
1054}
1055
1056func NewTargetHttpsProxiesService(s *Service) *TargetHttpsProxiesService {
1057	rs := &TargetHttpsProxiesService{s: s}
1058	return rs
1059}
1060
1061type TargetHttpsProxiesService struct {
1062	s *Service
1063}
1064
1065func NewTargetInstancesService(s *Service) *TargetInstancesService {
1066	rs := &TargetInstancesService{s: s}
1067	return rs
1068}
1069
1070type TargetInstancesService struct {
1071	s *Service
1072}
1073
1074func NewTargetPoolsService(s *Service) *TargetPoolsService {
1075	rs := &TargetPoolsService{s: s}
1076	return rs
1077}
1078
1079type TargetPoolsService struct {
1080	s *Service
1081}
1082
1083func NewTargetSslProxiesService(s *Service) *TargetSslProxiesService {
1084	rs := &TargetSslProxiesService{s: s}
1085	return rs
1086}
1087
1088type TargetSslProxiesService struct {
1089	s *Service
1090}
1091
1092func NewTargetTcpProxiesService(s *Service) *TargetTcpProxiesService {
1093	rs := &TargetTcpProxiesService{s: s}
1094	return rs
1095}
1096
1097type TargetTcpProxiesService struct {
1098	s *Service
1099}
1100
1101func NewTargetVpnGatewaysService(s *Service) *TargetVpnGatewaysService {
1102	rs := &TargetVpnGatewaysService{s: s}
1103	return rs
1104}
1105
1106type TargetVpnGatewaysService struct {
1107	s *Service
1108}
1109
1110func NewUrlMapsService(s *Service) *UrlMapsService {
1111	rs := &UrlMapsService{s: s}
1112	return rs
1113}
1114
1115type UrlMapsService struct {
1116	s *Service
1117}
1118
1119func NewVpnGatewaysService(s *Service) *VpnGatewaysService {
1120	rs := &VpnGatewaysService{s: s}
1121	return rs
1122}
1123
1124type VpnGatewaysService struct {
1125	s *Service
1126}
1127
1128func NewVpnTunnelsService(s *Service) *VpnTunnelsService {
1129	rs := &VpnTunnelsService{s: s}
1130	return rs
1131}
1132
1133type VpnTunnelsService struct {
1134	s *Service
1135}
1136
1137func NewZoneOperationsService(s *Service) *ZoneOperationsService {
1138	rs := &ZoneOperationsService{s: s}
1139	return rs
1140}
1141
1142type ZoneOperationsService struct {
1143	s *Service
1144}
1145
1146func NewZonesService(s *Service) *ZonesService {
1147	rs := &ZonesService{s: s}
1148	return rs
1149}
1150
1151type ZonesService struct {
1152	s *Service
1153}
1154
1155// AcceleratorConfig: A specification of the type and number of
1156// accelerator cards attached to the instance.
1157type AcceleratorConfig struct {
1158	// AcceleratorCount: The number of the guest accelerator cards exposed
1159	// to this instance.
1160	AcceleratorCount int64 `json:"acceleratorCount,omitempty"`
1161
1162	// AcceleratorType: Full or partial URL of the accelerator type resource
1163	// to attach to this instance. For example:
1164	// projects/my-project/zones/us-central1-c/acceleratorTypes/nvidia-tesla-
1165	// p100 If you are creating an instance template, specify only the
1166	// accelerator name. See GPUs on Compute Engine for a full list of
1167	// accelerator types.
1168	AcceleratorType string `json:"acceleratorType,omitempty"`
1169
1170	// ForceSendFields is a list of field names (e.g. "AcceleratorCount") to
1171	// unconditionally include in API requests. By default, fields with
1172	// empty values are omitted from API requests. However, any non-pointer,
1173	// non-interface field appearing in ForceSendFields will be sent to the
1174	// server regardless of whether the field is empty or not. This may be
1175	// used to include empty fields in Patch requests.
1176	ForceSendFields []string `json:"-"`
1177
1178	// NullFields is a list of field names (e.g. "AcceleratorCount") to
1179	// include in API requests with the JSON null value. By default, fields
1180	// with empty values are omitted from API requests. However, any field
1181	// with an empty value appearing in NullFields will be sent to the
1182	// server as null. It is an error if a field in this list has a
1183	// non-empty value. This may be used to include null fields in Patch
1184	// requests.
1185	NullFields []string `json:"-"`
1186}
1187
1188func (s *AcceleratorConfig) MarshalJSON() ([]byte, error) {
1189	type NoMethod AcceleratorConfig
1190	raw := NoMethod(*s)
1191	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1192}
1193
1194// AcceleratorType: Represents an Accelerator Type resource.
1195//
1196// Google Cloud Platform provides graphics processing units
1197// (accelerators) that you can add to VM instances to improve or
1198// accelerate performance when working with intensive workloads. For
1199// more information, read GPUs on Compute Engine. (== resource_for
1200// {$api_version}.acceleratorTypes ==)
1201type AcceleratorType struct {
1202	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
1203	// format.
1204	CreationTimestamp string `json:"creationTimestamp,omitempty"`
1205
1206	// Deprecated -- [Output Only] The deprecation status associated with
1207	// this accelerator type.
1208	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
1209
1210	// Description: [Output Only] An optional textual description of the
1211	// resource.
1212	Description string `json:"description,omitempty"`
1213
1214	// Id: [Output Only] The unique identifier for the resource. This
1215	// identifier is defined by the server.
1216	Id uint64 `json:"id,omitempty,string"`
1217
1218	// Kind: [Output Only] The type of the resource. Always
1219	// compute#acceleratorType for accelerator types.
1220	Kind string `json:"kind,omitempty"`
1221
1222	// MaximumCardsPerInstance: [Output Only] Maximum number of accelerator
1223	// cards allowed per instance.
1224	MaximumCardsPerInstance int64 `json:"maximumCardsPerInstance,omitempty"`
1225
1226	// Name: [Output Only] Name of the resource.
1227	Name string `json:"name,omitempty"`
1228
1229	// SelfLink: [Output Only] Server-defined, fully qualified URL for this
1230	// resource.
1231	SelfLink string `json:"selfLink,omitempty"`
1232
1233	// Zone: [Output Only] The name of the zone where the accelerator type
1234	// resides, such as us-central1-a. You must specify this field as part
1235	// of the HTTP request URL. It is not settable as a field in the request
1236	// body.
1237	Zone string `json:"zone,omitempty"`
1238
1239	// ServerResponse contains the HTTP response code and headers from the
1240	// server.
1241	googleapi.ServerResponse `json:"-"`
1242
1243	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
1244	// to unconditionally include in API requests. By default, fields with
1245	// empty values are omitted from API requests. However, any non-pointer,
1246	// non-interface field appearing in ForceSendFields will be sent to the
1247	// server regardless of whether the field is empty or not. This may be
1248	// used to include empty fields in Patch requests.
1249	ForceSendFields []string `json:"-"`
1250
1251	// NullFields is a list of field names (e.g. "CreationTimestamp") to
1252	// include in API requests with the JSON null value. By default, fields
1253	// with empty values are omitted from API requests. However, any field
1254	// with an empty value appearing in NullFields will be sent to the
1255	// server as null. It is an error if a field in this list has a
1256	// non-empty value. This may be used to include null fields in Patch
1257	// requests.
1258	NullFields []string `json:"-"`
1259}
1260
1261func (s *AcceleratorType) MarshalJSON() ([]byte, error) {
1262	type NoMethod AcceleratorType
1263	raw := NoMethod(*s)
1264	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1265}
1266
1267type AcceleratorTypeAggregatedList struct {
1268	// Id: [Output Only] Unique identifier for the resource; defined by the
1269	// server.
1270	Id string `json:"id,omitempty"`
1271
1272	// Items: A list of AcceleratorTypesScopedList resources.
1273	Items map[string]AcceleratorTypesScopedList `json:"items,omitempty"`
1274
1275	// Kind: [Output Only] Type of resource. Always
1276	// compute#acceleratorTypeAggregatedList for aggregated lists of
1277	// accelerator types.
1278	Kind string `json:"kind,omitempty"`
1279
1280	// NextPageToken: [Output Only] This token allows you to get the next
1281	// page of results for list requests. If the number of results is larger
1282	// than maxResults, use the nextPageToken as a value for the query
1283	// parameter pageToken in the next list request. Subsequent list
1284	// requests will have their own nextPageToken to continue paging through
1285	// the results.
1286	NextPageToken string `json:"nextPageToken,omitempty"`
1287
1288	// SelfLink: [Output Only] Server-defined URL for this resource.
1289	SelfLink string `json:"selfLink,omitempty"`
1290
1291	// Unreachables: [Output Only] Unreachable resources.
1292	Unreachables []string `json:"unreachables,omitempty"`
1293
1294	// Warning: [Output Only] Informational warning message.
1295	Warning *AcceleratorTypeAggregatedListWarning `json:"warning,omitempty"`
1296
1297	// ServerResponse contains the HTTP response code and headers from the
1298	// server.
1299	googleapi.ServerResponse `json:"-"`
1300
1301	// ForceSendFields is a list of field names (e.g. "Id") to
1302	// unconditionally include in API requests. By default, fields with
1303	// empty values are omitted from API requests. However, any non-pointer,
1304	// non-interface field appearing in ForceSendFields will be sent to the
1305	// server regardless of whether the field is empty or not. This may be
1306	// used to include empty fields in Patch requests.
1307	ForceSendFields []string `json:"-"`
1308
1309	// NullFields is a list of field names (e.g. "Id") to include in API
1310	// requests with the JSON null value. By default, fields with empty
1311	// values are omitted from API requests. However, any field with an
1312	// empty value appearing in NullFields will be sent to the server as
1313	// null. It is an error if a field in this list has a non-empty value.
1314	// This may be used to include null fields in Patch requests.
1315	NullFields []string `json:"-"`
1316}
1317
1318func (s *AcceleratorTypeAggregatedList) MarshalJSON() ([]byte, error) {
1319	type NoMethod AcceleratorTypeAggregatedList
1320	raw := NoMethod(*s)
1321	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1322}
1323
1324// AcceleratorTypeAggregatedListWarning: [Output Only] Informational
1325// warning message.
1326type AcceleratorTypeAggregatedListWarning struct {
1327	// Code: [Output Only] A warning code, if applicable. For example,
1328	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
1329	// the response.
1330	//
1331	// Possible values:
1332	//   "CLEANUP_FAILED"
1333	//   "DEPRECATED_RESOURCE_USED"
1334	//   "DEPRECATED_TYPE_USED"
1335	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
1336	//   "EXPERIMENTAL_TYPE_USED"
1337	//   "EXTERNAL_API_WARNING"
1338	//   "FIELD_VALUE_OVERRIDEN"
1339	//   "INJECTED_KERNELS_DEPRECATED"
1340	//   "LARGE_DEPLOYMENT_WARNING"
1341	//   "MISSING_TYPE_DEPENDENCY"
1342	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
1343	//   "NEXT_HOP_CANNOT_IP_FORWARD"
1344	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
1345	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
1346	//   "NEXT_HOP_NOT_RUNNING"
1347	//   "NOT_CRITICAL_ERROR"
1348	//   "NO_RESULTS_ON_PAGE"
1349	//   "PARTIAL_SUCCESS"
1350	//   "REQUIRED_TOS_AGREEMENT"
1351	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
1352	//   "RESOURCE_NOT_DELETED"
1353	//   "SCHEMA_VALIDATION_IGNORED"
1354	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
1355	//   "UNDECLARED_PROPERTIES"
1356	//   "UNREACHABLE"
1357	Code string `json:"code,omitempty"`
1358
1359	// Data: [Output Only] Metadata about this warning in key: value format.
1360	// For example:
1361	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
1362	Data []*AcceleratorTypeAggregatedListWarningData `json:"data,omitempty"`
1363
1364	// Message: [Output Only] A human-readable description of the warning
1365	// code.
1366	Message string `json:"message,omitempty"`
1367
1368	// ForceSendFields is a list of field names (e.g. "Code") to
1369	// unconditionally include in API requests. By default, fields with
1370	// empty values are omitted from API requests. However, any non-pointer,
1371	// non-interface field appearing in ForceSendFields will be sent to the
1372	// server regardless of whether the field is empty or not. This may be
1373	// used to include empty fields in Patch requests.
1374	ForceSendFields []string `json:"-"`
1375
1376	// NullFields is a list of field names (e.g. "Code") to include in API
1377	// requests with the JSON null value. By default, fields with empty
1378	// values are omitted from API requests. However, any field with an
1379	// empty value appearing in NullFields will be sent to the server as
1380	// null. It is an error if a field in this list has a non-empty value.
1381	// This may be used to include null fields in Patch requests.
1382	NullFields []string `json:"-"`
1383}
1384
1385func (s *AcceleratorTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
1386	type NoMethod AcceleratorTypeAggregatedListWarning
1387	raw := NoMethod(*s)
1388	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1389}
1390
1391type AcceleratorTypeAggregatedListWarningData struct {
1392	// Key: [Output Only] A key that provides more detail on the warning
1393	// being returned. For example, for warnings where there are no results
1394	// in a list request for a particular zone, this key might be scope and
1395	// the key value might be the zone name. Other examples might be a key
1396	// indicating a deprecated resource and a suggested replacement, or a
1397	// warning about invalid network settings (for example, if an instance
1398	// attempts to perform IP forwarding but is not enabled for IP
1399	// forwarding).
1400	Key string `json:"key,omitempty"`
1401
1402	// Value: [Output Only] A warning data value corresponding to the key.
1403	Value string `json:"value,omitempty"`
1404
1405	// ForceSendFields is a list of field names (e.g. "Key") to
1406	// unconditionally include in API requests. By default, fields with
1407	// empty values are omitted from API requests. However, any non-pointer,
1408	// non-interface field appearing in ForceSendFields will be sent to the
1409	// server regardless of whether the field is empty or not. This may be
1410	// used to include empty fields in Patch requests.
1411	ForceSendFields []string `json:"-"`
1412
1413	// NullFields is a list of field names (e.g. "Key") to include in API
1414	// requests with the JSON null value. By default, fields with empty
1415	// values are omitted from API requests. However, any field with an
1416	// empty value appearing in NullFields will be sent to the server as
1417	// null. It is an error if a field in this list has a non-empty value.
1418	// This may be used to include null fields in Patch requests.
1419	NullFields []string `json:"-"`
1420}
1421
1422func (s *AcceleratorTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
1423	type NoMethod AcceleratorTypeAggregatedListWarningData
1424	raw := NoMethod(*s)
1425	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1426}
1427
1428// AcceleratorTypeList: Contains a list of accelerator types.
1429type AcceleratorTypeList struct {
1430	// Id: [Output Only] Unique identifier for the resource; defined by the
1431	// server.
1432	Id string `json:"id,omitempty"`
1433
1434	// Items: A list of AcceleratorType resources.
1435	Items []*AcceleratorType `json:"items,omitempty"`
1436
1437	// Kind: [Output Only] Type of resource. Always
1438	// compute#acceleratorTypeList for lists of accelerator types.
1439	Kind string `json:"kind,omitempty"`
1440
1441	// NextPageToken: [Output Only] This token allows you to get the next
1442	// page of results for list requests. If the number of results is larger
1443	// than maxResults, use the nextPageToken as a value for the query
1444	// parameter pageToken in the next list request. Subsequent list
1445	// requests will have their own nextPageToken to continue paging through
1446	// the results.
1447	NextPageToken string `json:"nextPageToken,omitempty"`
1448
1449	// SelfLink: [Output Only] Server-defined URL for this resource.
1450	SelfLink string `json:"selfLink,omitempty"`
1451
1452	// Warning: [Output Only] Informational warning message.
1453	Warning *AcceleratorTypeListWarning `json:"warning,omitempty"`
1454
1455	// ServerResponse contains the HTTP response code and headers from the
1456	// server.
1457	googleapi.ServerResponse `json:"-"`
1458
1459	// ForceSendFields is a list of field names (e.g. "Id") to
1460	// unconditionally include in API requests. By default, fields with
1461	// empty values are omitted from API requests. However, any non-pointer,
1462	// non-interface field appearing in ForceSendFields will be sent to the
1463	// server regardless of whether the field is empty or not. This may be
1464	// used to include empty fields in Patch requests.
1465	ForceSendFields []string `json:"-"`
1466
1467	// NullFields is a list of field names (e.g. "Id") to include in API
1468	// requests with the JSON null value. By default, fields with empty
1469	// values are omitted from API requests. However, any field with an
1470	// empty value appearing in NullFields will be sent to the server as
1471	// null. It is an error if a field in this list has a non-empty value.
1472	// This may be used to include null fields in Patch requests.
1473	NullFields []string `json:"-"`
1474}
1475
1476func (s *AcceleratorTypeList) MarshalJSON() ([]byte, error) {
1477	type NoMethod AcceleratorTypeList
1478	raw := NoMethod(*s)
1479	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1480}
1481
1482// AcceleratorTypeListWarning: [Output Only] Informational warning
1483// message.
1484type AcceleratorTypeListWarning struct {
1485	// Code: [Output Only] A warning code, if applicable. For example,
1486	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
1487	// the response.
1488	//
1489	// Possible values:
1490	//   "CLEANUP_FAILED"
1491	//   "DEPRECATED_RESOURCE_USED"
1492	//   "DEPRECATED_TYPE_USED"
1493	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
1494	//   "EXPERIMENTAL_TYPE_USED"
1495	//   "EXTERNAL_API_WARNING"
1496	//   "FIELD_VALUE_OVERRIDEN"
1497	//   "INJECTED_KERNELS_DEPRECATED"
1498	//   "LARGE_DEPLOYMENT_WARNING"
1499	//   "MISSING_TYPE_DEPENDENCY"
1500	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
1501	//   "NEXT_HOP_CANNOT_IP_FORWARD"
1502	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
1503	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
1504	//   "NEXT_HOP_NOT_RUNNING"
1505	//   "NOT_CRITICAL_ERROR"
1506	//   "NO_RESULTS_ON_PAGE"
1507	//   "PARTIAL_SUCCESS"
1508	//   "REQUIRED_TOS_AGREEMENT"
1509	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
1510	//   "RESOURCE_NOT_DELETED"
1511	//   "SCHEMA_VALIDATION_IGNORED"
1512	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
1513	//   "UNDECLARED_PROPERTIES"
1514	//   "UNREACHABLE"
1515	Code string `json:"code,omitempty"`
1516
1517	// Data: [Output Only] Metadata about this warning in key: value format.
1518	// For example:
1519	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
1520	Data []*AcceleratorTypeListWarningData `json:"data,omitempty"`
1521
1522	// Message: [Output Only] A human-readable description of the warning
1523	// code.
1524	Message string `json:"message,omitempty"`
1525
1526	// ForceSendFields is a list of field names (e.g. "Code") to
1527	// unconditionally include in API requests. By default, fields with
1528	// empty values are omitted from API requests. However, any non-pointer,
1529	// non-interface field appearing in ForceSendFields will be sent to the
1530	// server regardless of whether the field is empty or not. This may be
1531	// used to include empty fields in Patch requests.
1532	ForceSendFields []string `json:"-"`
1533
1534	// NullFields is a list of field names (e.g. "Code") to include in API
1535	// requests with the JSON null value. By default, fields with empty
1536	// values are omitted from API requests. However, any field with an
1537	// empty value appearing in NullFields will be sent to the server as
1538	// null. It is an error if a field in this list has a non-empty value.
1539	// This may be used to include null fields in Patch requests.
1540	NullFields []string `json:"-"`
1541}
1542
1543func (s *AcceleratorTypeListWarning) MarshalJSON() ([]byte, error) {
1544	type NoMethod AcceleratorTypeListWarning
1545	raw := NoMethod(*s)
1546	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1547}
1548
1549type AcceleratorTypeListWarningData struct {
1550	// Key: [Output Only] A key that provides more detail on the warning
1551	// being returned. For example, for warnings where there are no results
1552	// in a list request for a particular zone, this key might be scope and
1553	// the key value might be the zone name. Other examples might be a key
1554	// indicating a deprecated resource and a suggested replacement, or a
1555	// warning about invalid network settings (for example, if an instance
1556	// attempts to perform IP forwarding but is not enabled for IP
1557	// forwarding).
1558	Key string `json:"key,omitempty"`
1559
1560	// Value: [Output Only] A warning data value corresponding to the key.
1561	Value string `json:"value,omitempty"`
1562
1563	// ForceSendFields is a list of field names (e.g. "Key") to
1564	// unconditionally include in API requests. By default, fields with
1565	// empty values are omitted from API requests. However, any non-pointer,
1566	// non-interface field appearing in ForceSendFields will be sent to the
1567	// server regardless of whether the field is empty or not. This may be
1568	// used to include empty fields in Patch requests.
1569	ForceSendFields []string `json:"-"`
1570
1571	// NullFields is a list of field names (e.g. "Key") to include in API
1572	// requests with the JSON null value. By default, fields with empty
1573	// values are omitted from API requests. However, any field with an
1574	// empty value appearing in NullFields will be sent to the server as
1575	// null. It is an error if a field in this list has a non-empty value.
1576	// This may be used to include null fields in Patch requests.
1577	NullFields []string `json:"-"`
1578}
1579
1580func (s *AcceleratorTypeListWarningData) MarshalJSON() ([]byte, error) {
1581	type NoMethod AcceleratorTypeListWarningData
1582	raw := NoMethod(*s)
1583	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1584}
1585
1586type AcceleratorTypesScopedList struct {
1587	// AcceleratorTypes: [Output Only] A list of accelerator types contained
1588	// in this scope.
1589	AcceleratorTypes []*AcceleratorType `json:"acceleratorTypes,omitempty"`
1590
1591	// Warning: [Output Only] An informational warning that appears when the
1592	// accelerator types list is empty.
1593	Warning *AcceleratorTypesScopedListWarning `json:"warning,omitempty"`
1594
1595	// ForceSendFields is a list of field names (e.g. "AcceleratorTypes") to
1596	// unconditionally include in API requests. By default, fields with
1597	// empty values are omitted from API requests. However, any non-pointer,
1598	// non-interface field appearing in ForceSendFields will be sent to the
1599	// server regardless of whether the field is empty or not. This may be
1600	// used to include empty fields in Patch requests.
1601	ForceSendFields []string `json:"-"`
1602
1603	// NullFields is a list of field names (e.g. "AcceleratorTypes") to
1604	// include in API requests with the JSON null value. By default, fields
1605	// with empty values are omitted from API requests. However, any field
1606	// with an empty value appearing in NullFields will be sent to the
1607	// server as null. It is an error if a field in this list has a
1608	// non-empty value. This may be used to include null fields in Patch
1609	// requests.
1610	NullFields []string `json:"-"`
1611}
1612
1613func (s *AcceleratorTypesScopedList) MarshalJSON() ([]byte, error) {
1614	type NoMethod AcceleratorTypesScopedList
1615	raw := NoMethod(*s)
1616	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1617}
1618
1619// AcceleratorTypesScopedListWarning: [Output Only] An informational
1620// warning that appears when the accelerator types list is empty.
1621type AcceleratorTypesScopedListWarning struct {
1622	// Code: [Output Only] A warning code, if applicable. For example,
1623	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
1624	// the response.
1625	//
1626	// Possible values:
1627	//   "CLEANUP_FAILED"
1628	//   "DEPRECATED_RESOURCE_USED"
1629	//   "DEPRECATED_TYPE_USED"
1630	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
1631	//   "EXPERIMENTAL_TYPE_USED"
1632	//   "EXTERNAL_API_WARNING"
1633	//   "FIELD_VALUE_OVERRIDEN"
1634	//   "INJECTED_KERNELS_DEPRECATED"
1635	//   "LARGE_DEPLOYMENT_WARNING"
1636	//   "MISSING_TYPE_DEPENDENCY"
1637	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
1638	//   "NEXT_HOP_CANNOT_IP_FORWARD"
1639	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
1640	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
1641	//   "NEXT_HOP_NOT_RUNNING"
1642	//   "NOT_CRITICAL_ERROR"
1643	//   "NO_RESULTS_ON_PAGE"
1644	//   "PARTIAL_SUCCESS"
1645	//   "REQUIRED_TOS_AGREEMENT"
1646	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
1647	//   "RESOURCE_NOT_DELETED"
1648	//   "SCHEMA_VALIDATION_IGNORED"
1649	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
1650	//   "UNDECLARED_PROPERTIES"
1651	//   "UNREACHABLE"
1652	Code string `json:"code,omitempty"`
1653
1654	// Data: [Output Only] Metadata about this warning in key: value format.
1655	// For example:
1656	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
1657	Data []*AcceleratorTypesScopedListWarningData `json:"data,omitempty"`
1658
1659	// Message: [Output Only] A human-readable description of the warning
1660	// code.
1661	Message string `json:"message,omitempty"`
1662
1663	// ForceSendFields is a list of field names (e.g. "Code") to
1664	// unconditionally include in API requests. By default, fields with
1665	// empty values are omitted from API requests. However, any non-pointer,
1666	// non-interface field appearing in ForceSendFields will be sent to the
1667	// server regardless of whether the field is empty or not. This may be
1668	// used to include empty fields in Patch requests.
1669	ForceSendFields []string `json:"-"`
1670
1671	// NullFields is a list of field names (e.g. "Code") to include in API
1672	// requests with the JSON null value. By default, fields with empty
1673	// values are omitted from API requests. However, any field with an
1674	// empty value appearing in NullFields will be sent to the server as
1675	// null. It is an error if a field in this list has a non-empty value.
1676	// This may be used to include null fields in Patch requests.
1677	NullFields []string `json:"-"`
1678}
1679
1680func (s *AcceleratorTypesScopedListWarning) MarshalJSON() ([]byte, error) {
1681	type NoMethod AcceleratorTypesScopedListWarning
1682	raw := NoMethod(*s)
1683	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1684}
1685
1686type AcceleratorTypesScopedListWarningData struct {
1687	// Key: [Output Only] A key that provides more detail on the warning
1688	// being returned. For example, for warnings where there are no results
1689	// in a list request for a particular zone, this key might be scope and
1690	// the key value might be the zone name. Other examples might be a key
1691	// indicating a deprecated resource and a suggested replacement, or a
1692	// warning about invalid network settings (for example, if an instance
1693	// attempts to perform IP forwarding but is not enabled for IP
1694	// forwarding).
1695	Key string `json:"key,omitempty"`
1696
1697	// Value: [Output Only] A warning data value corresponding to the key.
1698	Value string `json:"value,omitempty"`
1699
1700	// ForceSendFields is a list of field names (e.g. "Key") to
1701	// unconditionally include in API requests. By default, fields with
1702	// empty values are omitted from API requests. However, any non-pointer,
1703	// non-interface field appearing in ForceSendFields will be sent to the
1704	// server regardless of whether the field is empty or not. This may be
1705	// used to include empty fields in Patch requests.
1706	ForceSendFields []string `json:"-"`
1707
1708	// NullFields is a list of field names (e.g. "Key") to include in API
1709	// requests with the JSON null value. By default, fields with empty
1710	// values are omitted from API requests. However, any field with an
1711	// empty value appearing in NullFields will be sent to the server as
1712	// null. It is an error if a field in this list has a non-empty value.
1713	// This may be used to include null fields in Patch requests.
1714	NullFields []string `json:"-"`
1715}
1716
1717func (s *AcceleratorTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
1718	type NoMethod AcceleratorTypesScopedListWarningData
1719	raw := NoMethod(*s)
1720	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1721}
1722
1723// AccessConfig: An access configuration attached to an instance's
1724// network interface. Only one access config per instance is supported.
1725type AccessConfig struct {
1726	// Kind: [Output Only] Type of the resource. Always compute#accessConfig
1727	// for access configs.
1728	Kind string `json:"kind,omitempty"`
1729
1730	// Name: The name of this access configuration. The default and
1731	// recommended name is External NAT, but you can use any arbitrary
1732	// string, such as My external IP or Network Access.
1733	Name string `json:"name,omitempty"`
1734
1735	// NatIP: An external IP address associated with this instance. Specify
1736	// an unused static external IP address available to the project or
1737	// leave this field undefined to use an IP from a shared ephemeral IP
1738	// address pool. If you specify a static external IP address, it must
1739	// live in the same region as the zone of the instance.
1740	NatIP string `json:"natIP,omitempty"`
1741
1742	// NetworkTier: This signifies the networking tier used for configuring
1743	// this access configuration and can only take the following values:
1744	// PREMIUM, STANDARD.
1745	//
1746	// If an AccessConfig is specified without a valid external IP address,
1747	// an ephemeral IP will be created with this networkTier.
1748	//
1749	// If an AccessConfig with a valid external IP address is specified, it
1750	// must match that of the networkTier associated with the Address
1751	// resource owning that IP.
1752	//
1753	// Possible values:
1754	//   "PREMIUM"
1755	//   "STANDARD"
1756	NetworkTier string `json:"networkTier,omitempty"`
1757
1758	// PublicPtrDomainName: The DNS domain name for the public PTR record.
1759	// You can set this field only if the `setPublicPtr` field is enabled.
1760	PublicPtrDomainName string `json:"publicPtrDomainName,omitempty"`
1761
1762	// SetPublicPtr: Specifies whether a public DNS 'PTR' record should be
1763	// created to map the external IP address of the instance to a DNS
1764	// domain name.
1765	SetPublicPtr bool `json:"setPublicPtr,omitempty"`
1766
1767	// Type: The type of configuration. The default and only option is
1768	// ONE_TO_ONE_NAT.
1769	//
1770	// Possible values:
1771	//   "ONE_TO_ONE_NAT" (default)
1772	Type string `json:"type,omitempty"`
1773
1774	// ForceSendFields is a list of field names (e.g. "Kind") to
1775	// unconditionally include in API requests. By default, fields with
1776	// empty values are omitted from API requests. However, any non-pointer,
1777	// non-interface field appearing in ForceSendFields will be sent to the
1778	// server regardless of whether the field is empty or not. This may be
1779	// used to include empty fields in Patch requests.
1780	ForceSendFields []string `json:"-"`
1781
1782	// NullFields is a list of field names (e.g. "Kind") to include in API
1783	// requests with the JSON null value. By default, fields with empty
1784	// values are omitted from API requests. However, any field with an
1785	// empty value appearing in NullFields will be sent to the server as
1786	// null. It is an error if a field in this list has a non-empty value.
1787	// This may be used to include null fields in Patch requests.
1788	NullFields []string `json:"-"`
1789}
1790
1791func (s *AccessConfig) MarshalJSON() ([]byte, error) {
1792	type NoMethod AccessConfig
1793	raw := NoMethod(*s)
1794	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1795}
1796
1797// Address: Use global external addresses for GFE-based external HTTP(S)
1798// load balancers in Premium Tier.
1799//
1800// Use global internal addresses for reserved peering network
1801// range.
1802//
1803// Use regional external addresses for the following resources:
1804//
1805// - External IP addresses for VM instances - Regional external
1806// forwarding rules - Cloud NAT external IP addresses - GFE based LBs in
1807// Standard Tier - Network LBs in Premium or Standard Tier - Cloud VPN
1808// gateways (both Classic and HA)
1809//
1810// Use regional internal IP addresses for subnet IP ranges (primary and
1811// secondary). This includes:
1812//
1813// - Internal IP addresses for VM instances - Alias IP ranges of VM
1814// instances (/32 only) - Regional internal forwarding rules - Internal
1815// TCP/UDP load balancer addresses - Internal HTTP(S) load balancer
1816// addresses - Cloud DNS inbound forwarding IP addresses
1817//
1818// For more information, read reserved IP address.
1819//
1820// (== resource_for {$api_version}.addresses ==) (== resource_for
1821// {$api_version}.globalAddresses ==)
1822type Address struct {
1823	// Address: The static IP address represented by this resource.
1824	Address string `json:"address,omitempty"`
1825
1826	// AddressType: The type of address to reserve, either INTERNAL or
1827	// EXTERNAL. If unspecified, defaults to EXTERNAL.
1828	//
1829	// Possible values:
1830	//   "EXTERNAL"
1831	//   "INTERNAL"
1832	//   "UNSPECIFIED_TYPE"
1833	AddressType string `json:"addressType,omitempty"`
1834
1835	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
1836	// format.
1837	CreationTimestamp string `json:"creationTimestamp,omitempty"`
1838
1839	// Description: An optional description of this resource. Provide this
1840	// field when you create the resource.
1841	Description string `json:"description,omitempty"`
1842
1843	// Id: [Output Only] The unique identifier for the resource. This
1844	// identifier is defined by the server.
1845	Id uint64 `json:"id,omitempty,string"`
1846
1847	// IpVersion: The IP version that will be used by this address. Valid
1848	// options are IPV4 or IPV6. This can only be specified for a global
1849	// address.
1850	//
1851	// Possible values:
1852	//   "IPV4"
1853	//   "IPV6"
1854	//   "UNSPECIFIED_VERSION"
1855	IpVersion string `json:"ipVersion,omitempty"`
1856
1857	// Kind: [Output Only] Type of the resource. Always compute#address for
1858	// addresses.
1859	Kind string `json:"kind,omitempty"`
1860
1861	// LabelFingerprint: A fingerprint for the labels being applied to this
1862	// Address, which is essentially a hash of the labels set used for
1863	// optimistic locking. The fingerprint is initially generated by Compute
1864	// Engine and changes after every request to modify or update labels.
1865	// You must always provide an up-to-date fingerprint hash in order to
1866	// update or change labels, otherwise the request will fail with error
1867	// 412 conditionNotMet.
1868	//
1869	// To see the latest fingerprint, make a get() request to retrieve an
1870	// Address.
1871	LabelFingerprint string `json:"labelFingerprint,omitempty"`
1872
1873	// Labels: Labels for this resource. These can only be added or modified
1874	// by the setLabels method. Each label key/value pair must comply with
1875	// RFC1035. Label values may be empty.
1876	Labels map[string]string `json:"labels,omitempty"`
1877
1878	// Name: Name of the resource. Provided by the client when the resource
1879	// is created. The name must be 1-63 characters long, and comply with
1880	// RFC1035. Specifically, the name must be 1-63 characters long and
1881	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first
1882	// character must be a lowercase letter, and all following characters
1883	// (except for the last character) must be a dash, lowercase letter, or
1884	// digit. The last character must be a lowercase letter or digit.
1885	Name string `json:"name,omitempty"`
1886
1887	// Network: The URL of the network in which to reserve the address. This
1888	// field can only be used with INTERNAL type with the VPC_PEERING
1889	// purpose.
1890	Network string `json:"network,omitempty"`
1891
1892	// NetworkTier: This signifies the networking tier used for configuring
1893	// this address and can only take the following values: PREMIUM or
1894	// STANDARD. Global forwarding rules can only be Premium Tier. Regional
1895	// forwarding rules can be either Premium or Standard Tier. Standard
1896	// Tier addresses applied to regional forwarding rules can be used with
1897	// any external load balancer. Regional forwarding rules in Premium Tier
1898	// can only be used with a network load balancer.
1899	//
1900	// If this field is not specified, it is assumed to be PREMIUM.
1901	//
1902	// Possible values:
1903	//   "PREMIUM"
1904	//   "STANDARD"
1905	NetworkTier string `json:"networkTier,omitempty"`
1906
1907	// PrefixLength: The prefix length if the resource represents an IP
1908	// range.
1909	PrefixLength int64 `json:"prefixLength,omitempty"`
1910
1911	// Purpose: The purpose of this resource, which can be one of the
1912	// following values:
1913	// - `GCE_ENDPOINT` for addresses that are used by VM instances, alias
1914	// IP ranges, internal load balancers, and similar resources.
1915	// - `DNS_RESOLVER` for a DNS resolver address in a subnetwork
1916	// - `VPC_PEERING` for addresses that are reserved for VPC peer
1917	// networks.
1918	// - `NAT_AUTO` for addresses that are external IP addresses
1919	// automatically reserved for Cloud NAT.
1920	// - `IPSEC_INTERCONNECT` for addresses created from a private IP range
1921	// that are reserved for a VLAN attachment in an IPsec-encrypted Cloud
1922	// Interconnect configuration. These addresses are regional resources.
1923	//
1924	// Possible values:
1925	//   "DNS_RESOLVER"
1926	//   "GCE_ENDPOINT"
1927	//   "IPSEC_INTERCONNECT"
1928	//   "NAT_AUTO"
1929	//   "PRIVATE_SERVICE_CONNECT"
1930	//   "SHARED_LOADBALANCER_VIP"
1931	//   "VPC_PEERING"
1932	Purpose string `json:"purpose,omitempty"`
1933
1934	// Region: [Output Only] The URL of the region where a regional address
1935	// resides. For regional addresses, you must specify the region as a
1936	// path parameter in the HTTP request URL. This field is not applicable
1937	// to global addresses.
1938	Region string `json:"region,omitempty"`
1939
1940	// SelfLink: [Output Only] Server-defined URL for the resource.
1941	SelfLink string `json:"selfLink,omitempty"`
1942
1943	// Status: [Output Only] The status of the address, which can be one of
1944	// RESERVING, RESERVED, or IN_USE. An address that is RESERVING is
1945	// currently in the process of being reserved. A RESERVED address is
1946	// currently reserved and available to use. An IN_USE address is
1947	// currently being used by another resource and is not available.
1948	//
1949	// Possible values:
1950	//   "IN_USE"
1951	//   "RESERVED"
1952	//   "RESERVING"
1953	Status string `json:"status,omitempty"`
1954
1955	// Subnetwork: The URL of the subnetwork in which to reserve the
1956	// address. If an IP address is specified, it must be within the
1957	// subnetwork's IP range. This field can only be used with INTERNAL type
1958	// with a GCE_ENDPOINT or DNS_RESOLVER purpose.
1959	Subnetwork string `json:"subnetwork,omitempty"`
1960
1961	// Users: [Output Only] The URLs of the resources that are using this
1962	// address.
1963	Users []string `json:"users,omitempty"`
1964
1965	// ServerResponse contains the HTTP response code and headers from the
1966	// server.
1967	googleapi.ServerResponse `json:"-"`
1968
1969	// ForceSendFields is a list of field names (e.g. "Address") 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. "Address") to include in
1978	// API requests with the JSON null value. By default, fields with empty
1979	// values are omitted from API requests. However, any field with an
1980	// 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 *Address) MarshalJSON() ([]byte, error) {
1987	type NoMethod Address
1988	raw := NoMethod(*s)
1989	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1990}
1991
1992type AddressAggregatedList struct {
1993	// Id: [Output Only] Unique identifier for the resource; defined by the
1994	// server.
1995	Id string `json:"id,omitempty"`
1996
1997	// Items: A list of AddressesScopedList resources.
1998	Items map[string]AddressesScopedList `json:"items,omitempty"`
1999
2000	// Kind: [Output Only] Type of resource. Always
2001	// compute#addressAggregatedList for aggregated lists of addresses.
2002	Kind string `json:"kind,omitempty"`
2003
2004	// NextPageToken: [Output Only] This token allows you to get the next
2005	// page of results for list requests. If the number of results is larger
2006	// than maxResults, use the nextPageToken as a value for the query
2007	// parameter pageToken in the next list request. Subsequent list
2008	// requests will have their own nextPageToken to continue paging through
2009	// the results.
2010	NextPageToken string `json:"nextPageToken,omitempty"`
2011
2012	// SelfLink: [Output Only] Server-defined URL for this resource.
2013	SelfLink string `json:"selfLink,omitempty"`
2014
2015	// Unreachables: [Output Only] Unreachable resources.
2016	Unreachables []string `json:"unreachables,omitempty"`
2017
2018	// Warning: [Output Only] Informational warning message.
2019	Warning *AddressAggregatedListWarning `json:"warning,omitempty"`
2020
2021	// ServerResponse contains the HTTP response code and headers from the
2022	// server.
2023	googleapi.ServerResponse `json:"-"`
2024
2025	// ForceSendFields is a list of field names (e.g. "Id") to
2026	// unconditionally include in API requests. By default, fields with
2027	// empty values are omitted from API requests. However, any non-pointer,
2028	// non-interface field appearing in ForceSendFields will be sent to the
2029	// server regardless of whether the field is empty or not. This may be
2030	// used to include empty fields in Patch requests.
2031	ForceSendFields []string `json:"-"`
2032
2033	// NullFields is a list of field names (e.g. "Id") to include in API
2034	// requests with the JSON null value. By default, fields with empty
2035	// values are omitted from API requests. However, any field with an
2036	// empty value appearing in NullFields will be sent to the server as
2037	// null. It is an error if a field in this list has a non-empty value.
2038	// This may be used to include null fields in Patch requests.
2039	NullFields []string `json:"-"`
2040}
2041
2042func (s *AddressAggregatedList) MarshalJSON() ([]byte, error) {
2043	type NoMethod AddressAggregatedList
2044	raw := NoMethod(*s)
2045	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2046}
2047
2048// AddressAggregatedListWarning: [Output Only] Informational warning
2049// message.
2050type AddressAggregatedListWarning struct {
2051	// Code: [Output Only] A warning code, if applicable. For example,
2052	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
2053	// the response.
2054	//
2055	// Possible values:
2056	//   "CLEANUP_FAILED"
2057	//   "DEPRECATED_RESOURCE_USED"
2058	//   "DEPRECATED_TYPE_USED"
2059	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
2060	//   "EXPERIMENTAL_TYPE_USED"
2061	//   "EXTERNAL_API_WARNING"
2062	//   "FIELD_VALUE_OVERRIDEN"
2063	//   "INJECTED_KERNELS_DEPRECATED"
2064	//   "LARGE_DEPLOYMENT_WARNING"
2065	//   "MISSING_TYPE_DEPENDENCY"
2066	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
2067	//   "NEXT_HOP_CANNOT_IP_FORWARD"
2068	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
2069	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
2070	//   "NEXT_HOP_NOT_RUNNING"
2071	//   "NOT_CRITICAL_ERROR"
2072	//   "NO_RESULTS_ON_PAGE"
2073	//   "PARTIAL_SUCCESS"
2074	//   "REQUIRED_TOS_AGREEMENT"
2075	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
2076	//   "RESOURCE_NOT_DELETED"
2077	//   "SCHEMA_VALIDATION_IGNORED"
2078	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
2079	//   "UNDECLARED_PROPERTIES"
2080	//   "UNREACHABLE"
2081	Code string `json:"code,omitempty"`
2082
2083	// Data: [Output Only] Metadata about this warning in key: value format.
2084	// For example:
2085	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
2086	Data []*AddressAggregatedListWarningData `json:"data,omitempty"`
2087
2088	// Message: [Output Only] A human-readable description of the warning
2089	// code.
2090	Message string `json:"message,omitempty"`
2091
2092	// ForceSendFields is a list of field names (e.g. "Code") to
2093	// unconditionally include in API requests. By default, fields with
2094	// empty values are omitted from API requests. However, any non-pointer,
2095	// non-interface field appearing in ForceSendFields will be sent to the
2096	// server regardless of whether the field is empty or not. This may be
2097	// used to include empty fields in Patch requests.
2098	ForceSendFields []string `json:"-"`
2099
2100	// NullFields is a list of field names (e.g. "Code") to include in API
2101	// requests with the JSON null value. By default, fields with empty
2102	// values are omitted from API requests. However, any field with an
2103	// empty value appearing in NullFields will be sent to the server as
2104	// null. It is an error if a field in this list has a non-empty value.
2105	// This may be used to include null fields in Patch requests.
2106	NullFields []string `json:"-"`
2107}
2108
2109func (s *AddressAggregatedListWarning) MarshalJSON() ([]byte, error) {
2110	type NoMethod AddressAggregatedListWarning
2111	raw := NoMethod(*s)
2112	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2113}
2114
2115type AddressAggregatedListWarningData struct {
2116	// Key: [Output Only] A key that provides more detail on the warning
2117	// being returned. For example, for warnings where there are no results
2118	// in a list request for a particular zone, this key might be scope and
2119	// the key value might be the zone name. Other examples might be a key
2120	// indicating a deprecated resource and a suggested replacement, or a
2121	// warning about invalid network settings (for example, if an instance
2122	// attempts to perform IP forwarding but is not enabled for IP
2123	// forwarding).
2124	Key string `json:"key,omitempty"`
2125
2126	// Value: [Output Only] A warning data value corresponding to the key.
2127	Value string `json:"value,omitempty"`
2128
2129	// ForceSendFields is a list of field names (e.g. "Key") to
2130	// unconditionally include in API requests. By default, fields with
2131	// empty values are omitted from API requests. However, any non-pointer,
2132	// non-interface field appearing in ForceSendFields will be sent to the
2133	// server regardless of whether the field is empty or not. This may be
2134	// used to include empty fields in Patch requests.
2135	ForceSendFields []string `json:"-"`
2136
2137	// NullFields is a list of field names (e.g. "Key") to include in API
2138	// requests with the JSON null value. By default, fields with empty
2139	// values are omitted from API requests. However, any field with an
2140	// empty value appearing in NullFields will be sent to the server as
2141	// null. It is an error if a field in this list has a non-empty value.
2142	// This may be used to include null fields in Patch requests.
2143	NullFields []string `json:"-"`
2144}
2145
2146func (s *AddressAggregatedListWarningData) MarshalJSON() ([]byte, error) {
2147	type NoMethod AddressAggregatedListWarningData
2148	raw := NoMethod(*s)
2149	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2150}
2151
2152// AddressList: Contains a list of addresses.
2153type AddressList struct {
2154	// Id: [Output Only] Unique identifier for the resource; defined by the
2155	// server.
2156	Id string `json:"id,omitempty"`
2157
2158	// Items: A list of Address resources.
2159	Items []*Address `json:"items,omitempty"`
2160
2161	// Kind: [Output Only] Type of resource. Always compute#addressList for
2162	// lists of addresses.
2163	Kind string `json:"kind,omitempty"`
2164
2165	// NextPageToken: [Output Only] This token allows you to get the next
2166	// page of results for list requests. If the number of results is larger
2167	// than maxResults, use the nextPageToken as a value for the query
2168	// parameter pageToken in the next list request. Subsequent list
2169	// requests will have their own nextPageToken to continue paging through
2170	// the results.
2171	NextPageToken string `json:"nextPageToken,omitempty"`
2172
2173	// SelfLink: [Output Only] Server-defined URL for this resource.
2174	SelfLink string `json:"selfLink,omitempty"`
2175
2176	// Warning: [Output Only] Informational warning message.
2177	Warning *AddressListWarning `json:"warning,omitempty"`
2178
2179	// ServerResponse contains the HTTP response code and headers from the
2180	// server.
2181	googleapi.ServerResponse `json:"-"`
2182
2183	// ForceSendFields is a list of field names (e.g. "Id") to
2184	// unconditionally include in API requests. By default, fields with
2185	// empty values are omitted from API requests. However, any non-pointer,
2186	// non-interface field appearing in ForceSendFields will be sent to the
2187	// server regardless of whether the field is empty or not. This may be
2188	// used to include empty fields in Patch requests.
2189	ForceSendFields []string `json:"-"`
2190
2191	// NullFields is a list of field names (e.g. "Id") to include in API
2192	// requests with the JSON null value. By default, fields with empty
2193	// values are omitted from API requests. However, any field with an
2194	// empty value appearing in NullFields will be sent to the server as
2195	// null. It is an error if a field in this list has a non-empty value.
2196	// This may be used to include null fields in Patch requests.
2197	NullFields []string `json:"-"`
2198}
2199
2200func (s *AddressList) MarshalJSON() ([]byte, error) {
2201	type NoMethod AddressList
2202	raw := NoMethod(*s)
2203	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2204}
2205
2206// AddressListWarning: [Output Only] Informational warning message.
2207type AddressListWarning struct {
2208	// Code: [Output Only] A warning code, if applicable. For example,
2209	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
2210	// the response.
2211	//
2212	// Possible values:
2213	//   "CLEANUP_FAILED"
2214	//   "DEPRECATED_RESOURCE_USED"
2215	//   "DEPRECATED_TYPE_USED"
2216	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
2217	//   "EXPERIMENTAL_TYPE_USED"
2218	//   "EXTERNAL_API_WARNING"
2219	//   "FIELD_VALUE_OVERRIDEN"
2220	//   "INJECTED_KERNELS_DEPRECATED"
2221	//   "LARGE_DEPLOYMENT_WARNING"
2222	//   "MISSING_TYPE_DEPENDENCY"
2223	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
2224	//   "NEXT_HOP_CANNOT_IP_FORWARD"
2225	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
2226	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
2227	//   "NEXT_HOP_NOT_RUNNING"
2228	//   "NOT_CRITICAL_ERROR"
2229	//   "NO_RESULTS_ON_PAGE"
2230	//   "PARTIAL_SUCCESS"
2231	//   "REQUIRED_TOS_AGREEMENT"
2232	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
2233	//   "RESOURCE_NOT_DELETED"
2234	//   "SCHEMA_VALIDATION_IGNORED"
2235	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
2236	//   "UNDECLARED_PROPERTIES"
2237	//   "UNREACHABLE"
2238	Code string `json:"code,omitempty"`
2239
2240	// Data: [Output Only] Metadata about this warning in key: value format.
2241	// For example:
2242	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
2243	Data []*AddressListWarningData `json:"data,omitempty"`
2244
2245	// Message: [Output Only] A human-readable description of the warning
2246	// code.
2247	Message string `json:"message,omitempty"`
2248
2249	// ForceSendFields is a list of field names (e.g. "Code") to
2250	// unconditionally include in API requests. By default, fields with
2251	// empty values are omitted from API requests. However, any non-pointer,
2252	// non-interface field appearing in ForceSendFields will be sent to the
2253	// server regardless of whether the field is empty or not. This may be
2254	// used to include empty fields in Patch requests.
2255	ForceSendFields []string `json:"-"`
2256
2257	// NullFields is a list of field names (e.g. "Code") to include in API
2258	// requests with the JSON null value. By default, fields with empty
2259	// values are omitted from API requests. However, any field with an
2260	// empty value appearing in NullFields will be sent to the server as
2261	// null. It is an error if a field in this list has a non-empty value.
2262	// This may be used to include null fields in Patch requests.
2263	NullFields []string `json:"-"`
2264}
2265
2266func (s *AddressListWarning) MarshalJSON() ([]byte, error) {
2267	type NoMethod AddressListWarning
2268	raw := NoMethod(*s)
2269	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2270}
2271
2272type AddressListWarningData struct {
2273	// Key: [Output Only] A key that provides more detail on the warning
2274	// being returned. For example, for warnings where there are no results
2275	// in a list request for a particular zone, this key might be scope and
2276	// the key value might be the zone name. Other examples might be a key
2277	// indicating a deprecated resource and a suggested replacement, or a
2278	// warning about invalid network settings (for example, if an instance
2279	// attempts to perform IP forwarding but is not enabled for IP
2280	// forwarding).
2281	Key string `json:"key,omitempty"`
2282
2283	// Value: [Output Only] A warning data value corresponding to the key.
2284	Value string `json:"value,omitempty"`
2285
2286	// ForceSendFields is a list of field names (e.g. "Key") to
2287	// unconditionally include in API requests. By default, fields with
2288	// empty values are omitted from API requests. However, any non-pointer,
2289	// non-interface field appearing in ForceSendFields will be sent to the
2290	// server regardless of whether the field is empty or not. This may be
2291	// used to include empty fields in Patch requests.
2292	ForceSendFields []string `json:"-"`
2293
2294	// NullFields is a list of field names (e.g. "Key") to include in API
2295	// requests with the JSON null value. By default, fields with empty
2296	// values are omitted from API requests. However, any field with an
2297	// empty value appearing in NullFields will be sent to the server as
2298	// null. It is an error if a field in this list has a non-empty value.
2299	// This may be used to include null fields in Patch requests.
2300	NullFields []string `json:"-"`
2301}
2302
2303func (s *AddressListWarningData) MarshalJSON() ([]byte, error) {
2304	type NoMethod AddressListWarningData
2305	raw := NoMethod(*s)
2306	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2307}
2308
2309type AddressesScopedList struct {
2310	// Addresses: [Output Only] A list of addresses contained in this scope.
2311	Addresses []*Address `json:"addresses,omitempty"`
2312
2313	// Warning: [Output Only] Informational warning which replaces the list
2314	// of addresses when the list is empty.
2315	Warning *AddressesScopedListWarning `json:"warning,omitempty"`
2316
2317	// ForceSendFields is a list of field names (e.g. "Addresses") to
2318	// unconditionally include in API requests. By default, fields with
2319	// empty values are omitted from API requests. However, any non-pointer,
2320	// non-interface field appearing in ForceSendFields will be sent to the
2321	// server regardless of whether the field is empty or not. This may be
2322	// used to include empty fields in Patch requests.
2323	ForceSendFields []string `json:"-"`
2324
2325	// NullFields is a list of field names (e.g. "Addresses") to include in
2326	// API requests with the JSON null value. By default, fields with empty
2327	// values are omitted from API requests. However, any field with an
2328	// empty value appearing in NullFields will be sent to the server as
2329	// null. It is an error if a field in this list has a non-empty value.
2330	// This may be used to include null fields in Patch requests.
2331	NullFields []string `json:"-"`
2332}
2333
2334func (s *AddressesScopedList) MarshalJSON() ([]byte, error) {
2335	type NoMethod AddressesScopedList
2336	raw := NoMethod(*s)
2337	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2338}
2339
2340// AddressesScopedListWarning: [Output Only] Informational warning which
2341// replaces the list of addresses when the list is empty.
2342type AddressesScopedListWarning struct {
2343	// Code: [Output Only] A warning code, if applicable. For example,
2344	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
2345	// the response.
2346	//
2347	// Possible values:
2348	//   "CLEANUP_FAILED"
2349	//   "DEPRECATED_RESOURCE_USED"
2350	//   "DEPRECATED_TYPE_USED"
2351	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
2352	//   "EXPERIMENTAL_TYPE_USED"
2353	//   "EXTERNAL_API_WARNING"
2354	//   "FIELD_VALUE_OVERRIDEN"
2355	//   "INJECTED_KERNELS_DEPRECATED"
2356	//   "LARGE_DEPLOYMENT_WARNING"
2357	//   "MISSING_TYPE_DEPENDENCY"
2358	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
2359	//   "NEXT_HOP_CANNOT_IP_FORWARD"
2360	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
2361	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
2362	//   "NEXT_HOP_NOT_RUNNING"
2363	//   "NOT_CRITICAL_ERROR"
2364	//   "NO_RESULTS_ON_PAGE"
2365	//   "PARTIAL_SUCCESS"
2366	//   "REQUIRED_TOS_AGREEMENT"
2367	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
2368	//   "RESOURCE_NOT_DELETED"
2369	//   "SCHEMA_VALIDATION_IGNORED"
2370	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
2371	//   "UNDECLARED_PROPERTIES"
2372	//   "UNREACHABLE"
2373	Code string `json:"code,omitempty"`
2374
2375	// Data: [Output Only] Metadata about this warning in key: value format.
2376	// For example:
2377	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
2378	Data []*AddressesScopedListWarningData `json:"data,omitempty"`
2379
2380	// Message: [Output Only] A human-readable description of the warning
2381	// code.
2382	Message string `json:"message,omitempty"`
2383
2384	// ForceSendFields is a list of field names (e.g. "Code") to
2385	// unconditionally include in API requests. By default, fields with
2386	// empty values are omitted from API requests. However, any non-pointer,
2387	// non-interface field appearing in ForceSendFields will be sent to the
2388	// server regardless of whether the field is empty or not. This may be
2389	// used to include empty fields in Patch requests.
2390	ForceSendFields []string `json:"-"`
2391
2392	// NullFields is a list of field names (e.g. "Code") to include in API
2393	// requests with the JSON null value. By default, fields with empty
2394	// values are omitted from API requests. However, any field with an
2395	// empty value appearing in NullFields will be sent to the server as
2396	// null. It is an error if a field in this list has a non-empty value.
2397	// This may be used to include null fields in Patch requests.
2398	NullFields []string `json:"-"`
2399}
2400
2401func (s *AddressesScopedListWarning) MarshalJSON() ([]byte, error) {
2402	type NoMethod AddressesScopedListWarning
2403	raw := NoMethod(*s)
2404	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2405}
2406
2407type AddressesScopedListWarningData struct {
2408	// Key: [Output Only] A key that provides more detail on the warning
2409	// being returned. For example, for warnings where there are no results
2410	// in a list request for a particular zone, this key might be scope and
2411	// the key value might be the zone name. Other examples might be a key
2412	// indicating a deprecated resource and a suggested replacement, or a
2413	// warning about invalid network settings (for example, if an instance
2414	// attempts to perform IP forwarding but is not enabled for IP
2415	// forwarding).
2416	Key string `json:"key,omitempty"`
2417
2418	// Value: [Output Only] A warning data value corresponding to the key.
2419	Value string `json:"value,omitempty"`
2420
2421	// ForceSendFields is a list of field names (e.g. "Key") to
2422	// unconditionally include in API requests. By default, fields with
2423	// empty values are omitted from API requests. However, any non-pointer,
2424	// non-interface field appearing in ForceSendFields will be sent to the
2425	// server regardless of whether the field is empty or not. This may be
2426	// used to include empty fields in Patch requests.
2427	ForceSendFields []string `json:"-"`
2428
2429	// NullFields is a list of field names (e.g. "Key") to include in API
2430	// requests with the JSON null value. By default, fields with empty
2431	// values are omitted from API requests. However, any field with an
2432	// empty value appearing in NullFields will be sent to the server as
2433	// null. It is an error if a field in this list has a non-empty value.
2434	// This may be used to include null fields in Patch requests.
2435	NullFields []string `json:"-"`
2436}
2437
2438func (s *AddressesScopedListWarningData) MarshalJSON() ([]byte, error) {
2439	type NoMethod AddressesScopedListWarningData
2440	raw := NoMethod(*s)
2441	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2442}
2443
2444// AdvancedMachineFeatures: Specifies options for controlling advanced
2445// machine features. Options that would traditionally be configured in a
2446// BIOS belong here. Features that require operating system support may
2447// have corresponding entries in the GuestOsFeatures of an Image (e.g.,
2448// whether or not the OS in the Image supports nested virtualization
2449// being enabled or disabled).
2450type AdvancedMachineFeatures struct {
2451	// EnableNestedVirtualization: Whether to enable nested virtualization
2452	// or not (default is false).
2453	EnableNestedVirtualization bool `json:"enableNestedVirtualization,omitempty"`
2454
2455	// ForceSendFields is a list of field names (e.g.
2456	// "EnableNestedVirtualization") to unconditionally include in API
2457	// requests. By default, fields with empty values are omitted from API
2458	// requests. However, any non-pointer, non-interface field appearing in
2459	// ForceSendFields will be sent to the server regardless of whether the
2460	// field is empty or not. This may be used to include empty fields in
2461	// Patch requests.
2462	ForceSendFields []string `json:"-"`
2463
2464	// NullFields is a list of field names (e.g.
2465	// "EnableNestedVirtualization") to include in API requests with the
2466	// JSON null value. By default, fields with empty values are omitted
2467	// from API requests. However, any field with an empty value appearing
2468	// in NullFields will be sent to the server as null. It is an error if a
2469	// field in this list has a non-empty value. This may be used to include
2470	// null fields in Patch requests.
2471	NullFields []string `json:"-"`
2472}
2473
2474func (s *AdvancedMachineFeatures) MarshalJSON() ([]byte, error) {
2475	type NoMethod AdvancedMachineFeatures
2476	raw := NoMethod(*s)
2477	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2478}
2479
2480// AliasIpRange: An alias IP range attached to an instance's network
2481// interface.
2482type AliasIpRange struct {
2483	// IpCidrRange: The IP alias ranges to allocate for this interface. This
2484	// IP CIDR range must belong to the specified subnetwork and cannot
2485	// contain IP addresses reserved by system or used by other network
2486	// interfaces. This range may be a single IP address (such as 10.2.3.4),
2487	// a netmask (such as /24) or a CIDR-formatted string (such as
2488	// 10.1.2.0/24).
2489	IpCidrRange string `json:"ipCidrRange,omitempty"`
2490
2491	// SubnetworkRangeName: The name of a subnetwork secondary IP range from
2492	// which to allocate an IP alias range. If not specified, the primary
2493	// range of the subnetwork is used.
2494	SubnetworkRangeName string `json:"subnetworkRangeName,omitempty"`
2495
2496	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
2497	// unconditionally include in API requests. By default, fields with
2498	// empty values are omitted from API requests. However, any non-pointer,
2499	// non-interface field appearing in ForceSendFields will be sent to the
2500	// server regardless of whether the field is empty or not. This may be
2501	// used to include empty fields in Patch requests.
2502	ForceSendFields []string `json:"-"`
2503
2504	// NullFields is a list of field names (e.g. "IpCidrRange") to include
2505	// in API requests with the JSON null value. By default, fields with
2506	// empty values are omitted from API requests. However, any field with
2507	// an empty value appearing in NullFields will be sent to the server as
2508	// null. It is an error if a field in this list has a non-empty value.
2509	// This may be used to include null fields in Patch requests.
2510	NullFields []string `json:"-"`
2511}
2512
2513func (s *AliasIpRange) MarshalJSON() ([]byte, error) {
2514	type NoMethod AliasIpRange
2515	raw := NoMethod(*s)
2516	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2517}
2518
2519type AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk struct {
2520	// DiskSizeGb: Specifies the size of the disk in base-2 GB.
2521	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
2522
2523	// Interface: Specifies the disk interface to use for attaching this
2524	// disk, which is either SCSI or NVME. The default is SCSI. For
2525	// performance characteristics of SCSI over NVMe, see Local SSD
2526	// performance.
2527	//
2528	// Possible values:
2529	//   "NVME"
2530	//   "SCSI"
2531	Interface string `json:"interface,omitempty"`
2532
2533	// ForceSendFields is a list of field names (e.g. "DiskSizeGb") to
2534	// unconditionally include in API requests. By default, fields with
2535	// empty values are omitted from API requests. However, any non-pointer,
2536	// non-interface field appearing in ForceSendFields will be sent to the
2537	// server regardless of whether the field is empty or not. This may be
2538	// used to include empty fields in Patch requests.
2539	ForceSendFields []string `json:"-"`
2540
2541	// NullFields is a list of field names (e.g. "DiskSizeGb") to include in
2542	// API requests with the JSON null value. By default, fields with empty
2543	// values are omitted from API requests. However, any field with an
2544	// empty value appearing in NullFields will be sent to the server as
2545	// null. It is an error if a field in this list has a non-empty value.
2546	// This may be used to include null fields in Patch requests.
2547	NullFields []string `json:"-"`
2548}
2549
2550func (s *AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk) MarshalJSON() ([]byte, error) {
2551	type NoMethod AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk
2552	raw := NoMethod(*s)
2553	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2554}
2555
2556// AllocationSpecificSKUAllocationReservedInstanceProperties: Properties
2557// of the SKU instances being reserved. Next ID: 9
2558type AllocationSpecificSKUAllocationReservedInstanceProperties struct {
2559	// GuestAccelerators: Specifies accelerator type and count.
2560	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
2561
2562	// LocalSsds: Specifies amount of local ssd to reserve with each
2563	// instance. The type of disk is local-ssd.
2564	LocalSsds []*AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk `json:"localSsds,omitempty"`
2565
2566	// LocationHint: An opaque location hint used to place the allocation
2567	// close to other resources. This field is for use by internal tools
2568	// that use the public API.
2569	LocationHint string `json:"locationHint,omitempty"`
2570
2571	// MachineType: Specifies type of machine (name only) which has fixed
2572	// number of vCPUs and fixed amount of memory. This also includes
2573	// specifying custom machine type following
2574	// custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY pattern.
2575	MachineType string `json:"machineType,omitempty"`
2576
2577	// MinCpuPlatform: Minimum cpu platform the reservation.
2578	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
2579
2580	// ForceSendFields is a list of field names (e.g. "GuestAccelerators")
2581	// to unconditionally include in API requests. By default, fields with
2582	// empty values are omitted from API requests. However, any non-pointer,
2583	// non-interface field appearing in ForceSendFields will be sent to the
2584	// server regardless of whether the field is empty or not. This may be
2585	// used to include empty fields in Patch requests.
2586	ForceSendFields []string `json:"-"`
2587
2588	// NullFields is a list of field names (e.g. "GuestAccelerators") to
2589	// include in API requests with the JSON null value. By default, fields
2590	// with empty values are omitted from API requests. However, any field
2591	// with an empty value appearing in NullFields will be sent to the
2592	// server as null. It is an error if a field in this list has a
2593	// non-empty value. This may be used to include null fields in Patch
2594	// requests.
2595	NullFields []string `json:"-"`
2596}
2597
2598func (s *AllocationSpecificSKUAllocationReservedInstanceProperties) MarshalJSON() ([]byte, error) {
2599	type NoMethod AllocationSpecificSKUAllocationReservedInstanceProperties
2600	raw := NoMethod(*s)
2601	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2602}
2603
2604// AllocationSpecificSKUReservation: This reservation type allows to pre
2605// allocate specific instance configuration.
2606type AllocationSpecificSKUReservation struct {
2607	// Count: Specifies the number of resources that are allocated.
2608	Count int64 `json:"count,omitempty,string"`
2609
2610	// InUseCount: [Output Only] Indicates how many instances are in use.
2611	InUseCount int64 `json:"inUseCount,omitempty,string"`
2612
2613	// InstanceProperties: The instance properties for the reservation.
2614	InstanceProperties *AllocationSpecificSKUAllocationReservedInstanceProperties `json:"instanceProperties,omitempty"`
2615
2616	// ForceSendFields is a list of field names (e.g. "Count") to
2617	// unconditionally include in API requests. By default, fields with
2618	// empty values are omitted from API requests. However, any non-pointer,
2619	// non-interface field appearing in ForceSendFields will be sent to the
2620	// server regardless of whether the field is empty or not. This may be
2621	// used to include empty fields in Patch requests.
2622	ForceSendFields []string `json:"-"`
2623
2624	// NullFields is a list of field names (e.g. "Count") to include in API
2625	// requests with the JSON null value. By default, fields with empty
2626	// values are omitted from API requests. However, any field with an
2627	// empty value appearing in NullFields will be sent to the server as
2628	// null. It is an error if a field in this list has a non-empty value.
2629	// This may be used to include null fields in Patch requests.
2630	NullFields []string `json:"-"`
2631}
2632
2633func (s *AllocationSpecificSKUReservation) MarshalJSON() ([]byte, error) {
2634	type NoMethod AllocationSpecificSKUReservation
2635	raw := NoMethod(*s)
2636	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2637}
2638
2639// AttachedDisk: An instance-attached disk resource.
2640type AttachedDisk struct {
2641	// AutoDelete: Specifies whether the disk will be auto-deleted when the
2642	// instance is deleted (but not when the disk is detached from the
2643	// instance).
2644	AutoDelete bool `json:"autoDelete,omitempty"`
2645
2646	// Boot: Indicates that this is a boot disk. The virtual machine will
2647	// use the first partition of the disk for its root filesystem.
2648	Boot bool `json:"boot,omitempty"`
2649
2650	// DeviceName: Specifies a unique device name of your choice that is
2651	// reflected into the /dev/disk/by-id/google-* tree of a Linux operating
2652	// system running within the instance. This name can be used to
2653	// reference the device for mounting, resizing, and so on, from within
2654	// the instance.
2655	//
2656	// If not specified, the server chooses a default device name to apply
2657	// to this disk, in the form persistent-disk-x, where x is a number
2658	// assigned by Google Compute Engine. This field is only applicable for
2659	// persistent disks.
2660	DeviceName string `json:"deviceName,omitempty"`
2661
2662	// DiskEncryptionKey: Encrypts or decrypts a disk using a
2663	// customer-supplied encryption key.
2664	//
2665	// If you are creating a new disk, this field encrypts the new disk
2666	// using an encryption key that you provide. If you are attaching an
2667	// existing disk that is already encrypted, this field decrypts the disk
2668	// using the customer-supplied encryption key.
2669	//
2670	// If you encrypt a disk using a customer-supplied key, you must provide
2671	// the same key again when you attempt to use this resource at a later
2672	// time. For example, you must provide the key when you create a
2673	// snapshot or an image from the disk or when you attach the disk to a
2674	// virtual machine instance.
2675	//
2676	// If you do not provide an encryption key, then the disk will be
2677	// encrypted using an automatically generated key and you do not need to
2678	// provide a key to use the disk later.
2679	//
2680	// Instance templates do not store customer-supplied encryption keys, so
2681	// you cannot use your own keys to encrypt disks in a managed instance
2682	// group.
2683	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
2684
2685	// DiskSizeGb: The size of the disk in GB.
2686	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
2687
2688	// GuestOsFeatures: A list of features to enable on the guest operating
2689	// system. Applicable only for bootable images. Read  Enabling guest
2690	// operating system features to see a list of available options.
2691	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
2692
2693	// Index: [Output Only] A zero-based index to this disk, where 0 is
2694	// reserved for the boot disk. If you have many disks attached to an
2695	// instance, each disk would have a unique index number.
2696	Index int64 `json:"index,omitempty"`
2697
2698	// InitializeParams: [Input Only] Specifies the parameters for a new
2699	// disk that will be created alongside the new instance. Use
2700	// initialization parameters to create boot disks or local SSDs attached
2701	// to the new instance.
2702	//
2703	// This property is mutually exclusive with the source property; you can
2704	// only define one or the other, but not both.
2705	InitializeParams *AttachedDiskInitializeParams `json:"initializeParams,omitempty"`
2706
2707	// Interface: Specifies the disk interface to use for attaching this
2708	// disk, which is either SCSI or NVME. The default is SCSI. Persistent
2709	// disks must always use SCSI and the request will fail if you attempt
2710	// to attach a persistent disk in any other format than SCSI. Local SSDs
2711	// can use either NVME or SCSI. For performance characteristics of SCSI
2712	// over NVMe, see Local SSD performance.
2713	//
2714	// Possible values:
2715	//   "NVME"
2716	//   "SCSI"
2717	Interface string `json:"interface,omitempty"`
2718
2719	// Kind: [Output Only] Type of the resource. Always compute#attachedDisk
2720	// for attached disks.
2721	Kind string `json:"kind,omitempty"`
2722
2723	// Licenses: [Output Only] Any valid publicly visible licenses.
2724	Licenses []string `json:"licenses,omitempty"`
2725
2726	// Mode: The mode in which to attach this disk, either READ_WRITE or
2727	// READ_ONLY. If not specified, the default is to attach the disk in
2728	// READ_WRITE mode.
2729	//
2730	// Possible values:
2731	//   "READ_ONLY"
2732	//   "READ_WRITE"
2733	Mode string `json:"mode,omitempty"`
2734
2735	// ShieldedInstanceInitialState: [Output Only] shielded vm initial state
2736	// stored on disk
2737	ShieldedInstanceInitialState *InitialStateConfig `json:"shieldedInstanceInitialState,omitempty"`
2738
2739	// Source: Specifies a valid partial or full URL to an existing
2740	// Persistent Disk resource. When creating a new instance, one of
2741	// initializeParams.sourceImage or initializeParams.sourceSnapshot or
2742	// disks.source is required except for local SSD.
2743	//
2744	// If desired, you can also attach existing non-root persistent disks
2745	// using this property. This field is only applicable for persistent
2746	// disks.
2747	//
2748	// Note that for InstanceTemplate, specify the disk name, not the URL
2749	// for the disk.
2750	Source string `json:"source,omitempty"`
2751
2752	// Type: Specifies the type of the disk, either SCRATCH or PERSISTENT.
2753	// If not specified, the default is PERSISTENT.
2754	//
2755	// Possible values:
2756	//   "PERSISTENT"
2757	//   "SCRATCH"
2758	Type string `json:"type,omitempty"`
2759
2760	// ForceSendFields is a list of field names (e.g. "AutoDelete") to
2761	// unconditionally include in API requests. By default, fields with
2762	// empty values are omitted from API requests. However, any non-pointer,
2763	// non-interface field appearing in ForceSendFields will be sent to the
2764	// server regardless of whether the field is empty or not. This may be
2765	// used to include empty fields in Patch requests.
2766	ForceSendFields []string `json:"-"`
2767
2768	// NullFields is a list of field names (e.g. "AutoDelete") to include in
2769	// API requests with the JSON null value. By default, fields with empty
2770	// values are omitted from API requests. However, any field with an
2771	// empty value appearing in NullFields will be sent to the server as
2772	// null. It is an error if a field in this list has a non-empty value.
2773	// This may be used to include null fields in Patch requests.
2774	NullFields []string `json:"-"`
2775}
2776
2777func (s *AttachedDisk) MarshalJSON() ([]byte, error) {
2778	type NoMethod AttachedDisk
2779	raw := NoMethod(*s)
2780	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2781}
2782
2783// AttachedDiskInitializeParams: [Input Only] Specifies the parameters
2784// for a new disk that will be created alongside the new instance. Use
2785// initialization parameters to create boot disks or local SSDs attached
2786// to the new instance.
2787//
2788// This property is mutually exclusive with the source property; you can
2789// only define one or the other, but not both.
2790type AttachedDiskInitializeParams struct {
2791	// Description: An optional description. Provide this property when
2792	// creating the disk.
2793	Description string `json:"description,omitempty"`
2794
2795	// DiskName: Specifies the disk name. If not specified, the default is
2796	// to use the name of the instance. If a disk with the same name already
2797	// exists in the given region, the existing disk is attached to the new
2798	// instance and the new disk is not created.
2799	DiskName string `json:"diskName,omitempty"`
2800
2801	// DiskSizeGb: Specifies the size of the disk in base-2 GB. The size
2802	// must be at least 10 GB. If you specify a sourceImage, which is
2803	// required for boot disks, the default size is the size of the
2804	// sourceImage. If you do not specify a sourceImage, the default disk
2805	// size is 500 GB.
2806	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
2807
2808	// DiskType: Specifies the disk type to use to create the instance. If
2809	// not specified, the default is pd-standard, specified using the full
2810	// URL. For
2811	// example:
2812	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/diskTypes/pd-standard
2813	//
2814	//
2815	// Other values include pd-ssd and local-ssd. If you define this field,
2816	// you can provide either the full or partial URL. For example, the
2817	// following are valid values:
2818	// -
2819	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/diskTypes/diskType
2820	//
2821	// - projects/project/zones/zone/diskTypes/diskType
2822	// - zones/zone/diskTypes/diskType  Note that for InstanceTemplate, this
2823	// is the name of the disk type, not URL.
2824	DiskType string `json:"diskType,omitempty"`
2825
2826	// GuestOsFeatures: A list of features to enable on the guest operating
2827	// system. Applicable only for bootable images. Read  Enabling guest
2828	// operating system features to see a list of available options.
2829	//
2830	// Guest OS features are applied by merging
2831	// initializeParams.guestOsFeatures and disks.guestOsFeatures
2832	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
2833
2834	// Labels: Labels to apply to this disk. These can be later modified by
2835	// the disks.setLabels method. This field is only applicable for
2836	// persistent disks.
2837	Labels map[string]string `json:"labels,omitempty"`
2838
2839	// MultiWriter: Indicates whether or not the disk can be read/write
2840	// attached to more than one instance.
2841	MultiWriter bool `json:"multiWriter,omitempty"`
2842
2843	// OnUpdateAction: Specifies which action to take on instance update
2844	// with this disk. Default is to use the existing disk.
2845	//
2846	// Possible values:
2847	//   "RECREATE_DISK"
2848	//   "RECREATE_DISK_IF_SOURCE_CHANGED"
2849	//   "USE_EXISTING_DISK"
2850	OnUpdateAction string `json:"onUpdateAction,omitempty"`
2851
2852	// ProvisionedIops: Indicates how many IOPS must be provisioned for the
2853	// disk.
2854	ProvisionedIops int64 `json:"provisionedIops,omitempty,string"`
2855
2856	// ResourcePolicies: Resource policies applied to this disk for
2857	// automatic snapshot creations. Specified using the full or partial
2858	// URL. For instance template, specify only the resource policy name.
2859	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
2860
2861	// SourceImage: The source image to create this disk. When creating a
2862	// new instance, one of initializeParams.sourceImage or
2863	// initializeParams.sourceSnapshot or disks.source is required except
2864	// for local SSD.
2865	//
2866	// To create a disk with one of the public operating system images,
2867	// specify the image by its family name. For example, specify
2868	// family/debian-9 to use the latest Debian 9
2869	// image:
2870	// projects/debian-cloud/global/images/family/debian-9
2871	//
2872	//
2873	// Alternatively, use a specific version of a public operating system
2874	// image:
2875	// projects/debian-cloud/global/images/debian-9-stretch-vYYYYMMDD
2876	//
2877	//
2878	// To create a disk with a custom image that you created, specify the
2879	// image name in the following
2880	// format:
2881	// global/images/my-custom-image
2882	//
2883	//
2884	// You can also specify a custom image by its image family, which
2885	// returns the latest version of the image in that family. Replace the
2886	// image name with
2887	// family/family-name:
2888	// global/images/family/my-image-family
2889	//
2890	//
2891	// If the source image is deleted later, this field will not be set.
2892	SourceImage string `json:"sourceImage,omitempty"`
2893
2894	// SourceImageEncryptionKey: The customer-supplied encryption key of the
2895	// source image. Required if the source image is protected by a
2896	// customer-supplied encryption key.
2897	//
2898	// Instance templates do not store customer-supplied encryption keys, so
2899	// you cannot create disks for instances in a managed instance group if
2900	// the source images are encrypted with your own keys.
2901	SourceImageEncryptionKey *CustomerEncryptionKey `json:"sourceImageEncryptionKey,omitempty"`
2902
2903	// SourceSnapshot: The source snapshot to create this disk. When
2904	// creating a new instance, one of initializeParams.sourceSnapshot or
2905	// initializeParams.sourceImage or disks.source is required except for
2906	// local SSD.
2907	//
2908	// To create a disk with a snapshot that you created, specify the
2909	// snapshot name in the following
2910	// format:
2911	// global/snapshots/my-backup
2912	//
2913	//
2914	// If the source snapshot is deleted later, this field will not be set.
2915	SourceSnapshot string `json:"sourceSnapshot,omitempty"`
2916
2917	// SourceSnapshotEncryptionKey: The customer-supplied encryption key of
2918	// the source snapshot.
2919	SourceSnapshotEncryptionKey *CustomerEncryptionKey `json:"sourceSnapshotEncryptionKey,omitempty"`
2920
2921	// ForceSendFields is a list of field names (e.g. "Description") to
2922	// unconditionally include in API requests. By default, fields with
2923	// empty values are omitted from API requests. However, any non-pointer,
2924	// non-interface field appearing in ForceSendFields will be sent to the
2925	// server regardless of whether the field is empty or not. This may be
2926	// used to include empty fields in Patch requests.
2927	ForceSendFields []string `json:"-"`
2928
2929	// NullFields is a list of field names (e.g. "Description") to include
2930	// in API requests with the JSON null value. By default, fields with
2931	// empty values are omitted from API requests. However, any field with
2932	// an empty value appearing in NullFields will be sent to the server as
2933	// null. It is an error if a field in this list has a non-empty value.
2934	// This may be used to include null fields in Patch requests.
2935	NullFields []string `json:"-"`
2936}
2937
2938func (s *AttachedDiskInitializeParams) MarshalJSON() ([]byte, error) {
2939	type NoMethod AttachedDiskInitializeParams
2940	raw := NoMethod(*s)
2941	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2942}
2943
2944// AuditConfig: Specifies the audit configuration for a service. The
2945// configuration determines which permission types are logged, and what
2946// identities, if any, are exempted from logging. An AuditConfig must
2947// have one or more AuditLogConfigs.
2948//
2949// If there are AuditConfigs for both `allServices` and a specific
2950// service, the union of the two AuditConfigs is used for that service:
2951// the log_types specified in each AuditConfig are enabled, and the
2952// exempted_members in each AuditLogConfig are exempted.
2953//
2954// Example Policy with multiple AuditConfigs:
2955//
2956// { "audit_configs": [ { "service": "allServices", "audit_log_configs":
2957// [ { "log_type": "DATA_READ", "exempted_members": [
2958// "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, {
2959// "log_type": "ADMIN_READ" } ] }, { "service":
2960// "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type":
2961// "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [
2962// "user:aliya@example.com" ] } ] } ] }
2963//
2964// For sampleservice, this policy enables DATA_READ, DATA_WRITE and
2965// ADMIN_READ logging. It also exempts jose@example.com from DATA_READ
2966// logging, and aliya@example.com from DATA_WRITE logging.
2967type AuditConfig struct {
2968	// AuditLogConfigs: The configuration for logging of each type of
2969	// permission.
2970	AuditLogConfigs []*AuditLogConfig `json:"auditLogConfigs,omitempty"`
2971
2972	ExemptedMembers []string `json:"exemptedMembers,omitempty"`
2973
2974	// Service: Specifies a service that will be enabled for audit logging.
2975	// For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
2976	// `allServices` is a special value that covers all services.
2977	Service string `json:"service,omitempty"`
2978
2979	// ForceSendFields is a list of field names (e.g. "AuditLogConfigs") to
2980	// unconditionally include in API requests. By default, fields with
2981	// empty values are omitted from API requests. However, any non-pointer,
2982	// non-interface field appearing in ForceSendFields will be sent to the
2983	// server regardless of whether the field is empty or not. This may be
2984	// used to include empty fields in Patch requests.
2985	ForceSendFields []string `json:"-"`
2986
2987	// NullFields is a list of field names (e.g. "AuditLogConfigs") to
2988	// include in API requests with the JSON null value. By default, fields
2989	// with empty values are omitted from API requests. However, any field
2990	// with an empty value appearing in NullFields will be sent to the
2991	// server as null. It is an error if a field in this list has a
2992	// non-empty value. This may be used to include null fields in Patch
2993	// requests.
2994	NullFields []string `json:"-"`
2995}
2996
2997func (s *AuditConfig) MarshalJSON() ([]byte, error) {
2998	type NoMethod AuditConfig
2999	raw := NoMethod(*s)
3000	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3001}
3002
3003// AuditLogConfig: Provides the configuration for logging a type of
3004// permissions. Example:
3005//
3006// { "audit_log_configs": [ { "log_type": "DATA_READ",
3007// "exempted_members": [ "user:jose@example.com" ] }, { "log_type":
3008// "DATA_WRITE" } ] }
3009//
3010// This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
3011// jose@example.com from DATA_READ logging.
3012type AuditLogConfig struct {
3013	// ExemptedMembers: Specifies the identities that do not cause logging
3014	// for this type of permission. Follows the same format of
3015	// [Binding.members][].
3016	ExemptedMembers []string `json:"exemptedMembers,omitempty"`
3017
3018	IgnoreChildExemptions bool `json:"ignoreChildExemptions,omitempty"`
3019
3020	// LogType: The log type that this config enables.
3021	//
3022	// Possible values:
3023	//   "ADMIN_READ"
3024	//   "DATA_READ"
3025	//   "DATA_WRITE"
3026	//   "LOG_TYPE_UNSPECIFIED"
3027	LogType string `json:"logType,omitempty"`
3028
3029	// ForceSendFields is a list of field names (e.g. "ExemptedMembers") to
3030	// unconditionally include in API requests. By default, fields with
3031	// empty values are omitted from API requests. However, any non-pointer,
3032	// non-interface field appearing in ForceSendFields will be sent to the
3033	// server regardless of whether the field is empty or not. This may be
3034	// used to include empty fields in Patch requests.
3035	ForceSendFields []string `json:"-"`
3036
3037	// NullFields is a list of field names (e.g. "ExemptedMembers") to
3038	// include in API requests with the JSON null value. By default, fields
3039	// with empty values are omitted from API requests. However, any field
3040	// with an empty value appearing in NullFields will be sent to the
3041	// server as null. It is an error if a field in this list has a
3042	// non-empty value. This may be used to include null fields in Patch
3043	// requests.
3044	NullFields []string `json:"-"`
3045}
3046
3047func (s *AuditLogConfig) MarshalJSON() ([]byte, error) {
3048	type NoMethod AuditLogConfig
3049	raw := NoMethod(*s)
3050	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3051}
3052
3053// AuthorizationLoggingOptions: Authorization-related information used
3054// by Cloud Audit Logging.
3055type AuthorizationLoggingOptions struct {
3056	// PermissionType: The type of the permission that was checked.
3057	//
3058	// Possible values:
3059	//   "ADMIN_READ"
3060	//   "ADMIN_WRITE"
3061	//   "DATA_READ"
3062	//   "DATA_WRITE"
3063	//   "PERMISSION_TYPE_UNSPECIFIED"
3064	PermissionType string `json:"permissionType,omitempty"`
3065
3066	// ForceSendFields is a list of field names (e.g. "PermissionType") to
3067	// unconditionally include in API requests. By default, fields with
3068	// empty values are omitted from API requests. However, any non-pointer,
3069	// non-interface field appearing in ForceSendFields will be sent to the
3070	// server regardless of whether the field is empty or not. This may be
3071	// used to include empty fields in Patch requests.
3072	ForceSendFields []string `json:"-"`
3073
3074	// NullFields is a list of field names (e.g. "PermissionType") to
3075	// include in API requests with the JSON null value. By default, fields
3076	// with empty values are omitted from API requests. However, any field
3077	// with an empty value appearing in NullFields will be sent to the
3078	// server as null. It is an error if a field in this list has a
3079	// non-empty value. This may be used to include null fields in Patch
3080	// requests.
3081	NullFields []string `json:"-"`
3082}
3083
3084func (s *AuthorizationLoggingOptions) MarshalJSON() ([]byte, error) {
3085	type NoMethod AuthorizationLoggingOptions
3086	raw := NoMethod(*s)
3087	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3088}
3089
3090// Autoscaler: Represents an Autoscaler resource.
3091//
3092// Google Compute Engine has two Autoscaler resources:
3093//
3094// * Zonal (/compute/docs/reference/rest/{$api_version}/autoscalers) *
3095// Regional
3096// (/compute/docs/reference/rest/{$api_version}/regionAutoscalers)
3097//
3098// Use autoscalers to automatically add or delete instances from a
3099// managed instance group according to your defined autoscaling policy.
3100// For more information, read Autoscaling Groups of Instances.
3101//
3102// For zonal managed instance groups resource, use the autoscaler
3103// resource.
3104//
3105// For regional managed instance groups, use the regionAutoscalers
3106// resource. (== resource_for {$api_version}.autoscalers ==) (==
3107// resource_for {$api_version}.regionAutoscalers ==)
3108type Autoscaler struct {
3109	// AutoscalingPolicy: The configuration parameters for the autoscaling
3110	// algorithm. You can define one or more of the policies for an
3111	// autoscaler: cpuUtilization, customMetricUtilizations, and
3112	// loadBalancingUtilization.
3113	//
3114	// If none of these are specified, the default will be to autoscale
3115	// based on cpuUtilization to 0.6 or 60%.
3116	AutoscalingPolicy *AutoscalingPolicy `json:"autoscalingPolicy,omitempty"`
3117
3118	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
3119	// format.
3120	CreationTimestamp string `json:"creationTimestamp,omitempty"`
3121
3122	// Description: An optional description of this resource. Provide this
3123	// property when you create the resource.
3124	Description string `json:"description,omitempty"`
3125
3126	// Id: [Output Only] The unique identifier for the resource. This
3127	// identifier is defined by the server.
3128	Id uint64 `json:"id,omitempty,string"`
3129
3130	// Kind: [Output Only] Type of the resource. Always compute#autoscaler
3131	// for autoscalers.
3132	Kind string `json:"kind,omitempty"`
3133
3134	// Name: Name of the resource. Provided by the client when the resource
3135	// is created. The name must be 1-63 characters long, and comply with
3136	// RFC1035. Specifically, the name must be 1-63 characters long and
3137	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
3138	// the first character must be a lowercase letter, and all following
3139	// characters must be a dash, lowercase letter, or digit, except the
3140	// last character, which cannot be a dash.
3141	Name string `json:"name,omitempty"`
3142
3143	// RecommendedSize: [Output Only] Target recommended MIG size (number of
3144	// instances) computed by autoscaler. Autoscaler calculates the
3145	// recommended MIG size even when the autoscaling policy mode is
3146	// different from ON. This field is empty when autoscaler is not
3147	// connected to an existing managed instance group or autoscaler did not
3148	// generate its prediction.
3149	RecommendedSize int64 `json:"recommendedSize,omitempty"`
3150
3151	// Region: [Output Only] URL of the region where the instance group
3152	// resides (for autoscalers living in regional scope).
3153	Region string `json:"region,omitempty"`
3154
3155	// ScalingScheduleStatus: [Output Only] Status information of existing
3156	// scaling schedules.
3157	ScalingScheduleStatus map[string]ScalingScheduleStatus `json:"scalingScheduleStatus,omitempty"`
3158
3159	// SelfLink: [Output Only] Server-defined URL for the resource.
3160	SelfLink string `json:"selfLink,omitempty"`
3161
3162	// Status: [Output Only] The status of the autoscaler configuration.
3163	// Current set of possible values:
3164	// - PENDING: Autoscaler backend hasn't read new/updated configuration.
3165	//
3166	// - DELETING: Configuration is being deleted.
3167	// - ACTIVE: Configuration is acknowledged to be effective. Some
3168	// warnings might be present in the statusDetails field.
3169	// - ERROR: Configuration has errors. Actionable for users. Details are
3170	// present in the statusDetails field.  New values might be added in the
3171	// future.
3172	//
3173	// Possible values:
3174	//   "ACTIVE"
3175	//   "DELETING"
3176	//   "ERROR"
3177	//   "PENDING"
3178	Status string `json:"status,omitempty"`
3179
3180	// StatusDetails: [Output Only] Human-readable details about the current
3181	// state of the autoscaler. Read the documentation for Commonly returned
3182	// status messages for examples of status messages you might encounter.
3183	StatusDetails []*AutoscalerStatusDetails `json:"statusDetails,omitempty"`
3184
3185	// Target: URL of the managed instance group that this autoscaler will
3186	// scale. This field is required when creating an autoscaler.
3187	Target string `json:"target,omitempty"`
3188
3189	// Zone: [Output Only] URL of the zone where the instance group resides
3190	// (for autoscalers living in zonal scope).
3191	Zone string `json:"zone,omitempty"`
3192
3193	// ServerResponse contains the HTTP response code and headers from the
3194	// server.
3195	googleapi.ServerResponse `json:"-"`
3196
3197	// ForceSendFields is a list of field names (e.g. "AutoscalingPolicy")
3198	// to unconditionally include in API requests. By default, fields with
3199	// empty values are omitted from API requests. However, any non-pointer,
3200	// non-interface field appearing in ForceSendFields will be sent to the
3201	// server regardless of whether the field is empty or not. This may be
3202	// used to include empty fields in Patch requests.
3203	ForceSendFields []string `json:"-"`
3204
3205	// NullFields is a list of field names (e.g. "AutoscalingPolicy") to
3206	// include in API requests with the JSON null value. By default, fields
3207	// with empty values are omitted from API requests. However, any field
3208	// with an empty value appearing in NullFields will be sent to the
3209	// server as null. It is an error if a field in this list has a
3210	// non-empty value. This may be used to include null fields in Patch
3211	// requests.
3212	NullFields []string `json:"-"`
3213}
3214
3215func (s *Autoscaler) MarshalJSON() ([]byte, error) {
3216	type NoMethod Autoscaler
3217	raw := NoMethod(*s)
3218	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3219}
3220
3221type AutoscalerAggregatedList struct {
3222	// Id: [Output Only] Unique identifier for the resource; defined by the
3223	// server.
3224	Id string `json:"id,omitempty"`
3225
3226	// Items: A list of AutoscalersScopedList resources.
3227	Items map[string]AutoscalersScopedList `json:"items,omitempty"`
3228
3229	// Kind: [Output Only] Type of resource. Always
3230	// compute#autoscalerAggregatedList for aggregated lists of autoscalers.
3231	Kind string `json:"kind,omitempty"`
3232
3233	// NextPageToken: [Output Only] This token allows you to get the next
3234	// page of results for list requests. If the number of results is larger
3235	// than maxResults, use the nextPageToken as a value for the query
3236	// parameter pageToken in the next list request. Subsequent list
3237	// requests will have their own nextPageToken to continue paging through
3238	// the results.
3239	NextPageToken string `json:"nextPageToken,omitempty"`
3240
3241	// SelfLink: [Output Only] Server-defined URL for this resource.
3242	SelfLink string `json:"selfLink,omitempty"`
3243
3244	// Unreachables: [Output Only] Unreachable resources.
3245	Unreachables []string `json:"unreachables,omitempty"`
3246
3247	// Warning: [Output Only] Informational warning message.
3248	Warning *AutoscalerAggregatedListWarning `json:"warning,omitempty"`
3249
3250	// ServerResponse contains the HTTP response code and headers from the
3251	// server.
3252	googleapi.ServerResponse `json:"-"`
3253
3254	// ForceSendFields is a list of field names (e.g. "Id") to
3255	// unconditionally include in API requests. By default, fields with
3256	// empty values are omitted from API requests. However, any non-pointer,
3257	// non-interface field appearing in ForceSendFields will be sent to the
3258	// server regardless of whether the field is empty or not. This may be
3259	// used to include empty fields in Patch requests.
3260	ForceSendFields []string `json:"-"`
3261
3262	// NullFields is a list of field names (e.g. "Id") to include in API
3263	// requests with the JSON null value. By default, fields with empty
3264	// values are omitted from API requests. However, any field with an
3265	// empty value appearing in NullFields will be sent to the server as
3266	// null. It is an error if a field in this list has a non-empty value.
3267	// This may be used to include null fields in Patch requests.
3268	NullFields []string `json:"-"`
3269}
3270
3271func (s *AutoscalerAggregatedList) MarshalJSON() ([]byte, error) {
3272	type NoMethod AutoscalerAggregatedList
3273	raw := NoMethod(*s)
3274	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3275}
3276
3277// AutoscalerAggregatedListWarning: [Output Only] Informational warning
3278// message.
3279type AutoscalerAggregatedListWarning struct {
3280	// Code: [Output Only] A warning code, if applicable. For example,
3281	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
3282	// the response.
3283	//
3284	// Possible values:
3285	//   "CLEANUP_FAILED"
3286	//   "DEPRECATED_RESOURCE_USED"
3287	//   "DEPRECATED_TYPE_USED"
3288	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
3289	//   "EXPERIMENTAL_TYPE_USED"
3290	//   "EXTERNAL_API_WARNING"
3291	//   "FIELD_VALUE_OVERRIDEN"
3292	//   "INJECTED_KERNELS_DEPRECATED"
3293	//   "LARGE_DEPLOYMENT_WARNING"
3294	//   "MISSING_TYPE_DEPENDENCY"
3295	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
3296	//   "NEXT_HOP_CANNOT_IP_FORWARD"
3297	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
3298	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
3299	//   "NEXT_HOP_NOT_RUNNING"
3300	//   "NOT_CRITICAL_ERROR"
3301	//   "NO_RESULTS_ON_PAGE"
3302	//   "PARTIAL_SUCCESS"
3303	//   "REQUIRED_TOS_AGREEMENT"
3304	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
3305	//   "RESOURCE_NOT_DELETED"
3306	//   "SCHEMA_VALIDATION_IGNORED"
3307	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
3308	//   "UNDECLARED_PROPERTIES"
3309	//   "UNREACHABLE"
3310	Code string `json:"code,omitempty"`
3311
3312	// Data: [Output Only] Metadata about this warning in key: value format.
3313	// For example:
3314	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
3315	Data []*AutoscalerAggregatedListWarningData `json:"data,omitempty"`
3316
3317	// Message: [Output Only] A human-readable description of the warning
3318	// code.
3319	Message string `json:"message,omitempty"`
3320
3321	// ForceSendFields is a list of field names (e.g. "Code") to
3322	// unconditionally include in API requests. By default, fields with
3323	// empty values are omitted from API requests. However, any non-pointer,
3324	// non-interface field appearing in ForceSendFields will be sent to the
3325	// server regardless of whether the field is empty or not. This may be
3326	// used to include empty fields in Patch requests.
3327	ForceSendFields []string `json:"-"`
3328
3329	// NullFields is a list of field names (e.g. "Code") to include in API
3330	// requests with the JSON null value. By default, fields with empty
3331	// values are omitted from API requests. However, any field with an
3332	// empty value appearing in NullFields will be sent to the server as
3333	// null. It is an error if a field in this list has a non-empty value.
3334	// This may be used to include null fields in Patch requests.
3335	NullFields []string `json:"-"`
3336}
3337
3338func (s *AutoscalerAggregatedListWarning) MarshalJSON() ([]byte, error) {
3339	type NoMethod AutoscalerAggregatedListWarning
3340	raw := NoMethod(*s)
3341	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3342}
3343
3344type AutoscalerAggregatedListWarningData struct {
3345	// Key: [Output Only] A key that provides more detail on the warning
3346	// being returned. For example, for warnings where there are no results
3347	// in a list request for a particular zone, this key might be scope and
3348	// the key value might be the zone name. Other examples might be a key
3349	// indicating a deprecated resource and a suggested replacement, or a
3350	// warning about invalid network settings (for example, if an instance
3351	// attempts to perform IP forwarding but is not enabled for IP
3352	// forwarding).
3353	Key string `json:"key,omitempty"`
3354
3355	// Value: [Output Only] A warning data value corresponding to the key.
3356	Value string `json:"value,omitempty"`
3357
3358	// ForceSendFields is a list of field names (e.g. "Key") to
3359	// unconditionally include in API requests. By default, fields with
3360	// empty values are omitted from API requests. However, any non-pointer,
3361	// non-interface field appearing in ForceSendFields will be sent to the
3362	// server regardless of whether the field is empty or not. This may be
3363	// used to include empty fields in Patch requests.
3364	ForceSendFields []string `json:"-"`
3365
3366	// NullFields is a list of field names (e.g. "Key") to include in API
3367	// requests with the JSON null value. By default, fields with empty
3368	// values are omitted from API requests. However, any field with an
3369	// empty value appearing in NullFields will be sent to the server as
3370	// null. It is an error if a field in this list has a non-empty value.
3371	// This may be used to include null fields in Patch requests.
3372	NullFields []string `json:"-"`
3373}
3374
3375func (s *AutoscalerAggregatedListWarningData) MarshalJSON() ([]byte, error) {
3376	type NoMethod AutoscalerAggregatedListWarningData
3377	raw := NoMethod(*s)
3378	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3379}
3380
3381// AutoscalerList: Contains a list of Autoscaler resources.
3382type AutoscalerList struct {
3383	// Id: [Output Only] Unique identifier for the resource; defined by the
3384	// server.
3385	Id string `json:"id,omitempty"`
3386
3387	// Items: A list of Autoscaler resources.
3388	Items []*Autoscaler `json:"items,omitempty"`
3389
3390	// Kind: [Output Only] Type of resource. Always compute#autoscalerList
3391	// for lists of autoscalers.
3392	Kind string `json:"kind,omitempty"`
3393
3394	// NextPageToken: [Output Only] This token allows you to get the next
3395	// page of results for list requests. If the number of results is larger
3396	// than maxResults, use the nextPageToken as a value for the query
3397	// parameter pageToken in the next list request. Subsequent list
3398	// requests will have their own nextPageToken to continue paging through
3399	// the results.
3400	NextPageToken string `json:"nextPageToken,omitempty"`
3401
3402	// SelfLink: [Output Only] Server-defined URL for this resource.
3403	SelfLink string `json:"selfLink,omitempty"`
3404
3405	// Warning: [Output Only] Informational warning message.
3406	Warning *AutoscalerListWarning `json:"warning,omitempty"`
3407
3408	// ServerResponse contains the HTTP response code and headers from the
3409	// server.
3410	googleapi.ServerResponse `json:"-"`
3411
3412	// ForceSendFields is a list of field names (e.g. "Id") to
3413	// unconditionally include in API requests. By default, fields with
3414	// empty values are omitted from API requests. However, any non-pointer,
3415	// non-interface field appearing in ForceSendFields will be sent to the
3416	// server regardless of whether the field is empty or not. This may be
3417	// used to include empty fields in Patch requests.
3418	ForceSendFields []string `json:"-"`
3419
3420	// NullFields is a list of field names (e.g. "Id") to include in API
3421	// requests with the JSON null value. By default, fields with empty
3422	// values are omitted from API requests. However, any field with an
3423	// empty value appearing in NullFields will be sent to the server as
3424	// null. It is an error if a field in this list has a non-empty value.
3425	// This may be used to include null fields in Patch requests.
3426	NullFields []string `json:"-"`
3427}
3428
3429func (s *AutoscalerList) MarshalJSON() ([]byte, error) {
3430	type NoMethod AutoscalerList
3431	raw := NoMethod(*s)
3432	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3433}
3434
3435// AutoscalerListWarning: [Output Only] Informational warning message.
3436type AutoscalerListWarning struct {
3437	// Code: [Output Only] A warning code, if applicable. For example,
3438	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
3439	// the response.
3440	//
3441	// Possible values:
3442	//   "CLEANUP_FAILED"
3443	//   "DEPRECATED_RESOURCE_USED"
3444	//   "DEPRECATED_TYPE_USED"
3445	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
3446	//   "EXPERIMENTAL_TYPE_USED"
3447	//   "EXTERNAL_API_WARNING"
3448	//   "FIELD_VALUE_OVERRIDEN"
3449	//   "INJECTED_KERNELS_DEPRECATED"
3450	//   "LARGE_DEPLOYMENT_WARNING"
3451	//   "MISSING_TYPE_DEPENDENCY"
3452	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
3453	//   "NEXT_HOP_CANNOT_IP_FORWARD"
3454	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
3455	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
3456	//   "NEXT_HOP_NOT_RUNNING"
3457	//   "NOT_CRITICAL_ERROR"
3458	//   "NO_RESULTS_ON_PAGE"
3459	//   "PARTIAL_SUCCESS"
3460	//   "REQUIRED_TOS_AGREEMENT"
3461	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
3462	//   "RESOURCE_NOT_DELETED"
3463	//   "SCHEMA_VALIDATION_IGNORED"
3464	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
3465	//   "UNDECLARED_PROPERTIES"
3466	//   "UNREACHABLE"
3467	Code string `json:"code,omitempty"`
3468
3469	// Data: [Output Only] Metadata about this warning in key: value format.
3470	// For example:
3471	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
3472	Data []*AutoscalerListWarningData `json:"data,omitempty"`
3473
3474	// Message: [Output Only] A human-readable description of the warning
3475	// code.
3476	Message string `json:"message,omitempty"`
3477
3478	// ForceSendFields is a list of field names (e.g. "Code") to
3479	// unconditionally include in API requests. By default, fields with
3480	// empty values are omitted from API requests. However, any non-pointer,
3481	// non-interface field appearing in ForceSendFields will be sent to the
3482	// server regardless of whether the field is empty or not. This may be
3483	// used to include empty fields in Patch requests.
3484	ForceSendFields []string `json:"-"`
3485
3486	// NullFields is a list of field names (e.g. "Code") to include in API
3487	// requests with the JSON null value. By default, fields with empty
3488	// values are omitted from API requests. However, any field with an
3489	// empty value appearing in NullFields will be sent to the server as
3490	// null. It is an error if a field in this list has a non-empty value.
3491	// This may be used to include null fields in Patch requests.
3492	NullFields []string `json:"-"`
3493}
3494
3495func (s *AutoscalerListWarning) MarshalJSON() ([]byte, error) {
3496	type NoMethod AutoscalerListWarning
3497	raw := NoMethod(*s)
3498	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3499}
3500
3501type AutoscalerListWarningData struct {
3502	// Key: [Output Only] A key that provides more detail on the warning
3503	// being returned. For example, for warnings where there are no results
3504	// in a list request for a particular zone, this key might be scope and
3505	// the key value might be the zone name. Other examples might be a key
3506	// indicating a deprecated resource and a suggested replacement, or a
3507	// warning about invalid network settings (for example, if an instance
3508	// attempts to perform IP forwarding but is not enabled for IP
3509	// forwarding).
3510	Key string `json:"key,omitempty"`
3511
3512	// Value: [Output Only] A warning data value corresponding to the key.
3513	Value string `json:"value,omitempty"`
3514
3515	// ForceSendFields is a list of field names (e.g. "Key") to
3516	// unconditionally include in API requests. By default, fields with
3517	// empty values are omitted from API requests. However, any non-pointer,
3518	// non-interface field appearing in ForceSendFields will be sent to the
3519	// server regardless of whether the field is empty or not. This may be
3520	// used to include empty fields in Patch requests.
3521	ForceSendFields []string `json:"-"`
3522
3523	// NullFields is a list of field names (e.g. "Key") to include in API
3524	// requests with the JSON null value. By default, fields with empty
3525	// values are omitted from API requests. However, any field with an
3526	// empty value appearing in NullFields will be sent to the server as
3527	// null. It is an error if a field in this list has a non-empty value.
3528	// This may be used to include null fields in Patch requests.
3529	NullFields []string `json:"-"`
3530}
3531
3532func (s *AutoscalerListWarningData) MarshalJSON() ([]byte, error) {
3533	type NoMethod AutoscalerListWarningData
3534	raw := NoMethod(*s)
3535	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3536}
3537
3538type AutoscalerStatusDetails struct {
3539	// Message: The status message.
3540	Message string `json:"message,omitempty"`
3541
3542	// Type: The type of error, warning, or notice returned. Current set of
3543	// possible values:
3544	// - ALL_INSTANCES_UNHEALTHY (WARNING): All instances in the instance
3545	// group are unhealthy (not in RUNNING state).
3546	// - BACKEND_SERVICE_DOES_NOT_EXIST (ERROR): There is no backend service
3547	// attached to the instance group.
3548	// - CAPPED_AT_MAX_NUM_REPLICAS (WARNING): Autoscaler recommends a size
3549	// greater than maxNumReplicas.
3550	// - CUSTOM_METRIC_DATA_POINTS_TOO_SPARSE (WARNING): The custom metric
3551	// samples are not exported often enough to be a credible base for
3552	// autoscaling.
3553	// - CUSTOM_METRIC_INVALID (ERROR): The custom metric that was specified
3554	// does not exist or does not have the necessary labels.
3555	// - MIN_EQUALS_MAX (WARNING): The minNumReplicas is equal to
3556	// maxNumReplicas. This means the autoscaler cannot add or remove
3557	// instances from the instance group.
3558	// - MISSING_CUSTOM_METRIC_DATA_POINTS (WARNING): The autoscaler did not
3559	// receive any data from the custom metric configured for autoscaling.
3560	//
3561	// - MISSING_LOAD_BALANCING_DATA_POINTS (WARNING): The autoscaler is
3562	// configured to scale based on a load balancing signal but the instance
3563	// group has not received any requests from the load balancer.
3564	// - MODE_OFF (WARNING): Autoscaling is turned off. The number of
3565	// instances in the group won't change automatically. The autoscaling
3566	// configuration is preserved.
3567	// - MODE_ONLY_UP (WARNING): Autoscaling is in the "Autoscale only out"
3568	// mode. The autoscaler can add instances but not remove any.
3569	// - MORE_THAN_ONE_BACKEND_SERVICE (ERROR): The instance group cannot be
3570	// autoscaled because it has more than one backend service attached to
3571	// it.
3572	// - NOT_ENOUGH_QUOTA_AVAILABLE (ERROR): There is insufficient quota for
3573	// the necessary resources, such as CPU or number of instances.
3574	// - REGION_RESOURCE_STOCKOUT (ERROR): Shown only for regional
3575	// autoscalers: there is a resource stockout in the chosen region.
3576	// - SCALING_TARGET_DOES_NOT_EXIST (ERROR): The target to be scaled does
3577	// not exist.
3578	// - UNSUPPORTED_MAX_RATE_LOAD_BALANCING_CONFIGURATION (ERROR):
3579	// Autoscaling does not work with an HTTP/S load balancer that has been
3580	// configured for maxRate.
3581	// - ZONE_RESOURCE_STOCKOUT (ERROR): For zonal autoscalers: there is a
3582	// resource stockout in the chosen zone. For regional autoscalers: in at
3583	// least one of the zones you're using there is a resource stockout.
3584	// New values might be added in the future. Some of the values might not
3585	// be available in all API versions.
3586	//
3587	// Possible values:
3588	//   "ALL_INSTANCES_UNHEALTHY"
3589	//   "BACKEND_SERVICE_DOES_NOT_EXIST"
3590	//   "CAPPED_AT_MAX_NUM_REPLICAS"
3591	//   "CUSTOM_METRIC_DATA_POINTS_TOO_SPARSE"
3592	//   "CUSTOM_METRIC_INVALID"
3593	//   "MIN_EQUALS_MAX"
3594	//   "MISSING_CUSTOM_METRIC_DATA_POINTS"
3595	//   "MISSING_LOAD_BALANCING_DATA_POINTS"
3596	//   "MODE_OFF"
3597	//   "MODE_ONLY_SCALE_OUT"
3598	//   "MODE_ONLY_UP"
3599	//   "MORE_THAN_ONE_BACKEND_SERVICE"
3600	//   "NOT_ENOUGH_QUOTA_AVAILABLE"
3601	//   "REGION_RESOURCE_STOCKOUT"
3602	//   "SCALING_TARGET_DOES_NOT_EXIST"
3603	//   "SCHEDULED_INSTANCES_GREATER_THAN_AUTOSCALER_MAX"
3604	//   "SCHEDULED_INSTANCES_LESS_THAN_AUTOSCALER_MIN"
3605	//   "UNKNOWN"
3606	//   "UNSUPPORTED_MAX_RATE_LOAD_BALANCING_CONFIGURATION"
3607	//   "ZONE_RESOURCE_STOCKOUT"
3608	Type string `json:"type,omitempty"`
3609
3610	// ForceSendFields is a list of field names (e.g. "Message") to
3611	// unconditionally include in API requests. By default, fields with
3612	// empty values are omitted from API requests. However, any non-pointer,
3613	// non-interface field appearing in ForceSendFields will be sent to the
3614	// server regardless of whether the field is empty or not. This may be
3615	// used to include empty fields in Patch requests.
3616	ForceSendFields []string `json:"-"`
3617
3618	// NullFields is a list of field names (e.g. "Message") to include in
3619	// API requests with the JSON null value. By default, fields with empty
3620	// values are omitted from API requests. However, any field with an
3621	// empty value appearing in NullFields will be sent to the server as
3622	// null. It is an error if a field in this list has a non-empty value.
3623	// This may be used to include null fields in Patch requests.
3624	NullFields []string `json:"-"`
3625}
3626
3627func (s *AutoscalerStatusDetails) MarshalJSON() ([]byte, error) {
3628	type NoMethod AutoscalerStatusDetails
3629	raw := NoMethod(*s)
3630	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3631}
3632
3633type AutoscalersScopedList struct {
3634	// Autoscalers: [Output Only] A list of autoscalers contained in this
3635	// scope.
3636	Autoscalers []*Autoscaler `json:"autoscalers,omitempty"`
3637
3638	// Warning: [Output Only] Informational warning which replaces the list
3639	// of autoscalers when the list is empty.
3640	Warning *AutoscalersScopedListWarning `json:"warning,omitempty"`
3641
3642	// ForceSendFields is a list of field names (e.g. "Autoscalers") to
3643	// unconditionally include in API requests. By default, fields with
3644	// empty values are omitted from API requests. However, any non-pointer,
3645	// non-interface field appearing in ForceSendFields will be sent to the
3646	// server regardless of whether the field is empty or not. This may be
3647	// used to include empty fields in Patch requests.
3648	ForceSendFields []string `json:"-"`
3649
3650	// NullFields is a list of field names (e.g. "Autoscalers") to include
3651	// in API requests with the JSON null value. By default, fields with
3652	// empty values are omitted from API requests. However, any field with
3653	// an empty value appearing in NullFields will be sent to the server as
3654	// null. It is an error if a field in this list has a non-empty value.
3655	// This may be used to include null fields in Patch requests.
3656	NullFields []string `json:"-"`
3657}
3658
3659func (s *AutoscalersScopedList) MarshalJSON() ([]byte, error) {
3660	type NoMethod AutoscalersScopedList
3661	raw := NoMethod(*s)
3662	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3663}
3664
3665// AutoscalersScopedListWarning: [Output Only] Informational warning
3666// which replaces the list of autoscalers when the list is empty.
3667type AutoscalersScopedListWarning struct {
3668	// Code: [Output Only] A warning code, if applicable. For example,
3669	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
3670	// the response.
3671	//
3672	// Possible values:
3673	//   "CLEANUP_FAILED"
3674	//   "DEPRECATED_RESOURCE_USED"
3675	//   "DEPRECATED_TYPE_USED"
3676	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
3677	//   "EXPERIMENTAL_TYPE_USED"
3678	//   "EXTERNAL_API_WARNING"
3679	//   "FIELD_VALUE_OVERRIDEN"
3680	//   "INJECTED_KERNELS_DEPRECATED"
3681	//   "LARGE_DEPLOYMENT_WARNING"
3682	//   "MISSING_TYPE_DEPENDENCY"
3683	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
3684	//   "NEXT_HOP_CANNOT_IP_FORWARD"
3685	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
3686	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
3687	//   "NEXT_HOP_NOT_RUNNING"
3688	//   "NOT_CRITICAL_ERROR"
3689	//   "NO_RESULTS_ON_PAGE"
3690	//   "PARTIAL_SUCCESS"
3691	//   "REQUIRED_TOS_AGREEMENT"
3692	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
3693	//   "RESOURCE_NOT_DELETED"
3694	//   "SCHEMA_VALIDATION_IGNORED"
3695	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
3696	//   "UNDECLARED_PROPERTIES"
3697	//   "UNREACHABLE"
3698	Code string `json:"code,omitempty"`
3699
3700	// Data: [Output Only] Metadata about this warning in key: value format.
3701	// For example:
3702	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
3703	Data []*AutoscalersScopedListWarningData `json:"data,omitempty"`
3704
3705	// Message: [Output Only] A human-readable description of the warning
3706	// code.
3707	Message string `json:"message,omitempty"`
3708
3709	// ForceSendFields is a list of field names (e.g. "Code") to
3710	// unconditionally include in API requests. By default, fields with
3711	// empty values are omitted from API requests. However, any non-pointer,
3712	// non-interface field appearing in ForceSendFields will be sent to the
3713	// server regardless of whether the field is empty or not. This may be
3714	// used to include empty fields in Patch requests.
3715	ForceSendFields []string `json:"-"`
3716
3717	// NullFields is a list of field names (e.g. "Code") to include in API
3718	// requests with the JSON null value. By default, fields with empty
3719	// values are omitted from API requests. However, any field with an
3720	// empty value appearing in NullFields will be sent to the server as
3721	// null. It is an error if a field in this list has a non-empty value.
3722	// This may be used to include null fields in Patch requests.
3723	NullFields []string `json:"-"`
3724}
3725
3726func (s *AutoscalersScopedListWarning) MarshalJSON() ([]byte, error) {
3727	type NoMethod AutoscalersScopedListWarning
3728	raw := NoMethod(*s)
3729	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3730}
3731
3732type AutoscalersScopedListWarningData struct {
3733	// Key: [Output Only] A key that provides more detail on the warning
3734	// being returned. For example, for warnings where there are no results
3735	// in a list request for a particular zone, this key might be scope and
3736	// the key value might be the zone name. Other examples might be a key
3737	// indicating a deprecated resource and a suggested replacement, or a
3738	// warning about invalid network settings (for example, if an instance
3739	// attempts to perform IP forwarding but is not enabled for IP
3740	// forwarding).
3741	Key string `json:"key,omitempty"`
3742
3743	// Value: [Output Only] A warning data value corresponding to the key.
3744	Value string `json:"value,omitempty"`
3745
3746	// ForceSendFields is a list of field names (e.g. "Key") to
3747	// unconditionally include in API requests. By default, fields with
3748	// empty values are omitted from API requests. However, any non-pointer,
3749	// non-interface field appearing in ForceSendFields will be sent to the
3750	// server regardless of whether the field is empty or not. This may be
3751	// used to include empty fields in Patch requests.
3752	ForceSendFields []string `json:"-"`
3753
3754	// NullFields is a list of field names (e.g. "Key") to include in API
3755	// requests with the JSON null value. By default, fields with empty
3756	// values are omitted from API requests. However, any field with an
3757	// empty value appearing in NullFields will be sent to the server as
3758	// null. It is an error if a field in this list has a non-empty value.
3759	// This may be used to include null fields in Patch requests.
3760	NullFields []string `json:"-"`
3761}
3762
3763func (s *AutoscalersScopedListWarningData) MarshalJSON() ([]byte, error) {
3764	type NoMethod AutoscalersScopedListWarningData
3765	raw := NoMethod(*s)
3766	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3767}
3768
3769// AutoscalingPolicy: Cloud Autoscaler policy.
3770type AutoscalingPolicy struct {
3771	// CoolDownPeriodSec: The number of seconds that the autoscaler waits
3772	// before it starts collecting information from a new instance. This
3773	// prevents the autoscaler from collecting information when the instance
3774	// is initializing, during which the collected usage would not be
3775	// reliable. The default time autoscaler waits is 60 seconds.
3776	//
3777	// Virtual machine initialization times might vary because of numerous
3778	// factors. We recommend that you test how long an instance may take to
3779	// initialize. To do this, create an instance and time the startup
3780	// process.
3781	CoolDownPeriodSec int64 `json:"coolDownPeriodSec,omitempty"`
3782
3783	// CpuUtilization: Defines the CPU utilization policy that allows the
3784	// autoscaler to scale based on the average CPU utilization of a managed
3785	// instance group.
3786	CpuUtilization *AutoscalingPolicyCpuUtilization `json:"cpuUtilization,omitempty"`
3787
3788	// CustomMetricUtilizations: Configuration parameters of autoscaling
3789	// based on a custom metric.
3790	CustomMetricUtilizations []*AutoscalingPolicyCustomMetricUtilization `json:"customMetricUtilizations,omitempty"`
3791
3792	// LoadBalancingUtilization: Configuration parameters of autoscaling
3793	// based on load balancer.
3794	LoadBalancingUtilization *AutoscalingPolicyLoadBalancingUtilization `json:"loadBalancingUtilization,omitempty"`
3795
3796	// MaxNumReplicas: The maximum number of instances that the autoscaler
3797	// can scale out to. This is required when creating or updating an
3798	// autoscaler. The maximum number of replicas must not be lower than
3799	// minimal number of replicas.
3800	MaxNumReplicas int64 `json:"maxNumReplicas,omitempty"`
3801
3802	// MinNumReplicas: The minimum number of replicas that the autoscaler
3803	// can scale in to. This cannot be less than 0. If not provided,
3804	// autoscaler chooses a default value depending on maximum number of
3805	// instances allowed.
3806	MinNumReplicas int64 `json:"minNumReplicas,omitempty"`
3807
3808	// Mode: Defines operating mode for this policy.
3809	//
3810	// Possible values:
3811	//   "OFF"
3812	//   "ON"
3813	//   "ONLY_SCALE_OUT"
3814	//   "ONLY_UP"
3815	Mode string `json:"mode,omitempty"`
3816
3817	ScaleDownControl *AutoscalingPolicyScaleDownControl `json:"scaleDownControl,omitempty"`
3818
3819	ScaleInControl *AutoscalingPolicyScaleInControl `json:"scaleInControl,omitempty"`
3820
3821	// ScalingSchedules: Scaling schedules defined for an autoscaler.
3822	// Multiple schedules can be set on an autoscaler, and they can overlap.
3823	// During overlapping periods the greatest min_required_replicas of all
3824	// scaling schedules is applied. Up to 128 scaling schedules are
3825	// allowed.
3826	ScalingSchedules map[string]AutoscalingPolicyScalingSchedule `json:"scalingSchedules,omitempty"`
3827
3828	// ForceSendFields is a list of field names (e.g. "CoolDownPeriodSec")
3829	// to unconditionally include in API requests. By default, fields with
3830	// empty values are omitted from API requests. However, any non-pointer,
3831	// non-interface field appearing in ForceSendFields will be sent to the
3832	// server regardless of whether the field is empty or not. This may be
3833	// used to include empty fields in Patch requests.
3834	ForceSendFields []string `json:"-"`
3835
3836	// NullFields is a list of field names (e.g. "CoolDownPeriodSec") to
3837	// include in API requests with the JSON null value. By default, fields
3838	// with empty values are omitted from API requests. However, any field
3839	// with an empty value appearing in NullFields will be sent to the
3840	// server as null. It is an error if a field in this list has a
3841	// non-empty value. This may be used to include null fields in Patch
3842	// requests.
3843	NullFields []string `json:"-"`
3844}
3845
3846func (s *AutoscalingPolicy) MarshalJSON() ([]byte, error) {
3847	type NoMethod AutoscalingPolicy
3848	raw := NoMethod(*s)
3849	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3850}
3851
3852// AutoscalingPolicyCpuUtilization: CPU utilization policy.
3853type AutoscalingPolicyCpuUtilization struct {
3854	// PredictiveMethod: Indicates whether predictive autoscaling based on
3855	// CPU metric is enabled. Valid values are:
3856	//
3857	// * NONE (default). No predictive method is used. The autoscaler scales
3858	// the group to meet current demand based on real-time metrics. *
3859	// OPTIMIZE_AVAILABILITY. Predictive autoscaling improves availability
3860	// by monitoring daily and weekly load patterns and scaling out ahead of
3861	// anticipated demand.
3862	//
3863	// Possible values:
3864	//   "NONE"
3865	//   "OPTIMIZE_AVAILABILITY"
3866	//   "PREDICTIVE_METHOD_UNSPECIFIED"
3867	PredictiveMethod string `json:"predictiveMethod,omitempty"`
3868
3869	// UtilizationTarget: The target CPU utilization that the autoscaler
3870	// maintains. Must be a float value in the range (0, 1]. If not
3871	// specified, the default is 0.6.
3872	//
3873	// If the CPU level is below the target utilization, the autoscaler
3874	// scales in the number of instances until it reaches the minimum number
3875	// of instances you specified or until the average CPU of your instances
3876	// reaches the target utilization.
3877	//
3878	// If the average CPU is above the target utilization, the autoscaler
3879	// scales out until it reaches the maximum number of instances you
3880	// specified or until the average utilization reaches the target
3881	// utilization.
3882	UtilizationTarget float64 `json:"utilizationTarget,omitempty"`
3883
3884	// ForceSendFields is a list of field names (e.g. "PredictiveMethod") to
3885	// unconditionally include in API requests. By default, fields with
3886	// empty values are omitted from API requests. However, any non-pointer,
3887	// non-interface field appearing in ForceSendFields will be sent to the
3888	// server regardless of whether the field is empty or not. This may be
3889	// used to include empty fields in Patch requests.
3890	ForceSendFields []string `json:"-"`
3891
3892	// NullFields is a list of field names (e.g. "PredictiveMethod") to
3893	// include in API requests with the JSON null value. By default, fields
3894	// with empty values are omitted from API requests. However, any field
3895	// with an empty value appearing in NullFields will be sent to the
3896	// server as null. It is an error if a field in this list has a
3897	// non-empty value. This may be used to include null fields in Patch
3898	// requests.
3899	NullFields []string `json:"-"`
3900}
3901
3902func (s *AutoscalingPolicyCpuUtilization) MarshalJSON() ([]byte, error) {
3903	type NoMethod AutoscalingPolicyCpuUtilization
3904	raw := NoMethod(*s)
3905	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3906}
3907
3908func (s *AutoscalingPolicyCpuUtilization) UnmarshalJSON(data []byte) error {
3909	type NoMethod AutoscalingPolicyCpuUtilization
3910	var s1 struct {
3911		UtilizationTarget gensupport.JSONFloat64 `json:"utilizationTarget"`
3912		*NoMethod
3913	}
3914	s1.NoMethod = (*NoMethod)(s)
3915	if err := json.Unmarshal(data, &s1); err != nil {
3916		return err
3917	}
3918	s.UtilizationTarget = float64(s1.UtilizationTarget)
3919	return nil
3920}
3921
3922// AutoscalingPolicyCustomMetricUtilization: Custom utilization metric
3923// policy.
3924type AutoscalingPolicyCustomMetricUtilization struct {
3925	// Filter: A filter string, compatible with a Stackdriver Monitoring
3926	// filter string for TimeSeries.list API call. This filter is used to
3927	// select a specific TimeSeries for the purpose of autoscaling and to
3928	// determine whether the metric is exporting per-instance or per-group
3929	// data.
3930	//
3931	// For the filter to be valid for autoscaling purposes, the following
3932	// rules apply:
3933	// - You can only use the AND operator for joining selectors.
3934	// - You can only use direct equality comparison operator (=) without
3935	// any functions for each selector.
3936	// - You can specify the metric in both the filter string and in the
3937	// metric field. However, if specified in both places, the metric must
3938	// be identical.
3939	// - The monitored resource type determines what kind of values are
3940	// expected for the metric. If it is a gce_instance, the autoscaler
3941	// expects the metric to include a separate TimeSeries for each instance
3942	// in a group. In such a case, you cannot filter on resource labels.
3943	// If the resource type is any other value, the autoscaler expects this
3944	// metric to contain values that apply to the entire autoscaled instance
3945	// group and resource label filtering can be performed to point
3946	// autoscaler at the correct TimeSeries to scale upon. This is called a
3947	// per-group metric for the purpose of autoscaling.
3948	//
3949	// If not specified, the type defaults to gce_instance.
3950	//
3951	// Try to provide a filter that is selective enough to pick just one
3952	// TimeSeries for the autoscaled group or for each of the instances (if
3953	// you are using gce_instance resource type). If multiple TimeSeries are
3954	// returned upon the query execution, the autoscaler will sum their
3955	// respective values to obtain its scaling value.
3956	Filter string `json:"filter,omitempty"`
3957
3958	// Metric: The identifier (type) of the Stackdriver Monitoring metric.
3959	// The metric cannot have negative values.
3960	//
3961	// The metric must have a value type of INT64 or DOUBLE.
3962	Metric string `json:"metric,omitempty"`
3963
3964	// SingleInstanceAssignment: If scaling is based on a per-group metric
3965	// value that represents the total amount of work to be done or resource
3966	// usage, set this value to an amount assigned for a single instance of
3967	// the scaled group. Autoscaler keeps the number of instances
3968	// proportional to the value of this metric. The metric itself does not
3969	// change value due to group resizing.
3970	//
3971	// A good metric to use with the target is for example
3972	// pubsub.googleapis.com/subscription/num_undelivered_messages or a
3973	// custom metric exporting the total number of requests coming to your
3974	// instances.
3975	//
3976	// A bad example would be a metric exporting an average or median
3977	// latency, since this value can't include a chunk assignable to a
3978	// single instance, it could be better used with utilization_target
3979	// instead.
3980	SingleInstanceAssignment float64 `json:"singleInstanceAssignment,omitempty"`
3981
3982	// UtilizationTarget: The target value of the metric that autoscaler
3983	// maintains. This must be a positive value. A utilization metric scales
3984	// number of virtual machines handling requests to increase or decrease
3985	// proportionally to the metric.
3986	//
3987	// For example, a good metric to use as a utilization_target is
3988	// https://www.googleapis.com/compute/v1/instance/network/received_bytes_count.
3989	// The autoscaler works to keep this value constant for each of the
3990	// instances.
3991	UtilizationTarget float64 `json:"utilizationTarget,omitempty"`
3992
3993	// UtilizationTargetType: Defines how target utilization value is
3994	// expressed for a Stackdriver Monitoring metric. Either GAUGE,
3995	// DELTA_PER_SECOND, or DELTA_PER_MINUTE.
3996	//
3997	// Possible values:
3998	//   "DELTA_PER_MINUTE"
3999	//   "DELTA_PER_SECOND"
4000	//   "GAUGE"
4001	UtilizationTargetType string `json:"utilizationTargetType,omitempty"`
4002
4003	// ForceSendFields is a list of field names (e.g. "Filter") to
4004	// unconditionally include in API requests. By default, fields with
4005	// empty values are omitted from API requests. However, any non-pointer,
4006	// non-interface field appearing in ForceSendFields will be sent to the
4007	// server regardless of whether the field is empty or not. This may be
4008	// used to include empty fields in Patch requests.
4009	ForceSendFields []string `json:"-"`
4010
4011	// NullFields is a list of field names (e.g. "Filter") to include in API
4012	// requests with the JSON null value. By default, fields with empty
4013	// values are omitted from API requests. However, any field with an
4014	// empty value appearing in NullFields will be sent to the server as
4015	// null. It is an error if a field in this list has a non-empty value.
4016	// This may be used to include null fields in Patch requests.
4017	NullFields []string `json:"-"`
4018}
4019
4020func (s *AutoscalingPolicyCustomMetricUtilization) MarshalJSON() ([]byte, error) {
4021	type NoMethod AutoscalingPolicyCustomMetricUtilization
4022	raw := NoMethod(*s)
4023	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4024}
4025
4026func (s *AutoscalingPolicyCustomMetricUtilization) UnmarshalJSON(data []byte) error {
4027	type NoMethod AutoscalingPolicyCustomMetricUtilization
4028	var s1 struct {
4029		SingleInstanceAssignment gensupport.JSONFloat64 `json:"singleInstanceAssignment"`
4030		UtilizationTarget        gensupport.JSONFloat64 `json:"utilizationTarget"`
4031		*NoMethod
4032	}
4033	s1.NoMethod = (*NoMethod)(s)
4034	if err := json.Unmarshal(data, &s1); err != nil {
4035		return err
4036	}
4037	s.SingleInstanceAssignment = float64(s1.SingleInstanceAssignment)
4038	s.UtilizationTarget = float64(s1.UtilizationTarget)
4039	return nil
4040}
4041
4042// AutoscalingPolicyLoadBalancingUtilization: Configuration parameters
4043// of autoscaling based on load balancing.
4044type AutoscalingPolicyLoadBalancingUtilization struct {
4045	// UtilizationTarget: Fraction of backend capacity utilization (set in
4046	// HTTP(S) load balancing configuration) that the autoscaler maintains.
4047	// Must be a positive float value. If not defined, the default is 0.8.
4048	UtilizationTarget float64 `json:"utilizationTarget,omitempty"`
4049
4050	// ForceSendFields is a list of field names (e.g. "UtilizationTarget")
4051	// to unconditionally include in API requests. By default, fields with
4052	// empty values are omitted from API requests. However, any non-pointer,
4053	// non-interface field appearing in ForceSendFields will be sent to the
4054	// server regardless of whether the field is empty or not. This may be
4055	// used to include empty fields in Patch requests.
4056	ForceSendFields []string `json:"-"`
4057
4058	// NullFields is a list of field names (e.g. "UtilizationTarget") to
4059	// include in API requests with the JSON null value. By default, fields
4060	// with empty values are omitted from API requests. However, any field
4061	// with an empty value appearing in NullFields will be sent to the
4062	// server as null. It is an error if a field in this list has a
4063	// non-empty value. This may be used to include null fields in Patch
4064	// requests.
4065	NullFields []string `json:"-"`
4066}
4067
4068func (s *AutoscalingPolicyLoadBalancingUtilization) MarshalJSON() ([]byte, error) {
4069	type NoMethod AutoscalingPolicyLoadBalancingUtilization
4070	raw := NoMethod(*s)
4071	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4072}
4073
4074func (s *AutoscalingPolicyLoadBalancingUtilization) UnmarshalJSON(data []byte) error {
4075	type NoMethod AutoscalingPolicyLoadBalancingUtilization
4076	var s1 struct {
4077		UtilizationTarget gensupport.JSONFloat64 `json:"utilizationTarget"`
4078		*NoMethod
4079	}
4080	s1.NoMethod = (*NoMethod)(s)
4081	if err := json.Unmarshal(data, &s1); err != nil {
4082		return err
4083	}
4084	s.UtilizationTarget = float64(s1.UtilizationTarget)
4085	return nil
4086}
4087
4088// AutoscalingPolicyScaleDownControl: Configuration that allows for
4089// slower scale in so that even if Autoscaler recommends an abrupt scale
4090// in of a MIG, it will be throttled as specified by the parameters
4091// below.
4092type AutoscalingPolicyScaleDownControl struct {
4093	// MaxScaledDownReplicas: Maximum allowed number (or %) of VMs that can
4094	// be deducted from the peak recommendation during the window autoscaler
4095	// looks at when computing recommendations. Possibly all these VMs can
4096	// be deleted at once so user service needs to be prepared to lose that
4097	// many VMs in one step.
4098	MaxScaledDownReplicas *FixedOrPercent `json:"maxScaledDownReplicas,omitempty"`
4099
4100	// TimeWindowSec: How far back autoscaling looks when computing
4101	// recommendations to include directives regarding slower scale in, as
4102	// described above.
4103	TimeWindowSec int64 `json:"timeWindowSec,omitempty"`
4104
4105	// ForceSendFields is a list of field names (e.g.
4106	// "MaxScaledDownReplicas") to unconditionally include in API requests.
4107	// By default, fields with empty values are omitted from API requests.
4108	// However, any non-pointer, non-interface field appearing in
4109	// ForceSendFields will be sent to the server regardless of whether the
4110	// field is empty or not. This may be used to include empty fields in
4111	// Patch requests.
4112	ForceSendFields []string `json:"-"`
4113
4114	// NullFields is a list of field names (e.g. "MaxScaledDownReplicas") to
4115	// include in API requests with the JSON null value. By default, fields
4116	// with empty values are omitted from API requests. However, any field
4117	// with an empty value appearing in NullFields will be sent to the
4118	// server as null. It is an error if a field in this list has a
4119	// non-empty value. This may be used to include null fields in Patch
4120	// requests.
4121	NullFields []string `json:"-"`
4122}
4123
4124func (s *AutoscalingPolicyScaleDownControl) MarshalJSON() ([]byte, error) {
4125	type NoMethod AutoscalingPolicyScaleDownControl
4126	raw := NoMethod(*s)
4127	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4128}
4129
4130// AutoscalingPolicyScaleInControl: Configuration that allows for slower
4131// scale in so that even if Autoscaler recommends an abrupt scale in of
4132// a MIG, it will be throttled as specified by the parameters below.
4133type AutoscalingPolicyScaleInControl struct {
4134	// MaxScaledInReplicas: Maximum allowed number (or %) of VMs that can be
4135	// deducted from the peak recommendation during the window autoscaler
4136	// looks at when computing recommendations. Possibly all these VMs can
4137	// be deleted at once so user service needs to be prepared to lose that
4138	// many VMs in one step.
4139	MaxScaledInReplicas *FixedOrPercent `json:"maxScaledInReplicas,omitempty"`
4140
4141	// TimeWindowSec: How far back autoscaling looks when computing
4142	// recommendations to include directives regarding slower scale in, as
4143	// described above.
4144	TimeWindowSec int64 `json:"timeWindowSec,omitempty"`
4145
4146	// ForceSendFields is a list of field names (e.g. "MaxScaledInReplicas")
4147	// to unconditionally include in API requests. By default, fields with
4148	// empty values are omitted from API requests. However, any non-pointer,
4149	// non-interface field appearing in ForceSendFields will be sent to the
4150	// server regardless of whether the field is empty or not. This may be
4151	// used to include empty fields in Patch requests.
4152	ForceSendFields []string `json:"-"`
4153
4154	// NullFields is a list of field names (e.g. "MaxScaledInReplicas") to
4155	// include in API requests with the JSON null value. By default, fields
4156	// with empty values are omitted from API requests. However, any field
4157	// with an empty value appearing in NullFields will be sent to the
4158	// server as null. It is an error if a field in this list has a
4159	// non-empty value. This may be used to include null fields in Patch
4160	// requests.
4161	NullFields []string `json:"-"`
4162}
4163
4164func (s *AutoscalingPolicyScaleInControl) MarshalJSON() ([]byte, error) {
4165	type NoMethod AutoscalingPolicyScaleInControl
4166	raw := NoMethod(*s)
4167	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4168}
4169
4170// AutoscalingPolicyScalingSchedule: Scaling based on user-defined
4171// schedule. The message describes a single scaling schedule. A scaling
4172// schedule changes the minimum number of VM instances an autoscaler can
4173// recommend, which can trigger scaling out.
4174type AutoscalingPolicyScalingSchedule struct {
4175	// Description: A description of a scaling schedule.
4176	Description string `json:"description,omitempty"`
4177
4178	// Disabled: A boolean value that specifies whether a scaling schedule
4179	// can influence autoscaler recommendations. If set to true, then a
4180	// scaling schedule has no effect. This field is optional, and its value
4181	// is false by default.
4182	Disabled bool `json:"disabled,omitempty"`
4183
4184	// DurationSec: The duration of time intervals, in seconds, for which
4185	// this scaling schedule is to run. The minimum allowed value is 300.
4186	// This field is required.
4187	DurationSec int64 `json:"durationSec,omitempty"`
4188
4189	// MinRequiredReplicas: The minimum number of VM instances that the
4190	// autoscaler will recommend in time intervals starting according to
4191	// schedule. This field is required.
4192	MinRequiredReplicas int64 `json:"minRequiredReplicas,omitempty"`
4193
4194	// Schedule: The start timestamps of time intervals when this scaling
4195	// schedule is to provide a scaling signal. This field uses the extended
4196	// cron format (with an optional year field). The expression can
4197	// describe a single timestamp if the optional year is set, in which
4198	// case the scaling schedule runs once. The schedule is interpreted with
4199	// respect to time_zone. This field is required. Note: These timestamps
4200	// only describe when autoscaler starts providing the scaling signal.
4201	// The VMs need additional time to become serving.
4202	Schedule string `json:"schedule,omitempty"`
4203
4204	// TimeZone: The time zone to use when interpreting the schedule. The
4205	// value of this field must be a time zone name from the tz database:
4206	// http://en.wikipedia.org/wiki/Tz_database. This field is assigned a
4207	// default value of ?UTC? if left empty.
4208	TimeZone string `json:"timeZone,omitempty"`
4209
4210	// ForceSendFields is a list of field names (e.g. "Description") to
4211	// unconditionally include in API requests. By default, fields with
4212	// empty values are omitted from API requests. However, any non-pointer,
4213	// non-interface field appearing in ForceSendFields will be sent to the
4214	// server regardless of whether the field is empty or not. This may be
4215	// used to include empty fields in Patch requests.
4216	ForceSendFields []string `json:"-"`
4217
4218	// NullFields is a list of field names (e.g. "Description") to include
4219	// in API requests with the JSON null value. By default, fields with
4220	// empty values are omitted from API requests. However, any field with
4221	// an empty value appearing in NullFields will be sent to the server as
4222	// null. It is an error if a field in this list has a non-empty value.
4223	// This may be used to include null fields in Patch requests.
4224	NullFields []string `json:"-"`
4225}
4226
4227func (s *AutoscalingPolicyScalingSchedule) MarshalJSON() ([]byte, error) {
4228	type NoMethod AutoscalingPolicyScalingSchedule
4229	raw := NoMethod(*s)
4230	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4231}
4232
4233// Backend: Message containing information of one individual backend.
4234type Backend struct {
4235	// BalancingMode: Specifies how to determine whether the backend of a
4236	// load balancer can handle additional traffic or is fully loaded. For
4237	// usage guidelines, see  Connection balancing mode.
4238	//
4239	// Possible values:
4240	//   "CONNECTION"
4241	//   "RATE"
4242	//   "UTILIZATION"
4243	BalancingMode string `json:"balancingMode,omitempty"`
4244
4245	// CapacityScaler: A multiplier applied to the backend's target capacity
4246	// of its balancing mode. The default value is 1, which means the group
4247	// serves up to 100% of its configured capacity (depending on
4248	// balancingMode). A setting of 0 means the group is completely drained,
4249	// offering 0% of its available capacity. The valid ranges are 0.0 and
4250	// [0.1,1.0]. You cannot configure a setting larger than 0 and smaller
4251	// than 0.1. You cannot configure a setting of 0 when there is only one
4252	// backend attached to the backend service.
4253	//
4254	// Not supported by:
4255	//
4256	// - Internal TCP/UDP Load Balancing - Network Load Balancing
4257	CapacityScaler float64 `json:"capacityScaler,omitempty"`
4258
4259	// Description: An optional description of this resource. Provide this
4260	// property when you create the resource.
4261	Description string `json:"description,omitempty"`
4262
4263	// Failover: This field designates whether this is a failover backend.
4264	// More than one failover backend can be configured for a given
4265	// BackendService.
4266	Failover bool `json:"failover,omitempty"`
4267
4268	// Group: The fully-qualified URL of an instance group or network
4269	// endpoint group (NEG) resource. The type of backend that a backend
4270	// service supports depends on the backend service's
4271	// loadBalancingScheme.
4272	//
4273	//
4274	// - When the loadBalancingScheme for the backend service is EXTERNAL
4275	// (except Network Load Balancing),  INTERNAL_SELF_MANAGED, or
4276	// INTERNAL_MANAGED , the backend can be either an instance group or a
4277	// NEG. The backends on the backend service must be either all instance
4278	// groups or all NEGs. You cannot mix instance group and NEG backends on
4279	// the same backend service.
4280	//
4281	//
4282	// - When the loadBalancingScheme for the backend service is EXTERNAL
4283	// for Network Load Balancing or INTERNAL for Internal TCP/UDP Load
4284	// Balancing, the backend must be an instance group. NEGs are not
4285	// supported.
4286	//
4287	// For regional services, the backend must be in the same region as the
4288	// backend service.
4289	//
4290	// You must use the fully-qualified URL (starting with
4291	// https://www.googleapis.com/) to specify the instance group or NEG.
4292	// Partial URLs are not supported.
4293	Group string `json:"group,omitempty"`
4294
4295	// MaxConnections: Defines a target maximum number of simultaneous
4296	// connections. For usage guidelines, see Connection balancing mode and
4297	// Utilization balancing mode. Not available if the backend's
4298	// balancingMode is RATE. Not supported by:
4299	//
4300	// - Internal TCP/UDP Load Balancing - Network Load Balancing
4301	MaxConnections int64 `json:"maxConnections,omitempty"`
4302
4303	// MaxConnectionsPerEndpoint: Defines a target maximum number of
4304	// simultaneous connections. For usage guidelines, see Connection
4305	// balancing mode and Utilization balancing mode.
4306	//
4307	// Not available if the backend's balancingMode is RATE. Not supported
4308	// by:
4309	//
4310	// - Internal TCP/UDP Load Balancing - Network Load Balancing.
4311	MaxConnectionsPerEndpoint int64 `json:"maxConnectionsPerEndpoint,omitempty"`
4312
4313	// MaxConnectionsPerInstance: Defines a target maximum number of
4314	// simultaneous connections. For usage guidelines, see Connection
4315	// balancing mode and Utilization balancing mode.
4316	//
4317	// Not available if the backend's balancingMode is RATE. Not supported
4318	// by:
4319	//
4320	// - Internal TCP/UDP Load Balancing - Network Load Balancing.
4321	MaxConnectionsPerInstance int64 `json:"maxConnectionsPerInstance,omitempty"`
4322
4323	// MaxRate: Defines a maximum number of HTTP requests per second (RPS).
4324	// For usage guidelines, see Rate balancing mode and Utilization
4325	// balancing mode.
4326	//
4327	// Not available if the backend's balancingMode is CONNECTION.
4328	MaxRate int64 `json:"maxRate,omitempty"`
4329
4330	// MaxRatePerEndpoint: Defines a maximum target for requests per second
4331	// (RPS). For usage guidelines, see Rate balancing mode and Utilization
4332	// balancing mode.
4333	//
4334	// Not available if the backend's balancingMode is CONNECTION.
4335	MaxRatePerEndpoint float64 `json:"maxRatePerEndpoint,omitempty"`
4336
4337	// MaxRatePerInstance: Defines a maximum target for requests per second
4338	// (RPS). For usage guidelines, see Rate balancing mode and Utilization
4339	// balancing mode.
4340	//
4341	// Not available if the backend's balancingMode is CONNECTION.
4342	MaxRatePerInstance float64 `json:"maxRatePerInstance,omitempty"`
4343
4344	MaxUtilization float64 `json:"maxUtilization,omitempty"`
4345
4346	// ForceSendFields is a list of field names (e.g. "BalancingMode") to
4347	// unconditionally include in API requests. By default, fields with
4348	// empty values are omitted from API requests. However, any non-pointer,
4349	// non-interface field appearing in ForceSendFields will be sent to the
4350	// server regardless of whether the field is empty or not. This may be
4351	// used to include empty fields in Patch requests.
4352	ForceSendFields []string `json:"-"`
4353
4354	// NullFields is a list of field names (e.g. "BalancingMode") to include
4355	// in API requests with the JSON null value. By default, fields with
4356	// empty values are omitted from API requests. However, any field with
4357	// an empty value appearing in NullFields will be sent to the server as
4358	// null. It is an error if a field in this list has a non-empty value.
4359	// This may be used to include null fields in Patch requests.
4360	NullFields []string `json:"-"`
4361}
4362
4363func (s *Backend) MarshalJSON() ([]byte, error) {
4364	type NoMethod Backend
4365	raw := NoMethod(*s)
4366	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4367}
4368
4369func (s *Backend) UnmarshalJSON(data []byte) error {
4370	type NoMethod Backend
4371	var s1 struct {
4372		CapacityScaler     gensupport.JSONFloat64 `json:"capacityScaler"`
4373		MaxRatePerEndpoint gensupport.JSONFloat64 `json:"maxRatePerEndpoint"`
4374		MaxRatePerInstance gensupport.JSONFloat64 `json:"maxRatePerInstance"`
4375		MaxUtilization     gensupport.JSONFloat64 `json:"maxUtilization"`
4376		*NoMethod
4377	}
4378	s1.NoMethod = (*NoMethod)(s)
4379	if err := json.Unmarshal(data, &s1); err != nil {
4380		return err
4381	}
4382	s.CapacityScaler = float64(s1.CapacityScaler)
4383	s.MaxRatePerEndpoint = float64(s1.MaxRatePerEndpoint)
4384	s.MaxRatePerInstance = float64(s1.MaxRatePerInstance)
4385	s.MaxUtilization = float64(s1.MaxUtilization)
4386	return nil
4387}
4388
4389// BackendBucket: Represents a Cloud Storage Bucket resource.
4390//
4391// This Cloud Storage bucket resource is referenced by a URL map of a
4392// load balancer. For more information, read Backend Buckets.
4393type BackendBucket struct {
4394	// BucketName: Cloud Storage bucket name.
4395	BucketName string `json:"bucketName,omitempty"`
4396
4397	// CdnPolicy: Cloud CDN configuration for this BackendBucket.
4398	CdnPolicy *BackendBucketCdnPolicy `json:"cdnPolicy,omitempty"`
4399
4400	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
4401	// format.
4402	CreationTimestamp string `json:"creationTimestamp,omitempty"`
4403
4404	// CustomResponseHeaders: Headers that the HTTP/S load balancer should
4405	// add to proxied responses.
4406	CustomResponseHeaders []string `json:"customResponseHeaders,omitempty"`
4407
4408	// Description: An optional textual description of the resource;
4409	// provided by the client when the resource is created.
4410	Description string `json:"description,omitempty"`
4411
4412	// EnableCdn: If true, enable Cloud CDN for this BackendBucket.
4413	EnableCdn bool `json:"enableCdn,omitempty"`
4414
4415	// Id: [Output Only] Unique identifier for the resource; defined by the
4416	// server.
4417	Id uint64 `json:"id,omitempty,string"`
4418
4419	// Kind: Type of the resource.
4420	Kind string `json:"kind,omitempty"`
4421
4422	// Name: Name of the resource. Provided by the client when the resource
4423	// is created. The name must be 1-63 characters long, and comply with
4424	// RFC1035. Specifically, the name must be 1-63 characters long and
4425	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
4426	// the first character must be a lowercase letter, and all following
4427	// characters must be a dash, lowercase letter, or digit, except the
4428	// last character, which cannot be a dash.
4429	Name string `json:"name,omitempty"`
4430
4431	// SelfLink: [Output Only] Server-defined URL for the resource.
4432	SelfLink string `json:"selfLink,omitempty"`
4433
4434	// ServerResponse contains the HTTP response code and headers from the
4435	// server.
4436	googleapi.ServerResponse `json:"-"`
4437
4438	// ForceSendFields is a list of field names (e.g. "BucketName") to
4439	// unconditionally include in API requests. By default, fields with
4440	// empty values are omitted from API requests. However, any non-pointer,
4441	// non-interface field appearing in ForceSendFields will be sent to the
4442	// server regardless of whether the field is empty or not. This may be
4443	// used to include empty fields in Patch requests.
4444	ForceSendFields []string `json:"-"`
4445
4446	// NullFields is a list of field names (e.g. "BucketName") to include in
4447	// API requests with the JSON null value. By default, fields with empty
4448	// values are omitted from API requests. However, any field with an
4449	// empty value appearing in NullFields will be sent to the server as
4450	// null. It is an error if a field in this list has a non-empty value.
4451	// This may be used to include null fields in Patch requests.
4452	NullFields []string `json:"-"`
4453}
4454
4455func (s *BackendBucket) MarshalJSON() ([]byte, error) {
4456	type NoMethod BackendBucket
4457	raw := NoMethod(*s)
4458	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4459}
4460
4461// BackendBucketCdnPolicy: Message containing Cloud CDN configuration
4462// for a backend bucket.
4463type BackendBucketCdnPolicy struct {
4464	// BypassCacheOnRequestHeaders: Bypass the cache when the specified
4465	// request headers are matched - e.g. Pragma or Authorization headers.
4466	// Up to 5 headers can be specified. The cache is bypassed for all
4467	// cdnPolicy.cacheMode settings.
4468	BypassCacheOnRequestHeaders []*BackendBucketCdnPolicyBypassCacheOnRequestHeader `json:"bypassCacheOnRequestHeaders,omitempty"`
4469
4470	// CacheMode: Specifies the cache setting for all responses from this
4471	// backend. The possible values are:
4472	//
4473	// USE_ORIGIN_HEADERS Requires the origin to set valid caching headers
4474	// to cache content. Responses without these headers will not be cached
4475	// at Google's edge, and will require a full trip to the origin on every
4476	// request, potentially impacting performance and increasing load on the
4477	// origin server.
4478	//
4479	// FORCE_CACHE_ALL Cache all content, ignoring any "private", "no-store"
4480	// or "no-cache" directives in Cache-Control response headers. Warning:
4481	// this may result in Cloud CDN caching private, per-user (user
4482	// identifiable) content.
4483	//
4484	// CACHE_ALL_STATIC Automatically cache static content, including common
4485	// image formats, media (video and audio), and web assets (JavaScript
4486	// and CSS). Requests and responses that are marked as uncacheable, as
4487	// well as dynamic content (including HTML), will not be cached.
4488	//
4489	// Possible values:
4490	//   "CACHE_ALL_STATIC"
4491	//   "FORCE_CACHE_ALL"
4492	//   "INVALID_CACHE_MODE"
4493	//   "USE_ORIGIN_HEADERS"
4494	CacheMode string `json:"cacheMode,omitempty"`
4495
4496	// ClientTtl: Specifies a separate client (e.g. browser client) maximum
4497	// TTL. This is used to clamp the max-age (or Expires) value sent to the
4498	// client. With FORCE_CACHE_ALL, the lesser of client_ttl and
4499	// default_ttl is used for the response max-age directive, along with a
4500	// "public" directive. For cacheable content in CACHE_ALL_STATIC mode,
4501	// client_ttl clamps the max-age from the origin (if specified), or else
4502	// sets the response max-age directive to the lesser of the client_ttl
4503	// and default_ttl, and also ensures a "public" cache-control directive
4504	// is present. If a client TTL is not specified, a default value (1
4505	// hour) will be used. The maximum allowed value is 86400s (1 day).
4506	ClientTtl int64 `json:"clientTtl,omitempty"`
4507
4508	// DefaultTtl: Specifies the default TTL for cached content served by
4509	// this origin for responses that do not have an existing valid TTL
4510	// (max-age or s-max-age). Setting a TTL of "0" means "always
4511	// revalidate". The value of defaultTTL cannot be set to a value greater
4512	// than that of maxTTL, but can be equal. When the cacheMode is set to
4513	// FORCE_CACHE_ALL, the defaultTTL will overwrite the TTL set in all
4514	// responses. The maximum allowed value is 31,622,400s (1 year), noting
4515	// that infrequently accessed objects may be evicted from the cache
4516	// before the defined TTL.
4517	DefaultTtl int64 `json:"defaultTtl,omitempty"`
4518
4519	// MaxTtl: Specifies the maximum allowed TTL for cached content served
4520	// by this origin. Cache directives that attempt to set a max-age or
4521	// s-maxage higher than this, or an Expires header more than maxTTL
4522	// seconds in the future will be capped at the value of maxTTL, as if it
4523	// were the value of an s-maxage Cache-Control directive. Headers sent
4524	// to the client will not be modified. Setting a TTL of "0" means
4525	// "always revalidate". The maximum allowed value is 31,622,400s (1
4526	// year), noting that infrequently accessed objects may be evicted from
4527	// the cache before the defined TTL.
4528	MaxTtl int64 `json:"maxTtl,omitempty"`
4529
4530	// NegativeCaching: Negative caching allows per-status code TTLs to be
4531	// set, in order to apply fine-grained caching for common errors or
4532	// redirects. This can reduce the load on your origin and improve
4533	// end-user experience by reducing response latency. When the cache mode
4534	// is set to CACHE_ALL_STATIC or USE_ORIGIN_HEADERS, negative caching
4535	// applies to responses with the specified response code that lack any
4536	// Cache-Control, Expires, or Pragma: no-cache directives. When the
4537	// cache mode is set to FORCE_CACHE_ALL, negative caching applies to all
4538	// responses with the specified response code, and override any caching
4539	// headers. By default, Cloud CDN will apply the following default TTLs
4540	// to these status codes: HTTP 300 (Multiple Choice), 301, 308
4541	// (Permanent Redirects): 10m HTTP 404 (Not Found), 410 (Gone), 451
4542	// (Unavailable For Legal Reasons): 120s HTTP 405 (Method Not Found),
4543	// 421 (Misdirected Request), 501 (Not Implemented): 60s. These defaults
4544	// can be overridden in negative_caching_policy.
4545	NegativeCaching bool `json:"negativeCaching,omitempty"`
4546
4547	// NegativeCachingPolicy: Sets a cache TTL for the specified HTTP status
4548	// code. negative_caching must be enabled to configure
4549	// negative_caching_policy. Omitting the policy and leaving
4550	// negative_caching enabled will use Cloud CDN's default cache TTLs.
4551	// Note that when specifying an explicit negative_caching_policy, you
4552	// should take care to specify a cache TTL for all response codes that
4553	// you wish to cache. Cloud CDN will not apply any default negative
4554	// caching when a policy exists.
4555	NegativeCachingPolicy []*BackendBucketCdnPolicyNegativeCachingPolicy `json:"negativeCachingPolicy,omitempty"`
4556
4557	// RequestCoalescing: If true then Cloud CDN will combine multiple
4558	// concurrent cache fill requests into a small number of requests to the
4559	// origin.
4560	RequestCoalescing bool `json:"requestCoalescing,omitempty"`
4561
4562	// ServeWhileStale: Serve existing content from the cache (if available)
4563	// when revalidating content with the origin, or when an error is
4564	// encountered when refreshing the cache. This setting defines the
4565	// default "max-stale" duration for any cached responses that do not
4566	// specify a max-stale directive. Stale responses that exceed the TTL
4567	// configured here will not be served. The default limit (max-stale) is
4568	// 86400s (1 day), which will allow stale content to be served up to
4569	// this limit beyond the max-age (or s-max-age) of a cached response.
4570	// The maximum allowed value is 604800 (1 week). Set this to zero (0) to
4571	// disable serve-while-stale.
4572	ServeWhileStale int64 `json:"serveWhileStale,omitempty"`
4573
4574	// SignedUrlCacheMaxAgeSec: Maximum number of seconds the response to a
4575	// signed URL request will be considered fresh. After this time period,
4576	// the response will be revalidated before being served. Defaults to 1hr
4577	// (3600s). When serving responses to signed URL requests, Cloud CDN
4578	// will internally behave as though all responses from this backend had
4579	// a "Cache-Control: public, max-age=[TTL]" header, regardless of any
4580	// existing Cache-Control header. The actual headers served in responses
4581	// will not be altered.
4582	SignedUrlCacheMaxAgeSec int64 `json:"signedUrlCacheMaxAgeSec,omitempty,string"`
4583
4584	// SignedUrlKeyNames: [Output Only] Names of the keys for signing
4585	// request URLs.
4586	SignedUrlKeyNames []string `json:"signedUrlKeyNames,omitempty"`
4587
4588	// ForceSendFields is a list of field names (e.g.
4589	// "BypassCacheOnRequestHeaders") to unconditionally include in API
4590	// requests. By default, fields with empty values are omitted from API
4591	// requests. However, any non-pointer, non-interface field appearing in
4592	// ForceSendFields will be sent to the server regardless of whether the
4593	// field is empty or not. This may be used to include empty fields in
4594	// Patch requests.
4595	ForceSendFields []string `json:"-"`
4596
4597	// NullFields is a list of field names (e.g.
4598	// "BypassCacheOnRequestHeaders") to include in API requests with the
4599	// JSON null value. By default, fields with empty values are omitted
4600	// from API requests. However, any field with an empty value appearing
4601	// in NullFields will be sent to the server as null. It is an error if a
4602	// field in this list has a non-empty value. This may be used to include
4603	// null fields in Patch requests.
4604	NullFields []string `json:"-"`
4605}
4606
4607func (s *BackendBucketCdnPolicy) MarshalJSON() ([]byte, error) {
4608	type NoMethod BackendBucketCdnPolicy
4609	raw := NoMethod(*s)
4610	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4611}
4612
4613// BackendBucketCdnPolicyBypassCacheOnRequestHeader: Bypass the cache
4614// when the specified request headers are present, e.g. Pragma or
4615// Authorization headers. Values are case insensitive. The presence of
4616// such a header overrides the cache_mode setting.
4617type BackendBucketCdnPolicyBypassCacheOnRequestHeader struct {
4618	// HeaderName: The header field name to match on when bypassing cache.
4619	// Values are case-insensitive.
4620	HeaderName string `json:"headerName,omitempty"`
4621
4622	// ForceSendFields is a list of field names (e.g. "HeaderName") to
4623	// unconditionally include in API requests. By default, fields with
4624	// empty values are omitted from API requests. However, any non-pointer,
4625	// non-interface field appearing in ForceSendFields will be sent to the
4626	// server regardless of whether the field is empty or not. This may be
4627	// used to include empty fields in Patch requests.
4628	ForceSendFields []string `json:"-"`
4629
4630	// NullFields is a list of field names (e.g. "HeaderName") to include in
4631	// API requests with the JSON null value. By default, fields with empty
4632	// values are omitted from API requests. However, any field with an
4633	// empty value appearing in NullFields will be sent to the server as
4634	// null. It is an error if a field in this list has a non-empty value.
4635	// This may be used to include null fields in Patch requests.
4636	NullFields []string `json:"-"`
4637}
4638
4639func (s *BackendBucketCdnPolicyBypassCacheOnRequestHeader) MarshalJSON() ([]byte, error) {
4640	type NoMethod BackendBucketCdnPolicyBypassCacheOnRequestHeader
4641	raw := NoMethod(*s)
4642	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4643}
4644
4645// BackendBucketCdnPolicyNegativeCachingPolicy: Specify CDN TTLs for
4646// response error codes.
4647type BackendBucketCdnPolicyNegativeCachingPolicy struct {
4648	// Code: The HTTP status code to define a TTL against. Only HTTP status
4649	// codes 300, 301, 302, 307, 308, 404, 405, 410, 421, 451 and 501 are
4650	// can be specified as values, and you cannot specify a status code more
4651	// than once.
4652	Code int64 `json:"code,omitempty"`
4653
4654	// Ttl: The TTL (in seconds) for which to cache responses with the
4655	// corresponding status code. The maximum allowed value is 1800s (30
4656	// minutes), noting that infrequently accessed objects may be evicted
4657	// from the cache before the defined TTL.
4658	Ttl int64 `json:"ttl,omitempty"`
4659
4660	// ForceSendFields is a list of field names (e.g. "Code") to
4661	// unconditionally include in API requests. By default, fields with
4662	// empty values are omitted from API requests. However, any non-pointer,
4663	// non-interface field appearing in ForceSendFields will be sent to the
4664	// server regardless of whether the field is empty or not. This may be
4665	// used to include empty fields in Patch requests.
4666	ForceSendFields []string `json:"-"`
4667
4668	// NullFields is a list of field names (e.g. "Code") to include in API
4669	// requests with the JSON null value. By default, fields with empty
4670	// values are omitted from API requests. However, any field with an
4671	// empty value appearing in NullFields will be sent to the server as
4672	// null. It is an error if a field in this list has a non-empty value.
4673	// This may be used to include null fields in Patch requests.
4674	NullFields []string `json:"-"`
4675}
4676
4677func (s *BackendBucketCdnPolicyNegativeCachingPolicy) MarshalJSON() ([]byte, error) {
4678	type NoMethod BackendBucketCdnPolicyNegativeCachingPolicy
4679	raw := NoMethod(*s)
4680	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4681}
4682
4683// BackendBucketList: Contains a list of BackendBucket resources.
4684type BackendBucketList struct {
4685	// Id: [Output Only] Unique identifier for the resource; defined by the
4686	// server.
4687	Id string `json:"id,omitempty"`
4688
4689	// Items: A list of BackendBucket resources.
4690	Items []*BackendBucket `json:"items,omitempty"`
4691
4692	// Kind: Type of resource.
4693	Kind string `json:"kind,omitempty"`
4694
4695	// NextPageToken: [Output Only] This token allows you to get the next
4696	// page of results for list requests. If the number of results is larger
4697	// than maxResults, use the nextPageToken as a value for the query
4698	// parameter pageToken in the next list request. Subsequent list
4699	// requests will have their own nextPageToken to continue paging through
4700	// the results.
4701	NextPageToken string `json:"nextPageToken,omitempty"`
4702
4703	// SelfLink: [Output Only] Server-defined URL for this resource.
4704	SelfLink string `json:"selfLink,omitempty"`
4705
4706	// Warning: [Output Only] Informational warning message.
4707	Warning *BackendBucketListWarning `json:"warning,omitempty"`
4708
4709	// ServerResponse contains the HTTP response code and headers from the
4710	// server.
4711	googleapi.ServerResponse `json:"-"`
4712
4713	// ForceSendFields is a list of field names (e.g. "Id") to
4714	// unconditionally include in API requests. By default, fields with
4715	// empty values are omitted from API requests. However, any non-pointer,
4716	// non-interface field appearing in ForceSendFields will be sent to the
4717	// server regardless of whether the field is empty or not. This may be
4718	// used to include empty fields in Patch requests.
4719	ForceSendFields []string `json:"-"`
4720
4721	// NullFields is a list of field names (e.g. "Id") to include in API
4722	// requests with the JSON null value. By default, fields with empty
4723	// values are omitted from API requests. However, any field with an
4724	// empty value appearing in NullFields will be sent to the server as
4725	// null. It is an error if a field in this list has a non-empty value.
4726	// This may be used to include null fields in Patch requests.
4727	NullFields []string `json:"-"`
4728}
4729
4730func (s *BackendBucketList) MarshalJSON() ([]byte, error) {
4731	type NoMethod BackendBucketList
4732	raw := NoMethod(*s)
4733	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4734}
4735
4736// BackendBucketListWarning: [Output Only] Informational warning
4737// message.
4738type BackendBucketListWarning struct {
4739	// Code: [Output Only] A warning code, if applicable. For example,
4740	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
4741	// the response.
4742	//
4743	// Possible values:
4744	//   "CLEANUP_FAILED"
4745	//   "DEPRECATED_RESOURCE_USED"
4746	//   "DEPRECATED_TYPE_USED"
4747	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
4748	//   "EXPERIMENTAL_TYPE_USED"
4749	//   "EXTERNAL_API_WARNING"
4750	//   "FIELD_VALUE_OVERRIDEN"
4751	//   "INJECTED_KERNELS_DEPRECATED"
4752	//   "LARGE_DEPLOYMENT_WARNING"
4753	//   "MISSING_TYPE_DEPENDENCY"
4754	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
4755	//   "NEXT_HOP_CANNOT_IP_FORWARD"
4756	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
4757	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
4758	//   "NEXT_HOP_NOT_RUNNING"
4759	//   "NOT_CRITICAL_ERROR"
4760	//   "NO_RESULTS_ON_PAGE"
4761	//   "PARTIAL_SUCCESS"
4762	//   "REQUIRED_TOS_AGREEMENT"
4763	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
4764	//   "RESOURCE_NOT_DELETED"
4765	//   "SCHEMA_VALIDATION_IGNORED"
4766	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
4767	//   "UNDECLARED_PROPERTIES"
4768	//   "UNREACHABLE"
4769	Code string `json:"code,omitempty"`
4770
4771	// Data: [Output Only] Metadata about this warning in key: value format.
4772	// For example:
4773	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
4774	Data []*BackendBucketListWarningData `json:"data,omitempty"`
4775
4776	// Message: [Output Only] A human-readable description of the warning
4777	// code.
4778	Message string `json:"message,omitempty"`
4779
4780	// ForceSendFields is a list of field names (e.g. "Code") to
4781	// unconditionally include in API requests. By default, fields with
4782	// empty values are omitted from API requests. However, any non-pointer,
4783	// non-interface field appearing in ForceSendFields will be sent to the
4784	// server regardless of whether the field is empty or not. This may be
4785	// used to include empty fields in Patch requests.
4786	ForceSendFields []string `json:"-"`
4787
4788	// NullFields is a list of field names (e.g. "Code") to include in API
4789	// requests with the JSON null value. By default, fields with empty
4790	// values are omitted from API requests. However, any field with an
4791	// empty value appearing in NullFields will be sent to the server as
4792	// null. It is an error if a field in this list has a non-empty value.
4793	// This may be used to include null fields in Patch requests.
4794	NullFields []string `json:"-"`
4795}
4796
4797func (s *BackendBucketListWarning) MarshalJSON() ([]byte, error) {
4798	type NoMethod BackendBucketListWarning
4799	raw := NoMethod(*s)
4800	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4801}
4802
4803type BackendBucketListWarningData struct {
4804	// Key: [Output Only] A key that provides more detail on the warning
4805	// being returned. For example, for warnings where there are no results
4806	// in a list request for a particular zone, this key might be scope and
4807	// the key value might be the zone name. Other examples might be a key
4808	// indicating a deprecated resource and a suggested replacement, or a
4809	// warning about invalid network settings (for example, if an instance
4810	// attempts to perform IP forwarding but is not enabled for IP
4811	// forwarding).
4812	Key string `json:"key,omitempty"`
4813
4814	// Value: [Output Only] A warning data value corresponding to the key.
4815	Value string `json:"value,omitempty"`
4816
4817	// ForceSendFields is a list of field names (e.g. "Key") to
4818	// unconditionally include in API requests. By default, fields with
4819	// empty values are omitted from API requests. However, any non-pointer,
4820	// non-interface field appearing in ForceSendFields will be sent to the
4821	// server regardless of whether the field is empty or not. This may be
4822	// used to include empty fields in Patch requests.
4823	ForceSendFields []string `json:"-"`
4824
4825	// NullFields is a list of field names (e.g. "Key") to include in API
4826	// requests with the JSON null value. By default, fields with empty
4827	// values are omitted from API requests. However, any field with an
4828	// empty value appearing in NullFields will be sent to the server as
4829	// null. It is an error if a field in this list has a non-empty value.
4830	// This may be used to include null fields in Patch requests.
4831	NullFields []string `json:"-"`
4832}
4833
4834func (s *BackendBucketListWarningData) MarshalJSON() ([]byte, error) {
4835	type NoMethod BackendBucketListWarningData
4836	raw := NoMethod(*s)
4837	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4838}
4839
4840// BackendService: Represents a Backend Service resource.
4841//
4842// A backend service defines how Google Cloud load balancers distribute
4843// traffic. The backend service configuration contains a set of values,
4844// such as the protocol used to connect to backends, various
4845// distribution and session settings, health checks, and timeouts. These
4846// settings provide fine-grained control over how your load balancer
4847// behaves. Most of the settings have default values that allow for easy
4848// configuration if you need to get started quickly.
4849//
4850// Backend services in Google Compute Engine can be either regionally or
4851// globally scoped.
4852//
4853// * Global
4854// (/compute/docs/reference/rest/{$api_version}/backendServices) *
4855// Regional
4856// (/compute/docs/reference/rest/{$api_version}/regionBackendServices)
4857//
4858// For more information, see Backend Services.
4859//
4860// (== resource_for {$api_version}.backendService ==)
4861type BackendService struct {
4862	// AffinityCookieTtlSec: Lifetime of cookies in seconds. Only applicable
4863	// if the loadBalancingScheme is EXTERNAL, INTERNAL_SELF_MANAGED, or
4864	// INTERNAL_MANAGED, the protocol is HTTP or HTTPS, and the
4865	// sessionAffinity is GENERATED_COOKIE, or HTTP_COOKIE.
4866	//
4867	// If set to 0, the cookie is non-persistent and lasts only until the
4868	// end of the browser session (or equivalent). The maximum allowed value
4869	// is one day (86,400).
4870	//
4871	// Not supported when the backend service is referenced by a URL map
4872	// that is bound to target gRPC proxy that has validateForProxyless
4873	// field set to true.
4874	AffinityCookieTtlSec int64 `json:"affinityCookieTtlSec,omitempty"`
4875
4876	// Backends: The list of backends that serve this BackendService.
4877	Backends []*Backend `json:"backends,omitempty"`
4878
4879	// CdnPolicy: Cloud CDN configuration for this BackendService. Only
4880	// available for  external HTTP(S) Load Balancing.
4881	CdnPolicy *BackendServiceCdnPolicy `json:"cdnPolicy,omitempty"`
4882
4883	// CircuitBreakers: Settings controlling the volume of connections to a
4884	// backend service. If not set, this feature is considered
4885	// disabled.
4886	//
4887	// This field is applicable to either:
4888	// - A regional backend service with the service_protocol set to HTTP,
4889	// HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED.
4890	//
4891	// - A global backend service with the load_balancing_scheme set to
4892	// INTERNAL_SELF_MANAGED.
4893	//
4894	// Not supported when the backend service is referenced by a URL map
4895	// that is bound to target gRPC proxy that has validateForProxyless
4896	// field set to true.
4897	CircuitBreakers *CircuitBreakers `json:"circuitBreakers,omitempty"`
4898
4899	ConnectionDraining *ConnectionDraining `json:"connectionDraining,omitempty"`
4900
4901	ConnectionTrackingPolicy *BackendServiceConnectionTrackingPolicy `json:"connectionTrackingPolicy,omitempty"`
4902
4903	// ConsistentHash: Consistent Hash-based load balancing can be used to
4904	// provide soft session affinity based on HTTP headers, cookies or other
4905	// properties. This load balancing policy is applicable only for HTTP
4906	// connections. The affinity to a particular destination host will be
4907	// lost when one or more hosts are added/removed from the destination
4908	// service. This field specifies parameters that control consistent
4909	// hashing. This field is only applicable when localityLbPolicy is set
4910	// to MAGLEV or RING_HASH.
4911	//
4912	// This field is applicable to either:
4913	// - A regional backend service with the service_protocol set to HTTP,
4914	// HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED.
4915	//
4916	// - A global backend service with the load_balancing_scheme set to
4917	// INTERNAL_SELF_MANAGED.
4918	//
4919	// Not supported when the backend service is referenced by a URL map
4920	// that is bound to target gRPC proxy that has validateForProxyless
4921	// field set to true.
4922	ConsistentHash *ConsistentHashLoadBalancerSettings `json:"consistentHash,omitempty"`
4923
4924	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
4925	// format.
4926	CreationTimestamp string `json:"creationTimestamp,omitempty"`
4927
4928	// CustomRequestHeaders: Headers that the HTTP/S load balancer should
4929	// add to proxied requests.
4930	CustomRequestHeaders []string `json:"customRequestHeaders,omitempty"`
4931
4932	// CustomResponseHeaders: Headers that the HTTP/S load balancer should
4933	// add to proxied responses.
4934	CustomResponseHeaders []string `json:"customResponseHeaders,omitempty"`
4935
4936	// Description: An optional description of this resource. Provide this
4937	// property when you create the resource.
4938	Description string `json:"description,omitempty"`
4939
4940	// EnableCDN: If true, enables Cloud CDN for the backend service. Only
4941	// applicable if the loadBalancingScheme is EXTERNAL and the protocol is
4942	// HTTP or HTTPS.
4943	EnableCDN bool `json:"enableCDN,omitempty"`
4944
4945	// FailoverPolicy: Applicable only to Failover for Internal TCP/UDP Load
4946	// Balancing and Network Load Balancing. Requires at least one backend
4947	// instance group to be defined as a backup (failover) backend.
4948	FailoverPolicy *BackendServiceFailoverPolicy `json:"failoverPolicy,omitempty"`
4949
4950	// Fingerprint: Fingerprint of this resource. A hash of the contents
4951	// stored in this object. This field is used in optimistic locking. This
4952	// field will be ignored when inserting a BackendService. An up-to-date
4953	// fingerprint must be provided in order to update the BackendService,
4954	// otherwise the request will fail with error 412 conditionNotMet.
4955	//
4956	// To see the latest fingerprint, make a get() request to retrieve a
4957	// BackendService.
4958	Fingerprint string `json:"fingerprint,omitempty"`
4959
4960	// HealthChecks: The list of URLs to the healthChecks, httpHealthChecks
4961	// (legacy), or httpsHealthChecks (legacy) resource for health checking
4962	// this backend service. Not all backend services support legacy health
4963	// checks. See  Load balancer guide. Currently, at most one health check
4964	// can be specified for each backend service. Backend services with
4965	// instance group or zonal NEG backends must have a health check.
4966	// Backend services with internet or serverless NEG backends must not
4967	// have a health check.
4968	HealthChecks []string `json:"healthChecks,omitempty"`
4969
4970	// Iap: The configurations for Identity-Aware Proxy on this resource.
4971	// Not available for Internal TCP/UDP Load Balancing and Network Load
4972	// Balancing.
4973	Iap *BackendServiceIAP `json:"iap,omitempty"`
4974
4975	// Id: [Output Only] The unique identifier for the resource. This
4976	// identifier is defined by the server.
4977	Id uint64 `json:"id,omitempty,string"`
4978
4979	// Kind: [Output Only] Type of resource. Always compute#backendService
4980	// for backend services.
4981	Kind string `json:"kind,omitempty"`
4982
4983	// LoadBalancingScheme: Specifies the load balancer type. Choose
4984	// EXTERNAL for external HTTP(S), SSL Proxy, TCP Proxy and Network Load
4985	// Balancing. Choose  INTERNAL for Internal TCP/UDP Load Balancing.
4986	// Choose  INTERNAL_MANAGED for Internal HTTP(S) Load Balancing.
4987	// INTERNAL_SELF_MANAGED for Traffic Director. A backend service created
4988	// for one type of load balancer cannot be used with another. For more
4989	// information, refer to Choosing a load balancer.
4990	//
4991	// Possible values:
4992	//   "EXTERNAL"
4993	//   "INTERNAL"
4994	//   "INTERNAL_MANAGED"
4995	//   "INTERNAL_SELF_MANAGED"
4996	//   "INVALID_LOAD_BALANCING_SCHEME"
4997	LoadBalancingScheme string `json:"loadBalancingScheme,omitempty"`
4998
4999	// LocalityLbPolicy: The load balancing algorithm used within the scope
5000	// of the locality. The possible values are:
5001	// - ROUND_ROBIN: This is a simple policy in which each healthy backend
5002	// is selected in round robin order. This is the default.
5003	// - LEAST_REQUEST: An O(1) algorithm which selects two random healthy
5004	// hosts and picks the host which has fewer active requests.
5005	// - RING_HASH: The ring/modulo hash load balancer implements consistent
5006	// hashing to backends. The algorithm has the property that the
5007	// addition/removal of a host from a set of N hosts only affects 1/N of
5008	// the requests.
5009	// - RANDOM: The load balancer selects a random healthy host.
5010	// - ORIGINAL_DESTINATION: Backend host is selected based on the client
5011	// connection metadata, i.e., connections are opened to the same address
5012	// as the destination address of the incoming connection before the
5013	// connection was redirected to the load balancer.
5014	// - MAGLEV: used as a drop in replacement for the ring hash load
5015	// balancer. Maglev is not as stable as ring hash but has faster table
5016	// lookup build times and host selection times. For more information
5017	// about Maglev, see https://ai.google/research/pubs/pub44824
5018	//
5019	// This field is applicable to either:
5020	// - A regional backend service with the service_protocol set to HTTP,
5021	// HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED.
5022	//
5023	// - A global backend service with the load_balancing_scheme set to
5024	// INTERNAL_SELF_MANAGED.
5025	//
5026	// If sessionAffinity is not NONE, and this field is not set to MAGLEV
5027	// or RING_HASH, session affinity settings will not take effect.
5028	//
5029	// Only the default ROUND_ROBIN policy is supported when the backend
5030	// service is referenced by a URL map that is bound to target gRPC proxy
5031	// that has validateForProxyless field set to true.
5032	//
5033	// Possible values:
5034	//   "INVALID_LB_POLICY"
5035	//   "LEAST_REQUEST"
5036	//   "MAGLEV"
5037	//   "ORIGINAL_DESTINATION"
5038	//   "RANDOM"
5039	//   "RING_HASH"
5040	//   "ROUND_ROBIN"
5041	LocalityLbPolicy string `json:"localityLbPolicy,omitempty"`
5042
5043	// LogConfig: This field denotes the logging options for the load
5044	// balancer traffic served by this backend service. If logging is
5045	// enabled, logs will be exported to Stackdriver.
5046	LogConfig *BackendServiceLogConfig `json:"logConfig,omitempty"`
5047
5048	// MaxStreamDuration: Specifies the default maximum duration (timeout)
5049	// for streams to this service. Duration is computed from the beginning
5050	// of the stream until the response has been completely processed,
5051	// including all retries. A stream that does not complete in this
5052	// duration is closed.
5053	// If not specified, there will be no timeout limit, i.e. the maximum
5054	// duration is infinite.
5055	// This field is only allowed when the loadBalancingScheme of the
5056	// backend service is INTERNAL_SELF_MANAGED.
5057	MaxStreamDuration *Duration `json:"maxStreamDuration,omitempty"`
5058
5059	// Name: Name of the resource. Provided by the client when the resource
5060	// is created. The name must be 1-63 characters long, and comply with
5061	// RFC1035. Specifically, the name must be 1-63 characters long and
5062	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
5063	// the first character must be a lowercase letter, and all following
5064	// characters must be a dash, lowercase letter, or digit, except the
5065	// last character, which cannot be a dash.
5066	Name string `json:"name,omitempty"`
5067
5068	// Network: The URL of the network to which this backend service
5069	// belongs. This field can only be specified when the load balancing
5070	// scheme is set to INTERNAL.
5071	Network string `json:"network,omitempty"`
5072
5073	// OutlierDetection: Settings controlling the eviction of unhealthy
5074	// hosts from the load balancing pool for the backend service. If not
5075	// set, this feature is considered disabled.
5076	//
5077	// This field is applicable to either:
5078	// - A regional backend service with the service_protocol set to HTTP,
5079	// HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED.
5080	//
5081	// - A global backend service with the load_balancing_scheme set to
5082	// INTERNAL_SELF_MANAGED.
5083	//
5084	// Not supported when the backend service is referenced by a URL map
5085	// that is bound to target gRPC proxy that has validateForProxyless
5086	// field set to true.
5087	OutlierDetection *OutlierDetection `json:"outlierDetection,omitempty"`
5088
5089	// Port: Deprecated in favor of portName. The TCP port to connect on the
5090	// backend. The default value is 80.
5091	//
5092	// Backend services for Internal TCP/UDP Load Balancing and Network Load
5093	// Balancing require you omit port.
5094	Port int64 `json:"port,omitempty"`
5095
5096	// PortName: A named port on a backend instance group representing the
5097	// port for communication to the backend VMs in that group. Required
5098	// when the loadBalancingScheme is EXTERNAL (except Network Load
5099	// Balancing), INTERNAL_MANAGED, or  INTERNAL_SELF_MANAGED and the
5100	// backends are instance groups. The named port must be defined on each
5101	// backend instance group. This parameter has no meaning if the backends
5102	// are NEGs.
5103	//
5104	//
5105	//
5106	// Backend services for Internal TCP/UDP Load Balancing and Network Load
5107	// Balancing require you omit port_name.
5108	PortName string `json:"portName,omitempty"`
5109
5110	// Protocol: The protocol this BackendService uses to communicate with
5111	// backends.
5112	//
5113	// Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC.
5114	// depending on the chosen load balancer or Traffic Director
5115	// configuration. Refer to the documentation for the load balancer or
5116	// for Traffic Director for more information.
5117	//
5118	// Must be set to GRPC when the backend service is referenced by a URL
5119	// map that is bound to target gRPC proxy.
5120	//
5121	// Possible values:
5122	//   "GRPC"
5123	//   "HTTP"
5124	//   "HTTP2"
5125	//   "HTTPS"
5126	//   "SSL"
5127	//   "TCP"
5128	//   "UDP"
5129	Protocol string `json:"protocol,omitempty"`
5130
5131	// Region: [Output Only] URL of the region where the regional backend
5132	// service resides. This field is not applicable to global backend
5133	// services. You must specify this field as part of the HTTP request
5134	// URL. It is not settable as a field in the request body.
5135	Region string `json:"region,omitempty"`
5136
5137	// SecurityPolicy: [Output Only] The resource URL for the security
5138	// policy associated with this backend service.
5139	SecurityPolicy string `json:"securityPolicy,omitempty"`
5140
5141	// SecuritySettings: This field specifies the security policy that
5142	// applies to this backend service. This field is applicable to either:
5143	//
5144	// - A regional backend service with the service_protocol set to HTTP,
5145	// HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED.
5146	//
5147	// - A global backend service with the load_balancing_scheme set to
5148	// INTERNAL_SELF_MANAGED.
5149	SecuritySettings *SecuritySettings `json:"securitySettings,omitempty"`
5150
5151	// SelfLink: [Output Only] Server-defined URL for the resource.
5152	SelfLink string `json:"selfLink,omitempty"`
5153
5154	// SessionAffinity: Type of session affinity to use. The default is
5155	// NONE.
5156	//
5157	// When the loadBalancingScheme is EXTERNAL: * For Network Load
5158	// Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO,
5159	// or CLIENT_IP_PORT_PROTO. * For all other load balancers that use
5160	// loadBalancingScheme=EXTERNAL, the possible values are NONE,
5161	// CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the
5162	// protocol is HTTP, HTTP2, or HTTPS.
5163	//
5164	// When the loadBalancingScheme is INTERNAL, possible values are NONE,
5165	// CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
5166	//
5167	// When the loadBalancingScheme is INTERNAL_SELF_MANAGED, or
5168	// INTERNAL_MANAGED, possible values are NONE, CLIENT_IP,
5169	// GENERATED_COOKIE, HEADER_FIELD, or HTTP_COOKIE.
5170	//
5171	// Not supported when the backend service is referenced by a URL map
5172	// that is bound to target gRPC proxy that has validateForProxyless
5173	// field set to true.
5174	//
5175	// Possible values:
5176	//   "CLIENT_IP"
5177	//   "CLIENT_IP_PORT_PROTO"
5178	//   "CLIENT_IP_PROTO"
5179	//   "GENERATED_COOKIE"
5180	//   "HEADER_FIELD"
5181	//   "HTTP_COOKIE"
5182	//   "NONE"
5183	SessionAffinity string `json:"sessionAffinity,omitempty"`
5184
5185	Subsetting *Subsetting `json:"subsetting,omitempty"`
5186
5187	// TimeoutSec: The backend service timeout has a different meaning
5188	// depending on the type of load balancer. For more information see,
5189	// Backend service settings The default is 30 seconds. The full range of
5190	// timeout values allowed is 1 - 2,147,483,647 seconds.
5191	TimeoutSec int64 `json:"timeoutSec,omitempty"`
5192
5193	// ServerResponse contains the HTTP response code and headers from the
5194	// server.
5195	googleapi.ServerResponse `json:"-"`
5196
5197	// ForceSendFields is a list of field names (e.g.
5198	// "AffinityCookieTtlSec") to unconditionally include in API requests.
5199	// By default, fields with empty values are omitted from API requests.
5200	// However, any non-pointer, non-interface field appearing in
5201	// ForceSendFields will be sent to the server regardless of whether the
5202	// field is empty or not. This may be used to include empty fields in
5203	// Patch requests.
5204	ForceSendFields []string `json:"-"`
5205
5206	// NullFields is a list of field names (e.g. "AffinityCookieTtlSec") to
5207	// include in API requests with the JSON null value. By default, fields
5208	// with empty values are omitted from API requests. However, any field
5209	// with an empty value appearing in NullFields will be sent to the
5210	// server as null. It is an error if a field in this list has a
5211	// non-empty value. This may be used to include null fields in Patch
5212	// requests.
5213	NullFields []string `json:"-"`
5214}
5215
5216func (s *BackendService) MarshalJSON() ([]byte, error) {
5217	type NoMethod BackendService
5218	raw := NoMethod(*s)
5219	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5220}
5221
5222// BackendServiceAggregatedList: Contains a list of
5223// BackendServicesScopedList.
5224type BackendServiceAggregatedList struct {
5225	// Id: [Output Only] Unique identifier for the resource; defined by the
5226	// server.
5227	Id string `json:"id,omitempty"`
5228
5229	// Items: A list of BackendServicesScopedList resources.
5230	Items map[string]BackendServicesScopedList `json:"items,omitempty"`
5231
5232	// Kind: Type of resource.
5233	Kind string `json:"kind,omitempty"`
5234
5235	// NextPageToken: [Output Only] This token allows you to get the next
5236	// page of results for list requests. If the number of results is larger
5237	// than maxResults, use the nextPageToken as a value for the query
5238	// parameter pageToken in the next list request. Subsequent list
5239	// requests will have their own nextPageToken to continue paging through
5240	// the results.
5241	NextPageToken string `json:"nextPageToken,omitempty"`
5242
5243	// SelfLink: [Output Only] Server-defined URL for this resource.
5244	SelfLink string `json:"selfLink,omitempty"`
5245
5246	// Unreachables: [Output Only] Unreachable resources.
5247	Unreachables []string `json:"unreachables,omitempty"`
5248
5249	// Warning: [Output Only] Informational warning message.
5250	Warning *BackendServiceAggregatedListWarning `json:"warning,omitempty"`
5251
5252	// ServerResponse contains the HTTP response code and headers from the
5253	// server.
5254	googleapi.ServerResponse `json:"-"`
5255
5256	// ForceSendFields is a list of field names (e.g. "Id") to
5257	// unconditionally include in API requests. By default, fields with
5258	// empty values are omitted from API requests. However, any non-pointer,
5259	// non-interface field appearing in ForceSendFields will be sent to the
5260	// server regardless of whether the field is empty or not. This may be
5261	// used to include empty fields in Patch requests.
5262	ForceSendFields []string `json:"-"`
5263
5264	// NullFields is a list of field names (e.g. "Id") to include in API
5265	// requests with the JSON null value. By default, fields with empty
5266	// values are omitted from API requests. However, any field with an
5267	// empty value appearing in NullFields will be sent to the server as
5268	// null. It is an error if a field in this list has a non-empty value.
5269	// This may be used to include null fields in Patch requests.
5270	NullFields []string `json:"-"`
5271}
5272
5273func (s *BackendServiceAggregatedList) MarshalJSON() ([]byte, error) {
5274	type NoMethod BackendServiceAggregatedList
5275	raw := NoMethod(*s)
5276	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5277}
5278
5279// BackendServiceAggregatedListWarning: [Output Only] Informational
5280// warning message.
5281type BackendServiceAggregatedListWarning struct {
5282	// Code: [Output Only] A warning code, if applicable. For example,
5283	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
5284	// the response.
5285	//
5286	// Possible values:
5287	//   "CLEANUP_FAILED"
5288	//   "DEPRECATED_RESOURCE_USED"
5289	//   "DEPRECATED_TYPE_USED"
5290	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
5291	//   "EXPERIMENTAL_TYPE_USED"
5292	//   "EXTERNAL_API_WARNING"
5293	//   "FIELD_VALUE_OVERRIDEN"
5294	//   "INJECTED_KERNELS_DEPRECATED"
5295	//   "LARGE_DEPLOYMENT_WARNING"
5296	//   "MISSING_TYPE_DEPENDENCY"
5297	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
5298	//   "NEXT_HOP_CANNOT_IP_FORWARD"
5299	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
5300	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
5301	//   "NEXT_HOP_NOT_RUNNING"
5302	//   "NOT_CRITICAL_ERROR"
5303	//   "NO_RESULTS_ON_PAGE"
5304	//   "PARTIAL_SUCCESS"
5305	//   "REQUIRED_TOS_AGREEMENT"
5306	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
5307	//   "RESOURCE_NOT_DELETED"
5308	//   "SCHEMA_VALIDATION_IGNORED"
5309	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
5310	//   "UNDECLARED_PROPERTIES"
5311	//   "UNREACHABLE"
5312	Code string `json:"code,omitempty"`
5313
5314	// Data: [Output Only] Metadata about this warning in key: value format.
5315	// For example:
5316	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
5317	Data []*BackendServiceAggregatedListWarningData `json:"data,omitempty"`
5318
5319	// Message: [Output Only] A human-readable description of the warning
5320	// code.
5321	Message string `json:"message,omitempty"`
5322
5323	// ForceSendFields is a list of field names (e.g. "Code") to
5324	// unconditionally include in API requests. By default, fields with
5325	// empty values are omitted from API requests. However, any non-pointer,
5326	// non-interface field appearing in ForceSendFields will be sent to the
5327	// server regardless of whether the field is empty or not. This may be
5328	// used to include empty fields in Patch requests.
5329	ForceSendFields []string `json:"-"`
5330
5331	// NullFields is a list of field names (e.g. "Code") to include in API
5332	// requests with the JSON null value. By default, fields with empty
5333	// values are omitted from API requests. However, any field with an
5334	// empty value appearing in NullFields will be sent to the server as
5335	// null. It is an error if a field in this list has a non-empty value.
5336	// This may be used to include null fields in Patch requests.
5337	NullFields []string `json:"-"`
5338}
5339
5340func (s *BackendServiceAggregatedListWarning) MarshalJSON() ([]byte, error) {
5341	type NoMethod BackendServiceAggregatedListWarning
5342	raw := NoMethod(*s)
5343	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5344}
5345
5346type BackendServiceAggregatedListWarningData struct {
5347	// Key: [Output Only] A key that provides more detail on the warning
5348	// being returned. For example, for warnings where there are no results
5349	// in a list request for a particular zone, this key might be scope and
5350	// the key value might be the zone name. Other examples might be a key
5351	// indicating a deprecated resource and a suggested replacement, or a
5352	// warning about invalid network settings (for example, if an instance
5353	// attempts to perform IP forwarding but is not enabled for IP
5354	// forwarding).
5355	Key string `json:"key,omitempty"`
5356
5357	// Value: [Output Only] A warning data value corresponding to the key.
5358	Value string `json:"value,omitempty"`
5359
5360	// ForceSendFields is a list of field names (e.g. "Key") to
5361	// unconditionally include in API requests. By default, fields with
5362	// empty values are omitted from API requests. However, any non-pointer,
5363	// non-interface field appearing in ForceSendFields will be sent to the
5364	// server regardless of whether the field is empty or not. This may be
5365	// used to include empty fields in Patch requests.
5366	ForceSendFields []string `json:"-"`
5367
5368	// NullFields is a list of field names (e.g. "Key") to include in API
5369	// requests with the JSON null value. By default, fields with empty
5370	// values are omitted from API requests. However, any field with an
5371	// empty value appearing in NullFields will be sent to the server as
5372	// null. It is an error if a field in this list has a non-empty value.
5373	// This may be used to include null fields in Patch requests.
5374	NullFields []string `json:"-"`
5375}
5376
5377func (s *BackendServiceAggregatedListWarningData) MarshalJSON() ([]byte, error) {
5378	type NoMethod BackendServiceAggregatedListWarningData
5379	raw := NoMethod(*s)
5380	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5381}
5382
5383// BackendServiceCdnPolicy: Message containing Cloud CDN configuration
5384// for a backend service.
5385type BackendServiceCdnPolicy struct {
5386	// BypassCacheOnRequestHeaders: Bypass the cache when the specified
5387	// request headers are matched - e.g. Pragma or Authorization headers.
5388	// Up to 5 headers can be specified. The cache is bypassed for all
5389	// cdnPolicy.cacheMode settings.
5390	BypassCacheOnRequestHeaders []*BackendServiceCdnPolicyBypassCacheOnRequestHeader `json:"bypassCacheOnRequestHeaders,omitempty"`
5391
5392	// CacheKeyPolicy: The CacheKeyPolicy for this CdnPolicy.
5393	CacheKeyPolicy *CacheKeyPolicy `json:"cacheKeyPolicy,omitempty"`
5394
5395	// CacheMode: Specifies the cache setting for all responses from this
5396	// backend. The possible values are:
5397	//
5398	// USE_ORIGIN_HEADERS Requires the origin to set valid caching headers
5399	// to cache content. Responses without these headers will not be cached
5400	// at Google's edge, and will require a full trip to the origin on every
5401	// request, potentially impacting performance and increasing load on the
5402	// origin server.
5403	//
5404	// FORCE_CACHE_ALL Cache all content, ignoring any "private", "no-store"
5405	// or "no-cache" directives in Cache-Control response headers. Warning:
5406	// this may result in Cloud CDN caching private, per-user (user
5407	// identifiable) content.
5408	//
5409	// CACHE_ALL_STATIC Automatically cache static content, including common
5410	// image formats, media (video and audio), and web assets (JavaScript
5411	// and CSS). Requests and responses that are marked as uncacheable, as
5412	// well as dynamic content (including HTML), will not be cached.
5413	//
5414	// Possible values:
5415	//   "CACHE_ALL_STATIC"
5416	//   "FORCE_CACHE_ALL"
5417	//   "INVALID_CACHE_MODE"
5418	//   "USE_ORIGIN_HEADERS"
5419	CacheMode string `json:"cacheMode,omitempty"`
5420
5421	// ClientTtl: Specifies a separate client (e.g. browser client) maximum
5422	// TTL. This is used to clamp the max-age (or Expires) value sent to the
5423	// client. With FORCE_CACHE_ALL, the lesser of client_ttl and
5424	// default_ttl is used for the response max-age directive, along with a
5425	// "public" directive. For cacheable content in CACHE_ALL_STATIC mode,
5426	// client_ttl clamps the max-age from the origin (if specified), or else
5427	// sets the response max-age directive to the lesser of the client_ttl
5428	// and default_ttl, and also ensures a "public" cache-control directive
5429	// is present. If a client TTL is not specified, a default value (1
5430	// hour) will be used. The maximum allowed value is 86400s (1 day).
5431	ClientTtl int64 `json:"clientTtl,omitempty"`
5432
5433	// DefaultTtl: Specifies the default TTL for cached content served by
5434	// this origin for responses that do not have an existing valid TTL
5435	// (max-age or s-max-age). Setting a TTL of "0" means "always
5436	// revalidate". The value of defaultTTL cannot be set to a value greater
5437	// than that of maxTTL, but can be equal. When the cacheMode is set to
5438	// FORCE_CACHE_ALL, the defaultTTL will overwrite the TTL set in all
5439	// responses. The maximum allowed value is 31,622,400s (1 year), noting
5440	// that infrequently accessed objects may be evicted from the cache
5441	// before the defined TTL.
5442	DefaultTtl int64 `json:"defaultTtl,omitempty"`
5443
5444	// MaxTtl: Specifies the maximum allowed TTL for cached content served
5445	// by this origin. Cache directives that attempt to set a max-age or
5446	// s-maxage higher than this, or an Expires header more than maxTTL
5447	// seconds in the future will be capped at the value of maxTTL, as if it
5448	// were the value of an s-maxage Cache-Control directive. Headers sent
5449	// to the client will not be modified. Setting a TTL of "0" means
5450	// "always revalidate". The maximum allowed value is 31,622,400s (1
5451	// year), noting that infrequently accessed objects may be evicted from
5452	// the cache before the defined TTL.
5453	MaxTtl int64 `json:"maxTtl,omitempty"`
5454
5455	// NegativeCaching: Negative caching allows per-status code TTLs to be
5456	// set, in order to apply fine-grained caching for common errors or
5457	// redirects. This can reduce the load on your origin and improve
5458	// end-user experience by reducing response latency. When the cache mode
5459	// is set to CACHE_ALL_STATIC or USE_ORIGIN_HEADERS, negative caching
5460	// applies to responses with the specified response code that lack any
5461	// Cache-Control, Expires, or Pragma: no-cache directives. When the
5462	// cache mode is set to FORCE_CACHE_ALL, negative caching applies to all
5463	// responses with the specified response code, and override any caching
5464	// headers. By default, Cloud CDN will apply the following default TTLs
5465	// to these status codes: HTTP 300 (Multiple Choice), 301, 308
5466	// (Permanent Redirects): 10m HTTP 404 (Not Found), 410 (Gone), 451
5467	// (Unavailable For Legal Reasons): 120s HTTP 405 (Method Not Found),
5468	// 421 (Misdirected Request), 501 (Not Implemented): 60s. These defaults
5469	// can be overridden in negative_caching_policy.
5470	NegativeCaching bool `json:"negativeCaching,omitempty"`
5471
5472	// NegativeCachingPolicy: Sets a cache TTL for the specified HTTP status
5473	// code. negative_caching must be enabled to configure
5474	// negative_caching_policy. Omitting the policy and leaving
5475	// negative_caching enabled will use Cloud CDN's default cache TTLs.
5476	// Note that when specifying an explicit negative_caching_policy, you
5477	// should take care to specify a cache TTL for all response codes that
5478	// you wish to cache. Cloud CDN will not apply any default negative
5479	// caching when a policy exists.
5480	NegativeCachingPolicy []*BackendServiceCdnPolicyNegativeCachingPolicy `json:"negativeCachingPolicy,omitempty"`
5481
5482	// RequestCoalescing: If true then Cloud CDN will combine multiple
5483	// concurrent cache fill requests into a small number of requests to the
5484	// origin.
5485	RequestCoalescing bool `json:"requestCoalescing,omitempty"`
5486
5487	// ServeWhileStale: Serve existing content from the cache (if available)
5488	// when revalidating content with the origin, or when an error is
5489	// encountered when refreshing the cache. This setting defines the
5490	// default "max-stale" duration for any cached responses that do not
5491	// specify a max-stale directive. Stale responses that exceed the TTL
5492	// configured here will not be served. The default limit (max-stale) is
5493	// 86400s (1 day), which will allow stale content to be served up to
5494	// this limit beyond the max-age (or s-max-age) of a cached response.
5495	// The maximum allowed value is 604800 (1 week). Set this to zero (0) to
5496	// disable serve-while-stale.
5497	ServeWhileStale int64 `json:"serveWhileStale,omitempty"`
5498
5499	// SignedUrlCacheMaxAgeSec: Maximum number of seconds the response to a
5500	// signed URL request will be considered fresh. After this time period,
5501	// the response will be revalidated before being served. Defaults to 1hr
5502	// (3600s). When serving responses to signed URL requests, Cloud CDN
5503	// will internally behave as though all responses from this backend had
5504	// a "Cache-Control: public, max-age=[TTL]" header, regardless of any
5505	// existing Cache-Control header. The actual headers served in responses
5506	// will not be altered.
5507	SignedUrlCacheMaxAgeSec int64 `json:"signedUrlCacheMaxAgeSec,omitempty,string"`
5508
5509	// SignedUrlKeyNames: [Output Only] Names of the keys for signing
5510	// request URLs.
5511	SignedUrlKeyNames []string `json:"signedUrlKeyNames,omitempty"`
5512
5513	// ForceSendFields is a list of field names (e.g.
5514	// "BypassCacheOnRequestHeaders") to unconditionally include in API
5515	// requests. By default, fields with empty values are omitted from API
5516	// requests. However, any non-pointer, non-interface field appearing in
5517	// ForceSendFields will be sent to the server regardless of whether the
5518	// field is empty or not. This may be used to include empty fields in
5519	// Patch requests.
5520	ForceSendFields []string `json:"-"`
5521
5522	// NullFields is a list of field names (e.g.
5523	// "BypassCacheOnRequestHeaders") to include in API requests with the
5524	// JSON null value. By default, fields with empty values are omitted
5525	// from API requests. However, any field with an empty value appearing
5526	// in NullFields will be sent to the server as null. It is an error if a
5527	// field in this list has a non-empty value. This may be used to include
5528	// null fields in Patch requests.
5529	NullFields []string `json:"-"`
5530}
5531
5532func (s *BackendServiceCdnPolicy) MarshalJSON() ([]byte, error) {
5533	type NoMethod BackendServiceCdnPolicy
5534	raw := NoMethod(*s)
5535	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5536}
5537
5538// BackendServiceCdnPolicyBypassCacheOnRequestHeader: Bypass the cache
5539// when the specified request headers are present, e.g. Pragma or
5540// Authorization headers. Values are case insensitive. The presence of
5541// such a header overrides the cache_mode setting.
5542type BackendServiceCdnPolicyBypassCacheOnRequestHeader struct {
5543	// HeaderName: The header field name to match on when bypassing cache.
5544	// Values are case-insensitive.
5545	HeaderName string `json:"headerName,omitempty"`
5546
5547	// ForceSendFields is a list of field names (e.g. "HeaderName") to
5548	// unconditionally include in API requests. By default, fields with
5549	// empty values are omitted from API requests. However, any non-pointer,
5550	// non-interface field appearing in ForceSendFields will be sent to the
5551	// server regardless of whether the field is empty or not. This may be
5552	// used to include empty fields in Patch requests.
5553	ForceSendFields []string `json:"-"`
5554
5555	// NullFields is a list of field names (e.g. "HeaderName") to include in
5556	// API requests with the JSON null value. By default, fields with empty
5557	// values are omitted from API requests. However, any field with an
5558	// empty value appearing in NullFields will be sent to the server as
5559	// null. It is an error if a field in this list has a non-empty value.
5560	// This may be used to include null fields in Patch requests.
5561	NullFields []string `json:"-"`
5562}
5563
5564func (s *BackendServiceCdnPolicyBypassCacheOnRequestHeader) MarshalJSON() ([]byte, error) {
5565	type NoMethod BackendServiceCdnPolicyBypassCacheOnRequestHeader
5566	raw := NoMethod(*s)
5567	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5568}
5569
5570// BackendServiceCdnPolicyNegativeCachingPolicy: Specify CDN TTLs for
5571// response error codes.
5572type BackendServiceCdnPolicyNegativeCachingPolicy struct {
5573	// Code: The HTTP status code to define a TTL against. Only HTTP status
5574	// codes 300, 301, 302, 307, 308, 404, 405, 410, 421, 451 and 501 are
5575	// can be specified as values, and you cannot specify a status code more
5576	// than once.
5577	Code int64 `json:"code,omitempty"`
5578
5579	// Ttl: The TTL (in seconds) for which to cache responses with the
5580	// corresponding status code. The maximum allowed value is 1800s (30
5581	// minutes), noting that infrequently accessed objects may be evicted
5582	// from the cache before the defined TTL.
5583	Ttl int64 `json:"ttl,omitempty"`
5584
5585	// ForceSendFields is a list of field names (e.g. "Code") to
5586	// unconditionally include in API requests. By default, fields with
5587	// empty values are omitted from API requests. However, any non-pointer,
5588	// non-interface field appearing in ForceSendFields will be sent to the
5589	// server regardless of whether the field is empty or not. This may be
5590	// used to include empty fields in Patch requests.
5591	ForceSendFields []string `json:"-"`
5592
5593	// NullFields is a list of field names (e.g. "Code") to include in API
5594	// requests with the JSON null value. By default, fields with empty
5595	// values are omitted from API requests. However, any field with an
5596	// empty value appearing in NullFields will be sent to the server as
5597	// null. It is an error if a field in this list has a non-empty value.
5598	// This may be used to include null fields in Patch requests.
5599	NullFields []string `json:"-"`
5600}
5601
5602func (s *BackendServiceCdnPolicyNegativeCachingPolicy) MarshalJSON() ([]byte, error) {
5603	type NoMethod BackendServiceCdnPolicyNegativeCachingPolicy
5604	raw := NoMethod(*s)
5605	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5606}
5607
5608// BackendServiceConnectionTrackingPolicy: Connection Tracking
5609// configuration for this BackendService.
5610type BackendServiceConnectionTrackingPolicy struct {
5611	// ConnectionPersistenceOnUnhealthyBackends: Specifies connection
5612	// persistence when backends are unhealthy. The default value is
5613	// DEFAULT_FOR_PROTOCOL.
5614	//
5615	// If set to DEFAULT_FOR_PROTOCOL, the existing connections persist on
5616	// unhealthy backends only for connection-oriented protocols (TCP and
5617	// SCTP) and only if the Tracking Mode is PER_CONNECTION (default
5618	// tracking mode) or the Session Affinity is configured for 5-tuple.
5619	// They do not persist for UDP.
5620	//
5621	// If set to NEVER_PERSIST, after a backend becomes unhealthy, the
5622	// existing connections on the unhealthy backend are never persisted on
5623	// the unhealthy backend. They are always diverted to newly selected
5624	// healthy backends (unless all backends are unhealthy).
5625	//
5626	// If set to ALWAYS_PERSIST, existing connections always persist on
5627	// unhealthy backends regardless of protocol and session affinity. It is
5628	// generally not recommended to use this mode overriding the default.
5629	//
5630	// Possible values:
5631	//   "ALWAYS_PERSIST"
5632	//   "DEFAULT_FOR_PROTOCOL"
5633	//   "NEVER_PERSIST"
5634	ConnectionPersistenceOnUnhealthyBackends string `json:"connectionPersistenceOnUnhealthyBackends,omitempty"`
5635
5636	// IdleTimeoutSec: Specifies how long to keep a Connection Tracking
5637	// entry while there is no matching traffic (in seconds).
5638	//
5639	// For L4 ILB the minimum(default) is 10 minutes and maximum is 16
5640	// hours.
5641	//
5642	// For NLB the minimum(default) is 60 seconds and the maximum is 16
5643	// hours.
5644	//
5645	// This field will be supported only if the Connection Tracking key is
5646	// less than 5-tuple.
5647	IdleTimeoutSec int64 `json:"idleTimeoutSec,omitempty"`
5648
5649	// TrackingMode: Specifies the key used for connection tracking. There
5650	// are two options:
5651	//
5652	// PER_CONNECTION: This is the default mode. The Connection Tracking is
5653	// performed as per the Connection Key (default Hash Method) for the
5654	// specific protocol.
5655	//
5656	// PER_SESSION: The Connection Tracking is performed as per the
5657	// configured Session Affinity. It matches the configured Session
5658	// Affinity.
5659	//
5660	// Possible values:
5661	//   "INVALID_TRACKING_MODE"
5662	//   "PER_CONNECTION"
5663	//   "PER_SESSION"
5664	TrackingMode string `json:"trackingMode,omitempty"`
5665
5666	// ForceSendFields is a list of field names (e.g.
5667	// "ConnectionPersistenceOnUnhealthyBackends") to unconditionally
5668	// include in API requests. By default, fields with empty values are
5669	// omitted from API requests. However, any non-pointer, non-interface
5670	// field appearing in ForceSendFields will be sent to the server
5671	// regardless of whether the field is empty or not. This may be used to
5672	// include empty fields in Patch requests.
5673	ForceSendFields []string `json:"-"`
5674
5675	// NullFields is a list of field names (e.g.
5676	// "ConnectionPersistenceOnUnhealthyBackends") to include in API
5677	// requests with the JSON null value. By default, fields with empty
5678	// values are omitted from API requests. However, any field with an
5679	// empty value appearing in NullFields will be sent to the server as
5680	// null. It is an error if a field in this list has a non-empty value.
5681	// This may be used to include null fields in Patch requests.
5682	NullFields []string `json:"-"`
5683}
5684
5685func (s *BackendServiceConnectionTrackingPolicy) MarshalJSON() ([]byte, error) {
5686	type NoMethod BackendServiceConnectionTrackingPolicy
5687	raw := NoMethod(*s)
5688	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5689}
5690
5691// BackendServiceFailoverPolicy: Applicable only to Failover for
5692// Internal TCP/UDP Load Balancing and Network Load Balancing. On
5693// failover or failback, this field indicates whether connection
5694// draining will be honored. GCP has a fixed connection draining timeout
5695// of 10 minutes. A setting of true terminates existing TCP connections
5696// to the active pool during failover and failback, immediately draining
5697// traffic. A setting of false allows existing TCP connections to
5698// persist, even on VMs no longer in the active pool, for up to the
5699// duration of the connection draining timeout (10 minutes).
5700type BackendServiceFailoverPolicy struct {
5701	// DisableConnectionDrainOnFailover: This can be set to true only if the
5702	// protocol is TCP.
5703	//
5704	// The default is false.
5705	DisableConnectionDrainOnFailover bool `json:"disableConnectionDrainOnFailover,omitempty"`
5706
5707	// DropTrafficIfUnhealthy: Applicable only to Failover for Internal
5708	// TCP/UDP Load Balancing and Network Load Balancing, If set to true,
5709	// connections to the load balancer are dropped when all primary and all
5710	// backup backend VMs are unhealthy.If set to false, connections are
5711	// distributed among all primary VMs when all primary and all backup
5712	// backend VMs are unhealthy. The default is false.
5713	DropTrafficIfUnhealthy bool `json:"dropTrafficIfUnhealthy,omitempty"`
5714
5715	// FailoverRatio: Applicable only to Failover for Internal TCP/UDP Load
5716	// Balancing and Network Load Balancing. The value of the field must be
5717	// in the range [0, 1]. If the value is 0, the load balancer performs a
5718	// failover when the number of healthy primary VMs equals zero. For all
5719	// other values, the load balancer performs a failover when the total
5720	// number of healthy primary VMs is less than this ratio.
5721	FailoverRatio float64 `json:"failoverRatio,omitempty"`
5722
5723	// ForceSendFields is a list of field names (e.g.
5724	// "DisableConnectionDrainOnFailover") to unconditionally include in API
5725	// requests. By default, fields with empty values are omitted from API
5726	// requests. However, any non-pointer, non-interface field appearing in
5727	// ForceSendFields will be sent to the server regardless of whether the
5728	// field is empty or not. This may be used to include empty fields in
5729	// Patch requests.
5730	ForceSendFields []string `json:"-"`
5731
5732	// NullFields is a list of field names (e.g.
5733	// "DisableConnectionDrainOnFailover") to include in API requests with
5734	// the JSON null value. By default, fields with empty values are omitted
5735	// from API requests. However, any field with an empty value appearing
5736	// in NullFields will be sent to the server as null. It is an error if a
5737	// field in this list has a non-empty value. This may be used to include
5738	// null fields in Patch requests.
5739	NullFields []string `json:"-"`
5740}
5741
5742func (s *BackendServiceFailoverPolicy) MarshalJSON() ([]byte, error) {
5743	type NoMethod BackendServiceFailoverPolicy
5744	raw := NoMethod(*s)
5745	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5746}
5747
5748func (s *BackendServiceFailoverPolicy) UnmarshalJSON(data []byte) error {
5749	type NoMethod BackendServiceFailoverPolicy
5750	var s1 struct {
5751		FailoverRatio gensupport.JSONFloat64 `json:"failoverRatio"`
5752		*NoMethod
5753	}
5754	s1.NoMethod = (*NoMethod)(s)
5755	if err := json.Unmarshal(data, &s1); err != nil {
5756		return err
5757	}
5758	s.FailoverRatio = float64(s1.FailoverRatio)
5759	return nil
5760}
5761
5762type BackendServiceGroupHealth struct {
5763	// Annotations: Metadata defined as annotations on the network endpoint
5764	// group.
5765	Annotations map[string]string `json:"annotations,omitempty"`
5766
5767	// HealthStatus: Health state of the backend instances or endpoints in
5768	// requested instance or network endpoint group, determined based on
5769	// configured health checks.
5770	HealthStatus []*HealthStatus `json:"healthStatus,omitempty"`
5771
5772	// Kind: [Output Only] Type of resource. Always
5773	// compute#backendServiceGroupHealth for the health of backend services.
5774	Kind string `json:"kind,omitempty"`
5775
5776	// ServerResponse contains the HTTP response code and headers from the
5777	// server.
5778	googleapi.ServerResponse `json:"-"`
5779
5780	// ForceSendFields is a list of field names (e.g. "Annotations") to
5781	// unconditionally include in API requests. By default, fields with
5782	// empty values are omitted from API requests. However, any non-pointer,
5783	// non-interface field appearing in ForceSendFields will be sent to the
5784	// server regardless of whether the field is empty or not. This may be
5785	// used to include empty fields in Patch requests.
5786	ForceSendFields []string `json:"-"`
5787
5788	// NullFields is a list of field names (e.g. "Annotations") to include
5789	// in API requests with the JSON null value. By default, fields with
5790	// empty values are omitted from API requests. However, any field with
5791	// an empty value appearing in NullFields will be sent to the server as
5792	// null. It is an error if a field in this list has a non-empty value.
5793	// This may be used to include null fields in Patch requests.
5794	NullFields []string `json:"-"`
5795}
5796
5797func (s *BackendServiceGroupHealth) MarshalJSON() ([]byte, error) {
5798	type NoMethod BackendServiceGroupHealth
5799	raw := NoMethod(*s)
5800	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5801}
5802
5803// BackendServiceIAP: Identity-Aware Proxy
5804type BackendServiceIAP struct {
5805	// Enabled: Whether the serving infrastructure will authenticate and
5806	// authorize all incoming requests. If true, the oauth2ClientId and
5807	// oauth2ClientSecret fields must be non-empty.
5808	Enabled bool `json:"enabled,omitempty"`
5809
5810	// Oauth2ClientId: OAuth2 client ID to use for the authentication flow.
5811	Oauth2ClientId string `json:"oauth2ClientId,omitempty"`
5812
5813	// Oauth2ClientSecret: OAuth2 client secret to use for the
5814	// authentication flow. For security reasons, this value cannot be
5815	// retrieved via the API. Instead, the SHA-256 hash of the value is
5816	// returned in the oauth2ClientSecretSha256 field.
5817	Oauth2ClientSecret string `json:"oauth2ClientSecret,omitempty"`
5818
5819	// Oauth2ClientSecretSha256: [Output Only] SHA256 hash value for the
5820	// field oauth2_client_secret above.
5821	Oauth2ClientSecretSha256 string `json:"oauth2ClientSecretSha256,omitempty"`
5822
5823	// ForceSendFields is a list of field names (e.g. "Enabled") to
5824	// unconditionally include in API requests. By default, fields with
5825	// empty values are omitted from API requests. However, any non-pointer,
5826	// non-interface field appearing in ForceSendFields will be sent to the
5827	// server regardless of whether the field is empty or not. This may be
5828	// used to include empty fields in Patch requests.
5829	ForceSendFields []string `json:"-"`
5830
5831	// NullFields is a list of field names (e.g. "Enabled") to include in
5832	// API requests with the JSON null value. By default, fields with empty
5833	// values are omitted from API requests. However, any field with an
5834	// empty value appearing in NullFields will be sent to the server as
5835	// null. It is an error if a field in this list has a non-empty value.
5836	// This may be used to include null fields in Patch requests.
5837	NullFields []string `json:"-"`
5838}
5839
5840func (s *BackendServiceIAP) MarshalJSON() ([]byte, error) {
5841	type NoMethod BackendServiceIAP
5842	raw := NoMethod(*s)
5843	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5844}
5845
5846// BackendServiceList: Contains a list of BackendService resources.
5847type BackendServiceList struct {
5848	// Id: [Output Only] Unique identifier for the resource; defined by the
5849	// server.
5850	Id string `json:"id,omitempty"`
5851
5852	// Items: A list of BackendService resources.
5853	Items []*BackendService `json:"items,omitempty"`
5854
5855	// Kind: [Output Only] Type of resource. Always
5856	// compute#backendServiceList for lists of backend services.
5857	Kind string `json:"kind,omitempty"`
5858
5859	// NextPageToken: [Output Only] This token allows you to get the next
5860	// page of results for list requests. If the number of results is larger
5861	// than maxResults, use the nextPageToken as a value for the query
5862	// parameter pageToken in the next list request. Subsequent list
5863	// requests will have their own nextPageToken to continue paging through
5864	// the results.
5865	NextPageToken string `json:"nextPageToken,omitempty"`
5866
5867	// SelfLink: [Output Only] Server-defined URL for this resource.
5868	SelfLink string `json:"selfLink,omitempty"`
5869
5870	// Warning: [Output Only] Informational warning message.
5871	Warning *BackendServiceListWarning `json:"warning,omitempty"`
5872
5873	// ServerResponse contains the HTTP response code and headers from the
5874	// server.
5875	googleapi.ServerResponse `json:"-"`
5876
5877	// ForceSendFields is a list of field names (e.g. "Id") to
5878	// unconditionally include in API requests. By default, fields with
5879	// empty values are omitted from API requests. However, any non-pointer,
5880	// non-interface field appearing in ForceSendFields will be sent to the
5881	// server regardless of whether the field is empty or not. This may be
5882	// used to include empty fields in Patch requests.
5883	ForceSendFields []string `json:"-"`
5884
5885	// NullFields is a list of field names (e.g. "Id") to include in API
5886	// requests with the JSON null value. By default, fields with empty
5887	// values are omitted from API requests. However, any field with an
5888	// empty value appearing in NullFields will be sent to the server as
5889	// null. It is an error if a field in this list has a non-empty value.
5890	// This may be used to include null fields in Patch requests.
5891	NullFields []string `json:"-"`
5892}
5893
5894func (s *BackendServiceList) MarshalJSON() ([]byte, error) {
5895	type NoMethod BackendServiceList
5896	raw := NoMethod(*s)
5897	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5898}
5899
5900// BackendServiceListWarning: [Output Only] Informational warning
5901// message.
5902type BackendServiceListWarning struct {
5903	// Code: [Output Only] A warning code, if applicable. For example,
5904	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
5905	// the response.
5906	//
5907	// Possible values:
5908	//   "CLEANUP_FAILED"
5909	//   "DEPRECATED_RESOURCE_USED"
5910	//   "DEPRECATED_TYPE_USED"
5911	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
5912	//   "EXPERIMENTAL_TYPE_USED"
5913	//   "EXTERNAL_API_WARNING"
5914	//   "FIELD_VALUE_OVERRIDEN"
5915	//   "INJECTED_KERNELS_DEPRECATED"
5916	//   "LARGE_DEPLOYMENT_WARNING"
5917	//   "MISSING_TYPE_DEPENDENCY"
5918	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
5919	//   "NEXT_HOP_CANNOT_IP_FORWARD"
5920	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
5921	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
5922	//   "NEXT_HOP_NOT_RUNNING"
5923	//   "NOT_CRITICAL_ERROR"
5924	//   "NO_RESULTS_ON_PAGE"
5925	//   "PARTIAL_SUCCESS"
5926	//   "REQUIRED_TOS_AGREEMENT"
5927	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
5928	//   "RESOURCE_NOT_DELETED"
5929	//   "SCHEMA_VALIDATION_IGNORED"
5930	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
5931	//   "UNDECLARED_PROPERTIES"
5932	//   "UNREACHABLE"
5933	Code string `json:"code,omitempty"`
5934
5935	// Data: [Output Only] Metadata about this warning in key: value format.
5936	// For example:
5937	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
5938	Data []*BackendServiceListWarningData `json:"data,omitempty"`
5939
5940	// Message: [Output Only] A human-readable description of the warning
5941	// code.
5942	Message string `json:"message,omitempty"`
5943
5944	// ForceSendFields is a list of field names (e.g. "Code") to
5945	// unconditionally include in API requests. By default, fields with
5946	// empty values are omitted from API requests. However, any non-pointer,
5947	// non-interface field appearing in ForceSendFields will be sent to the
5948	// server regardless of whether the field is empty or not. This may be
5949	// used to include empty fields in Patch requests.
5950	ForceSendFields []string `json:"-"`
5951
5952	// NullFields is a list of field names (e.g. "Code") to include in API
5953	// requests with the JSON null value. By default, fields with empty
5954	// values are omitted from API requests. However, any field with an
5955	// empty value appearing in NullFields will be sent to the server as
5956	// null. It is an error if a field in this list has a non-empty value.
5957	// This may be used to include null fields in Patch requests.
5958	NullFields []string `json:"-"`
5959}
5960
5961func (s *BackendServiceListWarning) MarshalJSON() ([]byte, error) {
5962	type NoMethod BackendServiceListWarning
5963	raw := NoMethod(*s)
5964	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5965}
5966
5967type BackendServiceListWarningData struct {
5968	// Key: [Output Only] A key that provides more detail on the warning
5969	// being returned. For example, for warnings where there are no results
5970	// in a list request for a particular zone, this key might be scope and
5971	// the key value might be the zone name. Other examples might be a key
5972	// indicating a deprecated resource and a suggested replacement, or a
5973	// warning about invalid network settings (for example, if an instance
5974	// attempts to perform IP forwarding but is not enabled for IP
5975	// forwarding).
5976	Key string `json:"key,omitempty"`
5977
5978	// Value: [Output Only] A warning data value corresponding to the key.
5979	Value string `json:"value,omitempty"`
5980
5981	// ForceSendFields is a list of field names (e.g. "Key") to
5982	// unconditionally include in API requests. By default, fields with
5983	// empty values are omitted from API requests. However, any non-pointer,
5984	// non-interface field appearing in ForceSendFields will be sent to the
5985	// server regardless of whether the field is empty or not. This may be
5986	// used to include empty fields in Patch requests.
5987	ForceSendFields []string `json:"-"`
5988
5989	// NullFields is a list of field names (e.g. "Key") to include in API
5990	// requests with the JSON null value. By default, fields with empty
5991	// values are omitted from API requests. However, any field with an
5992	// empty value appearing in NullFields will be sent to the server as
5993	// null. It is an error if a field in this list has a non-empty value.
5994	// This may be used to include null fields in Patch requests.
5995	NullFields []string `json:"-"`
5996}
5997
5998func (s *BackendServiceListWarningData) MarshalJSON() ([]byte, error) {
5999	type NoMethod BackendServiceListWarningData
6000	raw := NoMethod(*s)
6001	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6002}
6003
6004// BackendServiceLogConfig: The available logging options for the load
6005// balancer traffic served by this backend service.
6006type BackendServiceLogConfig struct {
6007	// Enable: This field denotes whether to enable logging for the load
6008	// balancer traffic served by this backend service.
6009	Enable bool `json:"enable,omitempty"`
6010
6011	// SampleRate: This field can only be specified if logging is enabled
6012	// for this backend service. The value of the field must be in [0, 1].
6013	// This configures the sampling rate of requests to the load balancer
6014	// where 1.0 means all logged requests are reported and 0.0 means no
6015	// logged requests are reported. The default value is 1.0.
6016	SampleRate float64 `json:"sampleRate,omitempty"`
6017
6018	// ForceSendFields is a list of field names (e.g. "Enable") to
6019	// unconditionally include in API requests. By default, fields with
6020	// empty values are omitted from API requests. However, any non-pointer,
6021	// non-interface field appearing in ForceSendFields will be sent to the
6022	// server regardless of whether the field is empty or not. This may be
6023	// used to include empty fields in Patch requests.
6024	ForceSendFields []string `json:"-"`
6025
6026	// NullFields is a list of field names (e.g. "Enable") to include in API
6027	// requests with the JSON null value. By default, fields with empty
6028	// values are omitted from API requests. However, any field with an
6029	// empty value appearing in NullFields will be sent to the server as
6030	// null. It is an error if a field in this list has a non-empty value.
6031	// This may be used to include null fields in Patch requests.
6032	NullFields []string `json:"-"`
6033}
6034
6035func (s *BackendServiceLogConfig) MarshalJSON() ([]byte, error) {
6036	type NoMethod BackendServiceLogConfig
6037	raw := NoMethod(*s)
6038	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6039}
6040
6041func (s *BackendServiceLogConfig) UnmarshalJSON(data []byte) error {
6042	type NoMethod BackendServiceLogConfig
6043	var s1 struct {
6044		SampleRate gensupport.JSONFloat64 `json:"sampleRate"`
6045		*NoMethod
6046	}
6047	s1.NoMethod = (*NoMethod)(s)
6048	if err := json.Unmarshal(data, &s1); err != nil {
6049		return err
6050	}
6051	s.SampleRate = float64(s1.SampleRate)
6052	return nil
6053}
6054
6055type BackendServiceReference struct {
6056	BackendService string `json:"backendService,omitempty"`
6057
6058	// ForceSendFields is a list of field names (e.g. "BackendService") to
6059	// unconditionally include in API requests. By default, fields with
6060	// empty values are omitted from API requests. However, any non-pointer,
6061	// non-interface field appearing in ForceSendFields will be sent to the
6062	// server regardless of whether the field is empty or not. This may be
6063	// used to include empty fields in Patch requests.
6064	ForceSendFields []string `json:"-"`
6065
6066	// NullFields is a list of field names (e.g. "BackendService") to
6067	// include in API requests with the JSON null value. By default, fields
6068	// with empty values are omitted from API requests. However, any field
6069	// with an empty value appearing in NullFields will be sent to the
6070	// server as null. It is an error if a field in this list has a
6071	// non-empty value. This may be used to include null fields in Patch
6072	// requests.
6073	NullFields []string `json:"-"`
6074}
6075
6076func (s *BackendServiceReference) MarshalJSON() ([]byte, error) {
6077	type NoMethod BackendServiceReference
6078	raw := NoMethod(*s)
6079	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6080}
6081
6082type BackendServicesScopedList struct {
6083	// BackendServices: A list of BackendServices contained in this scope.
6084	BackendServices []*BackendService `json:"backendServices,omitempty"`
6085
6086	// Warning: Informational warning which replaces the list of backend
6087	// services when the list is empty.
6088	Warning *BackendServicesScopedListWarning `json:"warning,omitempty"`
6089
6090	// ForceSendFields is a list of field names (e.g. "BackendServices") to
6091	// unconditionally include in API requests. By default, fields with
6092	// empty values are omitted from API requests. However, any non-pointer,
6093	// non-interface field appearing in ForceSendFields will be sent to the
6094	// server regardless of whether the field is empty or not. This may be
6095	// used to include empty fields in Patch requests.
6096	ForceSendFields []string `json:"-"`
6097
6098	// NullFields is a list of field names (e.g. "BackendServices") to
6099	// include in API requests with the JSON null value. By default, fields
6100	// with empty values are omitted from API requests. However, any field
6101	// with an empty value appearing in NullFields will be sent to the
6102	// server as null. It is an error if a field in this list has a
6103	// non-empty value. This may be used to include null fields in Patch
6104	// requests.
6105	NullFields []string `json:"-"`
6106}
6107
6108func (s *BackendServicesScopedList) MarshalJSON() ([]byte, error) {
6109	type NoMethod BackendServicesScopedList
6110	raw := NoMethod(*s)
6111	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6112}
6113
6114// BackendServicesScopedListWarning: Informational warning which
6115// replaces the list of backend services when the list is empty.
6116type BackendServicesScopedListWarning struct {
6117	// Code: [Output Only] A warning code, if applicable. For example,
6118	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
6119	// the response.
6120	//
6121	// Possible values:
6122	//   "CLEANUP_FAILED"
6123	//   "DEPRECATED_RESOURCE_USED"
6124	//   "DEPRECATED_TYPE_USED"
6125	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
6126	//   "EXPERIMENTAL_TYPE_USED"
6127	//   "EXTERNAL_API_WARNING"
6128	//   "FIELD_VALUE_OVERRIDEN"
6129	//   "INJECTED_KERNELS_DEPRECATED"
6130	//   "LARGE_DEPLOYMENT_WARNING"
6131	//   "MISSING_TYPE_DEPENDENCY"
6132	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
6133	//   "NEXT_HOP_CANNOT_IP_FORWARD"
6134	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
6135	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
6136	//   "NEXT_HOP_NOT_RUNNING"
6137	//   "NOT_CRITICAL_ERROR"
6138	//   "NO_RESULTS_ON_PAGE"
6139	//   "PARTIAL_SUCCESS"
6140	//   "REQUIRED_TOS_AGREEMENT"
6141	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
6142	//   "RESOURCE_NOT_DELETED"
6143	//   "SCHEMA_VALIDATION_IGNORED"
6144	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
6145	//   "UNDECLARED_PROPERTIES"
6146	//   "UNREACHABLE"
6147	Code string `json:"code,omitempty"`
6148
6149	// Data: [Output Only] Metadata about this warning in key: value format.
6150	// For example:
6151	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
6152	Data []*BackendServicesScopedListWarningData `json:"data,omitempty"`
6153
6154	// Message: [Output Only] A human-readable description of the warning
6155	// code.
6156	Message string `json:"message,omitempty"`
6157
6158	// ForceSendFields is a list of field names (e.g. "Code") to
6159	// unconditionally include in API requests. By default, fields with
6160	// empty values are omitted from API requests. However, any non-pointer,
6161	// non-interface field appearing in ForceSendFields will be sent to the
6162	// server regardless of whether the field is empty or not. This may be
6163	// used to include empty fields in Patch requests.
6164	ForceSendFields []string `json:"-"`
6165
6166	// NullFields is a list of field names (e.g. "Code") to include in API
6167	// requests with the JSON null value. By default, fields with empty
6168	// values are omitted from API requests. However, any field with an
6169	// empty value appearing in NullFields will be sent to the server as
6170	// null. It is an error if a field in this list has a non-empty value.
6171	// This may be used to include null fields in Patch requests.
6172	NullFields []string `json:"-"`
6173}
6174
6175func (s *BackendServicesScopedListWarning) MarshalJSON() ([]byte, error) {
6176	type NoMethod BackendServicesScopedListWarning
6177	raw := NoMethod(*s)
6178	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6179}
6180
6181type BackendServicesScopedListWarningData struct {
6182	// Key: [Output Only] A key that provides more detail on the warning
6183	// being returned. For example, for warnings where there are no results
6184	// in a list request for a particular zone, this key might be scope and
6185	// the key value might be the zone name. Other examples might be a key
6186	// indicating a deprecated resource and a suggested replacement, or a
6187	// warning about invalid network settings (for example, if an instance
6188	// attempts to perform IP forwarding but is not enabled for IP
6189	// forwarding).
6190	Key string `json:"key,omitempty"`
6191
6192	// Value: [Output Only] A warning data value corresponding to the key.
6193	Value string `json:"value,omitempty"`
6194
6195	// ForceSendFields is a list of field names (e.g. "Key") to
6196	// unconditionally include in API requests. By default, fields with
6197	// empty values are omitted from API requests. However, any non-pointer,
6198	// non-interface field appearing in ForceSendFields will be sent to the
6199	// server regardless of whether the field is empty or not. This may be
6200	// used to include empty fields in Patch requests.
6201	ForceSendFields []string `json:"-"`
6202
6203	// NullFields is a list of field names (e.g. "Key") to include in API
6204	// requests with the JSON null value. By default, fields with empty
6205	// values are omitted from API requests. However, any field with an
6206	// empty value appearing in NullFields will be sent to the server as
6207	// null. It is an error if a field in this list has a non-empty value.
6208	// This may be used to include null fields in Patch requests.
6209	NullFields []string `json:"-"`
6210}
6211
6212func (s *BackendServicesScopedListWarningData) MarshalJSON() ([]byte, error) {
6213	type NoMethod BackendServicesScopedListWarningData
6214	raw := NoMethod(*s)
6215	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6216}
6217
6218type BfdPacket struct {
6219	// AuthenticationPresent: The Authentication Present bit of the BFD
6220	// packet. This is specified in section 4.1 of RFC5880
6221	AuthenticationPresent bool `json:"authenticationPresent,omitempty"`
6222
6223	// ControlPlaneIndependent: The Control Plane Independent bit of the BFD
6224	// packet. This is specified in section 4.1 of RFC5880
6225	ControlPlaneIndependent bool `json:"controlPlaneIndependent,omitempty"`
6226
6227	// Demand: The demand bit of the BFD packet. This is specified in
6228	// section 4.1 of RFC5880
6229	Demand bool `json:"demand,omitempty"`
6230
6231	// Diagnostic: The diagnostic code specifies the local system's reason
6232	// for the last change in session state. This allows remote systems to
6233	// determine the reason that the previous session failed, for example.
6234	// These diagnostic codes are specified in section 4.1 of RFC5880
6235	//
6236	// Possible values:
6237	//   "ADMINISTRATIVELY_DOWN"
6238	//   "CONCATENATED_PATH_DOWN"
6239	//   "CONTROL_DETECTION_TIME_EXPIRED"
6240	//   "DIAGNOSTIC_UNSPECIFIED"
6241	//   "ECHO_FUNCTION_FAILED"
6242	//   "FORWARDING_PLANE_RESET"
6243	//   "NEIGHBOR_SIGNALED_SESSION_DOWN"
6244	//   "NO_DIAGNOSTIC"
6245	//   "PATH_DOWN"
6246	//   "REVERSE_CONCATENATED_PATH_DOWN"
6247	Diagnostic string `json:"diagnostic,omitempty"`
6248
6249	// Final: The Final bit of the BFD packet. This is specified in section
6250	// 4.1 of RFC5880
6251	Final bool `json:"final,omitempty"`
6252
6253	// Length: The length of the BFD Control packet in bytes. This is
6254	// specified in section 4.1 of RFC5880
6255	Length int64 `json:"length,omitempty"`
6256
6257	// MinEchoRxIntervalMs: The Required Min Echo RX Interval value in the
6258	// BFD packet. This is specified in section 4.1 of RFC5880
6259	MinEchoRxIntervalMs int64 `json:"minEchoRxIntervalMs,omitempty"`
6260
6261	// MinRxIntervalMs: The Required Min RX Interval value in the BFD
6262	// packet. This is specified in section 4.1 of RFC5880
6263	MinRxIntervalMs int64 `json:"minRxIntervalMs,omitempty"`
6264
6265	// MinTxIntervalMs: The Desired Min TX Interval value in the BFD packet.
6266	// This is specified in section 4.1 of RFC5880
6267	MinTxIntervalMs int64 `json:"minTxIntervalMs,omitempty"`
6268
6269	// Multiplier: The detection time multiplier of the BFD packet. This is
6270	// specified in section 4.1 of RFC5880
6271	Multiplier int64 `json:"multiplier,omitempty"`
6272
6273	// Multipoint: The multipoint bit of the BFD packet. This is specified
6274	// in section 4.1 of RFC5880
6275	Multipoint bool `json:"multipoint,omitempty"`
6276
6277	// MyDiscriminator: The My Discriminator value in the BFD packet. This
6278	// is specified in section 4.1 of RFC5880
6279	MyDiscriminator int64 `json:"myDiscriminator,omitempty"`
6280
6281	// Poll: The Poll bit of the BFD packet. This is specified in section
6282	// 4.1 of RFC5880
6283	Poll bool `json:"poll,omitempty"`
6284
6285	// State: The current BFD session state as seen by the transmitting
6286	// system. These states are specified in section 4.1 of RFC5880
6287	//
6288	// Possible values:
6289	//   "ADMIN_DOWN"
6290	//   "DOWN"
6291	//   "INIT"
6292	//   "STATE_UNSPECIFIED"
6293	//   "UP"
6294	State string `json:"state,omitempty"`
6295
6296	// Version: The version number of the BFD protocol, as specified in
6297	// section 4.1 of RFC5880.
6298	Version int64 `json:"version,omitempty"`
6299
6300	// YourDiscriminator: The Your Discriminator value in the BFD packet.
6301	// This is specified in section 4.1 of RFC5880
6302	YourDiscriminator int64 `json:"yourDiscriminator,omitempty"`
6303
6304	// ForceSendFields is a list of field names (e.g.
6305	// "AuthenticationPresent") to unconditionally include in API requests.
6306	// By default, fields with empty values are omitted from API requests.
6307	// However, any non-pointer, non-interface field appearing in
6308	// ForceSendFields will be sent to the server regardless of whether the
6309	// field is empty or not. This may be used to include empty fields in
6310	// Patch requests.
6311	ForceSendFields []string `json:"-"`
6312
6313	// NullFields is a list of field names (e.g. "AuthenticationPresent") to
6314	// include in API requests with the JSON null value. By default, fields
6315	// with empty values are omitted from API requests. However, any field
6316	// with an empty value appearing in NullFields will be sent to the
6317	// server as null. It is an error if a field in this list has a
6318	// non-empty value. This may be used to include null fields in Patch
6319	// requests.
6320	NullFields []string `json:"-"`
6321}
6322
6323func (s *BfdPacket) MarshalJSON() ([]byte, error) {
6324	type NoMethod BfdPacket
6325	raw := NoMethod(*s)
6326	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6327}
6328
6329// BfdStatus: Next free: 15
6330type BfdStatus struct {
6331	// BfdSessionInitializationMode: The BFD session initialization mode for
6332	// this BGP peer. If set to ACTIVE, the Cloud Router will initiate the
6333	// BFD session for this BGP peer. If set to PASSIVE, the Cloud Router
6334	// will wait for the peer router to initiate the BFD session for this
6335	// BGP peer. If set to DISABLED, BFD is disabled for this BGP peer.
6336	//
6337	// Possible values:
6338	//   "ACTIVE"
6339	//   "DISABLED"
6340	//   "PASSIVE"
6341	BfdSessionInitializationMode string `json:"bfdSessionInitializationMode,omitempty"`
6342
6343	// ConfigUpdateTimestampMicros: Unix timestamp of the most recent config
6344	// update.
6345	ConfigUpdateTimestampMicros int64 `json:"configUpdateTimestampMicros,omitempty,string"`
6346
6347	// ControlPacketCounts: Control packet counts for the current BFD
6348	// session.
6349	ControlPacketCounts *BfdStatusPacketCounts `json:"controlPacketCounts,omitempty"`
6350
6351	// ControlPacketIntervals: Inter-packet time interval statistics for
6352	// control packets.
6353	ControlPacketIntervals []*PacketIntervals `json:"controlPacketIntervals,omitempty"`
6354
6355	// LocalDiagnostic: The diagnostic code specifies the local system's
6356	// reason for the last change in session state. This allows remote
6357	// systems to determine the reason that the previous session failed, for
6358	// example. These diagnostic codes are specified in section 4.1 of
6359	// RFC5880
6360	//
6361	// Possible values:
6362	//   "ADMINISTRATIVELY_DOWN"
6363	//   "CONCATENATED_PATH_DOWN"
6364	//   "CONTROL_DETECTION_TIME_EXPIRED"
6365	//   "DIAGNOSTIC_UNSPECIFIED"
6366	//   "ECHO_FUNCTION_FAILED"
6367	//   "FORWARDING_PLANE_RESET"
6368	//   "NEIGHBOR_SIGNALED_SESSION_DOWN"
6369	//   "NO_DIAGNOSTIC"
6370	//   "PATH_DOWN"
6371	//   "REVERSE_CONCATENATED_PATH_DOWN"
6372	LocalDiagnostic string `json:"localDiagnostic,omitempty"`
6373
6374	// LocalState: The current BFD session state as seen by the transmitting
6375	// system. These states are specified in section 4.1 of RFC5880
6376	//
6377	// Possible values:
6378	//   "ADMIN_DOWN"
6379	//   "DOWN"
6380	//   "INIT"
6381	//   "STATE_UNSPECIFIED"
6382	//   "UP"
6383	LocalState string `json:"localState,omitempty"`
6384
6385	// NegotiatedLocalControlTxIntervalMs: Negotiated transmit interval for
6386	// control packets.
6387	NegotiatedLocalControlTxIntervalMs int64 `json:"negotiatedLocalControlTxIntervalMs,omitempty"`
6388
6389	// RxPacket: The most recent Rx control packet for this BFD session.
6390	RxPacket *BfdPacket `json:"rxPacket,omitempty"`
6391
6392	// TxPacket: The most recent Tx control packet for this BFD session.
6393	TxPacket *BfdPacket `json:"txPacket,omitempty"`
6394
6395	// UptimeMs: Session uptime in milliseconds. Value will be 0 if session
6396	// is not up.
6397	UptimeMs int64 `json:"uptimeMs,omitempty,string"`
6398
6399	// ForceSendFields is a list of field names (e.g.
6400	// "BfdSessionInitializationMode") to unconditionally include in API
6401	// requests. By default, fields with empty values are omitted from API
6402	// requests. However, any non-pointer, non-interface field appearing in
6403	// ForceSendFields will be sent to the server regardless of whether the
6404	// field is empty or not. This may be used to include empty fields in
6405	// Patch requests.
6406	ForceSendFields []string `json:"-"`
6407
6408	// NullFields is a list of field names (e.g.
6409	// "BfdSessionInitializationMode") to include in API requests with the
6410	// JSON null value. By default, fields with empty values are omitted
6411	// from API requests. However, any field with an empty value appearing
6412	// in NullFields will be sent to the server as null. It is an error if a
6413	// field in this list has a non-empty value. This may be used to include
6414	// null fields in Patch requests.
6415	NullFields []string `json:"-"`
6416}
6417
6418func (s *BfdStatus) MarshalJSON() ([]byte, error) {
6419	type NoMethod BfdStatus
6420	raw := NoMethod(*s)
6421	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6422}
6423
6424type BfdStatusPacketCounts struct {
6425	// NumRx: Number of packets received since the beginning of the current
6426	// BFD session.
6427	NumRx int64 `json:"numRx,omitempty"`
6428
6429	// NumRxRejected: Number of packets received that were rejected because
6430	// of errors since the beginning of the current BFD session.
6431	NumRxRejected int64 `json:"numRxRejected,omitempty"`
6432
6433	// NumRxSuccessful: Number of packets received that were successfully
6434	// processed since the beginning of the current BFD session.
6435	NumRxSuccessful int64 `json:"numRxSuccessful,omitempty"`
6436
6437	// NumTx: Number of packets transmitted since the beginning of the
6438	// current BFD session.
6439	NumTx int64 `json:"numTx,omitempty"`
6440
6441	// ForceSendFields is a list of field names (e.g. "NumRx") to
6442	// unconditionally include in API requests. By default, fields with
6443	// empty values are omitted from API requests. However, any non-pointer,
6444	// non-interface field appearing in ForceSendFields will be sent to the
6445	// server regardless of whether the field is empty or not. This may be
6446	// used to include empty fields in Patch requests.
6447	ForceSendFields []string `json:"-"`
6448
6449	// NullFields is a list of field names (e.g. "NumRx") to include in API
6450	// requests with the JSON null value. By default, fields with empty
6451	// values are omitted from API requests. However, any field with an
6452	// empty value appearing in NullFields will be sent to the server as
6453	// null. It is an error if a field in this list has a non-empty value.
6454	// This may be used to include null fields in Patch requests.
6455	NullFields []string `json:"-"`
6456}
6457
6458func (s *BfdStatusPacketCounts) MarshalJSON() ([]byte, error) {
6459	type NoMethod BfdStatusPacketCounts
6460	raw := NoMethod(*s)
6461	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6462}
6463
6464// Binding: Associates `members` with a `role`.
6465type Binding struct {
6466	BindingId string `json:"bindingId,omitempty"`
6467
6468	// Condition: The condition that is associated with this binding.
6469	//
6470	// If the condition evaluates to `true`, then this binding applies to
6471	// the current request.
6472	//
6473	// If the condition evaluates to `false`, then this binding does not
6474	// apply to the current request. However, a different role binding might
6475	// grant the same role to one or more of the members in this
6476	// binding.
6477	//
6478	// To learn which resources support conditions in their IAM policies,
6479	// see the IAM documentation
6480	// (https://cloud.google.com/iam/help/conditions/resource-policies).
6481	Condition *Expr `json:"condition,omitempty"`
6482
6483	// Members: Specifies the identities requesting access for a Cloud
6484	// Platform resource. `members` can have the following values:
6485	//
6486	// * `allUsers`: A special identifier that represents anyone who is on
6487	// the internet; with or without a Google account.
6488	//
6489	// * `allAuthenticatedUsers`: A special identifier that represents
6490	// anyone who is authenticated with a Google account or a service
6491	// account.
6492	//
6493	// * `user:{emailid}`: An email address that represents a specific
6494	// Google account. For example, `alice@example.com` .
6495	//
6496	//
6497	//
6498	// * `serviceAccount:{emailid}`: An email address that represents a
6499	// service account. For example,
6500	// `my-other-app@appspot.gserviceaccount.com`.
6501	//
6502	// * `group:{emailid}`: An email address that represents a Google group.
6503	// For example, `admins@example.com`.
6504	//
6505	// * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus
6506	// unique identifier) representing a user that has been recently
6507	// deleted. For example, `alice@example.com?uid=123456789012345678901`.
6508	// If the user is recovered, this value reverts to `user:{emailid}` and
6509	// the recovered user retains the role in the binding.
6510	//
6511	// * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address
6512	// (plus unique identifier) representing a service account that has been
6513	// recently deleted. For example,
6514	// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
6515	// If the service account is undeleted, this value reverts to
6516	// `serviceAccount:{emailid}` and the undeleted service account retains
6517	// the role in the binding.
6518	//
6519	// * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus
6520	// unique identifier) representing a Google group that has been recently
6521	// deleted. For example, `admins@example.com?uid=123456789012345678901`.
6522	// If the group is recovered, this value reverts to `group:{emailid}`
6523	// and the recovered group retains the role in the binding.
6524	//
6525	//
6526	//
6527	// * `domain:{domain}`: The G Suite domain (primary) that represents all
6528	// the users of that domain. For example, `google.com` or `example.com`.
6529	Members []string `json:"members,omitempty"`
6530
6531	// Role: Role that is assigned to `members`. For example,
6532	// `roles/viewer`, `roles/editor`, or `roles/owner`.
6533	Role string `json:"role,omitempty"`
6534
6535	// ForceSendFields is a list of field names (e.g. "BindingId") to
6536	// unconditionally include in API requests. By default, fields with
6537	// empty values are omitted from API requests. However, any non-pointer,
6538	// non-interface field appearing in ForceSendFields will be sent to the
6539	// server regardless of whether the field is empty or not. This may be
6540	// used to include empty fields in Patch requests.
6541	ForceSendFields []string `json:"-"`
6542
6543	// NullFields is a list of field names (e.g. "BindingId") to include in
6544	// API requests with the JSON null value. By default, fields with empty
6545	// values are omitted from API requests. However, any field with an
6546	// empty value appearing in NullFields will be sent to the server as
6547	// null. It is an error if a field in this list has a non-empty value.
6548	// This may be used to include null fields in Patch requests.
6549	NullFields []string `json:"-"`
6550}
6551
6552func (s *Binding) MarshalJSON() ([]byte, error) {
6553	type NoMethod Binding
6554	raw := NoMethod(*s)
6555	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6556}
6557
6558type BulkInsertInstanceResource struct {
6559	// Count: The maximum number of instances to create.
6560	Count int64 `json:"count,omitempty,string"`
6561
6562	// InstanceProperties: The instance properties defining the VM instances
6563	// to be created. Required if sourceInstanceTemplate is not provided.
6564	InstanceProperties *InstanceProperties `json:"instanceProperties,omitempty"`
6565
6566	LocationPolicy *LocationPolicy `json:"locationPolicy,omitempty"`
6567
6568	// MinCount: The minimum number of instances to create. If no min_count
6569	// is specified then count is used as the default value. If min_count
6570	// instances cannot be created, then no instances will be created.
6571	MinCount int64 `json:"minCount,omitempty,string"`
6572
6573	// NamePattern: The string pattern used for the names of the VMs. Either
6574	// name_pattern or predefined_names must be set. The pattern should
6575	// contain one consecutive sequence of placeholder hash characters (#)
6576	// with each character corresponding to one digit of the generated
6577	// instance name. Example: name_pattern of inst-#### will generate
6578	// instance names like inst-0001, inst-0002, ... . If there already
6579	// exist instance(s) whose names match the name pattern in the same
6580	// project and zone, then the generated instance numbers will start
6581	// after the biggest existing number. For example, if there exists an
6582	// instance with name inst-0050, then instance names generated using the
6583	// pattern inst-#### will be inst-0051, inst-0052, etc. The name pattern
6584	// placeholder #...# can contain up to 18 characters.
6585	NamePattern string `json:"namePattern,omitempty"`
6586
6587	// PerInstanceProperties: Per-instance properties to be set on
6588	// individual instances. Keys of this map specify requested instance
6589	// names. Can be empty if name_pattern is used.
6590	PerInstanceProperties map[string]BulkInsertInstanceResourcePerInstanceProperties `json:"perInstanceProperties,omitempty"`
6591
6592	// SourceInstanceTemplate: Specifies the instance template from which to
6593	// create instances. You may combine sourceInstanceTemplate with
6594	// instanceProperties to override specific values from an existing
6595	// instance template. Bulk API follows the semantics of JSON Merge Patch
6596	// described by RFC 7396.
6597	//
6598	// It can be a full or partial URL. For example, the following are all
6599	// valid URLs to an instance template:
6600	// -
6601	// https://www.googleapis.com/compute/v1/projects/project/global/instanceTemplates/instanceTemplate
6602	//
6603	// - projects/project/global/instanceTemplates/instanceTemplate
6604	// - global/instanceTemplates/instanceTemplate
6605	//
6606	// This field is optional.
6607	SourceInstanceTemplate string `json:"sourceInstanceTemplate,omitempty"`
6608
6609	// ForceSendFields is a list of field names (e.g. "Count") to
6610	// unconditionally include in API requests. By default, fields with
6611	// empty values are omitted from API requests. However, any non-pointer,
6612	// non-interface field appearing in ForceSendFields will be sent to the
6613	// server regardless of whether the field is empty or not. This may be
6614	// used to include empty fields in Patch requests.
6615	ForceSendFields []string `json:"-"`
6616
6617	// NullFields is a list of field names (e.g. "Count") to include in API
6618	// requests with the JSON null value. By default, fields with empty
6619	// values are omitted from API requests. However, any field with an
6620	// empty value appearing in NullFields will be sent to the server as
6621	// null. It is an error if a field in this list has a non-empty value.
6622	// This may be used to include null fields in Patch requests.
6623	NullFields []string `json:"-"`
6624}
6625
6626func (s *BulkInsertInstanceResource) MarshalJSON() ([]byte, error) {
6627	type NoMethod BulkInsertInstanceResource
6628	raw := NoMethod(*s)
6629	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6630}
6631
6632// BulkInsertInstanceResourcePerInstanceProperties: Per-instance
6633// properties to be set on individual instances. To be extended in the
6634// future.
6635type BulkInsertInstanceResourcePerInstanceProperties struct {
6636	// Name: This field is only temporary. It will be removed. Do not use
6637	// it.
6638	Name string `json:"name,omitempty"`
6639
6640	// ForceSendFields is a list of field names (e.g. "Name") to
6641	// unconditionally include in API requests. By default, fields with
6642	// empty values are omitted from API requests. However, any non-pointer,
6643	// non-interface field appearing in ForceSendFields will be sent to the
6644	// server regardless of whether the field is empty or not. This may be
6645	// used to include empty fields in Patch requests.
6646	ForceSendFields []string `json:"-"`
6647
6648	// NullFields is a list of field names (e.g. "Name") to include in API
6649	// requests with the JSON null value. By default, fields with empty
6650	// values are omitted from API requests. However, any field with an
6651	// empty value appearing in NullFields will be sent to the server as
6652	// null. It is an error if a field in this list has a non-empty value.
6653	// This may be used to include null fields in Patch requests.
6654	NullFields []string `json:"-"`
6655}
6656
6657func (s *BulkInsertInstanceResourcePerInstanceProperties) MarshalJSON() ([]byte, error) {
6658	type NoMethod BulkInsertInstanceResourcePerInstanceProperties
6659	raw := NoMethod(*s)
6660	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6661}
6662
6663type CacheInvalidationRule struct {
6664	// Host: If set, this invalidation rule will only apply to requests with
6665	// a Host header matching host.
6666	Host string `json:"host,omitempty"`
6667
6668	Path string `json:"path,omitempty"`
6669
6670	// ForceSendFields is a list of field names (e.g. "Host") to
6671	// unconditionally include in API requests. By default, fields with
6672	// empty values are omitted from API requests. However, any non-pointer,
6673	// non-interface field appearing in ForceSendFields will be sent to the
6674	// server regardless of whether the field is empty or not. This may be
6675	// used to include empty fields in Patch requests.
6676	ForceSendFields []string `json:"-"`
6677
6678	// NullFields is a list of field names (e.g. "Host") to include in API
6679	// requests with the JSON null value. By default, fields with empty
6680	// values are omitted from API requests. However, any field with an
6681	// empty value appearing in NullFields will be sent to the server as
6682	// null. It is an error if a field in this list has a non-empty value.
6683	// This may be used to include null fields in Patch requests.
6684	NullFields []string `json:"-"`
6685}
6686
6687func (s *CacheInvalidationRule) MarshalJSON() ([]byte, error) {
6688	type NoMethod CacheInvalidationRule
6689	raw := NoMethod(*s)
6690	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6691}
6692
6693// CacheKeyPolicy: Message containing what to include in the cache key
6694// for a request for Cloud CDN.
6695type CacheKeyPolicy struct {
6696	// IncludeHost: If true, requests to different hosts will be cached
6697	// separately.
6698	IncludeHost bool `json:"includeHost,omitempty"`
6699
6700	// IncludeProtocol: If true, http and https requests will be cached
6701	// separately.
6702	IncludeProtocol bool `json:"includeProtocol,omitempty"`
6703
6704	// IncludeQueryString: If true, include query string parameters in the
6705	// cache key according to query_string_whitelist and
6706	// query_string_blacklist. If neither is set, the entire query string
6707	// will be included. If false, the query string will be excluded from
6708	// the cache key entirely.
6709	IncludeQueryString bool `json:"includeQueryString,omitempty"`
6710
6711	// QueryStringBlacklist: Names of query string parameters to exclude in
6712	// cache keys. All other parameters will be included. Either specify
6713	// query_string_whitelist or query_string_blacklist, not both. '&' and
6714	// '=' will be percent encoded and not treated as delimiters.
6715	QueryStringBlacklist []string `json:"queryStringBlacklist,omitempty"`
6716
6717	// QueryStringWhitelist: Names of query string parameters to include in
6718	// cache keys. All other parameters will be excluded. Either specify
6719	// query_string_whitelist or query_string_blacklist, not both. '&' and
6720	// '=' will be percent encoded and not treated as delimiters.
6721	QueryStringWhitelist []string `json:"queryStringWhitelist,omitempty"`
6722
6723	// ForceSendFields is a list of field names (e.g. "IncludeHost") to
6724	// unconditionally include in API requests. By default, fields with
6725	// empty values are omitted from API requests. However, any non-pointer,
6726	// non-interface field appearing in ForceSendFields will be sent to the
6727	// server regardless of whether the field is empty or not. This may be
6728	// used to include empty fields in Patch requests.
6729	ForceSendFields []string `json:"-"`
6730
6731	// NullFields is a list of field names (e.g. "IncludeHost") to include
6732	// in API requests with the JSON null value. By default, fields with
6733	// empty values are omitted from API requests. However, any field with
6734	// an empty value appearing in NullFields will be sent to the server as
6735	// null. It is an error if a field in this list has a non-empty value.
6736	// This may be used to include null fields in Patch requests.
6737	NullFields []string `json:"-"`
6738}
6739
6740func (s *CacheKeyPolicy) MarshalJSON() ([]byte, error) {
6741	type NoMethod CacheKeyPolicy
6742	raw := NoMethod(*s)
6743	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6744}
6745
6746// CircuitBreakers: Settings controlling the volume of connections to a
6747// backend service.
6748type CircuitBreakers struct {
6749	// ConnectTimeout: The timeout for new network connections to hosts.
6750	ConnectTimeout *Duration `json:"connectTimeout,omitempty"`
6751
6752	// MaxConnections: The maximum number of connections to the backend
6753	// service. If not specified, there is no limit.
6754	MaxConnections int64 `json:"maxConnections,omitempty"`
6755
6756	// MaxPendingRequests: The maximum number of pending requests allowed to
6757	// the backend service. If not specified, there is no limit.
6758	MaxPendingRequests int64 `json:"maxPendingRequests,omitempty"`
6759
6760	// MaxRequests: The maximum number of parallel requests that allowed to
6761	// the backend service. If not specified, there is no limit.
6762	MaxRequests int64 `json:"maxRequests,omitempty"`
6763
6764	// MaxRequestsPerConnection: Maximum requests for a single connection to
6765	// the backend service. This parameter is respected by both the HTTP/1.1
6766	// and HTTP/2 implementations. If not specified, there is no limit.
6767	// Setting this parameter to 1 will effectively disable keep alive.
6768	MaxRequestsPerConnection int64 `json:"maxRequestsPerConnection,omitempty"`
6769
6770	// MaxRetries: The maximum number of parallel retries allowed to the
6771	// backend cluster. If not specified, the default is 1.
6772	MaxRetries int64 `json:"maxRetries,omitempty"`
6773
6774	// ForceSendFields is a list of field names (e.g. "ConnectTimeout") to
6775	// unconditionally include in API requests. By default, fields with
6776	// empty values are omitted from API requests. However, any non-pointer,
6777	// non-interface field appearing in ForceSendFields will be sent to the
6778	// server regardless of whether the field is empty or not. This may be
6779	// used to include empty fields in Patch requests.
6780	ForceSendFields []string `json:"-"`
6781
6782	// NullFields is a list of field names (e.g. "ConnectTimeout") to
6783	// include in API requests with the JSON null value. By default, fields
6784	// with empty values are omitted from API requests. However, any field
6785	// with an empty value appearing in NullFields will be sent to the
6786	// server as null. It is an error if a field in this list has a
6787	// non-empty value. This may be used to include null fields in Patch
6788	// requests.
6789	NullFields []string `json:"-"`
6790}
6791
6792func (s *CircuitBreakers) MarshalJSON() ([]byte, error) {
6793	type NoMethod CircuitBreakers
6794	raw := NoMethod(*s)
6795	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6796}
6797
6798// Commitment: Represents a regional Commitment resource.
6799//
6800// Creating a commitment resource means that you are purchasing a
6801// committed use contract with an explicit start and end time. You can
6802// create commitments based on vCPUs and memory usage and receive
6803// discounted rates. For full details, read Signing Up for Committed Use
6804// Discounts. (== resource_for {$api_version}.regionCommitments ==)
6805type Commitment struct {
6806	// Category: The category of the commitment. Category MACHINE specifies
6807	// commitments composed of machine resources such as VCPU or MEMORY,
6808	// listed in resources. Category LICENSE specifies commitments composed
6809	// of software licenses, listed in licenseResources. Note that only
6810	// MACHINE commitments should have a Type specified.
6811	//
6812	// Possible values:
6813	//   "CATEGORY_UNSPECIFIED"
6814	//   "LICENSE"
6815	//   "MACHINE"
6816	Category string `json:"category,omitempty"`
6817
6818	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
6819	// format.
6820	CreationTimestamp string `json:"creationTimestamp,omitempty"`
6821
6822	// Description: An optional description of this resource. Provide this
6823	// property when you create the resource.
6824	Description string `json:"description,omitempty"`
6825
6826	// EndTimestamp: [Output Only] Commitment end time in RFC3339 text
6827	// format.
6828	EndTimestamp string `json:"endTimestamp,omitempty"`
6829
6830	// Id: [Output Only] The unique identifier for the resource. This
6831	// identifier is defined by the server.
6832	Id uint64 `json:"id,omitempty,string"`
6833
6834	// Kind: [Output Only] Type of the resource. Always compute#commitment
6835	// for commitments.
6836	Kind string `json:"kind,omitempty"`
6837
6838	// LicenseResource: The license specification required as part of a
6839	// license commitment.
6840	LicenseResource *LicenseResourceCommitment `json:"licenseResource,omitempty"`
6841
6842	// Name: Name of the resource. Provided by the client when the resource
6843	// is created. The name must be 1-63 characters long, and comply with
6844	// RFC1035. Specifically, the name must be 1-63 characters long and
6845	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
6846	// the first character must be a lowercase letter, and all following
6847	// characters must be a dash, lowercase letter, or digit, except the
6848	// last character, which cannot be a dash.
6849	Name string `json:"name,omitempty"`
6850
6851	// Plan: The plan for this commitment, which determines duration and
6852	// discount rate. The currently supported plans are TWELVE_MONTH (1
6853	// year), and THIRTY_SIX_MONTH (3 years).
6854	//
6855	// Possible values:
6856	//   "INVALID"
6857	//   "THIRTY_SIX_MONTH"
6858	//   "TWELVE_MONTH"
6859	Plan string `json:"plan,omitempty"`
6860
6861	// Region: [Output Only] URL of the region where this commitment may be
6862	// used.
6863	Region string `json:"region,omitempty"`
6864
6865	// Reservations: List of reservations in this commitment.
6866	Reservations []*Reservation `json:"reservations,omitempty"`
6867
6868	// Resources: A list of commitment amounts for particular resources.
6869	// Note that VCPU and MEMORY resource commitments must occur together.
6870	Resources []*ResourceCommitment `json:"resources,omitempty"`
6871
6872	// SelfLink: [Output Only] Server-defined URL for the resource.
6873	SelfLink string `json:"selfLink,omitempty"`
6874
6875	// StartTimestamp: [Output Only] Commitment start time in RFC3339 text
6876	// format.
6877	StartTimestamp string `json:"startTimestamp,omitempty"`
6878
6879	// Status: [Output Only] Status of the commitment with regards to
6880	// eventual expiration (each commitment has an end date defined). One of
6881	// the following values: NOT_YET_ACTIVE, ACTIVE, EXPIRED.
6882	//
6883	// Possible values:
6884	//   "ACTIVE"
6885	//   "CREATING"
6886	//   "EXPIRED"
6887	//   "NOT_YET_ACTIVE"
6888	Status string `json:"status,omitempty"`
6889
6890	// StatusMessage: [Output Only] An optional, human-readable explanation
6891	// of the status.
6892	StatusMessage string `json:"statusMessage,omitempty"`
6893
6894	// Type: The type of commitment, which affects the discount rate and the
6895	// eligible resources. Type MEMORY_OPTIMIZED specifies a commitment that
6896	// will only apply to memory optimized machines. Type
6897	// ACCELERATOR_OPTIMIZED specifies a commitment that will only apply to
6898	// accelerator optimized machines.
6899	//
6900	// Possible values:
6901	//   "ACCELERATOR_OPTIMIZED"
6902	//   "COMPUTE_OPTIMIZED"
6903	//   "GENERAL_PURPOSE"
6904	//   "GENERAL_PURPOSE_E2"
6905	//   "GENERAL_PURPOSE_N2"
6906	//   "GENERAL_PURPOSE_N2D"
6907	//   "MEMORY_OPTIMIZED"
6908	//   "TYPE_UNSPECIFIED"
6909	Type string `json:"type,omitempty"`
6910
6911	// ServerResponse contains the HTTP response code and headers from the
6912	// server.
6913	googleapi.ServerResponse `json:"-"`
6914
6915	// ForceSendFields is a list of field names (e.g. "Category") to
6916	// unconditionally include in API requests. By default, fields with
6917	// empty values are omitted from API requests. However, any non-pointer,
6918	// non-interface field appearing in ForceSendFields will be sent to the
6919	// server regardless of whether the field is empty or not. This may be
6920	// used to include empty fields in Patch requests.
6921	ForceSendFields []string `json:"-"`
6922
6923	// NullFields is a list of field names (e.g. "Category") to include in
6924	// API requests with the JSON null value. By default, fields with empty
6925	// values are omitted from API requests. However, any field with an
6926	// empty value appearing in NullFields will be sent to the server as
6927	// null. It is an error if a field in this list has a non-empty value.
6928	// This may be used to include null fields in Patch requests.
6929	NullFields []string `json:"-"`
6930}
6931
6932func (s *Commitment) MarshalJSON() ([]byte, error) {
6933	type NoMethod Commitment
6934	raw := NoMethod(*s)
6935	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6936}
6937
6938type CommitmentAggregatedList struct {
6939	// Id: [Output Only] Unique identifier for the resource; defined by the
6940	// server.
6941	Id string `json:"id,omitempty"`
6942
6943	// Items: A list of CommitmentsScopedList resources.
6944	Items map[string]CommitmentsScopedList `json:"items,omitempty"`
6945
6946	// Kind: [Output Only] Type of resource. Always
6947	// compute#commitmentAggregatedList for aggregated lists of commitments.
6948	Kind string `json:"kind,omitempty"`
6949
6950	// NextPageToken: [Output Only] This token allows you to get the next
6951	// page of results for list requests. If the number of results is larger
6952	// than maxResults, use the nextPageToken as a value for the query
6953	// parameter pageToken in the next list request. Subsequent list
6954	// requests will have their own nextPageToken to continue paging through
6955	// the results.
6956	NextPageToken string `json:"nextPageToken,omitempty"`
6957
6958	// SelfLink: [Output Only] Server-defined URL for this resource.
6959	SelfLink string `json:"selfLink,omitempty"`
6960
6961	// Unreachables: [Output Only] Unreachable resources.
6962	Unreachables []string `json:"unreachables,omitempty"`
6963
6964	// Warning: [Output Only] Informational warning message.
6965	Warning *CommitmentAggregatedListWarning `json:"warning,omitempty"`
6966
6967	// ServerResponse contains the HTTP response code and headers from the
6968	// server.
6969	googleapi.ServerResponse `json:"-"`
6970
6971	// ForceSendFields is a list of field names (e.g. "Id") to
6972	// unconditionally include in API requests. By default, fields with
6973	// empty values are omitted from API requests. However, any non-pointer,
6974	// non-interface field appearing in ForceSendFields will be sent to the
6975	// server regardless of whether the field is empty or not. This may be
6976	// used to include empty fields in Patch requests.
6977	ForceSendFields []string `json:"-"`
6978
6979	// NullFields is a list of field names (e.g. "Id") to include in API
6980	// requests with the JSON null value. By default, fields with empty
6981	// values are omitted from API requests. However, any field with an
6982	// empty value appearing in NullFields will be sent to the server as
6983	// null. It is an error if a field in this list has a non-empty value.
6984	// This may be used to include null fields in Patch requests.
6985	NullFields []string `json:"-"`
6986}
6987
6988func (s *CommitmentAggregatedList) MarshalJSON() ([]byte, error) {
6989	type NoMethod CommitmentAggregatedList
6990	raw := NoMethod(*s)
6991	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6992}
6993
6994// CommitmentAggregatedListWarning: [Output Only] Informational warning
6995// message.
6996type CommitmentAggregatedListWarning struct {
6997	// Code: [Output Only] A warning code, if applicable. For example,
6998	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
6999	// the response.
7000	//
7001	// Possible values:
7002	//   "CLEANUP_FAILED"
7003	//   "DEPRECATED_RESOURCE_USED"
7004	//   "DEPRECATED_TYPE_USED"
7005	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
7006	//   "EXPERIMENTAL_TYPE_USED"
7007	//   "EXTERNAL_API_WARNING"
7008	//   "FIELD_VALUE_OVERRIDEN"
7009	//   "INJECTED_KERNELS_DEPRECATED"
7010	//   "LARGE_DEPLOYMENT_WARNING"
7011	//   "MISSING_TYPE_DEPENDENCY"
7012	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
7013	//   "NEXT_HOP_CANNOT_IP_FORWARD"
7014	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
7015	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
7016	//   "NEXT_HOP_NOT_RUNNING"
7017	//   "NOT_CRITICAL_ERROR"
7018	//   "NO_RESULTS_ON_PAGE"
7019	//   "PARTIAL_SUCCESS"
7020	//   "REQUIRED_TOS_AGREEMENT"
7021	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
7022	//   "RESOURCE_NOT_DELETED"
7023	//   "SCHEMA_VALIDATION_IGNORED"
7024	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
7025	//   "UNDECLARED_PROPERTIES"
7026	//   "UNREACHABLE"
7027	Code string `json:"code,omitempty"`
7028
7029	// Data: [Output Only] Metadata about this warning in key: value format.
7030	// For example:
7031	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
7032	Data []*CommitmentAggregatedListWarningData `json:"data,omitempty"`
7033
7034	// Message: [Output Only] A human-readable description of the warning
7035	// code.
7036	Message string `json:"message,omitempty"`
7037
7038	// ForceSendFields is a list of field names (e.g. "Code") to
7039	// unconditionally include in API requests. By default, fields with
7040	// empty values are omitted from API requests. However, any non-pointer,
7041	// non-interface field appearing in ForceSendFields will be sent to the
7042	// server regardless of whether the field is empty or not. This may be
7043	// used to include empty fields in Patch requests.
7044	ForceSendFields []string `json:"-"`
7045
7046	// NullFields is a list of field names (e.g. "Code") to include in API
7047	// requests with the JSON null value. By default, fields with empty
7048	// values are omitted from API requests. However, any field with an
7049	// empty value appearing in NullFields will be sent to the server as
7050	// null. It is an error if a field in this list has a non-empty value.
7051	// This may be used to include null fields in Patch requests.
7052	NullFields []string `json:"-"`
7053}
7054
7055func (s *CommitmentAggregatedListWarning) MarshalJSON() ([]byte, error) {
7056	type NoMethod CommitmentAggregatedListWarning
7057	raw := NoMethod(*s)
7058	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7059}
7060
7061type CommitmentAggregatedListWarningData struct {
7062	// Key: [Output Only] A key that provides more detail on the warning
7063	// being returned. For example, for warnings where there are no results
7064	// in a list request for a particular zone, this key might be scope and
7065	// the key value might be the zone name. Other examples might be a key
7066	// indicating a deprecated resource and a suggested replacement, or a
7067	// warning about invalid network settings (for example, if an instance
7068	// attempts to perform IP forwarding but is not enabled for IP
7069	// forwarding).
7070	Key string `json:"key,omitempty"`
7071
7072	// Value: [Output Only] A warning data value corresponding to the key.
7073	Value string `json:"value,omitempty"`
7074
7075	// ForceSendFields is a list of field names (e.g. "Key") to
7076	// unconditionally include in API requests. By default, fields with
7077	// empty values are omitted from API requests. However, any non-pointer,
7078	// non-interface field appearing in ForceSendFields will be sent to the
7079	// server regardless of whether the field is empty or not. This may be
7080	// used to include empty fields in Patch requests.
7081	ForceSendFields []string `json:"-"`
7082
7083	// NullFields is a list of field names (e.g. "Key") to include in API
7084	// requests with the JSON null value. By default, fields with empty
7085	// values are omitted from API requests. However, any field with an
7086	// empty value appearing in NullFields will be sent to the server as
7087	// null. It is an error if a field in this list has a non-empty value.
7088	// This may be used to include null fields in Patch requests.
7089	NullFields []string `json:"-"`
7090}
7091
7092func (s *CommitmentAggregatedListWarningData) MarshalJSON() ([]byte, error) {
7093	type NoMethod CommitmentAggregatedListWarningData
7094	raw := NoMethod(*s)
7095	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7096}
7097
7098// CommitmentList: Contains a list of Commitment resources.
7099type CommitmentList struct {
7100	// Id: [Output Only] Unique identifier for the resource; defined by the
7101	// server.
7102	Id string `json:"id,omitempty"`
7103
7104	// Items: A list of Commitment resources.
7105	Items []*Commitment `json:"items,omitempty"`
7106
7107	// Kind: [Output Only] Type of resource. Always compute#commitmentList
7108	// for lists of commitments.
7109	Kind string `json:"kind,omitempty"`
7110
7111	// NextPageToken: [Output Only] This token allows you to get the next
7112	// page of results for list requests. If the number of results is larger
7113	// than maxResults, use the nextPageToken as a value for the query
7114	// parameter pageToken in the next list request. Subsequent list
7115	// requests will have their own nextPageToken to continue paging through
7116	// the results.
7117	NextPageToken string `json:"nextPageToken,omitempty"`
7118
7119	// SelfLink: [Output Only] Server-defined URL for this resource.
7120	SelfLink string `json:"selfLink,omitempty"`
7121
7122	// Warning: [Output Only] Informational warning message.
7123	Warning *CommitmentListWarning `json:"warning,omitempty"`
7124
7125	// ServerResponse contains the HTTP response code and headers from the
7126	// server.
7127	googleapi.ServerResponse `json:"-"`
7128
7129	// ForceSendFields is a list of field names (e.g. "Id") to
7130	// unconditionally include in API requests. By default, fields with
7131	// empty values are omitted from API requests. However, any non-pointer,
7132	// non-interface field appearing in ForceSendFields will be sent to the
7133	// server regardless of whether the field is empty or not. This may be
7134	// used to include empty fields in Patch requests.
7135	ForceSendFields []string `json:"-"`
7136
7137	// NullFields is a list of field names (e.g. "Id") to include in API
7138	// requests with the JSON null value. By default, fields with empty
7139	// values are omitted from API requests. However, any field with an
7140	// empty value appearing in NullFields will be sent to the server as
7141	// null. It is an error if a field in this list has a non-empty value.
7142	// This may be used to include null fields in Patch requests.
7143	NullFields []string `json:"-"`
7144}
7145
7146func (s *CommitmentList) MarshalJSON() ([]byte, error) {
7147	type NoMethod CommitmentList
7148	raw := NoMethod(*s)
7149	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7150}
7151
7152// CommitmentListWarning: [Output Only] Informational warning message.
7153type CommitmentListWarning struct {
7154	// Code: [Output Only] A warning code, if applicable. For example,
7155	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
7156	// the response.
7157	//
7158	// Possible values:
7159	//   "CLEANUP_FAILED"
7160	//   "DEPRECATED_RESOURCE_USED"
7161	//   "DEPRECATED_TYPE_USED"
7162	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
7163	//   "EXPERIMENTAL_TYPE_USED"
7164	//   "EXTERNAL_API_WARNING"
7165	//   "FIELD_VALUE_OVERRIDEN"
7166	//   "INJECTED_KERNELS_DEPRECATED"
7167	//   "LARGE_DEPLOYMENT_WARNING"
7168	//   "MISSING_TYPE_DEPENDENCY"
7169	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
7170	//   "NEXT_HOP_CANNOT_IP_FORWARD"
7171	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
7172	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
7173	//   "NEXT_HOP_NOT_RUNNING"
7174	//   "NOT_CRITICAL_ERROR"
7175	//   "NO_RESULTS_ON_PAGE"
7176	//   "PARTIAL_SUCCESS"
7177	//   "REQUIRED_TOS_AGREEMENT"
7178	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
7179	//   "RESOURCE_NOT_DELETED"
7180	//   "SCHEMA_VALIDATION_IGNORED"
7181	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
7182	//   "UNDECLARED_PROPERTIES"
7183	//   "UNREACHABLE"
7184	Code string `json:"code,omitempty"`
7185
7186	// Data: [Output Only] Metadata about this warning in key: value format.
7187	// For example:
7188	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
7189	Data []*CommitmentListWarningData `json:"data,omitempty"`
7190
7191	// Message: [Output Only] A human-readable description of the warning
7192	// code.
7193	Message string `json:"message,omitempty"`
7194
7195	// ForceSendFields is a list of field names (e.g. "Code") to
7196	// unconditionally include in API requests. By default, fields with
7197	// empty values are omitted from API requests. However, any non-pointer,
7198	// non-interface field appearing in ForceSendFields will be sent to the
7199	// server regardless of whether the field is empty or not. This may be
7200	// used to include empty fields in Patch requests.
7201	ForceSendFields []string `json:"-"`
7202
7203	// NullFields is a list of field names (e.g. "Code") to include in API
7204	// requests with the JSON null value. By default, fields with empty
7205	// values are omitted from API requests. However, any field with an
7206	// empty value appearing in NullFields will be sent to the server as
7207	// null. It is an error if a field in this list has a non-empty value.
7208	// This may be used to include null fields in Patch requests.
7209	NullFields []string `json:"-"`
7210}
7211
7212func (s *CommitmentListWarning) MarshalJSON() ([]byte, error) {
7213	type NoMethod CommitmentListWarning
7214	raw := NoMethod(*s)
7215	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7216}
7217
7218type CommitmentListWarningData struct {
7219	// Key: [Output Only] A key that provides more detail on the warning
7220	// being returned. For example, for warnings where there are no results
7221	// in a list request for a particular zone, this key might be scope and
7222	// the key value might be the zone name. Other examples might be a key
7223	// indicating a deprecated resource and a suggested replacement, or a
7224	// warning about invalid network settings (for example, if an instance
7225	// attempts to perform IP forwarding but is not enabled for IP
7226	// forwarding).
7227	Key string `json:"key,omitempty"`
7228
7229	// Value: [Output Only] A warning data value corresponding to the key.
7230	Value string `json:"value,omitempty"`
7231
7232	// ForceSendFields is a list of field names (e.g. "Key") to
7233	// unconditionally include in API requests. By default, fields with
7234	// empty values are omitted from API requests. However, any non-pointer,
7235	// non-interface field appearing in ForceSendFields will be sent to the
7236	// server regardless of whether the field is empty or not. This may be
7237	// used to include empty fields in Patch requests.
7238	ForceSendFields []string `json:"-"`
7239
7240	// NullFields is a list of field names (e.g. "Key") to include in API
7241	// requests with the JSON null value. By default, fields with empty
7242	// values are omitted from API requests. However, any field with an
7243	// empty value appearing in NullFields will be sent to the server as
7244	// null. It is an error if a field in this list has a non-empty value.
7245	// This may be used to include null fields in Patch requests.
7246	NullFields []string `json:"-"`
7247}
7248
7249func (s *CommitmentListWarningData) MarshalJSON() ([]byte, error) {
7250	type NoMethod CommitmentListWarningData
7251	raw := NoMethod(*s)
7252	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7253}
7254
7255type CommitmentsScopedList struct {
7256	// Commitments: [Output Only] A list of commitments contained in this
7257	// scope.
7258	Commitments []*Commitment `json:"commitments,omitempty"`
7259
7260	// Warning: [Output Only] Informational warning which replaces the list
7261	// of commitments when the list is empty.
7262	Warning *CommitmentsScopedListWarning `json:"warning,omitempty"`
7263
7264	// ForceSendFields is a list of field names (e.g. "Commitments") to
7265	// unconditionally include in API requests. By default, fields with
7266	// empty values are omitted from API requests. However, any non-pointer,
7267	// non-interface field appearing in ForceSendFields will be sent to the
7268	// server regardless of whether the field is empty or not. This may be
7269	// used to include empty fields in Patch requests.
7270	ForceSendFields []string `json:"-"`
7271
7272	// NullFields is a list of field names (e.g. "Commitments") to include
7273	// in API requests with the JSON null value. By default, fields with
7274	// empty values are omitted from API requests. However, any field with
7275	// an empty value appearing in NullFields will be sent to the server as
7276	// null. It is an error if a field in this list has a non-empty value.
7277	// This may be used to include null fields in Patch requests.
7278	NullFields []string `json:"-"`
7279}
7280
7281func (s *CommitmentsScopedList) MarshalJSON() ([]byte, error) {
7282	type NoMethod CommitmentsScopedList
7283	raw := NoMethod(*s)
7284	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7285}
7286
7287// CommitmentsScopedListWarning: [Output Only] Informational warning
7288// which replaces the list of commitments when the list is empty.
7289type CommitmentsScopedListWarning struct {
7290	// Code: [Output Only] A warning code, if applicable. For example,
7291	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
7292	// the response.
7293	//
7294	// Possible values:
7295	//   "CLEANUP_FAILED"
7296	//   "DEPRECATED_RESOURCE_USED"
7297	//   "DEPRECATED_TYPE_USED"
7298	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
7299	//   "EXPERIMENTAL_TYPE_USED"
7300	//   "EXTERNAL_API_WARNING"
7301	//   "FIELD_VALUE_OVERRIDEN"
7302	//   "INJECTED_KERNELS_DEPRECATED"
7303	//   "LARGE_DEPLOYMENT_WARNING"
7304	//   "MISSING_TYPE_DEPENDENCY"
7305	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
7306	//   "NEXT_HOP_CANNOT_IP_FORWARD"
7307	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
7308	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
7309	//   "NEXT_HOP_NOT_RUNNING"
7310	//   "NOT_CRITICAL_ERROR"
7311	//   "NO_RESULTS_ON_PAGE"
7312	//   "PARTIAL_SUCCESS"
7313	//   "REQUIRED_TOS_AGREEMENT"
7314	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
7315	//   "RESOURCE_NOT_DELETED"
7316	//   "SCHEMA_VALIDATION_IGNORED"
7317	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
7318	//   "UNDECLARED_PROPERTIES"
7319	//   "UNREACHABLE"
7320	Code string `json:"code,omitempty"`
7321
7322	// Data: [Output Only] Metadata about this warning in key: value format.
7323	// For example:
7324	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
7325	Data []*CommitmentsScopedListWarningData `json:"data,omitempty"`
7326
7327	// Message: [Output Only] A human-readable description of the warning
7328	// code.
7329	Message string `json:"message,omitempty"`
7330
7331	// ForceSendFields is a list of field names (e.g. "Code") to
7332	// unconditionally include in API requests. By default, fields with
7333	// empty values are omitted from API requests. However, any non-pointer,
7334	// non-interface field appearing in ForceSendFields will be sent to the
7335	// server regardless of whether the field is empty or not. This may be
7336	// used to include empty fields in Patch requests.
7337	ForceSendFields []string `json:"-"`
7338
7339	// NullFields is a list of field names (e.g. "Code") to include in API
7340	// requests with the JSON null value. By default, fields with empty
7341	// values are omitted from API requests. However, any field with an
7342	// empty value appearing in NullFields will be sent to the server as
7343	// null. It is an error if a field in this list has a non-empty value.
7344	// This may be used to include null fields in Patch requests.
7345	NullFields []string `json:"-"`
7346}
7347
7348func (s *CommitmentsScopedListWarning) MarshalJSON() ([]byte, error) {
7349	type NoMethod CommitmentsScopedListWarning
7350	raw := NoMethod(*s)
7351	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7352}
7353
7354type CommitmentsScopedListWarningData struct {
7355	// Key: [Output Only] A key that provides more detail on the warning
7356	// being returned. For example, for warnings where there are no results
7357	// in a list request for a particular zone, this key might be scope and
7358	// the key value might be the zone name. Other examples might be a key
7359	// indicating a deprecated resource and a suggested replacement, or a
7360	// warning about invalid network settings (for example, if an instance
7361	// attempts to perform IP forwarding but is not enabled for IP
7362	// forwarding).
7363	Key string `json:"key,omitempty"`
7364
7365	// Value: [Output Only] A warning data value corresponding to the key.
7366	Value string `json:"value,omitempty"`
7367
7368	// ForceSendFields is a list of field names (e.g. "Key") to
7369	// unconditionally include in API requests. By default, fields with
7370	// empty values are omitted from API requests. However, any non-pointer,
7371	// non-interface field appearing in ForceSendFields will be sent to the
7372	// server regardless of whether the field is empty or not. This may be
7373	// used to include empty fields in Patch requests.
7374	ForceSendFields []string `json:"-"`
7375
7376	// NullFields is a list of field names (e.g. "Key") to include in API
7377	// requests with the JSON null value. By default, fields with empty
7378	// values are omitted from API requests. However, any field with an
7379	// empty value appearing in NullFields will be sent to the server as
7380	// null. It is an error if a field in this list has a non-empty value.
7381	// This may be used to include null fields in Patch requests.
7382	NullFields []string `json:"-"`
7383}
7384
7385func (s *CommitmentsScopedListWarningData) MarshalJSON() ([]byte, error) {
7386	type NoMethod CommitmentsScopedListWarningData
7387	raw := NoMethod(*s)
7388	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7389}
7390
7391// Condition: A condition to be met.
7392type Condition struct {
7393	// Iam: Trusted attributes supplied by the IAM system.
7394	//
7395	// Possible values:
7396	//   "APPROVER"
7397	//   "ATTRIBUTION"
7398	//   "AUTHORITY"
7399	//   "CREDENTIALS_TYPE"
7400	//   "CREDS_ASSERTION"
7401	//   "JUSTIFICATION_TYPE"
7402	//   "NO_ATTR"
7403	//   "SECURITY_REALM"
7404	Iam string `json:"iam,omitempty"`
7405
7406	// Op: An operator to apply the subject with.
7407	//
7408	// Possible values:
7409	//   "DISCHARGED"
7410	//   "EQUALS"
7411	//   "IN"
7412	//   "NOT_EQUALS"
7413	//   "NOT_IN"
7414	//   "NO_OP"
7415	Op string `json:"op,omitempty"`
7416
7417	// Svc: Trusted attributes discharged by the service.
7418	Svc string `json:"svc,omitempty"`
7419
7420	// Sys: Trusted attributes supplied by any service that owns resources
7421	// and uses the IAM system for access control.
7422	//
7423	// Possible values:
7424	//   "IP"
7425	//   "NAME"
7426	//   "NO_ATTR"
7427	//   "REGION"
7428	//   "SERVICE"
7429	Sys string `json:"sys,omitempty"`
7430
7431	// Values: The objects of the condition.
7432	Values []string `json:"values,omitempty"`
7433
7434	// ForceSendFields is a list of field names (e.g. "Iam") to
7435	// unconditionally include in API requests. By default, fields with
7436	// empty values are omitted from API requests. However, any non-pointer,
7437	// non-interface field appearing in ForceSendFields will be sent to the
7438	// server regardless of whether the field is empty or not. This may be
7439	// used to include empty fields in Patch requests.
7440	ForceSendFields []string `json:"-"`
7441
7442	// NullFields is a list of field names (e.g. "Iam") to include in API
7443	// requests with the JSON null value. By default, fields with empty
7444	// values are omitted from API requests. However, any field with an
7445	// empty value appearing in NullFields will be sent to the server as
7446	// null. It is an error if a field in this list has a non-empty value.
7447	// This may be used to include null fields in Patch requests.
7448	NullFields []string `json:"-"`
7449}
7450
7451func (s *Condition) MarshalJSON() ([]byte, error) {
7452	type NoMethod Condition
7453	raw := NoMethod(*s)
7454	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7455}
7456
7457// ConfidentialInstanceConfig: A set of Confidential Instance options.
7458type ConfidentialInstanceConfig struct {
7459	// EnableConfidentialCompute: Defines whether the instance should have
7460	// confidential compute enabled.
7461	EnableConfidentialCompute bool `json:"enableConfidentialCompute,omitempty"`
7462
7463	// ForceSendFields is a list of field names (e.g.
7464	// "EnableConfidentialCompute") to unconditionally include in API
7465	// requests. By default, fields with empty values are omitted from API
7466	// requests. However, any non-pointer, non-interface field appearing in
7467	// ForceSendFields will be sent to the server regardless of whether the
7468	// field is empty or not. This may be used to include empty fields in
7469	// Patch requests.
7470	ForceSendFields []string `json:"-"`
7471
7472	// NullFields is a list of field names (e.g.
7473	// "EnableConfidentialCompute") to include in API requests with the JSON
7474	// null value. By default, fields with empty values are omitted from API
7475	// requests. However, any field with an empty value appearing in
7476	// NullFields will be sent to the server as null. It is an error if a
7477	// field in this list has a non-empty value. This may be used to include
7478	// null fields in Patch requests.
7479	NullFields []string `json:"-"`
7480}
7481
7482func (s *ConfidentialInstanceConfig) MarshalJSON() ([]byte, error) {
7483	type NoMethod ConfidentialInstanceConfig
7484	raw := NoMethod(*s)
7485	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7486}
7487
7488// ConnectionDraining: Message containing connection draining
7489// configuration.
7490type ConnectionDraining struct {
7491	// DrainingTimeoutSec: Configures a duration timeout for existing
7492	// requests on a removed backend instance. For supported load balancers
7493	// and protocols, as described in Enabling connection draining.
7494	DrainingTimeoutSec int64 `json:"drainingTimeoutSec,omitempty"`
7495
7496	// ForceSendFields is a list of field names (e.g. "DrainingTimeoutSec")
7497	// to unconditionally include in API requests. By default, fields with
7498	// empty values are omitted from API requests. However, any non-pointer,
7499	// non-interface field appearing in ForceSendFields will be sent to the
7500	// server regardless of whether the field is empty or not. This may be
7501	// used to include empty fields in Patch requests.
7502	ForceSendFields []string `json:"-"`
7503
7504	// NullFields is a list of field names (e.g. "DrainingTimeoutSec") to
7505	// include in API requests with the JSON null value. By default, fields
7506	// with empty values are omitted from API requests. However, any field
7507	// with an empty value appearing in NullFields will be sent to the
7508	// server as null. It is an error if a field in this list has a
7509	// non-empty value. This may be used to include null fields in Patch
7510	// requests.
7511	NullFields []string `json:"-"`
7512}
7513
7514func (s *ConnectionDraining) MarshalJSON() ([]byte, error) {
7515	type NoMethod ConnectionDraining
7516	raw := NoMethod(*s)
7517	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7518}
7519
7520// ConsistentHashLoadBalancerSettings: This message defines settings for
7521// a consistent hash style load balancer.
7522type ConsistentHashLoadBalancerSettings struct {
7523	// HttpCookie: Hash is based on HTTP Cookie. This field describes a HTTP
7524	// cookie that will be used as the hash key for the consistent hash load
7525	// balancer. If the cookie is not present, it will be generated. This
7526	// field is applicable if the sessionAffinity is set to HTTP_COOKIE.
7527	HttpCookie *ConsistentHashLoadBalancerSettingsHttpCookie `json:"httpCookie,omitempty"`
7528
7529	// HttpHeaderName: The hash based on the value of the specified header
7530	// field. This field is applicable if the sessionAffinity is set to
7531	// HEADER_FIELD.
7532	HttpHeaderName string `json:"httpHeaderName,omitempty"`
7533
7534	// MinimumRingSize: The minimum number of virtual nodes to use for the
7535	// hash ring. Defaults to 1024. Larger ring sizes result in more
7536	// granular load distributions. If the number of hosts in the load
7537	// balancing pool is larger than the ring size, each host will be
7538	// assigned a single virtual node.
7539	MinimumRingSize int64 `json:"minimumRingSize,omitempty,string"`
7540
7541	// ForceSendFields is a list of field names (e.g. "HttpCookie") to
7542	// unconditionally include in API requests. By default, fields with
7543	// empty values are omitted from API requests. However, any non-pointer,
7544	// non-interface field appearing in ForceSendFields will be sent to the
7545	// server regardless of whether the field is empty or not. This may be
7546	// used to include empty fields in Patch requests.
7547	ForceSendFields []string `json:"-"`
7548
7549	// NullFields is a list of field names (e.g. "HttpCookie") to include in
7550	// API requests with the JSON null value. By default, fields with empty
7551	// values are omitted from API requests. However, any field with an
7552	// empty value appearing in NullFields will be sent to the server as
7553	// null. It is an error if a field in this list has a non-empty value.
7554	// This may be used to include null fields in Patch requests.
7555	NullFields []string `json:"-"`
7556}
7557
7558func (s *ConsistentHashLoadBalancerSettings) MarshalJSON() ([]byte, error) {
7559	type NoMethod ConsistentHashLoadBalancerSettings
7560	raw := NoMethod(*s)
7561	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7562}
7563
7564// ConsistentHashLoadBalancerSettingsHttpCookie: The information about
7565// the HTTP Cookie on which the hash function is based for load
7566// balancing policies that use a consistent hash.
7567type ConsistentHashLoadBalancerSettingsHttpCookie struct {
7568	// Name: Name of the cookie.
7569	Name string `json:"name,omitempty"`
7570
7571	// Path: Path to set for the cookie.
7572	Path string `json:"path,omitempty"`
7573
7574	// Ttl: Lifetime of the cookie.
7575	Ttl *Duration `json:"ttl,omitempty"`
7576
7577	// ForceSendFields is a list of field names (e.g. "Name") to
7578	// unconditionally include in API requests. By default, fields with
7579	// empty values are omitted from API requests. However, any non-pointer,
7580	// non-interface field appearing in ForceSendFields will be sent to the
7581	// server regardless of whether the field is empty or not. This may be
7582	// used to include empty fields in Patch requests.
7583	ForceSendFields []string `json:"-"`
7584
7585	// NullFields is a list of field names (e.g. "Name") to include in API
7586	// requests with the JSON null value. By default, fields with empty
7587	// values are omitted from API requests. However, any field with an
7588	// empty value appearing in NullFields will be sent to the server as
7589	// null. It is an error if a field in this list has a non-empty value.
7590	// This may be used to include null fields in Patch requests.
7591	NullFields []string `json:"-"`
7592}
7593
7594func (s *ConsistentHashLoadBalancerSettingsHttpCookie) MarshalJSON() ([]byte, error) {
7595	type NoMethod ConsistentHashLoadBalancerSettingsHttpCookie
7596	raw := NoMethod(*s)
7597	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7598}
7599
7600// CorsPolicy: The specification for allowing client side cross-origin
7601// requests. Please see W3C Recommendation for Cross Origin Resource
7602// Sharing
7603type CorsPolicy struct {
7604	// AllowCredentials: In response to a preflight request, setting this to
7605	// true indicates that the actual request can include user credentials.
7606	// This translates to the Access-Control-Allow-Credentials
7607	// header.
7608	// Default is false.
7609	AllowCredentials bool `json:"allowCredentials,omitempty"`
7610
7611	// AllowHeaders: Specifies the content for the
7612	// Access-Control-Allow-Headers header.
7613	AllowHeaders []string `json:"allowHeaders,omitempty"`
7614
7615	// AllowMethods: Specifies the content for the
7616	// Access-Control-Allow-Methods header.
7617	AllowMethods []string `json:"allowMethods,omitempty"`
7618
7619	// AllowOriginRegexes: Specifies the regualar expression patterns that
7620	// match allowed origins. For regular expression grammar please see
7621	// github.com/google/re2/wiki/Syntax
7622	// An origin is allowed if it matches either an item in allowOrigins or
7623	// an item in allowOriginRegexes.
7624	AllowOriginRegexes []string `json:"allowOriginRegexes,omitempty"`
7625
7626	// AllowOrigins: Specifies the list of origins that will be allowed to
7627	// do CORS requests.
7628	// An origin is allowed if it matches either an item in allowOrigins or
7629	// an item in allowOriginRegexes.
7630	AllowOrigins []string `json:"allowOrigins,omitempty"`
7631
7632	// Disabled: If true, specifies the CORS policy is disabled. The default
7633	// value of false, which indicates that the CORS policy is in effect.
7634	Disabled bool `json:"disabled,omitempty"`
7635
7636	// ExposeHeaders: Specifies the content for the
7637	// Access-Control-Expose-Headers header.
7638	ExposeHeaders []string `json:"exposeHeaders,omitempty"`
7639
7640	// MaxAge: Specifies how long results of a preflight request can be
7641	// cached in seconds. This translates to the Access-Control-Max-Age
7642	// header.
7643	MaxAge int64 `json:"maxAge,omitempty"`
7644
7645	// ForceSendFields is a list of field names (e.g. "AllowCredentials") to
7646	// unconditionally include in API requests. By default, fields with
7647	// empty values are omitted from API requests. However, any non-pointer,
7648	// non-interface field appearing in ForceSendFields will be sent to the
7649	// server regardless of whether the field is empty or not. This may be
7650	// used to include empty fields in Patch requests.
7651	ForceSendFields []string `json:"-"`
7652
7653	// NullFields is a list of field names (e.g. "AllowCredentials") to
7654	// include in API requests with the JSON null value. By default, fields
7655	// with empty values are omitted from API requests. However, any field
7656	// with an empty value appearing in NullFields will be sent to the
7657	// server as null. It is an error if a field in this list has a
7658	// non-empty value. This may be used to include null fields in Patch
7659	// requests.
7660	NullFields []string `json:"-"`
7661}
7662
7663func (s *CorsPolicy) MarshalJSON() ([]byte, error) {
7664	type NoMethod CorsPolicy
7665	raw := NoMethod(*s)
7666	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7667}
7668
7669type CustomerEncryptionKey struct {
7670	// KmsKeyName: The name of the encryption key that is stored in Google
7671	// Cloud KMS.
7672	KmsKeyName string `json:"kmsKeyName,omitempty"`
7673
7674	// KmsKeyServiceAccount: The service account being used for the
7675	// encryption request for the given KMS key. If absent, the Compute
7676	// Engine default service account is used.
7677	KmsKeyServiceAccount string `json:"kmsKeyServiceAccount,omitempty"`
7678
7679	// RawKey: Specifies a 256-bit customer-supplied encryption key, encoded
7680	// in RFC 4648 base64 to either encrypt or decrypt this resource.
7681	RawKey string `json:"rawKey,omitempty"`
7682
7683	// RsaEncryptedKey: Specifies an RFC 4648 base64 encoded, RSA-wrapped
7684	// 2048-bit customer-supplied encryption key to either encrypt or
7685	// decrypt this resource.
7686	//
7687	// The key must meet the following requirements before you can provide
7688	// it to Compute Engine:
7689	// - The key is wrapped using a RSA public key certificate provided by
7690	// Google.
7691	// - After being wrapped, the key must be encoded in RFC 4648 base64
7692	// encoding.  Gets the RSA public key certificate provided by Google
7693	// at:
7694	// https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
7695	RsaEncryptedKey string `json:"rsaEncryptedKey,omitempty"`
7696
7697	// Sha256: [Output only] The RFC 4648 base64 encoded SHA-256 hash of the
7698	// customer-supplied encryption key that protects this resource.
7699	Sha256 string `json:"sha256,omitempty"`
7700
7701	// ForceSendFields is a list of field names (e.g. "KmsKeyName") to
7702	// unconditionally include in API requests. By default, fields with
7703	// empty values are omitted from API requests. However, any non-pointer,
7704	// non-interface field appearing in ForceSendFields will be sent to the
7705	// server regardless of whether the field is empty or not. This may be
7706	// used to include empty fields in Patch requests.
7707	ForceSendFields []string `json:"-"`
7708
7709	// NullFields is a list of field names (e.g. "KmsKeyName") to include in
7710	// API requests with the JSON null value. By default, fields with empty
7711	// values are omitted from API requests. However, any field with an
7712	// empty value appearing in NullFields will be sent to the server as
7713	// null. It is an error if a field in this list has a non-empty value.
7714	// This may be used to include null fields in Patch requests.
7715	NullFields []string `json:"-"`
7716}
7717
7718func (s *CustomerEncryptionKey) MarshalJSON() ([]byte, error) {
7719	type NoMethod CustomerEncryptionKey
7720	raw := NoMethod(*s)
7721	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7722}
7723
7724type CustomerEncryptionKeyProtectedDisk struct {
7725	// DiskEncryptionKey: Decrypts data associated with the disk with a
7726	// customer-supplied encryption key.
7727	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
7728
7729	// Source: Specifies a valid partial or full URL to an existing
7730	// Persistent Disk resource. This field is only applicable for
7731	// persistent disks.
7732	Source string `json:"source,omitempty"`
7733
7734	// ForceSendFields is a list of field names (e.g. "DiskEncryptionKey")
7735	// to unconditionally include in API requests. By default, fields with
7736	// empty values are omitted from API requests. However, any non-pointer,
7737	// non-interface field appearing in ForceSendFields will be sent to the
7738	// server regardless of whether the field is empty or not. This may be
7739	// used to include empty fields in Patch requests.
7740	ForceSendFields []string `json:"-"`
7741
7742	// NullFields is a list of field names (e.g. "DiskEncryptionKey") to
7743	// include in API requests with the JSON null value. By default, fields
7744	// with empty values are omitted from API requests. However, any field
7745	// with an empty value appearing in NullFields will be sent to the
7746	// server as null. It is an error if a field in this list has a
7747	// non-empty value. This may be used to include null fields in Patch
7748	// requests.
7749	NullFields []string `json:"-"`
7750}
7751
7752func (s *CustomerEncryptionKeyProtectedDisk) MarshalJSON() ([]byte, error) {
7753	type NoMethod CustomerEncryptionKeyProtectedDisk
7754	raw := NoMethod(*s)
7755	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7756}
7757
7758// DeprecationStatus: Deprecation status for a public resource.
7759type DeprecationStatus struct {
7760	// Deleted: An optional RFC3339 timestamp on or after which the state of
7761	// this resource is intended to change to DELETED. This is only
7762	// informational and the status will not change unless the client
7763	// explicitly changes it.
7764	Deleted string `json:"deleted,omitempty"`
7765
7766	// Deprecated -- An optional RFC3339 timestamp on or after which the
7767	// state of this resource is intended to change to DEPRECATED. This is
7768	// only informational and the status will not change unless the client
7769	// explicitly changes it.
7770	Deprecated string `json:"deprecated,omitempty"`
7771
7772	// Obsolete: An optional RFC3339 timestamp on or after which the state
7773	// of this resource is intended to change to OBSOLETE. This is only
7774	// informational and the status will not change unless the client
7775	// explicitly changes it.
7776	Obsolete string `json:"obsolete,omitempty"`
7777
7778	// Replacement: The URL of the suggested replacement for a deprecated
7779	// resource. The suggested replacement resource must be the same kind of
7780	// resource as the deprecated resource.
7781	Replacement string `json:"replacement,omitempty"`
7782
7783	// State: The deprecation state of this resource. This can be ACTIVE,
7784	// DEPRECATED, OBSOLETE, or DELETED. Operations which communicate the
7785	// end of life date for an image, can use ACTIVE. Operations which
7786	// create a new resource using a DEPRECATED resource will return
7787	// successfully, but with a warning indicating the deprecated resource
7788	// and recommending its replacement. Operations which use OBSOLETE or
7789	// DELETED resources will be rejected and result in an error.
7790	//
7791	// Possible values:
7792	//   "ACTIVE"
7793	//   "DELETED"
7794	//   "DEPRECATED"
7795	//   "OBSOLETE"
7796	State string `json:"state,omitempty"`
7797
7798	// ForceSendFields is a list of field names (e.g. "Deleted") to
7799	// unconditionally include in API requests. By default, fields with
7800	// empty values are omitted from API requests. However, any non-pointer,
7801	// non-interface field appearing in ForceSendFields will be sent to the
7802	// server regardless of whether the field is empty or not. This may be
7803	// used to include empty fields in Patch requests.
7804	ForceSendFields []string `json:"-"`
7805
7806	// NullFields is a list of field names (e.g. "Deleted") to include in
7807	// API requests with the JSON null value. By default, fields with empty
7808	// values are omitted from API requests. However, any field with an
7809	// empty value appearing in NullFields will be sent to the server as
7810	// null. It is an error if a field in this list has a non-empty value.
7811	// This may be used to include null fields in Patch requests.
7812	NullFields []string `json:"-"`
7813}
7814
7815func (s *DeprecationStatus) MarshalJSON() ([]byte, error) {
7816	type NoMethod DeprecationStatus
7817	raw := NoMethod(*s)
7818	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7819}
7820
7821// Disk: Represents a Persistent Disk resource.
7822//
7823// Google Compute Engine has two Disk resources:
7824//
7825// * Zonal (/compute/docs/reference/rest/{$api_version}/disks) *
7826// Regional
7827// (/compute/docs/reference/rest/{$api_version}/regionDisks)
7828//
7829// Persistent disks are required for running your VM instances. Create
7830// both boot and non-boot (data) persistent disks. For more information,
7831// read Persistent Disks. For more storage options, read Storage
7832// options.
7833//
7834// The disks resource represents a zonal persistent disk. For more
7835// information, read Zonal persistent disks.
7836//
7837// The regionDisks resource represents a regional persistent disk. For
7838// more information, read  Regional resources. (== resource_for
7839// {$api_version}.disks ==) (== resource_for {$api_version}.regionDisks
7840// ==)
7841type Disk struct {
7842	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
7843	// format.
7844	CreationTimestamp string `json:"creationTimestamp,omitempty"`
7845
7846	// Description: An optional description of this resource. Provide this
7847	// property when you create the resource.
7848	Description string `json:"description,omitempty"`
7849
7850	// DiskEncryptionKey: Encrypts the disk using a customer-supplied
7851	// encryption key.
7852	//
7853	// After you encrypt a disk with a customer-supplied key, you must
7854	// provide the same key if you use the disk later (e.g. to create a disk
7855	// snapshot, to create a disk image, to create a machine image, or to
7856	// attach the disk to a virtual machine).
7857	//
7858	// Customer-supplied encryption keys do not protect access to metadata
7859	// of the disk.
7860	//
7861	// If you do not provide an encryption key when creating the disk, then
7862	// the disk will be encrypted using an automatically generated key and
7863	// you do not need to provide a key to use the disk later.
7864	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
7865
7866	// EraseWindowsVssSignature: Specifies whether the disk restored from a
7867	// source snapshot should erase Windows specific VSS signature.
7868	EraseWindowsVssSignature bool `json:"eraseWindowsVssSignature,omitempty"`
7869
7870	// GuestOsFeatures: A list of features to enable on the guest operating
7871	// system. Applicable only for bootable images. Read  Enabling guest
7872	// operating system features to see a list of available options.
7873	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
7874
7875	// Id: [Output Only] The unique identifier for the resource. This
7876	// identifier is defined by the server.
7877	Id uint64 `json:"id,omitempty,string"`
7878
7879	// Interface: Specifies the disk interface to use for attaching this
7880	// disk, which is either SCSI or NVME. The default is SCSI.
7881	//
7882	// Possible values:
7883	//   "NVME"
7884	//   "SCSI"
7885	//   "UNSPECIFIED"
7886	Interface string `json:"interface,omitempty"`
7887
7888	// Kind: [Output Only] Type of the resource. Always compute#disk for
7889	// disks.
7890	Kind string `json:"kind,omitempty"`
7891
7892	// LabelFingerprint: A fingerprint for the labels being applied to this
7893	// disk, which is essentially a hash of the labels set used for
7894	// optimistic locking. The fingerprint is initially generated by Compute
7895	// Engine and changes after every request to modify or update labels.
7896	// You must always provide an up-to-date fingerprint hash in order to
7897	// update or change labels, otherwise the request will fail with error
7898	// 412 conditionNotMet.
7899	//
7900	// To see the latest fingerprint, make a get() request to retrieve a
7901	// disk.
7902	LabelFingerprint string `json:"labelFingerprint,omitempty"`
7903
7904	// Labels: Labels to apply to this disk. These can be later modified by
7905	// the setLabels method.
7906	Labels map[string]string `json:"labels,omitempty"`
7907
7908	// LastAttachTimestamp: [Output Only] Last attach timestamp in RFC3339
7909	// text format.
7910	LastAttachTimestamp string `json:"lastAttachTimestamp,omitempty"`
7911
7912	// LastDetachTimestamp: [Output Only] Last detach timestamp in RFC3339
7913	// text format.
7914	LastDetachTimestamp string `json:"lastDetachTimestamp,omitempty"`
7915
7916	// LicenseCodes: Integer license codes indicating which licenses are
7917	// attached to this disk.
7918	LicenseCodes googleapi.Int64s `json:"licenseCodes,omitempty"`
7919
7920	// Licenses: A list of publicly visible licenses. Reserved for Google's
7921	// use.
7922	Licenses []string `json:"licenses,omitempty"`
7923
7924	// LocationHint: An opaque location hint used to place the disk close to
7925	// other resources. This field is for use by internal tools that use the
7926	// public API.
7927	LocationHint string `json:"locationHint,omitempty"`
7928
7929	// MultiWriter: Indicates whether or not the disk can be read/write
7930	// attached to more than one instance.
7931	MultiWriter bool `json:"multiWriter,omitempty"`
7932
7933	// Name: Name of the resource. Provided by the client when the resource
7934	// is created. The name must be 1-63 characters long, and comply with
7935	// RFC1035. Specifically, the name must be 1-63 characters long and
7936	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
7937	// the first character must be a lowercase letter, and all following
7938	// characters must be a dash, lowercase letter, or digit, except the
7939	// last character, which cannot be a dash.
7940	Name string `json:"name,omitempty"`
7941
7942	// Options: Internal use only.
7943	Options string `json:"options,omitempty"`
7944
7945	// PhysicalBlockSizeBytes: Physical block size of the persistent disk,
7946	// in bytes. If not present in a request, a default value is used. The
7947	// currently supported size is 4096, other sizes may be added in the
7948	// future. If an unsupported value is requested, the error message will
7949	// list the supported values for the caller's project.
7950	PhysicalBlockSizeBytes int64 `json:"physicalBlockSizeBytes,omitempty,string"`
7951
7952	// ProvisionedIops: Indicates how many IOPS must be provisioned for the
7953	// disk.
7954	ProvisionedIops int64 `json:"provisionedIops,omitempty,string"`
7955
7956	// Region: [Output Only] URL of the region where the disk resides. Only
7957	// applicable for regional resources. You must specify this field as
7958	// part of the HTTP request URL. It is not settable as a field in the
7959	// request body.
7960	Region string `json:"region,omitempty"`
7961
7962	// ReplicaZones: URLs of the zones where the disk should be replicated
7963	// to. Only applicable for regional resources.
7964	ReplicaZones []string `json:"replicaZones,omitempty"`
7965
7966	// ResourcePolicies: Resource policies applied to this disk for
7967	// automatic snapshot creations.
7968	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
7969
7970	// SatisfiesPzs: [Output Only] Reserved for future use.
7971	SatisfiesPzs bool `json:"satisfiesPzs,omitempty"`
7972
7973	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
7974	// resource.
7975	SelfLink string `json:"selfLink,omitempty"`
7976
7977	// SizeGb: Size, in GB, of the persistent disk. You can specify this
7978	// field when creating a persistent disk using the sourceImage,
7979	// sourceSnapshot, or sourceDisk parameter, or specify it alone to
7980	// create an empty persistent disk.
7981	//
7982	// If you specify this field along with a source, the value of sizeGb
7983	// must not be less than the size of the source. Acceptable values are 1
7984	// to 65536, inclusive.
7985	SizeGb int64 `json:"sizeGb,omitempty,string"`
7986
7987	// SourceDisk: The source disk used to create this disk. You can provide
7988	// this as a partial or full URL to the resource. For example, the
7989	// following are valid values:
7990	// -
7991	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk
7992	//
7993	// -
7994	// https://www.googleapis.com/compute/v1/projects/project/regions/region/disks/disk
7995	//
7996	// - projects/project/zones/zone/disks/disk
7997	// - projects/project/regions/region/disks/disk
7998	// - zones/zone/disks/disk
7999	// - regions/region/disks/disk
8000	SourceDisk string `json:"sourceDisk,omitempty"`
8001
8002	// SourceDiskId: [Output Only] The unique ID of the disk used to create
8003	// this disk. This value identifies the exact disk that was used to
8004	// create this persistent disk. For example, if you created the
8005	// persistent disk from a disk that was later deleted and recreated
8006	// under the same name, the source disk ID would identify the exact
8007	// version of the disk that was used.
8008	SourceDiskId string `json:"sourceDiskId,omitempty"`
8009
8010	// SourceImage: The source image used to create this disk. If the source
8011	// image is deleted, this field will not be set.
8012	//
8013	// To create a disk with one of the public operating system images,
8014	// specify the image by its family name. For example, specify
8015	// family/debian-9 to use the latest Debian 9
8016	// image:
8017	// projects/debian-cloud/global/images/family/debian-9
8018	//
8019	//
8020	// Alternatively, use a specific version of a public operating system
8021	// image:
8022	// projects/debian-cloud/global/images/debian-9-stretch-vYYYYMMDD
8023	//
8024	//
8025	// To create a disk with a custom image that you created, specify the
8026	// image name in the following
8027	// format:
8028	// global/images/my-custom-image
8029	//
8030	//
8031	// You can also specify a custom image by its image family, which
8032	// returns the latest version of the image in that family. Replace the
8033	// image name with
8034	// family/family-name:
8035	// global/images/family/my-image-family
8036	SourceImage string `json:"sourceImage,omitempty"`
8037
8038	// SourceImageEncryptionKey: The customer-supplied encryption key of the
8039	// source image. Required if the source image is protected by a
8040	// customer-supplied encryption key.
8041	SourceImageEncryptionKey *CustomerEncryptionKey `json:"sourceImageEncryptionKey,omitempty"`
8042
8043	// SourceImageId: [Output Only] The ID value of the image used to create
8044	// this disk. This value identifies the exact image that was used to
8045	// create this persistent disk. For example, if you created the
8046	// persistent disk from an image that was later deleted and recreated
8047	// under the same name, the source image ID would identify the exact
8048	// version of the image that was used.
8049	SourceImageId string `json:"sourceImageId,omitempty"`
8050
8051	// SourceSnapshot: The source snapshot used to create this disk. You can
8052	// provide this as a partial or full URL to the resource. For example,
8053	// the following are valid values:
8054	// -
8055	// https://www.googleapis.com/compute/v1/projects/project/global/snapshots/snapshot
8056	//
8057	// - projects/project/global/snapshots/snapshot
8058	// - global/snapshots/snapshot
8059	SourceSnapshot string `json:"sourceSnapshot,omitempty"`
8060
8061	// SourceSnapshotEncryptionKey: The customer-supplied encryption key of
8062	// the source snapshot. Required if the source snapshot is protected by
8063	// a customer-supplied encryption key.
8064	SourceSnapshotEncryptionKey *CustomerEncryptionKey `json:"sourceSnapshotEncryptionKey,omitempty"`
8065
8066	// SourceSnapshotId: [Output Only] The unique ID of the snapshot used to
8067	// create this disk. This value identifies the exact snapshot that was
8068	// used to create this persistent disk. For example, if you created the
8069	// persistent disk from a snapshot that was later deleted and recreated
8070	// under the same name, the source snapshot ID would identify the exact
8071	// version of the snapshot that was used.
8072	SourceSnapshotId string `json:"sourceSnapshotId,omitempty"`
8073
8074	// SourceStorageObject: The full Google Cloud Storage URI where the disk
8075	// image is stored. This file must be a gzip-compressed tarball whose
8076	// name ends in .tar.gz or virtual machine disk whose name ends in vmdk.
8077	// Valid URIs may start with gs:// or https://storage.googleapis.com/.
8078	// This flag is not optimized for creating multiple disks from a source
8079	// storage object. To create many disks from a source storage object,
8080	// use gcloud compute images import instead.
8081	SourceStorageObject string `json:"sourceStorageObject,omitempty"`
8082
8083	// Status: [Output Only] The status of disk creation.
8084	// - CREATING: Disk is provisioning.
8085	// - RESTORING: Source data is being copied into the disk.
8086	// - FAILED: Disk creation failed.
8087	// - READY: Disk is ready for use.
8088	// - DELETING: Disk is deleting.
8089	//
8090	// Possible values:
8091	//   "CREATING"
8092	//   "DELETING"
8093	//   "FAILED"
8094	//   "READY"
8095	//   "RESTORING"
8096	Status string `json:"status,omitempty"`
8097
8098	// StorageType: [Deprecated] Storage type of the persistent disk.
8099	//
8100	// Possible values:
8101	//   "HDD"
8102	//   "SSD"
8103	StorageType string `json:"storageType,omitempty"`
8104
8105	// Type: URL of the disk type resource describing which disk type to use
8106	// to create the disk. Provide this when creating the disk. For example:
8107	// projects/project/zones/zone/diskTypes/pd-standard  or pd-ssd
8108	Type string `json:"type,omitempty"`
8109
8110	// Users: [Output Only] Links to the users of the disk (attached
8111	// instances) in form: projects/project/zones/zone/instances/instance
8112	Users []string `json:"users,omitempty"`
8113
8114	// Zone: [Output Only] URL of the zone where the disk resides. You must
8115	// specify this field as part of the HTTP request URL. It is not
8116	// settable as a field in the request body.
8117	Zone string `json:"zone,omitempty"`
8118
8119	// ServerResponse contains the HTTP response code and headers from the
8120	// server.
8121	googleapi.ServerResponse `json:"-"`
8122
8123	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
8124	// to unconditionally include in API requests. By default, fields with
8125	// empty values are omitted from API requests. However, any non-pointer,
8126	// non-interface field appearing in ForceSendFields will be sent to the
8127	// server regardless of whether the field is empty or not. This may be
8128	// used to include empty fields in Patch requests.
8129	ForceSendFields []string `json:"-"`
8130
8131	// NullFields is a list of field names (e.g. "CreationTimestamp") to
8132	// include in API requests with the JSON null value. By default, fields
8133	// with empty values are omitted from API requests. However, any field
8134	// with an empty value appearing in NullFields will be sent to the
8135	// server as null. It is an error if a field in this list has a
8136	// non-empty value. This may be used to include null fields in Patch
8137	// requests.
8138	NullFields []string `json:"-"`
8139}
8140
8141func (s *Disk) MarshalJSON() ([]byte, error) {
8142	type NoMethod Disk
8143	raw := NoMethod(*s)
8144	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8145}
8146
8147type DiskAggregatedList struct {
8148	// Id: [Output Only] Unique identifier for the resource; defined by the
8149	// server.
8150	Id string `json:"id,omitempty"`
8151
8152	// Items: A list of DisksScopedList resources.
8153	Items map[string]DisksScopedList `json:"items,omitempty"`
8154
8155	// Kind: [Output Only] Type of resource. Always
8156	// compute#diskAggregatedList for aggregated lists of persistent disks.
8157	Kind string `json:"kind,omitempty"`
8158
8159	// NextPageToken: [Output Only] This token allows you to get the next
8160	// page of results for list requests. If the number of results is larger
8161	// than maxResults, use the nextPageToken as a value for the query
8162	// parameter pageToken in the next list request. Subsequent list
8163	// requests will have their own nextPageToken to continue paging through
8164	// the results.
8165	NextPageToken string `json:"nextPageToken,omitempty"`
8166
8167	// SelfLink: [Output Only] Server-defined URL for this resource.
8168	SelfLink string `json:"selfLink,omitempty"`
8169
8170	// Unreachables: [Output Only] Unreachable resources.
8171	Unreachables []string `json:"unreachables,omitempty"`
8172
8173	// Warning: [Output Only] Informational warning message.
8174	Warning *DiskAggregatedListWarning `json:"warning,omitempty"`
8175
8176	// ServerResponse contains the HTTP response code and headers from the
8177	// server.
8178	googleapi.ServerResponse `json:"-"`
8179
8180	// ForceSendFields is a list of field names (e.g. "Id") to
8181	// unconditionally include in API requests. By default, fields with
8182	// empty values are omitted from API requests. However, any non-pointer,
8183	// non-interface field appearing in ForceSendFields will be sent to the
8184	// server regardless of whether the field is empty or not. This may be
8185	// used to include empty fields in Patch requests.
8186	ForceSendFields []string `json:"-"`
8187
8188	// NullFields is a list of field names (e.g. "Id") to include in API
8189	// requests with the JSON null value. By default, fields with empty
8190	// values are omitted from API requests. However, any field with an
8191	// empty value appearing in NullFields will be sent to the server as
8192	// null. It is an error if a field in this list has a non-empty value.
8193	// This may be used to include null fields in Patch requests.
8194	NullFields []string `json:"-"`
8195}
8196
8197func (s *DiskAggregatedList) MarshalJSON() ([]byte, error) {
8198	type NoMethod DiskAggregatedList
8199	raw := NoMethod(*s)
8200	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8201}
8202
8203// DiskAggregatedListWarning: [Output Only] Informational warning
8204// message.
8205type DiskAggregatedListWarning struct {
8206	// Code: [Output Only] A warning code, if applicable. For example,
8207	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
8208	// the response.
8209	//
8210	// Possible values:
8211	//   "CLEANUP_FAILED"
8212	//   "DEPRECATED_RESOURCE_USED"
8213	//   "DEPRECATED_TYPE_USED"
8214	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
8215	//   "EXPERIMENTAL_TYPE_USED"
8216	//   "EXTERNAL_API_WARNING"
8217	//   "FIELD_VALUE_OVERRIDEN"
8218	//   "INJECTED_KERNELS_DEPRECATED"
8219	//   "LARGE_DEPLOYMENT_WARNING"
8220	//   "MISSING_TYPE_DEPENDENCY"
8221	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
8222	//   "NEXT_HOP_CANNOT_IP_FORWARD"
8223	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
8224	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
8225	//   "NEXT_HOP_NOT_RUNNING"
8226	//   "NOT_CRITICAL_ERROR"
8227	//   "NO_RESULTS_ON_PAGE"
8228	//   "PARTIAL_SUCCESS"
8229	//   "REQUIRED_TOS_AGREEMENT"
8230	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
8231	//   "RESOURCE_NOT_DELETED"
8232	//   "SCHEMA_VALIDATION_IGNORED"
8233	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
8234	//   "UNDECLARED_PROPERTIES"
8235	//   "UNREACHABLE"
8236	Code string `json:"code,omitempty"`
8237
8238	// Data: [Output Only] Metadata about this warning in key: value format.
8239	// For example:
8240	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
8241	Data []*DiskAggregatedListWarningData `json:"data,omitempty"`
8242
8243	// Message: [Output Only] A human-readable description of the warning
8244	// code.
8245	Message string `json:"message,omitempty"`
8246
8247	// ForceSendFields is a list of field names (e.g. "Code") to
8248	// unconditionally include in API requests. By default, fields with
8249	// empty values are omitted from API requests. However, any non-pointer,
8250	// non-interface field appearing in ForceSendFields will be sent to the
8251	// server regardless of whether the field is empty or not. This may be
8252	// used to include empty fields in Patch requests.
8253	ForceSendFields []string `json:"-"`
8254
8255	// NullFields is a list of field names (e.g. "Code") to include in API
8256	// requests with the JSON null value. By default, fields with empty
8257	// values are omitted from API requests. However, any field with an
8258	// empty value appearing in NullFields will be sent to the server as
8259	// null. It is an error if a field in this list has a non-empty value.
8260	// This may be used to include null fields in Patch requests.
8261	NullFields []string `json:"-"`
8262}
8263
8264func (s *DiskAggregatedListWarning) MarshalJSON() ([]byte, error) {
8265	type NoMethod DiskAggregatedListWarning
8266	raw := NoMethod(*s)
8267	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8268}
8269
8270type DiskAggregatedListWarningData struct {
8271	// Key: [Output Only] A key that provides more detail on the warning
8272	// being returned. For example, for warnings where there are no results
8273	// in a list request for a particular zone, this key might be scope and
8274	// the key value might be the zone name. Other examples might be a key
8275	// indicating a deprecated resource and a suggested replacement, or a
8276	// warning about invalid network settings (for example, if an instance
8277	// attempts to perform IP forwarding but is not enabled for IP
8278	// forwarding).
8279	Key string `json:"key,omitempty"`
8280
8281	// Value: [Output Only] A warning data value corresponding to the key.
8282	Value string `json:"value,omitempty"`
8283
8284	// ForceSendFields is a list of field names (e.g. "Key") to
8285	// unconditionally include in API requests. By default, fields with
8286	// empty values are omitted from API requests. However, any non-pointer,
8287	// non-interface field appearing in ForceSendFields will be sent to the
8288	// server regardless of whether the field is empty or not. This may be
8289	// used to include empty fields in Patch requests.
8290	ForceSendFields []string `json:"-"`
8291
8292	// NullFields is a list of field names (e.g. "Key") to include in API
8293	// requests with the JSON null value. By default, fields with empty
8294	// values are omitted from API requests. However, any field with an
8295	// empty value appearing in NullFields will be sent to the server as
8296	// null. It is an error if a field in this list has a non-empty value.
8297	// This may be used to include null fields in Patch requests.
8298	NullFields []string `json:"-"`
8299}
8300
8301func (s *DiskAggregatedListWarningData) MarshalJSON() ([]byte, error) {
8302	type NoMethod DiskAggregatedListWarningData
8303	raw := NoMethod(*s)
8304	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8305}
8306
8307// DiskInstantiationConfig: A specification of the desired way to
8308// instantiate a disk in the instance template when its created from a
8309// source instance.
8310type DiskInstantiationConfig struct {
8311	// AutoDelete: Specifies whether the disk will be auto-deleted when the
8312	// instance is deleted (but not when the disk is detached from the
8313	// instance).
8314	AutoDelete bool `json:"autoDelete,omitempty"`
8315
8316	// CustomImage: The custom source image to be used to restore this disk
8317	// when instantiating this instance template.
8318	CustomImage string `json:"customImage,omitempty"`
8319
8320	// DeviceName: Specifies the device name of the disk to which the
8321	// configurations apply to.
8322	DeviceName string `json:"deviceName,omitempty"`
8323
8324	// InstantiateFrom: Specifies whether to include the disk and what image
8325	// to use. Possible values are:
8326	// - source-image: to use the same image that was used to create the
8327	// source instance's corresponding disk. Applicable to the boot disk and
8328	// additional read-write disks.
8329	// - source-image-family: to use the same image family that was used to
8330	// create the source instance's corresponding disk. Applicable to the
8331	// boot disk and additional read-write disks.
8332	// - custom-image: to use a user-provided image url for disk creation.
8333	// Applicable to the boot disk and additional read-write disks.
8334	// - attach-read-only: to attach a read-only disk. Applicable to
8335	// read-only disks.
8336	// - do-not-include: to exclude a disk from the template. Applicable to
8337	// additional read-write disks, local SSDs, and read-only disks.
8338	//
8339	// Possible values:
8340	//   "ATTACH_READ_ONLY"
8341	//   "BLANK"
8342	//   "CUSTOM_IMAGE"
8343	//   "DEFAULT"
8344	//   "DO_NOT_INCLUDE"
8345	//   "SOURCE_IMAGE"
8346	//   "SOURCE_IMAGE_FAMILY"
8347	InstantiateFrom string `json:"instantiateFrom,omitempty"`
8348
8349	// ForceSendFields is a list of field names (e.g. "AutoDelete") to
8350	// unconditionally include in API requests. By default, fields with
8351	// empty values are omitted from API requests. However, any non-pointer,
8352	// non-interface field appearing in ForceSendFields will be sent to the
8353	// server regardless of whether the field is empty or not. This may be
8354	// used to include empty fields in Patch requests.
8355	ForceSendFields []string `json:"-"`
8356
8357	// NullFields is a list of field names (e.g. "AutoDelete") to include in
8358	// API requests with the JSON null value. By default, fields with empty
8359	// values are omitted from API requests. However, any field with an
8360	// empty value appearing in NullFields will be sent to the server as
8361	// null. It is an error if a field in this list has a non-empty value.
8362	// This may be used to include null fields in Patch requests.
8363	NullFields []string `json:"-"`
8364}
8365
8366func (s *DiskInstantiationConfig) MarshalJSON() ([]byte, error) {
8367	type NoMethod DiskInstantiationConfig
8368	raw := NoMethod(*s)
8369	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8370}
8371
8372// DiskList: A list of Disk resources.
8373type DiskList struct {
8374	// Id: [Output Only] Unique identifier for the resource; defined by the
8375	// server.
8376	Id string `json:"id,omitempty"`
8377
8378	// Items: A list of Disk resources.
8379	Items []*Disk `json:"items,omitempty"`
8380
8381	// Kind: [Output Only] Type of resource. Always compute#diskList for
8382	// lists of disks.
8383	Kind string `json:"kind,omitempty"`
8384
8385	// NextPageToken: [Output Only] This token allows you to get the next
8386	// page of results for list requests. If the number of results is larger
8387	// than maxResults, use the nextPageToken as a value for the query
8388	// parameter pageToken in the next list request. Subsequent list
8389	// requests will have their own nextPageToken to continue paging through
8390	// the results.
8391	NextPageToken string `json:"nextPageToken,omitempty"`
8392
8393	// SelfLink: [Output Only] Server-defined URL for this resource.
8394	SelfLink string `json:"selfLink,omitempty"`
8395
8396	// Warning: [Output Only] Informational warning message.
8397	Warning *DiskListWarning `json:"warning,omitempty"`
8398
8399	// ServerResponse contains the HTTP response code and headers from the
8400	// server.
8401	googleapi.ServerResponse `json:"-"`
8402
8403	// ForceSendFields is a list of field names (e.g. "Id") to
8404	// unconditionally include in API requests. By default, fields with
8405	// empty values are omitted from API requests. However, any non-pointer,
8406	// non-interface field appearing in ForceSendFields will be sent to the
8407	// server regardless of whether the field is empty or not. This may be
8408	// used to include empty fields in Patch requests.
8409	ForceSendFields []string `json:"-"`
8410
8411	// NullFields is a list of field names (e.g. "Id") to include in API
8412	// requests with the JSON null value. By default, fields with empty
8413	// values are omitted from API requests. However, any field with an
8414	// empty value appearing in NullFields will be sent to the server as
8415	// null. It is an error if a field in this list has a non-empty value.
8416	// This may be used to include null fields in Patch requests.
8417	NullFields []string `json:"-"`
8418}
8419
8420func (s *DiskList) MarshalJSON() ([]byte, error) {
8421	type NoMethod DiskList
8422	raw := NoMethod(*s)
8423	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8424}
8425
8426// DiskListWarning: [Output Only] Informational warning message.
8427type DiskListWarning struct {
8428	// Code: [Output Only] A warning code, if applicable. For example,
8429	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
8430	// the response.
8431	//
8432	// Possible values:
8433	//   "CLEANUP_FAILED"
8434	//   "DEPRECATED_RESOURCE_USED"
8435	//   "DEPRECATED_TYPE_USED"
8436	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
8437	//   "EXPERIMENTAL_TYPE_USED"
8438	//   "EXTERNAL_API_WARNING"
8439	//   "FIELD_VALUE_OVERRIDEN"
8440	//   "INJECTED_KERNELS_DEPRECATED"
8441	//   "LARGE_DEPLOYMENT_WARNING"
8442	//   "MISSING_TYPE_DEPENDENCY"
8443	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
8444	//   "NEXT_HOP_CANNOT_IP_FORWARD"
8445	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
8446	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
8447	//   "NEXT_HOP_NOT_RUNNING"
8448	//   "NOT_CRITICAL_ERROR"
8449	//   "NO_RESULTS_ON_PAGE"
8450	//   "PARTIAL_SUCCESS"
8451	//   "REQUIRED_TOS_AGREEMENT"
8452	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
8453	//   "RESOURCE_NOT_DELETED"
8454	//   "SCHEMA_VALIDATION_IGNORED"
8455	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
8456	//   "UNDECLARED_PROPERTIES"
8457	//   "UNREACHABLE"
8458	Code string `json:"code,omitempty"`
8459
8460	// Data: [Output Only] Metadata about this warning in key: value format.
8461	// For example:
8462	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
8463	Data []*DiskListWarningData `json:"data,omitempty"`
8464
8465	// Message: [Output Only] A human-readable description of the warning
8466	// code.
8467	Message string `json:"message,omitempty"`
8468
8469	// ForceSendFields is a list of field names (e.g. "Code") to
8470	// unconditionally include in API requests. By default, fields with
8471	// empty values are omitted from API requests. However, any non-pointer,
8472	// non-interface field appearing in ForceSendFields will be sent to the
8473	// server regardless of whether the field is empty or not. This may be
8474	// used to include empty fields in Patch requests.
8475	ForceSendFields []string `json:"-"`
8476
8477	// NullFields is a list of field names (e.g. "Code") to include in API
8478	// requests with the JSON null value. By default, fields with empty
8479	// values are omitted from API requests. However, any field with an
8480	// empty value appearing in NullFields will be sent to the server as
8481	// null. It is an error if a field in this list has a non-empty value.
8482	// This may be used to include null fields in Patch requests.
8483	NullFields []string `json:"-"`
8484}
8485
8486func (s *DiskListWarning) MarshalJSON() ([]byte, error) {
8487	type NoMethod DiskListWarning
8488	raw := NoMethod(*s)
8489	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8490}
8491
8492type DiskListWarningData struct {
8493	// Key: [Output Only] A key that provides more detail on the warning
8494	// being returned. For example, for warnings where there are no results
8495	// in a list request for a particular zone, this key might be scope and
8496	// the key value might be the zone name. Other examples might be a key
8497	// indicating a deprecated resource and a suggested replacement, or a
8498	// warning about invalid network settings (for example, if an instance
8499	// attempts to perform IP forwarding but is not enabled for IP
8500	// forwarding).
8501	Key string `json:"key,omitempty"`
8502
8503	// Value: [Output Only] A warning data value corresponding to the key.
8504	Value string `json:"value,omitempty"`
8505
8506	// ForceSendFields is a list of field names (e.g. "Key") to
8507	// unconditionally include in API requests. By default, fields with
8508	// empty values are omitted from API requests. However, any non-pointer,
8509	// non-interface field appearing in ForceSendFields will be sent to the
8510	// server regardless of whether the field is empty or not. This may be
8511	// used to include empty fields in Patch requests.
8512	ForceSendFields []string `json:"-"`
8513
8514	// NullFields is a list of field names (e.g. "Key") to include in API
8515	// requests with the JSON null value. By default, fields with empty
8516	// values are omitted from API requests. However, any field with an
8517	// empty value appearing in NullFields will be sent to the server as
8518	// null. It is an error if a field in this list has a non-empty value.
8519	// This may be used to include null fields in Patch requests.
8520	NullFields []string `json:"-"`
8521}
8522
8523func (s *DiskListWarningData) MarshalJSON() ([]byte, error) {
8524	type NoMethod DiskListWarningData
8525	raw := NoMethod(*s)
8526	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8527}
8528
8529type DiskMoveRequest struct {
8530	// DestinationZone: The URL of the destination zone to move the disk.
8531	// This can be a full or partial URL. For example, the following are all
8532	// valid URLs to a zone:
8533	// - https://www.googleapis.com/compute/v1/projects/project/zones/zone
8534	//
8535	// - projects/project/zones/zone
8536	// - zones/zone
8537	DestinationZone string `json:"destinationZone,omitempty"`
8538
8539	// TargetDisk: The URL of the target disk to move. This can be a full or
8540	// partial URL. For example, the following are all valid URLs to a disk:
8541	//
8542	// -
8543	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk
8544	//
8545	// - projects/project/zones/zone/disks/disk
8546	// - zones/zone/disks/disk
8547	TargetDisk string `json:"targetDisk,omitempty"`
8548
8549	// ForceSendFields is a list of field names (e.g. "DestinationZone") to
8550	// unconditionally include in API requests. By default, fields with
8551	// empty values are omitted from API requests. However, any non-pointer,
8552	// non-interface field appearing in ForceSendFields will be sent to the
8553	// server regardless of whether the field is empty or not. This may be
8554	// used to include empty fields in Patch requests.
8555	ForceSendFields []string `json:"-"`
8556
8557	// NullFields is a list of field names (e.g. "DestinationZone") to
8558	// include in API requests with the JSON null value. By default, fields
8559	// with empty values are omitted from API requests. However, any field
8560	// with an empty value appearing in NullFields will be sent to the
8561	// server as null. It is an error if a field in this list has a
8562	// non-empty value. This may be used to include null fields in Patch
8563	// requests.
8564	NullFields []string `json:"-"`
8565}
8566
8567func (s *DiskMoveRequest) MarshalJSON() ([]byte, error) {
8568	type NoMethod DiskMoveRequest
8569	raw := NoMethod(*s)
8570	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8571}
8572
8573// DiskType: Represents a Disk Type resource.
8574//
8575// Google Compute Engine has two Disk Type resources:
8576//
8577// * Regional
8578// (/compute/docs/reference/rest/{$api_version}/regionDiskTypes) * Zonal
8579// (/compute/docs/reference/rest/{$api_version}/diskTypes)
8580//
8581// You can choose from a variety of disk types based on your needs. For
8582// more information, read Storage options.
8583//
8584// The diskTypes resource represents disk types for a zonal persistent
8585// disk. For more information, read Zonal persistent disks.
8586//
8587// The regionDiskTypes resource represents disk types for a regional
8588// persistent disk. For more information, read Regional persistent
8589// disks. (== resource_for {$api_version}.diskTypes ==) (== resource_for
8590// {$api_version}.regionDiskTypes ==)
8591type DiskType struct {
8592	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
8593	// format.
8594	CreationTimestamp string `json:"creationTimestamp,omitempty"`
8595
8596	// DefaultDiskSizeGb: [Output Only] Server-defined default disk size in
8597	// GB.
8598	DefaultDiskSizeGb int64 `json:"defaultDiskSizeGb,omitempty,string"`
8599
8600	// Deprecated -- [Output Only] The deprecation status associated with
8601	// this disk type.
8602	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
8603
8604	// Description: [Output Only] An optional description of this resource.
8605	Description string `json:"description,omitempty"`
8606
8607	// Id: [Output Only] The unique identifier for the resource. This
8608	// identifier is defined by the server.
8609	Id uint64 `json:"id,omitempty,string"`
8610
8611	// Kind: [Output Only] Type of the resource. Always compute#diskType for
8612	// disk types.
8613	Kind string `json:"kind,omitempty"`
8614
8615	// Name: [Output Only] Name of the resource.
8616	Name string `json:"name,omitempty"`
8617
8618	// Region: [Output Only] URL of the region where the disk type resides.
8619	// Only applicable for regional resources. You must specify this field
8620	// as part of the HTTP request URL. It is not settable as a field in the
8621	// request body.
8622	Region string `json:"region,omitempty"`
8623
8624	// SelfLink: [Output Only] Server-defined URL for the resource.
8625	SelfLink string `json:"selfLink,omitempty"`
8626
8627	// ValidDiskSize: [Output Only] An optional textual description of the
8628	// valid disk size, such as "10GB-10TB".
8629	ValidDiskSize string `json:"validDiskSize,omitempty"`
8630
8631	// Zone: [Output Only] URL of the zone where the disk type resides. You
8632	// must specify this field as part of the HTTP request URL. It is not
8633	// settable as a field in the request body.
8634	Zone string `json:"zone,omitempty"`
8635
8636	// ServerResponse contains the HTTP response code and headers from the
8637	// server.
8638	googleapi.ServerResponse `json:"-"`
8639
8640	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
8641	// to unconditionally include in API requests. By default, fields with
8642	// empty values are omitted from API requests. However, any non-pointer,
8643	// non-interface field appearing in ForceSendFields will be sent to the
8644	// server regardless of whether the field is empty or not. This may be
8645	// used to include empty fields in Patch requests.
8646	ForceSendFields []string `json:"-"`
8647
8648	// NullFields is a list of field names (e.g. "CreationTimestamp") to
8649	// include in API requests with the JSON null value. By default, fields
8650	// with empty values are omitted from API requests. However, any field
8651	// with an empty value appearing in NullFields will be sent to the
8652	// server as null. It is an error if a field in this list has a
8653	// non-empty value. This may be used to include null fields in Patch
8654	// requests.
8655	NullFields []string `json:"-"`
8656}
8657
8658func (s *DiskType) MarshalJSON() ([]byte, error) {
8659	type NoMethod DiskType
8660	raw := NoMethod(*s)
8661	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8662}
8663
8664type DiskTypeAggregatedList struct {
8665	// Id: [Output Only] Unique identifier for the resource; defined by the
8666	// server.
8667	Id string `json:"id,omitempty"`
8668
8669	// Items: A list of DiskTypesScopedList resources.
8670	Items map[string]DiskTypesScopedList `json:"items,omitempty"`
8671
8672	// Kind: [Output Only] Type of resource. Always
8673	// compute#diskTypeAggregatedList.
8674	Kind string `json:"kind,omitempty"`
8675
8676	// NextPageToken: [Output Only] This token allows you to get the next
8677	// page of results for list requests. If the number of results is larger
8678	// than maxResults, use the nextPageToken as a value for the query
8679	// parameter pageToken in the next list request. Subsequent list
8680	// requests will have their own nextPageToken to continue paging through
8681	// the results.
8682	NextPageToken string `json:"nextPageToken,omitempty"`
8683
8684	// SelfLink: [Output Only] Server-defined URL for this resource.
8685	SelfLink string `json:"selfLink,omitempty"`
8686
8687	// Unreachables: [Output Only] Unreachable resources.
8688	Unreachables []string `json:"unreachables,omitempty"`
8689
8690	// Warning: [Output Only] Informational warning message.
8691	Warning *DiskTypeAggregatedListWarning `json:"warning,omitempty"`
8692
8693	// ServerResponse contains the HTTP response code and headers from the
8694	// server.
8695	googleapi.ServerResponse `json:"-"`
8696
8697	// ForceSendFields is a list of field names (e.g. "Id") to
8698	// unconditionally include in API requests. By default, fields with
8699	// empty values are omitted from API requests. However, any non-pointer,
8700	// non-interface field appearing in ForceSendFields will be sent to the
8701	// server regardless of whether the field is empty or not. This may be
8702	// used to include empty fields in Patch requests.
8703	ForceSendFields []string `json:"-"`
8704
8705	// NullFields is a list of field names (e.g. "Id") to include in API
8706	// requests with the JSON null value. By default, fields with empty
8707	// values are omitted from API requests. However, any field with an
8708	// empty value appearing in NullFields will be sent to the server as
8709	// null. It is an error if a field in this list has a non-empty value.
8710	// This may be used to include null fields in Patch requests.
8711	NullFields []string `json:"-"`
8712}
8713
8714func (s *DiskTypeAggregatedList) MarshalJSON() ([]byte, error) {
8715	type NoMethod DiskTypeAggregatedList
8716	raw := NoMethod(*s)
8717	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8718}
8719
8720// DiskTypeAggregatedListWarning: [Output Only] Informational warning
8721// message.
8722type DiskTypeAggregatedListWarning struct {
8723	// Code: [Output Only] A warning code, if applicable. For example,
8724	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
8725	// the response.
8726	//
8727	// Possible values:
8728	//   "CLEANUP_FAILED"
8729	//   "DEPRECATED_RESOURCE_USED"
8730	//   "DEPRECATED_TYPE_USED"
8731	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
8732	//   "EXPERIMENTAL_TYPE_USED"
8733	//   "EXTERNAL_API_WARNING"
8734	//   "FIELD_VALUE_OVERRIDEN"
8735	//   "INJECTED_KERNELS_DEPRECATED"
8736	//   "LARGE_DEPLOYMENT_WARNING"
8737	//   "MISSING_TYPE_DEPENDENCY"
8738	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
8739	//   "NEXT_HOP_CANNOT_IP_FORWARD"
8740	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
8741	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
8742	//   "NEXT_HOP_NOT_RUNNING"
8743	//   "NOT_CRITICAL_ERROR"
8744	//   "NO_RESULTS_ON_PAGE"
8745	//   "PARTIAL_SUCCESS"
8746	//   "REQUIRED_TOS_AGREEMENT"
8747	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
8748	//   "RESOURCE_NOT_DELETED"
8749	//   "SCHEMA_VALIDATION_IGNORED"
8750	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
8751	//   "UNDECLARED_PROPERTIES"
8752	//   "UNREACHABLE"
8753	Code string `json:"code,omitempty"`
8754
8755	// Data: [Output Only] Metadata about this warning in key: value format.
8756	// For example:
8757	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
8758	Data []*DiskTypeAggregatedListWarningData `json:"data,omitempty"`
8759
8760	// Message: [Output Only] A human-readable description of the warning
8761	// code.
8762	Message string `json:"message,omitempty"`
8763
8764	// ForceSendFields is a list of field names (e.g. "Code") to
8765	// unconditionally include in API requests. By default, fields with
8766	// empty values are omitted from API requests. However, any non-pointer,
8767	// non-interface field appearing in ForceSendFields will be sent to the
8768	// server regardless of whether the field is empty or not. This may be
8769	// used to include empty fields in Patch requests.
8770	ForceSendFields []string `json:"-"`
8771
8772	// NullFields is a list of field names (e.g. "Code") to include in API
8773	// requests with the JSON null value. By default, fields with empty
8774	// values are omitted from API requests. However, any field with an
8775	// empty value appearing in NullFields will be sent to the server as
8776	// null. It is an error if a field in this list has a non-empty value.
8777	// This may be used to include null fields in Patch requests.
8778	NullFields []string `json:"-"`
8779}
8780
8781func (s *DiskTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
8782	type NoMethod DiskTypeAggregatedListWarning
8783	raw := NoMethod(*s)
8784	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8785}
8786
8787type DiskTypeAggregatedListWarningData struct {
8788	// Key: [Output Only] A key that provides more detail on the warning
8789	// being returned. For example, for warnings where there are no results
8790	// in a list request for a particular zone, this key might be scope and
8791	// the key value might be the zone name. Other examples might be a key
8792	// indicating a deprecated resource and a suggested replacement, or a
8793	// warning about invalid network settings (for example, if an instance
8794	// attempts to perform IP forwarding but is not enabled for IP
8795	// forwarding).
8796	Key string `json:"key,omitempty"`
8797
8798	// Value: [Output Only] A warning data value corresponding to the key.
8799	Value string `json:"value,omitempty"`
8800
8801	// ForceSendFields is a list of field names (e.g. "Key") to
8802	// unconditionally include in API requests. By default, fields with
8803	// empty values are omitted from API requests. However, any non-pointer,
8804	// non-interface field appearing in ForceSendFields will be sent to the
8805	// server regardless of whether the field is empty or not. This may be
8806	// used to include empty fields in Patch requests.
8807	ForceSendFields []string `json:"-"`
8808
8809	// NullFields is a list of field names (e.g. "Key") to include in API
8810	// requests with the JSON null value. By default, fields with empty
8811	// values are omitted from API requests. However, any field with an
8812	// empty value appearing in NullFields will be sent to the server as
8813	// null. It is an error if a field in this list has a non-empty value.
8814	// This may be used to include null fields in Patch requests.
8815	NullFields []string `json:"-"`
8816}
8817
8818func (s *DiskTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
8819	type NoMethod DiskTypeAggregatedListWarningData
8820	raw := NoMethod(*s)
8821	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8822}
8823
8824// DiskTypeList: Contains a list of disk types.
8825type DiskTypeList struct {
8826	// Id: [Output Only] Unique identifier for the resource; defined by the
8827	// server.
8828	Id string `json:"id,omitempty"`
8829
8830	// Items: A list of DiskType resources.
8831	Items []*DiskType `json:"items,omitempty"`
8832
8833	// Kind: [Output Only] Type of resource. Always compute#diskTypeList for
8834	// disk types.
8835	Kind string `json:"kind,omitempty"`
8836
8837	// NextPageToken: [Output Only] This token allows you to get the next
8838	// page of results for list requests. If the number of results is larger
8839	// than maxResults, use the nextPageToken as a value for the query
8840	// parameter pageToken in the next list request. Subsequent list
8841	// requests will have their own nextPageToken to continue paging through
8842	// the results.
8843	NextPageToken string `json:"nextPageToken,omitempty"`
8844
8845	// SelfLink: [Output Only] Server-defined URL for this resource.
8846	SelfLink string `json:"selfLink,omitempty"`
8847
8848	// Warning: [Output Only] Informational warning message.
8849	Warning *DiskTypeListWarning `json:"warning,omitempty"`
8850
8851	// ServerResponse contains the HTTP response code and headers from the
8852	// server.
8853	googleapi.ServerResponse `json:"-"`
8854
8855	// ForceSendFields is a list of field names (e.g. "Id") to
8856	// unconditionally include in API requests. By default, fields with
8857	// empty values are omitted from API requests. However, any non-pointer,
8858	// non-interface field appearing in ForceSendFields will be sent to the
8859	// server regardless of whether the field is empty or not. This may be
8860	// used to include empty fields in Patch requests.
8861	ForceSendFields []string `json:"-"`
8862
8863	// NullFields is a list of field names (e.g. "Id") to include in API
8864	// requests with the JSON null value. By default, fields with empty
8865	// values are omitted from API requests. However, any field with an
8866	// empty value appearing in NullFields will be sent to the server as
8867	// null. It is an error if a field in this list has a non-empty value.
8868	// This may be used to include null fields in Patch requests.
8869	NullFields []string `json:"-"`
8870}
8871
8872func (s *DiskTypeList) MarshalJSON() ([]byte, error) {
8873	type NoMethod DiskTypeList
8874	raw := NoMethod(*s)
8875	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8876}
8877
8878// DiskTypeListWarning: [Output Only] Informational warning message.
8879type DiskTypeListWarning struct {
8880	// Code: [Output Only] A warning code, if applicable. For example,
8881	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
8882	// the response.
8883	//
8884	// Possible values:
8885	//   "CLEANUP_FAILED"
8886	//   "DEPRECATED_RESOURCE_USED"
8887	//   "DEPRECATED_TYPE_USED"
8888	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
8889	//   "EXPERIMENTAL_TYPE_USED"
8890	//   "EXTERNAL_API_WARNING"
8891	//   "FIELD_VALUE_OVERRIDEN"
8892	//   "INJECTED_KERNELS_DEPRECATED"
8893	//   "LARGE_DEPLOYMENT_WARNING"
8894	//   "MISSING_TYPE_DEPENDENCY"
8895	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
8896	//   "NEXT_HOP_CANNOT_IP_FORWARD"
8897	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
8898	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
8899	//   "NEXT_HOP_NOT_RUNNING"
8900	//   "NOT_CRITICAL_ERROR"
8901	//   "NO_RESULTS_ON_PAGE"
8902	//   "PARTIAL_SUCCESS"
8903	//   "REQUIRED_TOS_AGREEMENT"
8904	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
8905	//   "RESOURCE_NOT_DELETED"
8906	//   "SCHEMA_VALIDATION_IGNORED"
8907	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
8908	//   "UNDECLARED_PROPERTIES"
8909	//   "UNREACHABLE"
8910	Code string `json:"code,omitempty"`
8911
8912	// Data: [Output Only] Metadata about this warning in key: value format.
8913	// For example:
8914	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
8915	Data []*DiskTypeListWarningData `json:"data,omitempty"`
8916
8917	// Message: [Output Only] A human-readable description of the warning
8918	// code.
8919	Message string `json:"message,omitempty"`
8920
8921	// ForceSendFields is a list of field names (e.g. "Code") to
8922	// unconditionally include in API requests. By default, fields with
8923	// empty values are omitted from API requests. However, any non-pointer,
8924	// non-interface field appearing in ForceSendFields will be sent to the
8925	// server regardless of whether the field is empty or not. This may be
8926	// used to include empty fields in Patch requests.
8927	ForceSendFields []string `json:"-"`
8928
8929	// NullFields is a list of field names (e.g. "Code") to include in API
8930	// requests with the JSON null value. By default, fields with empty
8931	// values are omitted from API requests. However, any field with an
8932	// empty value appearing in NullFields will be sent to the server as
8933	// null. It is an error if a field in this list has a non-empty value.
8934	// This may be used to include null fields in Patch requests.
8935	NullFields []string `json:"-"`
8936}
8937
8938func (s *DiskTypeListWarning) MarshalJSON() ([]byte, error) {
8939	type NoMethod DiskTypeListWarning
8940	raw := NoMethod(*s)
8941	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8942}
8943
8944type DiskTypeListWarningData struct {
8945	// Key: [Output Only] A key that provides more detail on the warning
8946	// being returned. For example, for warnings where there are no results
8947	// in a list request for a particular zone, this key might be scope and
8948	// the key value might be the zone name. Other examples might be a key
8949	// indicating a deprecated resource and a suggested replacement, or a
8950	// warning about invalid network settings (for example, if an instance
8951	// attempts to perform IP forwarding but is not enabled for IP
8952	// forwarding).
8953	Key string `json:"key,omitempty"`
8954
8955	// Value: [Output Only] A warning data value corresponding to the key.
8956	Value string `json:"value,omitempty"`
8957
8958	// ForceSendFields is a list of field names (e.g. "Key") to
8959	// unconditionally include in API requests. By default, fields with
8960	// empty values are omitted from API requests. However, any non-pointer,
8961	// non-interface field appearing in ForceSendFields will be sent to the
8962	// server regardless of whether the field is empty or not. This may be
8963	// used to include empty fields in Patch requests.
8964	ForceSendFields []string `json:"-"`
8965
8966	// NullFields is a list of field names (e.g. "Key") to include in API
8967	// requests with the JSON null value. By default, fields with empty
8968	// values are omitted from API requests. However, any field with an
8969	// empty value appearing in NullFields will be sent to the server as
8970	// null. It is an error if a field in this list has a non-empty value.
8971	// This may be used to include null fields in Patch requests.
8972	NullFields []string `json:"-"`
8973}
8974
8975func (s *DiskTypeListWarningData) MarshalJSON() ([]byte, error) {
8976	type NoMethod DiskTypeListWarningData
8977	raw := NoMethod(*s)
8978	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8979}
8980
8981type DiskTypesScopedList struct {
8982	// DiskTypes: [Output Only] A list of disk types contained in this
8983	// scope.
8984	DiskTypes []*DiskType `json:"diskTypes,omitempty"`
8985
8986	// Warning: [Output Only] Informational warning which replaces the list
8987	// of disk types when the list is empty.
8988	Warning *DiskTypesScopedListWarning `json:"warning,omitempty"`
8989
8990	// ForceSendFields is a list of field names (e.g. "DiskTypes") to
8991	// unconditionally include in API requests. By default, fields with
8992	// empty values are omitted from API requests. However, any non-pointer,
8993	// non-interface field appearing in ForceSendFields will be sent to the
8994	// server regardless of whether the field is empty or not. This may be
8995	// used to include empty fields in Patch requests.
8996	ForceSendFields []string `json:"-"`
8997
8998	// NullFields is a list of field names (e.g. "DiskTypes") to include in
8999	// API requests with the JSON null value. By default, fields with empty
9000	// values are omitted from API requests. However, any field with an
9001	// empty value appearing in NullFields will be sent to the server as
9002	// null. It is an error if a field in this list has a non-empty value.
9003	// This may be used to include null fields in Patch requests.
9004	NullFields []string `json:"-"`
9005}
9006
9007func (s *DiskTypesScopedList) MarshalJSON() ([]byte, error) {
9008	type NoMethod DiskTypesScopedList
9009	raw := NoMethod(*s)
9010	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9011}
9012
9013// DiskTypesScopedListWarning: [Output Only] Informational warning which
9014// replaces the list of disk types when the list is empty.
9015type DiskTypesScopedListWarning struct {
9016	// Code: [Output Only] A warning code, if applicable. For example,
9017	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
9018	// the response.
9019	//
9020	// Possible values:
9021	//   "CLEANUP_FAILED"
9022	//   "DEPRECATED_RESOURCE_USED"
9023	//   "DEPRECATED_TYPE_USED"
9024	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
9025	//   "EXPERIMENTAL_TYPE_USED"
9026	//   "EXTERNAL_API_WARNING"
9027	//   "FIELD_VALUE_OVERRIDEN"
9028	//   "INJECTED_KERNELS_DEPRECATED"
9029	//   "LARGE_DEPLOYMENT_WARNING"
9030	//   "MISSING_TYPE_DEPENDENCY"
9031	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
9032	//   "NEXT_HOP_CANNOT_IP_FORWARD"
9033	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
9034	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
9035	//   "NEXT_HOP_NOT_RUNNING"
9036	//   "NOT_CRITICAL_ERROR"
9037	//   "NO_RESULTS_ON_PAGE"
9038	//   "PARTIAL_SUCCESS"
9039	//   "REQUIRED_TOS_AGREEMENT"
9040	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
9041	//   "RESOURCE_NOT_DELETED"
9042	//   "SCHEMA_VALIDATION_IGNORED"
9043	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
9044	//   "UNDECLARED_PROPERTIES"
9045	//   "UNREACHABLE"
9046	Code string `json:"code,omitempty"`
9047
9048	// Data: [Output Only] Metadata about this warning in key: value format.
9049	// For example:
9050	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
9051	Data []*DiskTypesScopedListWarningData `json:"data,omitempty"`
9052
9053	// Message: [Output Only] A human-readable description of the warning
9054	// code.
9055	Message string `json:"message,omitempty"`
9056
9057	// ForceSendFields is a list of field names (e.g. "Code") to
9058	// unconditionally include in API requests. By default, fields with
9059	// empty values are omitted from API requests. However, any non-pointer,
9060	// non-interface field appearing in ForceSendFields will be sent to the
9061	// server regardless of whether the field is empty or not. This may be
9062	// used to include empty fields in Patch requests.
9063	ForceSendFields []string `json:"-"`
9064
9065	// NullFields is a list of field names (e.g. "Code") to include in API
9066	// requests with the JSON null value. By default, fields with empty
9067	// values are omitted from API requests. However, any field with an
9068	// empty value appearing in NullFields will be sent to the server as
9069	// null. It is an error if a field in this list has a non-empty value.
9070	// This may be used to include null fields in Patch requests.
9071	NullFields []string `json:"-"`
9072}
9073
9074func (s *DiskTypesScopedListWarning) MarshalJSON() ([]byte, error) {
9075	type NoMethod DiskTypesScopedListWarning
9076	raw := NoMethod(*s)
9077	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9078}
9079
9080type DiskTypesScopedListWarningData struct {
9081	// Key: [Output Only] A key that provides more detail on the warning
9082	// being returned. For example, for warnings where there are no results
9083	// in a list request for a particular zone, this key might be scope and
9084	// the key value might be the zone name. Other examples might be a key
9085	// indicating a deprecated resource and a suggested replacement, or a
9086	// warning about invalid network settings (for example, if an instance
9087	// attempts to perform IP forwarding but is not enabled for IP
9088	// forwarding).
9089	Key string `json:"key,omitempty"`
9090
9091	// Value: [Output Only] A warning data value corresponding to the key.
9092	Value string `json:"value,omitempty"`
9093
9094	// ForceSendFields is a list of field names (e.g. "Key") to
9095	// unconditionally include in API requests. By default, fields with
9096	// empty values are omitted from API requests. However, any non-pointer,
9097	// non-interface field appearing in ForceSendFields will be sent to the
9098	// server regardless of whether the field is empty or not. This may be
9099	// used to include empty fields in Patch requests.
9100	ForceSendFields []string `json:"-"`
9101
9102	// NullFields is a list of field names (e.g. "Key") to include in API
9103	// requests with the JSON null value. By default, fields with empty
9104	// values are omitted from API requests. However, any field with an
9105	// empty value appearing in NullFields will be sent to the server as
9106	// null. It is an error if a field in this list has a non-empty value.
9107	// This may be used to include null fields in Patch requests.
9108	NullFields []string `json:"-"`
9109}
9110
9111func (s *DiskTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
9112	type NoMethod DiskTypesScopedListWarningData
9113	raw := NoMethod(*s)
9114	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9115}
9116
9117type DisksAddResourcePoliciesRequest struct {
9118	// ResourcePolicies: Resource policies to be added to this disk.
9119	// Currently you can only specify one policy here.
9120	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
9121
9122	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
9123	// unconditionally include in API requests. By default, fields with
9124	// empty values are omitted from API requests. However, any non-pointer,
9125	// non-interface field appearing in ForceSendFields will be sent to the
9126	// server regardless of whether the field is empty or not. This may be
9127	// used to include empty fields in Patch requests.
9128	ForceSendFields []string `json:"-"`
9129
9130	// NullFields is a list of field names (e.g. "ResourcePolicies") to
9131	// include in API requests with the JSON null value. By default, fields
9132	// with empty values are omitted from API requests. However, any field
9133	// with an empty value appearing in NullFields will be sent to the
9134	// server as null. It is an error if a field in this list has a
9135	// non-empty value. This may be used to include null fields in Patch
9136	// requests.
9137	NullFields []string `json:"-"`
9138}
9139
9140func (s *DisksAddResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
9141	type NoMethod DisksAddResourcePoliciesRequest
9142	raw := NoMethod(*s)
9143	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9144}
9145
9146type DisksRemoveResourcePoliciesRequest struct {
9147	// ResourcePolicies: Resource policies to be removed from this disk.
9148	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
9149
9150	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
9151	// unconditionally include in API requests. By default, fields with
9152	// empty values are omitted from API requests. However, any non-pointer,
9153	// non-interface field appearing in ForceSendFields will be sent to the
9154	// server regardless of whether the field is empty or not. This may be
9155	// used to include empty fields in Patch requests.
9156	ForceSendFields []string `json:"-"`
9157
9158	// NullFields is a list of field names (e.g. "ResourcePolicies") to
9159	// include in API requests with the JSON null value. By default, fields
9160	// with empty values are omitted from API requests. However, any field
9161	// with an empty value appearing in NullFields will be sent to the
9162	// server as null. It is an error if a field in this list has a
9163	// non-empty value. This may be used to include null fields in Patch
9164	// requests.
9165	NullFields []string `json:"-"`
9166}
9167
9168func (s *DisksRemoveResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
9169	type NoMethod DisksRemoveResourcePoliciesRequest
9170	raw := NoMethod(*s)
9171	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9172}
9173
9174type DisksResizeRequest struct {
9175	// SizeGb: The new size of the persistent disk, which is specified in
9176	// GB.
9177	SizeGb int64 `json:"sizeGb,omitempty,string"`
9178
9179	// ForceSendFields is a list of field names (e.g. "SizeGb") to
9180	// unconditionally include in API requests. By default, fields with
9181	// empty values are omitted from API requests. However, any non-pointer,
9182	// non-interface field appearing in ForceSendFields will be sent to the
9183	// server regardless of whether the field is empty or not. This may be
9184	// used to include empty fields in Patch requests.
9185	ForceSendFields []string `json:"-"`
9186
9187	// NullFields is a list of field names (e.g. "SizeGb") to include in API
9188	// requests with the JSON null value. By default, fields with empty
9189	// values are omitted from API requests. However, any field with an
9190	// empty value appearing in NullFields will be sent to the server as
9191	// null. It is an error if a field in this list has a non-empty value.
9192	// This may be used to include null fields in Patch requests.
9193	NullFields []string `json:"-"`
9194}
9195
9196func (s *DisksResizeRequest) MarshalJSON() ([]byte, error) {
9197	type NoMethod DisksResizeRequest
9198	raw := NoMethod(*s)
9199	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9200}
9201
9202type DisksScopedList struct {
9203	// Disks: [Output Only] A list of disks contained in this scope.
9204	Disks []*Disk `json:"disks,omitempty"`
9205
9206	// Warning: [Output Only] Informational warning which replaces the list
9207	// of disks when the list is empty.
9208	Warning *DisksScopedListWarning `json:"warning,omitempty"`
9209
9210	// ForceSendFields is a list of field names (e.g. "Disks") to
9211	// unconditionally include in API requests. By default, fields with
9212	// empty values are omitted from API requests. However, any non-pointer,
9213	// non-interface field appearing in ForceSendFields will be sent to the
9214	// server regardless of whether the field is empty or not. This may be
9215	// used to include empty fields in Patch requests.
9216	ForceSendFields []string `json:"-"`
9217
9218	// NullFields is a list of field names (e.g. "Disks") to include in API
9219	// requests with the JSON null value. By default, fields with empty
9220	// values are omitted from API requests. However, any field with an
9221	// empty value appearing in NullFields will be sent to the server as
9222	// null. It is an error if a field in this list has a non-empty value.
9223	// This may be used to include null fields in Patch requests.
9224	NullFields []string `json:"-"`
9225}
9226
9227func (s *DisksScopedList) MarshalJSON() ([]byte, error) {
9228	type NoMethod DisksScopedList
9229	raw := NoMethod(*s)
9230	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9231}
9232
9233// DisksScopedListWarning: [Output Only] Informational warning which
9234// replaces the list of disks when the list is empty.
9235type DisksScopedListWarning struct {
9236	// Code: [Output Only] A warning code, if applicable. For example,
9237	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
9238	// the response.
9239	//
9240	// Possible values:
9241	//   "CLEANUP_FAILED"
9242	//   "DEPRECATED_RESOURCE_USED"
9243	//   "DEPRECATED_TYPE_USED"
9244	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
9245	//   "EXPERIMENTAL_TYPE_USED"
9246	//   "EXTERNAL_API_WARNING"
9247	//   "FIELD_VALUE_OVERRIDEN"
9248	//   "INJECTED_KERNELS_DEPRECATED"
9249	//   "LARGE_DEPLOYMENT_WARNING"
9250	//   "MISSING_TYPE_DEPENDENCY"
9251	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
9252	//   "NEXT_HOP_CANNOT_IP_FORWARD"
9253	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
9254	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
9255	//   "NEXT_HOP_NOT_RUNNING"
9256	//   "NOT_CRITICAL_ERROR"
9257	//   "NO_RESULTS_ON_PAGE"
9258	//   "PARTIAL_SUCCESS"
9259	//   "REQUIRED_TOS_AGREEMENT"
9260	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
9261	//   "RESOURCE_NOT_DELETED"
9262	//   "SCHEMA_VALIDATION_IGNORED"
9263	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
9264	//   "UNDECLARED_PROPERTIES"
9265	//   "UNREACHABLE"
9266	Code string `json:"code,omitempty"`
9267
9268	// Data: [Output Only] Metadata about this warning in key: value format.
9269	// For example:
9270	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
9271	Data []*DisksScopedListWarningData `json:"data,omitempty"`
9272
9273	// Message: [Output Only] A human-readable description of the warning
9274	// code.
9275	Message string `json:"message,omitempty"`
9276
9277	// ForceSendFields is a list of field names (e.g. "Code") to
9278	// unconditionally include in API requests. By default, fields with
9279	// empty values are omitted from API requests. However, any non-pointer,
9280	// non-interface field appearing in ForceSendFields will be sent to the
9281	// server regardless of whether the field is empty or not. This may be
9282	// used to include empty fields in Patch requests.
9283	ForceSendFields []string `json:"-"`
9284
9285	// NullFields is a list of field names (e.g. "Code") to include in API
9286	// requests with the JSON null value. By default, fields with empty
9287	// values are omitted from API requests. However, any field with an
9288	// empty value appearing in NullFields will be sent to the server as
9289	// null. It is an error if a field in this list has a non-empty value.
9290	// This may be used to include null fields in Patch requests.
9291	NullFields []string `json:"-"`
9292}
9293
9294func (s *DisksScopedListWarning) MarshalJSON() ([]byte, error) {
9295	type NoMethod DisksScopedListWarning
9296	raw := NoMethod(*s)
9297	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9298}
9299
9300type DisksScopedListWarningData struct {
9301	// Key: [Output Only] A key that provides more detail on the warning
9302	// being returned. For example, for warnings where there are no results
9303	// in a list request for a particular zone, this key might be scope and
9304	// the key value might be the zone name. Other examples might be a key
9305	// indicating a deprecated resource and a suggested replacement, or a
9306	// warning about invalid network settings (for example, if an instance
9307	// attempts to perform IP forwarding but is not enabled for IP
9308	// forwarding).
9309	Key string `json:"key,omitempty"`
9310
9311	// Value: [Output Only] A warning data value corresponding to the key.
9312	Value string `json:"value,omitempty"`
9313
9314	// ForceSendFields is a list of field names (e.g. "Key") to
9315	// unconditionally include in API requests. By default, fields with
9316	// empty values are omitted from API requests. However, any non-pointer,
9317	// non-interface field appearing in ForceSendFields will be sent to the
9318	// server regardless of whether the field is empty or not. This may be
9319	// used to include empty fields in Patch requests.
9320	ForceSendFields []string `json:"-"`
9321
9322	// NullFields is a list of field names (e.g. "Key") to include in API
9323	// requests with the JSON null value. By default, fields with empty
9324	// values are omitted from API requests. However, any field with an
9325	// empty value appearing in NullFields will be sent to the server as
9326	// null. It is an error if a field in this list has a non-empty value.
9327	// This may be used to include null fields in Patch requests.
9328	NullFields []string `json:"-"`
9329}
9330
9331func (s *DisksScopedListWarningData) MarshalJSON() ([]byte, error) {
9332	type NoMethod DisksScopedListWarningData
9333	raw := NoMethod(*s)
9334	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9335}
9336
9337// DisplayDevice: A set of Display Device options
9338type DisplayDevice struct {
9339	// EnableDisplay: Defines whether the instance has Display enabled.
9340	EnableDisplay bool `json:"enableDisplay,omitempty"`
9341
9342	// ForceSendFields is a list of field names (e.g. "EnableDisplay") to
9343	// unconditionally include in API requests. By default, fields with
9344	// empty values are omitted from API requests. However, any non-pointer,
9345	// non-interface field appearing in ForceSendFields will be sent to the
9346	// server regardless of whether the field is empty or not. This may be
9347	// used to include empty fields in Patch requests.
9348	ForceSendFields []string `json:"-"`
9349
9350	// NullFields is a list of field names (e.g. "EnableDisplay") to include
9351	// in API requests with the JSON null value. By default, fields with
9352	// empty values are omitted from API requests. However, any field with
9353	// an empty value appearing in NullFields will be sent to the server as
9354	// null. It is an error if a field in this list has a non-empty value.
9355	// This may be used to include null fields in Patch requests.
9356	NullFields []string `json:"-"`
9357}
9358
9359func (s *DisplayDevice) MarshalJSON() ([]byte, error) {
9360	type NoMethod DisplayDevice
9361	raw := NoMethod(*s)
9362	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9363}
9364
9365type DistributionPolicy struct {
9366	// TargetShape: The distribution shape to which the group converges
9367	// either proactively or on resize events (depending on the value set in
9368	// updatePolicy.instanceRedistributionType).
9369	//
9370	// Possible values:
9371	//   "ANY"
9372	//   "BALANCED"
9373	//   "EVEN"
9374	TargetShape string `json:"targetShape,omitempty"`
9375
9376	// Zones: Zones where the regional managed instance group will create
9377	// and manage its instances.
9378	Zones []*DistributionPolicyZoneConfiguration `json:"zones,omitempty"`
9379
9380	// ForceSendFields is a list of field names (e.g. "TargetShape") to
9381	// unconditionally include in API requests. By default, fields with
9382	// empty values are omitted from API requests. However, any non-pointer,
9383	// non-interface field appearing in ForceSendFields will be sent to the
9384	// server regardless of whether the field is empty or not. This may be
9385	// used to include empty fields in Patch requests.
9386	ForceSendFields []string `json:"-"`
9387
9388	// NullFields is a list of field names (e.g. "TargetShape") to include
9389	// in API requests with the JSON null value. By default, fields with
9390	// empty values are omitted from API requests. However, any field with
9391	// an empty value appearing in NullFields will be sent to the server as
9392	// null. It is an error if a field in this list has a non-empty value.
9393	// This may be used to include null fields in Patch requests.
9394	NullFields []string `json:"-"`
9395}
9396
9397func (s *DistributionPolicy) MarshalJSON() ([]byte, error) {
9398	type NoMethod DistributionPolicy
9399	raw := NoMethod(*s)
9400	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9401}
9402
9403type DistributionPolicyZoneConfiguration struct {
9404	// Zone: The URL of the zone. The zone must exist in the region where
9405	// the managed instance group is located.
9406	Zone string `json:"zone,omitempty"`
9407
9408	// ForceSendFields is a list of field names (e.g. "Zone") to
9409	// unconditionally include in API requests. By default, fields with
9410	// empty values are omitted from API requests. However, any non-pointer,
9411	// non-interface field appearing in ForceSendFields will be sent to the
9412	// server regardless of whether the field is empty or not. This may be
9413	// used to include empty fields in Patch requests.
9414	ForceSendFields []string `json:"-"`
9415
9416	// NullFields is a list of field names (e.g. "Zone") to include in API
9417	// requests with the JSON null value. By default, fields with empty
9418	// values are omitted from API requests. However, any field with an
9419	// empty value appearing in NullFields will be sent to the server as
9420	// null. It is an error if a field in this list has a non-empty value.
9421	// This may be used to include null fields in Patch requests.
9422	NullFields []string `json:"-"`
9423}
9424
9425func (s *DistributionPolicyZoneConfiguration) MarshalJSON() ([]byte, error) {
9426	type NoMethod DistributionPolicyZoneConfiguration
9427	raw := NoMethod(*s)
9428	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9429}
9430
9431// Duration: A Duration represents a fixed-length span of time
9432// represented as a count of seconds and fractions of seconds at
9433// nanosecond resolution. It is independent of any calendar and concepts
9434// like "day" or "month". Range is approximately 10,000 years.
9435type Duration struct {
9436	// Nanos: Span of time that's a fraction of a second at nanosecond
9437	// resolution. Durations less than one second are represented with a 0
9438	// `seconds` field and a positive `nanos` field. Must be from 0 to
9439	// 999,999,999 inclusive.
9440	Nanos int64 `json:"nanos,omitempty"`
9441
9442	// Seconds: Span of time at a resolution of a second. Must be from 0 to
9443	// 315,576,000,000 inclusive. Note: these bounds are computed from: 60
9444	// sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
9445	Seconds int64 `json:"seconds,omitempty,string"`
9446
9447	// ForceSendFields is a list of field names (e.g. "Nanos") to
9448	// unconditionally include in API requests. By default, fields with
9449	// empty values are omitted from API requests. However, any non-pointer,
9450	// non-interface field appearing in ForceSendFields will be sent to the
9451	// server regardless of whether the field is empty or not. This may be
9452	// used to include empty fields in Patch requests.
9453	ForceSendFields []string `json:"-"`
9454
9455	// NullFields is a list of field names (e.g. "Nanos") to include in API
9456	// requests with the JSON null value. By default, fields with empty
9457	// values are omitted from API requests. However, any field with an
9458	// empty value appearing in NullFields will be sent to the server as
9459	// null. It is an error if a field in this list has a non-empty value.
9460	// This may be used to include null fields in Patch requests.
9461	NullFields []string `json:"-"`
9462}
9463
9464func (s *Duration) MarshalJSON() ([]byte, error) {
9465	type NoMethod Duration
9466	raw := NoMethod(*s)
9467	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9468}
9469
9470type ExchangedPeeringRoute struct {
9471	// DestRange: The destination range of the route.
9472	DestRange string `json:"destRange,omitempty"`
9473
9474	// Imported: True if the peering route has been imported from a peer.
9475	// The actual import happens if the field
9476	// networkPeering.importCustomRoutes is true for this network, and
9477	// networkPeering.exportCustomRoutes is true for the peer network, and
9478	// the import does not result in a route conflict.
9479	Imported bool `json:"imported,omitempty"`
9480
9481	// NextHopRegion: The region of peering route next hop, only applies to
9482	// dynamic routes.
9483	NextHopRegion string `json:"nextHopRegion,omitempty"`
9484
9485	// Priority: The priority of the peering route.
9486	Priority int64 `json:"priority,omitempty"`
9487
9488	// Type: The type of the peering route.
9489	//
9490	// Possible values:
9491	//   "DYNAMIC_PEERING_ROUTE"
9492	//   "STATIC_PEERING_ROUTE"
9493	//   "SUBNET_PEERING_ROUTE"
9494	Type string `json:"type,omitempty"`
9495
9496	// ForceSendFields is a list of field names (e.g. "DestRange") to
9497	// unconditionally include in API requests. By default, fields with
9498	// empty values are omitted from API requests. However, any non-pointer,
9499	// non-interface field appearing in ForceSendFields will be sent to the
9500	// server regardless of whether the field is empty or not. This may be
9501	// used to include empty fields in Patch requests.
9502	ForceSendFields []string `json:"-"`
9503
9504	// NullFields is a list of field names (e.g. "DestRange") to include in
9505	// API requests with the JSON null value. By default, fields with empty
9506	// values are omitted from API requests. However, any field with an
9507	// empty value appearing in NullFields will be sent to the server as
9508	// null. It is an error if a field in this list has a non-empty value.
9509	// This may be used to include null fields in Patch requests.
9510	NullFields []string `json:"-"`
9511}
9512
9513func (s *ExchangedPeeringRoute) MarshalJSON() ([]byte, error) {
9514	type NoMethod ExchangedPeeringRoute
9515	raw := NoMethod(*s)
9516	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9517}
9518
9519type ExchangedPeeringRoutesList struct {
9520	// Id: [Output Only] Unique identifier for the resource; defined by the
9521	// server.
9522	Id string `json:"id,omitempty"`
9523
9524	// Items: A list of ExchangedPeeringRoute resources.
9525	Items []*ExchangedPeeringRoute `json:"items,omitempty"`
9526
9527	// Kind: [Output Only] Type of resource. Always
9528	// compute#exchangedPeeringRoutesList for exchanged peering routes
9529	// lists.
9530	Kind string `json:"kind,omitempty"`
9531
9532	// NextPageToken: [Output Only] This token allows you to get the next
9533	// page of results for list requests. If the number of results is larger
9534	// than maxResults, use the nextPageToken as a value for the query
9535	// parameter pageToken in the next list request. Subsequent list
9536	// requests will have their own nextPageToken to continue paging through
9537	// the results.
9538	NextPageToken string `json:"nextPageToken,omitempty"`
9539
9540	// SelfLink: [Output Only] Server-defined URL for this resource.
9541	SelfLink string `json:"selfLink,omitempty"`
9542
9543	// Warning: [Output Only] Informational warning message.
9544	Warning *ExchangedPeeringRoutesListWarning `json:"warning,omitempty"`
9545
9546	// ServerResponse contains the HTTP response code and headers from the
9547	// server.
9548	googleapi.ServerResponse `json:"-"`
9549
9550	// ForceSendFields is a list of field names (e.g. "Id") to
9551	// unconditionally include in API requests. By default, fields with
9552	// empty values are omitted from API requests. However, any non-pointer,
9553	// non-interface field appearing in ForceSendFields will be sent to the
9554	// server regardless of whether the field is empty or not. This may be
9555	// used to include empty fields in Patch requests.
9556	ForceSendFields []string `json:"-"`
9557
9558	// NullFields is a list of field names (e.g. "Id") to include in API
9559	// requests with the JSON null value. By default, fields with empty
9560	// values are omitted from API requests. However, any field with an
9561	// empty value appearing in NullFields will be sent to the server as
9562	// null. It is an error if a field in this list has a non-empty value.
9563	// This may be used to include null fields in Patch requests.
9564	NullFields []string `json:"-"`
9565}
9566
9567func (s *ExchangedPeeringRoutesList) MarshalJSON() ([]byte, error) {
9568	type NoMethod ExchangedPeeringRoutesList
9569	raw := NoMethod(*s)
9570	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9571}
9572
9573// ExchangedPeeringRoutesListWarning: [Output Only] Informational
9574// warning message.
9575type ExchangedPeeringRoutesListWarning struct {
9576	// Code: [Output Only] A warning code, if applicable. For example,
9577	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
9578	// the response.
9579	//
9580	// Possible values:
9581	//   "CLEANUP_FAILED"
9582	//   "DEPRECATED_RESOURCE_USED"
9583	//   "DEPRECATED_TYPE_USED"
9584	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
9585	//   "EXPERIMENTAL_TYPE_USED"
9586	//   "EXTERNAL_API_WARNING"
9587	//   "FIELD_VALUE_OVERRIDEN"
9588	//   "INJECTED_KERNELS_DEPRECATED"
9589	//   "LARGE_DEPLOYMENT_WARNING"
9590	//   "MISSING_TYPE_DEPENDENCY"
9591	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
9592	//   "NEXT_HOP_CANNOT_IP_FORWARD"
9593	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
9594	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
9595	//   "NEXT_HOP_NOT_RUNNING"
9596	//   "NOT_CRITICAL_ERROR"
9597	//   "NO_RESULTS_ON_PAGE"
9598	//   "PARTIAL_SUCCESS"
9599	//   "REQUIRED_TOS_AGREEMENT"
9600	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
9601	//   "RESOURCE_NOT_DELETED"
9602	//   "SCHEMA_VALIDATION_IGNORED"
9603	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
9604	//   "UNDECLARED_PROPERTIES"
9605	//   "UNREACHABLE"
9606	Code string `json:"code,omitempty"`
9607
9608	// Data: [Output Only] Metadata about this warning in key: value format.
9609	// For example:
9610	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
9611	Data []*ExchangedPeeringRoutesListWarningData `json:"data,omitempty"`
9612
9613	// Message: [Output Only] A human-readable description of the warning
9614	// code.
9615	Message string `json:"message,omitempty"`
9616
9617	// ForceSendFields is a list of field names (e.g. "Code") to
9618	// unconditionally include in API requests. By default, fields with
9619	// empty values are omitted from API requests. However, any non-pointer,
9620	// non-interface field appearing in ForceSendFields will be sent to the
9621	// server regardless of whether the field is empty or not. This may be
9622	// used to include empty fields in Patch requests.
9623	ForceSendFields []string `json:"-"`
9624
9625	// NullFields is a list of field names (e.g. "Code") to include in API
9626	// requests with the JSON null value. By default, fields with empty
9627	// values are omitted from API requests. However, any field with an
9628	// empty value appearing in NullFields will be sent to the server as
9629	// null. It is an error if a field in this list has a non-empty value.
9630	// This may be used to include null fields in Patch requests.
9631	NullFields []string `json:"-"`
9632}
9633
9634func (s *ExchangedPeeringRoutesListWarning) MarshalJSON() ([]byte, error) {
9635	type NoMethod ExchangedPeeringRoutesListWarning
9636	raw := NoMethod(*s)
9637	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9638}
9639
9640type ExchangedPeeringRoutesListWarningData struct {
9641	// Key: [Output Only] A key that provides more detail on the warning
9642	// being returned. For example, for warnings where there are no results
9643	// in a list request for a particular zone, this key might be scope and
9644	// the key value might be the zone name. Other examples might be a key
9645	// indicating a deprecated resource and a suggested replacement, or a
9646	// warning about invalid network settings (for example, if an instance
9647	// attempts to perform IP forwarding but is not enabled for IP
9648	// forwarding).
9649	Key string `json:"key,omitempty"`
9650
9651	// Value: [Output Only] A warning data value corresponding to the key.
9652	Value string `json:"value,omitempty"`
9653
9654	// ForceSendFields is a list of field names (e.g. "Key") to
9655	// unconditionally include in API requests. By default, fields with
9656	// empty values are omitted from API requests. However, any non-pointer,
9657	// non-interface field appearing in ForceSendFields will be sent to the
9658	// server regardless of whether the field is empty or not. This may be
9659	// used to include empty fields in Patch requests.
9660	ForceSendFields []string `json:"-"`
9661
9662	// NullFields is a list of field names (e.g. "Key") to include in API
9663	// requests with the JSON null value. By default, fields with empty
9664	// values are omitted from API requests. However, any field with an
9665	// empty value appearing in NullFields will be sent to the server as
9666	// null. It is an error if a field in this list has a non-empty value.
9667	// This may be used to include null fields in Patch requests.
9668	NullFields []string `json:"-"`
9669}
9670
9671func (s *ExchangedPeeringRoutesListWarningData) MarshalJSON() ([]byte, error) {
9672	type NoMethod ExchangedPeeringRoutesListWarningData
9673	raw := NoMethod(*s)
9674	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9675}
9676
9677// Expr: Represents a textual expression in the Common Expression
9678// Language (CEL) syntax. CEL is a C-like expression language. The
9679// syntax and semantics of CEL are documented at
9680// https://github.com/google/cel-spec.
9681//
9682// Example (Comparison):
9683//
9684// title: "Summary size limit" description: "Determines if a summary is
9685// less than 100 chars" expression: "document.summary.size() <
9686// 100"
9687//
9688// Example (Equality):
9689//
9690// title: "Requestor is owner" description: "Determines if requestor is
9691// the document owner" expression: "document.owner ==
9692// request.auth.claims.email"
9693//
9694// Example (Logic):
9695//
9696// title: "Public documents" description: "Determine whether the
9697// document should be publicly visible" expression: "document.type !=
9698// 'private' && document.type != 'internal'"
9699//
9700// Example (Data Manipulation):
9701//
9702// title: "Notification string" description: "Create a notification
9703// string with a timestamp." expression: "'New message received at ' +
9704// string(document.create_time)"
9705//
9706// The exact variables and functions that may be referenced within an
9707// expression are determined by the service that evaluates it. See the
9708// service documentation for additional information.
9709type Expr struct {
9710	// Description: Optional. Description of the expression. This is a
9711	// longer text which describes the expression, e.g. when hovered over it
9712	// in a UI.
9713	Description string `json:"description,omitempty"`
9714
9715	// Expression: Textual representation of an expression in Common
9716	// Expression Language syntax.
9717	Expression string `json:"expression,omitempty"`
9718
9719	// Location: Optional. String indicating the location of the expression
9720	// for error reporting, e.g. a file name and a position in the file.
9721	Location string `json:"location,omitempty"`
9722
9723	// Title: Optional. Title for the expression, i.e. a short string
9724	// describing its purpose. This can be used e.g. in UIs which allow to
9725	// enter the expression.
9726	Title string `json:"title,omitempty"`
9727
9728	// ForceSendFields is a list of field names (e.g. "Description") to
9729	// unconditionally include in API requests. By default, fields with
9730	// empty values are omitted from API requests. However, any non-pointer,
9731	// non-interface field appearing in ForceSendFields will be sent to the
9732	// server regardless of whether the field is empty or not. This may be
9733	// used to include empty fields in Patch requests.
9734	ForceSendFields []string `json:"-"`
9735
9736	// NullFields is a list of field names (e.g. "Description") to include
9737	// in API requests with the JSON null value. By default, fields with
9738	// empty values are omitted from API requests. However, any field with
9739	// an empty value appearing in NullFields will be sent to the server as
9740	// null. It is an error if a field in this list has a non-empty value.
9741	// This may be used to include null fields in Patch requests.
9742	NullFields []string `json:"-"`
9743}
9744
9745func (s *Expr) MarshalJSON() ([]byte, error) {
9746	type NoMethod Expr
9747	raw := NoMethod(*s)
9748	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9749}
9750
9751// ExternalVpnGateway: Represents an external VPN gateway.
9752//
9753// External VPN gateway is the on-premises VPN gateway(s) or another
9754// cloud provider's VPN gateway that connects to your Google Cloud VPN
9755// gateway.
9756//
9757// To create a highly available VPN from Google Cloud Platform to your
9758// VPN gateway or another cloud provider's VPN gateway, you must create
9759// a external VPN gateway resource with information about the other
9760// gateway.
9761//
9762// For more information about using external VPN gateways, see  Creating
9763// an HA VPN gateway and tunnel pair to a peer VPN. (== resource_for
9764// {$api_version}.externalVpnGateways ==)
9765type ExternalVpnGateway struct {
9766	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
9767	// format.
9768	CreationTimestamp string `json:"creationTimestamp,omitempty"`
9769
9770	// Description: An optional description of this resource. Provide this
9771	// property when you create the resource.
9772	Description string `json:"description,omitempty"`
9773
9774	// Id: [Output Only] The unique identifier for the resource. This
9775	// identifier is defined by the server.
9776	Id *uint64 `json:"id,omitempty,string"`
9777
9778	// Interfaces: List of interfaces for this external VPN gateway.
9779	Interfaces []*ExternalVpnGatewayInterface `json:"interfaces,omitempty"`
9780
9781	// Kind: [Output Only] Type of the resource. Always
9782	// compute#externalVpnGateway for externalVpnGateways.
9783	Kind string `json:"kind,omitempty"`
9784
9785	// LabelFingerprint: A fingerprint for the labels being applied to this
9786	// ExternalVpnGateway, which is essentially a hash of the labels set
9787	// used for optimistic locking. The fingerprint is initially generated
9788	// by Compute Engine and changes after every request to modify or update
9789	// labels. You must always provide an up-to-date fingerprint hash in
9790	// order to update or change labels, otherwise the request will fail
9791	// with error 412 conditionNotMet.
9792	//
9793	// To see the latest fingerprint, make a get() request to retrieve an
9794	// ExternalVpnGateway.
9795	LabelFingerprint string `json:"labelFingerprint,omitempty"`
9796
9797	// Labels: Labels for this resource. These can only be added or modified
9798	// by the setLabels method. Each label key/value pair must comply with
9799	// RFC1035. Label values may be empty.
9800	Labels map[string]string `json:"labels,omitempty"`
9801
9802	// Name: Name of the resource. Provided by the client when the resource
9803	// is created. The name must be 1-63 characters long, and comply with
9804	// RFC1035. Specifically, the name must be 1-63 characters long and
9805	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
9806	// the first character must be a lowercase letter, and all following
9807	// characters must be a dash, lowercase letter, or digit, except the
9808	// last character, which cannot be a dash.
9809	Name string `json:"name,omitempty"`
9810
9811	// RedundancyType: Indicates the user-supplied redundancy type of this
9812	// external VPN gateway.
9813	//
9814	// Possible values:
9815	//   "FOUR_IPS_REDUNDANCY"
9816	//   "SINGLE_IP_INTERNALLY_REDUNDANT"
9817	//   "TWO_IPS_REDUNDANCY"
9818	RedundancyType string `json:"redundancyType,omitempty"`
9819
9820	// SelfLink: [Output Only] Server-defined URL for the resource.
9821	SelfLink string `json:"selfLink,omitempty"`
9822
9823	// ServerResponse contains the HTTP response code and headers from the
9824	// server.
9825	googleapi.ServerResponse `json:"-"`
9826
9827	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
9828	// to unconditionally include in API requests. By default, fields with
9829	// empty values are omitted from API requests. However, any non-pointer,
9830	// non-interface field appearing in ForceSendFields will be sent to the
9831	// server regardless of whether the field is empty or not. This may be
9832	// used to include empty fields in Patch requests.
9833	ForceSendFields []string `json:"-"`
9834
9835	// NullFields is a list of field names (e.g. "CreationTimestamp") to
9836	// include in API requests with the JSON null value. By default, fields
9837	// with empty values are omitted from API requests. However, any field
9838	// with an empty value appearing in NullFields will be sent to the
9839	// server as null. It is an error if a field in this list has a
9840	// non-empty value. This may be used to include null fields in Patch
9841	// requests.
9842	NullFields []string `json:"-"`
9843}
9844
9845func (s *ExternalVpnGateway) MarshalJSON() ([]byte, error) {
9846	type NoMethod ExternalVpnGateway
9847	raw := NoMethod(*s)
9848	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9849}
9850
9851// ExternalVpnGatewayInterface: The interface for the external VPN
9852// gateway.
9853type ExternalVpnGatewayInterface struct {
9854	// Id: The numeric ID of this interface. The allowed input values for
9855	// this id for different redundancy types of external VPN gateway:
9856	// SINGLE_IP_INTERNALLY_REDUNDANT - 0 TWO_IPS_REDUNDANCY - 0, 1
9857	// FOUR_IPS_REDUNDANCY - 0, 1, 2, 3
9858	Id int64 `json:"id,omitempty"`
9859
9860	// IpAddress: IP address of the interface in the external VPN gateway.
9861	// Only IPv4 is supported. This IP address can be either from your
9862	// on-premise gateway or another Cloud provider's VPN gateway, it cannot
9863	// be an IP address from Google Compute Engine.
9864	IpAddress string `json:"ipAddress,omitempty"`
9865
9866	// ForceSendFields is a list of field names (e.g. "Id") to
9867	// unconditionally include in API requests. By default, fields with
9868	// empty values are omitted from API requests. However, any non-pointer,
9869	// non-interface field appearing in ForceSendFields will be sent to the
9870	// server regardless of whether the field is empty or not. This may be
9871	// used to include empty fields in Patch requests.
9872	ForceSendFields []string `json:"-"`
9873
9874	// NullFields is a list of field names (e.g. "Id") to include in API
9875	// requests with the JSON null value. By default, fields with empty
9876	// values are omitted from API requests. However, any field with an
9877	// empty value appearing in NullFields will be sent to the server as
9878	// null. It is an error if a field in this list has a non-empty value.
9879	// This may be used to include null fields in Patch requests.
9880	NullFields []string `json:"-"`
9881}
9882
9883func (s *ExternalVpnGatewayInterface) MarshalJSON() ([]byte, error) {
9884	type NoMethod ExternalVpnGatewayInterface
9885	raw := NoMethod(*s)
9886	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9887}
9888
9889// ExternalVpnGatewayList: Response to the list request, and contains a
9890// list of externalVpnGateways.
9891type ExternalVpnGatewayList struct {
9892	Etag string `json:"etag,omitempty"`
9893
9894	// Id: [Output Only] Unique identifier for the resource; defined by the
9895	// server.
9896	Id string `json:"id,omitempty"`
9897
9898	// Items: A list of ExternalVpnGateway resources.
9899	Items []*ExternalVpnGateway `json:"items,omitempty"`
9900
9901	// Kind: [Output Only] Type of resource. Always
9902	// compute#externalVpnGatewayList  for lists of externalVpnGateways.
9903	Kind string `json:"kind,omitempty"`
9904
9905	// NextPageToken: [Output Only] This token allows you to get the next
9906	// page of results for list requests. If the number of results is larger
9907	// than maxResults, use the nextPageToken as a value for the query
9908	// parameter pageToken in the next list request. Subsequent list
9909	// requests will have their own nextPageToken to continue paging through
9910	// the results.
9911	NextPageToken string `json:"nextPageToken,omitempty"`
9912
9913	// SelfLink: [Output Only] Server-defined URL for this resource.
9914	SelfLink string `json:"selfLink,omitempty"`
9915
9916	// Warning: [Output Only] Informational warning message.
9917	Warning *ExternalVpnGatewayListWarning `json:"warning,omitempty"`
9918
9919	// ServerResponse contains the HTTP response code and headers from the
9920	// server.
9921	googleapi.ServerResponse `json:"-"`
9922
9923	// ForceSendFields is a list of field names (e.g. "Etag") to
9924	// unconditionally include in API requests. By default, fields with
9925	// empty values are omitted from API requests. However, any non-pointer,
9926	// non-interface field appearing in ForceSendFields will be sent to the
9927	// server regardless of whether the field is empty or not. This may be
9928	// used to include empty fields in Patch requests.
9929	ForceSendFields []string `json:"-"`
9930
9931	// NullFields is a list of field names (e.g. "Etag") to include in API
9932	// requests with the JSON null value. By default, fields with empty
9933	// values are omitted from API requests. However, any field with an
9934	// empty value appearing in NullFields will be sent to the server as
9935	// null. It is an error if a field in this list has a non-empty value.
9936	// This may be used to include null fields in Patch requests.
9937	NullFields []string `json:"-"`
9938}
9939
9940func (s *ExternalVpnGatewayList) MarshalJSON() ([]byte, error) {
9941	type NoMethod ExternalVpnGatewayList
9942	raw := NoMethod(*s)
9943	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9944}
9945
9946// ExternalVpnGatewayListWarning: [Output Only] Informational warning
9947// message.
9948type ExternalVpnGatewayListWarning struct {
9949	// Code: [Output Only] A warning code, if applicable. For example,
9950	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
9951	// the response.
9952	//
9953	// Possible values:
9954	//   "CLEANUP_FAILED"
9955	//   "DEPRECATED_RESOURCE_USED"
9956	//   "DEPRECATED_TYPE_USED"
9957	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
9958	//   "EXPERIMENTAL_TYPE_USED"
9959	//   "EXTERNAL_API_WARNING"
9960	//   "FIELD_VALUE_OVERRIDEN"
9961	//   "INJECTED_KERNELS_DEPRECATED"
9962	//   "LARGE_DEPLOYMENT_WARNING"
9963	//   "MISSING_TYPE_DEPENDENCY"
9964	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
9965	//   "NEXT_HOP_CANNOT_IP_FORWARD"
9966	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
9967	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
9968	//   "NEXT_HOP_NOT_RUNNING"
9969	//   "NOT_CRITICAL_ERROR"
9970	//   "NO_RESULTS_ON_PAGE"
9971	//   "PARTIAL_SUCCESS"
9972	//   "REQUIRED_TOS_AGREEMENT"
9973	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
9974	//   "RESOURCE_NOT_DELETED"
9975	//   "SCHEMA_VALIDATION_IGNORED"
9976	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
9977	//   "UNDECLARED_PROPERTIES"
9978	//   "UNREACHABLE"
9979	Code string `json:"code,omitempty"`
9980
9981	// Data: [Output Only] Metadata about this warning in key: value format.
9982	// For example:
9983	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
9984	Data []*ExternalVpnGatewayListWarningData `json:"data,omitempty"`
9985
9986	// Message: [Output Only] A human-readable description of the warning
9987	// code.
9988	Message string `json:"message,omitempty"`
9989
9990	// ForceSendFields is a list of field names (e.g. "Code") to
9991	// unconditionally include in API requests. By default, fields with
9992	// empty values are omitted from API requests. However, any non-pointer,
9993	// non-interface field appearing in ForceSendFields will be sent to the
9994	// server regardless of whether the field is empty or not. This may be
9995	// used to include empty fields in Patch requests.
9996	ForceSendFields []string `json:"-"`
9997
9998	// NullFields is a list of field names (e.g. "Code") to include in API
9999	// requests with the JSON null value. By default, fields with empty
10000	// values are omitted from API requests. However, any field with an
10001	// empty value appearing in NullFields will be sent to the server as
10002	// null. It is an error if a field in this list has a non-empty value.
10003	// This may be used to include null fields in Patch requests.
10004	NullFields []string `json:"-"`
10005}
10006
10007func (s *ExternalVpnGatewayListWarning) MarshalJSON() ([]byte, error) {
10008	type NoMethod ExternalVpnGatewayListWarning
10009	raw := NoMethod(*s)
10010	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10011}
10012
10013type ExternalVpnGatewayListWarningData struct {
10014	// Key: [Output Only] A key that provides more detail on the warning
10015	// being returned. For example, for warnings where there are no results
10016	// in a list request for a particular zone, this key might be scope and
10017	// the key value might be the zone name. Other examples might be a key
10018	// indicating a deprecated resource and a suggested replacement, or a
10019	// warning about invalid network settings (for example, if an instance
10020	// attempts to perform IP forwarding but is not enabled for IP
10021	// forwarding).
10022	Key string `json:"key,omitempty"`
10023
10024	// Value: [Output Only] A warning data value corresponding to the key.
10025	Value string `json:"value,omitempty"`
10026
10027	// ForceSendFields is a list of field names (e.g. "Key") to
10028	// unconditionally include in API requests. By default, fields with
10029	// empty values are omitted from API requests. However, any non-pointer,
10030	// non-interface field appearing in ForceSendFields will be sent to the
10031	// server regardless of whether the field is empty or not. This may be
10032	// used to include empty fields in Patch requests.
10033	ForceSendFields []string `json:"-"`
10034
10035	// NullFields is a list of field names (e.g. "Key") to include in API
10036	// requests with the JSON null value. By default, fields with empty
10037	// values are omitted from API requests. However, any field with an
10038	// empty value appearing in NullFields will be sent to the server as
10039	// null. It is an error if a field in this list has a non-empty value.
10040	// This may be used to include null fields in Patch requests.
10041	NullFields []string `json:"-"`
10042}
10043
10044func (s *ExternalVpnGatewayListWarningData) MarshalJSON() ([]byte, error) {
10045	type NoMethod ExternalVpnGatewayListWarningData
10046	raw := NoMethod(*s)
10047	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10048}
10049
10050type FileContentBuffer struct {
10051	// Content: The raw content in the secure keys file.
10052	Content string `json:"content,omitempty"`
10053
10054	// FileType: The file type of source file.
10055	//
10056	// Possible values:
10057	//   "BIN"
10058	//   "UNDEFINED"
10059	//   "X509"
10060	FileType string `json:"fileType,omitempty"`
10061
10062	// ForceSendFields is a list of field names (e.g. "Content") to
10063	// unconditionally include in API requests. By default, fields with
10064	// empty values are omitted from API requests. However, any non-pointer,
10065	// non-interface field appearing in ForceSendFields will be sent to the
10066	// server regardless of whether the field is empty or not. This may be
10067	// used to include empty fields in Patch requests.
10068	ForceSendFields []string `json:"-"`
10069
10070	// NullFields is a list of field names (e.g. "Content") to include in
10071	// API requests with the JSON null value. By default, fields with empty
10072	// values are omitted from API requests. However, any field with an
10073	// empty value appearing in NullFields will be sent to the server as
10074	// null. It is an error if a field in this list has a non-empty value.
10075	// This may be used to include null fields in Patch requests.
10076	NullFields []string `json:"-"`
10077}
10078
10079func (s *FileContentBuffer) MarshalJSON() ([]byte, error) {
10080	type NoMethod FileContentBuffer
10081	raw := NoMethod(*s)
10082	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10083}
10084
10085// Firewall: Represents a Firewall Rule resource.
10086//
10087// Firewall rules allow or deny ingress traffic to, and egress traffic
10088// from your instances. For more information, read Firewall rules.
10089type Firewall struct {
10090	// Allowed: The list of ALLOW rules specified by this firewall. Each
10091	// rule specifies a protocol and port-range tuple that describes a
10092	// permitted connection.
10093	Allowed []*FirewallAllowed `json:"allowed,omitempty"`
10094
10095	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
10096	// format.
10097	CreationTimestamp string `json:"creationTimestamp,omitempty"`
10098
10099	// Denied: The list of DENY rules specified by this firewall. Each rule
10100	// specifies a protocol and port-range tuple that describes a denied
10101	// connection.
10102	Denied []*FirewallDenied `json:"denied,omitempty"`
10103
10104	// Description: An optional description of this resource. Provide this
10105	// field when you create the resource.
10106	Description string `json:"description,omitempty"`
10107
10108	// DestinationRanges: If destination ranges are specified, the firewall
10109	// rule applies only to traffic that has destination IP address in these
10110	// ranges. These ranges must be expressed in CIDR format. Only IPv4 is
10111	// supported.
10112	DestinationRanges []string `json:"destinationRanges,omitempty"`
10113
10114	// Direction: Direction of traffic to which this firewall applies,
10115	// either `INGRESS` or `EGRESS`. The default is `INGRESS`. For `INGRESS`
10116	// traffic, you cannot specify the destinationRanges field, and for
10117	// `EGRESS` traffic, you cannot specify the sourceRanges or sourceTags
10118	// fields.
10119	//
10120	// Possible values:
10121	//   "EGRESS"
10122	//   "INGRESS"
10123	Direction string `json:"direction,omitempty"`
10124
10125	// Disabled: Denotes whether the firewall rule is disabled. When set to
10126	// true, the firewall rule is not enforced and the network behaves as if
10127	// it did not exist. If this is unspecified, the firewall rule will be
10128	// enabled.
10129	Disabled bool `json:"disabled,omitempty"`
10130
10131	// EnableLogging: Deprecated in favor of enable in LogConfig. This field
10132	// denotes whether to enable logging for a particular firewall rule. If
10133	// logging is enabled, logs will be exported t Cloud Logging.
10134	EnableLogging bool `json:"enableLogging,omitempty"`
10135
10136	// Id: [Output Only] The unique identifier for the resource. This
10137	// identifier is defined by the server.
10138	Id uint64 `json:"id,omitempty,string"`
10139
10140	// Kind: [Output Only] Type of the resource. Always compute#firewall for
10141	// firewall rules.
10142	Kind string `json:"kind,omitempty"`
10143
10144	// LogConfig: This field denotes the logging options for a particular
10145	// firewall rule. If logging is enabled, logs will be exported to Cloud
10146	// Logging.
10147	LogConfig *FirewallLogConfig `json:"logConfig,omitempty"`
10148
10149	// Name: Name of the resource; provided by the client when the resource
10150	// is created. The name must be 1-63 characters long, and comply with
10151	// RFC1035. Specifically, the name must be 1-63 characters long and
10152	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?. The first
10153	// character must be a lowercase letter, and all following characters
10154	// (except for the last character) must be a dash, lowercase letter, or
10155	// digit. The last character must be a lowercase letter or digit.
10156	Name string `json:"name,omitempty"`
10157
10158	// Network: URL of the network resource for this firewall rule. If not
10159	// specified when creating a firewall rule, the default network is
10160	// used:
10161	// global/networks/default
10162	// If you choose to specify this field, you can specify the network as a
10163	// full or partial URL. For example, the following are all valid URLs:
10164	//
10165	// -
10166	// https://www.googleapis.com/compute/v1/projects/myproject/global/networks/my-network
10167	//
10168	// - projects/myproject/global/networks/my-network
10169	// - global/networks/default
10170	Network string `json:"network,omitempty"`
10171
10172	// Priority: Priority for this rule. This is an integer between `0` and
10173	// `65535`, both inclusive. The default value is `1000`. Relative
10174	// priorities determine which rule takes effect if multiple rules apply.
10175	// Lower values indicate higher priority. For example, a rule with
10176	// priority `0` has higher precedence than a rule with priority `1`.
10177	// DENY rules take precedence over ALLOW rules if they have equal
10178	// priority. Note that VPC networks have implied rules with a priority
10179	// of `65535`. To avoid conflicts with the implied rules, use a priority
10180	// number less than `65535`.
10181	Priority int64 `json:"priority,omitempty"`
10182
10183	// SelfLink: [Output Only] Server-defined URL for the resource.
10184	SelfLink string `json:"selfLink,omitempty"`
10185
10186	// SourceRanges: If source ranges are specified, the firewall rule
10187	// applies only to traffic that has a source IP address in these ranges.
10188	// These ranges must be expressed in CIDR format. One or both of
10189	// sourceRanges and sourceTags may be set. If both fields are set, the
10190	// rule applies to traffic that has a source IP address within
10191	// sourceRanges OR a source IP from a resource with a matching tag
10192	// listed in the sourceTags field. The connection does not need to match
10193	// both fields for the rule to apply. Only IPv4 is supported.
10194	SourceRanges []string `json:"sourceRanges,omitempty"`
10195
10196	// SourceServiceAccounts: If source service accounts are specified, the
10197	// firewall rules apply only to traffic originating from an instance
10198	// with a service account in this list. Source service accounts cannot
10199	// be used to control traffic to an instance's external IP address
10200	// because service accounts are associated with an instance, not an IP
10201	// address. sourceRanges can be set at the same time as
10202	// sourceServiceAccounts. If both are set, the firewall applies to
10203	// traffic that has a source IP address within the sourceRanges OR a
10204	// source IP that belongs to an instance with service account listed in
10205	// sourceServiceAccount. The connection does not need to match both
10206	// fields for the firewall to apply. sourceServiceAccounts cannot be
10207	// used at the same time as sourceTags or targetTags.
10208	SourceServiceAccounts []string `json:"sourceServiceAccounts,omitempty"`
10209
10210	// SourceTags: If source tags are specified, the firewall rule applies
10211	// only to traffic with source IPs that match the primary network
10212	// interfaces of VM instances that have the tag and are in the same VPC
10213	// network. Source tags cannot be used to control traffic to an
10214	// instance's external IP address, it only applies to traffic between
10215	// instances in the same virtual network. Because tags are associated
10216	// with instances, not IP addresses. One or both of sourceRanges and
10217	// sourceTags may be set. If both fields are set, the firewall applies
10218	// to traffic that has a source IP address within sourceRanges OR a
10219	// source IP from a resource with a matching tag listed in the
10220	// sourceTags field. The connection does not need to match both fields
10221	// for the firewall to apply.
10222	SourceTags []string `json:"sourceTags,omitempty"`
10223
10224	// TargetServiceAccounts: A list of service accounts indicating sets of
10225	// instances located in the network that may make network connections as
10226	// specified in allowed[]. targetServiceAccounts cannot be used at the
10227	// same time as targetTags or sourceTags. If neither
10228	// targetServiceAccounts nor targetTags are specified, the firewall rule
10229	// applies to all instances on the specified network.
10230	TargetServiceAccounts []string `json:"targetServiceAccounts,omitempty"`
10231
10232	// TargetTags: A list of tags that controls which instances the firewall
10233	// rule applies to. If targetTags are specified, then the firewall rule
10234	// applies only to instances in the VPC network that have one of those
10235	// tags. If no targetTags are specified, the firewall rule applies to
10236	// all instances on the specified network.
10237	TargetTags []string `json:"targetTags,omitempty"`
10238
10239	// ServerResponse contains the HTTP response code and headers from the
10240	// server.
10241	googleapi.ServerResponse `json:"-"`
10242
10243	// ForceSendFields is a list of field names (e.g. "Allowed") to
10244	// unconditionally include in API requests. By default, fields with
10245	// empty values are omitted from API requests. However, any non-pointer,
10246	// non-interface field appearing in ForceSendFields will be sent to the
10247	// server regardless of whether the field is empty or not. This may be
10248	// used to include empty fields in Patch requests.
10249	ForceSendFields []string `json:"-"`
10250
10251	// NullFields is a list of field names (e.g. "Allowed") to include in
10252	// API requests with the JSON null value. By default, fields with empty
10253	// values are omitted from API requests. However, any field with an
10254	// empty value appearing in NullFields will be sent to the server as
10255	// null. It is an error if a field in this list has a non-empty value.
10256	// This may be used to include null fields in Patch requests.
10257	NullFields []string `json:"-"`
10258}
10259
10260func (s *Firewall) MarshalJSON() ([]byte, error) {
10261	type NoMethod Firewall
10262	raw := NoMethod(*s)
10263	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10264}
10265
10266type FirewallAllowed struct {
10267	// IPProtocol: The IP protocol to which this rule applies. The protocol
10268	// type is required when creating a firewall rule. This value can either
10269	// be one of the following well known protocol strings (tcp, udp, icmp,
10270	// esp, ah, ipip, sctp) or the IP protocol number.
10271	IPProtocol string `json:"IPProtocol,omitempty"`
10272
10273	// Ports: An optional list of ports to which this rule applies. This
10274	// field is only applicable for the UDP or TCP protocol. Each entry must
10275	// be either an integer or a range. If not specified, this rule applies
10276	// to connections through any port.
10277	//
10278	// Example inputs include: ["22"], ["80","443"], and ["12345-12349"].
10279	Ports []string `json:"ports,omitempty"`
10280
10281	// ForceSendFields is a list of field names (e.g. "IPProtocol") to
10282	// unconditionally include in API requests. By default, fields with
10283	// empty values are omitted from API requests. However, any non-pointer,
10284	// non-interface field appearing in ForceSendFields will be sent to the
10285	// server regardless of whether the field is empty or not. This may be
10286	// used to include empty fields in Patch requests.
10287	ForceSendFields []string `json:"-"`
10288
10289	// NullFields is a list of field names (e.g. "IPProtocol") to include in
10290	// API requests with the JSON null value. By default, fields with empty
10291	// values are omitted from API requests. However, any field with an
10292	// empty value appearing in NullFields will be sent to the server as
10293	// null. It is an error if a field in this list has a non-empty value.
10294	// This may be used to include null fields in Patch requests.
10295	NullFields []string `json:"-"`
10296}
10297
10298func (s *FirewallAllowed) MarshalJSON() ([]byte, error) {
10299	type NoMethod FirewallAllowed
10300	raw := NoMethod(*s)
10301	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10302}
10303
10304type FirewallDenied struct {
10305	// IPProtocol: The IP protocol to which this rule applies. The protocol
10306	// type is required when creating a firewall rule. This value can either
10307	// be one of the following well known protocol strings (tcp, udp, icmp,
10308	// esp, ah, ipip, sctp) or the IP protocol number.
10309	IPProtocol string `json:"IPProtocol,omitempty"`
10310
10311	// Ports: An optional list of ports to which this rule applies. This
10312	// field is only applicable for the UDP or TCP protocol. Each entry must
10313	// be either an integer or a range. If not specified, this rule applies
10314	// to connections through any port.
10315	//
10316	// Example inputs include: ["22"], ["80","443"], and ["12345-12349"].
10317	Ports []string `json:"ports,omitempty"`
10318
10319	// ForceSendFields is a list of field names (e.g. "IPProtocol") to
10320	// unconditionally include in API requests. By default, fields with
10321	// empty values are omitted from API requests. However, any non-pointer,
10322	// non-interface field appearing in ForceSendFields will be sent to the
10323	// server regardless of whether the field is empty or not. This may be
10324	// used to include empty fields in Patch requests.
10325	ForceSendFields []string `json:"-"`
10326
10327	// NullFields is a list of field names (e.g. "IPProtocol") to include in
10328	// API requests with the JSON null value. By default, fields with empty
10329	// values are omitted from API requests. However, any field with an
10330	// empty value appearing in NullFields will be sent to the server as
10331	// null. It is an error if a field in this list has a non-empty value.
10332	// This may be used to include null fields in Patch requests.
10333	NullFields []string `json:"-"`
10334}
10335
10336func (s *FirewallDenied) MarshalJSON() ([]byte, error) {
10337	type NoMethod FirewallDenied
10338	raw := NoMethod(*s)
10339	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10340}
10341
10342// FirewallList: Contains a list of firewalls.
10343type FirewallList struct {
10344	// Id: [Output Only] Unique identifier for the resource; defined by the
10345	// server.
10346	Id string `json:"id,omitempty"`
10347
10348	// Items: A list of Firewall resources.
10349	Items []*Firewall `json:"items,omitempty"`
10350
10351	// Kind: [Output Only] Type of resource. Always compute#firewallList for
10352	// lists of firewalls.
10353	Kind string `json:"kind,omitempty"`
10354
10355	// NextPageToken: [Output Only] This token allows you to get the next
10356	// page of results for list requests. If the number of results is larger
10357	// than maxResults, use the nextPageToken as a value for the query
10358	// parameter pageToken in the next list request. Subsequent list
10359	// requests will have their own nextPageToken to continue paging through
10360	// the results.
10361	NextPageToken string `json:"nextPageToken,omitempty"`
10362
10363	// SelfLink: [Output Only] Server-defined URL for this resource.
10364	SelfLink string `json:"selfLink,omitempty"`
10365
10366	// Warning: [Output Only] Informational warning message.
10367	Warning *FirewallListWarning `json:"warning,omitempty"`
10368
10369	// ServerResponse contains the HTTP response code and headers from the
10370	// server.
10371	googleapi.ServerResponse `json:"-"`
10372
10373	// ForceSendFields is a list of field names (e.g. "Id") to
10374	// unconditionally include in API requests. By default, fields with
10375	// empty values are omitted from API requests. However, any non-pointer,
10376	// non-interface field appearing in ForceSendFields will be sent to the
10377	// server regardless of whether the field is empty or not. This may be
10378	// used to include empty fields in Patch requests.
10379	ForceSendFields []string `json:"-"`
10380
10381	// NullFields is a list of field names (e.g. "Id") to include in API
10382	// requests with the JSON null value. By default, fields with empty
10383	// values are omitted from API requests. However, any field with an
10384	// empty value appearing in NullFields will be sent to the server as
10385	// null. It is an error if a field in this list has a non-empty value.
10386	// This may be used to include null fields in Patch requests.
10387	NullFields []string `json:"-"`
10388}
10389
10390func (s *FirewallList) MarshalJSON() ([]byte, error) {
10391	type NoMethod FirewallList
10392	raw := NoMethod(*s)
10393	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10394}
10395
10396// FirewallListWarning: [Output Only] Informational warning message.
10397type FirewallListWarning struct {
10398	// Code: [Output Only] A warning code, if applicable. For example,
10399	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
10400	// the response.
10401	//
10402	// Possible values:
10403	//   "CLEANUP_FAILED"
10404	//   "DEPRECATED_RESOURCE_USED"
10405	//   "DEPRECATED_TYPE_USED"
10406	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
10407	//   "EXPERIMENTAL_TYPE_USED"
10408	//   "EXTERNAL_API_WARNING"
10409	//   "FIELD_VALUE_OVERRIDEN"
10410	//   "INJECTED_KERNELS_DEPRECATED"
10411	//   "LARGE_DEPLOYMENT_WARNING"
10412	//   "MISSING_TYPE_DEPENDENCY"
10413	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
10414	//   "NEXT_HOP_CANNOT_IP_FORWARD"
10415	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
10416	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
10417	//   "NEXT_HOP_NOT_RUNNING"
10418	//   "NOT_CRITICAL_ERROR"
10419	//   "NO_RESULTS_ON_PAGE"
10420	//   "PARTIAL_SUCCESS"
10421	//   "REQUIRED_TOS_AGREEMENT"
10422	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
10423	//   "RESOURCE_NOT_DELETED"
10424	//   "SCHEMA_VALIDATION_IGNORED"
10425	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
10426	//   "UNDECLARED_PROPERTIES"
10427	//   "UNREACHABLE"
10428	Code string `json:"code,omitempty"`
10429
10430	// Data: [Output Only] Metadata about this warning in key: value format.
10431	// For example:
10432	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
10433	Data []*FirewallListWarningData `json:"data,omitempty"`
10434
10435	// Message: [Output Only] A human-readable description of the warning
10436	// code.
10437	Message string `json:"message,omitempty"`
10438
10439	// ForceSendFields is a list of field names (e.g. "Code") to
10440	// unconditionally include in API requests. By default, fields with
10441	// empty values are omitted from API requests. However, any non-pointer,
10442	// non-interface field appearing in ForceSendFields will be sent to the
10443	// server regardless of whether the field is empty or not. This may be
10444	// used to include empty fields in Patch requests.
10445	ForceSendFields []string `json:"-"`
10446
10447	// NullFields is a list of field names (e.g. "Code") to include in API
10448	// requests with the JSON null value. By default, fields with empty
10449	// values are omitted from API requests. However, any field with an
10450	// empty value appearing in NullFields will be sent to the server as
10451	// null. It is an error if a field in this list has a non-empty value.
10452	// This may be used to include null fields in Patch requests.
10453	NullFields []string `json:"-"`
10454}
10455
10456func (s *FirewallListWarning) MarshalJSON() ([]byte, error) {
10457	type NoMethod FirewallListWarning
10458	raw := NoMethod(*s)
10459	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10460}
10461
10462type FirewallListWarningData struct {
10463	// Key: [Output Only] A key that provides more detail on the warning
10464	// being returned. For example, for warnings where there are no results
10465	// in a list request for a particular zone, this key might be scope and
10466	// the key value might be the zone name. Other examples might be a key
10467	// indicating a deprecated resource and a suggested replacement, or a
10468	// warning about invalid network settings (for example, if an instance
10469	// attempts to perform IP forwarding but is not enabled for IP
10470	// forwarding).
10471	Key string `json:"key,omitempty"`
10472
10473	// Value: [Output Only] A warning data value corresponding to the key.
10474	Value string `json:"value,omitempty"`
10475
10476	// ForceSendFields is a list of field names (e.g. "Key") to
10477	// unconditionally include in API requests. By default, fields with
10478	// empty values are omitted from API requests. However, any non-pointer,
10479	// non-interface field appearing in ForceSendFields will be sent to the
10480	// server regardless of whether the field is empty or not. This may be
10481	// used to include empty fields in Patch requests.
10482	ForceSendFields []string `json:"-"`
10483
10484	// NullFields is a list of field names (e.g. "Key") to include in API
10485	// requests with the JSON null value. By default, fields with empty
10486	// values are omitted from API requests. However, any field with an
10487	// empty value appearing in NullFields will be sent to the server as
10488	// null. It is an error if a field in this list has a non-empty value.
10489	// This may be used to include null fields in Patch requests.
10490	NullFields []string `json:"-"`
10491}
10492
10493func (s *FirewallListWarningData) MarshalJSON() ([]byte, error) {
10494	type NoMethod FirewallListWarningData
10495	raw := NoMethod(*s)
10496	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10497}
10498
10499// FirewallLogConfig: The available logging options for a firewall rule.
10500type FirewallLogConfig struct {
10501	// Enable: This field denotes whether to enable logging for a particular
10502	// firewall rule.
10503	Enable bool `json:"enable,omitempty"`
10504
10505	// Metadata: This field can only be specified for a particular firewall
10506	// rule if logging is enabled for that rule. This field denotes whether
10507	// to include or exclude metadata for firewall logs.
10508	//
10509	// Possible values:
10510	//   "EXCLUDE_ALL_METADATA"
10511	//   "INCLUDE_ALL_METADATA"
10512	Metadata string `json:"metadata,omitempty"`
10513
10514	// ForceSendFields is a list of field names (e.g. "Enable") to
10515	// unconditionally include in API requests. By default, fields with
10516	// empty values are omitted from API requests. However, any non-pointer,
10517	// non-interface field appearing in ForceSendFields will be sent to the
10518	// server regardless of whether the field is empty or not. This may be
10519	// used to include empty fields in Patch requests.
10520	ForceSendFields []string `json:"-"`
10521
10522	// NullFields is a list of field names (e.g. "Enable") to include in API
10523	// requests with the JSON null value. By default, fields with empty
10524	// values are omitted from API requests. However, any field with an
10525	// empty value appearing in NullFields will be sent to the server as
10526	// null. It is an error if a field in this list has a non-empty value.
10527	// This may be used to include null fields in Patch requests.
10528	NullFields []string `json:"-"`
10529}
10530
10531func (s *FirewallLogConfig) MarshalJSON() ([]byte, error) {
10532	type NoMethod FirewallLogConfig
10533	raw := NoMethod(*s)
10534	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10535}
10536
10537type FirewallPoliciesListAssociationsResponse struct {
10538	// Associations: A list of associations.
10539	Associations []*FirewallPolicyAssociation `json:"associations,omitempty"`
10540
10541	// Kind: [Output Only] Type of firewallPolicy associations. Always
10542	// compute#FirewallPoliciesListAssociations for lists of firewallPolicy
10543	// associations.
10544	Kind string `json:"kind,omitempty"`
10545
10546	// ServerResponse contains the HTTP response code and headers from the
10547	// server.
10548	googleapi.ServerResponse `json:"-"`
10549
10550	// ForceSendFields is a list of field names (e.g. "Associations") to
10551	// unconditionally include in API requests. By default, fields with
10552	// empty values are omitted from API requests. However, any non-pointer,
10553	// non-interface field appearing in ForceSendFields will be sent to the
10554	// server regardless of whether the field is empty or not. This may be
10555	// used to include empty fields in Patch requests.
10556	ForceSendFields []string `json:"-"`
10557
10558	// NullFields is a list of field names (e.g. "Associations") to include
10559	// in API requests with the JSON null value. By default, fields with
10560	// empty values are omitted from API requests. However, any field with
10561	// an empty value appearing in NullFields will be sent to the server as
10562	// null. It is an error if a field in this list has a non-empty value.
10563	// This may be used to include null fields in Patch requests.
10564	NullFields []string `json:"-"`
10565}
10566
10567func (s *FirewallPoliciesListAssociationsResponse) MarshalJSON() ([]byte, error) {
10568	type NoMethod FirewallPoliciesListAssociationsResponse
10569	raw := NoMethod(*s)
10570	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10571}
10572
10573// FirewallPolicy: Represents a Firewall Policy resource. (==
10574// resource_for {$api_version}.firewallPolicies ==)
10575type FirewallPolicy struct {
10576	// Associations: A list of associations that belong to this firewall
10577	// policy.
10578	Associations []*FirewallPolicyAssociation `json:"associations,omitempty"`
10579
10580	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
10581	// format.
10582	CreationTimestamp string `json:"creationTimestamp,omitempty"`
10583
10584	// Description: An optional description of this resource. Provide this
10585	// property when you create the resource.
10586	Description string `json:"description,omitempty"`
10587
10588	// DisplayName: Depreacted, please use short name instead. User-provided
10589	// name of the Organization firewall plicy. The name should be unique in
10590	// the organization in which the firewall policy is created. The name
10591	// must be 1-63 characters long, and comply with RFC1035. Specifically,
10592	// the name must be 1-63 characters long and match the regular
10593	// expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
10594	// character must be a lowercase letter, and all following characters
10595	// must be a dash, lowercase letter, or digit, except the last
10596	// character, which cannot be a dash.
10597	DisplayName string `json:"displayName,omitempty"`
10598
10599	// Fingerprint: Specifies a fingerprint for this resource, which is
10600	// essentially a hash of the metadata's contents and used for optimistic
10601	// locking. The fingerprint is initially generated by Compute Engine and
10602	// changes after every request to modify or update metadata. You must
10603	// always provide an up-to-date fingerprint hash in order to update or
10604	// change metadata, otherwise the request will fail with error 412
10605	// conditionNotMet.
10606	//
10607	// To see the latest fingerprint, make get() request to the firewall
10608	// policy.
10609	Fingerprint string `json:"fingerprint,omitempty"`
10610
10611	// Id: [Output Only] The unique identifier for the resource. This
10612	// identifier is defined by the server.
10613	Id uint64 `json:"id,omitempty,string"`
10614
10615	// Kind: [Output only] Type of the resource. Always
10616	// compute#firewallPolicyfor firewall policies
10617	Kind string `json:"kind,omitempty"`
10618
10619	// Name: [Output Only] Name of the resource. It is a numeric ID
10620	// allocated by GCP which uniquely identifies the Firewall Policy.
10621	Name string `json:"name,omitempty"`
10622
10623	// Parent: [Output Only] The parent of the firewall policy.
10624	Parent string `json:"parent,omitempty"`
10625
10626	// RuleTupleCount: [Output Only] Total count of all firewall policy rule
10627	// tuples. A firewall policy can not exceed a set number of tuples.
10628	RuleTupleCount int64 `json:"ruleTupleCount,omitempty"`
10629
10630	// Rules: A list of rules that belong to this policy. There must always
10631	// be a default rule (rule with priority 2147483647 and match "*"). If
10632	// no rules are provided when creating a firewall policy, a default rule
10633	// with action "allow" will be added.
10634	Rules []*FirewallPolicyRule `json:"rules,omitempty"`
10635
10636	// SelfLink: [Output Only] Server-defined URL for the resource.
10637	SelfLink string `json:"selfLink,omitempty"`
10638
10639	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
10640	// with the resource id.
10641	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
10642
10643	// ShortName: User-provided name of the Organization firewall plicy. The
10644	// name should be unique in the organization in which the firewall
10645	// policy is created. The name must be 1-63 characters long, and comply
10646	// with RFC1035. Specifically, the name must be 1-63 characters long and
10647	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
10648	// the first character must be a lowercase letter, and all following
10649	// characters must be a dash, lowercase letter, or digit, except the
10650	// last character, which cannot be a dash.
10651	ShortName string `json:"shortName,omitempty"`
10652
10653	// ServerResponse contains the HTTP response code and headers from the
10654	// server.
10655	googleapi.ServerResponse `json:"-"`
10656
10657	// ForceSendFields is a list of field names (e.g. "Associations") to
10658	// unconditionally include in API requests. By default, fields with
10659	// empty values are omitted from API requests. However, any non-pointer,
10660	// non-interface field appearing in ForceSendFields will be sent to the
10661	// server regardless of whether the field is empty or not. This may be
10662	// used to include empty fields in Patch requests.
10663	ForceSendFields []string `json:"-"`
10664
10665	// NullFields is a list of field names (e.g. "Associations") to include
10666	// in API requests with the JSON null value. By default, fields with
10667	// empty values are omitted from API requests. However, any field with
10668	// an empty value appearing in NullFields will be sent to the server as
10669	// null. It is an error if a field in this list has a non-empty value.
10670	// This may be used to include null fields in Patch requests.
10671	NullFields []string `json:"-"`
10672}
10673
10674func (s *FirewallPolicy) MarshalJSON() ([]byte, error) {
10675	type NoMethod FirewallPolicy
10676	raw := NoMethod(*s)
10677	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10678}
10679
10680type FirewallPolicyAssociation struct {
10681	// AttachmentTarget: The target that the firewall policy is attached to.
10682	AttachmentTarget string `json:"attachmentTarget,omitempty"`
10683
10684	// DisplayName: [Output Only] Deprecated, please use short name instead.
10685	// The display name of the firewall policy of the association.
10686	DisplayName string `json:"displayName,omitempty"`
10687
10688	// FirewallPolicyId: [Output Only] The firewall policy ID of the
10689	// association.
10690	FirewallPolicyId string `json:"firewallPolicyId,omitempty"`
10691
10692	// Name: The name for an association.
10693	Name string `json:"name,omitempty"`
10694
10695	// ShortName: [Output Only] The short name of the firewall policy of the
10696	// association.
10697	ShortName string `json:"shortName,omitempty"`
10698
10699	// ServerResponse contains the HTTP response code and headers from the
10700	// server.
10701	googleapi.ServerResponse `json:"-"`
10702
10703	// ForceSendFields is a list of field names (e.g. "AttachmentTarget") to
10704	// unconditionally include in API requests. By default, fields with
10705	// empty values are omitted from API requests. However, any non-pointer,
10706	// non-interface field appearing in ForceSendFields will be sent to the
10707	// server regardless of whether the field is empty or not. This may be
10708	// used to include empty fields in Patch requests.
10709	ForceSendFields []string `json:"-"`
10710
10711	// NullFields is a list of field names (e.g. "AttachmentTarget") to
10712	// include in API requests with the JSON null value. By default, fields
10713	// with empty values are omitted from API requests. However, any field
10714	// with an empty value appearing in NullFields will be sent to the
10715	// server as null. It is an error if a field in this list has a
10716	// non-empty value. This may be used to include null fields in Patch
10717	// requests.
10718	NullFields []string `json:"-"`
10719}
10720
10721func (s *FirewallPolicyAssociation) MarshalJSON() ([]byte, error) {
10722	type NoMethod FirewallPolicyAssociation
10723	raw := NoMethod(*s)
10724	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10725}
10726
10727type FirewallPolicyList struct {
10728	// Id: [Output Only] Unique identifier for the resource; defined by the
10729	// server.
10730	Id string `json:"id,omitempty"`
10731
10732	// Items: A list of FirewallPolicy resources.
10733	Items []*FirewallPolicy `json:"items,omitempty"`
10734
10735	// Kind: [Output Only] Type of resource. Always
10736	// compute#firewallPolicyList for listsof FirewallPolicies
10737	Kind string `json:"kind,omitempty"`
10738
10739	// NextPageToken: [Output Only] This token allows you to get the next
10740	// page of results for list requests. If the number of results is larger
10741	// than maxResults, use the nextPageToken as a value for the query
10742	// parameter pageToken in the next list request. Subsequent list
10743	// requests will have their own nextPageToken to continue paging through
10744	// the results.
10745	NextPageToken string `json:"nextPageToken,omitempty"`
10746
10747	// Warning: [Output Only] Informational warning message.
10748	Warning *FirewallPolicyListWarning `json:"warning,omitempty"`
10749
10750	// ServerResponse contains the HTTP response code and headers from the
10751	// server.
10752	googleapi.ServerResponse `json:"-"`
10753
10754	// ForceSendFields is a list of field names (e.g. "Id") to
10755	// unconditionally include in API requests. By default, fields with
10756	// empty values are omitted from API requests. However, any non-pointer,
10757	// non-interface field appearing in ForceSendFields will be sent to the
10758	// server regardless of whether the field is empty or not. This may be
10759	// used to include empty fields in Patch requests.
10760	ForceSendFields []string `json:"-"`
10761
10762	// NullFields is a list of field names (e.g. "Id") to include in API
10763	// requests with the JSON null value. By default, fields with empty
10764	// values are omitted from API requests. However, any field with an
10765	// empty value appearing in NullFields will be sent to the server as
10766	// null. It is an error if a field in this list has a non-empty value.
10767	// This may be used to include null fields in Patch requests.
10768	NullFields []string `json:"-"`
10769}
10770
10771func (s *FirewallPolicyList) MarshalJSON() ([]byte, error) {
10772	type NoMethod FirewallPolicyList
10773	raw := NoMethod(*s)
10774	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10775}
10776
10777// FirewallPolicyListWarning: [Output Only] Informational warning
10778// message.
10779type FirewallPolicyListWarning struct {
10780	// Code: [Output Only] A warning code, if applicable. For example,
10781	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
10782	// the response.
10783	//
10784	// Possible values:
10785	//   "CLEANUP_FAILED"
10786	//   "DEPRECATED_RESOURCE_USED"
10787	//   "DEPRECATED_TYPE_USED"
10788	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
10789	//   "EXPERIMENTAL_TYPE_USED"
10790	//   "EXTERNAL_API_WARNING"
10791	//   "FIELD_VALUE_OVERRIDEN"
10792	//   "INJECTED_KERNELS_DEPRECATED"
10793	//   "LARGE_DEPLOYMENT_WARNING"
10794	//   "MISSING_TYPE_DEPENDENCY"
10795	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
10796	//   "NEXT_HOP_CANNOT_IP_FORWARD"
10797	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
10798	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
10799	//   "NEXT_HOP_NOT_RUNNING"
10800	//   "NOT_CRITICAL_ERROR"
10801	//   "NO_RESULTS_ON_PAGE"
10802	//   "PARTIAL_SUCCESS"
10803	//   "REQUIRED_TOS_AGREEMENT"
10804	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
10805	//   "RESOURCE_NOT_DELETED"
10806	//   "SCHEMA_VALIDATION_IGNORED"
10807	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
10808	//   "UNDECLARED_PROPERTIES"
10809	//   "UNREACHABLE"
10810	Code string `json:"code,omitempty"`
10811
10812	// Data: [Output Only] Metadata about this warning in key: value format.
10813	// For example:
10814	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
10815	Data []*FirewallPolicyListWarningData `json:"data,omitempty"`
10816
10817	// Message: [Output Only] A human-readable description of the warning
10818	// code.
10819	Message string `json:"message,omitempty"`
10820
10821	// ForceSendFields is a list of field names (e.g. "Code") to
10822	// unconditionally include in API requests. By default, fields with
10823	// empty values are omitted from API requests. However, any non-pointer,
10824	// non-interface field appearing in ForceSendFields will be sent to the
10825	// server regardless of whether the field is empty or not. This may be
10826	// used to include empty fields in Patch requests.
10827	ForceSendFields []string `json:"-"`
10828
10829	// NullFields is a list of field names (e.g. "Code") to include in API
10830	// requests with the JSON null value. By default, fields with empty
10831	// values are omitted from API requests. However, any field with an
10832	// empty value appearing in NullFields will be sent to the server as
10833	// null. It is an error if a field in this list has a non-empty value.
10834	// This may be used to include null fields in Patch requests.
10835	NullFields []string `json:"-"`
10836}
10837
10838func (s *FirewallPolicyListWarning) MarshalJSON() ([]byte, error) {
10839	type NoMethod FirewallPolicyListWarning
10840	raw := NoMethod(*s)
10841	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10842}
10843
10844type FirewallPolicyListWarningData struct {
10845	// Key: [Output Only] A key that provides more detail on the warning
10846	// being returned. For example, for warnings where there are no results
10847	// in a list request for a particular zone, this key might be scope and
10848	// the key value might be the zone name. Other examples might be a key
10849	// indicating a deprecated resource and a suggested replacement, or a
10850	// warning about invalid network settings (for example, if an instance
10851	// attempts to perform IP forwarding but is not enabled for IP
10852	// forwarding).
10853	Key string `json:"key,omitempty"`
10854
10855	// Value: [Output Only] A warning data value corresponding to the key.
10856	Value string `json:"value,omitempty"`
10857
10858	// ForceSendFields is a list of field names (e.g. "Key") to
10859	// unconditionally include in API requests. By default, fields with
10860	// empty values are omitted from API requests. However, any non-pointer,
10861	// non-interface field appearing in ForceSendFields will be sent to the
10862	// server regardless of whether the field is empty or not. This may be
10863	// used to include empty fields in Patch requests.
10864	ForceSendFields []string `json:"-"`
10865
10866	// NullFields is a list of field names (e.g. "Key") to include in API
10867	// requests with the JSON null value. By default, fields with empty
10868	// values are omitted from API requests. However, any field with an
10869	// empty value appearing in NullFields will be sent to the server as
10870	// null. It is an error if a field in this list has a non-empty value.
10871	// This may be used to include null fields in Patch requests.
10872	NullFields []string `json:"-"`
10873}
10874
10875func (s *FirewallPolicyListWarningData) MarshalJSON() ([]byte, error) {
10876	type NoMethod FirewallPolicyListWarningData
10877	raw := NoMethod(*s)
10878	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10879}
10880
10881// FirewallPolicyRule: Represents a rule that describes one or more
10882// match conditions along with the action to be taken when traffic
10883// matches this condition (allow or deny).
10884type FirewallPolicyRule struct {
10885	// Action: The Action to perform when the client connection triggers the
10886	// rule. Can currently be either "allow" or "deny()" where valid values
10887	// for status are 403, 404, and 502.
10888	Action string `json:"action,omitempty"`
10889
10890	// Description: An optional description for this resource.
10891	Description string `json:"description,omitempty"`
10892
10893	// Direction: The direction in which this rule applies.
10894	//
10895	// Possible values:
10896	//   "EGRESS"
10897	//   "INGRESS"
10898	Direction string `json:"direction,omitempty"`
10899
10900	// Disabled: Denotes whether the firewall policy rule is disabled. When
10901	// set to true, the firewall policy rule is not enforced and traffic
10902	// behaves as if it did not exist. If this is unspecified, the firewall
10903	// policy rule will be enabled.
10904	Disabled bool `json:"disabled,omitempty"`
10905
10906	// EnableLogging: Denotes whether to enable logging for a particular
10907	// rule. If logging is enabled, logs will be exported to the configured
10908	// export destination in Stackdriver. Logs may be exported to BigQuery
10909	// or Pub/Sub. Note: you cannot enable logging on "goto_next" rules.
10910	EnableLogging bool `json:"enableLogging,omitempty"`
10911
10912	// Kind: [Output only] Type of the resource. Always
10913	// compute#firewallPolicyRule for firewall policy rules
10914	Kind string `json:"kind,omitempty"`
10915
10916	// Match: A match condition that incoming traffic is evaluated against.
10917	// If it evaluates to true, the corresponding 'action' is enforced.
10918	Match *FirewallPolicyRuleMatcher `json:"match,omitempty"`
10919
10920	// Priority: An integer indicating the priority of a rule in the list.
10921	// The priority must be a positive value between 0 and 2147483647. Rules
10922	// are evaluated from highest to lowest priority where 0 is the highest
10923	// priority and 2147483647 is the lowest prority.
10924	Priority int64 `json:"priority,omitempty"`
10925
10926	// RuleTupleCount: [Output Only] Calculation of the complexity of a
10927	// single firewall policy rule.
10928	RuleTupleCount int64 `json:"ruleTupleCount,omitempty"`
10929
10930	// TargetResources: A list of network resource URLs to which this rule
10931	// applies. This field allows you to control which network's VMs get
10932	// this rule. If this field is left blank, all VMs within the
10933	// organization will receive the rule.
10934	TargetResources []string `json:"targetResources,omitempty"`
10935
10936	// TargetSecureLabels: A list of secure labels that controls which
10937	// instances the firewall rule applies to. If targetSecureLabel are
10938	// specified, then the firewall rule applies only to instances in the
10939	// VPC network that have one of those secure labels. targetSecureLabel
10940	// may not be set at the same time as targetServiceAccounts. If neither
10941	// targetServiceAccounts nor targetSecureLabel are specified, the
10942	// firewall rule applies to all instances on the specified network.
10943	// Maximum number of target label values allowed is 256.
10944	TargetSecureLabels []string `json:"targetSecureLabels,omitempty"`
10945
10946	// TargetServiceAccounts: A list of service accounts indicating the sets
10947	// of instances that are applied with this rule.
10948	TargetServiceAccounts []string `json:"targetServiceAccounts,omitempty"`
10949
10950	// ServerResponse contains the HTTP response code and headers from the
10951	// server.
10952	googleapi.ServerResponse `json:"-"`
10953
10954	// ForceSendFields is a list of field names (e.g. "Action") to
10955	// unconditionally include in API requests. By default, fields with
10956	// empty values are omitted from API requests. However, any non-pointer,
10957	// non-interface field appearing in ForceSendFields will be sent to the
10958	// server regardless of whether the field is empty or not. This may be
10959	// used to include empty fields in Patch requests.
10960	ForceSendFields []string `json:"-"`
10961
10962	// NullFields is a list of field names (e.g. "Action") to include in API
10963	// requests with the JSON null value. By default, fields with empty
10964	// values are omitted from API requests. However, any field with an
10965	// empty value appearing in NullFields will be sent to the server as
10966	// null. It is an error if a field in this list has a non-empty value.
10967	// This may be used to include null fields in Patch requests.
10968	NullFields []string `json:"-"`
10969}
10970
10971func (s *FirewallPolicyRule) MarshalJSON() ([]byte, error) {
10972	type NoMethod FirewallPolicyRule
10973	raw := NoMethod(*s)
10974	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10975}
10976
10977// FirewallPolicyRuleMatcher: Represents a match condition that incoming
10978// traffic is evaluated against. Exactly one field must be specified.
10979type FirewallPolicyRuleMatcher struct {
10980	// DestIpRanges: CIDR IP address range. Maximum number of destination
10981	// CIDR IP ranges allowed is 256.
10982	DestIpRanges []string `json:"destIpRanges,omitempty"`
10983
10984	// Layer4Configs: Pairs of IP protocols and ports that the rule should
10985	// match.
10986	Layer4Configs []*FirewallPolicyRuleMatcherLayer4Config `json:"layer4Configs,omitempty"`
10987
10988	// SrcIpRanges: CIDR IP address range. Maximum number of source CIDR IP
10989	// ranges allowed is 256.
10990	SrcIpRanges []string `json:"srcIpRanges,omitempty"`
10991
10992	// SrcSecureLabels: List of firewall label values, which should be
10993	// matched at the source of the traffic. Maximum number of source label
10994	// values allowed is 256.
10995	SrcSecureLabels []string `json:"srcSecureLabels,omitempty"`
10996
10997	// ForceSendFields is a list of field names (e.g. "DestIpRanges") to
10998	// unconditionally include in API requests. By default, fields with
10999	// empty values are omitted from API requests. However, any non-pointer,
11000	// non-interface field appearing in ForceSendFields will be sent to the
11001	// server regardless of whether the field is empty or not. This may be
11002	// used to include empty fields in Patch requests.
11003	ForceSendFields []string `json:"-"`
11004
11005	// NullFields is a list of field names (e.g. "DestIpRanges") to include
11006	// in API requests with the JSON null value. By default, fields with
11007	// empty values are omitted from API requests. However, any field with
11008	// an empty value appearing in NullFields will be sent to the server as
11009	// null. It is an error if a field in this list has a non-empty value.
11010	// This may be used to include null fields in Patch requests.
11011	NullFields []string `json:"-"`
11012}
11013
11014func (s *FirewallPolicyRuleMatcher) MarshalJSON() ([]byte, error) {
11015	type NoMethod FirewallPolicyRuleMatcher
11016	raw := NoMethod(*s)
11017	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11018}
11019
11020type FirewallPolicyRuleMatcherLayer4Config struct {
11021	// IpProtocol: The IP protocol to which this rule applies. The protocol
11022	// type is required when creating a firewall rule. This value can either
11023	// be one of the following well known protocol strings (tcp, udp, icmp,
11024	// esp, ah, ipip, sctp), or the IP protocol number.
11025	IpProtocol string `json:"ipProtocol,omitempty"`
11026
11027	// Ports: An optional list of ports to which this rule applies. This
11028	// field is only applicable for UDP or TCP protocol. Each entry must be
11029	// either an integer or a range. If not specified, this rule applies to
11030	// connections through any port.
11031	//
11032	// Example inputs include: ["22"], ["80","443"], and ["12345-12349"].
11033	Ports []string `json:"ports,omitempty"`
11034
11035	// ForceSendFields is a list of field names (e.g. "IpProtocol") to
11036	// unconditionally include in API requests. By default, fields with
11037	// empty values are omitted from API requests. However, any non-pointer,
11038	// non-interface field appearing in ForceSendFields will be sent to the
11039	// server regardless of whether the field is empty or not. This may be
11040	// used to include empty fields in Patch requests.
11041	ForceSendFields []string `json:"-"`
11042
11043	// NullFields is a list of field names (e.g. "IpProtocol") to include in
11044	// API requests with the JSON null value. By default, fields with empty
11045	// values are omitted from API requests. However, any field with an
11046	// empty value appearing in NullFields will be sent to the server as
11047	// null. It is an error if a field in this list has a non-empty value.
11048	// This may be used to include null fields in Patch requests.
11049	NullFields []string `json:"-"`
11050}
11051
11052func (s *FirewallPolicyRuleMatcherLayer4Config) MarshalJSON() ([]byte, error) {
11053	type NoMethod FirewallPolicyRuleMatcherLayer4Config
11054	raw := NoMethod(*s)
11055	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11056}
11057
11058// FixedOrPercent: Encapsulates numeric value that can be either
11059// absolute or relative.
11060type FixedOrPercent struct {
11061	// Calculated: [Output Only] Absolute value of VM instances calculated
11062	// based on the specific mode.
11063	//
11064	//
11065	// - If the value is fixed, then the calculated value is equal to the
11066	// fixed value.
11067	// - If the value is a percent, then the calculated value is percent/100
11068	// * targetSize. For example, the calculated value of a 80% of a managed
11069	// instance group with 150 instances would be (80/100 * 150) = 120 VM
11070	// instances. If there is a remainder, the number is rounded up.
11071	Calculated int64 `json:"calculated,omitempty"`
11072
11073	// Fixed: Specifies a fixed number of VM instances. This must be a
11074	// positive integer.
11075	Fixed int64 `json:"fixed,omitempty"`
11076
11077	// Percent: Specifies a percentage of instances between 0 to 100%,
11078	// inclusive. For example, specify 80 for 80%.
11079	Percent int64 `json:"percent,omitempty"`
11080
11081	// ForceSendFields is a list of field names (e.g. "Calculated") to
11082	// unconditionally include in API requests. By default, fields with
11083	// empty values are omitted from API requests. However, any non-pointer,
11084	// non-interface field appearing in ForceSendFields will be sent to the
11085	// server regardless of whether the field is empty or not. This may be
11086	// used to include empty fields in Patch requests.
11087	ForceSendFields []string `json:"-"`
11088
11089	// NullFields is a list of field names (e.g. "Calculated") to include in
11090	// API requests with the JSON null value. By default, fields with empty
11091	// values are omitted from API requests. However, any field with an
11092	// empty value appearing in NullFields will be sent to the server as
11093	// null. It is an error if a field in this list has a non-empty value.
11094	// This may be used to include null fields in Patch requests.
11095	NullFields []string `json:"-"`
11096}
11097
11098func (s *FixedOrPercent) MarshalJSON() ([]byte, error) {
11099	type NoMethod FixedOrPercent
11100	raw := NoMethod(*s)
11101	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11102}
11103
11104// ForwardingRule: Represents a Forwarding Rule resource.
11105//
11106// Forwarding rule resources in GCP can be either regional or global in
11107// scope:
11108//
11109// * Global
11110// (/compute/docs/reference/rest/{$api_version}/globalForwardingRules) *
11111// Regional
11112// (/compute/docs/reference/rest/{$api_version}/forwardingRules)
11113//
11114// A forwarding rule and its corresponding IP address represent the
11115// frontend configuration of a Google Cloud Platform load balancer.
11116// Forwarding rules can also reference target instances and Cloud VPN
11117// Classic gateways (targetVpnGateway).
11118//
11119// For more information, read Forwarding rule concepts and Using
11120// protocol forwarding.
11121//
11122// (== resource_for {$api_version}.forwardingRules ==) (== resource_for
11123// {$api_version}.globalForwardingRules ==) (== resource_for
11124// {$api_version}.regionForwardingRules ==)
11125type ForwardingRule struct {
11126	// IPAddress: IP address that this forwarding rule serves. When a client
11127	// sends traffic to this IP address, the forwarding rule directs the
11128	// traffic to the target that you specify in the forwarding rule.
11129	//
11130	// If you don't specify a reserved IP address, an ephemeral IP address
11131	// is assigned. Methods for specifying an IP address:
11132	//
11133	// * IPv4 dotted decimal, as in `100.1.2.3` * Full URL, as in
11134	// https://www.googleapis.com/compute/v1/projects/project_id/regions/region/addresses/address-name
11135	// * Partial URL or by name, as in:
11136	// - projects/project_id/regions/region/addresses/address-name
11137	// - regions/region/addresses/address-name
11138	// - global/addresses/address-name
11139	// - address-name
11140	//
11141	// The loadBalancingScheme and the forwarding rule's target determine
11142	// the type of IP address that you can use. For detailed information,
11143	// refer to IP address specifications
11144	// (/load-balancing/docs/forwarding-rule-concepts#ip_address_specificatio
11145	// ns).
11146	//
11147	// Must be set to `0.0.0.0` when the target is targetGrpcProxy that has
11148	// validateForProxyless field set to true.
11149	//
11150	// For Private Service Connect forwarding rules that forward traffic to
11151	// Google APIs, IP address must be provided.
11152	IPAddress string `json:"IPAddress,omitempty"`
11153
11154	// IPProtocol: The IP protocol to which this rule applies.
11155	//
11156	// For protocol forwarding, valid options are TCP, UDP, ESP, AH, SCTP
11157	// and ICMP.
11158	//
11159	// The valid IP protocols are different for different load balancing
11160	// products:
11161	// - Internal TCP/UDP Load Balancing: The load balancing scheme is
11162	// INTERNAL, and one of TCP, UDP or ALL is valid.
11163	// - Traffic Director: The load balancing scheme is
11164	// INTERNAL_SELF_MANAGED, and only TCP is valid.
11165	// - Internal HTTP(S) Load Balancing: The load balancing scheme is
11166	// INTERNAL_MANAGED, and only TCP is valid.
11167	// - HTTP(S), SSL Proxy, and TCP Proxy Load Balancing: The load
11168	// balancing scheme is EXTERNAL and only TCP is valid.
11169	// - Network Load Balancing: The load balancing scheme is EXTERNAL, and
11170	// one of TCP or UDP is valid.
11171	//
11172	// Possible values:
11173	//   "AH"
11174	//   "ESP"
11175	//   "ICMP"
11176	//   "SCTP"
11177	//   "TCP"
11178	//   "UDP"
11179	IPProtocol string `json:"IPProtocol,omitempty"`
11180
11181	// AllPorts: This field is used along with the backend_service field for
11182	// internal load balancing or with the target field for internal
11183	// TargetInstance. This field cannot be used with port or portRange
11184	// fields.
11185	//
11186	// When the load balancing scheme is INTERNAL and protocol is TCP/UDP,
11187	// specify this field to allow packets addressed to any ports will be
11188	// forwarded to the backends configured with this forwarding rule.
11189	AllPorts bool `json:"allPorts,omitempty"`
11190
11191	// AllowGlobalAccess: This field is used along with the backend_service
11192	// field for internal load balancing or with the target field for
11193	// internal TargetInstance. If the field is set to TRUE, clients can
11194	// access ILB from all regions. Otherwise only allows access from
11195	// clients in the same region as the internal load balancer.
11196	AllowGlobalAccess bool `json:"allowGlobalAccess,omitempty"`
11197
11198	// BackendService: Identifies the backend service to which the
11199	// forwarding rule sends traffic. Required for Internal TCP/UDP Load
11200	// Balancing and Network Load Balancing; must be omitted for all other
11201	// load balancer types.
11202	BackendService string `json:"backendService,omitempty"`
11203
11204	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
11205	// format.
11206	CreationTimestamp string `json:"creationTimestamp,omitempty"`
11207
11208	// Description: An optional description of this resource. Provide this
11209	// property when you create the resource.
11210	Description string `json:"description,omitempty"`
11211
11212	// Fingerprint: Fingerprint of this resource. A hash of the contents
11213	// stored in this object. This field is used in optimistic locking. This
11214	// field will be ignored when inserting a ForwardingRule. Include the
11215	// fingerprint in patch request to ensure that you do not overwrite
11216	// changes that were applied from another concurrent request.
11217	//
11218	// To see the latest fingerprint, make a get() request to retrieve a
11219	// ForwardingRule.
11220	Fingerprint string `json:"fingerprint,omitempty"`
11221
11222	// Id: [Output Only] The unique identifier for the resource. This
11223	// identifier is defined by the server.
11224	Id uint64 `json:"id,omitempty,string"`
11225
11226	// IpVersion: The IP Version that will be used by this forwarding rule.
11227	// Valid options are IPV4 or IPV6. This can only be specified for an
11228	// external global forwarding rule.
11229	//
11230	// Possible values:
11231	//   "IPV4"
11232	//   "IPV6"
11233	//   "UNSPECIFIED_VERSION"
11234	IpVersion string `json:"ipVersion,omitempty"`
11235
11236	// IsMirroringCollector: Indicates whether or not this load balancer can
11237	// be used as a collector for packet mirroring. To prevent mirroring
11238	// loops, instances behind this load balancer will not have their
11239	// traffic mirrored even if a PacketMirroring rule applies to them. This
11240	// can only be set to true for load balancers that have their
11241	// loadBalancingScheme set to INTERNAL.
11242	IsMirroringCollector bool `json:"isMirroringCollector,omitempty"`
11243
11244	// Kind: [Output Only] Type of the resource. Always
11245	// compute#forwardingRule for Forwarding Rule resources.
11246	Kind string `json:"kind,omitempty"`
11247
11248	// LabelFingerprint: A fingerprint for the labels being applied to this
11249	// resource, which is essentially a hash of the labels set used for
11250	// optimistic locking. The fingerprint is initially generated by Compute
11251	// Engine and changes after every request to modify or update labels.
11252	// You must always provide an up-to-date fingerprint hash in order to
11253	// update or change labels, otherwise the request will fail with error
11254	// 412 conditionNotMet.
11255	//
11256	// To see the latest fingerprint, make a get() request to retrieve a
11257	// ForwardingRule.
11258	LabelFingerprint string `json:"labelFingerprint,omitempty"`
11259
11260	// Labels: Labels for this resource. These can only be added or modified
11261	// by the setLabels method. Each label key/value pair must comply with
11262	// RFC1035. Label values may be empty.
11263	Labels map[string]string `json:"labels,omitempty"`
11264
11265	// LoadBalancingScheme: Specifies the forwarding rule type.
11266	//
11267	//
11268	// - EXTERNAL is used for:
11269	// - Classic Cloud VPN gateways
11270	// - Protocol forwarding to VMs from an external IP address
11271	// - HTTP(S), SSL Proxy, TCP Proxy, and Network Load Balancing
11272	// - INTERNAL is used for:
11273	// - Protocol forwarding to VMs from an internal IP address
11274	// - Internal TCP/UDP Load Balancing
11275	// - INTERNAL_MANAGED is used for:
11276	// - Internal HTTP(S) Load Balancing
11277	// - INTERNAL_SELF_MANAGED is used for:
11278	// - Traffic Director
11279	//
11280	// For more information about forwarding rules, refer to Forwarding rule
11281	// concepts.
11282	//
11283	// Possible values:
11284	//   "EXTERNAL"
11285	//   "INTERNAL"
11286	//   "INTERNAL_MANAGED"
11287	//   "INTERNAL_SELF_MANAGED"
11288	//   "INVALID"
11289	LoadBalancingScheme string `json:"loadBalancingScheme,omitempty"`
11290
11291	// MetadataFilters: Opaque filter criteria used by Loadbalancer to
11292	// restrict routing configuration to a limited set of xDS compliant
11293	// clients. In their xDS requests to Loadbalancer, xDS clients present
11294	// node metadata. When there is a match, the relevant configuration is
11295	// made available to those proxies. Otherwise, all the resources (e.g.
11296	// TargetHttpProxy, UrlMap) referenced by the ForwardingRule will not be
11297	// visible to those proxies.
11298	// For each metadataFilter in this list, if its filterMatchCriteria is
11299	// set to MATCH_ANY, at least one of the filterLabels must match the
11300	// corresponding label provided in the metadata. If its
11301	// filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels
11302	// must match with corresponding labels provided in the metadata. If
11303	// multiple metadataFilters are specified, all of them need to be
11304	// satisfied in order to be considered a match.
11305	// metadataFilters specified here will be applifed before those
11306	// specified in the UrlMap that this ForwardingRule
11307	// references.
11308	// metadataFilters only applies to Loadbalancers that have their
11309	// loadBalancingScheme set to INTERNAL_SELF_MANAGED.
11310	MetadataFilters []*MetadataFilter `json:"metadataFilters,omitempty"`
11311
11312	// Name: Name of the resource; provided by the client when the resource
11313	// is created. The name must be 1-63 characters long, and comply with
11314	// RFC1035. Specifically, the name must be 1-63 characters long and
11315	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
11316	// the first character must be a lowercase letter, and all following
11317	// characters must be a dash, lowercase letter, or digit, except the
11318	// last character, which cannot be a dash.
11319	Name string `json:"name,omitempty"`
11320
11321	// Network: This field is not used for external load balancing.
11322	//
11323	// For Internal TCP/UDP Load Balancing, this field identifies the
11324	// network that the load balanced IP should belong to for this
11325	// Forwarding Rule. If this field is not specified, the default network
11326	// will be used.
11327	//
11328	// For Private Service Connect forwarding rules that forward traffic to
11329	// Google APIs, a network must be provided.
11330	Network string `json:"network,omitempty"`
11331
11332	// NetworkTier: This signifies the networking tier used for configuring
11333	// this load balancer and can only take the following values: PREMIUM,
11334	// STANDARD.
11335	//
11336	// For regional ForwardingRule, the valid values are PREMIUM and
11337	// STANDARD. For GlobalForwardingRule, the valid value is PREMIUM.
11338	//
11339	// If this field is not specified, it is assumed to be PREMIUM. If
11340	// IPAddress is specified, this value must be equal to the networkTier
11341	// of the Address.
11342	//
11343	// Possible values:
11344	//   "PREMIUM"
11345	//   "STANDARD"
11346	NetworkTier string `json:"networkTier,omitempty"`
11347
11348	// PortRange: This field can be used only if: * Load balancing scheme is
11349	// one of EXTERNAL,  INTERNAL_SELF_MANAGED or INTERNAL_MANAGED, and *
11350	// IPProtocol is one of TCP, UDP, or SCTP.
11351	//
11352	// Packets addressed to ports in the specified range will be forwarded
11353	// to target or  backend_service. You can only use one of ports,
11354	// port_range, or allPorts. The three are mutually exclusive. Forwarding
11355	// rules with the same [IPAddress, IPProtocol] pair must have disjoint
11356	// port ranges.
11357	//
11358	// Some types of forwarding target have constraints on the acceptable
11359	// ports:
11360	// - TargetHttpProxy: 80, 8080
11361	// - TargetHttpsProxy: 443
11362	// - TargetGrpcProxy: no constraints
11363	// - TargetTcpProxy: 25, 43, 110, 143, 195, 443, 465, 587, 700, 993,
11364	// 995, 1688, 1883, 5222
11365	// - TargetSslProxy: 25, 43, 110, 143, 195, 443, 465, 587, 700, 993,
11366	// 995, 1688, 1883, 5222
11367	// - TargetVpnGateway: 500, 4500
11368	PortRange string `json:"portRange,omitempty"`
11369
11370	// Ports: The ports field is only supported when the forwarding rule
11371	// references a backend_service directly. Supported load balancing
11372	// products are Internal TCP/UDP Load Balancing and Network Load
11373	// Balancing. Only packets addressed to the specified list of ports are
11374	// forwarded to backends.
11375	//
11376	// You can only use one of ports and port_range, or allPorts. The three
11377	// are mutually exclusive.
11378	//
11379	// You can specify a list of up to five ports, which can be
11380	// non-contiguous.
11381	//
11382	// For Internal TCP/UDP Load Balancing, if you specify allPorts, you
11383	// should not specify ports.
11384	//
11385	// For more information, see Port specifications
11386	// (/load-balancing/docs/forwarding-rule-concepts#port_specifications).
11387	Ports []string `json:"ports,omitempty"`
11388
11389	// PscConnectionId: [Output Only] The PSC connection id of the PSC
11390	// Forwarding Rule.
11391	PscConnectionId uint64 `json:"pscConnectionId,omitempty,string"`
11392
11393	// Region: [Output Only] URL of the region where the regional forwarding
11394	// rule resides. This field is not applicable to global forwarding
11395	// rules. You must specify this field as part of the HTTP request URL.
11396	// It is not settable as a field in the request body.
11397	Region string `json:"region,omitempty"`
11398
11399	// SelfLink: [Output Only] Server-defined URL for the resource.
11400	SelfLink string `json:"selfLink,omitempty"`
11401
11402	// ServiceDirectoryRegistrations: Service Directory resources to
11403	// register this forwarding rule with. Currently, only supports a single
11404	// Service Directory resource.
11405	//
11406	// It is only supported for Internal TCP/UDP Load Balancing and Internal
11407	// HTTP(S) Load Balancing.
11408	ServiceDirectoryRegistrations []*ForwardingRuleServiceDirectoryRegistration `json:"serviceDirectoryRegistrations,omitempty"`
11409
11410	// ServiceLabel: An optional prefix to the service name for this
11411	// Forwarding Rule. If specified, the prefix is the first label of the
11412	// fully qualified service name.
11413	//
11414	// The label must be 1-63 characters long, and comply with RFC1035.
11415	// Specifically, the label must be 1-63 characters long and match the
11416	// regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
11417	// character must be a lowercase letter, and all following characters
11418	// must be a dash, lowercase letter, or digit, except the last
11419	// character, which cannot be a dash.
11420	//
11421	// This field is only used for internal load balancing.
11422	ServiceLabel string `json:"serviceLabel,omitempty"`
11423
11424	// ServiceName: [Output Only] The internal fully qualified service name
11425	// for this Forwarding Rule.
11426	//
11427	// This field is only used for internal load balancing.
11428	ServiceName string `json:"serviceName,omitempty"`
11429
11430	// Subnetwork: This field is only used for internal load balancing.
11431	//
11432	// For internal load balancing, this field identifies the subnetwork
11433	// that the load balanced IP should belong to for this Forwarding
11434	// Rule.
11435	//
11436	// If the network specified is in auto subnet mode, this field is
11437	// optional. However, if the network is in custom subnet mode, a
11438	// subnetwork must be specified.
11439	Subnetwork string `json:"subnetwork,omitempty"`
11440
11441	Target string `json:"target,omitempty"`
11442
11443	// ServerResponse contains the HTTP response code and headers from the
11444	// server.
11445	googleapi.ServerResponse `json:"-"`
11446
11447	// ForceSendFields is a list of field names (e.g. "IPAddress") to
11448	// unconditionally include in API requests. By default, fields with
11449	// empty values are omitted from API requests. However, any non-pointer,
11450	// non-interface field appearing in ForceSendFields will be sent to the
11451	// server regardless of whether the field is empty or not. This may be
11452	// used to include empty fields in Patch requests.
11453	ForceSendFields []string `json:"-"`
11454
11455	// NullFields is a list of field names (e.g. "IPAddress") to include in
11456	// API requests with the JSON null value. By default, fields with empty
11457	// values are omitted from API requests. However, any field with an
11458	// empty value appearing in NullFields will be sent to the server as
11459	// null. It is an error if a field in this list has a non-empty value.
11460	// This may be used to include null fields in Patch requests.
11461	NullFields []string `json:"-"`
11462}
11463
11464func (s *ForwardingRule) MarshalJSON() ([]byte, error) {
11465	type NoMethod ForwardingRule
11466	raw := NoMethod(*s)
11467	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11468}
11469
11470type ForwardingRuleAggregatedList struct {
11471	// Id: [Output Only] Unique identifier for the resource; defined by the
11472	// server.
11473	Id string `json:"id,omitempty"`
11474
11475	// Items: A list of ForwardingRulesScopedList resources.
11476	Items map[string]ForwardingRulesScopedList `json:"items,omitempty"`
11477
11478	// Kind: [Output Only] Type of resource. Always
11479	// compute#forwardingRuleAggregatedList for lists of forwarding rules.
11480	Kind string `json:"kind,omitempty"`
11481
11482	// NextPageToken: [Output Only] This token allows you to get the next
11483	// page of results for list requests. If the number of results is larger
11484	// than maxResults, use the nextPageToken as a value for the query
11485	// parameter pageToken in the next list request. Subsequent list
11486	// requests will have their own nextPageToken to continue paging through
11487	// the results.
11488	NextPageToken string `json:"nextPageToken,omitempty"`
11489
11490	// SelfLink: [Output Only] Server-defined URL for this resource.
11491	SelfLink string `json:"selfLink,omitempty"`
11492
11493	// Unreachables: [Output Only] Unreachable resources.
11494	Unreachables []string `json:"unreachables,omitempty"`
11495
11496	// Warning: [Output Only] Informational warning message.
11497	Warning *ForwardingRuleAggregatedListWarning `json:"warning,omitempty"`
11498
11499	// ServerResponse contains the HTTP response code and headers from the
11500	// server.
11501	googleapi.ServerResponse `json:"-"`
11502
11503	// ForceSendFields is a list of field names (e.g. "Id") to
11504	// unconditionally include in API requests. By default, fields with
11505	// empty values are omitted from API requests. However, any non-pointer,
11506	// non-interface field appearing in ForceSendFields will be sent to the
11507	// server regardless of whether the field is empty or not. This may be
11508	// used to include empty fields in Patch requests.
11509	ForceSendFields []string `json:"-"`
11510
11511	// NullFields is a list of field names (e.g. "Id") to include in API
11512	// requests with the JSON null value. By default, fields with empty
11513	// values are omitted from API requests. However, any field with an
11514	// empty value appearing in NullFields will be sent to the server as
11515	// null. It is an error if a field in this list has a non-empty value.
11516	// This may be used to include null fields in Patch requests.
11517	NullFields []string `json:"-"`
11518}
11519
11520func (s *ForwardingRuleAggregatedList) MarshalJSON() ([]byte, error) {
11521	type NoMethod ForwardingRuleAggregatedList
11522	raw := NoMethod(*s)
11523	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11524}
11525
11526// ForwardingRuleAggregatedListWarning: [Output Only] Informational
11527// warning message.
11528type ForwardingRuleAggregatedListWarning struct {
11529	// Code: [Output Only] A warning code, if applicable. For example,
11530	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
11531	// the response.
11532	//
11533	// Possible values:
11534	//   "CLEANUP_FAILED"
11535	//   "DEPRECATED_RESOURCE_USED"
11536	//   "DEPRECATED_TYPE_USED"
11537	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
11538	//   "EXPERIMENTAL_TYPE_USED"
11539	//   "EXTERNAL_API_WARNING"
11540	//   "FIELD_VALUE_OVERRIDEN"
11541	//   "INJECTED_KERNELS_DEPRECATED"
11542	//   "LARGE_DEPLOYMENT_WARNING"
11543	//   "MISSING_TYPE_DEPENDENCY"
11544	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
11545	//   "NEXT_HOP_CANNOT_IP_FORWARD"
11546	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
11547	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
11548	//   "NEXT_HOP_NOT_RUNNING"
11549	//   "NOT_CRITICAL_ERROR"
11550	//   "NO_RESULTS_ON_PAGE"
11551	//   "PARTIAL_SUCCESS"
11552	//   "REQUIRED_TOS_AGREEMENT"
11553	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
11554	//   "RESOURCE_NOT_DELETED"
11555	//   "SCHEMA_VALIDATION_IGNORED"
11556	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
11557	//   "UNDECLARED_PROPERTIES"
11558	//   "UNREACHABLE"
11559	Code string `json:"code,omitempty"`
11560
11561	// Data: [Output Only] Metadata about this warning in key: value format.
11562	// For example:
11563	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
11564	Data []*ForwardingRuleAggregatedListWarningData `json:"data,omitempty"`
11565
11566	// Message: [Output Only] A human-readable description of the warning
11567	// code.
11568	Message string `json:"message,omitempty"`
11569
11570	// ForceSendFields is a list of field names (e.g. "Code") to
11571	// unconditionally include in API requests. By default, fields with
11572	// empty values are omitted from API requests. However, any non-pointer,
11573	// non-interface field appearing in ForceSendFields will be sent to the
11574	// server regardless of whether the field is empty or not. This may be
11575	// used to include empty fields in Patch requests.
11576	ForceSendFields []string `json:"-"`
11577
11578	// NullFields is a list of field names (e.g. "Code") to include in API
11579	// requests with the JSON null value. By default, fields with empty
11580	// values are omitted from API requests. However, any field with an
11581	// empty value appearing in NullFields will be sent to the server as
11582	// null. It is an error if a field in this list has a non-empty value.
11583	// This may be used to include null fields in Patch requests.
11584	NullFields []string `json:"-"`
11585}
11586
11587func (s *ForwardingRuleAggregatedListWarning) MarshalJSON() ([]byte, error) {
11588	type NoMethod ForwardingRuleAggregatedListWarning
11589	raw := NoMethod(*s)
11590	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11591}
11592
11593type ForwardingRuleAggregatedListWarningData struct {
11594	// Key: [Output Only] A key that provides more detail on the warning
11595	// being returned. For example, for warnings where there are no results
11596	// in a list request for a particular zone, this key might be scope and
11597	// the key value might be the zone name. Other examples might be a key
11598	// indicating a deprecated resource and a suggested replacement, or a
11599	// warning about invalid network settings (for example, if an instance
11600	// attempts to perform IP forwarding but is not enabled for IP
11601	// forwarding).
11602	Key string `json:"key,omitempty"`
11603
11604	// Value: [Output Only] A warning data value corresponding to the key.
11605	Value string `json:"value,omitempty"`
11606
11607	// ForceSendFields is a list of field names (e.g. "Key") to
11608	// unconditionally include in API requests. By default, fields with
11609	// empty values are omitted from API requests. However, any non-pointer,
11610	// non-interface field appearing in ForceSendFields will be sent to the
11611	// server regardless of whether the field is empty or not. This may be
11612	// used to include empty fields in Patch requests.
11613	ForceSendFields []string `json:"-"`
11614
11615	// NullFields is a list of field names (e.g. "Key") to include in API
11616	// requests with the JSON null value. By default, fields with empty
11617	// values are omitted from API requests. However, any field with an
11618	// empty value appearing in NullFields will be sent to the server as
11619	// null. It is an error if a field in this list has a non-empty value.
11620	// This may be used to include null fields in Patch requests.
11621	NullFields []string `json:"-"`
11622}
11623
11624func (s *ForwardingRuleAggregatedListWarningData) MarshalJSON() ([]byte, error) {
11625	type NoMethod ForwardingRuleAggregatedListWarningData
11626	raw := NoMethod(*s)
11627	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11628}
11629
11630// ForwardingRuleList: Contains a list of ForwardingRule resources.
11631type ForwardingRuleList struct {
11632	// Id: [Output Only] Unique identifier for the resource; defined by the
11633	// server.
11634	Id string `json:"id,omitempty"`
11635
11636	// Items: A list of ForwardingRule resources.
11637	Items []*ForwardingRule `json:"items,omitempty"`
11638
11639	// Kind: Type of resource.
11640	Kind string `json:"kind,omitempty"`
11641
11642	// NextPageToken: [Output Only] This token allows you to get the next
11643	// page of results for list requests. If the number of results is larger
11644	// than maxResults, use the nextPageToken as a value for the query
11645	// parameter pageToken in the next list request. Subsequent list
11646	// requests will have their own nextPageToken to continue paging through
11647	// the results.
11648	NextPageToken string `json:"nextPageToken,omitempty"`
11649
11650	// SelfLink: [Output Only] Server-defined URL for this resource.
11651	SelfLink string `json:"selfLink,omitempty"`
11652
11653	// Warning: [Output Only] Informational warning message.
11654	Warning *ForwardingRuleListWarning `json:"warning,omitempty"`
11655
11656	// ServerResponse contains the HTTP response code and headers from the
11657	// server.
11658	googleapi.ServerResponse `json:"-"`
11659
11660	// ForceSendFields is a list of field names (e.g. "Id") to
11661	// unconditionally include in API requests. By default, fields with
11662	// empty values are omitted from API requests. However, any non-pointer,
11663	// non-interface field appearing in ForceSendFields will be sent to the
11664	// server regardless of whether the field is empty or not. This may be
11665	// used to include empty fields in Patch requests.
11666	ForceSendFields []string `json:"-"`
11667
11668	// NullFields is a list of field names (e.g. "Id") to include in API
11669	// requests with the JSON null value. By default, fields with empty
11670	// values are omitted from API requests. However, any field with an
11671	// empty value appearing in NullFields will be sent to the server as
11672	// null. It is an error if a field in this list has a non-empty value.
11673	// This may be used to include null fields in Patch requests.
11674	NullFields []string `json:"-"`
11675}
11676
11677func (s *ForwardingRuleList) MarshalJSON() ([]byte, error) {
11678	type NoMethod ForwardingRuleList
11679	raw := NoMethod(*s)
11680	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11681}
11682
11683// ForwardingRuleListWarning: [Output Only] Informational warning
11684// message.
11685type ForwardingRuleListWarning struct {
11686	// Code: [Output Only] A warning code, if applicable. For example,
11687	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
11688	// the response.
11689	//
11690	// Possible values:
11691	//   "CLEANUP_FAILED"
11692	//   "DEPRECATED_RESOURCE_USED"
11693	//   "DEPRECATED_TYPE_USED"
11694	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
11695	//   "EXPERIMENTAL_TYPE_USED"
11696	//   "EXTERNAL_API_WARNING"
11697	//   "FIELD_VALUE_OVERRIDEN"
11698	//   "INJECTED_KERNELS_DEPRECATED"
11699	//   "LARGE_DEPLOYMENT_WARNING"
11700	//   "MISSING_TYPE_DEPENDENCY"
11701	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
11702	//   "NEXT_HOP_CANNOT_IP_FORWARD"
11703	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
11704	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
11705	//   "NEXT_HOP_NOT_RUNNING"
11706	//   "NOT_CRITICAL_ERROR"
11707	//   "NO_RESULTS_ON_PAGE"
11708	//   "PARTIAL_SUCCESS"
11709	//   "REQUIRED_TOS_AGREEMENT"
11710	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
11711	//   "RESOURCE_NOT_DELETED"
11712	//   "SCHEMA_VALIDATION_IGNORED"
11713	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
11714	//   "UNDECLARED_PROPERTIES"
11715	//   "UNREACHABLE"
11716	Code string `json:"code,omitempty"`
11717
11718	// Data: [Output Only] Metadata about this warning in key: value format.
11719	// For example:
11720	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
11721	Data []*ForwardingRuleListWarningData `json:"data,omitempty"`
11722
11723	// Message: [Output Only] A human-readable description of the warning
11724	// code.
11725	Message string `json:"message,omitempty"`
11726
11727	// ForceSendFields is a list of field names (e.g. "Code") to
11728	// unconditionally include in API requests. By default, fields with
11729	// empty values are omitted from API requests. However, any non-pointer,
11730	// non-interface field appearing in ForceSendFields will be sent to the
11731	// server regardless of whether the field is empty or not. This may be
11732	// used to include empty fields in Patch requests.
11733	ForceSendFields []string `json:"-"`
11734
11735	// NullFields is a list of field names (e.g. "Code") to include in API
11736	// requests with the JSON null value. By default, fields with empty
11737	// values are omitted from API requests. However, any field with an
11738	// empty value appearing in NullFields will be sent to the server as
11739	// null. It is an error if a field in this list has a non-empty value.
11740	// This may be used to include null fields in Patch requests.
11741	NullFields []string `json:"-"`
11742}
11743
11744func (s *ForwardingRuleListWarning) MarshalJSON() ([]byte, error) {
11745	type NoMethod ForwardingRuleListWarning
11746	raw := NoMethod(*s)
11747	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11748}
11749
11750type ForwardingRuleListWarningData struct {
11751	// Key: [Output Only] A key that provides more detail on the warning
11752	// being returned. For example, for warnings where there are no results
11753	// in a list request for a particular zone, this key might be scope and
11754	// the key value might be the zone name. Other examples might be a key
11755	// indicating a deprecated resource and a suggested replacement, or a
11756	// warning about invalid network settings (for example, if an instance
11757	// attempts to perform IP forwarding but is not enabled for IP
11758	// forwarding).
11759	Key string `json:"key,omitempty"`
11760
11761	// Value: [Output Only] A warning data value corresponding to the key.
11762	Value string `json:"value,omitempty"`
11763
11764	// ForceSendFields is a list of field names (e.g. "Key") to
11765	// unconditionally include in API requests. By default, fields with
11766	// empty values are omitted from API requests. However, any non-pointer,
11767	// non-interface field appearing in ForceSendFields will be sent to the
11768	// server regardless of whether the field is empty or not. This may be
11769	// used to include empty fields in Patch requests.
11770	ForceSendFields []string `json:"-"`
11771
11772	// NullFields is a list of field names (e.g. "Key") to include in API
11773	// requests with the JSON null value. By default, fields with empty
11774	// values are omitted from API requests. However, any field with an
11775	// empty value appearing in NullFields will be sent to the server as
11776	// null. It is an error if a field in this list has a non-empty value.
11777	// This may be used to include null fields in Patch requests.
11778	NullFields []string `json:"-"`
11779}
11780
11781func (s *ForwardingRuleListWarningData) MarshalJSON() ([]byte, error) {
11782	type NoMethod ForwardingRuleListWarningData
11783	raw := NoMethod(*s)
11784	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11785}
11786
11787type ForwardingRuleReference struct {
11788	ForwardingRule string `json:"forwardingRule,omitempty"`
11789
11790	// ForceSendFields is a list of field names (e.g. "ForwardingRule") to
11791	// unconditionally include in API requests. By default, fields with
11792	// empty values are omitted from API requests. However, any non-pointer,
11793	// non-interface field appearing in ForceSendFields will be sent to the
11794	// server regardless of whether the field is empty or not. This may be
11795	// used to include empty fields in Patch requests.
11796	ForceSendFields []string `json:"-"`
11797
11798	// NullFields is a list of field names (e.g. "ForwardingRule") to
11799	// include in API requests with the JSON null value. By default, fields
11800	// with empty values are omitted from API requests. However, any field
11801	// with an empty value appearing in NullFields will be sent to the
11802	// server as null. It is an error if a field in this list has a
11803	// non-empty value. This may be used to include null fields in Patch
11804	// requests.
11805	NullFields []string `json:"-"`
11806}
11807
11808func (s *ForwardingRuleReference) MarshalJSON() ([]byte, error) {
11809	type NoMethod ForwardingRuleReference
11810	raw := NoMethod(*s)
11811	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11812}
11813
11814// ForwardingRuleServiceDirectoryRegistration: Describes the
11815// auto-registration of the Forwarding Rule to Service Directory. The
11816// region and project of the Service Directory resource generated from
11817// this registration will be the same as this Forwarding Rule.
11818type ForwardingRuleServiceDirectoryRegistration struct {
11819	// Namespace: Service Directory namespace to register the forwarding
11820	// rule under.
11821	Namespace string `json:"namespace,omitempty"`
11822
11823	// Service: Service Directory service to register the forwarding rule
11824	// under.
11825	Service string `json:"service,omitempty"`
11826
11827	// ServiceDirectoryRegion: [Optional] Service Directory region to
11828	// register this global forwarding rule under. Default to "us-central1".
11829	// Only used for PSC for Google APIs. All PSC for Google APIs Forwarding
11830	// Rules on the same network should use the same Service Directory
11831	// region.
11832	ServiceDirectoryRegion string `json:"serviceDirectoryRegion,omitempty"`
11833
11834	// ForceSendFields is a list of field names (e.g. "Namespace") to
11835	// unconditionally include in API requests. By default, fields with
11836	// empty values are omitted from API requests. However, any non-pointer,
11837	// non-interface field appearing in ForceSendFields will be sent to the
11838	// server regardless of whether the field is empty or not. This may be
11839	// used to include empty fields in Patch requests.
11840	ForceSendFields []string `json:"-"`
11841
11842	// NullFields is a list of field names (e.g. "Namespace") to include in
11843	// API requests with the JSON null value. By default, fields with empty
11844	// values are omitted from API requests. However, any field with an
11845	// empty value appearing in NullFields will be sent to the server as
11846	// null. It is an error if a field in this list has a non-empty value.
11847	// This may be used to include null fields in Patch requests.
11848	NullFields []string `json:"-"`
11849}
11850
11851func (s *ForwardingRuleServiceDirectoryRegistration) MarshalJSON() ([]byte, error) {
11852	type NoMethod ForwardingRuleServiceDirectoryRegistration
11853	raw := NoMethod(*s)
11854	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11855}
11856
11857type ForwardingRulesScopedList struct {
11858	// ForwardingRules: A list of forwarding rules contained in this scope.
11859	ForwardingRules []*ForwardingRule `json:"forwardingRules,omitempty"`
11860
11861	// Warning: Informational warning which replaces the list of forwarding
11862	// rules when the list is empty.
11863	Warning *ForwardingRulesScopedListWarning `json:"warning,omitempty"`
11864
11865	// ForceSendFields is a list of field names (e.g. "ForwardingRules") to
11866	// unconditionally include in API requests. By default, fields with
11867	// empty values are omitted from API requests. However, any non-pointer,
11868	// non-interface field appearing in ForceSendFields will be sent to the
11869	// server regardless of whether the field is empty or not. This may be
11870	// used to include empty fields in Patch requests.
11871	ForceSendFields []string `json:"-"`
11872
11873	// NullFields is a list of field names (e.g. "ForwardingRules") to
11874	// include in API requests with the JSON null value. By default, fields
11875	// with empty values are omitted from API requests. However, any field
11876	// with an empty value appearing in NullFields will be sent to the
11877	// server as null. It is an error if a field in this list has a
11878	// non-empty value. This may be used to include null fields in Patch
11879	// requests.
11880	NullFields []string `json:"-"`
11881}
11882
11883func (s *ForwardingRulesScopedList) MarshalJSON() ([]byte, error) {
11884	type NoMethod ForwardingRulesScopedList
11885	raw := NoMethod(*s)
11886	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11887}
11888
11889// ForwardingRulesScopedListWarning: Informational warning which
11890// replaces the list of forwarding rules when the list is empty.
11891type ForwardingRulesScopedListWarning struct {
11892	// Code: [Output Only] A warning code, if applicable. For example,
11893	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
11894	// the response.
11895	//
11896	// Possible values:
11897	//   "CLEANUP_FAILED"
11898	//   "DEPRECATED_RESOURCE_USED"
11899	//   "DEPRECATED_TYPE_USED"
11900	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
11901	//   "EXPERIMENTAL_TYPE_USED"
11902	//   "EXTERNAL_API_WARNING"
11903	//   "FIELD_VALUE_OVERRIDEN"
11904	//   "INJECTED_KERNELS_DEPRECATED"
11905	//   "LARGE_DEPLOYMENT_WARNING"
11906	//   "MISSING_TYPE_DEPENDENCY"
11907	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
11908	//   "NEXT_HOP_CANNOT_IP_FORWARD"
11909	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
11910	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
11911	//   "NEXT_HOP_NOT_RUNNING"
11912	//   "NOT_CRITICAL_ERROR"
11913	//   "NO_RESULTS_ON_PAGE"
11914	//   "PARTIAL_SUCCESS"
11915	//   "REQUIRED_TOS_AGREEMENT"
11916	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
11917	//   "RESOURCE_NOT_DELETED"
11918	//   "SCHEMA_VALIDATION_IGNORED"
11919	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
11920	//   "UNDECLARED_PROPERTIES"
11921	//   "UNREACHABLE"
11922	Code string `json:"code,omitempty"`
11923
11924	// Data: [Output Only] Metadata about this warning in key: value format.
11925	// For example:
11926	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
11927	Data []*ForwardingRulesScopedListWarningData `json:"data,omitempty"`
11928
11929	// Message: [Output Only] A human-readable description of the warning
11930	// code.
11931	Message string `json:"message,omitempty"`
11932
11933	// ForceSendFields is a list of field names (e.g. "Code") to
11934	// unconditionally include in API requests. By default, fields with
11935	// empty values are omitted from API requests. However, any non-pointer,
11936	// non-interface field appearing in ForceSendFields will be sent to the
11937	// server regardless of whether the field is empty or not. This may be
11938	// used to include empty fields in Patch requests.
11939	ForceSendFields []string `json:"-"`
11940
11941	// NullFields is a list of field names (e.g. "Code") to include in API
11942	// requests with the JSON null value. By default, fields with empty
11943	// values are omitted from API requests. However, any field with an
11944	// empty value appearing in NullFields will be sent to the server as
11945	// null. It is an error if a field in this list has a non-empty value.
11946	// This may be used to include null fields in Patch requests.
11947	NullFields []string `json:"-"`
11948}
11949
11950func (s *ForwardingRulesScopedListWarning) MarshalJSON() ([]byte, error) {
11951	type NoMethod ForwardingRulesScopedListWarning
11952	raw := NoMethod(*s)
11953	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11954}
11955
11956type ForwardingRulesScopedListWarningData struct {
11957	// Key: [Output Only] A key that provides more detail on the warning
11958	// being returned. For example, for warnings where there are no results
11959	// in a list request for a particular zone, this key might be scope and
11960	// the key value might be the zone name. Other examples might be a key
11961	// indicating a deprecated resource and a suggested replacement, or a
11962	// warning about invalid network settings (for example, if an instance
11963	// attempts to perform IP forwarding but is not enabled for IP
11964	// forwarding).
11965	Key string `json:"key,omitempty"`
11966
11967	// Value: [Output Only] A warning data value corresponding to the key.
11968	Value string `json:"value,omitempty"`
11969
11970	// ForceSendFields is a list of field names (e.g. "Key") to
11971	// unconditionally include in API requests. By default, fields with
11972	// empty values are omitted from API requests. However, any non-pointer,
11973	// non-interface field appearing in ForceSendFields will be sent to the
11974	// server regardless of whether the field is empty or not. This may be
11975	// used to include empty fields in Patch requests.
11976	ForceSendFields []string `json:"-"`
11977
11978	// NullFields is a list of field names (e.g. "Key") to include in API
11979	// requests with the JSON null value. By default, fields with empty
11980	// values are omitted from API requests. However, any field with an
11981	// empty value appearing in NullFields will be sent to the server as
11982	// null. It is an error if a field in this list has a non-empty value.
11983	// This may be used to include null fields in Patch requests.
11984	NullFields []string `json:"-"`
11985}
11986
11987func (s *ForwardingRulesScopedListWarningData) MarshalJSON() ([]byte, error) {
11988	type NoMethod ForwardingRulesScopedListWarningData
11989	raw := NoMethod(*s)
11990	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11991}
11992
11993type GRPCHealthCheck struct {
11994	// GrpcServiceName: The gRPC service name for the health check. This
11995	// field is optional. The value of grpc_service_name has the following
11996	// meanings by convention:
11997	// - Empty service_name means the overall status of all services at the
11998	// backend.
11999	// - Non-empty service_name means the health of that gRPC service, as
12000	// defined by the owner of the service.
12001	// The grpc_service_name can only be ASCII.
12002	GrpcServiceName string `json:"grpcServiceName,omitempty"`
12003
12004	// Port: The port number for the health check request. Must be specified
12005	// if port_name and port_specification are not set or if
12006	// port_specification is USE_FIXED_PORT. Valid values are 1 through
12007	// 65535.
12008	Port int64 `json:"port,omitempty"`
12009
12010	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
12011	// both port and port_name are defined, port takes precedence. The
12012	// port_name should conform to RFC1035.
12013	PortName string `json:"portName,omitempty"`
12014
12015	// PortSpecification: Specifies how port is selected for health
12016	// checking, can be one of following values:
12017	// USE_FIXED_PORT: The port number in port is used for health
12018	// checking.
12019	// USE_NAMED_PORT: The portName is used for health
12020	// checking.
12021	// USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for
12022	// each network endpoint is used for health checking. For other
12023	// backends, the port or named port specified in the Backend Service is
12024	// used for health checking.
12025	//
12026	//
12027	// If not specified, gRPC health check follows behavior specified in
12028	// port and portName fields.
12029	//
12030	// Possible values:
12031	//   "USE_FIXED_PORT"
12032	//   "USE_NAMED_PORT"
12033	//   "USE_SERVING_PORT"
12034	PortSpecification string `json:"portSpecification,omitempty"`
12035
12036	// ForceSendFields is a list of field names (e.g. "GrpcServiceName") to
12037	// unconditionally include in API requests. By default, fields with
12038	// empty values are omitted from API requests. However, any non-pointer,
12039	// non-interface field appearing in ForceSendFields will be sent to the
12040	// server regardless of whether the field is empty or not. This may be
12041	// used to include empty fields in Patch requests.
12042	ForceSendFields []string `json:"-"`
12043
12044	// NullFields is a list of field names (e.g. "GrpcServiceName") to
12045	// include in API requests with the JSON null value. By default, fields
12046	// with empty values are omitted from API requests. However, any field
12047	// with an empty value appearing in NullFields will be sent to the
12048	// server as null. It is an error if a field in this list has a
12049	// non-empty value. This may be used to include null fields in Patch
12050	// requests.
12051	NullFields []string `json:"-"`
12052}
12053
12054func (s *GRPCHealthCheck) MarshalJSON() ([]byte, error) {
12055	type NoMethod GRPCHealthCheck
12056	raw := NoMethod(*s)
12057	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12058}
12059
12060type GlobalNetworkEndpointGroupsAttachEndpointsRequest struct {
12061	// NetworkEndpoints: The list of network endpoints to be attached.
12062	NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"`
12063
12064	// ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to
12065	// unconditionally include in API requests. By default, fields with
12066	// empty values are omitted from API requests. However, any non-pointer,
12067	// non-interface field appearing in ForceSendFields will be sent to the
12068	// server regardless of whether the field is empty or not. This may be
12069	// used to include empty fields in Patch requests.
12070	ForceSendFields []string `json:"-"`
12071
12072	// NullFields is a list of field names (e.g. "NetworkEndpoints") to
12073	// include in API requests with the JSON null value. By default, fields
12074	// with empty values are omitted from API requests. However, any field
12075	// with an empty value appearing in NullFields will be sent to the
12076	// server as null. It is an error if a field in this list has a
12077	// non-empty value. This may be used to include null fields in Patch
12078	// requests.
12079	NullFields []string `json:"-"`
12080}
12081
12082func (s *GlobalNetworkEndpointGroupsAttachEndpointsRequest) MarshalJSON() ([]byte, error) {
12083	type NoMethod GlobalNetworkEndpointGroupsAttachEndpointsRequest
12084	raw := NoMethod(*s)
12085	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12086}
12087
12088type GlobalNetworkEndpointGroupsDetachEndpointsRequest struct {
12089	// NetworkEndpoints: The list of network endpoints to be detached.
12090	NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"`
12091
12092	// ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to
12093	// unconditionally include in API requests. By default, fields with
12094	// empty values are omitted from API requests. However, any non-pointer,
12095	// non-interface field appearing in ForceSendFields will be sent to the
12096	// server regardless of whether the field is empty or not. This may be
12097	// used to include empty fields in Patch requests.
12098	ForceSendFields []string `json:"-"`
12099
12100	// NullFields is a list of field names (e.g. "NetworkEndpoints") to
12101	// include in API requests with the JSON null value. By default, fields
12102	// with empty values are omitted from API requests. However, any field
12103	// with an empty value appearing in NullFields will be sent to the
12104	// server as null. It is an error if a field in this list has a
12105	// non-empty value. This may be used to include null fields in Patch
12106	// requests.
12107	NullFields []string `json:"-"`
12108}
12109
12110func (s *GlobalNetworkEndpointGroupsDetachEndpointsRequest) MarshalJSON() ([]byte, error) {
12111	type NoMethod GlobalNetworkEndpointGroupsDetachEndpointsRequest
12112	raw := NoMethod(*s)
12113	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12114}
12115
12116type GlobalOrganizationSetPolicyRequest struct {
12117	// Bindings: Flatten Policy to create a backward compatible wire-format.
12118	// Deprecated. Use 'policy' to specify bindings.
12119	Bindings []*Binding `json:"bindings,omitempty"`
12120
12121	// Etag: Flatten Policy to create a backward compatible wire-format.
12122	// Deprecated. Use 'policy' to specify the etag.
12123	Etag string `json:"etag,omitempty"`
12124
12125	// Policy: REQUIRED: The complete policy to be applied to the
12126	// 'resource'. The size of the policy is limited to a few 10s of KB. An
12127	// empty policy is in general a valid policy but certain services (like
12128	// Projects) might reject them.
12129	Policy *Policy `json:"policy,omitempty"`
12130
12131	// ForceSendFields is a list of field names (e.g. "Bindings") to
12132	// unconditionally include in API requests. By default, fields with
12133	// empty values are omitted from API requests. However, any non-pointer,
12134	// non-interface field appearing in ForceSendFields will be sent to the
12135	// server regardless of whether the field is empty or not. This may be
12136	// used to include empty fields in Patch requests.
12137	ForceSendFields []string `json:"-"`
12138
12139	// NullFields is a list of field names (e.g. "Bindings") to include in
12140	// API requests with the JSON null value. By default, fields with empty
12141	// values are omitted from API requests. However, any field with an
12142	// empty value appearing in NullFields will be sent to the server as
12143	// null. It is an error if a field in this list has a non-empty value.
12144	// This may be used to include null fields in Patch requests.
12145	NullFields []string `json:"-"`
12146}
12147
12148func (s *GlobalOrganizationSetPolicyRequest) MarshalJSON() ([]byte, error) {
12149	type NoMethod GlobalOrganizationSetPolicyRequest
12150	raw := NoMethod(*s)
12151	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12152}
12153
12154type GlobalSetLabelsRequest struct {
12155	// LabelFingerprint: The fingerprint of the previous set of labels for
12156	// this resource, used to detect conflicts. The fingerprint is initially
12157	// generated by Compute Engine and changes after every request to modify
12158	// or update labels. You must always provide an up-to-date fingerprint
12159	// hash when updating or changing labels, otherwise the request will
12160	// fail with error 412 conditionNotMet. Make a get() request to the
12161	// resource to get the latest fingerprint.
12162	LabelFingerprint string `json:"labelFingerprint,omitempty"`
12163
12164	// Labels: A list of labels to apply for this resource. Each label key &
12165	// value must comply with RFC1035. Specifically, the name must be 1-63
12166	// characters long and match the regular expression
12167	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
12168	// a lowercase letter, and all following characters must be a dash,
12169	// lowercase letter, or digit, except the last character, which cannot
12170	// be a dash. For example, "webserver-frontend": "images". A label value
12171	// can also be empty (e.g. "my-label": "").
12172	Labels map[string]string `json:"labels,omitempty"`
12173
12174	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") to
12175	// unconditionally include in API requests. By default, fields with
12176	// empty values are omitted from API requests. However, any non-pointer,
12177	// non-interface field appearing in ForceSendFields will be sent to the
12178	// server regardless of whether the field is empty or not. This may be
12179	// used to include empty fields in Patch requests.
12180	ForceSendFields []string `json:"-"`
12181
12182	// NullFields is a list of field names (e.g. "LabelFingerprint") to
12183	// include in API requests with the JSON null value. By default, fields
12184	// with empty values are omitted from API requests. However, any field
12185	// with an empty value appearing in NullFields will be sent to the
12186	// server as null. It is an error if a field in this list has a
12187	// non-empty value. This may be used to include null fields in Patch
12188	// requests.
12189	NullFields []string `json:"-"`
12190}
12191
12192func (s *GlobalSetLabelsRequest) MarshalJSON() ([]byte, error) {
12193	type NoMethod GlobalSetLabelsRequest
12194	raw := NoMethod(*s)
12195	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12196}
12197
12198type GlobalSetPolicyRequest struct {
12199	// Bindings: Flatten Policy to create a backward compatible wire-format.
12200	// Deprecated. Use 'policy' to specify bindings.
12201	Bindings []*Binding `json:"bindings,omitempty"`
12202
12203	// Etag: Flatten Policy to create a backward compatible wire-format.
12204	// Deprecated. Use 'policy' to specify the etag.
12205	Etag string `json:"etag,omitempty"`
12206
12207	// Policy: REQUIRED: The complete policy to be applied to the
12208	// 'resource'. The size of the policy is limited to a few 10s of KB. An
12209	// empty policy is in general a valid policy but certain services (like
12210	// Projects) might reject them.
12211	Policy *Policy `json:"policy,omitempty"`
12212
12213	// ForceSendFields is a list of field names (e.g. "Bindings") to
12214	// unconditionally include in API requests. By default, fields with
12215	// empty values are omitted from API requests. However, any non-pointer,
12216	// non-interface field appearing in ForceSendFields will be sent to the
12217	// server regardless of whether the field is empty or not. This may be
12218	// used to include empty fields in Patch requests.
12219	ForceSendFields []string `json:"-"`
12220
12221	// NullFields is a list of field names (e.g. "Bindings") to include in
12222	// API requests with the JSON null value. By default, fields with empty
12223	// values are omitted from API requests. However, any field with an
12224	// empty value appearing in NullFields will be sent to the server as
12225	// null. It is an error if a field in this list has a non-empty value.
12226	// This may be used to include null fields in Patch requests.
12227	NullFields []string `json:"-"`
12228}
12229
12230func (s *GlobalSetPolicyRequest) MarshalJSON() ([]byte, error) {
12231	type NoMethod GlobalSetPolicyRequest
12232	raw := NoMethod(*s)
12233	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12234}
12235
12236// GuestAttributes: A guest attributes entry.
12237type GuestAttributes struct {
12238	// Kind: [Output Only] Type of the resource. Always
12239	// compute#guestAttributes for guest attributes entry.
12240	Kind string `json:"kind,omitempty"`
12241
12242	// QueryPath: The path to be queried. This can be the default namespace
12243	// ('/') or a nested namespace ('/\/') or a specified key ('/\/\')
12244	QueryPath string `json:"queryPath,omitempty"`
12245
12246	// QueryValue: [Output Only] The value of the requested queried path.
12247	QueryValue *GuestAttributesValue `json:"queryValue,omitempty"`
12248
12249	// SelfLink: [Output Only] Server-defined URL for this resource.
12250	SelfLink string `json:"selfLink,omitempty"`
12251
12252	// VariableKey: The key to search for.
12253	VariableKey string `json:"variableKey,omitempty"`
12254
12255	// VariableValue: [Output Only] The value found for the requested key.
12256	VariableValue string `json:"variableValue,omitempty"`
12257
12258	// ServerResponse contains the HTTP response code and headers from the
12259	// server.
12260	googleapi.ServerResponse `json:"-"`
12261
12262	// ForceSendFields is a list of field names (e.g. "Kind") to
12263	// unconditionally include in API requests. By default, fields with
12264	// empty values are omitted from API requests. However, any non-pointer,
12265	// non-interface field appearing in ForceSendFields will be sent to the
12266	// server regardless of whether the field is empty or not. This may be
12267	// used to include empty fields in Patch requests.
12268	ForceSendFields []string `json:"-"`
12269
12270	// NullFields is a list of field names (e.g. "Kind") to include in API
12271	// requests with the JSON null value. By default, fields with empty
12272	// values are omitted from API requests. However, any field with an
12273	// empty value appearing in NullFields will be sent to the server as
12274	// null. It is an error if a field in this list has a non-empty value.
12275	// This may be used to include null fields in Patch requests.
12276	NullFields []string `json:"-"`
12277}
12278
12279func (s *GuestAttributes) MarshalJSON() ([]byte, error) {
12280	type NoMethod GuestAttributes
12281	raw := NoMethod(*s)
12282	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12283}
12284
12285// GuestAttributesEntry: A guest attributes namespace/key/value entry.
12286type GuestAttributesEntry struct {
12287	// Key: Key for the guest attribute entry.
12288	Key string `json:"key,omitempty"`
12289
12290	// Namespace: Namespace for the guest attribute entry.
12291	Namespace string `json:"namespace,omitempty"`
12292
12293	// Value: Value for the guest attribute entry.
12294	Value string `json:"value,omitempty"`
12295
12296	// ForceSendFields is a list of field names (e.g. "Key") to
12297	// unconditionally include in API requests. By default, fields with
12298	// empty values are omitted from API requests. However, any non-pointer,
12299	// non-interface field appearing in ForceSendFields will be sent to the
12300	// server regardless of whether the field is empty or not. This may be
12301	// used to include empty fields in Patch requests.
12302	ForceSendFields []string `json:"-"`
12303
12304	// NullFields is a list of field names (e.g. "Key") to include in API
12305	// requests with the JSON null value. By default, fields with empty
12306	// values are omitted from API requests. However, any field with an
12307	// empty value appearing in NullFields will be sent to the server as
12308	// null. It is an error if a field in this list has a non-empty value.
12309	// This may be used to include null fields in Patch requests.
12310	NullFields []string `json:"-"`
12311}
12312
12313func (s *GuestAttributesEntry) MarshalJSON() ([]byte, error) {
12314	type NoMethod GuestAttributesEntry
12315	raw := NoMethod(*s)
12316	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12317}
12318
12319// GuestAttributesValue: Array of guest attribute namespace/key/value
12320// tuples.
12321type GuestAttributesValue struct {
12322	Items []*GuestAttributesEntry `json:"items,omitempty"`
12323
12324	// ForceSendFields is a list of field names (e.g. "Items") to
12325	// unconditionally include in API requests. By default, fields with
12326	// empty values are omitted from API requests. However, any non-pointer,
12327	// non-interface field appearing in ForceSendFields will be sent to the
12328	// server regardless of whether the field is empty or not. This may be
12329	// used to include empty fields in Patch requests.
12330	ForceSendFields []string `json:"-"`
12331
12332	// NullFields is a list of field names (e.g. "Items") to include in API
12333	// requests with the JSON null value. By default, fields with empty
12334	// values are omitted from API requests. However, any field with an
12335	// empty value appearing in NullFields will be sent to the server as
12336	// null. It is an error if a field in this list has a non-empty value.
12337	// This may be used to include null fields in Patch requests.
12338	NullFields []string `json:"-"`
12339}
12340
12341func (s *GuestAttributesValue) MarshalJSON() ([]byte, error) {
12342	type NoMethod GuestAttributesValue
12343	raw := NoMethod(*s)
12344	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12345}
12346
12347// GuestOsFeature: Guest OS features.
12348type GuestOsFeature struct {
12349	// Type: The ID of a supported feature. Read  Enabling guest operating
12350	// system features to see a list of available options.
12351	//
12352	// Possible values:
12353	//   "FEATURE_TYPE_UNSPECIFIED"
12354	//   "GVNIC"
12355	//   "MULTI_IP_SUBNET"
12356	//   "SECURE_BOOT"
12357	//   "SEV_CAPABLE"
12358	//   "UEFI_COMPATIBLE"
12359	//   "VIRTIO_SCSI_MULTIQUEUE"
12360	//   "WINDOWS"
12361	Type string `json:"type,omitempty"`
12362
12363	// ForceSendFields is a list of field names (e.g. "Type") to
12364	// unconditionally include in API requests. By default, fields with
12365	// empty values are omitted from API requests. However, any non-pointer,
12366	// non-interface field appearing in ForceSendFields will be sent to the
12367	// server regardless of whether the field is empty or not. This may be
12368	// used to include empty fields in Patch requests.
12369	ForceSendFields []string `json:"-"`
12370
12371	// NullFields is a list of field names (e.g. "Type") to include in API
12372	// requests with the JSON null value. By default, fields with empty
12373	// values are omitted from API requests. However, any field with an
12374	// empty value appearing in NullFields will be sent to the server as
12375	// null. It is an error if a field in this list has a non-empty value.
12376	// This may be used to include null fields in Patch requests.
12377	NullFields []string `json:"-"`
12378}
12379
12380func (s *GuestOsFeature) MarshalJSON() ([]byte, error) {
12381	type NoMethod GuestOsFeature
12382	raw := NoMethod(*s)
12383	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12384}
12385
12386type HTTP2HealthCheck struct {
12387	// Host: The value of the host header in the HTTP/2 health check
12388	// request. If left empty (default value), the IP on behalf of which
12389	// this health check is performed will be used.
12390	Host string `json:"host,omitempty"`
12391
12392	// Port: The TCP port number for the health check request. The default
12393	// value is 443. Valid values are 1 through 65535.
12394	Port int64 `json:"port,omitempty"`
12395
12396	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
12397	// both port and port_name are defined, port takes precedence.
12398	PortName string `json:"portName,omitempty"`
12399
12400	// PortSpecification: Specifies how port is selected for health
12401	// checking, can be one of following values:
12402	// USE_FIXED_PORT: The port number in port is used for health
12403	// checking.
12404	// USE_NAMED_PORT: The portName is used for health
12405	// checking.
12406	// USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for
12407	// each network endpoint is used for health checking. For other
12408	// backends, the port or named port specified in the Backend Service is
12409	// used for health checking.
12410	//
12411	//
12412	// If not specified, HTTP2 health check follows behavior specified in
12413	// port and portName fields.
12414	//
12415	// Possible values:
12416	//   "USE_FIXED_PORT"
12417	//   "USE_NAMED_PORT"
12418	//   "USE_SERVING_PORT"
12419	PortSpecification string `json:"portSpecification,omitempty"`
12420
12421	// ProxyHeader: Specifies the type of proxy header to append before
12422	// sending data to the backend, either NONE or PROXY_V1. The default is
12423	// NONE.
12424	//
12425	// Possible values:
12426	//   "NONE"
12427	//   "PROXY_V1"
12428	ProxyHeader string `json:"proxyHeader,omitempty"`
12429
12430	// RequestPath: The request path of the HTTP/2 health check request. The
12431	// default value is /.
12432	RequestPath string `json:"requestPath,omitempty"`
12433
12434	// Response: The string to match anywhere in the first 1024 bytes of the
12435	// response body. If left empty (the default value), the status code
12436	// determines health. The response data can only be ASCII.
12437	Response string `json:"response,omitempty"`
12438
12439	// ForceSendFields is a list of field names (e.g. "Host") to
12440	// unconditionally include in API requests. By default, fields with
12441	// empty values are omitted from API requests. However, any non-pointer,
12442	// non-interface field appearing in ForceSendFields will be sent to the
12443	// server regardless of whether the field is empty or not. This may be
12444	// used to include empty fields in Patch requests.
12445	ForceSendFields []string `json:"-"`
12446
12447	// NullFields is a list of field names (e.g. "Host") to include in API
12448	// requests with the JSON null value. By default, fields with empty
12449	// values are omitted from API requests. However, any field with an
12450	// empty value appearing in NullFields will be sent to the server as
12451	// null. It is an error if a field in this list has a non-empty value.
12452	// This may be used to include null fields in Patch requests.
12453	NullFields []string `json:"-"`
12454}
12455
12456func (s *HTTP2HealthCheck) MarshalJSON() ([]byte, error) {
12457	type NoMethod HTTP2HealthCheck
12458	raw := NoMethod(*s)
12459	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12460}
12461
12462type HTTPHealthCheck struct {
12463	// Host: The value of the host header in the HTTP health check request.
12464	// If left empty (default value), the IP on behalf of which this health
12465	// check is performed will be used.
12466	Host string `json:"host,omitempty"`
12467
12468	// Port: The TCP port number for the health check request. The default
12469	// value is 80. Valid values are 1 through 65535.
12470	Port int64 `json:"port,omitempty"`
12471
12472	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
12473	// both port and port_name are defined, port takes precedence.
12474	PortName string `json:"portName,omitempty"`
12475
12476	// PortSpecification: Specifies how port is selected for health
12477	// checking, can be one of following values:
12478	// USE_FIXED_PORT: The port number in port is used for health
12479	// checking.
12480	// USE_NAMED_PORT: The portName is used for health
12481	// checking.
12482	// USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for
12483	// each network endpoint is used for health checking. For other
12484	// backends, the port or named port specified in the Backend Service is
12485	// used for health checking.
12486	//
12487	//
12488	// If not specified, HTTP health check follows behavior specified in
12489	// port and portName fields.
12490	//
12491	// Possible values:
12492	//   "USE_FIXED_PORT"
12493	//   "USE_NAMED_PORT"
12494	//   "USE_SERVING_PORT"
12495	PortSpecification string `json:"portSpecification,omitempty"`
12496
12497	// ProxyHeader: Specifies the type of proxy header to append before
12498	// sending data to the backend, either NONE or PROXY_V1. The default is
12499	// NONE.
12500	//
12501	// Possible values:
12502	//   "NONE"
12503	//   "PROXY_V1"
12504	ProxyHeader string `json:"proxyHeader,omitempty"`
12505
12506	// RequestPath: The request path of the HTTP health check request. The
12507	// default value is /.
12508	RequestPath string `json:"requestPath,omitempty"`
12509
12510	// Response: The string to match anywhere in the first 1024 bytes of the
12511	// response body. If left empty (the default value), the status code
12512	// determines health. The response data can only be ASCII.
12513	Response string `json:"response,omitempty"`
12514
12515	// ForceSendFields is a list of field names (e.g. "Host") to
12516	// unconditionally include in API requests. By default, fields with
12517	// empty values are omitted from API requests. However, any non-pointer,
12518	// non-interface field appearing in ForceSendFields will be sent to the
12519	// server regardless of whether the field is empty or not. This may be
12520	// used to include empty fields in Patch requests.
12521	ForceSendFields []string `json:"-"`
12522
12523	// NullFields is a list of field names (e.g. "Host") to include in API
12524	// requests with the JSON null value. By default, fields with empty
12525	// values are omitted from API requests. However, any field with an
12526	// empty value appearing in NullFields will be sent to the server as
12527	// null. It is an error if a field in this list has a non-empty value.
12528	// This may be used to include null fields in Patch requests.
12529	NullFields []string `json:"-"`
12530}
12531
12532func (s *HTTPHealthCheck) MarshalJSON() ([]byte, error) {
12533	type NoMethod HTTPHealthCheck
12534	raw := NoMethod(*s)
12535	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12536}
12537
12538type HTTPSHealthCheck struct {
12539	// Host: The value of the host header in the HTTPS health check request.
12540	// If left empty (default value), the IP on behalf of which this health
12541	// check is performed will be used.
12542	Host string `json:"host,omitempty"`
12543
12544	// Port: The TCP port number for the health check request. The default
12545	// value is 443. Valid values are 1 through 65535.
12546	Port int64 `json:"port,omitempty"`
12547
12548	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
12549	// both port and port_name are defined, port takes precedence.
12550	PortName string `json:"portName,omitempty"`
12551
12552	// PortSpecification: Specifies how port is selected for health
12553	// checking, can be one of following values:
12554	// USE_FIXED_PORT: The port number in port is used for health
12555	// checking.
12556	// USE_NAMED_PORT: The portName is used for health
12557	// checking.
12558	// USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for
12559	// each network endpoint is used for health checking. For other
12560	// backends, the port or named port specified in the Backend Service is
12561	// used for health checking.
12562	//
12563	//
12564	// If not specified, HTTPS health check follows behavior specified in
12565	// port and portName fields.
12566	//
12567	// Possible values:
12568	//   "USE_FIXED_PORT"
12569	//   "USE_NAMED_PORT"
12570	//   "USE_SERVING_PORT"
12571	PortSpecification string `json:"portSpecification,omitempty"`
12572
12573	// ProxyHeader: Specifies the type of proxy header to append before
12574	// sending data to the backend, either NONE or PROXY_V1. The default is
12575	// NONE.
12576	//
12577	// Possible values:
12578	//   "NONE"
12579	//   "PROXY_V1"
12580	ProxyHeader string `json:"proxyHeader,omitempty"`
12581
12582	// RequestPath: The request path of the HTTPS health check request. The
12583	// default value is /.
12584	RequestPath string `json:"requestPath,omitempty"`
12585
12586	// Response: The string to match anywhere in the first 1024 bytes of the
12587	// response body. If left empty (the default value), the status code
12588	// determines health. The response data can only be ASCII.
12589	Response string `json:"response,omitempty"`
12590
12591	// ForceSendFields is a list of field names (e.g. "Host") to
12592	// unconditionally include in API requests. By default, fields with
12593	// empty values are omitted from API requests. However, any non-pointer,
12594	// non-interface field appearing in ForceSendFields will be sent to the
12595	// server regardless of whether the field is empty or not. This may be
12596	// used to include empty fields in Patch requests.
12597	ForceSendFields []string `json:"-"`
12598
12599	// NullFields is a list of field names (e.g. "Host") to include in API
12600	// requests with the JSON null value. By default, fields with empty
12601	// values are omitted from API requests. However, any field with an
12602	// empty value appearing in NullFields will be sent to the server as
12603	// null. It is an error if a field in this list has a non-empty value.
12604	// This may be used to include null fields in Patch requests.
12605	NullFields []string `json:"-"`
12606}
12607
12608func (s *HTTPSHealthCheck) MarshalJSON() ([]byte, error) {
12609	type NoMethod HTTPSHealthCheck
12610	raw := NoMethod(*s)
12611	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12612}
12613
12614// HealthCheck: Represents a Health Check resource.
12615//
12616// Google Compute Engine has two Health Check resources:
12617//
12618// * Global (/compute/docs/reference/rest/{$api_version}/healthChecks) *
12619// Regional
12620// (/compute/docs/reference/rest/{$api_version}/regionHealthChecks)
12621//
12622// Internal HTTP(S) load balancers must use regional health checks
12623// (`compute.v1.regionHealthChecks`).
12624//
12625// Traffic Director must use global health checks
12626// (`compute.v1.HealthChecks`).
12627//
12628// Internal TCP/UDP load balancers can use either regional or global
12629// health checks (`compute.v1.regionHealthChecks` or
12630// `compute.v1.HealthChecks`).
12631//
12632// External HTTP(S), TCP proxy, and SSL proxy load balancers as well as
12633// managed instance group auto-healing must use global health checks
12634// (`compute.v1.HealthChecks`).
12635//
12636// Network load balancers must use legacy HTTP health checks
12637// (httpHealthChecks).
12638//
12639// For more information, see Health checks overview.
12640type HealthCheck struct {
12641	// CheckIntervalSec: How often (in seconds) to send a health check. The
12642	// default value is 5 seconds.
12643	CheckIntervalSec int64 `json:"checkIntervalSec,omitempty"`
12644
12645	// CreationTimestamp: [Output Only] Creation timestamp in 3339 text
12646	// format.
12647	CreationTimestamp string `json:"creationTimestamp,omitempty"`
12648
12649	// Description: An optional description of this resource. Provide this
12650	// property when you create the resource.
12651	Description string `json:"description,omitempty"`
12652
12653	GrpcHealthCheck *GRPCHealthCheck `json:"grpcHealthCheck,omitempty"`
12654
12655	// HealthyThreshold: A so-far unhealthy instance will be marked healthy
12656	// after this many consecutive successes. The default value is 2.
12657	HealthyThreshold int64 `json:"healthyThreshold,omitempty"`
12658
12659	Http2HealthCheck *HTTP2HealthCheck `json:"http2HealthCheck,omitempty"`
12660
12661	HttpHealthCheck *HTTPHealthCheck `json:"httpHealthCheck,omitempty"`
12662
12663	HttpsHealthCheck *HTTPSHealthCheck `json:"httpsHealthCheck,omitempty"`
12664
12665	// Id: [Output Only] The unique identifier for the resource. This
12666	// identifier is defined by the server.
12667	Id uint64 `json:"id,omitempty,string"`
12668
12669	// Kind: Type of the resource.
12670	Kind string `json:"kind,omitempty"`
12671
12672	// LogConfig: Configure logging on this health check.
12673	LogConfig *HealthCheckLogConfig `json:"logConfig,omitempty"`
12674
12675	// Name: Name of the resource. Provided by the client when the resource
12676	// is created. The name must be 1-63 characters long, and comply with
12677	// RFC1035. For example, a name that is 1-63 characters long, matches
12678	// the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`, and otherwise
12679	// complies with RFC1035. This regular expression describes a name where
12680	// the first character is a lowercase letter, and all following
12681	// characters are a dash, lowercase letter, or digit, except the last
12682	// character, which isn't a dash.
12683	Name string `json:"name,omitempty"`
12684
12685	// Region: [Output Only] Region where the health check resides. Not
12686	// applicable to global health checks.
12687	Region string `json:"region,omitempty"`
12688
12689	// SelfLink: [Output Only] Server-defined URL for the resource.
12690	SelfLink string `json:"selfLink,omitempty"`
12691
12692	SslHealthCheck *SSLHealthCheck `json:"sslHealthCheck,omitempty"`
12693
12694	TcpHealthCheck *TCPHealthCheck `json:"tcpHealthCheck,omitempty"`
12695
12696	// TimeoutSec: How long (in seconds) to wait before claiming failure.
12697	// The default value is 5 seconds. It is invalid for timeoutSec to have
12698	// greater value than checkIntervalSec.
12699	TimeoutSec int64 `json:"timeoutSec,omitempty"`
12700
12701	// Type: Specifies the type of the healthCheck, either TCP, SSL, HTTP,
12702	// HTTPS or HTTP2. If not specified, the default is TCP. Exactly one of
12703	// the protocol-specific health check field must be specified, which
12704	// must match type field.
12705	//
12706	// Possible values:
12707	//   "GRPC"
12708	//   "HTTP"
12709	//   "HTTP2"
12710	//   "HTTPS"
12711	//   "INVALID"
12712	//   "SSL"
12713	//   "TCP"
12714	Type string `json:"type,omitempty"`
12715
12716	// UnhealthyThreshold: A so-far healthy instance will be marked
12717	// unhealthy after this many consecutive failures. The default value is
12718	// 2.
12719	UnhealthyThreshold int64 `json:"unhealthyThreshold,omitempty"`
12720
12721	// ServerResponse contains the HTTP response code and headers from the
12722	// server.
12723	googleapi.ServerResponse `json:"-"`
12724
12725	// ForceSendFields is a list of field names (e.g. "CheckIntervalSec") to
12726	// unconditionally include in API requests. By default, fields with
12727	// empty values are omitted from API requests. However, any non-pointer,
12728	// non-interface field appearing in ForceSendFields will be sent to the
12729	// server regardless of whether the field is empty or not. This may be
12730	// used to include empty fields in Patch requests.
12731	ForceSendFields []string `json:"-"`
12732
12733	// NullFields is a list of field names (e.g. "CheckIntervalSec") to
12734	// include in API requests with the JSON null value. By default, fields
12735	// with empty values are omitted from API requests. However, any field
12736	// with an empty value appearing in NullFields will be sent to the
12737	// server as null. It is an error if a field in this list has a
12738	// non-empty value. This may be used to include null fields in Patch
12739	// requests.
12740	NullFields []string `json:"-"`
12741}
12742
12743func (s *HealthCheck) MarshalJSON() ([]byte, error) {
12744	type NoMethod HealthCheck
12745	raw := NoMethod(*s)
12746	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12747}
12748
12749// HealthCheckList: Contains a list of HealthCheck resources.
12750type HealthCheckList struct {
12751	// Id: [Output Only] Unique identifier for the resource; defined by the
12752	// server.
12753	Id string `json:"id,omitempty"`
12754
12755	// Items: A list of HealthCheck resources.
12756	Items []*HealthCheck `json:"items,omitempty"`
12757
12758	// Kind: Type of resource.
12759	Kind string `json:"kind,omitempty"`
12760
12761	// NextPageToken: [Output Only] This token allows you to get the next
12762	// page of results for list requests. If the number of results is larger
12763	// than maxResults, use the nextPageToken as a value for the query
12764	// parameter pageToken in the next list request. Subsequent list
12765	// requests will have their own nextPageToken to continue paging through
12766	// the results.
12767	NextPageToken string `json:"nextPageToken,omitempty"`
12768
12769	// SelfLink: [Output Only] Server-defined URL for this resource.
12770	SelfLink string `json:"selfLink,omitempty"`
12771
12772	// Warning: [Output Only] Informational warning message.
12773	Warning *HealthCheckListWarning `json:"warning,omitempty"`
12774
12775	// ServerResponse contains the HTTP response code and headers from the
12776	// server.
12777	googleapi.ServerResponse `json:"-"`
12778
12779	// ForceSendFields is a list of field names (e.g. "Id") to
12780	// unconditionally include in API requests. By default, fields with
12781	// empty values are omitted from API requests. However, any non-pointer,
12782	// non-interface field appearing in ForceSendFields will be sent to the
12783	// server regardless of whether the field is empty or not. This may be
12784	// used to include empty fields in Patch requests.
12785	ForceSendFields []string `json:"-"`
12786
12787	// NullFields is a list of field names (e.g. "Id") to include in API
12788	// requests with the JSON null value. By default, fields with empty
12789	// values are omitted from API requests. However, any field with an
12790	// empty value appearing in NullFields will be sent to the server as
12791	// null. It is an error if a field in this list has a non-empty value.
12792	// This may be used to include null fields in Patch requests.
12793	NullFields []string `json:"-"`
12794}
12795
12796func (s *HealthCheckList) MarshalJSON() ([]byte, error) {
12797	type NoMethod HealthCheckList
12798	raw := NoMethod(*s)
12799	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12800}
12801
12802// HealthCheckListWarning: [Output Only] Informational warning message.
12803type HealthCheckListWarning struct {
12804	// Code: [Output Only] A warning code, if applicable. For example,
12805	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
12806	// the response.
12807	//
12808	// Possible values:
12809	//   "CLEANUP_FAILED"
12810	//   "DEPRECATED_RESOURCE_USED"
12811	//   "DEPRECATED_TYPE_USED"
12812	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
12813	//   "EXPERIMENTAL_TYPE_USED"
12814	//   "EXTERNAL_API_WARNING"
12815	//   "FIELD_VALUE_OVERRIDEN"
12816	//   "INJECTED_KERNELS_DEPRECATED"
12817	//   "LARGE_DEPLOYMENT_WARNING"
12818	//   "MISSING_TYPE_DEPENDENCY"
12819	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
12820	//   "NEXT_HOP_CANNOT_IP_FORWARD"
12821	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
12822	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
12823	//   "NEXT_HOP_NOT_RUNNING"
12824	//   "NOT_CRITICAL_ERROR"
12825	//   "NO_RESULTS_ON_PAGE"
12826	//   "PARTIAL_SUCCESS"
12827	//   "REQUIRED_TOS_AGREEMENT"
12828	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
12829	//   "RESOURCE_NOT_DELETED"
12830	//   "SCHEMA_VALIDATION_IGNORED"
12831	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
12832	//   "UNDECLARED_PROPERTIES"
12833	//   "UNREACHABLE"
12834	Code string `json:"code,omitempty"`
12835
12836	// Data: [Output Only] Metadata about this warning in key: value format.
12837	// For example:
12838	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
12839	Data []*HealthCheckListWarningData `json:"data,omitempty"`
12840
12841	// Message: [Output Only] A human-readable description of the warning
12842	// code.
12843	Message string `json:"message,omitempty"`
12844
12845	// ForceSendFields is a list of field names (e.g. "Code") to
12846	// unconditionally include in API requests. By default, fields with
12847	// empty values are omitted from API requests. However, any non-pointer,
12848	// non-interface field appearing in ForceSendFields will be sent to the
12849	// server regardless of whether the field is empty or not. This may be
12850	// used to include empty fields in Patch requests.
12851	ForceSendFields []string `json:"-"`
12852
12853	// NullFields is a list of field names (e.g. "Code") to include in API
12854	// requests with the JSON null value. By default, fields with empty
12855	// values are omitted from API requests. However, any field with an
12856	// empty value appearing in NullFields will be sent to the server as
12857	// null. It is an error if a field in this list has a non-empty value.
12858	// This may be used to include null fields in Patch requests.
12859	NullFields []string `json:"-"`
12860}
12861
12862func (s *HealthCheckListWarning) MarshalJSON() ([]byte, error) {
12863	type NoMethod HealthCheckListWarning
12864	raw := NoMethod(*s)
12865	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12866}
12867
12868type HealthCheckListWarningData struct {
12869	// Key: [Output Only] A key that provides more detail on the warning
12870	// being returned. For example, for warnings where there are no results
12871	// in a list request for a particular zone, this key might be scope and
12872	// the key value might be the zone name. Other examples might be a key
12873	// indicating a deprecated resource and a suggested replacement, or a
12874	// warning about invalid network settings (for example, if an instance
12875	// attempts to perform IP forwarding but is not enabled for IP
12876	// forwarding).
12877	Key string `json:"key,omitempty"`
12878
12879	// Value: [Output Only] A warning data value corresponding to the key.
12880	Value string `json:"value,omitempty"`
12881
12882	// ForceSendFields is a list of field names (e.g. "Key") to
12883	// unconditionally include in API requests. By default, fields with
12884	// empty values are omitted from API requests. However, any non-pointer,
12885	// non-interface field appearing in ForceSendFields will be sent to the
12886	// server regardless of whether the field is empty or not. This may be
12887	// used to include empty fields in Patch requests.
12888	ForceSendFields []string `json:"-"`
12889
12890	// NullFields is a list of field names (e.g. "Key") to include in API
12891	// requests with the JSON null value. By default, fields with empty
12892	// values are omitted from API requests. However, any field with an
12893	// empty value appearing in NullFields will be sent to the server as
12894	// null. It is an error if a field in this list has a non-empty value.
12895	// This may be used to include null fields in Patch requests.
12896	NullFields []string `json:"-"`
12897}
12898
12899func (s *HealthCheckListWarningData) MarshalJSON() ([]byte, error) {
12900	type NoMethod HealthCheckListWarningData
12901	raw := NoMethod(*s)
12902	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12903}
12904
12905// HealthCheckLogConfig: Configuration of logging on a health check. If
12906// logging is enabled, logs will be exported to Stackdriver.
12907type HealthCheckLogConfig struct {
12908	// Enable: Indicates whether or not to export logs. This is false by
12909	// default, which means no health check logging will be done.
12910	Enable bool `json:"enable,omitempty"`
12911
12912	// ForceSendFields is a list of field names (e.g. "Enable") to
12913	// unconditionally include in API requests. By default, fields with
12914	// empty values are omitted from API requests. However, any non-pointer,
12915	// non-interface field appearing in ForceSendFields will be sent to the
12916	// server regardless of whether the field is empty or not. This may be
12917	// used to include empty fields in Patch requests.
12918	ForceSendFields []string `json:"-"`
12919
12920	// NullFields is a list of field names (e.g. "Enable") to include in API
12921	// requests with the JSON null value. By default, fields with empty
12922	// values are omitted from API requests. However, any field with an
12923	// empty value appearing in NullFields will be sent to the server as
12924	// null. It is an error if a field in this list has a non-empty value.
12925	// This may be used to include null fields in Patch requests.
12926	NullFields []string `json:"-"`
12927}
12928
12929func (s *HealthCheckLogConfig) MarshalJSON() ([]byte, error) {
12930	type NoMethod HealthCheckLogConfig
12931	raw := NoMethod(*s)
12932	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12933}
12934
12935// HealthCheckReference: A full or valid partial URL to a health check.
12936// For example, the following are valid URLs:
12937// -
12938// https://www.googleapis.com/compute/beta/projects/project-id/global/httpHealthChecks/health-check
12939//
12940// - projects/project-id/global/httpHealthChecks/health-check
12941// - global/httpHealthChecks/health-check
12942type HealthCheckReference struct {
12943	HealthCheck string `json:"healthCheck,omitempty"`
12944
12945	// ForceSendFields is a list of field names (e.g. "HealthCheck") to
12946	// unconditionally include in API requests. By default, fields with
12947	// empty values are omitted from API requests. However, any non-pointer,
12948	// non-interface field appearing in ForceSendFields will be sent to the
12949	// server regardless of whether the field is empty or not. This may be
12950	// used to include empty fields in Patch requests.
12951	ForceSendFields []string `json:"-"`
12952
12953	// NullFields is a list of field names (e.g. "HealthCheck") to include
12954	// in API requests with the JSON null value. By default, fields with
12955	// empty values are omitted from API requests. However, any field with
12956	// an empty value appearing in NullFields will be sent to the server as
12957	// null. It is an error if a field in this list has a non-empty value.
12958	// This may be used to include null fields in Patch requests.
12959	NullFields []string `json:"-"`
12960}
12961
12962func (s *HealthCheckReference) MarshalJSON() ([]byte, error) {
12963	type NoMethod HealthCheckReference
12964	raw := NoMethod(*s)
12965	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12966}
12967
12968// HealthCheckService: Represents a Health-Check as a Service
12969// resource.
12970//
12971// (== resource_for {$api_version}.regionHealthCheckServices ==)
12972type HealthCheckService struct {
12973	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
12974	// format.
12975	CreationTimestamp string `json:"creationTimestamp,omitempty"`
12976
12977	// Description: An optional description of this resource. Provide this
12978	// property when you create the resource.
12979	Description string `json:"description,omitempty"`
12980
12981	// Fingerprint: Fingerprint of this resource. A hash of the contents
12982	// stored in this object. This field is used in optimistic locking. This
12983	// field will be ignored when inserting a HealthCheckService. An
12984	// up-to-date fingerprint must be provided in order to patch/update the
12985	// HealthCheckService; Otherwise, the request will fail with error 412
12986	// conditionNotMet. To see the latest fingerprint, make a get() request
12987	// to retrieve the HealthCheckService.
12988	Fingerprint string `json:"fingerprint,omitempty"`
12989
12990	// HealthChecks: List of URLs to the HealthCheck resources. Must have at
12991	// least one HealthCheck, and not more than 10. HealthCheck resources
12992	// must have portSpecification=USE_SERVING_PORT. For regional
12993	// HealthCheckService, the HealthCheck must be regional and in the same
12994	// region. For global HealthCheckService, HealthCheck must be global.
12995	// Mix of regional and global HealthChecks is not supported. Multiple
12996	// regional HealthChecks must belong to the same region. Regional
12997	// HealthChecks</code? must belong to the same region as zones of NEGs.
12998	HealthChecks []string `json:"healthChecks,omitempty"`
12999
13000	// HealthStatusAggregationPolicy: Optional. Policy for how the results
13001	// from multiple health checks for the same endpoint are aggregated.
13002	// Defaults to NO_AGGREGATION if unspecified.
13003	// - NO_AGGREGATION. An EndpointHealth message is returned for each
13004	// backend in the health check service.
13005	// - AND. If any backend's health check reports UNHEALTHY, then
13006	// UNHEALTHY is the HealthState of the entire health check service. If
13007	// all backend's are healthy, the HealthState of the health check
13008	// service is HEALTHY. .
13009	//
13010	// Possible values:
13011	//   "AND"
13012	//   "NO_AGGREGATION"
13013	HealthStatusAggregationPolicy string `json:"healthStatusAggregationPolicy,omitempty"`
13014
13015	// HealthStatusAggregationStrategy: This field is deprecated. Use
13016	// health_status_aggregation_policy instead.
13017	//
13018	// Policy for how the results from multiple health checks for the same
13019	// endpoint are aggregated.
13020	// - NO_AGGREGATION. An EndpointHealth message is returned for each
13021	// backend in the health check service.
13022	// - AND. If any backend's health check reports UNHEALTHY, then
13023	// UNHEALTHY is the HealthState of the entire health check service. If
13024	// all backend's are healthy, the HealthState of the health check
13025	// service is HEALTHY. .
13026	//
13027	// Possible values:
13028	//   "AND"
13029	//   "NO_AGGREGATION"
13030	HealthStatusAggregationStrategy string `json:"healthStatusAggregationStrategy,omitempty"`
13031
13032	// Id: [Output Only] The unique identifier for the resource. This
13033	// identifier is defined by the server.
13034	Id uint64 `json:"id,omitempty,string"`
13035
13036	// Kind: [Output only] Type of the resource. Always
13037	// compute#healthCheckServicefor health check services.
13038	Kind string `json:"kind,omitempty"`
13039
13040	// Name: Name of the resource. The name must be 1-63 characters long,
13041	// and comply with RFC1035. Specifically, the name must be 1-63
13042	// characters long and match the regular expression
13043	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
13044	// a lowercase letter, and all following characters must be a dash,
13045	// lowercase letter, or digit, except the last character, which cannot
13046	// be a dash.
13047	Name string `json:"name,omitempty"`
13048
13049	// NetworkEndpointGroups: List of URLs to the NetworkEndpointGroup
13050	// resources. Must not have more than 100. For regional
13051	// HealthCheckService, NEGs must be in zones in the region of the
13052	// HealthCheckService.
13053	NetworkEndpointGroups []string `json:"networkEndpointGroups,omitempty"`
13054
13055	// NotificationEndpoints: List of URLs to the NotificationEndpoint
13056	// resources. Must not have more than 10. A list of endpoints for
13057	// receiving notifications of change in health status. For regional
13058	// HealthCheckService, NotificationEndpoint must be regional and in the
13059	// same region. For global HealthCheckService, NotificationEndpoint must
13060	// be global.
13061	NotificationEndpoints []string `json:"notificationEndpoints,omitempty"`
13062
13063	// Region: [Output Only] URL of the region where the health check
13064	// service resides. This field is not applicable to global health check
13065	// services. You must specify this field as part of the HTTP request
13066	// URL. It is not settable as a field in the request body.
13067	Region string `json:"region,omitempty"`
13068
13069	// SelfLink: [Output Only] Server-defined URL for the resource.
13070	SelfLink string `json:"selfLink,omitempty"`
13071
13072	// ServerResponse contains the HTTP response code and headers from the
13073	// server.
13074	googleapi.ServerResponse `json:"-"`
13075
13076	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
13077	// to unconditionally include in API requests. By default, fields with
13078	// empty values are omitted from API requests. However, any non-pointer,
13079	// non-interface field appearing in ForceSendFields will be sent to the
13080	// server regardless of whether the field is empty or not. This may be
13081	// used to include empty fields in Patch requests.
13082	ForceSendFields []string `json:"-"`
13083
13084	// NullFields is a list of field names (e.g. "CreationTimestamp") to
13085	// include in API requests with the JSON null value. By default, fields
13086	// with empty values are omitted from API requests. However, any field
13087	// with an empty value appearing in NullFields will be sent to the
13088	// server as null. It is an error if a field in this list has a
13089	// non-empty value. This may be used to include null fields in Patch
13090	// requests.
13091	NullFields []string `json:"-"`
13092}
13093
13094func (s *HealthCheckService) MarshalJSON() ([]byte, error) {
13095	type NoMethod HealthCheckService
13096	raw := NoMethod(*s)
13097	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13098}
13099
13100// HealthCheckServiceReference: A full or valid partial URL to a health
13101// check service. For example, the following are valid URLs:
13102// -
13103// https://www.googleapis.com/compute/beta/projects/project-id/regions/us-west1/healthCheckServices/health-check-service
13104//
13105// -
13106// projects/project-id/regions/us-west1/healthCheckServices/health-check-
13107// service
13108// - regions/us-west1/healthCheckServices/health-check-service
13109type HealthCheckServiceReference struct {
13110	HealthCheckService string `json:"healthCheckService,omitempty"`
13111
13112	// ForceSendFields is a list of field names (e.g. "HealthCheckService")
13113	// to unconditionally include in API requests. By default, fields with
13114	// empty values are omitted from API requests. However, any non-pointer,
13115	// non-interface field appearing in ForceSendFields will be sent to the
13116	// server regardless of whether the field is empty or not. This may be
13117	// used to include empty fields in Patch requests.
13118	ForceSendFields []string `json:"-"`
13119
13120	// NullFields is a list of field names (e.g. "HealthCheckService") to
13121	// include in API requests with the JSON null value. By default, fields
13122	// with empty values are omitted from API requests. However, any field
13123	// with an empty value appearing in NullFields will be sent to the
13124	// server as null. It is an error if a field in this list has a
13125	// non-empty value. This may be used to include null fields in Patch
13126	// requests.
13127	NullFields []string `json:"-"`
13128}
13129
13130func (s *HealthCheckServiceReference) MarshalJSON() ([]byte, error) {
13131	type NoMethod HealthCheckServiceReference
13132	raw := NoMethod(*s)
13133	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13134}
13135
13136type HealthCheckServicesList struct {
13137	// Id: [Output Only] Unique identifier for the resource; defined by the
13138	// server.
13139	Id string `json:"id,omitempty"`
13140
13141	// Items: A list of HealthCheckService resources.
13142	Items []*HealthCheckService `json:"items,omitempty"`
13143
13144	// Kind: [Output Only] Type of the resource. Always
13145	// compute#healthCheckServicesList for lists of HealthCheckServices.
13146	Kind string `json:"kind,omitempty"`
13147
13148	// NextPageToken: [Output Only] This token allows you to get the next
13149	// page of results for list requests. If the number of results is larger
13150	// than maxResults, use the nextPageToken as a value for the query
13151	// parameter pageToken in the next list request. Subsequent list
13152	// requests will have their own nextPageToken to continue paging through
13153	// the results.
13154	NextPageToken string `json:"nextPageToken,omitempty"`
13155
13156	// SelfLink: [Output Only] Server-defined URL for this resource.
13157	SelfLink string `json:"selfLink,omitempty"`
13158
13159	// Warning: [Output Only] Informational warning message.
13160	Warning *HealthCheckServicesListWarning `json:"warning,omitempty"`
13161
13162	// ServerResponse contains the HTTP response code and headers from the
13163	// server.
13164	googleapi.ServerResponse `json:"-"`
13165
13166	// ForceSendFields is a list of field names (e.g. "Id") to
13167	// unconditionally include in API requests. By default, fields with
13168	// empty values are omitted from API requests. However, any non-pointer,
13169	// non-interface field appearing in ForceSendFields will be sent to the
13170	// server regardless of whether the field is empty or not. This may be
13171	// used to include empty fields in Patch requests.
13172	ForceSendFields []string `json:"-"`
13173
13174	// NullFields is a list of field names (e.g. "Id") to include in API
13175	// requests with the JSON null value. By default, fields with empty
13176	// values are omitted from API requests. However, any field with an
13177	// empty value appearing in NullFields will be sent to the server as
13178	// null. It is an error if a field in this list has a non-empty value.
13179	// This may be used to include null fields in Patch requests.
13180	NullFields []string `json:"-"`
13181}
13182
13183func (s *HealthCheckServicesList) MarshalJSON() ([]byte, error) {
13184	type NoMethod HealthCheckServicesList
13185	raw := NoMethod(*s)
13186	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13187}
13188
13189// HealthCheckServicesListWarning: [Output Only] Informational warning
13190// message.
13191type HealthCheckServicesListWarning struct {
13192	// Code: [Output Only] A warning code, if applicable. For example,
13193	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
13194	// the response.
13195	//
13196	// Possible values:
13197	//   "CLEANUP_FAILED"
13198	//   "DEPRECATED_RESOURCE_USED"
13199	//   "DEPRECATED_TYPE_USED"
13200	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
13201	//   "EXPERIMENTAL_TYPE_USED"
13202	//   "EXTERNAL_API_WARNING"
13203	//   "FIELD_VALUE_OVERRIDEN"
13204	//   "INJECTED_KERNELS_DEPRECATED"
13205	//   "LARGE_DEPLOYMENT_WARNING"
13206	//   "MISSING_TYPE_DEPENDENCY"
13207	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
13208	//   "NEXT_HOP_CANNOT_IP_FORWARD"
13209	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
13210	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
13211	//   "NEXT_HOP_NOT_RUNNING"
13212	//   "NOT_CRITICAL_ERROR"
13213	//   "NO_RESULTS_ON_PAGE"
13214	//   "PARTIAL_SUCCESS"
13215	//   "REQUIRED_TOS_AGREEMENT"
13216	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
13217	//   "RESOURCE_NOT_DELETED"
13218	//   "SCHEMA_VALIDATION_IGNORED"
13219	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
13220	//   "UNDECLARED_PROPERTIES"
13221	//   "UNREACHABLE"
13222	Code string `json:"code,omitempty"`
13223
13224	// Data: [Output Only] Metadata about this warning in key: value format.
13225	// For example:
13226	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
13227	Data []*HealthCheckServicesListWarningData `json:"data,omitempty"`
13228
13229	// Message: [Output Only] A human-readable description of the warning
13230	// code.
13231	Message string `json:"message,omitempty"`
13232
13233	// ForceSendFields is a list of field names (e.g. "Code") to
13234	// unconditionally include in API requests. By default, fields with
13235	// empty values are omitted from API requests. However, any non-pointer,
13236	// non-interface field appearing in ForceSendFields will be sent to the
13237	// server regardless of whether the field is empty or not. This may be
13238	// used to include empty fields in Patch requests.
13239	ForceSendFields []string `json:"-"`
13240
13241	// NullFields is a list of field names (e.g. "Code") to include in API
13242	// requests with the JSON null value. By default, fields with empty
13243	// values are omitted from API requests. However, any field with an
13244	// empty value appearing in NullFields will be sent to the server as
13245	// null. It is an error if a field in this list has a non-empty value.
13246	// This may be used to include null fields in Patch requests.
13247	NullFields []string `json:"-"`
13248}
13249
13250func (s *HealthCheckServicesListWarning) MarshalJSON() ([]byte, error) {
13251	type NoMethod HealthCheckServicesListWarning
13252	raw := NoMethod(*s)
13253	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13254}
13255
13256type HealthCheckServicesListWarningData struct {
13257	// Key: [Output Only] A key that provides more detail on the warning
13258	// being returned. For example, for warnings where there are no results
13259	// in a list request for a particular zone, this key might be scope and
13260	// the key value might be the zone name. Other examples might be a key
13261	// indicating a deprecated resource and a suggested replacement, or a
13262	// warning about invalid network settings (for example, if an instance
13263	// attempts to perform IP forwarding but is not enabled for IP
13264	// forwarding).
13265	Key string `json:"key,omitempty"`
13266
13267	// Value: [Output Only] A warning data value corresponding to the key.
13268	Value string `json:"value,omitempty"`
13269
13270	// ForceSendFields is a list of field names (e.g. "Key") to
13271	// unconditionally include in API requests. By default, fields with
13272	// empty values are omitted from API requests. However, any non-pointer,
13273	// non-interface field appearing in ForceSendFields will be sent to the
13274	// server regardless of whether the field is empty or not. This may be
13275	// used to include empty fields in Patch requests.
13276	ForceSendFields []string `json:"-"`
13277
13278	// NullFields is a list of field names (e.g. "Key") to include in API
13279	// requests with the JSON null value. By default, fields with empty
13280	// values are omitted from API requests. However, any field with an
13281	// empty value appearing in NullFields will be sent to the server as
13282	// null. It is an error if a field in this list has a non-empty value.
13283	// This may be used to include null fields in Patch requests.
13284	NullFields []string `json:"-"`
13285}
13286
13287func (s *HealthCheckServicesListWarningData) MarshalJSON() ([]byte, error) {
13288	type NoMethod HealthCheckServicesListWarningData
13289	raw := NoMethod(*s)
13290	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13291}
13292
13293type HealthChecksAggregatedList struct {
13294	// Id: [Output Only] Unique identifier for the resource; defined by the
13295	// server.
13296	Id string `json:"id,omitempty"`
13297
13298	// Items: A list of HealthChecksScopedList resources.
13299	Items map[string]HealthChecksScopedList `json:"items,omitempty"`
13300
13301	// Kind: Type of resource.
13302	Kind string `json:"kind,omitempty"`
13303
13304	// NextPageToken: [Output Only] This token allows you to get the next
13305	// page of results for list requests. If the number of results is larger
13306	// than maxResults, use the nextPageToken as a value for the query
13307	// parameter pageToken in the next list request. Subsequent list
13308	// requests will have their own nextPageToken to continue paging through
13309	// the results.
13310	NextPageToken string `json:"nextPageToken,omitempty"`
13311
13312	// SelfLink: [Output Only] Server-defined URL for this resource.
13313	SelfLink string `json:"selfLink,omitempty"`
13314
13315	// Unreachables: [Output Only] Unreachable resources.
13316	Unreachables []string `json:"unreachables,omitempty"`
13317
13318	// Warning: [Output Only] Informational warning message.
13319	Warning *HealthChecksAggregatedListWarning `json:"warning,omitempty"`
13320
13321	// ServerResponse contains the HTTP response code and headers from the
13322	// server.
13323	googleapi.ServerResponse `json:"-"`
13324
13325	// ForceSendFields is a list of field names (e.g. "Id") to
13326	// unconditionally include in API requests. By default, fields with
13327	// empty values are omitted from API requests. However, any non-pointer,
13328	// non-interface field appearing in ForceSendFields will be sent to the
13329	// server regardless of whether the field is empty or not. This may be
13330	// used to include empty fields in Patch requests.
13331	ForceSendFields []string `json:"-"`
13332
13333	// NullFields is a list of field names (e.g. "Id") to include in API
13334	// requests with the JSON null value. By default, fields with empty
13335	// values are omitted from API requests. However, any field with an
13336	// empty value appearing in NullFields will be sent to the server as
13337	// null. It is an error if a field in this list has a non-empty value.
13338	// This may be used to include null fields in Patch requests.
13339	NullFields []string `json:"-"`
13340}
13341
13342func (s *HealthChecksAggregatedList) MarshalJSON() ([]byte, error) {
13343	type NoMethod HealthChecksAggregatedList
13344	raw := NoMethod(*s)
13345	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13346}
13347
13348// HealthChecksAggregatedListWarning: [Output Only] Informational
13349// warning message.
13350type HealthChecksAggregatedListWarning struct {
13351	// Code: [Output Only] A warning code, if applicable. For example,
13352	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
13353	// the response.
13354	//
13355	// Possible values:
13356	//   "CLEANUP_FAILED"
13357	//   "DEPRECATED_RESOURCE_USED"
13358	//   "DEPRECATED_TYPE_USED"
13359	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
13360	//   "EXPERIMENTAL_TYPE_USED"
13361	//   "EXTERNAL_API_WARNING"
13362	//   "FIELD_VALUE_OVERRIDEN"
13363	//   "INJECTED_KERNELS_DEPRECATED"
13364	//   "LARGE_DEPLOYMENT_WARNING"
13365	//   "MISSING_TYPE_DEPENDENCY"
13366	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
13367	//   "NEXT_HOP_CANNOT_IP_FORWARD"
13368	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
13369	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
13370	//   "NEXT_HOP_NOT_RUNNING"
13371	//   "NOT_CRITICAL_ERROR"
13372	//   "NO_RESULTS_ON_PAGE"
13373	//   "PARTIAL_SUCCESS"
13374	//   "REQUIRED_TOS_AGREEMENT"
13375	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
13376	//   "RESOURCE_NOT_DELETED"
13377	//   "SCHEMA_VALIDATION_IGNORED"
13378	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
13379	//   "UNDECLARED_PROPERTIES"
13380	//   "UNREACHABLE"
13381	Code string `json:"code,omitempty"`
13382
13383	// Data: [Output Only] Metadata about this warning in key: value format.
13384	// For example:
13385	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
13386	Data []*HealthChecksAggregatedListWarningData `json:"data,omitempty"`
13387
13388	// Message: [Output Only] A human-readable description of the warning
13389	// code.
13390	Message string `json:"message,omitempty"`
13391
13392	// ForceSendFields is a list of field names (e.g. "Code") to
13393	// unconditionally include in API requests. By default, fields with
13394	// empty values are omitted from API requests. However, any non-pointer,
13395	// non-interface field appearing in ForceSendFields will be sent to the
13396	// server regardless of whether the field is empty or not. This may be
13397	// used to include empty fields in Patch requests.
13398	ForceSendFields []string `json:"-"`
13399
13400	// NullFields is a list of field names (e.g. "Code") to include in API
13401	// requests with the JSON null value. By default, fields with empty
13402	// values are omitted from API requests. However, any field with an
13403	// empty value appearing in NullFields will be sent to the server as
13404	// null. It is an error if a field in this list has a non-empty value.
13405	// This may be used to include null fields in Patch requests.
13406	NullFields []string `json:"-"`
13407}
13408
13409func (s *HealthChecksAggregatedListWarning) MarshalJSON() ([]byte, error) {
13410	type NoMethod HealthChecksAggregatedListWarning
13411	raw := NoMethod(*s)
13412	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13413}
13414
13415type HealthChecksAggregatedListWarningData struct {
13416	// Key: [Output Only] A key that provides more detail on the warning
13417	// being returned. For example, for warnings where there are no results
13418	// in a list request for a particular zone, this key might be scope and
13419	// the key value might be the zone name. Other examples might be a key
13420	// indicating a deprecated resource and a suggested replacement, or a
13421	// warning about invalid network settings (for example, if an instance
13422	// attempts to perform IP forwarding but is not enabled for IP
13423	// forwarding).
13424	Key string `json:"key,omitempty"`
13425
13426	// Value: [Output Only] A warning data value corresponding to the key.
13427	Value string `json:"value,omitempty"`
13428
13429	// ForceSendFields is a list of field names (e.g. "Key") to
13430	// unconditionally include in API requests. By default, fields with
13431	// empty values are omitted from API requests. However, any non-pointer,
13432	// non-interface field appearing in ForceSendFields will be sent to the
13433	// server regardless of whether the field is empty or not. This may be
13434	// used to include empty fields in Patch requests.
13435	ForceSendFields []string `json:"-"`
13436
13437	// NullFields is a list of field names (e.g. "Key") to include in API
13438	// requests with the JSON null value. By default, fields with empty
13439	// values are omitted from API requests. However, any field with an
13440	// empty value appearing in NullFields will be sent to the server as
13441	// null. It is an error if a field in this list has a non-empty value.
13442	// This may be used to include null fields in Patch requests.
13443	NullFields []string `json:"-"`
13444}
13445
13446func (s *HealthChecksAggregatedListWarningData) MarshalJSON() ([]byte, error) {
13447	type NoMethod HealthChecksAggregatedListWarningData
13448	raw := NoMethod(*s)
13449	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13450}
13451
13452type HealthChecksScopedList struct {
13453	// HealthChecks: A list of HealthChecks contained in this scope.
13454	HealthChecks []*HealthCheck `json:"healthChecks,omitempty"`
13455
13456	// Warning: Informational warning which replaces the list of backend
13457	// services when the list is empty.
13458	Warning *HealthChecksScopedListWarning `json:"warning,omitempty"`
13459
13460	// ForceSendFields is a list of field names (e.g. "HealthChecks") to
13461	// unconditionally include in API requests. By default, fields with
13462	// empty values are omitted from API requests. However, any non-pointer,
13463	// non-interface field appearing in ForceSendFields will be sent to the
13464	// server regardless of whether the field is empty or not. This may be
13465	// used to include empty fields in Patch requests.
13466	ForceSendFields []string `json:"-"`
13467
13468	// NullFields is a list of field names (e.g. "HealthChecks") to include
13469	// in API requests with the JSON null value. By default, fields with
13470	// empty values are omitted from API requests. However, any field with
13471	// an empty value appearing in NullFields will be sent to the server as
13472	// null. It is an error if a field in this list has a non-empty value.
13473	// This may be used to include null fields in Patch requests.
13474	NullFields []string `json:"-"`
13475}
13476
13477func (s *HealthChecksScopedList) MarshalJSON() ([]byte, error) {
13478	type NoMethod HealthChecksScopedList
13479	raw := NoMethod(*s)
13480	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13481}
13482
13483// HealthChecksScopedListWarning: Informational warning which replaces
13484// the list of backend services when the list is empty.
13485type HealthChecksScopedListWarning struct {
13486	// Code: [Output Only] A warning code, if applicable. For example,
13487	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
13488	// the response.
13489	//
13490	// Possible values:
13491	//   "CLEANUP_FAILED"
13492	//   "DEPRECATED_RESOURCE_USED"
13493	//   "DEPRECATED_TYPE_USED"
13494	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
13495	//   "EXPERIMENTAL_TYPE_USED"
13496	//   "EXTERNAL_API_WARNING"
13497	//   "FIELD_VALUE_OVERRIDEN"
13498	//   "INJECTED_KERNELS_DEPRECATED"
13499	//   "LARGE_DEPLOYMENT_WARNING"
13500	//   "MISSING_TYPE_DEPENDENCY"
13501	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
13502	//   "NEXT_HOP_CANNOT_IP_FORWARD"
13503	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
13504	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
13505	//   "NEXT_HOP_NOT_RUNNING"
13506	//   "NOT_CRITICAL_ERROR"
13507	//   "NO_RESULTS_ON_PAGE"
13508	//   "PARTIAL_SUCCESS"
13509	//   "REQUIRED_TOS_AGREEMENT"
13510	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
13511	//   "RESOURCE_NOT_DELETED"
13512	//   "SCHEMA_VALIDATION_IGNORED"
13513	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
13514	//   "UNDECLARED_PROPERTIES"
13515	//   "UNREACHABLE"
13516	Code string `json:"code,omitempty"`
13517
13518	// Data: [Output Only] Metadata about this warning in key: value format.
13519	// For example:
13520	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
13521	Data []*HealthChecksScopedListWarningData `json:"data,omitempty"`
13522
13523	// Message: [Output Only] A human-readable description of the warning
13524	// code.
13525	Message string `json:"message,omitempty"`
13526
13527	// ForceSendFields is a list of field names (e.g. "Code") to
13528	// unconditionally include in API requests. By default, fields with
13529	// empty values are omitted from API requests. However, any non-pointer,
13530	// non-interface field appearing in ForceSendFields will be sent to the
13531	// server regardless of whether the field is empty or not. This may be
13532	// used to include empty fields in Patch requests.
13533	ForceSendFields []string `json:"-"`
13534
13535	// NullFields is a list of field names (e.g. "Code") to include in API
13536	// requests with the JSON null value. By default, fields with empty
13537	// values are omitted from API requests. However, any field with an
13538	// empty value appearing in NullFields will be sent to the server as
13539	// null. It is an error if a field in this list has a non-empty value.
13540	// This may be used to include null fields in Patch requests.
13541	NullFields []string `json:"-"`
13542}
13543
13544func (s *HealthChecksScopedListWarning) MarshalJSON() ([]byte, error) {
13545	type NoMethod HealthChecksScopedListWarning
13546	raw := NoMethod(*s)
13547	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13548}
13549
13550type HealthChecksScopedListWarningData struct {
13551	// Key: [Output Only] A key that provides more detail on the warning
13552	// being returned. For example, for warnings where there are no results
13553	// in a list request for a particular zone, this key might be scope and
13554	// the key value might be the zone name. Other examples might be a key
13555	// indicating a deprecated resource and a suggested replacement, or a
13556	// warning about invalid network settings (for example, if an instance
13557	// attempts to perform IP forwarding but is not enabled for IP
13558	// forwarding).
13559	Key string `json:"key,omitempty"`
13560
13561	// Value: [Output Only] A warning data value corresponding to the key.
13562	Value string `json:"value,omitempty"`
13563
13564	// ForceSendFields is a list of field names (e.g. "Key") to
13565	// unconditionally include in API requests. By default, fields with
13566	// empty values are omitted from API requests. However, any non-pointer,
13567	// non-interface field appearing in ForceSendFields will be sent to the
13568	// server regardless of whether the field is empty or not. This may be
13569	// used to include empty fields in Patch requests.
13570	ForceSendFields []string `json:"-"`
13571
13572	// NullFields is a list of field names (e.g. "Key") to include in API
13573	// requests with the JSON null value. By default, fields with empty
13574	// values are omitted from API requests. However, any field with an
13575	// empty value appearing in NullFields will be sent to the server as
13576	// null. It is an error if a field in this list has a non-empty value.
13577	// This may be used to include null fields in Patch requests.
13578	NullFields []string `json:"-"`
13579}
13580
13581func (s *HealthChecksScopedListWarningData) MarshalJSON() ([]byte, error) {
13582	type NoMethod HealthChecksScopedListWarningData
13583	raw := NoMethod(*s)
13584	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13585}
13586
13587type HealthStatus struct {
13588	// Annotations: Metadata defined as annotations for network endpoint.
13589	Annotations map[string]string `json:"annotations,omitempty"`
13590
13591	// HealthState: Health state of the instance.
13592	//
13593	// Possible values:
13594	//   "HEALTHY"
13595	//   "UNHEALTHY"
13596	HealthState string `json:"healthState,omitempty"`
13597
13598	// Instance: URL of the instance resource.
13599	Instance string `json:"instance,omitempty"`
13600
13601	// IpAddress: For target pool based Network Load Balancing, it indicates
13602	// the forwarding rule's IP address assigned to this instance. For other
13603	// types of load balancing, the field indicates VM internal ip.
13604	IpAddress string `json:"ipAddress,omitempty"`
13605
13606	// Port: The named port of the instance group, not necessarily the port
13607	// that is health-checked.
13608	Port int64 `json:"port,omitempty"`
13609
13610	Weight string `json:"weight,omitempty"`
13611
13612	// Possible values:
13613	//   "INVALID_WEIGHT"
13614	//   "MISSING_WEIGHT"
13615	//   "UNAVAILABLE_WEIGHT"
13616	//   "WEIGHT_NONE"
13617	WeightError string `json:"weightError,omitempty"`
13618
13619	// ForceSendFields is a list of field names (e.g. "Annotations") to
13620	// unconditionally include in API requests. By default, fields with
13621	// empty values are omitted from API requests. However, any non-pointer,
13622	// non-interface field appearing in ForceSendFields will be sent to the
13623	// server regardless of whether the field is empty or not. This may be
13624	// used to include empty fields in Patch requests.
13625	ForceSendFields []string `json:"-"`
13626
13627	// NullFields is a list of field names (e.g. "Annotations") to include
13628	// in API requests with the JSON null value. By default, fields with
13629	// empty values are omitted from API requests. However, any field with
13630	// an empty value appearing in NullFields will be sent to the server as
13631	// null. It is an error if a field in this list has a non-empty value.
13632	// This may be used to include null fields in Patch requests.
13633	NullFields []string `json:"-"`
13634}
13635
13636func (s *HealthStatus) MarshalJSON() ([]byte, error) {
13637	type NoMethod HealthStatus
13638	raw := NoMethod(*s)
13639	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13640}
13641
13642type HealthStatusForNetworkEndpoint struct {
13643	// BackendService: URL of the backend service associated with the health
13644	// state of the network endpoint.
13645	BackendService *BackendServiceReference `json:"backendService,omitempty"`
13646
13647	// ForwardingRule: URL of the forwarding rule associated with the health
13648	// state of the network endpoint.
13649	ForwardingRule *ForwardingRuleReference `json:"forwardingRule,omitempty"`
13650
13651	// HealthCheck: URL of the health check associated with the health state
13652	// of the network endpoint.
13653	HealthCheck *HealthCheckReference `json:"healthCheck,omitempty"`
13654
13655	// HealthCheckService: URL of the health check service associated with
13656	// the health state of the network endpoint.
13657	HealthCheckService *HealthCheckServiceReference `json:"healthCheckService,omitempty"`
13658
13659	// HealthState: Health state of the network endpoint determined based on
13660	// the health checks configured.
13661	//
13662	// Possible values:
13663	//   "DRAINING"
13664	//   "HEALTHY"
13665	//   "UNHEALTHY"
13666	//   "UNKNOWN"
13667	HealthState string `json:"healthState,omitempty"`
13668
13669	// ForceSendFields is a list of field names (e.g. "BackendService") to
13670	// unconditionally include in API requests. By default, fields with
13671	// empty values are omitted from API requests. However, any non-pointer,
13672	// non-interface field appearing in ForceSendFields will be sent to the
13673	// server regardless of whether the field is empty or not. This may be
13674	// used to include empty fields in Patch requests.
13675	ForceSendFields []string `json:"-"`
13676
13677	// NullFields is a list of field names (e.g. "BackendService") to
13678	// include in API requests with the JSON null value. By default, fields
13679	// with empty values are omitted from API requests. However, any field
13680	// with an empty value appearing in NullFields will be sent to the
13681	// server as null. It is an error if a field in this list has a
13682	// non-empty value. This may be used to include null fields in Patch
13683	// requests.
13684	NullFields []string `json:"-"`
13685}
13686
13687func (s *HealthStatusForNetworkEndpoint) MarshalJSON() ([]byte, error) {
13688	type NoMethod HealthStatusForNetworkEndpoint
13689	raw := NoMethod(*s)
13690	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13691}
13692
13693// HostRule: UrlMaps A host-matching rule for a URL. If matched, will
13694// use the named PathMatcher to select the BackendService.
13695type HostRule struct {
13696	// Description: An optional description of this resource. Provide this
13697	// property when you create the resource.
13698	Description string `json:"description,omitempty"`
13699
13700	// Hosts: The list of host patterns to match. They must be valid
13701	// hostnames with optional port numbers in the format host:port. *
13702	// matches any string of ([a-z0-9-.]*). In that case, * must be the
13703	// first character and must be followed in the pattern by either - or
13704	// ..
13705	// * based matching is not supported when the URL map is bound to target
13706	// gRPC proxy that has validateForProxyless field set to true.
13707	Hosts []string `json:"hosts,omitempty"`
13708
13709	// PathMatcher: The name of the PathMatcher to use to match the path
13710	// portion of the URL if the hostRule matches the URL's host portion.
13711	PathMatcher string `json:"pathMatcher,omitempty"`
13712
13713	// ForceSendFields is a list of field names (e.g. "Description") to
13714	// unconditionally include in API requests. By default, fields with
13715	// empty values are omitted from API requests. However, any non-pointer,
13716	// non-interface field appearing in ForceSendFields will be sent to the
13717	// server regardless of whether the field is empty or not. This may be
13718	// used to include empty fields in Patch requests.
13719	ForceSendFields []string `json:"-"`
13720
13721	// NullFields is a list of field names (e.g. "Description") to include
13722	// in API requests with the JSON null value. By default, fields with
13723	// empty values are omitted from API requests. However, any field with
13724	// an empty value appearing in NullFields will be sent to the server as
13725	// null. It is an error if a field in this list has a non-empty value.
13726	// This may be used to include null fields in Patch requests.
13727	NullFields []string `json:"-"`
13728}
13729
13730func (s *HostRule) MarshalJSON() ([]byte, error) {
13731	type NoMethod HostRule
13732	raw := NoMethod(*s)
13733	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13734}
13735
13736// HttpFaultAbort: Specification for how requests are aborted as part of
13737// fault injection.
13738type HttpFaultAbort struct {
13739	// HttpStatus: The HTTP status code used to abort the request.
13740	// The value must be between 200 and 599 inclusive.
13741	HttpStatus int64 `json:"httpStatus,omitempty"`
13742
13743	// Percentage: The percentage of traffic
13744	// (connections/operations/requests) which will be aborted as part of
13745	// fault injection.
13746	// The value must be between 0.0 and 100.0 inclusive.
13747	Percentage float64 `json:"percentage,omitempty"`
13748
13749	// ForceSendFields is a list of field names (e.g. "HttpStatus") to
13750	// unconditionally include in API requests. By default, fields with
13751	// empty values are omitted from API requests. However, any non-pointer,
13752	// non-interface field appearing in ForceSendFields will be sent to the
13753	// server regardless of whether the field is empty or not. This may be
13754	// used to include empty fields in Patch requests.
13755	ForceSendFields []string `json:"-"`
13756
13757	// NullFields is a list of field names (e.g. "HttpStatus") to include in
13758	// API requests with the JSON null value. By default, fields with empty
13759	// values are omitted from API requests. However, any field with an
13760	// empty value appearing in NullFields will be sent to the server as
13761	// null. It is an error if a field in this list has a non-empty value.
13762	// This may be used to include null fields in Patch requests.
13763	NullFields []string `json:"-"`
13764}
13765
13766func (s *HttpFaultAbort) MarshalJSON() ([]byte, error) {
13767	type NoMethod HttpFaultAbort
13768	raw := NoMethod(*s)
13769	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13770}
13771
13772func (s *HttpFaultAbort) UnmarshalJSON(data []byte) error {
13773	type NoMethod HttpFaultAbort
13774	var s1 struct {
13775		Percentage gensupport.JSONFloat64 `json:"percentage"`
13776		*NoMethod
13777	}
13778	s1.NoMethod = (*NoMethod)(s)
13779	if err := json.Unmarshal(data, &s1); err != nil {
13780		return err
13781	}
13782	s.Percentage = float64(s1.Percentage)
13783	return nil
13784}
13785
13786// HttpFaultDelay: Specifies the delay introduced by Loadbalancer before
13787// forwarding the request to the backend service as part of fault
13788// injection.
13789type HttpFaultDelay struct {
13790	// FixedDelay: Specifies the value of the fixed delay interval.
13791	FixedDelay *Duration `json:"fixedDelay,omitempty"`
13792
13793	// Percentage: The percentage of traffic
13794	// (connections/operations/requests) on which delay will be introduced
13795	// as part of fault injection.
13796	// The value must be between 0.0 and 100.0 inclusive.
13797	Percentage float64 `json:"percentage,omitempty"`
13798
13799	// ForceSendFields is a list of field names (e.g. "FixedDelay") to
13800	// unconditionally include in API requests. By default, fields with
13801	// empty values are omitted from API requests. However, any non-pointer,
13802	// non-interface field appearing in ForceSendFields will be sent to the
13803	// server regardless of whether the field is empty or not. This may be
13804	// used to include empty fields in Patch requests.
13805	ForceSendFields []string `json:"-"`
13806
13807	// NullFields is a list of field names (e.g. "FixedDelay") to include in
13808	// API requests with the JSON null value. By default, fields with empty
13809	// values are omitted from API requests. However, any field with an
13810	// empty value appearing in NullFields will be sent to the server as
13811	// null. It is an error if a field in this list has a non-empty value.
13812	// This may be used to include null fields in Patch requests.
13813	NullFields []string `json:"-"`
13814}
13815
13816func (s *HttpFaultDelay) MarshalJSON() ([]byte, error) {
13817	type NoMethod HttpFaultDelay
13818	raw := NoMethod(*s)
13819	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13820}
13821
13822func (s *HttpFaultDelay) UnmarshalJSON(data []byte) error {
13823	type NoMethod HttpFaultDelay
13824	var s1 struct {
13825		Percentage gensupport.JSONFloat64 `json:"percentage"`
13826		*NoMethod
13827	}
13828	s1.NoMethod = (*NoMethod)(s)
13829	if err := json.Unmarshal(data, &s1); err != nil {
13830		return err
13831	}
13832	s.Percentage = float64(s1.Percentage)
13833	return nil
13834}
13835
13836// HttpFaultInjection: The specification for fault injection introduced
13837// into traffic to test the resiliency of clients to backend service
13838// failure. As part of fault injection, when clients send requests to a
13839// backend service, delays can be introduced by Loadbalancer on a
13840// percentage of requests before sending those request to the backend
13841// service. Similarly requests from clients can be aborted by the
13842// Loadbalancer for a percentage of requests.
13843type HttpFaultInjection struct {
13844	// Abort: The specification for how client requests are aborted as part
13845	// of fault injection.
13846	Abort *HttpFaultAbort `json:"abort,omitempty"`
13847
13848	// Delay: The specification for how client requests are delayed as part
13849	// of fault injection, before being sent to a backend service.
13850	Delay *HttpFaultDelay `json:"delay,omitempty"`
13851
13852	// ForceSendFields is a list of field names (e.g. "Abort") to
13853	// unconditionally include in API requests. By default, fields with
13854	// empty values are omitted from API requests. However, any non-pointer,
13855	// non-interface field appearing in ForceSendFields will be sent to the
13856	// server regardless of whether the field is empty or not. This may be
13857	// used to include empty fields in Patch requests.
13858	ForceSendFields []string `json:"-"`
13859
13860	// NullFields is a list of field names (e.g. "Abort") to include in API
13861	// requests with the JSON null value. By default, fields with empty
13862	// values are omitted from API requests. However, any field with an
13863	// empty value appearing in NullFields will be sent to the server as
13864	// null. It is an error if a field in this list has a non-empty value.
13865	// This may be used to include null fields in Patch requests.
13866	NullFields []string `json:"-"`
13867}
13868
13869func (s *HttpFaultInjection) MarshalJSON() ([]byte, error) {
13870	type NoMethod HttpFaultInjection
13871	raw := NoMethod(*s)
13872	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13873}
13874
13875// HttpFilterConfig: HttpFilterConfiguration supplies additional
13876// contextual settings for networkservices.HttpFilter resources enabled
13877// by Traffic Director.
13878type HttpFilterConfig struct {
13879	// Config: The configuration needed to enable the
13880	// networkservices.HttpFilter resource. The configuration must be YAML
13881	// formatted and only contain fields defined in the protobuf identified
13882	// in configTypeUrl
13883	Config string `json:"config,omitempty"`
13884
13885	// ConfigTypeUrl: The fully qualified versioned proto3 type url of the
13886	// protobuf that the filter expects for its contextual settings, for
13887	// example: type.googleapis.com/google.protobuf.Struct
13888	ConfigTypeUrl string `json:"configTypeUrl,omitempty"`
13889
13890	// FilterName: Name of the networkservices.HttpFilter resource this
13891	// configuration belongs to. This name must be known to the xDS client.
13892	// Example: envoy.wasm
13893	FilterName string `json:"filterName,omitempty"`
13894
13895	// ForceSendFields is a list of field names (e.g. "Config") to
13896	// unconditionally include in API requests. By default, fields with
13897	// empty values are omitted from API requests. However, any non-pointer,
13898	// non-interface field appearing in ForceSendFields will be sent to the
13899	// server regardless of whether the field is empty or not. This may be
13900	// used to include empty fields in Patch requests.
13901	ForceSendFields []string `json:"-"`
13902
13903	// NullFields is a list of field names (e.g. "Config") to include in API
13904	// requests with the JSON null value. By default, fields with empty
13905	// values are omitted from API requests. However, any field with an
13906	// empty value appearing in NullFields will be sent to the server as
13907	// null. It is an error if a field in this list has a non-empty value.
13908	// This may be used to include null fields in Patch requests.
13909	NullFields []string `json:"-"`
13910}
13911
13912func (s *HttpFilterConfig) MarshalJSON() ([]byte, error) {
13913	type NoMethod HttpFilterConfig
13914	raw := NoMethod(*s)
13915	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13916}
13917
13918// HttpHeaderAction: The request and response header transformations
13919// that take effect before the request is passed along to the selected
13920// backendService.
13921type HttpHeaderAction struct {
13922	// RequestHeadersToAdd: Headers to add to a matching request prior to
13923	// forwarding the request to the backendService.
13924	RequestHeadersToAdd []*HttpHeaderOption `json:"requestHeadersToAdd,omitempty"`
13925
13926	// RequestHeadersToRemove: A list of header names for headers that need
13927	// to be removed from the request prior to forwarding the request to the
13928	// backendService.
13929	RequestHeadersToRemove []string `json:"requestHeadersToRemove,omitempty"`
13930
13931	// ResponseHeadersToAdd: Headers to add the response prior to sending
13932	// the response back to the client.
13933	ResponseHeadersToAdd []*HttpHeaderOption `json:"responseHeadersToAdd,omitempty"`
13934
13935	// ResponseHeadersToRemove: A list of header names for headers that need
13936	// to be removed from the response prior to sending the response back to
13937	// the client.
13938	ResponseHeadersToRemove []string `json:"responseHeadersToRemove,omitempty"`
13939
13940	// ForceSendFields is a list of field names (e.g. "RequestHeadersToAdd")
13941	// to unconditionally include in API requests. By default, fields with
13942	// empty values are omitted from API requests. However, any non-pointer,
13943	// non-interface field appearing in ForceSendFields will be sent to the
13944	// server regardless of whether the field is empty or not. This may be
13945	// used to include empty fields in Patch requests.
13946	ForceSendFields []string `json:"-"`
13947
13948	// NullFields is a list of field names (e.g. "RequestHeadersToAdd") to
13949	// include in API requests with the JSON null value. By default, fields
13950	// with empty values are omitted from API requests. However, any field
13951	// with an empty value appearing in NullFields will be sent to the
13952	// server as null. It is an error if a field in this list has a
13953	// non-empty value. This may be used to include null fields in Patch
13954	// requests.
13955	NullFields []string `json:"-"`
13956}
13957
13958func (s *HttpHeaderAction) MarshalJSON() ([]byte, error) {
13959	type NoMethod HttpHeaderAction
13960	raw := NoMethod(*s)
13961	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13962}
13963
13964// HttpHeaderMatch: matchRule criteria for request header matches.
13965type HttpHeaderMatch struct {
13966	// ExactMatch: The value should exactly match contents of
13967	// exactMatch.
13968	// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
13969	// presentMatch or rangeMatch must be set.
13970	ExactMatch string `json:"exactMatch,omitempty"`
13971
13972	// HeaderName: The name of the HTTP header to match.
13973	// For matching against the HTTP request's authority, use a headerMatch
13974	// with the header name ":authority".
13975	// For matching a request's method, use the headerName ":method".
13976	// When the URL map is bound to target gRPC proxy that has
13977	// validateForProxyless field set to true, only non-binary
13978	// user-specified custom metadata and the `content-type` header are
13979	// supported. The following transport-level headers cannot be used in
13980	// header matching rules: `:authority`, `:method`, `:path`, `:scheme`,
13981	// `user-agent`, `accept-encoding`, `content-encoding`,
13982	// `grpc-accept-encoding`, `grpc-encoding`,
13983	// `grpc-previous-rpc-attempts`, `grpc-tags-bin`, `grpc-timeout` and
13984	// `grpc-trace-bin.
13985	HeaderName string `json:"headerName,omitempty"`
13986
13987	// InvertMatch: If set to false, the headerMatch is considered a match
13988	// if the match criteria above are met. If set to true, the headerMatch
13989	// is considered a match if the match criteria above are NOT met.
13990	// The default setting is false.
13991	InvertMatch bool `json:"invertMatch,omitempty"`
13992
13993	// PrefixMatch: The value of the header must start with the contents of
13994	// prefixMatch.
13995	// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
13996	// presentMatch or rangeMatch must be set.
13997	PrefixMatch string `json:"prefixMatch,omitempty"`
13998
13999	// PresentMatch: A header with the contents of headerName must exist.
14000	// The match takes place whether or not the request's header has a
14001	// value.
14002	// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
14003	// presentMatch or rangeMatch must be set.
14004	PresentMatch bool `json:"presentMatch,omitempty"`
14005
14006	// RangeMatch: The header value must be an integer and its value must be
14007	// in the range specified in rangeMatch. If the header does not contain
14008	// an integer, number or is empty, the match fails.
14009	// For example for a range [-5, 0]
14010	// - -3 will match.
14011	// - 0 will not match.
14012	// - 0.25 will not match.
14013	// - -3someString will not match.
14014	// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
14015	// presentMatch or rangeMatch must be set.
14016	// Note that rangeMatch is not supported for Loadbalancers that have
14017	// their loadBalancingScheme set to EXTERNAL.
14018	RangeMatch *Int64RangeMatch `json:"rangeMatch,omitempty"`
14019
14020	// RegexMatch: The value of the header must match the regular expression
14021	// specified in regexMatch. For regular expression grammar, please see:
14022	// github.com/google/re2/wiki/Syntax
14023	// For matching against a port specified in the HTTP request, use a
14024	// headerMatch with headerName set to PORT and a regular expression that
14025	// satisfies the RFC2616 Host header's port specifier.
14026	// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
14027	// presentMatch or rangeMatch must be set.
14028	// Note that regexMatch only applies to Loadbalancers that have their
14029	// loadBalancingScheme set to INTERNAL_SELF_MANAGED.
14030	RegexMatch string `json:"regexMatch,omitempty"`
14031
14032	// SuffixMatch: The value of the header must end with the contents of
14033	// suffixMatch.
14034	// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
14035	// presentMatch or rangeMatch must be set.
14036	SuffixMatch string `json:"suffixMatch,omitempty"`
14037
14038	// ForceSendFields is a list of field names (e.g. "ExactMatch") to
14039	// unconditionally include in API requests. By default, fields with
14040	// empty values are omitted from API requests. However, any non-pointer,
14041	// non-interface field appearing in ForceSendFields will be sent to the
14042	// server regardless of whether the field is empty or not. This may be
14043	// used to include empty fields in Patch requests.
14044	ForceSendFields []string `json:"-"`
14045
14046	// NullFields is a list of field names (e.g. "ExactMatch") to include in
14047	// API requests with the JSON null value. By default, fields with empty
14048	// values are omitted from API requests. However, any field with an
14049	// empty value appearing in NullFields will be sent to the server as
14050	// null. It is an error if a field in this list has a non-empty value.
14051	// This may be used to include null fields in Patch requests.
14052	NullFields []string `json:"-"`
14053}
14054
14055func (s *HttpHeaderMatch) MarshalJSON() ([]byte, error) {
14056	type NoMethod HttpHeaderMatch
14057	raw := NoMethod(*s)
14058	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14059}
14060
14061// HttpHeaderOption: Specification determining how headers are added to
14062// requests or responses.
14063type HttpHeaderOption struct {
14064	// HeaderName: The name of the header.
14065	HeaderName string `json:"headerName,omitempty"`
14066
14067	// HeaderValue: The value of the header to add.
14068	HeaderValue string `json:"headerValue,omitempty"`
14069
14070	// Replace: If false, headerValue is appended to any values that already
14071	// exist for the header. If true, headerValue is set for the header,
14072	// discarding any values that were set for that header.
14073	// The default value is false.
14074	Replace bool `json:"replace,omitempty"`
14075
14076	// ForceSendFields is a list of field names (e.g. "HeaderName") to
14077	// unconditionally include in API requests. By default, fields with
14078	// empty values are omitted from API requests. However, any non-pointer,
14079	// non-interface field appearing in ForceSendFields will be sent to the
14080	// server regardless of whether the field is empty or not. This may be
14081	// used to include empty fields in Patch requests.
14082	ForceSendFields []string `json:"-"`
14083
14084	// NullFields is a list of field names (e.g. "HeaderName") to include in
14085	// API requests with the JSON null value. By default, fields with empty
14086	// values are omitted from API requests. However, any field with an
14087	// empty value appearing in NullFields will be sent to the server as
14088	// null. It is an error if a field in this list has a non-empty value.
14089	// This may be used to include null fields in Patch requests.
14090	NullFields []string `json:"-"`
14091}
14092
14093func (s *HttpHeaderOption) MarshalJSON() ([]byte, error) {
14094	type NoMethod HttpHeaderOption
14095	raw := NoMethod(*s)
14096	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14097}
14098
14099// HttpHealthCheck: Represents a legacy HTTP Health Check
14100// resource.
14101//
14102// Legacy health checks are required by network load balancers. For more
14103// information, read Health Check Concepts.
14104type HttpHealthCheck struct {
14105	// CheckIntervalSec: How often (in seconds) to send a health check. The
14106	// default value is 5 seconds.
14107	CheckIntervalSec int64 `json:"checkIntervalSec,omitempty"`
14108
14109	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
14110	// format.
14111	CreationTimestamp string `json:"creationTimestamp,omitempty"`
14112
14113	// Description: An optional description of this resource. Provide this
14114	// property when you create the resource.
14115	Description string `json:"description,omitempty"`
14116
14117	// HealthyThreshold: A so-far unhealthy instance will be marked healthy
14118	// after this many consecutive successes. The default value is 2.
14119	HealthyThreshold int64 `json:"healthyThreshold,omitempty"`
14120
14121	// Host: The value of the host header in the HTTP health check request.
14122	// If left empty (default value), the public IP on behalf of which this
14123	// health check is performed will be used.
14124	Host string `json:"host,omitempty"`
14125
14126	// Id: [Output Only] The unique identifier for the resource. This
14127	// identifier is defined by the server.
14128	Id uint64 `json:"id,omitempty,string"`
14129
14130	// Kind: [Output Only] Type of the resource. Always
14131	// compute#httpHealthCheck for HTTP health checks.
14132	Kind string `json:"kind,omitempty"`
14133
14134	// Name: Name of the resource. Provided by the client when the resource
14135	// is created. The name must be 1-63 characters long, and comply with
14136	// RFC1035. Specifically, the name must be 1-63 characters long and
14137	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
14138	// the first character must be a lowercase letter, and all following
14139	// characters must be a dash, lowercase letter, or digit, except the
14140	// last character, which cannot be a dash.
14141	Name string `json:"name,omitempty"`
14142
14143	// Port: The TCP port number for the HTTP health check request. The
14144	// default value is 80.
14145	Port int64 `json:"port,omitempty"`
14146
14147	// RequestPath: The request path of the HTTP health check request. The
14148	// default value is /. This field does not support query parameters.
14149	RequestPath string `json:"requestPath,omitempty"`
14150
14151	// SelfLink: [Output Only] Server-defined URL for the resource.
14152	SelfLink string `json:"selfLink,omitempty"`
14153
14154	// TimeoutSec: How long (in seconds) to wait before claiming failure.
14155	// The default value is 5 seconds. It is invalid for timeoutSec to have
14156	// greater value than checkIntervalSec.
14157	TimeoutSec int64 `json:"timeoutSec,omitempty"`
14158
14159	// UnhealthyThreshold: A so-far healthy instance will be marked
14160	// unhealthy after this many consecutive failures. The default value is
14161	// 2.
14162	UnhealthyThreshold int64 `json:"unhealthyThreshold,omitempty"`
14163
14164	// ServerResponse contains the HTTP response code and headers from the
14165	// server.
14166	googleapi.ServerResponse `json:"-"`
14167
14168	// ForceSendFields is a list of field names (e.g. "CheckIntervalSec") to
14169	// unconditionally include in API requests. By default, fields with
14170	// empty values are omitted from API requests. However, any non-pointer,
14171	// non-interface field appearing in ForceSendFields will be sent to the
14172	// server regardless of whether the field is empty or not. This may be
14173	// used to include empty fields in Patch requests.
14174	ForceSendFields []string `json:"-"`
14175
14176	// NullFields is a list of field names (e.g. "CheckIntervalSec") to
14177	// include in API requests with the JSON null value. By default, fields
14178	// with empty values are omitted from API requests. However, any field
14179	// with an empty value appearing in NullFields will be sent to the
14180	// server as null. It is an error if a field in this list has a
14181	// non-empty value. This may be used to include null fields in Patch
14182	// requests.
14183	NullFields []string `json:"-"`
14184}
14185
14186func (s *HttpHealthCheck) MarshalJSON() ([]byte, error) {
14187	type NoMethod HttpHealthCheck
14188	raw := NoMethod(*s)
14189	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14190}
14191
14192// HttpHealthCheckList: Contains a list of HttpHealthCheck resources.
14193type HttpHealthCheckList struct {
14194	// Id: [Output Only] Unique identifier for the resource; defined by the
14195	// server.
14196	Id string `json:"id,omitempty"`
14197
14198	// Items: A list of HttpHealthCheck resources.
14199	Items []*HttpHealthCheck `json:"items,omitempty"`
14200
14201	// Kind: Type of resource.
14202	Kind string `json:"kind,omitempty"`
14203
14204	// NextPageToken: [Output Only] This token allows you to get the next
14205	// page of results for list requests. If the number of results is larger
14206	// than maxResults, use the nextPageToken as a value for the query
14207	// parameter pageToken in the next list request. Subsequent list
14208	// requests will have their own nextPageToken to continue paging through
14209	// the results.
14210	NextPageToken string `json:"nextPageToken,omitempty"`
14211
14212	// SelfLink: [Output Only] Server-defined URL for this resource.
14213	SelfLink string `json:"selfLink,omitempty"`
14214
14215	// Warning: [Output Only] Informational warning message.
14216	Warning *HttpHealthCheckListWarning `json:"warning,omitempty"`
14217
14218	// ServerResponse contains the HTTP response code and headers from the
14219	// server.
14220	googleapi.ServerResponse `json:"-"`
14221
14222	// ForceSendFields is a list of field names (e.g. "Id") to
14223	// unconditionally include in API requests. By default, fields with
14224	// empty values are omitted from API requests. However, any non-pointer,
14225	// non-interface field appearing in ForceSendFields will be sent to the
14226	// server regardless of whether the field is empty or not. This may be
14227	// used to include empty fields in Patch requests.
14228	ForceSendFields []string `json:"-"`
14229
14230	// NullFields is a list of field names (e.g. "Id") to include in API
14231	// requests with the JSON null value. By default, fields with empty
14232	// values are omitted from API requests. However, any field with an
14233	// empty value appearing in NullFields will be sent to the server as
14234	// null. It is an error if a field in this list has a non-empty value.
14235	// This may be used to include null fields in Patch requests.
14236	NullFields []string `json:"-"`
14237}
14238
14239func (s *HttpHealthCheckList) MarshalJSON() ([]byte, error) {
14240	type NoMethod HttpHealthCheckList
14241	raw := NoMethod(*s)
14242	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14243}
14244
14245// HttpHealthCheckListWarning: [Output Only] Informational warning
14246// message.
14247type HttpHealthCheckListWarning struct {
14248	// Code: [Output Only] A warning code, if applicable. For example,
14249	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
14250	// the response.
14251	//
14252	// Possible values:
14253	//   "CLEANUP_FAILED"
14254	//   "DEPRECATED_RESOURCE_USED"
14255	//   "DEPRECATED_TYPE_USED"
14256	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
14257	//   "EXPERIMENTAL_TYPE_USED"
14258	//   "EXTERNAL_API_WARNING"
14259	//   "FIELD_VALUE_OVERRIDEN"
14260	//   "INJECTED_KERNELS_DEPRECATED"
14261	//   "LARGE_DEPLOYMENT_WARNING"
14262	//   "MISSING_TYPE_DEPENDENCY"
14263	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
14264	//   "NEXT_HOP_CANNOT_IP_FORWARD"
14265	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
14266	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
14267	//   "NEXT_HOP_NOT_RUNNING"
14268	//   "NOT_CRITICAL_ERROR"
14269	//   "NO_RESULTS_ON_PAGE"
14270	//   "PARTIAL_SUCCESS"
14271	//   "REQUIRED_TOS_AGREEMENT"
14272	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
14273	//   "RESOURCE_NOT_DELETED"
14274	//   "SCHEMA_VALIDATION_IGNORED"
14275	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
14276	//   "UNDECLARED_PROPERTIES"
14277	//   "UNREACHABLE"
14278	Code string `json:"code,omitempty"`
14279
14280	// Data: [Output Only] Metadata about this warning in key: value format.
14281	// For example:
14282	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
14283	Data []*HttpHealthCheckListWarningData `json:"data,omitempty"`
14284
14285	// Message: [Output Only] A human-readable description of the warning
14286	// code.
14287	Message string `json:"message,omitempty"`
14288
14289	// ForceSendFields is a list of field names (e.g. "Code") to
14290	// unconditionally include in API requests. By default, fields with
14291	// empty values are omitted from API requests. However, any non-pointer,
14292	// non-interface field appearing in ForceSendFields will be sent to the
14293	// server regardless of whether the field is empty or not. This may be
14294	// used to include empty fields in Patch requests.
14295	ForceSendFields []string `json:"-"`
14296
14297	// NullFields is a list of field names (e.g. "Code") to include in API
14298	// requests with the JSON null value. By default, fields with empty
14299	// values are omitted from API requests. However, any field with an
14300	// empty value appearing in NullFields will be sent to the server as
14301	// null. It is an error if a field in this list has a non-empty value.
14302	// This may be used to include null fields in Patch requests.
14303	NullFields []string `json:"-"`
14304}
14305
14306func (s *HttpHealthCheckListWarning) MarshalJSON() ([]byte, error) {
14307	type NoMethod HttpHealthCheckListWarning
14308	raw := NoMethod(*s)
14309	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14310}
14311
14312type HttpHealthCheckListWarningData struct {
14313	// Key: [Output Only] A key that provides more detail on the warning
14314	// being returned. For example, for warnings where there are no results
14315	// in a list request for a particular zone, this key might be scope and
14316	// the key value might be the zone name. Other examples might be a key
14317	// indicating a deprecated resource and a suggested replacement, or a
14318	// warning about invalid network settings (for example, if an instance
14319	// attempts to perform IP forwarding but is not enabled for IP
14320	// forwarding).
14321	Key string `json:"key,omitempty"`
14322
14323	// Value: [Output Only] A warning data value corresponding to the key.
14324	Value string `json:"value,omitempty"`
14325
14326	// ForceSendFields is a list of field names (e.g. "Key") to
14327	// unconditionally include in API requests. By default, fields with
14328	// empty values are omitted from API requests. However, any non-pointer,
14329	// non-interface field appearing in ForceSendFields will be sent to the
14330	// server regardless of whether the field is empty or not. This may be
14331	// used to include empty fields in Patch requests.
14332	ForceSendFields []string `json:"-"`
14333
14334	// NullFields is a list of field names (e.g. "Key") to include in API
14335	// requests with the JSON null value. By default, fields with empty
14336	// values are omitted from API requests. However, any field with an
14337	// empty value appearing in NullFields will be sent to the server as
14338	// null. It is an error if a field in this list has a non-empty value.
14339	// This may be used to include null fields in Patch requests.
14340	NullFields []string `json:"-"`
14341}
14342
14343func (s *HttpHealthCheckListWarningData) MarshalJSON() ([]byte, error) {
14344	type NoMethod HttpHealthCheckListWarningData
14345	raw := NoMethod(*s)
14346	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14347}
14348
14349// HttpQueryParameterMatch: HttpRouteRuleMatch criteria for a request's
14350// query parameter.
14351type HttpQueryParameterMatch struct {
14352	// ExactMatch: The queryParameterMatch matches if the value of the
14353	// parameter exactly matches the contents of exactMatch.
14354	// Only one of presentMatch, exactMatch or regexMatch must be set.
14355	ExactMatch string `json:"exactMatch,omitempty"`
14356
14357	// Name: The name of the query parameter to match. The query parameter
14358	// must exist in the request, in the absence of which the request match
14359	// fails.
14360	Name string `json:"name,omitempty"`
14361
14362	// PresentMatch: Specifies that the queryParameterMatch matches if the
14363	// request contains the query parameter, irrespective of whether the
14364	// parameter has a value or not.
14365	// Only one of presentMatch, exactMatch or regexMatch must be set.
14366	PresentMatch bool `json:"presentMatch,omitempty"`
14367
14368	// RegexMatch: The queryParameterMatch matches if the value of the
14369	// parameter matches the regular expression specified by regexMatch. For
14370	// the regular expression grammar, please see
14371	// github.com/google/re2/wiki/Syntax
14372	// Only one of presentMatch, exactMatch or regexMatch must be set.
14373	// Note that regexMatch only applies when the loadBalancingScheme is set
14374	// to INTERNAL_SELF_MANAGED.
14375	RegexMatch string `json:"regexMatch,omitempty"`
14376
14377	// ForceSendFields is a list of field names (e.g. "ExactMatch") to
14378	// unconditionally include in API requests. By default, fields with
14379	// empty values are omitted from API requests. However, any non-pointer,
14380	// non-interface field appearing in ForceSendFields will be sent to the
14381	// server regardless of whether the field is empty or not. This may be
14382	// used to include empty fields in Patch requests.
14383	ForceSendFields []string `json:"-"`
14384
14385	// NullFields is a list of field names (e.g. "ExactMatch") to include in
14386	// API requests with the JSON null value. By default, fields with empty
14387	// values are omitted from API requests. However, any field with an
14388	// empty value appearing in NullFields will be sent to the server as
14389	// null. It is an error if a field in this list has a non-empty value.
14390	// This may be used to include null fields in Patch requests.
14391	NullFields []string `json:"-"`
14392}
14393
14394func (s *HttpQueryParameterMatch) MarshalJSON() ([]byte, error) {
14395	type NoMethod HttpQueryParameterMatch
14396	raw := NoMethod(*s)
14397	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14398}
14399
14400// HttpRedirectAction: Specifies settings for an HTTP redirect.
14401type HttpRedirectAction struct {
14402	// HostRedirect: The host that will be used in the redirect response
14403	// instead of the one that was supplied in the request.
14404	// The value must be between 1 and 255 characters.
14405	HostRedirect string `json:"hostRedirect,omitempty"`
14406
14407	// HttpsRedirect: If set to true, the URL scheme in the redirected
14408	// request is set to https. If set to false, the URL scheme of the
14409	// redirected request will remain the same as that of the request.
14410	// This must only be set for UrlMaps used in TargetHttpProxys. Setting
14411	// this true for TargetHttpsProxy is not permitted.
14412	// The default is set to false.
14413	HttpsRedirect bool `json:"httpsRedirect,omitempty"`
14414
14415	// PathRedirect: The path that will be used in the redirect response
14416	// instead of the one that was supplied in the request.
14417	// pathRedirect cannot be supplied together with prefixRedirect. Supply
14418	// one alone or neither. If neither is supplied, the path of the
14419	// original request will be used for the redirect.
14420	// The value must be between 1 and 1024 characters.
14421	PathRedirect string `json:"pathRedirect,omitempty"`
14422
14423	// PrefixRedirect: The prefix that replaces the prefixMatch specified in
14424	// the HttpRouteRuleMatch, retaining the remaining portion of the URL
14425	// before redirecting the request.
14426	// prefixRedirect cannot be supplied together with pathRedirect. Supply
14427	// one alone or neither. If neither is supplied, the path of the
14428	// original request will be used for the redirect.
14429	// The value must be between 1 and 1024 characters.
14430	PrefixRedirect string `json:"prefixRedirect,omitempty"`
14431
14432	// RedirectResponseCode: The HTTP Status code to use for this
14433	// RedirectAction.
14434	// Supported values are:
14435	// - MOVED_PERMANENTLY_DEFAULT, which is the default value and
14436	// corresponds to 301.
14437	// - FOUND, which corresponds to 302.
14438	// - SEE_OTHER which corresponds to 303.
14439	// - TEMPORARY_REDIRECT, which corresponds to 307. In this case, the
14440	// request method will be retained.
14441	// - PERMANENT_REDIRECT, which corresponds to 308. In this case, the
14442	// request method will be retained.
14443	//
14444	// Possible values:
14445	//   "FOUND"
14446	//   "MOVED_PERMANENTLY_DEFAULT"
14447	//   "PERMANENT_REDIRECT"
14448	//   "SEE_OTHER"
14449	//   "TEMPORARY_REDIRECT"
14450	RedirectResponseCode string `json:"redirectResponseCode,omitempty"`
14451
14452	// StripQuery: If set to true, any accompanying query portion of the
14453	// original URL is removed prior to redirecting the request. If set to
14454	// false, the query portion of the original URL is retained.
14455	// The default is set to false.
14456	StripQuery bool `json:"stripQuery,omitempty"`
14457
14458	// ForceSendFields is a list of field names (e.g. "HostRedirect") to
14459	// unconditionally include in API requests. By default, fields with
14460	// empty values are omitted from API requests. However, any non-pointer,
14461	// non-interface field appearing in ForceSendFields will be sent to the
14462	// server regardless of whether the field is empty or not. This may be
14463	// used to include empty fields in Patch requests.
14464	ForceSendFields []string `json:"-"`
14465
14466	// NullFields is a list of field names (e.g. "HostRedirect") to include
14467	// in API requests with the JSON null value. By default, fields with
14468	// empty values are omitted from API requests. However, any field with
14469	// an empty value appearing in NullFields will be sent to the server as
14470	// null. It is an error if a field in this list has a non-empty value.
14471	// This may be used to include null fields in Patch requests.
14472	NullFields []string `json:"-"`
14473}
14474
14475func (s *HttpRedirectAction) MarshalJSON() ([]byte, error) {
14476	type NoMethod HttpRedirectAction
14477	raw := NoMethod(*s)
14478	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14479}
14480
14481// HttpRetryPolicy: The retry policy associates with HttpRouteRule
14482type HttpRetryPolicy struct {
14483	// NumRetries: Specifies the allowed number retries. This number must be
14484	// > 0. If not specified, defaults to 1.
14485	NumRetries int64 `json:"numRetries,omitempty"`
14486
14487	// PerTryTimeout: Specifies a non-zero timeout per retry attempt.
14488	// If not specified, will use the timeout set in HttpRouteAction. If
14489	// timeout in HttpRouteAction is not set, will use the largest timeout
14490	// among all backend services associated with the route.
14491	PerTryTimeout *Duration `json:"perTryTimeout,omitempty"`
14492
14493	// RetryConditions: Specfies one or more conditions when this retry rule
14494	// applies. Valid values are:
14495	// - 5xx: Loadbalancer will attempt a retry if the backend service
14496	// responds with any 5xx response code, or if the backend service does
14497	// not respond at all, example: disconnects, reset, read timeout,
14498	// connection failure, and refused streams.
14499	// - gateway-error: Similar to 5xx, but only applies to response codes
14500	// 502, 503 or 504.
14501	// -
14502	// - connect-failure: Loadbalancer will retry on failures connecting to
14503	// backend services, for example due to connection timeouts.
14504	// - retriable-4xx: Loadbalancer will retry for retriable 4xx response
14505	// codes. Currently the only retriable error supported is 409.
14506	// - refused-stream:Loadbalancer will retry if the backend service
14507	// resets the stream with a REFUSED_STREAM error code. This reset type
14508	// indicates that it is safe to retry.
14509	// - cancelledLoadbalancer will retry if the gRPC status code in the
14510	// response header is set to cancelled
14511	// - deadline-exceeded: Loadbalancer will retry if the gRPC status code
14512	// in the response header is set to deadline-exceeded
14513	// - resource-exhausted: Loadbalancer will retry if the gRPC status code
14514	// in the response header is set to resource-exhausted
14515	// - unavailable: Loadbalancer will retry if the gRPC status code in the
14516	// response header is set to unavailable
14517	RetryConditions []string `json:"retryConditions,omitempty"`
14518
14519	// ForceSendFields is a list of field names (e.g. "NumRetries") to
14520	// unconditionally include in API requests. By default, fields with
14521	// empty values are omitted from API requests. However, any non-pointer,
14522	// non-interface field appearing in ForceSendFields will be sent to the
14523	// server regardless of whether the field is empty or not. This may be
14524	// used to include empty fields in Patch requests.
14525	ForceSendFields []string `json:"-"`
14526
14527	// NullFields is a list of field names (e.g. "NumRetries") to include in
14528	// API requests with the JSON null value. By default, fields with empty
14529	// values are omitted from API requests. However, any field with an
14530	// empty value appearing in NullFields will be sent to the server as
14531	// null. It is an error if a field in this list has a non-empty value.
14532	// This may be used to include null fields in Patch requests.
14533	NullFields []string `json:"-"`
14534}
14535
14536func (s *HttpRetryPolicy) MarshalJSON() ([]byte, error) {
14537	type NoMethod HttpRetryPolicy
14538	raw := NoMethod(*s)
14539	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14540}
14541
14542type HttpRouteAction struct {
14543	// CorsPolicy: The specification for allowing client side cross-origin
14544	// requests. Please see W3C Recommendation for Cross Origin Resource
14545	// Sharing
14546	// Not supported when the URL map is bound to target gRPC proxy.
14547	CorsPolicy *CorsPolicy `json:"corsPolicy,omitempty"`
14548
14549	// FaultInjectionPolicy: The specification for fault injection
14550	// introduced into traffic to test the resiliency of clients to backend
14551	// service failure. As part of fault injection, when clients send
14552	// requests to a backend service, delays can be introduced by
14553	// Loadbalancer on a percentage of requests before sending those request
14554	// to the backend service. Similarly requests from clients can be
14555	// aborted by the Loadbalancer for a percentage of requests.
14556	// timeout and retry_policy will be ignored by clients that are
14557	// configured with a fault_injection_policy.
14558	// Not supported when the URL map is bound to target gRPC proxy that has
14559	// validateForProxyless field set to true.
14560	FaultInjectionPolicy *HttpFaultInjection `json:"faultInjectionPolicy,omitempty"`
14561
14562	// MaxStreamDuration: Specifies the maximum duration (timeout) for
14563	// streams on the selected route. Unlike the timeout field where the
14564	// timeout duration starts from the time the request has been fully
14565	// processed (i.e. end-of-stream), the duration in this field is
14566	// computed from the beginning of the stream until the response has been
14567	// completely processed, including all retries. A stream that does not
14568	// complete in this duration is closed.
14569	// If not specified, will use the largest maxStreamDuration among all
14570	// backend services associated with the route.
14571	// This field is only allowed if the Url map is used with backend
14572	// services with loadBalancingScheme set to INTERNAL_SELF_MANAGED.
14573	MaxStreamDuration *Duration `json:"maxStreamDuration,omitempty"`
14574
14575	// RequestMirrorPolicy: Specifies the policy on how requests intended
14576	// for the route's backends are shadowed to a separate mirrored backend
14577	// service. Loadbalancer does not wait for responses from the shadow
14578	// service. Prior to sending traffic to the shadow service, the host /
14579	// authority header is suffixed with -shadow.
14580	// Not supported when the URL map is bound to target gRPC proxy that has
14581	// validateForProxyless field set to true.
14582	RequestMirrorPolicy *RequestMirrorPolicy `json:"requestMirrorPolicy,omitempty"`
14583
14584	// RetryPolicy: Specifies the retry policy associated with this
14585	// route.
14586	// Not supported when the URL map is bound to target gRPC proxy that has
14587	// validateForProxyless field set to true.
14588	RetryPolicy *HttpRetryPolicy `json:"retryPolicy,omitempty"`
14589
14590	// Timeout: Specifies the timeout for the selected route. Timeout is
14591	// computed from the time the request has been fully processed (i.e.
14592	// end-of-stream) up until the response has been completely processed.
14593	// Timeout includes all retries.
14594	// If not specified, will use the largest timeout among all backend
14595	// services associated with the route.
14596	// Not supported when the URL map is bound to target gRPC proxy that has
14597	// validateForProxyless field set to true.
14598	Timeout *Duration `json:"timeout,omitempty"`
14599
14600	// UrlRewrite: The spec to modify the URL of the request, prior to
14601	// forwarding the request to the matched service.
14602	// urlRewrite is the only action supported in UrlMaps for external
14603	// HTTP(S) load balancers.
14604	// Not supported when the URL map is bound to target gRPC proxy that has
14605	// validateForProxyless field set to true.
14606	UrlRewrite *UrlRewrite `json:"urlRewrite,omitempty"`
14607
14608	// WeightedBackendServices: A list of weighted backend services to send
14609	// traffic to when a route match occurs. The weights determine the
14610	// fraction of traffic that flows to their corresponding backend
14611	// service. If all traffic needs to go to a single backend service,
14612	// there must be one  weightedBackendService with weight set to a
14613	// non-zero number.
14614	// Once a backendService is identified and before forwarding the request
14615	// to the backend service, advanced routing actions such as URL rewrites
14616	// and header transformations are applied depending on additional
14617	// settings specified in this HttpRouteAction.
14618	WeightedBackendServices []*WeightedBackendService `json:"weightedBackendServices,omitempty"`
14619
14620	// ForceSendFields is a list of field names (e.g. "CorsPolicy") to
14621	// unconditionally include in API requests. By default, fields with
14622	// empty values are omitted from API requests. However, any non-pointer,
14623	// non-interface field appearing in ForceSendFields will be sent to the
14624	// server regardless of whether the field is empty or not. This may be
14625	// used to include empty fields in Patch requests.
14626	ForceSendFields []string `json:"-"`
14627
14628	// NullFields is a list of field names (e.g. "CorsPolicy") to include in
14629	// API requests with the JSON null value. By default, fields with empty
14630	// values are omitted from API requests. However, any field with an
14631	// empty value appearing in NullFields will be sent to the server as
14632	// null. It is an error if a field in this list has a non-empty value.
14633	// This may be used to include null fields in Patch requests.
14634	NullFields []string `json:"-"`
14635}
14636
14637func (s *HttpRouteAction) MarshalJSON() ([]byte, error) {
14638	type NoMethod HttpRouteAction
14639	raw := NoMethod(*s)
14640	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14641}
14642
14643// HttpRouteRule: An HttpRouteRule specifies how to match an HTTP
14644// request and the corresponding routing action that load balancing
14645// proxies will perform.
14646type HttpRouteRule struct {
14647	// Description: The short description conveying the intent of this
14648	// routeRule.
14649	// The description can have a maximum length of 1024 characters.
14650	Description string `json:"description,omitempty"`
14651
14652	// HeaderAction: Specifies changes to request and response headers that
14653	// need to take effect for the selected backendService.
14654	// The headerAction specified here are applied before the matching
14655	// pathMatchers[].headerAction and after
14656	// pathMatchers[].routeRules[].routeAction.weightedBackendService.backend
14657	// ServiceWeightAction[].headerAction
14658	// Note that headerAction is not supported for Loadbalancers that have
14659	// their loadBalancingScheme set to EXTERNAL.
14660	// Not supported when the URL map is bound to target gRPC proxy that has
14661	// validateForProxyless field set to true.
14662	HeaderAction *HttpHeaderAction `json:"headerAction,omitempty"`
14663
14664	// HttpFilterConfigs: Outbound route specific configuration for
14665	// networkservices.HttpFilter resources enabled by Traffic Director.
14666	// httpFilterConfigs only applies for Loadbalancers with
14667	// loadBalancingScheme set to INTERNAL_SELF_MANAGED. See ForwardingRule
14668	// for more details.
14669	// Not supported when the URL map is bound to target gRPC proxy that has
14670	// validateForProxyless field set to true.
14671	HttpFilterConfigs []*HttpFilterConfig `json:"httpFilterConfigs,omitempty"`
14672
14673	// HttpFilterMetadata: Outbound route specific metadata supplied to
14674	// networkservices.HttpFilter resources enabled by Traffic Director.
14675	// httpFilterMetadata only applies for Loadbalancers with
14676	// loadBalancingScheme set to INTERNAL_SELF_MANAGED. See ForwardingRule
14677	// for more details.
14678	// The only configTypeUrl supported is
14679	// type.googleapis.com/google.protobuf.Struct
14680	// Not supported when the URL map is bound to target gRPC proxy that has
14681	// validateForProxyless field set to true.
14682	HttpFilterMetadata []*HttpFilterConfig `json:"httpFilterMetadata,omitempty"`
14683
14684	// MatchRules: The list of criteria for matching attributes of a request
14685	// to this routeRule. This list has OR semantics: the request matches
14686	// this routeRule when any of the matchRules are satisfied. However
14687	// predicates within a given matchRule have AND semantics. All
14688	// predicates within a matchRule must match for the request to match the
14689	// rule.
14690	MatchRules []*HttpRouteRuleMatch `json:"matchRules,omitempty"`
14691
14692	// Priority: For routeRules within a given pathMatcher, priority
14693	// determines the order in which load balancer will interpret
14694	// routeRules. RouteRules are evaluated in order of priority, from the
14695	// lowest to highest number. The priority of a rule decreases as its
14696	// number increases (1, 2, 3, N+1). The first rule that matches the
14697	// request is applied.
14698	// You cannot configure two or more routeRules with the same priority.
14699	// Priority for each rule must be set to a number between 0 and
14700	// 2147483647 inclusive.
14701	// Priority numbers can have gaps, which enable you to add or remove
14702	// rules in the future without affecting the rest of the rules. For
14703	// example, 1, 2, 3, 4, 5, 9, 12, 16 is a valid series of priority
14704	// numbers to which you could add rules numbered from 6 to 8, 10 to 11,
14705	// and 13 to 15 in the future without any impact on existing rules.
14706	Priority int64 `json:"priority,omitempty"`
14707
14708	// RouteAction: In response to a matching matchRule, the load balancer
14709	// performs advanced routing actions like URL rewrites, header
14710	// transformations, etc. prior to forwarding the request to the selected
14711	// backend. If  routeAction specifies any  weightedBackendServices,
14712	// service must not be set. Conversely if service is set, routeAction
14713	// cannot contain any  weightedBackendServices.
14714	// Only one of urlRedirect, service or
14715	// routeAction.weightedBackendService must be set.
14716	// UrlMaps for external HTTP(S) load balancers support only the
14717	// urlRewrite action within a routeRule's routeAction.
14718	RouteAction *HttpRouteAction `json:"routeAction,omitempty"`
14719
14720	// Service: The full or partial URL of the backend service resource to
14721	// which traffic is directed if this rule is matched. If routeAction is
14722	// additionally specified, advanced routing actions like URL Rewrites,
14723	// etc. take effect prior to sending the request to the backend.
14724	// However, if service is specified, routeAction cannot contain any
14725	// weightedBackendService s. Conversely, if routeAction specifies any
14726	// weightedBackendServices, service must not be specified.
14727	// Only one of urlRedirect, service or
14728	// routeAction.weightedBackendService must be set.
14729	Service string `json:"service,omitempty"`
14730
14731	// UrlRedirect: When this rule is matched, the request is redirected to
14732	// a URL specified by urlRedirect.
14733	// If urlRedirect is specified, service or routeAction must not be
14734	// set.
14735	// Not supported when the URL map is bound to target gRPC proxy.
14736	UrlRedirect *HttpRedirectAction `json:"urlRedirect,omitempty"`
14737
14738	// ForceSendFields is a list of field names (e.g. "Description") to
14739	// unconditionally include in API requests. By default, fields with
14740	// empty values are omitted from API requests. However, any non-pointer,
14741	// non-interface field appearing in ForceSendFields will be sent to the
14742	// server regardless of whether the field is empty or not. This may be
14743	// used to include empty fields in Patch requests.
14744	ForceSendFields []string `json:"-"`
14745
14746	// NullFields is a list of field names (e.g. "Description") to include
14747	// in API requests with the JSON null value. By default, fields with
14748	// empty values are omitted from API requests. However, any field with
14749	// an empty value appearing in NullFields will be sent to the server as
14750	// null. It is an error if a field in this list has a non-empty value.
14751	// This may be used to include null fields in Patch requests.
14752	NullFields []string `json:"-"`
14753}
14754
14755func (s *HttpRouteRule) MarshalJSON() ([]byte, error) {
14756	type NoMethod HttpRouteRule
14757	raw := NoMethod(*s)
14758	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14759}
14760
14761// HttpRouteRuleMatch: HttpRouteRuleMatch specifies a set of criteria
14762// for matching requests to an HttpRouteRule. All specified criteria
14763// must be satisfied for a match to occur.
14764type HttpRouteRuleMatch struct {
14765	// FullPathMatch: For satisfying the matchRule condition, the path of
14766	// the request must exactly match the value specified in fullPathMatch
14767	// after removing any query parameters and anchor that may be part of
14768	// the original URL.
14769	// fullPathMatch must be between 1 and 1024 characters.
14770	// Only one of prefixMatch, fullPathMatch or regexMatch must be
14771	// specified.
14772	FullPathMatch string `json:"fullPathMatch,omitempty"`
14773
14774	// HeaderMatches: Specifies a list of header match criteria, all of
14775	// which must match corresponding headers in the request.
14776	HeaderMatches []*HttpHeaderMatch `json:"headerMatches,omitempty"`
14777
14778	// IgnoreCase: Specifies that prefixMatch and fullPathMatch matches are
14779	// case sensitive.
14780	// The default value is false.
14781	// ignoreCase must not be used with regexMatch.
14782	// Not supported when the URL map is bound to target gRPC proxy.
14783	IgnoreCase bool `json:"ignoreCase,omitempty"`
14784
14785	// MetadataFilters: Opaque filter criteria used by Loadbalancer to
14786	// restrict routing configuration to a limited set of xDS compliant
14787	// clients. In their xDS requests to Loadbalancer, xDS clients present
14788	// node metadata. When there is a match, the relevant routing
14789	// configuration is made available to those proxies.
14790	// For each metadataFilter in this list, if its filterMatchCriteria is
14791	// set to MATCH_ANY, at least one of the filterLabels must match the
14792	// corresponding label provided in the metadata. If its
14793	// filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels
14794	// must match with corresponding labels provided in the metadata. If
14795	// multiple metadataFilters are specified, all of them need to be
14796	// satisfied in order to be considered a match.
14797	// metadataFilters specified here will be applied after those specified
14798	// in ForwardingRule that refers to the UrlMap this HttpRouteRuleMatch
14799	// belongs to.
14800	// metadataFilters only applies to Loadbalancers that have their
14801	// loadBalancingScheme set to INTERNAL_SELF_MANAGED.
14802	// Not supported when the URL map is bound to target gRPC proxy that has
14803	// validateForProxyless field set to true.
14804	MetadataFilters []*MetadataFilter `json:"metadataFilters,omitempty"`
14805
14806	// PrefixMatch: For satisfying the matchRule condition, the request's
14807	// path must begin with the specified prefixMatch. prefixMatch must
14808	// begin with a /.
14809	// The value must be between 1 and 1024 characters.
14810	// Only one of prefixMatch, fullPathMatch or regexMatch must be
14811	// specified.
14812	PrefixMatch string `json:"prefixMatch,omitempty"`
14813
14814	// QueryParameterMatches: Specifies a list of query parameter match
14815	// criteria, all of which must match corresponding query parameters in
14816	// the request.
14817	// Not supported when the URL map is bound to target gRPC proxy.
14818	QueryParameterMatches []*HttpQueryParameterMatch `json:"queryParameterMatches,omitempty"`
14819
14820	// RegexMatch: For satisfying the matchRule condition, the path of the
14821	// request must satisfy the regular expression specified in regexMatch
14822	// after removing any query parameters and anchor supplied with the
14823	// original URL. For regular expression grammar please see
14824	// github.com/google/re2/wiki/Syntax
14825	// Only one of prefixMatch, fullPathMatch or regexMatch must be
14826	// specified.
14827	// Note that regexMatch only applies to Loadbalancers that have their
14828	// loadBalancingScheme set to INTERNAL_SELF_MANAGED.
14829	RegexMatch string `json:"regexMatch,omitempty"`
14830
14831	// ForceSendFields is a list of field names (e.g. "FullPathMatch") to
14832	// unconditionally include in API requests. By default, fields with
14833	// empty values are omitted from API requests. However, any non-pointer,
14834	// non-interface field appearing in ForceSendFields will be sent to the
14835	// server regardless of whether the field is empty or not. This may be
14836	// used to include empty fields in Patch requests.
14837	ForceSendFields []string `json:"-"`
14838
14839	// NullFields is a list of field names (e.g. "FullPathMatch") to include
14840	// in API requests with the JSON null value. By default, fields with
14841	// empty values are omitted from API requests. However, any field with
14842	// an empty value appearing in NullFields will be sent to the server as
14843	// null. It is an error if a field in this list has a non-empty value.
14844	// This may be used to include null fields in Patch requests.
14845	NullFields []string `json:"-"`
14846}
14847
14848func (s *HttpRouteRuleMatch) MarshalJSON() ([]byte, error) {
14849	type NoMethod HttpRouteRuleMatch
14850	raw := NoMethod(*s)
14851	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14852}
14853
14854// HttpsHealthCheck: Represents a legacy HTTPS Health Check
14855// resource.
14856//
14857// Legacy health checks are required by network load balancers. For more
14858// information, read Health Check Concepts.
14859type HttpsHealthCheck struct {
14860	// CheckIntervalSec: How often (in seconds) to send a health check. The
14861	// default value is 5 seconds.
14862	CheckIntervalSec int64 `json:"checkIntervalSec,omitempty"`
14863
14864	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
14865	// format.
14866	CreationTimestamp string `json:"creationTimestamp,omitempty"`
14867
14868	// Description: An optional description of this resource. Provide this
14869	// property when you create the resource.
14870	Description string `json:"description,omitempty"`
14871
14872	// HealthyThreshold: A so-far unhealthy instance will be marked healthy
14873	// after this many consecutive successes. The default value is 2.
14874	HealthyThreshold int64 `json:"healthyThreshold,omitempty"`
14875
14876	// Host: The value of the host header in the HTTPS health check request.
14877	// If left empty (default value), the public IP on behalf of which this
14878	// health check is performed will be used.
14879	Host string `json:"host,omitempty"`
14880
14881	// Id: [Output Only] The unique identifier for the resource. This
14882	// identifier is defined by the server.
14883	Id uint64 `json:"id,omitempty,string"`
14884
14885	// Kind: Type of the resource.
14886	Kind string `json:"kind,omitempty"`
14887
14888	// Name: Name of the resource. Provided by the client when the resource
14889	// is created. The name must be 1-63 characters long, and comply with
14890	// RFC1035. Specifically, the name must be 1-63 characters long and
14891	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
14892	// the first character must be a lowercase letter, and all following
14893	// characters must be a dash, lowercase letter, or digit, except the
14894	// last character, which cannot be a dash.
14895	Name string `json:"name,omitempty"`
14896
14897	// Port: The TCP port number for the HTTPS health check request. The
14898	// default value is 443.
14899	Port int64 `json:"port,omitempty"`
14900
14901	// RequestPath: The request path of the HTTPS health check request. The
14902	// default value is "/".
14903	RequestPath string `json:"requestPath,omitempty"`
14904
14905	// SelfLink: [Output Only] Server-defined URL for the resource.
14906	SelfLink string `json:"selfLink,omitempty"`
14907
14908	// TimeoutSec: How long (in seconds) to wait before claiming failure.
14909	// The default value is 5 seconds. It is invalid for timeoutSec to have
14910	// a greater value than checkIntervalSec.
14911	TimeoutSec int64 `json:"timeoutSec,omitempty"`
14912
14913	// UnhealthyThreshold: A so-far healthy instance will be marked
14914	// unhealthy after this many consecutive failures. The default value is
14915	// 2.
14916	UnhealthyThreshold int64 `json:"unhealthyThreshold,omitempty"`
14917
14918	// ServerResponse contains the HTTP response code and headers from the
14919	// server.
14920	googleapi.ServerResponse `json:"-"`
14921
14922	// ForceSendFields is a list of field names (e.g. "CheckIntervalSec") to
14923	// unconditionally include in API requests. By default, fields with
14924	// empty values are omitted from API requests. However, any non-pointer,
14925	// non-interface field appearing in ForceSendFields will be sent to the
14926	// server regardless of whether the field is empty or not. This may be
14927	// used to include empty fields in Patch requests.
14928	ForceSendFields []string `json:"-"`
14929
14930	// NullFields is a list of field names (e.g. "CheckIntervalSec") to
14931	// include in API requests with the JSON null value. By default, fields
14932	// with empty values are omitted from API requests. However, any field
14933	// with an empty value appearing in NullFields will be sent to the
14934	// server as null. It is an error if a field in this list has a
14935	// non-empty value. This may be used to include null fields in Patch
14936	// requests.
14937	NullFields []string `json:"-"`
14938}
14939
14940func (s *HttpsHealthCheck) MarshalJSON() ([]byte, error) {
14941	type NoMethod HttpsHealthCheck
14942	raw := NoMethod(*s)
14943	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14944}
14945
14946// HttpsHealthCheckList: Contains a list of HttpsHealthCheck resources.
14947type HttpsHealthCheckList struct {
14948	// Id: [Output Only] Unique identifier for the resource; defined by the
14949	// server.
14950	Id string `json:"id,omitempty"`
14951
14952	// Items: A list of HttpsHealthCheck resources.
14953	Items []*HttpsHealthCheck `json:"items,omitempty"`
14954
14955	// Kind: Type of resource.
14956	Kind string `json:"kind,omitempty"`
14957
14958	// NextPageToken: [Output Only] This token allows you to get the next
14959	// page of results for list requests. If the number of results is larger
14960	// than maxResults, use the nextPageToken as a value for the query
14961	// parameter pageToken in the next list request. Subsequent list
14962	// requests will have their own nextPageToken to continue paging through
14963	// the results.
14964	NextPageToken string `json:"nextPageToken,omitempty"`
14965
14966	// SelfLink: [Output Only] Server-defined URL for this resource.
14967	SelfLink string `json:"selfLink,omitempty"`
14968
14969	// Warning: [Output Only] Informational warning message.
14970	Warning *HttpsHealthCheckListWarning `json:"warning,omitempty"`
14971
14972	// ServerResponse contains the HTTP response code and headers from the
14973	// server.
14974	googleapi.ServerResponse `json:"-"`
14975
14976	// ForceSendFields is a list of field names (e.g. "Id") to
14977	// unconditionally include in API requests. By default, fields with
14978	// empty values are omitted from API requests. However, any non-pointer,
14979	// non-interface field appearing in ForceSendFields will be sent to the
14980	// server regardless of whether the field is empty or not. This may be
14981	// used to include empty fields in Patch requests.
14982	ForceSendFields []string `json:"-"`
14983
14984	// NullFields is a list of field names (e.g. "Id") to include in API
14985	// requests with the JSON null value. By default, fields with empty
14986	// values are omitted from API requests. However, any field with an
14987	// empty value appearing in NullFields will be sent to the server as
14988	// null. It is an error if a field in this list has a non-empty value.
14989	// This may be used to include null fields in Patch requests.
14990	NullFields []string `json:"-"`
14991}
14992
14993func (s *HttpsHealthCheckList) MarshalJSON() ([]byte, error) {
14994	type NoMethod HttpsHealthCheckList
14995	raw := NoMethod(*s)
14996	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14997}
14998
14999// HttpsHealthCheckListWarning: [Output Only] Informational warning
15000// message.
15001type HttpsHealthCheckListWarning struct {
15002	// Code: [Output Only] A warning code, if applicable. For example,
15003	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
15004	// the response.
15005	//
15006	// Possible values:
15007	//   "CLEANUP_FAILED"
15008	//   "DEPRECATED_RESOURCE_USED"
15009	//   "DEPRECATED_TYPE_USED"
15010	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
15011	//   "EXPERIMENTAL_TYPE_USED"
15012	//   "EXTERNAL_API_WARNING"
15013	//   "FIELD_VALUE_OVERRIDEN"
15014	//   "INJECTED_KERNELS_DEPRECATED"
15015	//   "LARGE_DEPLOYMENT_WARNING"
15016	//   "MISSING_TYPE_DEPENDENCY"
15017	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
15018	//   "NEXT_HOP_CANNOT_IP_FORWARD"
15019	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
15020	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
15021	//   "NEXT_HOP_NOT_RUNNING"
15022	//   "NOT_CRITICAL_ERROR"
15023	//   "NO_RESULTS_ON_PAGE"
15024	//   "PARTIAL_SUCCESS"
15025	//   "REQUIRED_TOS_AGREEMENT"
15026	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
15027	//   "RESOURCE_NOT_DELETED"
15028	//   "SCHEMA_VALIDATION_IGNORED"
15029	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
15030	//   "UNDECLARED_PROPERTIES"
15031	//   "UNREACHABLE"
15032	Code string `json:"code,omitempty"`
15033
15034	// Data: [Output Only] Metadata about this warning in key: value format.
15035	// For example:
15036	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
15037	Data []*HttpsHealthCheckListWarningData `json:"data,omitempty"`
15038
15039	// Message: [Output Only] A human-readable description of the warning
15040	// code.
15041	Message string `json:"message,omitempty"`
15042
15043	// ForceSendFields is a list of field names (e.g. "Code") to
15044	// unconditionally include in API requests. By default, fields with
15045	// empty values are omitted from API requests. However, any non-pointer,
15046	// non-interface field appearing in ForceSendFields will be sent to the
15047	// server regardless of whether the field is empty or not. This may be
15048	// used to include empty fields in Patch requests.
15049	ForceSendFields []string `json:"-"`
15050
15051	// NullFields is a list of field names (e.g. "Code") to include in API
15052	// requests with the JSON null value. By default, fields with empty
15053	// values are omitted from API requests. However, any field with an
15054	// empty value appearing in NullFields will be sent to the server as
15055	// null. It is an error if a field in this list has a non-empty value.
15056	// This may be used to include null fields in Patch requests.
15057	NullFields []string `json:"-"`
15058}
15059
15060func (s *HttpsHealthCheckListWarning) MarshalJSON() ([]byte, error) {
15061	type NoMethod HttpsHealthCheckListWarning
15062	raw := NoMethod(*s)
15063	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15064}
15065
15066type HttpsHealthCheckListWarningData struct {
15067	// Key: [Output Only] A key that provides more detail on the warning
15068	// being returned. For example, for warnings where there are no results
15069	// in a list request for a particular zone, this key might be scope and
15070	// the key value might be the zone name. Other examples might be a key
15071	// indicating a deprecated resource and a suggested replacement, or a
15072	// warning about invalid network settings (for example, if an instance
15073	// attempts to perform IP forwarding but is not enabled for IP
15074	// forwarding).
15075	Key string `json:"key,omitempty"`
15076
15077	// Value: [Output Only] A warning data value corresponding to the key.
15078	Value string `json:"value,omitempty"`
15079
15080	// ForceSendFields is a list of field names (e.g. "Key") to
15081	// unconditionally include in API requests. By default, fields with
15082	// empty values are omitted from API requests. However, any non-pointer,
15083	// non-interface field appearing in ForceSendFields will be sent to the
15084	// server regardless of whether the field is empty or not. This may be
15085	// used to include empty fields in Patch requests.
15086	ForceSendFields []string `json:"-"`
15087
15088	// NullFields is a list of field names (e.g. "Key") to include in API
15089	// requests with the JSON null value. By default, fields with empty
15090	// values are omitted from API requests. However, any field with an
15091	// empty value appearing in NullFields will be sent to the server as
15092	// null. It is an error if a field in this list has a non-empty value.
15093	// This may be used to include null fields in Patch requests.
15094	NullFields []string `json:"-"`
15095}
15096
15097func (s *HttpsHealthCheckListWarningData) MarshalJSON() ([]byte, error) {
15098	type NoMethod HttpsHealthCheckListWarningData
15099	raw := NoMethod(*s)
15100	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15101}
15102
15103// Image: Represents an Image resource.
15104//
15105// You can use images to create boot disks for your VM instances. For
15106// more information, read Images. (== resource_for {$api_version}.images
15107// ==)
15108type Image struct {
15109	// ArchiveSizeBytes: Size of the image tar.gz archive stored in Google
15110	// Cloud Storage (in bytes).
15111	ArchiveSizeBytes int64 `json:"archiveSizeBytes,omitempty,string"`
15112
15113	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
15114	// format.
15115	CreationTimestamp string `json:"creationTimestamp,omitempty"`
15116
15117	// Deprecated -- The deprecation status associated with this image.
15118	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
15119
15120	// Description: An optional description of this resource. Provide this
15121	// property when you create the resource.
15122	Description string `json:"description,omitempty"`
15123
15124	// DiskSizeGb: Size of the image when restored onto a persistent disk
15125	// (in GB).
15126	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
15127
15128	// Family: The name of the image family to which this image belongs. You
15129	// can create disks by specifying an image family instead of a specific
15130	// image name. The image family always returns its latest image that is
15131	// not deprecated. The name of the image family must comply with
15132	// RFC1035.
15133	Family string `json:"family,omitempty"`
15134
15135	// GuestOsFeatures: A list of features to enable on the guest operating
15136	// system. Applicable only for bootable images. Read  Enabling guest
15137	// operating system features to see a list of available options.
15138	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
15139
15140	// Id: [Output Only] The unique identifier for the resource. This
15141	// identifier is defined by the server.
15142	Id uint64 `json:"id,omitempty,string"`
15143
15144	// ImageEncryptionKey: Encrypts the image using a customer-supplied
15145	// encryption key.
15146	//
15147	// After you encrypt an image with a customer-supplied key, you must
15148	// provide the same key if you use the image later (e.g. to create a
15149	// disk from the image).
15150	//
15151	// Customer-supplied encryption keys do not protect access to metadata
15152	// of the disk.
15153	//
15154	// If you do not provide an encryption key when creating the image, then
15155	// the disk will be encrypted using an automatically generated key and
15156	// you do not need to provide a key to use the image later.
15157	ImageEncryptionKey *CustomerEncryptionKey `json:"imageEncryptionKey,omitempty"`
15158
15159	// Kind: [Output Only] Type of the resource. Always compute#image for
15160	// images.
15161	Kind string `json:"kind,omitempty"`
15162
15163	// LabelFingerprint: A fingerprint for the labels being applied to this
15164	// image, which is essentially a hash of the labels used for optimistic
15165	// locking. The fingerprint is initially generated by Compute Engine and
15166	// changes after every request to modify or update labels. You must
15167	// always provide an up-to-date fingerprint hash in order to update or
15168	// change labels, otherwise the request will fail with error 412
15169	// conditionNotMet.
15170	//
15171	// To see the latest fingerprint, make a get() request to retrieve an
15172	// image.
15173	LabelFingerprint string `json:"labelFingerprint,omitempty"`
15174
15175	// Labels: Labels to apply to this image. These can be later modified by
15176	// the setLabels method.
15177	Labels map[string]string `json:"labels,omitempty"`
15178
15179	// LicenseCodes: Integer license codes indicating which licenses are
15180	// attached to this image.
15181	LicenseCodes googleapi.Int64s `json:"licenseCodes,omitempty"`
15182
15183	// Licenses: Any applicable license URI.
15184	Licenses []string `json:"licenses,omitempty"`
15185
15186	// Name: Name of the resource; provided by the client when the resource
15187	// is created. The name must be 1-63 characters long, and comply with
15188	// RFC1035. Specifically, the name must be 1-63 characters long and
15189	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
15190	// the first character must be a lowercase letter, and all following
15191	// characters must be a dash, lowercase letter, or digit, except the
15192	// last character, which cannot be a dash.
15193	Name string `json:"name,omitempty"`
15194
15195	// RawDisk: The parameters of the raw disk image.
15196	RawDisk *ImageRawDisk `json:"rawDisk,omitempty"`
15197
15198	// SatisfiesPzs: [Output Only] Reserved for future use.
15199	SatisfiesPzs bool `json:"satisfiesPzs,omitempty"`
15200
15201	// SelfLink: [Output Only] Server-defined URL for the resource.
15202	SelfLink string `json:"selfLink,omitempty"`
15203
15204	// ShieldedInstanceInitialState: Set the secure boot keys of shielded
15205	// instance.
15206	ShieldedInstanceInitialState *InitialStateConfig `json:"shieldedInstanceInitialState,omitempty"`
15207
15208	// SourceDisk: URL of the source disk used to create this image. This
15209	// can be a full or valid partial URL. You must provide either this
15210	// property or the rawDisk.source property but not both to create an
15211	// image. For example, the following are valid values:
15212	// -
15213	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk
15214	//
15215	// - projects/project/zones/zone/disks/disk
15216	// - zones/zone/disks/disk
15217	SourceDisk string `json:"sourceDisk,omitempty"`
15218
15219	// SourceDiskEncryptionKey: The customer-supplied encryption key of the
15220	// source disk. Required if the source disk is protected by a
15221	// customer-supplied encryption key.
15222	SourceDiskEncryptionKey *CustomerEncryptionKey `json:"sourceDiskEncryptionKey,omitempty"`
15223
15224	// SourceDiskId: [Output Only] The ID value of the disk used to create
15225	// this image. This value may be used to determine whether the image was
15226	// taken from the current or a previous instance of a given disk name.
15227	SourceDiskId string `json:"sourceDiskId,omitempty"`
15228
15229	// SourceImage: URL of the source image used to create this image.
15230	//
15231	// In order to create an image, you must provide the full or partial URL
15232	// of one of the following:
15233	// - The selfLink URL
15234	// - This property
15235	// - The rawDisk.source URL
15236	// - The sourceDisk URL
15237	SourceImage string `json:"sourceImage,omitempty"`
15238
15239	// SourceImageEncryptionKey: The customer-supplied encryption key of the
15240	// source image. Required if the source image is protected by a
15241	// customer-supplied encryption key.
15242	SourceImageEncryptionKey *CustomerEncryptionKey `json:"sourceImageEncryptionKey,omitempty"`
15243
15244	// SourceImageId: [Output Only] The ID value of the image used to create
15245	// this image. This value may be used to determine whether the image was
15246	// taken from the current or a previous instance of a given image name.
15247	SourceImageId string `json:"sourceImageId,omitempty"`
15248
15249	// SourceSnapshot: URL of the source snapshot used to create this
15250	// image.
15251	//
15252	// In order to create an image, you must provide the full or partial URL
15253	// of one of the following:
15254	// - The selfLink URL
15255	// - This property
15256	// - The sourceImage URL
15257	// - The rawDisk.source URL
15258	// - The sourceDisk URL
15259	SourceSnapshot string `json:"sourceSnapshot,omitempty"`
15260
15261	// SourceSnapshotEncryptionKey: The customer-supplied encryption key of
15262	// the source snapshot. Required if the source snapshot is protected by
15263	// a customer-supplied encryption key.
15264	SourceSnapshotEncryptionKey *CustomerEncryptionKey `json:"sourceSnapshotEncryptionKey,omitempty"`
15265
15266	// SourceSnapshotId: [Output Only] The ID value of the snapshot used to
15267	// create this image. This value may be used to determine whether the
15268	// snapshot was taken from the current or a previous instance of a given
15269	// snapshot name.
15270	SourceSnapshotId string `json:"sourceSnapshotId,omitempty"`
15271
15272	// SourceType: The type of the image used to create this disk. The
15273	// default and only value is RAW
15274	//
15275	// Possible values:
15276	//   "RAW" (default)
15277	SourceType string `json:"sourceType,omitempty"`
15278
15279	// Status: [Output Only] The status of the image. An image can be used
15280	// to create other resources, such as instances, only after the image
15281	// has been successfully created and the status is set to READY.
15282	// Possible values are FAILED, PENDING, or READY.
15283	//
15284	// Possible values:
15285	//   "DELETING"
15286	//   "FAILED"
15287	//   "PENDING"
15288	//   "READY"
15289	Status string `json:"status,omitempty"`
15290
15291	// StorageLocations: Cloud Storage bucket storage location of the image
15292	// (regional or multi-regional).
15293	StorageLocations []string `json:"storageLocations,omitempty"`
15294
15295	// ServerResponse contains the HTTP response code and headers from the
15296	// server.
15297	googleapi.ServerResponse `json:"-"`
15298
15299	// ForceSendFields is a list of field names (e.g. "ArchiveSizeBytes") to
15300	// unconditionally include in API requests. By default, fields with
15301	// empty values are omitted from API requests. However, any non-pointer,
15302	// non-interface field appearing in ForceSendFields will be sent to the
15303	// server regardless of whether the field is empty or not. This may be
15304	// used to include empty fields in Patch requests.
15305	ForceSendFields []string `json:"-"`
15306
15307	// NullFields is a list of field names (e.g. "ArchiveSizeBytes") to
15308	// include in API requests with the JSON null value. By default, fields
15309	// with empty values are omitted from API requests. However, any field
15310	// with an empty value appearing in NullFields will be sent to the
15311	// server as null. It is an error if a field in this list has a
15312	// non-empty value. This may be used to include null fields in Patch
15313	// requests.
15314	NullFields []string `json:"-"`
15315}
15316
15317func (s *Image) MarshalJSON() ([]byte, error) {
15318	type NoMethod Image
15319	raw := NoMethod(*s)
15320	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15321}
15322
15323// ImageRawDisk: The parameters of the raw disk image.
15324type ImageRawDisk struct {
15325	// ContainerType: The format used to encode and transmit the block
15326	// device, which should be TAR. This is just a container and
15327	// transmission format and not a runtime format. Provided by the client
15328	// when the disk image is created.
15329	//
15330	// Possible values:
15331	//   "TAR"
15332	ContainerType string `json:"containerType,omitempty"`
15333
15334	// Sha1Checksum: [Deprecated] This field is deprecated. An optional SHA1
15335	// checksum of the disk image before unpackaging provided by the client
15336	// when the disk image is created.
15337	Sha1Checksum string `json:"sha1Checksum,omitempty"`
15338
15339	// Source: The full Google Cloud Storage URL where the disk image is
15340	// stored. You must provide either this property or the sourceDisk
15341	// property but not both.
15342	Source string `json:"source,omitempty"`
15343
15344	// ForceSendFields is a list of field names (e.g. "ContainerType") to
15345	// unconditionally include in API requests. By default, fields with
15346	// empty values are omitted from API requests. However, any non-pointer,
15347	// non-interface field appearing in ForceSendFields will be sent to the
15348	// server regardless of whether the field is empty or not. This may be
15349	// used to include empty fields in Patch requests.
15350	ForceSendFields []string `json:"-"`
15351
15352	// NullFields is a list of field names (e.g. "ContainerType") to include
15353	// in API requests with the JSON null value. By default, fields with
15354	// empty values are omitted from API requests. However, any field with
15355	// an empty value appearing in NullFields will be sent to the server as
15356	// null. It is an error if a field in this list has a non-empty value.
15357	// This may be used to include null fields in Patch requests.
15358	NullFields []string `json:"-"`
15359}
15360
15361func (s *ImageRawDisk) MarshalJSON() ([]byte, error) {
15362	type NoMethod ImageRawDisk
15363	raw := NoMethod(*s)
15364	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15365}
15366
15367// ImageList: Contains a list of images.
15368type ImageList struct {
15369	// Id: [Output Only] Unique identifier for the resource; defined by the
15370	// server.
15371	Id string `json:"id,omitempty"`
15372
15373	// Items: A list of Image resources.
15374	Items []*Image `json:"items,omitempty"`
15375
15376	// Kind: Type of resource.
15377	Kind string `json:"kind,omitempty"`
15378
15379	// NextPageToken: [Output Only] This token allows you to get the next
15380	// page of results for list requests. If the number of results is larger
15381	// than maxResults, use the nextPageToken as a value for the query
15382	// parameter pageToken in the next list request. Subsequent list
15383	// requests will have their own nextPageToken to continue paging through
15384	// the results.
15385	NextPageToken string `json:"nextPageToken,omitempty"`
15386
15387	// SelfLink: [Output Only] Server-defined URL for this resource.
15388	SelfLink string `json:"selfLink,omitempty"`
15389
15390	// Warning: [Output Only] Informational warning message.
15391	Warning *ImageListWarning `json:"warning,omitempty"`
15392
15393	// ServerResponse contains the HTTP response code and headers from the
15394	// server.
15395	googleapi.ServerResponse `json:"-"`
15396
15397	// ForceSendFields is a list of field names (e.g. "Id") to
15398	// unconditionally include in API requests. By default, fields with
15399	// empty values are omitted from API requests. However, any non-pointer,
15400	// non-interface field appearing in ForceSendFields will be sent to the
15401	// server regardless of whether the field is empty or not. This may be
15402	// used to include empty fields in Patch requests.
15403	ForceSendFields []string `json:"-"`
15404
15405	// NullFields is a list of field names (e.g. "Id") to include in API
15406	// requests with the JSON null value. By default, fields with empty
15407	// values are omitted from API requests. However, any field with an
15408	// empty value appearing in NullFields will be sent to the server as
15409	// null. It is an error if a field in this list has a non-empty value.
15410	// This may be used to include null fields in Patch requests.
15411	NullFields []string `json:"-"`
15412}
15413
15414func (s *ImageList) MarshalJSON() ([]byte, error) {
15415	type NoMethod ImageList
15416	raw := NoMethod(*s)
15417	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15418}
15419
15420// ImageListWarning: [Output Only] Informational warning message.
15421type ImageListWarning struct {
15422	// Code: [Output Only] A warning code, if applicable. For example,
15423	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
15424	// the response.
15425	//
15426	// Possible values:
15427	//   "CLEANUP_FAILED"
15428	//   "DEPRECATED_RESOURCE_USED"
15429	//   "DEPRECATED_TYPE_USED"
15430	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
15431	//   "EXPERIMENTAL_TYPE_USED"
15432	//   "EXTERNAL_API_WARNING"
15433	//   "FIELD_VALUE_OVERRIDEN"
15434	//   "INJECTED_KERNELS_DEPRECATED"
15435	//   "LARGE_DEPLOYMENT_WARNING"
15436	//   "MISSING_TYPE_DEPENDENCY"
15437	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
15438	//   "NEXT_HOP_CANNOT_IP_FORWARD"
15439	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
15440	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
15441	//   "NEXT_HOP_NOT_RUNNING"
15442	//   "NOT_CRITICAL_ERROR"
15443	//   "NO_RESULTS_ON_PAGE"
15444	//   "PARTIAL_SUCCESS"
15445	//   "REQUIRED_TOS_AGREEMENT"
15446	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
15447	//   "RESOURCE_NOT_DELETED"
15448	//   "SCHEMA_VALIDATION_IGNORED"
15449	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
15450	//   "UNDECLARED_PROPERTIES"
15451	//   "UNREACHABLE"
15452	Code string `json:"code,omitempty"`
15453
15454	// Data: [Output Only] Metadata about this warning in key: value format.
15455	// For example:
15456	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
15457	Data []*ImageListWarningData `json:"data,omitempty"`
15458
15459	// Message: [Output Only] A human-readable description of the warning
15460	// code.
15461	Message string `json:"message,omitempty"`
15462
15463	// ForceSendFields is a list of field names (e.g. "Code") to
15464	// unconditionally include in API requests. By default, fields with
15465	// empty values are omitted from API requests. However, any non-pointer,
15466	// non-interface field appearing in ForceSendFields will be sent to the
15467	// server regardless of whether the field is empty or not. This may be
15468	// used to include empty fields in Patch requests.
15469	ForceSendFields []string `json:"-"`
15470
15471	// NullFields is a list of field names (e.g. "Code") to include in API
15472	// requests with the JSON null value. By default, fields with empty
15473	// values are omitted from API requests. However, any field with an
15474	// empty value appearing in NullFields will be sent to the server as
15475	// null. It is an error if a field in this list has a non-empty value.
15476	// This may be used to include null fields in Patch requests.
15477	NullFields []string `json:"-"`
15478}
15479
15480func (s *ImageListWarning) MarshalJSON() ([]byte, error) {
15481	type NoMethod ImageListWarning
15482	raw := NoMethod(*s)
15483	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15484}
15485
15486type ImageListWarningData struct {
15487	// Key: [Output Only] A key that provides more detail on the warning
15488	// being returned. For example, for warnings where there are no results
15489	// in a list request for a particular zone, this key might be scope and
15490	// the key value might be the zone name. Other examples might be a key
15491	// indicating a deprecated resource and a suggested replacement, or a
15492	// warning about invalid network settings (for example, if an instance
15493	// attempts to perform IP forwarding but is not enabled for IP
15494	// forwarding).
15495	Key string `json:"key,omitempty"`
15496
15497	// Value: [Output Only] A warning data value corresponding to the key.
15498	Value string `json:"value,omitempty"`
15499
15500	// ForceSendFields is a list of field names (e.g. "Key") to
15501	// unconditionally include in API requests. By default, fields with
15502	// empty values are omitted from API requests. However, any non-pointer,
15503	// non-interface field appearing in ForceSendFields will be sent to the
15504	// server regardless of whether the field is empty or not. This may be
15505	// used to include empty fields in Patch requests.
15506	ForceSendFields []string `json:"-"`
15507
15508	// NullFields is a list of field names (e.g. "Key") to include in API
15509	// requests with the JSON null value. By default, fields with empty
15510	// values are omitted from API requests. However, any field with an
15511	// empty value appearing in NullFields will be sent to the server as
15512	// null. It is an error if a field in this list has a non-empty value.
15513	// This may be used to include null fields in Patch requests.
15514	NullFields []string `json:"-"`
15515}
15516
15517func (s *ImageListWarningData) MarshalJSON() ([]byte, error) {
15518	type NoMethod ImageListWarningData
15519	raw := NoMethod(*s)
15520	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15521}
15522
15523// InitialStateConfig: Initial State for shielded instance, these are
15524// public keys which are safe to store in public
15525type InitialStateConfig struct {
15526	// Dbs: The Key Database (db).
15527	Dbs []*FileContentBuffer `json:"dbs,omitempty"`
15528
15529	// Dbxs: The forbidden key database (dbx).
15530	Dbxs []*FileContentBuffer `json:"dbxs,omitempty"`
15531
15532	// Keks: The Key Exchange Key (KEK).
15533	Keks []*FileContentBuffer `json:"keks,omitempty"`
15534
15535	// Pk: The Platform Key (PK).
15536	Pk *FileContentBuffer `json:"pk,omitempty"`
15537
15538	// ForceSendFields is a list of field names (e.g. "Dbs") to
15539	// unconditionally include in API requests. By default, fields with
15540	// empty values are omitted from API requests. However, any non-pointer,
15541	// non-interface field appearing in ForceSendFields will be sent to the
15542	// server regardless of whether the field is empty or not. This may be
15543	// used to include empty fields in Patch requests.
15544	ForceSendFields []string `json:"-"`
15545
15546	// NullFields is a list of field names (e.g. "Dbs") to include in API
15547	// requests with the JSON null value. By default, fields with empty
15548	// values are omitted from API requests. However, any field with an
15549	// empty value appearing in NullFields will be sent to the server as
15550	// null. It is an error if a field in this list has a non-empty value.
15551	// This may be used to include null fields in Patch requests.
15552	NullFields []string `json:"-"`
15553}
15554
15555func (s *InitialStateConfig) MarshalJSON() ([]byte, error) {
15556	type NoMethod InitialStateConfig
15557	raw := NoMethod(*s)
15558	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15559}
15560
15561// Instance: Represents an Instance resource.
15562//
15563// An instance is a virtual machine that is hosted on Google Cloud
15564// Platform. For more information, read Virtual Machine Instances. (==
15565// resource_for {$api_version}.instances ==)
15566type Instance struct {
15567	// AdvancedMachineFeatures: Controls for advanced machine-related
15568	// behavior features.
15569	AdvancedMachineFeatures *AdvancedMachineFeatures `json:"advancedMachineFeatures,omitempty"`
15570
15571	// CanIpForward: Allows this instance to send and receive packets with
15572	// non-matching destination or source IPs. This is required if you plan
15573	// to use this instance to forward routes. For more information, see
15574	// Enabling IP Forwarding.
15575	CanIpForward bool `json:"canIpForward,omitempty"`
15576
15577	ConfidentialInstanceConfig *ConfidentialInstanceConfig `json:"confidentialInstanceConfig,omitempty"`
15578
15579	// CpuPlatform: [Output Only] The CPU platform used by this instance.
15580	CpuPlatform string `json:"cpuPlatform,omitempty"`
15581
15582	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
15583	// format.
15584	CreationTimestamp string `json:"creationTimestamp,omitempty"`
15585
15586	// DeletionProtection: Whether the resource should be protected against
15587	// deletion.
15588	DeletionProtection bool `json:"deletionProtection,omitempty"`
15589
15590	// Description: An optional description of this resource. Provide this
15591	// property when you create the resource.
15592	Description string `json:"description,omitempty"`
15593
15594	// Disks: Array of disks associated with this instance. Persistent disks
15595	// must be created before you can assign them.
15596	Disks []*AttachedDisk `json:"disks,omitempty"`
15597
15598	// DisplayDevice: Enables display device for the instance.
15599	DisplayDevice *DisplayDevice `json:"displayDevice,omitempty"`
15600
15601	// EraseWindowsVssSignature: Specifies whether the disks restored from
15602	// source snapshots or source machine image should erase Windows
15603	// specific VSS signature.
15604	EraseWindowsVssSignature bool `json:"eraseWindowsVssSignature,omitempty"`
15605
15606	// Fingerprint: Specifies a fingerprint for this resource, which is
15607	// essentially a hash of the instance's contents and used for optimistic
15608	// locking. The fingerprint is initially generated by Compute Engine and
15609	// changes after every request to modify or update the instance. You
15610	// must always provide an up-to-date fingerprint hash in order to update
15611	// the instance.
15612	//
15613	// To see the latest fingerprint, make get() request to the instance.
15614	Fingerprint string `json:"fingerprint,omitempty"`
15615
15616	// GuestAccelerators: A list of the type and count of accelerator cards
15617	// attached to the instance.
15618	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
15619
15620	// Hostname: Specifies the hostname of the instance. The specified
15621	// hostname must be RFC1035 compliant. If hostname is not specified, the
15622	// default hostname is [INSTANCE_NAME].c.[PROJECT_ID].internal when
15623	// using the global DNS, and
15624	// [INSTANCE_NAME].[ZONE].c.[PROJECT_ID].internal when using zonal DNS.
15625	Hostname string `json:"hostname,omitempty"`
15626
15627	// Id: [Output Only] The unique identifier for the resource. This
15628	// identifier is defined by the server.
15629	Id uint64 `json:"id,omitempty,string"`
15630
15631	// Kind: [Output Only] Type of the resource. Always compute#instance for
15632	// instances.
15633	Kind string `json:"kind,omitempty"`
15634
15635	// LabelFingerprint: A fingerprint for this request, which is
15636	// essentially a hash of the label's contents and used for optimistic
15637	// locking. The fingerprint is initially generated by Compute Engine and
15638	// changes after every request to modify or update labels. You must
15639	// always provide an up-to-date fingerprint hash in order to update or
15640	// change labels.
15641	//
15642	// To see the latest fingerprint, make get() request to the instance.
15643	LabelFingerprint string `json:"labelFingerprint,omitempty"`
15644
15645	// Labels: Labels to apply to this instance. These can be later modified
15646	// by the setLabels method.
15647	Labels map[string]string `json:"labels,omitempty"`
15648
15649	// LastStartTimestamp: [Output Only] Last start timestamp in RFC3339
15650	// text format.
15651	LastStartTimestamp string `json:"lastStartTimestamp,omitempty"`
15652
15653	// LastStopTimestamp: [Output Only] Last stop timestamp in RFC3339 text
15654	// format.
15655	LastStopTimestamp string `json:"lastStopTimestamp,omitempty"`
15656
15657	// LastSuspendedTimestamp: [Output Only] Last suspended timestamp in
15658	// RFC3339 text format.
15659	LastSuspendedTimestamp string `json:"lastSuspendedTimestamp,omitempty"`
15660
15661	// MachineType: Full or partial URL of the machine type resource to use
15662	// for this instance, in the format:
15663	// zones/zone/machineTypes/machine-type. This is provided by the client
15664	// when the instance is created. For example, the following is a valid
15665	// partial url to a predefined machine
15666	// type:
15667	// zones/us-central1-f/machineTypes/n1-standard-1
15668	//
15669	//
15670	// To create a custom machine type, provide a URL to a machine type in
15671	// the following format, where CPUS is 1 or an even number up to 32 (2,
15672	// 4, 6, ... 24, etc), and MEMORY is the total memory for this instance.
15673	// Memory must be a multiple of 256 MB and must be supplied in MB (e.g.
15674	// 5 GB of memory is 5120
15675	// MB):
15676	// zones/zone/machineTypes/custom-CPUS-MEMORY
15677	//
15678	//
15679	// For example: zones/us-central1-f/machineTypes/custom-4-5120
15680	//
15681	// For a full list of restrictions, read the Specifications for custom
15682	// machine types.
15683	MachineType string `json:"machineType,omitempty"`
15684
15685	// Metadata: The metadata key/value pairs assigned to this instance.
15686	// This includes custom metadata and predefined keys.
15687	Metadata *Metadata `json:"metadata,omitempty"`
15688
15689	// MinCpuPlatform: Specifies a minimum CPU platform for the VM instance.
15690	// Applicable values are the friendly names of CPU platforms, such as
15691	// minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy
15692	// Bridge".
15693	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
15694
15695	// Name: The name of the resource, provided by the client when initially
15696	// creating the resource. The resource name must be 1-63 characters
15697	// long, and comply with RFC1035. Specifically, the name must be 1-63
15698	// characters long and match the regular expression
15699	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
15700	// a lowercase letter, and all following characters must be a dash,
15701	// lowercase letter, or digit, except the last character, which cannot
15702	// be a dash.
15703	Name string `json:"name,omitempty"`
15704
15705	// NetworkInterfaces: An array of network configurations for this
15706	// instance. These specify how interfaces are configured to interact
15707	// with other network services, such as connecting to the internet.
15708	// Multiple interfaces are supported per instance.
15709	NetworkInterfaces []*NetworkInterface `json:"networkInterfaces,omitempty"`
15710
15711	NetworkPerformanceConfig *NetworkPerformanceConfig `json:"networkPerformanceConfig,omitempty"`
15712
15713	// PostKeyRevocationActionType: PostKeyRevocationActionType of the
15714	// instance.
15715	//
15716	// Possible values:
15717	//   "NOOP"
15718	//   "POST_KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED"
15719	//   "SHUTDOWN"
15720	PostKeyRevocationActionType string `json:"postKeyRevocationActionType,omitempty"`
15721
15722	// PrivateIpv6GoogleAccess: The private IPv6 google access type for the
15723	// VM. If not specified, use  INHERIT_FROM_SUBNETWORK as default.
15724	//
15725	// Possible values:
15726	//   "ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE"
15727	//   "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE"
15728	//   "INHERIT_FROM_SUBNETWORK"
15729	PrivateIpv6GoogleAccess string `json:"privateIpv6GoogleAccess,omitempty"`
15730
15731	// ReservationAffinity: Specifies the reservations that this instance
15732	// can consume from.
15733	ReservationAffinity *ReservationAffinity `json:"reservationAffinity,omitempty"`
15734
15735	// ResourcePolicies: Resource policies applied to this instance.
15736	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
15737
15738	// SatisfiesPzs: [Output Only] Reserved for future use.
15739	SatisfiesPzs bool `json:"satisfiesPzs,omitempty"`
15740
15741	// Scheduling: Sets the scheduling options for this instance.
15742	Scheduling *Scheduling `json:"scheduling,omitempty"`
15743
15744	// SelfLink: [Output Only] Server-defined URL for this resource.
15745	SelfLink string `json:"selfLink,omitempty"`
15746
15747	// ServiceAccounts: A list of service accounts, with their specified
15748	// scopes, authorized for this instance. Only one service account per VM
15749	// instance is supported.
15750	//
15751	// Service accounts generate access tokens that can be accessed through
15752	// the metadata server and used to authenticate applications on the
15753	// instance. See Service Accounts for more information.
15754	ServiceAccounts []*ServiceAccount `json:"serviceAccounts,omitempty"`
15755
15756	ShieldedInstanceConfig *ShieldedInstanceConfig `json:"shieldedInstanceConfig,omitempty"`
15757
15758	ShieldedInstanceIntegrityPolicy *ShieldedInstanceIntegrityPolicy `json:"shieldedInstanceIntegrityPolicy,omitempty"`
15759
15760	// ShieldedVmConfig: Deprecating, please use shielded_instance_config.
15761	ShieldedVmConfig *ShieldedVmConfig `json:"shieldedVmConfig,omitempty"`
15762
15763	// ShieldedVmIntegrityPolicy: Deprecating, please use
15764	// shielded_instance_integrity_policy.
15765	ShieldedVmIntegrityPolicy *ShieldedVmIntegrityPolicy `json:"shieldedVmIntegrityPolicy,omitempty"`
15766
15767	// SourceMachineImage: Source machine image
15768	SourceMachineImage string `json:"sourceMachineImage,omitempty"`
15769
15770	// SourceMachineImageEncryptionKey: Source machine image encryption key
15771	// when creating an instance from a machine image.
15772	SourceMachineImageEncryptionKey *CustomerEncryptionKey `json:"sourceMachineImageEncryptionKey,omitempty"`
15773
15774	// StartRestricted: [Output Only] Whether a VM has been restricted for
15775	// start because Compute Engine has detected suspicious activity.
15776	StartRestricted bool `json:"startRestricted,omitempty"`
15777
15778	// Status: [Output Only] The status of the instance. One of the
15779	// following values: PROVISIONING, STAGING, RUNNING, STOPPING,
15780	// SUSPENDING, SUSPENDED, REPAIRING, and TERMINATED. For more
15781	// information about the status of the instance, see  Instance life
15782	// cycle.
15783	//
15784	// Possible values:
15785	//   "DEPROVISIONING"
15786	//   "PROVISIONING"
15787	//   "REPAIRING"
15788	//   "RUNNING"
15789	//   "STAGING"
15790	//   "STOPPED"
15791	//   "STOPPING"
15792	//   "SUSPENDED"
15793	//   "SUSPENDING"
15794	//   "TERMINATED"
15795	Status string `json:"status,omitempty"`
15796
15797	// StatusMessage: [Output Only] An optional, human-readable explanation
15798	// of the status.
15799	StatusMessage string `json:"statusMessage,omitempty"`
15800
15801	// Tags: Tags to apply to this instance. Tags are used to identify valid
15802	// sources or targets for network firewalls and are specified by the
15803	// client during instance creation. The tags can be later modified by
15804	// the setTags method. Each tag within the list must comply with
15805	// RFC1035. Multiple tags can be specified via the 'tags.items' field.
15806	Tags *Tags `json:"tags,omitempty"`
15807
15808	// Zone: [Output Only] URL of the zone where the instance resides. You
15809	// must specify this field as part of the HTTP request URL. It is not
15810	// settable as a field in the request body.
15811	Zone string `json:"zone,omitempty"`
15812
15813	// ServerResponse contains the HTTP response code and headers from the
15814	// server.
15815	googleapi.ServerResponse `json:"-"`
15816
15817	// ForceSendFields is a list of field names (e.g.
15818	// "AdvancedMachineFeatures") to unconditionally include in API
15819	// requests. By default, fields with empty values are omitted from API
15820	// requests. However, any non-pointer, non-interface field appearing in
15821	// ForceSendFields will be sent to the server regardless of whether the
15822	// field is empty or not. This may be used to include empty fields in
15823	// Patch requests.
15824	ForceSendFields []string `json:"-"`
15825
15826	// NullFields is a list of field names (e.g. "AdvancedMachineFeatures")
15827	// to include in API requests with the JSON null value. By default,
15828	// fields with empty values are omitted from API requests. However, any
15829	// field with an empty value appearing in NullFields will be sent to the
15830	// server as null. It is an error if a field in this list has a
15831	// non-empty value. This may be used to include null fields in Patch
15832	// requests.
15833	NullFields []string `json:"-"`
15834}
15835
15836func (s *Instance) MarshalJSON() ([]byte, error) {
15837	type NoMethod Instance
15838	raw := NoMethod(*s)
15839	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15840}
15841
15842type InstanceAggregatedList struct {
15843	// Id: [Output Only] Unique identifier for the resource; defined by the
15844	// server.
15845	Id string `json:"id,omitempty"`
15846
15847	// Items: An object that contains a list of instances scoped by zone.
15848	Items map[string]InstancesScopedList `json:"items,omitempty"`
15849
15850	// Kind: [Output Only] Type of resource. Always
15851	// compute#instanceAggregatedList for aggregated lists of Instance
15852	// resources.
15853	Kind string `json:"kind,omitempty"`
15854
15855	// NextPageToken: [Output Only] This token allows you to get the next
15856	// page of results for list requests. If the number of results is larger
15857	// than maxResults, use the nextPageToken as a value for the query
15858	// parameter pageToken in the next list request. Subsequent list
15859	// requests will have their own nextPageToken to continue paging through
15860	// the results.
15861	NextPageToken string `json:"nextPageToken,omitempty"`
15862
15863	// SelfLink: [Output Only] Server-defined URL for this resource.
15864	SelfLink string `json:"selfLink,omitempty"`
15865
15866	// Unreachables: [Output Only] Unreachable resources.
15867	Unreachables []string `json:"unreachables,omitempty"`
15868
15869	// Warning: [Output Only] Informational warning message.
15870	Warning *InstanceAggregatedListWarning `json:"warning,omitempty"`
15871
15872	// ServerResponse contains the HTTP response code and headers from the
15873	// server.
15874	googleapi.ServerResponse `json:"-"`
15875
15876	// ForceSendFields is a list of field names (e.g. "Id") to
15877	// unconditionally include in API requests. By default, fields with
15878	// empty values are omitted from API requests. However, any non-pointer,
15879	// non-interface field appearing in ForceSendFields will be sent to the
15880	// server regardless of whether the field is empty or not. This may be
15881	// used to include empty fields in Patch requests.
15882	ForceSendFields []string `json:"-"`
15883
15884	// NullFields is a list of field names (e.g. "Id") to include in API
15885	// requests with the JSON null value. By default, fields with empty
15886	// values are omitted from API requests. However, any field with an
15887	// empty value appearing in NullFields will be sent to the server as
15888	// null. It is an error if a field in this list has a non-empty value.
15889	// This may be used to include null fields in Patch requests.
15890	NullFields []string `json:"-"`
15891}
15892
15893func (s *InstanceAggregatedList) MarshalJSON() ([]byte, error) {
15894	type NoMethod InstanceAggregatedList
15895	raw := NoMethod(*s)
15896	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15897}
15898
15899// InstanceAggregatedListWarning: [Output Only] Informational warning
15900// message.
15901type InstanceAggregatedListWarning struct {
15902	// Code: [Output Only] A warning code, if applicable. For example,
15903	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
15904	// the response.
15905	//
15906	// Possible values:
15907	//   "CLEANUP_FAILED"
15908	//   "DEPRECATED_RESOURCE_USED"
15909	//   "DEPRECATED_TYPE_USED"
15910	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
15911	//   "EXPERIMENTAL_TYPE_USED"
15912	//   "EXTERNAL_API_WARNING"
15913	//   "FIELD_VALUE_OVERRIDEN"
15914	//   "INJECTED_KERNELS_DEPRECATED"
15915	//   "LARGE_DEPLOYMENT_WARNING"
15916	//   "MISSING_TYPE_DEPENDENCY"
15917	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
15918	//   "NEXT_HOP_CANNOT_IP_FORWARD"
15919	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
15920	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
15921	//   "NEXT_HOP_NOT_RUNNING"
15922	//   "NOT_CRITICAL_ERROR"
15923	//   "NO_RESULTS_ON_PAGE"
15924	//   "PARTIAL_SUCCESS"
15925	//   "REQUIRED_TOS_AGREEMENT"
15926	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
15927	//   "RESOURCE_NOT_DELETED"
15928	//   "SCHEMA_VALIDATION_IGNORED"
15929	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
15930	//   "UNDECLARED_PROPERTIES"
15931	//   "UNREACHABLE"
15932	Code string `json:"code,omitempty"`
15933
15934	// Data: [Output Only] Metadata about this warning in key: value format.
15935	// For example:
15936	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
15937	Data []*InstanceAggregatedListWarningData `json:"data,omitempty"`
15938
15939	// Message: [Output Only] A human-readable description of the warning
15940	// code.
15941	Message string `json:"message,omitempty"`
15942
15943	// ForceSendFields is a list of field names (e.g. "Code") to
15944	// unconditionally include in API requests. By default, fields with
15945	// empty values are omitted from API requests. However, any non-pointer,
15946	// non-interface field appearing in ForceSendFields will be sent to the
15947	// server regardless of whether the field is empty or not. This may be
15948	// used to include empty fields in Patch requests.
15949	ForceSendFields []string `json:"-"`
15950
15951	// NullFields is a list of field names (e.g. "Code") to include in API
15952	// requests with the JSON null value. By default, fields with empty
15953	// values are omitted from API requests. However, any field with an
15954	// empty value appearing in NullFields will be sent to the server as
15955	// null. It is an error if a field in this list has a non-empty value.
15956	// This may be used to include null fields in Patch requests.
15957	NullFields []string `json:"-"`
15958}
15959
15960func (s *InstanceAggregatedListWarning) MarshalJSON() ([]byte, error) {
15961	type NoMethod InstanceAggregatedListWarning
15962	raw := NoMethod(*s)
15963	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15964}
15965
15966type InstanceAggregatedListWarningData struct {
15967	// Key: [Output Only] A key that provides more detail on the warning
15968	// being returned. For example, for warnings where there are no results
15969	// in a list request for a particular zone, this key might be scope and
15970	// the key value might be the zone name. Other examples might be a key
15971	// indicating a deprecated resource and a suggested replacement, or a
15972	// warning about invalid network settings (for example, if an instance
15973	// attempts to perform IP forwarding but is not enabled for IP
15974	// forwarding).
15975	Key string `json:"key,omitempty"`
15976
15977	// Value: [Output Only] A warning data value corresponding to the key.
15978	Value string `json:"value,omitempty"`
15979
15980	// ForceSendFields is a list of field names (e.g. "Key") to
15981	// unconditionally include in API requests. By default, fields with
15982	// empty values are omitted from API requests. However, any non-pointer,
15983	// non-interface field appearing in ForceSendFields will be sent to the
15984	// server regardless of whether the field is empty or not. This may be
15985	// used to include empty fields in Patch requests.
15986	ForceSendFields []string `json:"-"`
15987
15988	// NullFields is a list of field names (e.g. "Key") to include in API
15989	// requests with the JSON null value. By default, fields with empty
15990	// values are omitted from API requests. However, any field with an
15991	// empty value appearing in NullFields will be sent to the server as
15992	// null. It is an error if a field in this list has a non-empty value.
15993	// This may be used to include null fields in Patch requests.
15994	NullFields []string `json:"-"`
15995}
15996
15997func (s *InstanceAggregatedListWarningData) MarshalJSON() ([]byte, error) {
15998	type NoMethod InstanceAggregatedListWarningData
15999	raw := NoMethod(*s)
16000	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16001}
16002
16003// InstanceGroup: Represents an Instance Group resource.
16004//
16005// Instance Groups can be used to configure a target for load
16006// balancing.
16007//
16008// Instance groups can either be managed or unmanaged.
16009//
16010// To create  managed instance groups, use the instanceGroupManager or
16011// regionInstanceGroupManager resource instead.
16012//
16013// Use zonal unmanaged instance groups if you need to apply load
16014// balancing to groups of heterogeneous instances or if you need to
16015// manage the instances yourself. You cannot create regional unmanaged
16016// instance groups.
16017//
16018// For more information, read Instance groups.
16019//
16020// (== resource_for {$api_version}.instanceGroups ==) (== resource_for
16021// {$api_version}.regionInstanceGroups ==)
16022type InstanceGroup struct {
16023	// CreationTimestamp: [Output Only] The creation timestamp for this
16024	// instance group in RFC3339 text format.
16025	CreationTimestamp string `json:"creationTimestamp,omitempty"`
16026
16027	// Description: An optional description of this resource. Provide this
16028	// property when you create the resource.
16029	Description string `json:"description,omitempty"`
16030
16031	// Fingerprint: [Output Only] The fingerprint of the named ports. The
16032	// system uses this fingerprint to detect conflicts when multiple users
16033	// change the named ports concurrently.
16034	Fingerprint string `json:"fingerprint,omitempty"`
16035
16036	// Id: [Output Only] A unique identifier for this instance group,
16037	// generated by the server.
16038	Id uint64 `json:"id,omitempty,string"`
16039
16040	// Kind: [Output Only] The resource type, which is always
16041	// compute#instanceGroup for instance groups.
16042	Kind string `json:"kind,omitempty"`
16043
16044	// Name: The name of the instance group. The name must be 1-63
16045	// characters long, and comply with RFC1035.
16046	Name string `json:"name,omitempty"`
16047
16048	// NamedPorts: Assigns a name to a port number. For example: {name:
16049	// "http", port: 80}
16050	//
16051	// This allows the system to reference ports by the assigned name
16052	// instead of a port number. Named ports can also contain multiple
16053	// ports. For example: [{name: "http", port: 80},{name: "http", port:
16054	// 8080}]
16055	//
16056	// Named ports apply to all instances in this instance group.
16057	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
16058
16059	// Network: [Output Only] The URL of the network to which all instances
16060	// in the instance group belong. If your instance has multiple network
16061	// interfaces, then the network and subnetwork fields only refer to the
16062	// network and subnet used by your primary interface (nic0).
16063	Network string `json:"network,omitempty"`
16064
16065	// Region: [Output Only] The URL of the region where the instance group
16066	// is located (for regional resources).
16067	Region string `json:"region,omitempty"`
16068
16069	// SelfLink: [Output Only] The URL for this instance group. The server
16070	// generates this URL.
16071	SelfLink string `json:"selfLink,omitempty"`
16072
16073	// Size: [Output Only] The total number of instances in the instance
16074	// group.
16075	Size int64 `json:"size,omitempty"`
16076
16077	// Subnetwork: [Output Only] The URL of the subnetwork to which all
16078	// instances in the instance group belong. If your instance has multiple
16079	// network interfaces, then the network and subnetwork fields only refer
16080	// to the network and subnet used by your primary interface (nic0).
16081	Subnetwork string `json:"subnetwork,omitempty"`
16082
16083	// Zone: [Output Only] The URL of the zone where the instance group is
16084	// located (for zonal resources).
16085	Zone string `json:"zone,omitempty"`
16086
16087	// ServerResponse contains the HTTP response code and headers from the
16088	// server.
16089	googleapi.ServerResponse `json:"-"`
16090
16091	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
16092	// to unconditionally include in API requests. By default, fields with
16093	// empty values are omitted from API requests. However, any non-pointer,
16094	// non-interface field appearing in ForceSendFields will be sent to the
16095	// server regardless of whether the field is empty or not. This may be
16096	// used to include empty fields in Patch requests.
16097	ForceSendFields []string `json:"-"`
16098
16099	// NullFields is a list of field names (e.g. "CreationTimestamp") to
16100	// include in API requests with the JSON null value. By default, fields
16101	// with empty values are omitted from API requests. However, any field
16102	// with an empty value appearing in NullFields will be sent to the
16103	// server as null. It is an error if a field in this list has a
16104	// non-empty value. This may be used to include null fields in Patch
16105	// requests.
16106	NullFields []string `json:"-"`
16107}
16108
16109func (s *InstanceGroup) MarshalJSON() ([]byte, error) {
16110	type NoMethod InstanceGroup
16111	raw := NoMethod(*s)
16112	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16113}
16114
16115type InstanceGroupAggregatedList struct {
16116	// Id: [Output Only] Unique identifier for the resource; defined by the
16117	// server.
16118	Id string `json:"id,omitempty"`
16119
16120	// Items: A list of InstanceGroupsScopedList resources.
16121	Items map[string]InstanceGroupsScopedList `json:"items,omitempty"`
16122
16123	// Kind: [Output Only] The resource type, which is always
16124	// compute#instanceGroupAggregatedList for aggregated lists of instance
16125	// groups.
16126	Kind string `json:"kind,omitempty"`
16127
16128	// NextPageToken: [Output Only] This token allows you to get the next
16129	// page of results for list requests. If the number of results is larger
16130	// than maxResults, use the nextPageToken as a value for the query
16131	// parameter pageToken in the next list request. Subsequent list
16132	// requests will have their own nextPageToken to continue paging through
16133	// the results.
16134	NextPageToken string `json:"nextPageToken,omitempty"`
16135
16136	// SelfLink: [Output Only] Server-defined URL for this resource.
16137	SelfLink string `json:"selfLink,omitempty"`
16138
16139	// Unreachables: [Output Only] Unreachable resources.
16140	Unreachables []string `json:"unreachables,omitempty"`
16141
16142	// Warning: [Output Only] Informational warning message.
16143	Warning *InstanceGroupAggregatedListWarning `json:"warning,omitempty"`
16144
16145	// ServerResponse contains the HTTP response code and headers from the
16146	// server.
16147	googleapi.ServerResponse `json:"-"`
16148
16149	// ForceSendFields is a list of field names (e.g. "Id") to
16150	// unconditionally include in API requests. By default, fields with
16151	// empty values are omitted from API requests. However, any non-pointer,
16152	// non-interface field appearing in ForceSendFields will be sent to the
16153	// server regardless of whether the field is empty or not. This may be
16154	// used to include empty fields in Patch requests.
16155	ForceSendFields []string `json:"-"`
16156
16157	// NullFields is a list of field names (e.g. "Id") to include in API
16158	// requests with the JSON null value. By default, fields with empty
16159	// values are omitted from API requests. However, any field with an
16160	// empty value appearing in NullFields will be sent to the server as
16161	// null. It is an error if a field in this list has a non-empty value.
16162	// This may be used to include null fields in Patch requests.
16163	NullFields []string `json:"-"`
16164}
16165
16166func (s *InstanceGroupAggregatedList) MarshalJSON() ([]byte, error) {
16167	type NoMethod InstanceGroupAggregatedList
16168	raw := NoMethod(*s)
16169	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16170}
16171
16172// InstanceGroupAggregatedListWarning: [Output Only] Informational
16173// warning message.
16174type InstanceGroupAggregatedListWarning struct {
16175	// Code: [Output Only] A warning code, if applicable. For example,
16176	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
16177	// the response.
16178	//
16179	// Possible values:
16180	//   "CLEANUP_FAILED"
16181	//   "DEPRECATED_RESOURCE_USED"
16182	//   "DEPRECATED_TYPE_USED"
16183	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
16184	//   "EXPERIMENTAL_TYPE_USED"
16185	//   "EXTERNAL_API_WARNING"
16186	//   "FIELD_VALUE_OVERRIDEN"
16187	//   "INJECTED_KERNELS_DEPRECATED"
16188	//   "LARGE_DEPLOYMENT_WARNING"
16189	//   "MISSING_TYPE_DEPENDENCY"
16190	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
16191	//   "NEXT_HOP_CANNOT_IP_FORWARD"
16192	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
16193	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
16194	//   "NEXT_HOP_NOT_RUNNING"
16195	//   "NOT_CRITICAL_ERROR"
16196	//   "NO_RESULTS_ON_PAGE"
16197	//   "PARTIAL_SUCCESS"
16198	//   "REQUIRED_TOS_AGREEMENT"
16199	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
16200	//   "RESOURCE_NOT_DELETED"
16201	//   "SCHEMA_VALIDATION_IGNORED"
16202	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
16203	//   "UNDECLARED_PROPERTIES"
16204	//   "UNREACHABLE"
16205	Code string `json:"code,omitempty"`
16206
16207	// Data: [Output Only] Metadata about this warning in key: value format.
16208	// For example:
16209	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
16210	Data []*InstanceGroupAggregatedListWarningData `json:"data,omitempty"`
16211
16212	// Message: [Output Only] A human-readable description of the warning
16213	// code.
16214	Message string `json:"message,omitempty"`
16215
16216	// ForceSendFields is a list of field names (e.g. "Code") to
16217	// unconditionally include in API requests. By default, fields with
16218	// empty values are omitted from API requests. However, any non-pointer,
16219	// non-interface field appearing in ForceSendFields will be sent to the
16220	// server regardless of whether the field is empty or not. This may be
16221	// used to include empty fields in Patch requests.
16222	ForceSendFields []string `json:"-"`
16223
16224	// NullFields is a list of field names (e.g. "Code") to include in API
16225	// requests with the JSON null value. By default, fields with empty
16226	// values are omitted from API requests. However, any field with an
16227	// empty value appearing in NullFields will be sent to the server as
16228	// null. It is an error if a field in this list has a non-empty value.
16229	// This may be used to include null fields in Patch requests.
16230	NullFields []string `json:"-"`
16231}
16232
16233func (s *InstanceGroupAggregatedListWarning) MarshalJSON() ([]byte, error) {
16234	type NoMethod InstanceGroupAggregatedListWarning
16235	raw := NoMethod(*s)
16236	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16237}
16238
16239type InstanceGroupAggregatedListWarningData struct {
16240	// Key: [Output Only] A key that provides more detail on the warning
16241	// being returned. For example, for warnings where there are no results
16242	// in a list request for a particular zone, this key might be scope and
16243	// the key value might be the zone name. Other examples might be a key
16244	// indicating a deprecated resource and a suggested replacement, or a
16245	// warning about invalid network settings (for example, if an instance
16246	// attempts to perform IP forwarding but is not enabled for IP
16247	// forwarding).
16248	Key string `json:"key,omitempty"`
16249
16250	// Value: [Output Only] A warning data value corresponding to the key.
16251	Value string `json:"value,omitempty"`
16252
16253	// ForceSendFields is a list of field names (e.g. "Key") to
16254	// unconditionally include in API requests. By default, fields with
16255	// empty values are omitted from API requests. However, any non-pointer,
16256	// non-interface field appearing in ForceSendFields will be sent to the
16257	// server regardless of whether the field is empty or not. This may be
16258	// used to include empty fields in Patch requests.
16259	ForceSendFields []string `json:"-"`
16260
16261	// NullFields is a list of field names (e.g. "Key") to include in API
16262	// requests with the JSON null value. By default, fields with empty
16263	// values are omitted from API requests. However, any field with an
16264	// empty value appearing in NullFields will be sent to the server as
16265	// null. It is an error if a field in this list has a non-empty value.
16266	// This may be used to include null fields in Patch requests.
16267	NullFields []string `json:"-"`
16268}
16269
16270func (s *InstanceGroupAggregatedListWarningData) MarshalJSON() ([]byte, error) {
16271	type NoMethod InstanceGroupAggregatedListWarningData
16272	raw := NoMethod(*s)
16273	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16274}
16275
16276// InstanceGroupList: A list of InstanceGroup resources.
16277type InstanceGroupList struct {
16278	// Id: [Output Only] Unique identifier for the resource; defined by the
16279	// server.
16280	Id string `json:"id,omitempty"`
16281
16282	// Items: A list of InstanceGroup resources.
16283	Items []*InstanceGroup `json:"items,omitempty"`
16284
16285	// Kind: [Output Only] The resource type, which is always
16286	// compute#instanceGroupList for instance group lists.
16287	Kind string `json:"kind,omitempty"`
16288
16289	// NextPageToken: [Output Only] This token allows you to get the next
16290	// page of results for list requests. If the number of results is larger
16291	// than maxResults, use the nextPageToken as a value for the query
16292	// parameter pageToken in the next list request. Subsequent list
16293	// requests will have their own nextPageToken to continue paging through
16294	// the results.
16295	NextPageToken string `json:"nextPageToken,omitempty"`
16296
16297	// SelfLink: [Output Only] Server-defined URL for this resource.
16298	SelfLink string `json:"selfLink,omitempty"`
16299
16300	// Warning: [Output Only] Informational warning message.
16301	Warning *InstanceGroupListWarning `json:"warning,omitempty"`
16302
16303	// ServerResponse contains the HTTP response code and headers from the
16304	// server.
16305	googleapi.ServerResponse `json:"-"`
16306
16307	// ForceSendFields is a list of field names (e.g. "Id") to
16308	// unconditionally include in API requests. By default, fields with
16309	// empty values are omitted from API requests. However, any non-pointer,
16310	// non-interface field appearing in ForceSendFields will be sent to the
16311	// server regardless of whether the field is empty or not. This may be
16312	// used to include empty fields in Patch requests.
16313	ForceSendFields []string `json:"-"`
16314
16315	// NullFields is a list of field names (e.g. "Id") to include in API
16316	// requests with the JSON null value. By default, fields with empty
16317	// values are omitted from API requests. However, any field with an
16318	// empty value appearing in NullFields will be sent to the server as
16319	// null. It is an error if a field in this list has a non-empty value.
16320	// This may be used to include null fields in Patch requests.
16321	NullFields []string `json:"-"`
16322}
16323
16324func (s *InstanceGroupList) MarshalJSON() ([]byte, error) {
16325	type NoMethod InstanceGroupList
16326	raw := NoMethod(*s)
16327	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16328}
16329
16330// InstanceGroupListWarning: [Output Only] Informational warning
16331// message.
16332type InstanceGroupListWarning struct {
16333	// Code: [Output Only] A warning code, if applicable. For example,
16334	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
16335	// the response.
16336	//
16337	// Possible values:
16338	//   "CLEANUP_FAILED"
16339	//   "DEPRECATED_RESOURCE_USED"
16340	//   "DEPRECATED_TYPE_USED"
16341	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
16342	//   "EXPERIMENTAL_TYPE_USED"
16343	//   "EXTERNAL_API_WARNING"
16344	//   "FIELD_VALUE_OVERRIDEN"
16345	//   "INJECTED_KERNELS_DEPRECATED"
16346	//   "LARGE_DEPLOYMENT_WARNING"
16347	//   "MISSING_TYPE_DEPENDENCY"
16348	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
16349	//   "NEXT_HOP_CANNOT_IP_FORWARD"
16350	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
16351	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
16352	//   "NEXT_HOP_NOT_RUNNING"
16353	//   "NOT_CRITICAL_ERROR"
16354	//   "NO_RESULTS_ON_PAGE"
16355	//   "PARTIAL_SUCCESS"
16356	//   "REQUIRED_TOS_AGREEMENT"
16357	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
16358	//   "RESOURCE_NOT_DELETED"
16359	//   "SCHEMA_VALIDATION_IGNORED"
16360	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
16361	//   "UNDECLARED_PROPERTIES"
16362	//   "UNREACHABLE"
16363	Code string `json:"code,omitempty"`
16364
16365	// Data: [Output Only] Metadata about this warning in key: value format.
16366	// For example:
16367	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
16368	Data []*InstanceGroupListWarningData `json:"data,omitempty"`
16369
16370	// Message: [Output Only] A human-readable description of the warning
16371	// code.
16372	Message string `json:"message,omitempty"`
16373
16374	// ForceSendFields is a list of field names (e.g. "Code") to
16375	// unconditionally include in API requests. By default, fields with
16376	// empty values are omitted from API requests. However, any non-pointer,
16377	// non-interface field appearing in ForceSendFields will be sent to the
16378	// server regardless of whether the field is empty or not. This may be
16379	// used to include empty fields in Patch requests.
16380	ForceSendFields []string `json:"-"`
16381
16382	// NullFields is a list of field names (e.g. "Code") to include in API
16383	// requests with the JSON null value. By default, fields with empty
16384	// values are omitted from API requests. However, any field with an
16385	// empty value appearing in NullFields will be sent to the server as
16386	// null. It is an error if a field in this list has a non-empty value.
16387	// This may be used to include null fields in Patch requests.
16388	NullFields []string `json:"-"`
16389}
16390
16391func (s *InstanceGroupListWarning) MarshalJSON() ([]byte, error) {
16392	type NoMethod InstanceGroupListWarning
16393	raw := NoMethod(*s)
16394	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16395}
16396
16397type InstanceGroupListWarningData struct {
16398	// Key: [Output Only] A key that provides more detail on the warning
16399	// being returned. For example, for warnings where there are no results
16400	// in a list request for a particular zone, this key might be scope and
16401	// the key value might be the zone name. Other examples might be a key
16402	// indicating a deprecated resource and a suggested replacement, or a
16403	// warning about invalid network settings (for example, if an instance
16404	// attempts to perform IP forwarding but is not enabled for IP
16405	// forwarding).
16406	Key string `json:"key,omitempty"`
16407
16408	// Value: [Output Only] A warning data value corresponding to the key.
16409	Value string `json:"value,omitempty"`
16410
16411	// ForceSendFields is a list of field names (e.g. "Key") to
16412	// unconditionally include in API requests. By default, fields with
16413	// empty values are omitted from API requests. However, any non-pointer,
16414	// non-interface field appearing in ForceSendFields will be sent to the
16415	// server regardless of whether the field is empty or not. This may be
16416	// used to include empty fields in Patch requests.
16417	ForceSendFields []string `json:"-"`
16418
16419	// NullFields is a list of field names (e.g. "Key") to include in API
16420	// requests with the JSON null value. By default, fields with empty
16421	// values are omitted from API requests. However, any field with an
16422	// empty value appearing in NullFields will be sent to the server as
16423	// null. It is an error if a field in this list has a non-empty value.
16424	// This may be used to include null fields in Patch requests.
16425	NullFields []string `json:"-"`
16426}
16427
16428func (s *InstanceGroupListWarningData) MarshalJSON() ([]byte, error) {
16429	type NoMethod InstanceGroupListWarningData
16430	raw := NoMethod(*s)
16431	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16432}
16433
16434// InstanceGroupManager: Represents a Managed Instance Group
16435// resource.
16436//
16437// An instance group is a collection of VM instances that you can manage
16438// as a single entity. For more information, read Instance groups.
16439//
16440// For zonal Managed Instance Group, use the instanceGroupManagers
16441// resource.
16442//
16443// For regional Managed Instance Group, use the
16444// regionInstanceGroupManagers resource. (== resource_for
16445// {$api_version}.instanceGroupManagers ==) (== resource_for
16446// {$api_version}.regionInstanceGroupManagers ==)
16447type InstanceGroupManager struct {
16448	// AutoHealingPolicies: The autohealing policy for this managed instance
16449	// group. You can specify only one value.
16450	AutoHealingPolicies []*InstanceGroupManagerAutoHealingPolicy `json:"autoHealingPolicies,omitempty"`
16451
16452	// BaseInstanceName: The base instance name to use for instances in this
16453	// group. The value must be 1-58 characters long. Instances are named by
16454	// appending a hyphen and a random four-character string to the base
16455	// instance name. The base instance name must comply with RFC1035.
16456	BaseInstanceName string `json:"baseInstanceName,omitempty"`
16457
16458	// CreationTimestamp: [Output Only] The creation timestamp for this
16459	// managed instance group in RFC3339 text format.
16460	CreationTimestamp string `json:"creationTimestamp,omitempty"`
16461
16462	// CurrentActions: [Output Only] The list of instance actions and the
16463	// number of instances in this managed instance group that are scheduled
16464	// for each of those actions.
16465	CurrentActions *InstanceGroupManagerActionsSummary `json:"currentActions,omitempty"`
16466
16467	// Description: An optional description of this resource. Provide this
16468	// property when you create the resource.
16469	Description string `json:"description,omitempty"`
16470
16471	// DistributionPolicy: Policy specifying the intended distribution of
16472	// managed instances across zones in a regional managed instance group.
16473	DistributionPolicy *DistributionPolicy `json:"distributionPolicy,omitempty"`
16474
16475	// FailoverAction: The action to perform in case of zone failure. Only
16476	// one value is supported, NO_FAILOVER. The default is NO_FAILOVER.
16477	//
16478	// Possible values:
16479	//   "NO_FAILOVER"
16480	//   "UNKNOWN"
16481	FailoverAction string `json:"failoverAction,omitempty"`
16482
16483	// Fingerprint: Fingerprint of this resource. This field may be used in
16484	// optimistic locking. It will be ignored when inserting an
16485	// InstanceGroupManager. An up-to-date fingerprint must be provided in
16486	// order to update the InstanceGroupManager, otherwise the request will
16487	// fail with error 412 conditionNotMet.
16488	//
16489	// To see the latest fingerprint, make a get() request to retrieve an
16490	// InstanceGroupManager.
16491	Fingerprint string `json:"fingerprint,omitempty"`
16492
16493	// Id: [Output Only] A unique identifier for this resource type. The
16494	// server generates this identifier.
16495	Id uint64 `json:"id,omitempty,string"`
16496
16497	// InstanceGroup: [Output Only] The URL of the Instance Group resource.
16498	InstanceGroup string `json:"instanceGroup,omitempty"`
16499
16500	// InstanceTemplate: The URL of the instance template that is specified
16501	// for this managed instance group. The group uses this template to
16502	// create all new instances in the managed instance group. The templates
16503	// for existing instances in the group do not change unless you run
16504	// recreateInstances, run applyUpdatesToInstances, or set the group's
16505	// updatePolicy.type to PROACTIVE.
16506	InstanceTemplate string `json:"instanceTemplate,omitempty"`
16507
16508	// Kind: [Output Only] The resource type, which is always
16509	// compute#instanceGroupManager for managed instance groups.
16510	Kind string `json:"kind,omitempty"`
16511
16512	// Name: The name of the managed instance group. The name must be 1-63
16513	// characters long, and comply with RFC1035.
16514	Name string `json:"name,omitempty"`
16515
16516	// NamedPorts: Named ports configured for the Instance Groups
16517	// complementary to this Instance Group Manager.
16518	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
16519
16520	// Region: [Output Only] The URL of the region where the managed
16521	// instance group resides (for regional resources).
16522	Region string `json:"region,omitempty"`
16523
16524	// SelfLink: [Output Only] The URL for this managed instance group. The
16525	// server defines this URL.
16526	SelfLink string `json:"selfLink,omitempty"`
16527
16528	// ServiceAccount: The service account to be used as credentials for all
16529	// operations performed by the managed instance group on instances. The
16530	// service accounts needs all permissions required to create and delete
16531	// instances. By default, the service account
16532	// {projectNumber}@cloudservices.gserviceaccount.com is used.
16533	ServiceAccount string `json:"serviceAccount,omitempty"`
16534
16535	// StatefulPolicy: Stateful configuration for this Instanced Group
16536	// Manager
16537	StatefulPolicy *StatefulPolicy `json:"statefulPolicy,omitempty"`
16538
16539	// Status: [Output Only] The status of this managed instance group.
16540	Status *InstanceGroupManagerStatus `json:"status,omitempty"`
16541
16542	// TargetPools: The URLs for all TargetPool resources to which instances
16543	// in the instanceGroup field are added. The target pools automatically
16544	// apply to all of the instances in the managed instance group.
16545	TargetPools []string `json:"targetPools,omitempty"`
16546
16547	// TargetSize: The target number of running instances for this managed
16548	// instance group. You can reduce this number by using the
16549	// instanceGroupManager deleteInstances or abandonInstances methods.
16550	// Resizing the group also changes this number.
16551	TargetSize int64 `json:"targetSize,omitempty"`
16552
16553	// UpdatePolicy: The update policy for this managed instance group.
16554	UpdatePolicy *InstanceGroupManagerUpdatePolicy `json:"updatePolicy,omitempty"`
16555
16556	// Versions: Specifies the instance templates used by this managed
16557	// instance group to create instances.
16558	//
16559	// Each version is defined by an instanceTemplate and a name. Every
16560	// version can appear at most once per instance group. This field
16561	// overrides the top-level instanceTemplate field. Read more about the
16562	// relationships between these fields. Exactly one version must leave
16563	// the targetSize field unset. That version will be applied to all
16564	// remaining instances. For more information, read about canary updates.
16565	Versions []*InstanceGroupManagerVersion `json:"versions,omitempty"`
16566
16567	// Zone: [Output Only] The URL of a zone where the managed instance
16568	// group is located (for zonal resources).
16569	Zone string `json:"zone,omitempty"`
16570
16571	// ServerResponse contains the HTTP response code and headers from the
16572	// server.
16573	googleapi.ServerResponse `json:"-"`
16574
16575	// ForceSendFields is a list of field names (e.g. "AutoHealingPolicies")
16576	// to unconditionally include in API requests. By default, fields with
16577	// empty values are omitted from API requests. However, any non-pointer,
16578	// non-interface field appearing in ForceSendFields will be sent to the
16579	// server regardless of whether the field is empty or not. This may be
16580	// used to include empty fields in Patch requests.
16581	ForceSendFields []string `json:"-"`
16582
16583	// NullFields is a list of field names (e.g. "AutoHealingPolicies") to
16584	// include in API requests with the JSON null value. By default, fields
16585	// with empty values are omitted from API requests. However, any field
16586	// with an empty value appearing in NullFields will be sent to the
16587	// server as null. It is an error if a field in this list has a
16588	// non-empty value. This may be used to include null fields in Patch
16589	// requests.
16590	NullFields []string `json:"-"`
16591}
16592
16593func (s *InstanceGroupManager) MarshalJSON() ([]byte, error) {
16594	type NoMethod InstanceGroupManager
16595	raw := NoMethod(*s)
16596	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16597}
16598
16599type InstanceGroupManagerActionsSummary struct {
16600	// Abandoning: [Output Only] The total number of instances in the
16601	// managed instance group that are scheduled to be abandoned. Abandoning
16602	// an instance removes it from the managed instance group without
16603	// deleting it.
16604	Abandoning int64 `json:"abandoning,omitempty"`
16605
16606	// Creating: [Output Only] The number of instances in the managed
16607	// instance group that are scheduled to be created or are currently
16608	// being created. If the group fails to create any of these instances,
16609	// it tries again until it creates the instance successfully.
16610	//
16611	// If you have disabled creation retries, this field will not be
16612	// populated; instead, the creatingWithoutRetries field will be
16613	// populated.
16614	Creating int64 `json:"creating,omitempty"`
16615
16616	// CreatingWithoutRetries: [Output Only] The number of instances that
16617	// the managed instance group will attempt to create. The group attempts
16618	// to create each instance only once. If the group fails to create any
16619	// of these instances, it decreases the group's targetSize value
16620	// accordingly.
16621	CreatingWithoutRetries int64 `json:"creatingWithoutRetries,omitempty"`
16622
16623	// Deleting: [Output Only] The number of instances in the managed
16624	// instance group that are scheduled to be deleted or are currently
16625	// being deleted.
16626	Deleting int64 `json:"deleting,omitempty"`
16627
16628	// None: [Output Only] The number of instances in the managed instance
16629	// group that are running and have no scheduled actions.
16630	None int64 `json:"none,omitempty"`
16631
16632	// Recreating: [Output Only] The number of instances in the managed
16633	// instance group that are scheduled to be recreated or are currently
16634	// being being recreated. Recreating an instance deletes the existing
16635	// root persistent disk and creates a new disk from the image that is
16636	// defined in the instance template.
16637	Recreating int64 `json:"recreating,omitempty"`
16638
16639	// Refreshing: [Output Only] The number of instances in the managed
16640	// instance group that are being reconfigured with properties that do
16641	// not require a restart or a recreate action. For example, setting or
16642	// removing target pools for the instance.
16643	Refreshing int64 `json:"refreshing,omitempty"`
16644
16645	// Restarting: [Output Only] The number of instances in the managed
16646	// instance group that are scheduled to be restarted or are currently
16647	// being restarted.
16648	Restarting int64 `json:"restarting,omitempty"`
16649
16650	// Verifying: [Output Only] The number of instances in the managed
16651	// instance group that are being verified. See the
16652	// managedInstances[].currentAction property in the listManagedInstances
16653	// method documentation.
16654	Verifying int64 `json:"verifying,omitempty"`
16655
16656	// ForceSendFields is a list of field names (e.g. "Abandoning") to
16657	// unconditionally include in API requests. By default, fields with
16658	// empty values are omitted from API requests. However, any non-pointer,
16659	// non-interface field appearing in ForceSendFields will be sent to the
16660	// server regardless of whether the field is empty or not. This may be
16661	// used to include empty fields in Patch requests.
16662	ForceSendFields []string `json:"-"`
16663
16664	// NullFields is a list of field names (e.g. "Abandoning") to include in
16665	// API requests with the JSON null value. By default, fields with empty
16666	// values are omitted from API requests. However, any field with an
16667	// empty value appearing in NullFields will be sent to the server as
16668	// null. It is an error if a field in this list has a non-empty value.
16669	// This may be used to include null fields in Patch requests.
16670	NullFields []string `json:"-"`
16671}
16672
16673func (s *InstanceGroupManagerActionsSummary) MarshalJSON() ([]byte, error) {
16674	type NoMethod InstanceGroupManagerActionsSummary
16675	raw := NoMethod(*s)
16676	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16677}
16678
16679type InstanceGroupManagerAggregatedList struct {
16680	// Id: [Output Only] Unique identifier for the resource; defined by the
16681	// server.
16682	Id string `json:"id,omitempty"`
16683
16684	// Items: A list of InstanceGroupManagersScopedList resources.
16685	Items map[string]InstanceGroupManagersScopedList `json:"items,omitempty"`
16686
16687	// Kind: [Output Only] The resource type, which is always
16688	// compute#instanceGroupManagerAggregatedList for an aggregated list of
16689	// managed instance groups.
16690	Kind string `json:"kind,omitempty"`
16691
16692	// NextPageToken: [Output Only] This token allows you to get the next
16693	// page of results for list requests. If the number of results is larger
16694	// than maxResults, use the nextPageToken as a value for the query
16695	// parameter pageToken in the next list request. Subsequent list
16696	// requests will have their own nextPageToken to continue paging through
16697	// the results.
16698	NextPageToken string `json:"nextPageToken,omitempty"`
16699
16700	// SelfLink: [Output Only] Server-defined URL for this resource.
16701	SelfLink string `json:"selfLink,omitempty"`
16702
16703	// Unreachables: [Output Only] Unreachable resources.
16704	Unreachables []string `json:"unreachables,omitempty"`
16705
16706	// Warning: [Output Only] Informational warning message.
16707	Warning *InstanceGroupManagerAggregatedListWarning `json:"warning,omitempty"`
16708
16709	// ServerResponse contains the HTTP response code and headers from the
16710	// server.
16711	googleapi.ServerResponse `json:"-"`
16712
16713	// ForceSendFields is a list of field names (e.g. "Id") to
16714	// unconditionally include in API requests. By default, fields with
16715	// empty values are omitted from API requests. However, any non-pointer,
16716	// non-interface field appearing in ForceSendFields will be sent to the
16717	// server regardless of whether the field is empty or not. This may be
16718	// used to include empty fields in Patch requests.
16719	ForceSendFields []string `json:"-"`
16720
16721	// NullFields is a list of field names (e.g. "Id") to include in API
16722	// requests with the JSON null value. By default, fields with empty
16723	// values are omitted from API requests. However, any field with an
16724	// empty value appearing in NullFields will be sent to the server as
16725	// null. It is an error if a field in this list has a non-empty value.
16726	// This may be used to include null fields in Patch requests.
16727	NullFields []string `json:"-"`
16728}
16729
16730func (s *InstanceGroupManagerAggregatedList) MarshalJSON() ([]byte, error) {
16731	type NoMethod InstanceGroupManagerAggregatedList
16732	raw := NoMethod(*s)
16733	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16734}
16735
16736// InstanceGroupManagerAggregatedListWarning: [Output Only]
16737// Informational warning message.
16738type InstanceGroupManagerAggregatedListWarning struct {
16739	// Code: [Output Only] A warning code, if applicable. For example,
16740	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
16741	// the response.
16742	//
16743	// Possible values:
16744	//   "CLEANUP_FAILED"
16745	//   "DEPRECATED_RESOURCE_USED"
16746	//   "DEPRECATED_TYPE_USED"
16747	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
16748	//   "EXPERIMENTAL_TYPE_USED"
16749	//   "EXTERNAL_API_WARNING"
16750	//   "FIELD_VALUE_OVERRIDEN"
16751	//   "INJECTED_KERNELS_DEPRECATED"
16752	//   "LARGE_DEPLOYMENT_WARNING"
16753	//   "MISSING_TYPE_DEPENDENCY"
16754	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
16755	//   "NEXT_HOP_CANNOT_IP_FORWARD"
16756	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
16757	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
16758	//   "NEXT_HOP_NOT_RUNNING"
16759	//   "NOT_CRITICAL_ERROR"
16760	//   "NO_RESULTS_ON_PAGE"
16761	//   "PARTIAL_SUCCESS"
16762	//   "REQUIRED_TOS_AGREEMENT"
16763	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
16764	//   "RESOURCE_NOT_DELETED"
16765	//   "SCHEMA_VALIDATION_IGNORED"
16766	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
16767	//   "UNDECLARED_PROPERTIES"
16768	//   "UNREACHABLE"
16769	Code string `json:"code,omitempty"`
16770
16771	// Data: [Output Only] Metadata about this warning in key: value format.
16772	// For example:
16773	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
16774	Data []*InstanceGroupManagerAggregatedListWarningData `json:"data,omitempty"`
16775
16776	// Message: [Output Only] A human-readable description of the warning
16777	// code.
16778	Message string `json:"message,omitempty"`
16779
16780	// ForceSendFields is a list of field names (e.g. "Code") to
16781	// unconditionally include in API requests. By default, fields with
16782	// empty values are omitted from API requests. However, any non-pointer,
16783	// non-interface field appearing in ForceSendFields will be sent to the
16784	// server regardless of whether the field is empty or not. This may be
16785	// used to include empty fields in Patch requests.
16786	ForceSendFields []string `json:"-"`
16787
16788	// NullFields is a list of field names (e.g. "Code") to include in API
16789	// requests with the JSON null value. By default, fields with empty
16790	// values are omitted from API requests. However, any field with an
16791	// empty value appearing in NullFields will be sent to the server as
16792	// null. It is an error if a field in this list has a non-empty value.
16793	// This may be used to include null fields in Patch requests.
16794	NullFields []string `json:"-"`
16795}
16796
16797func (s *InstanceGroupManagerAggregatedListWarning) MarshalJSON() ([]byte, error) {
16798	type NoMethod InstanceGroupManagerAggregatedListWarning
16799	raw := NoMethod(*s)
16800	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16801}
16802
16803type InstanceGroupManagerAggregatedListWarningData struct {
16804	// Key: [Output Only] A key that provides more detail on the warning
16805	// being returned. For example, for warnings where there are no results
16806	// in a list request for a particular zone, this key might be scope and
16807	// the key value might be the zone name. Other examples might be a key
16808	// indicating a deprecated resource and a suggested replacement, or a
16809	// warning about invalid network settings (for example, if an instance
16810	// attempts to perform IP forwarding but is not enabled for IP
16811	// forwarding).
16812	Key string `json:"key,omitempty"`
16813
16814	// Value: [Output Only] A warning data value corresponding to the key.
16815	Value string `json:"value,omitempty"`
16816
16817	// ForceSendFields is a list of field names (e.g. "Key") to
16818	// unconditionally include in API requests. By default, fields with
16819	// empty values are omitted from API requests. However, any non-pointer,
16820	// non-interface field appearing in ForceSendFields will be sent to the
16821	// server regardless of whether the field is empty or not. This may be
16822	// used to include empty fields in Patch requests.
16823	ForceSendFields []string `json:"-"`
16824
16825	// NullFields is a list of field names (e.g. "Key") to include in API
16826	// requests with the JSON null value. By default, fields with empty
16827	// values are omitted from API requests. However, any field with an
16828	// empty value appearing in NullFields will be sent to the server as
16829	// null. It is an error if a field in this list has a non-empty value.
16830	// This may be used to include null fields in Patch requests.
16831	NullFields []string `json:"-"`
16832}
16833
16834func (s *InstanceGroupManagerAggregatedListWarningData) MarshalJSON() ([]byte, error) {
16835	type NoMethod InstanceGroupManagerAggregatedListWarningData
16836	raw := NoMethod(*s)
16837	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16838}
16839
16840type InstanceGroupManagerAutoHealingPolicy struct {
16841	// HealthCheck: The URL for the health check that signals autohealing.
16842	HealthCheck string `json:"healthCheck,omitempty"`
16843
16844	// InitialDelaySec: The number of seconds that the managed instance
16845	// group waits before it applies autohealing policies to new instances
16846	// or recently recreated instances. This initial delay allows instances
16847	// to initialize and run their startup scripts before the instance group
16848	// determines that they are UNHEALTHY. This prevents the managed
16849	// instance group from recreating its instances prematurely. This value
16850	// must be from range [0, 3600].
16851	InitialDelaySec int64 `json:"initialDelaySec,omitempty"`
16852
16853	// ForceSendFields is a list of field names (e.g. "HealthCheck") to
16854	// unconditionally include in API requests. By default, fields with
16855	// empty values are omitted from API requests. However, any non-pointer,
16856	// non-interface field appearing in ForceSendFields will be sent to the
16857	// server regardless of whether the field is empty or not. This may be
16858	// used to include empty fields in Patch requests.
16859	ForceSendFields []string `json:"-"`
16860
16861	// NullFields is a list of field names (e.g. "HealthCheck") to include
16862	// in API requests with the JSON null value. By default, fields with
16863	// empty values are omitted from API requests. However, any field with
16864	// an empty value appearing in NullFields will be sent to the server as
16865	// null. It is an error if a field in this list has a non-empty value.
16866	// This may be used to include null fields in Patch requests.
16867	NullFields []string `json:"-"`
16868}
16869
16870func (s *InstanceGroupManagerAutoHealingPolicy) MarshalJSON() ([]byte, error) {
16871	type NoMethod InstanceGroupManagerAutoHealingPolicy
16872	raw := NoMethod(*s)
16873	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16874}
16875
16876// InstanceGroupManagerList: [Output Only] A list of managed instance
16877// groups.
16878type InstanceGroupManagerList struct {
16879	// Id: [Output Only] Unique identifier for the resource; defined by the
16880	// server.
16881	Id string `json:"id,omitempty"`
16882
16883	// Items: A list of InstanceGroupManager resources.
16884	Items []*InstanceGroupManager `json:"items,omitempty"`
16885
16886	// Kind: [Output Only] The resource type, which is always
16887	// compute#instanceGroupManagerList for a list of managed instance
16888	// groups.
16889	Kind string `json:"kind,omitempty"`
16890
16891	// NextPageToken: [Output Only] This token allows you to get the next
16892	// page of results for list requests. If the number of results is larger
16893	// than maxResults, use the nextPageToken as a value for the query
16894	// parameter pageToken in the next list request. Subsequent list
16895	// requests will have their own nextPageToken to continue paging through
16896	// the results.
16897	NextPageToken string `json:"nextPageToken,omitempty"`
16898
16899	// SelfLink: [Output Only] Server-defined URL for this resource.
16900	SelfLink string `json:"selfLink,omitempty"`
16901
16902	// Warning: [Output Only] Informational warning message.
16903	Warning *InstanceGroupManagerListWarning `json:"warning,omitempty"`
16904
16905	// ServerResponse contains the HTTP response code and headers from the
16906	// server.
16907	googleapi.ServerResponse `json:"-"`
16908
16909	// ForceSendFields is a list of field names (e.g. "Id") to
16910	// unconditionally include in API requests. By default, fields with
16911	// empty values are omitted from API requests. However, any non-pointer,
16912	// non-interface field appearing in ForceSendFields will be sent to the
16913	// server regardless of whether the field is empty or not. This may be
16914	// used to include empty fields in Patch requests.
16915	ForceSendFields []string `json:"-"`
16916
16917	// NullFields is a list of field names (e.g. "Id") to include in API
16918	// requests with the JSON null value. By default, fields with empty
16919	// values are omitted from API requests. However, any field with an
16920	// empty value appearing in NullFields will be sent to the server as
16921	// null. It is an error if a field in this list has a non-empty value.
16922	// This may be used to include null fields in Patch requests.
16923	NullFields []string `json:"-"`
16924}
16925
16926func (s *InstanceGroupManagerList) MarshalJSON() ([]byte, error) {
16927	type NoMethod InstanceGroupManagerList
16928	raw := NoMethod(*s)
16929	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16930}
16931
16932// InstanceGroupManagerListWarning: [Output Only] Informational warning
16933// message.
16934type InstanceGroupManagerListWarning struct {
16935	// Code: [Output Only] A warning code, if applicable. For example,
16936	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
16937	// the response.
16938	//
16939	// Possible values:
16940	//   "CLEANUP_FAILED"
16941	//   "DEPRECATED_RESOURCE_USED"
16942	//   "DEPRECATED_TYPE_USED"
16943	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
16944	//   "EXPERIMENTAL_TYPE_USED"
16945	//   "EXTERNAL_API_WARNING"
16946	//   "FIELD_VALUE_OVERRIDEN"
16947	//   "INJECTED_KERNELS_DEPRECATED"
16948	//   "LARGE_DEPLOYMENT_WARNING"
16949	//   "MISSING_TYPE_DEPENDENCY"
16950	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
16951	//   "NEXT_HOP_CANNOT_IP_FORWARD"
16952	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
16953	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
16954	//   "NEXT_HOP_NOT_RUNNING"
16955	//   "NOT_CRITICAL_ERROR"
16956	//   "NO_RESULTS_ON_PAGE"
16957	//   "PARTIAL_SUCCESS"
16958	//   "REQUIRED_TOS_AGREEMENT"
16959	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
16960	//   "RESOURCE_NOT_DELETED"
16961	//   "SCHEMA_VALIDATION_IGNORED"
16962	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
16963	//   "UNDECLARED_PROPERTIES"
16964	//   "UNREACHABLE"
16965	Code string `json:"code,omitempty"`
16966
16967	// Data: [Output Only] Metadata about this warning in key: value format.
16968	// For example:
16969	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
16970	Data []*InstanceGroupManagerListWarningData `json:"data,omitempty"`
16971
16972	// Message: [Output Only] A human-readable description of the warning
16973	// code.
16974	Message string `json:"message,omitempty"`
16975
16976	// ForceSendFields is a list of field names (e.g. "Code") to
16977	// unconditionally include in API requests. By default, fields with
16978	// empty values are omitted from API requests. However, any non-pointer,
16979	// non-interface field appearing in ForceSendFields will be sent to the
16980	// server regardless of whether the field is empty or not. This may be
16981	// used to include empty fields in Patch requests.
16982	ForceSendFields []string `json:"-"`
16983
16984	// NullFields is a list of field names (e.g. "Code") to include in API
16985	// requests with the JSON null value. By default, fields with empty
16986	// values are omitted from API requests. However, any field with an
16987	// empty value appearing in NullFields will be sent to the server as
16988	// null. It is an error if a field in this list has a non-empty value.
16989	// This may be used to include null fields in Patch requests.
16990	NullFields []string `json:"-"`
16991}
16992
16993func (s *InstanceGroupManagerListWarning) MarshalJSON() ([]byte, error) {
16994	type NoMethod InstanceGroupManagerListWarning
16995	raw := NoMethod(*s)
16996	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16997}
16998
16999type InstanceGroupManagerListWarningData struct {
17000	// Key: [Output Only] A key that provides more detail on the warning
17001	// being returned. For example, for warnings where there are no results
17002	// in a list request for a particular zone, this key might be scope and
17003	// the key value might be the zone name. Other examples might be a key
17004	// indicating a deprecated resource and a suggested replacement, or a
17005	// warning about invalid network settings (for example, if an instance
17006	// attempts to perform IP forwarding but is not enabled for IP
17007	// forwarding).
17008	Key string `json:"key,omitempty"`
17009
17010	// Value: [Output Only] A warning data value corresponding to the key.
17011	Value string `json:"value,omitempty"`
17012
17013	// ForceSendFields is a list of field names (e.g. "Key") to
17014	// unconditionally include in API requests. By default, fields with
17015	// empty values are omitted from API requests. However, any non-pointer,
17016	// non-interface field appearing in ForceSendFields will be sent to the
17017	// server regardless of whether the field is empty or not. This may be
17018	// used to include empty fields in Patch requests.
17019	ForceSendFields []string `json:"-"`
17020
17021	// NullFields is a list of field names (e.g. "Key") to include in API
17022	// requests with the JSON null value. By default, fields with empty
17023	// values are omitted from API requests. However, any field with an
17024	// empty value appearing in NullFields will be sent to the server as
17025	// null. It is an error if a field in this list has a non-empty value.
17026	// This may be used to include null fields in Patch requests.
17027	NullFields []string `json:"-"`
17028}
17029
17030func (s *InstanceGroupManagerListWarningData) MarshalJSON() ([]byte, error) {
17031	type NoMethod InstanceGroupManagerListWarningData
17032	raw := NoMethod(*s)
17033	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17034}
17035
17036type InstanceGroupManagerStatus struct {
17037	// Autoscaler: [Output Only] The URL of the Autoscaler that targets this
17038	// instance group manager.
17039	Autoscaler string `json:"autoscaler,omitempty"`
17040
17041	// IsStable: [Output Only] A bit indicating whether the managed instance
17042	// group is in a stable state. A stable state means that: none of the
17043	// instances in the managed instance group is currently undergoing any
17044	// type of change (for example, creation, restart, or deletion); no
17045	// future changes are scheduled for instances in the managed instance
17046	// group; and the managed instance group itself is not being modified.
17047	IsStable bool `json:"isStable,omitempty"`
17048
17049	// Stateful: [Output Only] Stateful status of the given Instance Group
17050	// Manager.
17051	Stateful *InstanceGroupManagerStatusStateful `json:"stateful,omitempty"`
17052
17053	// VersionTarget: [Output Only] A status of consistency of Instances'
17054	// versions with their target version specified by version field on
17055	// Instance Group Manager.
17056	VersionTarget *InstanceGroupManagerStatusVersionTarget `json:"versionTarget,omitempty"`
17057
17058	// ForceSendFields is a list of field names (e.g. "Autoscaler") to
17059	// unconditionally include in API requests. By default, fields with
17060	// empty values are omitted from API requests. However, any non-pointer,
17061	// non-interface field appearing in ForceSendFields will be sent to the
17062	// server regardless of whether the field is empty or not. This may be
17063	// used to include empty fields in Patch requests.
17064	ForceSendFields []string `json:"-"`
17065
17066	// NullFields is a list of field names (e.g. "Autoscaler") to include in
17067	// API requests with the JSON null value. By default, fields with empty
17068	// values are omitted from API requests. However, any field with an
17069	// empty value appearing in NullFields will be sent to the server as
17070	// null. It is an error if a field in this list has a non-empty value.
17071	// This may be used to include null fields in Patch requests.
17072	NullFields []string `json:"-"`
17073}
17074
17075func (s *InstanceGroupManagerStatus) MarshalJSON() ([]byte, error) {
17076	type NoMethod InstanceGroupManagerStatus
17077	raw := NoMethod(*s)
17078	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17079}
17080
17081type InstanceGroupManagerStatusStateful struct {
17082	// HasStatefulConfig: [Output Only] A bit indicating whether the managed
17083	// instance group has stateful configuration, that is, if you have
17084	// configured any items in a stateful policy or in per-instance configs.
17085	// The group might report that it has no stateful config even when there
17086	// is still some preserved state on a managed instance, for example, if
17087	// you have deleted all PICs but not yet applied those deletions.
17088	HasStatefulConfig bool `json:"hasStatefulConfig,omitempty"`
17089
17090	// IsStateful: [Output Only] A bit indicating whether the managed
17091	// instance group has stateful configuration, that is, if you have
17092	// configured any items in a stateful policy or in per-instance configs.
17093	// The group might report that it has no stateful config even when there
17094	// is still some preserved state on a managed instance, for example, if
17095	// you have deleted all PICs but not yet applied those deletions. This
17096	// field is deprecated in favor of has_stateful_config.
17097	IsStateful bool `json:"isStateful,omitempty"`
17098
17099	// PerInstanceConfigs: [Output Only] Status of per-instance configs on
17100	// the instance.
17101	PerInstanceConfigs *InstanceGroupManagerStatusStatefulPerInstanceConfigs `json:"perInstanceConfigs,omitempty"`
17102
17103	// ForceSendFields is a list of field names (e.g. "HasStatefulConfig")
17104	// to unconditionally include in API requests. By default, fields with
17105	// empty values are omitted from API requests. However, any non-pointer,
17106	// non-interface field appearing in ForceSendFields will be sent to the
17107	// server regardless of whether the field is empty or not. This may be
17108	// used to include empty fields in Patch requests.
17109	ForceSendFields []string `json:"-"`
17110
17111	// NullFields is a list of field names (e.g. "HasStatefulConfig") to
17112	// include in API requests with the JSON null value. By default, fields
17113	// with empty values are omitted from API requests. However, any field
17114	// with an empty value appearing in NullFields will be sent to the
17115	// server as null. It is an error if a field in this list has a
17116	// non-empty value. This may be used to include null fields in Patch
17117	// requests.
17118	NullFields []string `json:"-"`
17119}
17120
17121func (s *InstanceGroupManagerStatusStateful) MarshalJSON() ([]byte, error) {
17122	type NoMethod InstanceGroupManagerStatusStateful
17123	raw := NoMethod(*s)
17124	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17125}
17126
17127type InstanceGroupManagerStatusStatefulPerInstanceConfigs struct {
17128	// AllEffective: A bit indicating if all of the group's per-instance
17129	// configs (listed in the output of a listPerInstanceConfigs API call)
17130	// have status EFFECTIVE or there are no per-instance-configs.
17131	AllEffective bool `json:"allEffective,omitempty"`
17132
17133	// ForceSendFields is a list of field names (e.g. "AllEffective") to
17134	// unconditionally include in API requests. By default, fields with
17135	// empty values are omitted from API requests. However, any non-pointer,
17136	// non-interface field appearing in ForceSendFields will be sent to the
17137	// server regardless of whether the field is empty or not. This may be
17138	// used to include empty fields in Patch requests.
17139	ForceSendFields []string `json:"-"`
17140
17141	// NullFields is a list of field names (e.g. "AllEffective") to include
17142	// in API requests with the JSON null value. By default, fields with
17143	// empty values are omitted from API requests. However, any field with
17144	// an empty value appearing in NullFields will be sent to the server as
17145	// null. It is an error if a field in this list has a non-empty value.
17146	// This may be used to include null fields in Patch requests.
17147	NullFields []string `json:"-"`
17148}
17149
17150func (s *InstanceGroupManagerStatusStatefulPerInstanceConfigs) MarshalJSON() ([]byte, error) {
17151	type NoMethod InstanceGroupManagerStatusStatefulPerInstanceConfigs
17152	raw := NoMethod(*s)
17153	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17154}
17155
17156type InstanceGroupManagerStatusVersionTarget struct {
17157	// IsReached: [Output Only] A bit indicating whether version target has
17158	// been reached in this managed instance group, i.e. all instances are
17159	// in their target version. Instances' target version are specified by
17160	// version field on Instance Group Manager.
17161	IsReached bool `json:"isReached,omitempty"`
17162
17163	// ForceSendFields is a list of field names (e.g. "IsReached") to
17164	// unconditionally include in API requests. By default, fields with
17165	// empty values are omitted from API requests. However, any non-pointer,
17166	// non-interface field appearing in ForceSendFields will be sent to the
17167	// server regardless of whether the field is empty or not. This may be
17168	// used to include empty fields in Patch requests.
17169	ForceSendFields []string `json:"-"`
17170
17171	// NullFields is a list of field names (e.g. "IsReached") to include in
17172	// API requests with the JSON null value. By default, fields with empty
17173	// values are omitted from API requests. However, any field with an
17174	// empty value appearing in NullFields will be sent to the server as
17175	// null. It is an error if a field in this list has a non-empty value.
17176	// This may be used to include null fields in Patch requests.
17177	NullFields []string `json:"-"`
17178}
17179
17180func (s *InstanceGroupManagerStatusVersionTarget) MarshalJSON() ([]byte, error) {
17181	type NoMethod InstanceGroupManagerStatusVersionTarget
17182	raw := NoMethod(*s)
17183	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17184}
17185
17186type InstanceGroupManagerUpdatePolicy struct {
17187	// InstanceRedistributionType: The  instance redistribution policy for
17188	// regional managed instance groups. Valid values are:
17189	// - PROACTIVE (default): The group attempts to maintain an even
17190	// distribution of VM instances across zones in the region.
17191	// - NONE: For non-autoscaled groups, proactive redistribution is
17192	// disabled.
17193	//
17194	// Possible values:
17195	//   "NONE"
17196	//   "PROACTIVE"
17197	InstanceRedistributionType string `json:"instanceRedistributionType,omitempty"`
17198
17199	// MaxSurge: The maximum number of instances that can be created above
17200	// the specified targetSize during the update process. This value can be
17201	// either a fixed number or, if the group has 10 or more instances, a
17202	// percentage. If you set a percentage, the number of instances is
17203	// rounded up if necessary. The default value for maxSurge is a fixed
17204	// value equal to the number of zones in which the managed instance
17205	// group operates.
17206	//
17207	// At least one of either maxSurge or maxUnavailable must be greater
17208	// than 0. Learn more about maxSurge.
17209	MaxSurge *FixedOrPercent `json:"maxSurge,omitempty"`
17210
17211	// MaxUnavailable: The maximum number of instances that can be
17212	// unavailable during the update process. An instance is considered
17213	// available if all of the following conditions are satisfied:
17214	//
17215	//
17216	// - The instance's status is RUNNING.
17217	// - If there is a health check on the instance group, the instance's
17218	// health check status must be HEALTHY at least once. If there is no
17219	// health check on the group, then the instance only needs to have a
17220	// status of RUNNING to be considered available.  This value can be
17221	// either a fixed number or, if the group has 10 or more instances, a
17222	// percentage. If you set a percentage, the number of instances is
17223	// rounded up if necessary. The default value for maxUnavailable is a
17224	// fixed value equal to the number of zones in which the managed
17225	// instance group operates.
17226	//
17227	// At least one of either maxSurge or maxUnavailable must be greater
17228	// than 0. Learn more about maxUnavailable.
17229	MaxUnavailable *FixedOrPercent `json:"maxUnavailable,omitempty"`
17230
17231	// MinReadySec: Minimum number of seconds to wait for after a newly
17232	// created instance becomes available. This value must be from range [0,
17233	// 3600].
17234	MinReadySec int64 `json:"minReadySec,omitempty"`
17235
17236	// MinimalAction: Minimal action to be taken on an instance. You can
17237	// specify either RESTART to restart existing instances or REPLACE to
17238	// delete and create new instances from the target template. If you
17239	// specify a RESTART, the Updater will attempt to perform that action
17240	// only. However, if the Updater determines that the minimal action you
17241	// specify is not enough to perform the update, it might perform a more
17242	// disruptive action.
17243	//
17244	// Possible values:
17245	//   "NONE"
17246	//   "REFRESH"
17247	//   "REPLACE"
17248	//   "RESTART"
17249	MinimalAction string `json:"minimalAction,omitempty"`
17250
17251	// ReplacementMethod: What action should be used to replace instances.
17252	// See minimal_action.REPLACE
17253	//
17254	// Possible values:
17255	//   "RECREATE"
17256	//   "SUBSTITUTE"
17257	ReplacementMethod string `json:"replacementMethod,omitempty"`
17258
17259	// Type: The type of update process. You can specify either PROACTIVE so
17260	// that the instance group manager proactively executes actions in order
17261	// to bring instances to their target versions or OPPORTUNISTIC so that
17262	// no action is proactively executed but the update will be performed as
17263	// part of other actions (for example, resizes or recreateInstances
17264	// calls).
17265	//
17266	// Possible values:
17267	//   "OPPORTUNISTIC"
17268	//   "PROACTIVE"
17269	Type string `json:"type,omitempty"`
17270
17271	// ForceSendFields is a list of field names (e.g.
17272	// "InstanceRedistributionType") to unconditionally include in API
17273	// requests. By default, fields with empty values are omitted from API
17274	// requests. However, any non-pointer, non-interface field appearing in
17275	// ForceSendFields will be sent to the server regardless of whether the
17276	// field is empty or not. This may be used to include empty fields in
17277	// Patch requests.
17278	ForceSendFields []string `json:"-"`
17279
17280	// NullFields is a list of field names (e.g.
17281	// "InstanceRedistributionType") to include in API requests with the
17282	// JSON null value. By default, fields with empty values are omitted
17283	// from API requests. However, any field with an empty value appearing
17284	// in NullFields will be sent to the server as null. It is an error if a
17285	// field in this list has a non-empty value. This may be used to include
17286	// null fields in Patch requests.
17287	NullFields []string `json:"-"`
17288}
17289
17290func (s *InstanceGroupManagerUpdatePolicy) MarshalJSON() ([]byte, error) {
17291	type NoMethod InstanceGroupManagerUpdatePolicy
17292	raw := NoMethod(*s)
17293	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17294}
17295
17296type InstanceGroupManagerVersion struct {
17297	// InstanceTemplate: The URL of the instance template that is specified
17298	// for this managed instance group. The group uses this template to
17299	// create new instances in the managed instance group until the
17300	// `targetSize` for this version is reached. The templates for existing
17301	// instances in the group do not change unless you run
17302	// recreateInstances, run applyUpdatesToInstances, or set the group's
17303	// updatePolicy.type to PROACTIVE; in those cases, existing instances
17304	// are updated until the `targetSize` for this version is reached.
17305	InstanceTemplate string `json:"instanceTemplate,omitempty"`
17306
17307	// Name: Name of the version. Unique among all versions in the scope of
17308	// this managed instance group.
17309	Name string `json:"name,omitempty"`
17310
17311	// TargetSize: Specifies the intended number of instances to be created
17312	// from the instanceTemplate. The final number of instances created from
17313	// the template will be equal to:
17314	// - If expressed as a fixed number, the minimum of either
17315	// targetSize.fixed or instanceGroupManager.targetSize is used.
17316	// - if expressed as a percent, the targetSize would be
17317	// (targetSize.percent/100 * InstanceGroupManager.targetSize) If there
17318	// is a remainder, the number is rounded up.  If unset, this version
17319	// will update any remaining instances not updated by another version.
17320	// Read Starting a canary update for more information.
17321	TargetSize *FixedOrPercent `json:"targetSize,omitempty"`
17322
17323	// ForceSendFields is a list of field names (e.g. "InstanceTemplate") to
17324	// unconditionally include in API requests. By default, fields with
17325	// empty values are omitted from API requests. However, any non-pointer,
17326	// non-interface field appearing in ForceSendFields will be sent to the
17327	// server regardless of whether the field is empty or not. This may be
17328	// used to include empty fields in Patch requests.
17329	ForceSendFields []string `json:"-"`
17330
17331	// NullFields is a list of field names (e.g. "InstanceTemplate") to
17332	// include in API requests with the JSON null value. By default, fields
17333	// with empty values are omitted from API requests. However, any field
17334	// with an empty value appearing in NullFields will be sent to the
17335	// server as null. It is an error if a field in this list has a
17336	// non-empty value. This may be used to include null fields in Patch
17337	// requests.
17338	NullFields []string `json:"-"`
17339}
17340
17341func (s *InstanceGroupManagerVersion) MarshalJSON() ([]byte, error) {
17342	type NoMethod InstanceGroupManagerVersion
17343	raw := NoMethod(*s)
17344	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17345}
17346
17347type InstanceGroupManagersAbandonInstancesRequest struct {
17348	// Instances: The URLs of one or more instances to abandon. This can be
17349	// a full URL or a partial URL, such as
17350	// zones/[ZONE]/instances/[INSTANCE_NAME].
17351	Instances []string `json:"instances,omitempty"`
17352
17353	// ForceSendFields is a list of field names (e.g. "Instances") to
17354	// unconditionally include in API requests. By default, fields with
17355	// empty values are omitted from API requests. However, any non-pointer,
17356	// non-interface field appearing in ForceSendFields will be sent to the
17357	// server regardless of whether the field is empty or not. This may be
17358	// used to include empty fields in Patch requests.
17359	ForceSendFields []string `json:"-"`
17360
17361	// NullFields is a list of field names (e.g. "Instances") to include in
17362	// API requests with the JSON null value. By default, fields with empty
17363	// values are omitted from API requests. However, any field with an
17364	// empty value appearing in NullFields will be sent to the server as
17365	// null. It is an error if a field in this list has a non-empty value.
17366	// This may be used to include null fields in Patch requests.
17367	NullFields []string `json:"-"`
17368}
17369
17370func (s *InstanceGroupManagersAbandonInstancesRequest) MarshalJSON() ([]byte, error) {
17371	type NoMethod InstanceGroupManagersAbandonInstancesRequest
17372	raw := NoMethod(*s)
17373	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17374}
17375
17376// InstanceGroupManagersApplyUpdatesRequest:
17377// InstanceGroupManagers.applyUpdatesToInstances
17378type InstanceGroupManagersApplyUpdatesRequest struct {
17379	// AllInstances: Flag to update all instances instead of specified list
17380	// of ?instances?. If the flag is set to true then the instances may not
17381	// be specified in the request.
17382	AllInstances bool `json:"allInstances,omitempty"`
17383
17384	// Instances: The list of URLs of one or more instances for which you
17385	// want to apply updates. Each URL can be a full URL or a partial URL,
17386	// such as zones/[ZONE]/instances/[INSTANCE_NAME].
17387	Instances []string `json:"instances,omitempty"`
17388
17389	// MinimalAction: The minimal action that you want to perform on each
17390	// instance during the update:
17391	// - REPLACE: At minimum, delete the instance and create it again.
17392	// - RESTART: Stop the instance and start it again.
17393	// - REFRESH: Do not stop the instance.
17394	// - NONE: Do not disrupt the instance at all.  By default, the minimum
17395	// action is NONE. If your update requires a more disruptive action than
17396	// you set with this flag, the necessary action is performed to execute
17397	// the update.
17398	//
17399	// Possible values:
17400	//   "NONE"
17401	//   "REFRESH"
17402	//   "REPLACE"
17403	//   "RESTART"
17404	MinimalAction string `json:"minimalAction,omitempty"`
17405
17406	// MostDisruptiveAllowedAction: The most disruptive action that you want
17407	// to perform on each instance during the update:
17408	// - REPLACE: Delete the instance and create it again.
17409	// - RESTART: Stop the instance and start it again.
17410	// - REFRESH: Do not stop the instance.
17411	// - NONE: Do not disrupt the instance at all.  By default, the most
17412	// disruptive allowed action is REPLACE. If your update requires a more
17413	// disruptive action than you set with this flag, the update request
17414	// will fail.
17415	//
17416	// Possible values:
17417	//   "NONE"
17418	//   "REFRESH"
17419	//   "REPLACE"
17420	//   "RESTART"
17421	MostDisruptiveAllowedAction string `json:"mostDisruptiveAllowedAction,omitempty"`
17422
17423	// ForceSendFields is a list of field names (e.g. "AllInstances") to
17424	// unconditionally include in API requests. By default, fields with
17425	// empty values are omitted from API requests. However, any non-pointer,
17426	// non-interface field appearing in ForceSendFields will be sent to the
17427	// server regardless of whether the field is empty or not. This may be
17428	// used to include empty fields in Patch requests.
17429	ForceSendFields []string `json:"-"`
17430
17431	// NullFields is a list of field names (e.g. "AllInstances") to include
17432	// in API requests with the JSON null value. By default, fields with
17433	// empty values are omitted from API requests. However, any field with
17434	// an empty value appearing in NullFields will be sent to the server as
17435	// null. It is an error if a field in this list has a non-empty value.
17436	// This may be used to include null fields in Patch requests.
17437	NullFields []string `json:"-"`
17438}
17439
17440func (s *InstanceGroupManagersApplyUpdatesRequest) MarshalJSON() ([]byte, error) {
17441	type NoMethod InstanceGroupManagersApplyUpdatesRequest
17442	raw := NoMethod(*s)
17443	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17444}
17445
17446// InstanceGroupManagersCreateInstancesRequest:
17447// InstanceGroupManagers.createInstances
17448type InstanceGroupManagersCreateInstancesRequest struct {
17449	// Instances: [Required] List of specifications of per-instance configs.
17450	Instances []*PerInstanceConfig `json:"instances,omitempty"`
17451
17452	// ForceSendFields is a list of field names (e.g. "Instances") to
17453	// unconditionally include in API requests. By default, fields with
17454	// empty values are omitted from API requests. However, any non-pointer,
17455	// non-interface field appearing in ForceSendFields will be sent to the
17456	// server regardless of whether the field is empty or not. This may be
17457	// used to include empty fields in Patch requests.
17458	ForceSendFields []string `json:"-"`
17459
17460	// NullFields is a list of field names (e.g. "Instances") to include in
17461	// API requests with the JSON null value. By default, fields with empty
17462	// values are omitted from API requests. However, any field with an
17463	// empty value appearing in NullFields will be sent to the server as
17464	// null. It is an error if a field in this list has a non-empty value.
17465	// This may be used to include null fields in Patch requests.
17466	NullFields []string `json:"-"`
17467}
17468
17469func (s *InstanceGroupManagersCreateInstancesRequest) MarshalJSON() ([]byte, error) {
17470	type NoMethod InstanceGroupManagersCreateInstancesRequest
17471	raw := NoMethod(*s)
17472	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17473}
17474
17475type InstanceGroupManagersDeleteInstancesRequest struct {
17476	// Instances: The URLs of one or more instances to delete. This can be a
17477	// full URL or a partial URL, such as
17478	// zones/[ZONE]/instances/[INSTANCE_NAME].
17479	Instances []string `json:"instances,omitempty"`
17480
17481	// ForceSendFields is a list of field names (e.g. "Instances") to
17482	// unconditionally include in API requests. By default, fields with
17483	// empty values are omitted from API requests. However, any non-pointer,
17484	// non-interface field appearing in ForceSendFields will be sent to the
17485	// server regardless of whether the field is empty or not. This may be
17486	// used to include empty fields in Patch requests.
17487	ForceSendFields []string `json:"-"`
17488
17489	// NullFields is a list of field names (e.g. "Instances") to include in
17490	// API requests with the JSON null value. By default, fields with empty
17491	// values are omitted from API requests. However, any field with an
17492	// empty value appearing in NullFields will be sent to the server as
17493	// null. It is an error if a field in this list has a non-empty value.
17494	// This may be used to include null fields in Patch requests.
17495	NullFields []string `json:"-"`
17496}
17497
17498func (s *InstanceGroupManagersDeleteInstancesRequest) MarshalJSON() ([]byte, error) {
17499	type NoMethod InstanceGroupManagersDeleteInstancesRequest
17500	raw := NoMethod(*s)
17501	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17502}
17503
17504// InstanceGroupManagersDeletePerInstanceConfigsReq:
17505// InstanceGroupManagers.deletePerInstanceConfigs
17506type InstanceGroupManagersDeletePerInstanceConfigsReq struct {
17507	// Names: The list of instance names for which we want to delete
17508	// per-instance configs on this managed instance group.
17509	Names []string `json:"names,omitempty"`
17510
17511	// ForceSendFields is a list of field names (e.g. "Names") to
17512	// unconditionally include in API requests. By default, fields with
17513	// empty values are omitted from API requests. However, any non-pointer,
17514	// non-interface field appearing in ForceSendFields will be sent to the
17515	// server regardless of whether the field is empty or not. This may be
17516	// used to include empty fields in Patch requests.
17517	ForceSendFields []string `json:"-"`
17518
17519	// NullFields is a list of field names (e.g. "Names") to include in API
17520	// requests with the JSON null value. By default, fields with empty
17521	// values are omitted from API requests. However, any field with an
17522	// empty value appearing in NullFields will be sent to the server as
17523	// null. It is an error if a field in this list has a non-empty value.
17524	// This may be used to include null fields in Patch requests.
17525	NullFields []string `json:"-"`
17526}
17527
17528func (s *InstanceGroupManagersDeletePerInstanceConfigsReq) MarshalJSON() ([]byte, error) {
17529	type NoMethod InstanceGroupManagersDeletePerInstanceConfigsReq
17530	raw := NoMethod(*s)
17531	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17532}
17533
17534type InstanceGroupManagersListErrorsResponse struct {
17535	// Items: [Output Only] The list of errors of the managed instance
17536	// group.
17537	Items []*InstanceManagedByIgmError `json:"items,omitempty"`
17538
17539	// NextPageToken: [Output Only] This token allows you to get the next
17540	// page of results for list requests. If the number of results is larger
17541	// than maxResults, use the nextPageToken as a value for the query
17542	// parameter pageToken in the next list request. Subsequent list
17543	// requests will have their own nextPageToken to continue paging through
17544	// the results.
17545	NextPageToken string `json:"nextPageToken,omitempty"`
17546
17547	// ServerResponse contains the HTTP response code and headers from the
17548	// server.
17549	googleapi.ServerResponse `json:"-"`
17550
17551	// ForceSendFields is a list of field names (e.g. "Items") to
17552	// unconditionally include in API requests. By default, fields with
17553	// empty values are omitted from API requests. However, any non-pointer,
17554	// non-interface field appearing in ForceSendFields will be sent to the
17555	// server regardless of whether the field is empty or not. This may be
17556	// used to include empty fields in Patch requests.
17557	ForceSendFields []string `json:"-"`
17558
17559	// NullFields is a list of field names (e.g. "Items") to include in API
17560	// requests with the JSON null value. By default, fields with empty
17561	// values are omitted from API requests. However, any field with an
17562	// empty value appearing in NullFields will be sent to the server as
17563	// null. It is an error if a field in this list has a non-empty value.
17564	// This may be used to include null fields in Patch requests.
17565	NullFields []string `json:"-"`
17566}
17567
17568func (s *InstanceGroupManagersListErrorsResponse) MarshalJSON() ([]byte, error) {
17569	type NoMethod InstanceGroupManagersListErrorsResponse
17570	raw := NoMethod(*s)
17571	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17572}
17573
17574type InstanceGroupManagersListManagedInstancesResponse struct {
17575	// ManagedInstances: [Output Only] The list of instances in the managed
17576	// instance group.
17577	ManagedInstances []*ManagedInstance `json:"managedInstances,omitempty"`
17578
17579	// NextPageToken: [Output Only] This token allows you to get the next
17580	// page of results for list requests. If the number of results is larger
17581	// than maxResults, use the nextPageToken as a value for the query
17582	// parameter pageToken in the next list request. Subsequent list
17583	// requests will have their own nextPageToken to continue paging through
17584	// the results.
17585	NextPageToken string `json:"nextPageToken,omitempty"`
17586
17587	// ServerResponse contains the HTTP response code and headers from the
17588	// server.
17589	googleapi.ServerResponse `json:"-"`
17590
17591	// ForceSendFields is a list of field names (e.g. "ManagedInstances") to
17592	// unconditionally include in API requests. By default, fields with
17593	// empty values are omitted from API requests. However, any non-pointer,
17594	// non-interface field appearing in ForceSendFields will be sent to the
17595	// server regardless of whether the field is empty or not. This may be
17596	// used to include empty fields in Patch requests.
17597	ForceSendFields []string `json:"-"`
17598
17599	// NullFields is a list of field names (e.g. "ManagedInstances") to
17600	// include in API requests with the JSON null value. By default, fields
17601	// with empty values are omitted from API requests. However, any field
17602	// with an empty value appearing in NullFields will be sent to the
17603	// server as null. It is an error if a field in this list has a
17604	// non-empty value. This may be used to include null fields in Patch
17605	// requests.
17606	NullFields []string `json:"-"`
17607}
17608
17609func (s *InstanceGroupManagersListManagedInstancesResponse) MarshalJSON() ([]byte, error) {
17610	type NoMethod InstanceGroupManagersListManagedInstancesResponse
17611	raw := NoMethod(*s)
17612	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17613}
17614
17615type InstanceGroupManagersListPerInstanceConfigsResp struct {
17616	// Items: [Output Only] The list of PerInstanceConfig.
17617	Items []*PerInstanceConfig `json:"items,omitempty"`
17618
17619	// NextPageToken: [Output Only] This token allows you to get the next
17620	// page of results for list requests. If the number of results is larger
17621	// than maxResults, use the nextPageToken as a value for the query
17622	// parameter pageToken in the next list request. Subsequent list
17623	// requests will have their own nextPageToken to continue paging through
17624	// the results.
17625	NextPageToken string `json:"nextPageToken,omitempty"`
17626
17627	// Warning: [Output Only] Informational warning message.
17628	Warning *InstanceGroupManagersListPerInstanceConfigsRespWarning `json:"warning,omitempty"`
17629
17630	// ServerResponse contains the HTTP response code and headers from the
17631	// server.
17632	googleapi.ServerResponse `json:"-"`
17633
17634	// ForceSendFields is a list of field names (e.g. "Items") to
17635	// unconditionally include in API requests. By default, fields with
17636	// empty values are omitted from API requests. However, any non-pointer,
17637	// non-interface field appearing in ForceSendFields will be sent to the
17638	// server regardless of whether the field is empty or not. This may be
17639	// used to include empty fields in Patch requests.
17640	ForceSendFields []string `json:"-"`
17641
17642	// NullFields is a list of field names (e.g. "Items") to include in API
17643	// requests with the JSON null value. By default, fields with empty
17644	// values are omitted from API requests. However, any field with an
17645	// empty value appearing in NullFields will be sent to the server as
17646	// null. It is an error if a field in this list has a non-empty value.
17647	// This may be used to include null fields in Patch requests.
17648	NullFields []string `json:"-"`
17649}
17650
17651func (s *InstanceGroupManagersListPerInstanceConfigsResp) MarshalJSON() ([]byte, error) {
17652	type NoMethod InstanceGroupManagersListPerInstanceConfigsResp
17653	raw := NoMethod(*s)
17654	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17655}
17656
17657// InstanceGroupManagersListPerInstanceConfigsRespWarning: [Output Only]
17658// Informational warning message.
17659type InstanceGroupManagersListPerInstanceConfigsRespWarning struct {
17660	// Code: [Output Only] A warning code, if applicable. For example,
17661	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
17662	// the response.
17663	//
17664	// Possible values:
17665	//   "CLEANUP_FAILED"
17666	//   "DEPRECATED_RESOURCE_USED"
17667	//   "DEPRECATED_TYPE_USED"
17668	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
17669	//   "EXPERIMENTAL_TYPE_USED"
17670	//   "EXTERNAL_API_WARNING"
17671	//   "FIELD_VALUE_OVERRIDEN"
17672	//   "INJECTED_KERNELS_DEPRECATED"
17673	//   "LARGE_DEPLOYMENT_WARNING"
17674	//   "MISSING_TYPE_DEPENDENCY"
17675	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
17676	//   "NEXT_HOP_CANNOT_IP_FORWARD"
17677	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
17678	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
17679	//   "NEXT_HOP_NOT_RUNNING"
17680	//   "NOT_CRITICAL_ERROR"
17681	//   "NO_RESULTS_ON_PAGE"
17682	//   "PARTIAL_SUCCESS"
17683	//   "REQUIRED_TOS_AGREEMENT"
17684	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
17685	//   "RESOURCE_NOT_DELETED"
17686	//   "SCHEMA_VALIDATION_IGNORED"
17687	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
17688	//   "UNDECLARED_PROPERTIES"
17689	//   "UNREACHABLE"
17690	Code string `json:"code,omitempty"`
17691
17692	// Data: [Output Only] Metadata about this warning in key: value format.
17693	// For example:
17694	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
17695	Data []*InstanceGroupManagersListPerInstanceConfigsRespWarningData `json:"data,omitempty"`
17696
17697	// Message: [Output Only] A human-readable description of the warning
17698	// code.
17699	Message string `json:"message,omitempty"`
17700
17701	// ForceSendFields is a list of field names (e.g. "Code") to
17702	// unconditionally include in API requests. By default, fields with
17703	// empty values are omitted from API requests. However, any non-pointer,
17704	// non-interface field appearing in ForceSendFields will be sent to the
17705	// server regardless of whether the field is empty or not. This may be
17706	// used to include empty fields in Patch requests.
17707	ForceSendFields []string `json:"-"`
17708
17709	// NullFields is a list of field names (e.g. "Code") to include in API
17710	// requests with the JSON null value. By default, fields with empty
17711	// values are omitted from API requests. However, any field with an
17712	// empty value appearing in NullFields will be sent to the server as
17713	// null. It is an error if a field in this list has a non-empty value.
17714	// This may be used to include null fields in Patch requests.
17715	NullFields []string `json:"-"`
17716}
17717
17718func (s *InstanceGroupManagersListPerInstanceConfigsRespWarning) MarshalJSON() ([]byte, error) {
17719	type NoMethod InstanceGroupManagersListPerInstanceConfigsRespWarning
17720	raw := NoMethod(*s)
17721	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17722}
17723
17724type InstanceGroupManagersListPerInstanceConfigsRespWarningData struct {
17725	// Key: [Output Only] A key that provides more detail on the warning
17726	// being returned. For example, for warnings where there are no results
17727	// in a list request for a particular zone, this key might be scope and
17728	// the key value might be the zone name. Other examples might be a key
17729	// indicating a deprecated resource and a suggested replacement, or a
17730	// warning about invalid network settings (for example, if an instance
17731	// attempts to perform IP forwarding but is not enabled for IP
17732	// forwarding).
17733	Key string `json:"key,omitempty"`
17734
17735	// Value: [Output Only] A warning data value corresponding to the key.
17736	Value string `json:"value,omitempty"`
17737
17738	// ForceSendFields is a list of field names (e.g. "Key") to
17739	// unconditionally include in API requests. By default, fields with
17740	// empty values are omitted from API requests. However, any non-pointer,
17741	// non-interface field appearing in ForceSendFields will be sent to the
17742	// server regardless of whether the field is empty or not. This may be
17743	// used to include empty fields in Patch requests.
17744	ForceSendFields []string `json:"-"`
17745
17746	// NullFields is a list of field names (e.g. "Key") to include in API
17747	// requests with the JSON null value. By default, fields with empty
17748	// values are omitted from API requests. However, any field with an
17749	// empty value appearing in NullFields will be sent to the server as
17750	// null. It is an error if a field in this list has a non-empty value.
17751	// This may be used to include null fields in Patch requests.
17752	NullFields []string `json:"-"`
17753}
17754
17755func (s *InstanceGroupManagersListPerInstanceConfigsRespWarningData) MarshalJSON() ([]byte, error) {
17756	type NoMethod InstanceGroupManagersListPerInstanceConfigsRespWarningData
17757	raw := NoMethod(*s)
17758	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17759}
17760
17761// InstanceGroupManagersPatchPerInstanceConfigsReq:
17762// InstanceGroupManagers.patchPerInstanceConfigs
17763type InstanceGroupManagersPatchPerInstanceConfigsReq struct {
17764	// PerInstanceConfigs: The list of per-instance configs to insert or
17765	// patch on this managed instance group.
17766	PerInstanceConfigs []*PerInstanceConfig `json:"perInstanceConfigs,omitempty"`
17767
17768	// ForceSendFields is a list of field names (e.g. "PerInstanceConfigs")
17769	// to unconditionally include in API requests. By default, fields with
17770	// empty values are omitted from API requests. However, any non-pointer,
17771	// non-interface field appearing in ForceSendFields will be sent to the
17772	// server regardless of whether the field is empty or not. This may be
17773	// used to include empty fields in Patch requests.
17774	ForceSendFields []string `json:"-"`
17775
17776	// NullFields is a list of field names (e.g. "PerInstanceConfigs") to
17777	// include in API requests with the JSON null value. By default, fields
17778	// with empty values are omitted from API requests. However, any field
17779	// with an empty value appearing in NullFields will be sent to the
17780	// server as null. It is an error if a field in this list has a
17781	// non-empty value. This may be used to include null fields in Patch
17782	// requests.
17783	NullFields []string `json:"-"`
17784}
17785
17786func (s *InstanceGroupManagersPatchPerInstanceConfigsReq) MarshalJSON() ([]byte, error) {
17787	type NoMethod InstanceGroupManagersPatchPerInstanceConfigsReq
17788	raw := NoMethod(*s)
17789	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17790}
17791
17792type InstanceGroupManagersRecreateInstancesRequest struct {
17793	// Instances: The URLs of one or more instances to recreate. This can be
17794	// a full URL or a partial URL, such as
17795	// zones/[ZONE]/instances/[INSTANCE_NAME].
17796	Instances []string `json:"instances,omitempty"`
17797
17798	// ForceSendFields is a list of field names (e.g. "Instances") to
17799	// unconditionally include in API requests. By default, fields with
17800	// empty values are omitted from API requests. However, any non-pointer,
17801	// non-interface field appearing in ForceSendFields will be sent to the
17802	// server regardless of whether the field is empty or not. This may be
17803	// used to include empty fields in Patch requests.
17804	ForceSendFields []string `json:"-"`
17805
17806	// NullFields is a list of field names (e.g. "Instances") to include in
17807	// API requests with the JSON null value. By default, fields with empty
17808	// values are omitted from API requests. However, any field with an
17809	// empty value appearing in NullFields will be sent to the server as
17810	// null. It is an error if a field in this list has a non-empty value.
17811	// This may be used to include null fields in Patch requests.
17812	NullFields []string `json:"-"`
17813}
17814
17815func (s *InstanceGroupManagersRecreateInstancesRequest) MarshalJSON() ([]byte, error) {
17816	type NoMethod InstanceGroupManagersRecreateInstancesRequest
17817	raw := NoMethod(*s)
17818	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17819}
17820
17821type InstanceGroupManagersResizeAdvancedRequest struct {
17822	// NoCreationRetries: If this flag is true, the managed instance group
17823	// attempts to create all instances initiated by this resize request
17824	// only once. If there is an error during creation, the managed instance
17825	// group does not retry create this instance, and we will decrease the
17826	// targetSize of the request instead. If the flag is false, the group
17827	// attempts to recreate each instance continuously until it
17828	// succeeds.
17829	//
17830	// This flag matters only in the first attempt of creation of an
17831	// instance. After an instance is successfully created while this flag
17832	// is enabled, the instance behaves the same way as all the other
17833	// instances created with a regular resize request. In particular, if a
17834	// running instance dies unexpectedly at a later time and needs to be
17835	// recreated, this mode does not affect the recreation behavior in that
17836	// scenario.
17837	//
17838	// This flag is applicable only to the current resize request. It does
17839	// not influence other resize requests in any way.
17840	//
17841	// You can see which instances is being creating in which mode by
17842	// calling the get or listManagedInstances API.
17843	NoCreationRetries bool `json:"noCreationRetries,omitempty"`
17844
17845	// TargetSize: The number of running instances that the managed instance
17846	// group should maintain at any given time. The group automatically adds
17847	// or removes instances to maintain the number of instances specified by
17848	// this parameter.
17849	TargetSize int64 `json:"targetSize,omitempty"`
17850
17851	// ForceSendFields is a list of field names (e.g. "NoCreationRetries")
17852	// to unconditionally include in API requests. By default, fields with
17853	// empty values are omitted from API requests. However, any non-pointer,
17854	// non-interface field appearing in ForceSendFields will be sent to the
17855	// server regardless of whether the field is empty or not. This may be
17856	// used to include empty fields in Patch requests.
17857	ForceSendFields []string `json:"-"`
17858
17859	// NullFields is a list of field names (e.g. "NoCreationRetries") to
17860	// include in API requests with the JSON null value. By default, fields
17861	// with empty values are omitted from API requests. However, any field
17862	// with an empty value appearing in NullFields will be sent to the
17863	// server as null. It is an error if a field in this list has a
17864	// non-empty value. This may be used to include null fields in Patch
17865	// requests.
17866	NullFields []string `json:"-"`
17867}
17868
17869func (s *InstanceGroupManagersResizeAdvancedRequest) MarshalJSON() ([]byte, error) {
17870	type NoMethod InstanceGroupManagersResizeAdvancedRequest
17871	raw := NoMethod(*s)
17872	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17873}
17874
17875type InstanceGroupManagersScopedList struct {
17876	// InstanceGroupManagers: [Output Only] The list of managed instance
17877	// groups that are contained in the specified project and zone.
17878	InstanceGroupManagers []*InstanceGroupManager `json:"instanceGroupManagers,omitempty"`
17879
17880	// Warning: [Output Only] The warning that replaces the list of managed
17881	// instance groups when the list is empty.
17882	Warning *InstanceGroupManagersScopedListWarning `json:"warning,omitempty"`
17883
17884	// ForceSendFields is a list of field names (e.g.
17885	// "InstanceGroupManagers") to unconditionally include in API requests.
17886	// By default, fields with empty values are omitted from API requests.
17887	// However, any non-pointer, non-interface field appearing in
17888	// ForceSendFields will be sent to the server regardless of whether the
17889	// field is empty or not. This may be used to include empty fields in
17890	// Patch requests.
17891	ForceSendFields []string `json:"-"`
17892
17893	// NullFields is a list of field names (e.g. "InstanceGroupManagers") to
17894	// include in API requests with the JSON null value. By default, fields
17895	// with empty values are omitted from API requests. However, any field
17896	// with an empty value appearing in NullFields will be sent to the
17897	// server as null. It is an error if a field in this list has a
17898	// non-empty value. This may be used to include null fields in Patch
17899	// requests.
17900	NullFields []string `json:"-"`
17901}
17902
17903func (s *InstanceGroupManagersScopedList) MarshalJSON() ([]byte, error) {
17904	type NoMethod InstanceGroupManagersScopedList
17905	raw := NoMethod(*s)
17906	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17907}
17908
17909// InstanceGroupManagersScopedListWarning: [Output Only] The warning
17910// that replaces the list of managed instance groups when the list is
17911// empty.
17912type InstanceGroupManagersScopedListWarning struct {
17913	// Code: [Output Only] A warning code, if applicable. For example,
17914	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
17915	// the response.
17916	//
17917	// Possible values:
17918	//   "CLEANUP_FAILED"
17919	//   "DEPRECATED_RESOURCE_USED"
17920	//   "DEPRECATED_TYPE_USED"
17921	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
17922	//   "EXPERIMENTAL_TYPE_USED"
17923	//   "EXTERNAL_API_WARNING"
17924	//   "FIELD_VALUE_OVERRIDEN"
17925	//   "INJECTED_KERNELS_DEPRECATED"
17926	//   "LARGE_DEPLOYMENT_WARNING"
17927	//   "MISSING_TYPE_DEPENDENCY"
17928	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
17929	//   "NEXT_HOP_CANNOT_IP_FORWARD"
17930	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
17931	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
17932	//   "NEXT_HOP_NOT_RUNNING"
17933	//   "NOT_CRITICAL_ERROR"
17934	//   "NO_RESULTS_ON_PAGE"
17935	//   "PARTIAL_SUCCESS"
17936	//   "REQUIRED_TOS_AGREEMENT"
17937	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
17938	//   "RESOURCE_NOT_DELETED"
17939	//   "SCHEMA_VALIDATION_IGNORED"
17940	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
17941	//   "UNDECLARED_PROPERTIES"
17942	//   "UNREACHABLE"
17943	Code string `json:"code,omitempty"`
17944
17945	// Data: [Output Only] Metadata about this warning in key: value format.
17946	// For example:
17947	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
17948	Data []*InstanceGroupManagersScopedListWarningData `json:"data,omitempty"`
17949
17950	// Message: [Output Only] A human-readable description of the warning
17951	// code.
17952	Message string `json:"message,omitempty"`
17953
17954	// ForceSendFields is a list of field names (e.g. "Code") to
17955	// unconditionally include in API requests. By default, fields with
17956	// empty values are omitted from API requests. However, any non-pointer,
17957	// non-interface field appearing in ForceSendFields will be sent to the
17958	// server regardless of whether the field is empty or not. This may be
17959	// used to include empty fields in Patch requests.
17960	ForceSendFields []string `json:"-"`
17961
17962	// NullFields is a list of field names (e.g. "Code") to include in API
17963	// requests with the JSON null value. By default, fields with empty
17964	// values are omitted from API requests. However, any field with an
17965	// empty value appearing in NullFields will be sent to the server as
17966	// null. It is an error if a field in this list has a non-empty value.
17967	// This may be used to include null fields in Patch requests.
17968	NullFields []string `json:"-"`
17969}
17970
17971func (s *InstanceGroupManagersScopedListWarning) MarshalJSON() ([]byte, error) {
17972	type NoMethod InstanceGroupManagersScopedListWarning
17973	raw := NoMethod(*s)
17974	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17975}
17976
17977type InstanceGroupManagersScopedListWarningData struct {
17978	// Key: [Output Only] A key that provides more detail on the warning
17979	// being returned. For example, for warnings where there are no results
17980	// in a list request for a particular zone, this key might be scope and
17981	// the key value might be the zone name. Other examples might be a key
17982	// indicating a deprecated resource and a suggested replacement, or a
17983	// warning about invalid network settings (for example, if an instance
17984	// attempts to perform IP forwarding but is not enabled for IP
17985	// forwarding).
17986	Key string `json:"key,omitempty"`
17987
17988	// Value: [Output Only] A warning data value corresponding to the key.
17989	Value string `json:"value,omitempty"`
17990
17991	// ForceSendFields is a list of field names (e.g. "Key") to
17992	// unconditionally include in API requests. By default, fields with
17993	// empty values are omitted from API requests. However, any non-pointer,
17994	// non-interface field appearing in ForceSendFields will be sent to the
17995	// server regardless of whether the field is empty or not. This may be
17996	// used to include empty fields in Patch requests.
17997	ForceSendFields []string `json:"-"`
17998
17999	// NullFields is a list of field names (e.g. "Key") to include in API
18000	// requests with the JSON null value. By default, fields with empty
18001	// values are omitted from API requests. However, any field with an
18002	// empty value appearing in NullFields will be sent to the server as
18003	// null. It is an error if a field in this list has a non-empty value.
18004	// This may be used to include null fields in Patch requests.
18005	NullFields []string `json:"-"`
18006}
18007
18008func (s *InstanceGroupManagersScopedListWarningData) MarshalJSON() ([]byte, error) {
18009	type NoMethod InstanceGroupManagersScopedListWarningData
18010	raw := NoMethod(*s)
18011	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18012}
18013
18014type InstanceGroupManagersSetAutoHealingRequest struct {
18015	AutoHealingPolicies []*InstanceGroupManagerAutoHealingPolicy `json:"autoHealingPolicies,omitempty"`
18016
18017	// ForceSendFields is a list of field names (e.g. "AutoHealingPolicies")
18018	// to unconditionally include in API requests. By default, fields with
18019	// empty values are omitted from API requests. However, any non-pointer,
18020	// non-interface field appearing in ForceSendFields will be sent to the
18021	// server regardless of whether the field is empty or not. This may be
18022	// used to include empty fields in Patch requests.
18023	ForceSendFields []string `json:"-"`
18024
18025	// NullFields is a list of field names (e.g. "AutoHealingPolicies") to
18026	// include in API requests with the JSON null value. By default, fields
18027	// with empty values are omitted from API requests. However, any field
18028	// with an empty value appearing in NullFields will be sent to the
18029	// server as null. It is an error if a field in this list has a
18030	// non-empty value. This may be used to include null fields in Patch
18031	// requests.
18032	NullFields []string `json:"-"`
18033}
18034
18035func (s *InstanceGroupManagersSetAutoHealingRequest) MarshalJSON() ([]byte, error) {
18036	type NoMethod InstanceGroupManagersSetAutoHealingRequest
18037	raw := NoMethod(*s)
18038	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18039}
18040
18041type InstanceGroupManagersSetInstanceTemplateRequest struct {
18042	// InstanceTemplate: The URL of the instance template that is specified
18043	// for this managed instance group. The group uses this template to
18044	// create all new instances in the managed instance group. The templates
18045	// for existing instances in the group do not change unless you run
18046	// recreateInstances, run applyUpdatesToInstances, or set the group's
18047	// updatePolicy.type to PROACTIVE.
18048	InstanceTemplate string `json:"instanceTemplate,omitempty"`
18049
18050	// ForceSendFields is a list of field names (e.g. "InstanceTemplate") to
18051	// unconditionally include in API requests. By default, fields with
18052	// empty values are omitted from API requests. However, any non-pointer,
18053	// non-interface field appearing in ForceSendFields will be sent to the
18054	// server regardless of whether the field is empty or not. This may be
18055	// used to include empty fields in Patch requests.
18056	ForceSendFields []string `json:"-"`
18057
18058	// NullFields is a list of field names (e.g. "InstanceTemplate") to
18059	// include in API requests with the JSON null value. By default, fields
18060	// with empty values are omitted from API requests. However, any field
18061	// with an empty value appearing in NullFields will be sent to the
18062	// server as null. It is an error if a field in this list has a
18063	// non-empty value. This may be used to include null fields in Patch
18064	// requests.
18065	NullFields []string `json:"-"`
18066}
18067
18068func (s *InstanceGroupManagersSetInstanceTemplateRequest) MarshalJSON() ([]byte, error) {
18069	type NoMethod InstanceGroupManagersSetInstanceTemplateRequest
18070	raw := NoMethod(*s)
18071	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18072}
18073
18074type InstanceGroupManagersSetTargetPoolsRequest struct {
18075	// Fingerprint: The fingerprint of the target pools information. Use
18076	// this optional property to prevent conflicts when multiple users
18077	// change the target pools settings concurrently. Obtain the fingerprint
18078	// with the instanceGroupManagers.get method. Then, include the
18079	// fingerprint in your request to ensure that you do not overwrite
18080	// changes that were applied from another concurrent request.
18081	Fingerprint string `json:"fingerprint,omitempty"`
18082
18083	// TargetPools: The list of target pool URLs that instances in this
18084	// managed instance group belong to. The managed instance group applies
18085	// these target pools to all of the instances in the group. Existing
18086	// instances and new instances in the group all receive these target
18087	// pool settings.
18088	TargetPools []string `json:"targetPools,omitempty"`
18089
18090	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
18091	// unconditionally include in API requests. By default, fields with
18092	// empty values are omitted from API requests. However, any non-pointer,
18093	// non-interface field appearing in ForceSendFields will be sent to the
18094	// server regardless of whether the field is empty or not. This may be
18095	// used to include empty fields in Patch requests.
18096	ForceSendFields []string `json:"-"`
18097
18098	// NullFields is a list of field names (e.g. "Fingerprint") to include
18099	// in API requests with the JSON null value. By default, fields with
18100	// empty values are omitted from API requests. However, any field with
18101	// an empty value appearing in NullFields will be sent to the server as
18102	// null. It is an error if a field in this list has a non-empty value.
18103	// This may be used to include null fields in Patch requests.
18104	NullFields []string `json:"-"`
18105}
18106
18107func (s *InstanceGroupManagersSetTargetPoolsRequest) MarshalJSON() ([]byte, error) {
18108	type NoMethod InstanceGroupManagersSetTargetPoolsRequest
18109	raw := NoMethod(*s)
18110	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18111}
18112
18113// InstanceGroupManagersUpdatePerInstanceConfigsReq:
18114// InstanceGroupManagers.updatePerInstanceConfigs
18115type InstanceGroupManagersUpdatePerInstanceConfigsReq struct {
18116	// PerInstanceConfigs: The list of per-instance configs to insert or
18117	// patch on this managed instance group.
18118	PerInstanceConfigs []*PerInstanceConfig `json:"perInstanceConfigs,omitempty"`
18119
18120	// ForceSendFields is a list of field names (e.g. "PerInstanceConfigs")
18121	// to unconditionally include in API requests. By default, fields with
18122	// empty values are omitted from API requests. However, any non-pointer,
18123	// non-interface field appearing in ForceSendFields will be sent to the
18124	// server regardless of whether the field is empty or not. This may be
18125	// used to include empty fields in Patch requests.
18126	ForceSendFields []string `json:"-"`
18127
18128	// NullFields is a list of field names (e.g. "PerInstanceConfigs") to
18129	// include in API requests with the JSON null value. By default, fields
18130	// with empty values are omitted from API requests. However, any field
18131	// with an empty value appearing in NullFields will be sent to the
18132	// server as null. It is an error if a field in this list has a
18133	// non-empty value. This may be used to include null fields in Patch
18134	// requests.
18135	NullFields []string `json:"-"`
18136}
18137
18138func (s *InstanceGroupManagersUpdatePerInstanceConfigsReq) MarshalJSON() ([]byte, error) {
18139	type NoMethod InstanceGroupManagersUpdatePerInstanceConfigsReq
18140	raw := NoMethod(*s)
18141	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18142}
18143
18144type InstanceGroupsAddInstancesRequest struct {
18145	// Instances: The list of instances to add to the instance group.
18146	Instances []*InstanceReference `json:"instances,omitempty"`
18147
18148	// ForceSendFields is a list of field names (e.g. "Instances") to
18149	// unconditionally include in API requests. By default, fields with
18150	// empty values are omitted from API requests. However, any non-pointer,
18151	// non-interface field appearing in ForceSendFields will be sent to the
18152	// server regardless of whether the field is empty or not. This may be
18153	// used to include empty fields in Patch requests.
18154	ForceSendFields []string `json:"-"`
18155
18156	// NullFields is a list of field names (e.g. "Instances") to include in
18157	// API requests with the JSON null value. By default, fields with empty
18158	// values are omitted from API requests. However, any field with an
18159	// empty value appearing in NullFields will be sent to the server as
18160	// null. It is an error if a field in this list has a non-empty value.
18161	// This may be used to include null fields in Patch requests.
18162	NullFields []string `json:"-"`
18163}
18164
18165func (s *InstanceGroupsAddInstancesRequest) MarshalJSON() ([]byte, error) {
18166	type NoMethod InstanceGroupsAddInstancesRequest
18167	raw := NoMethod(*s)
18168	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18169}
18170
18171type InstanceGroupsListInstances struct {
18172	// Id: [Output Only] Unique identifier for the resource; defined by the
18173	// server.
18174	Id string `json:"id,omitempty"`
18175
18176	// Items: A list of InstanceWithNamedPorts resources.
18177	Items []*InstanceWithNamedPorts `json:"items,omitempty"`
18178
18179	// Kind: [Output Only] The resource type, which is always
18180	// compute#instanceGroupsListInstances for the list of instances in the
18181	// specified instance group.
18182	Kind string `json:"kind,omitempty"`
18183
18184	// NextPageToken: [Output Only] This token allows you to get the next
18185	// page of results for list requests. If the number of results is larger
18186	// than maxResults, use the nextPageToken as a value for the query
18187	// parameter pageToken in the next list request. Subsequent list
18188	// requests will have their own nextPageToken to continue paging through
18189	// the results.
18190	NextPageToken string `json:"nextPageToken,omitempty"`
18191
18192	// SelfLink: [Output Only] Server-defined URL for this resource.
18193	SelfLink string `json:"selfLink,omitempty"`
18194
18195	// Warning: [Output Only] Informational warning message.
18196	Warning *InstanceGroupsListInstancesWarning `json:"warning,omitempty"`
18197
18198	// ServerResponse contains the HTTP response code and headers from the
18199	// server.
18200	googleapi.ServerResponse `json:"-"`
18201
18202	// ForceSendFields is a list of field names (e.g. "Id") to
18203	// unconditionally include in API requests. By default, fields with
18204	// empty values are omitted from API requests. However, any non-pointer,
18205	// non-interface field appearing in ForceSendFields will be sent to the
18206	// server regardless of whether the field is empty or not. This may be
18207	// used to include empty fields in Patch requests.
18208	ForceSendFields []string `json:"-"`
18209
18210	// NullFields is a list of field names (e.g. "Id") to include in API
18211	// requests with the JSON null value. By default, fields with empty
18212	// values are omitted from API requests. However, any field with an
18213	// empty value appearing in NullFields will be sent to the server as
18214	// null. It is an error if a field in this list has a non-empty value.
18215	// This may be used to include null fields in Patch requests.
18216	NullFields []string `json:"-"`
18217}
18218
18219func (s *InstanceGroupsListInstances) MarshalJSON() ([]byte, error) {
18220	type NoMethod InstanceGroupsListInstances
18221	raw := NoMethod(*s)
18222	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18223}
18224
18225// InstanceGroupsListInstancesWarning: [Output Only] Informational
18226// warning message.
18227type InstanceGroupsListInstancesWarning struct {
18228	// Code: [Output Only] A warning code, if applicable. For example,
18229	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
18230	// the response.
18231	//
18232	// Possible values:
18233	//   "CLEANUP_FAILED"
18234	//   "DEPRECATED_RESOURCE_USED"
18235	//   "DEPRECATED_TYPE_USED"
18236	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
18237	//   "EXPERIMENTAL_TYPE_USED"
18238	//   "EXTERNAL_API_WARNING"
18239	//   "FIELD_VALUE_OVERRIDEN"
18240	//   "INJECTED_KERNELS_DEPRECATED"
18241	//   "LARGE_DEPLOYMENT_WARNING"
18242	//   "MISSING_TYPE_DEPENDENCY"
18243	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
18244	//   "NEXT_HOP_CANNOT_IP_FORWARD"
18245	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
18246	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
18247	//   "NEXT_HOP_NOT_RUNNING"
18248	//   "NOT_CRITICAL_ERROR"
18249	//   "NO_RESULTS_ON_PAGE"
18250	//   "PARTIAL_SUCCESS"
18251	//   "REQUIRED_TOS_AGREEMENT"
18252	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
18253	//   "RESOURCE_NOT_DELETED"
18254	//   "SCHEMA_VALIDATION_IGNORED"
18255	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
18256	//   "UNDECLARED_PROPERTIES"
18257	//   "UNREACHABLE"
18258	Code string `json:"code,omitempty"`
18259
18260	// Data: [Output Only] Metadata about this warning in key: value format.
18261	// For example:
18262	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
18263	Data []*InstanceGroupsListInstancesWarningData `json:"data,omitempty"`
18264
18265	// Message: [Output Only] A human-readable description of the warning
18266	// code.
18267	Message string `json:"message,omitempty"`
18268
18269	// ForceSendFields is a list of field names (e.g. "Code") to
18270	// unconditionally include in API requests. By default, fields with
18271	// empty values are omitted from API requests. However, any non-pointer,
18272	// non-interface field appearing in ForceSendFields will be sent to the
18273	// server regardless of whether the field is empty or not. This may be
18274	// used to include empty fields in Patch requests.
18275	ForceSendFields []string `json:"-"`
18276
18277	// NullFields is a list of field names (e.g. "Code") to include in API
18278	// requests with the JSON null value. By default, fields with empty
18279	// values are omitted from API requests. However, any field with an
18280	// empty value appearing in NullFields will be sent to the server as
18281	// null. It is an error if a field in this list has a non-empty value.
18282	// This may be used to include null fields in Patch requests.
18283	NullFields []string `json:"-"`
18284}
18285
18286func (s *InstanceGroupsListInstancesWarning) MarshalJSON() ([]byte, error) {
18287	type NoMethod InstanceGroupsListInstancesWarning
18288	raw := NoMethod(*s)
18289	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18290}
18291
18292type InstanceGroupsListInstancesWarningData struct {
18293	// Key: [Output Only] A key that provides more detail on the warning
18294	// being returned. For example, for warnings where there are no results
18295	// in a list request for a particular zone, this key might be scope and
18296	// the key value might be the zone name. Other examples might be a key
18297	// indicating a deprecated resource and a suggested replacement, or a
18298	// warning about invalid network settings (for example, if an instance
18299	// attempts to perform IP forwarding but is not enabled for IP
18300	// forwarding).
18301	Key string `json:"key,omitempty"`
18302
18303	// Value: [Output Only] A warning data value corresponding to the key.
18304	Value string `json:"value,omitempty"`
18305
18306	// ForceSendFields is a list of field names (e.g. "Key") to
18307	// unconditionally include in API requests. By default, fields with
18308	// empty values are omitted from API requests. However, any non-pointer,
18309	// non-interface field appearing in ForceSendFields will be sent to the
18310	// server regardless of whether the field is empty or not. This may be
18311	// used to include empty fields in Patch requests.
18312	ForceSendFields []string `json:"-"`
18313
18314	// NullFields is a list of field names (e.g. "Key") to include in API
18315	// requests with the JSON null value. By default, fields with empty
18316	// values are omitted from API requests. However, any field with an
18317	// empty value appearing in NullFields will be sent to the server as
18318	// null. It is an error if a field in this list has a non-empty value.
18319	// This may be used to include null fields in Patch requests.
18320	NullFields []string `json:"-"`
18321}
18322
18323func (s *InstanceGroupsListInstancesWarningData) MarshalJSON() ([]byte, error) {
18324	type NoMethod InstanceGroupsListInstancesWarningData
18325	raw := NoMethod(*s)
18326	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18327}
18328
18329type InstanceGroupsListInstancesRequest struct {
18330	// InstanceState: A filter for the state of the instances in the
18331	// instance group. Valid options are ALL or RUNNING. If you do not
18332	// specify this parameter the list includes all instances regardless of
18333	// their state.
18334	//
18335	// Possible values:
18336	//   "ALL"
18337	//   "RUNNING"
18338	InstanceState string `json:"instanceState,omitempty"`
18339
18340	// ForceSendFields is a list of field names (e.g. "InstanceState") to
18341	// unconditionally include in API requests. By default, fields with
18342	// empty values are omitted from API requests. However, any non-pointer,
18343	// non-interface field appearing in ForceSendFields will be sent to the
18344	// server regardless of whether the field is empty or not. This may be
18345	// used to include empty fields in Patch requests.
18346	ForceSendFields []string `json:"-"`
18347
18348	// NullFields is a list of field names (e.g. "InstanceState") to include
18349	// in API requests with the JSON null value. By default, fields with
18350	// empty values are omitted from API requests. However, any field with
18351	// an empty value appearing in NullFields will be sent to the server as
18352	// null. It is an error if a field in this list has a non-empty value.
18353	// This may be used to include null fields in Patch requests.
18354	NullFields []string `json:"-"`
18355}
18356
18357func (s *InstanceGroupsListInstancesRequest) MarshalJSON() ([]byte, error) {
18358	type NoMethod InstanceGroupsListInstancesRequest
18359	raw := NoMethod(*s)
18360	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18361}
18362
18363type InstanceGroupsRemoveInstancesRequest struct {
18364	// Instances: The list of instances to remove from the instance group.
18365	Instances []*InstanceReference `json:"instances,omitempty"`
18366
18367	// ForceSendFields is a list of field names (e.g. "Instances") to
18368	// unconditionally include in API requests. By default, fields with
18369	// empty values are omitted from API requests. However, any non-pointer,
18370	// non-interface field appearing in ForceSendFields will be sent to the
18371	// server regardless of whether the field is empty or not. This may be
18372	// used to include empty fields in Patch requests.
18373	ForceSendFields []string `json:"-"`
18374
18375	// NullFields is a list of field names (e.g. "Instances") to include in
18376	// API requests with the JSON null value. By default, fields with empty
18377	// values are omitted from API requests. However, any field with an
18378	// empty value appearing in NullFields will be sent to the server as
18379	// null. It is an error if a field in this list has a non-empty value.
18380	// This may be used to include null fields in Patch requests.
18381	NullFields []string `json:"-"`
18382}
18383
18384func (s *InstanceGroupsRemoveInstancesRequest) MarshalJSON() ([]byte, error) {
18385	type NoMethod InstanceGroupsRemoveInstancesRequest
18386	raw := NoMethod(*s)
18387	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18388}
18389
18390type InstanceGroupsScopedList struct {
18391	// InstanceGroups: [Output Only] The list of instance groups that are
18392	// contained in this scope.
18393	InstanceGroups []*InstanceGroup `json:"instanceGroups,omitempty"`
18394
18395	// Warning: [Output Only] An informational warning that replaces the
18396	// list of instance groups when the list is empty.
18397	Warning *InstanceGroupsScopedListWarning `json:"warning,omitempty"`
18398
18399	// ForceSendFields is a list of field names (e.g. "InstanceGroups") to
18400	// unconditionally include in API requests. By default, fields with
18401	// empty values are omitted from API requests. However, any non-pointer,
18402	// non-interface field appearing in ForceSendFields will be sent to the
18403	// server regardless of whether the field is empty or not. This may be
18404	// used to include empty fields in Patch requests.
18405	ForceSendFields []string `json:"-"`
18406
18407	// NullFields is a list of field names (e.g. "InstanceGroups") to
18408	// include in API requests with the JSON null value. By default, fields
18409	// with empty values are omitted from API requests. However, any field
18410	// with an empty value appearing in NullFields will be sent to the
18411	// server as null. It is an error if a field in this list has a
18412	// non-empty value. This may be used to include null fields in Patch
18413	// requests.
18414	NullFields []string `json:"-"`
18415}
18416
18417func (s *InstanceGroupsScopedList) MarshalJSON() ([]byte, error) {
18418	type NoMethod InstanceGroupsScopedList
18419	raw := NoMethod(*s)
18420	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18421}
18422
18423// InstanceGroupsScopedListWarning: [Output Only] An informational
18424// warning that replaces the list of instance groups when the list is
18425// empty.
18426type InstanceGroupsScopedListWarning struct {
18427	// Code: [Output Only] A warning code, if applicable. For example,
18428	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
18429	// the response.
18430	//
18431	// Possible values:
18432	//   "CLEANUP_FAILED"
18433	//   "DEPRECATED_RESOURCE_USED"
18434	//   "DEPRECATED_TYPE_USED"
18435	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
18436	//   "EXPERIMENTAL_TYPE_USED"
18437	//   "EXTERNAL_API_WARNING"
18438	//   "FIELD_VALUE_OVERRIDEN"
18439	//   "INJECTED_KERNELS_DEPRECATED"
18440	//   "LARGE_DEPLOYMENT_WARNING"
18441	//   "MISSING_TYPE_DEPENDENCY"
18442	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
18443	//   "NEXT_HOP_CANNOT_IP_FORWARD"
18444	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
18445	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
18446	//   "NEXT_HOP_NOT_RUNNING"
18447	//   "NOT_CRITICAL_ERROR"
18448	//   "NO_RESULTS_ON_PAGE"
18449	//   "PARTIAL_SUCCESS"
18450	//   "REQUIRED_TOS_AGREEMENT"
18451	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
18452	//   "RESOURCE_NOT_DELETED"
18453	//   "SCHEMA_VALIDATION_IGNORED"
18454	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
18455	//   "UNDECLARED_PROPERTIES"
18456	//   "UNREACHABLE"
18457	Code string `json:"code,omitempty"`
18458
18459	// Data: [Output Only] Metadata about this warning in key: value format.
18460	// For example:
18461	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
18462	Data []*InstanceGroupsScopedListWarningData `json:"data,omitempty"`
18463
18464	// Message: [Output Only] A human-readable description of the warning
18465	// code.
18466	Message string `json:"message,omitempty"`
18467
18468	// ForceSendFields is a list of field names (e.g. "Code") to
18469	// unconditionally include in API requests. By default, fields with
18470	// empty values are omitted from API requests. However, any non-pointer,
18471	// non-interface field appearing in ForceSendFields will be sent to the
18472	// server regardless of whether the field is empty or not. This may be
18473	// used to include empty fields in Patch requests.
18474	ForceSendFields []string `json:"-"`
18475
18476	// NullFields is a list of field names (e.g. "Code") to include in API
18477	// requests with the JSON null value. By default, fields with empty
18478	// values are omitted from API requests. However, any field with an
18479	// empty value appearing in NullFields will be sent to the server as
18480	// null. It is an error if a field in this list has a non-empty value.
18481	// This may be used to include null fields in Patch requests.
18482	NullFields []string `json:"-"`
18483}
18484
18485func (s *InstanceGroupsScopedListWarning) MarshalJSON() ([]byte, error) {
18486	type NoMethod InstanceGroupsScopedListWarning
18487	raw := NoMethod(*s)
18488	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18489}
18490
18491type InstanceGroupsScopedListWarningData struct {
18492	// Key: [Output Only] A key that provides more detail on the warning
18493	// being returned. For example, for warnings where there are no results
18494	// in a list request for a particular zone, this key might be scope and
18495	// the key value might be the zone name. Other examples might be a key
18496	// indicating a deprecated resource and a suggested replacement, or a
18497	// warning about invalid network settings (for example, if an instance
18498	// attempts to perform IP forwarding but is not enabled for IP
18499	// forwarding).
18500	Key string `json:"key,omitempty"`
18501
18502	// Value: [Output Only] A warning data value corresponding to the key.
18503	Value string `json:"value,omitempty"`
18504
18505	// ForceSendFields is a list of field names (e.g. "Key") to
18506	// unconditionally include in API requests. By default, fields with
18507	// empty values are omitted from API requests. However, any non-pointer,
18508	// non-interface field appearing in ForceSendFields will be sent to the
18509	// server regardless of whether the field is empty or not. This may be
18510	// used to include empty fields in Patch requests.
18511	ForceSendFields []string `json:"-"`
18512
18513	// NullFields is a list of field names (e.g. "Key") to include in API
18514	// requests with the JSON null value. By default, fields with empty
18515	// values are omitted from API requests. However, any field with an
18516	// empty value appearing in NullFields will be sent to the server as
18517	// null. It is an error if a field in this list has a non-empty value.
18518	// This may be used to include null fields in Patch requests.
18519	NullFields []string `json:"-"`
18520}
18521
18522func (s *InstanceGroupsScopedListWarningData) MarshalJSON() ([]byte, error) {
18523	type NoMethod InstanceGroupsScopedListWarningData
18524	raw := NoMethod(*s)
18525	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18526}
18527
18528type InstanceGroupsSetNamedPortsRequest struct {
18529	// Fingerprint: The fingerprint of the named ports information for this
18530	// instance group. Use this optional property to prevent conflicts when
18531	// multiple users change the named ports settings concurrently. Obtain
18532	// the fingerprint with the instanceGroups.get method. Then, include the
18533	// fingerprint in your request to ensure that you do not overwrite
18534	// changes that were applied from another concurrent request. A request
18535	// with an incorrect fingerprint will fail with error 412
18536	// conditionNotMet.
18537	Fingerprint string `json:"fingerprint,omitempty"`
18538
18539	// NamedPorts: The list of named ports to set for this instance group.
18540	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
18541
18542	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
18543	// unconditionally include in API requests. By default, fields with
18544	// empty values are omitted from API requests. However, any non-pointer,
18545	// non-interface field appearing in ForceSendFields will be sent to the
18546	// server regardless of whether the field is empty or not. This may be
18547	// used to include empty fields in Patch requests.
18548	ForceSendFields []string `json:"-"`
18549
18550	// NullFields is a list of field names (e.g. "Fingerprint") to include
18551	// in API requests with the JSON null value. By default, fields with
18552	// empty values are omitted from API requests. However, any field with
18553	// an empty value appearing in NullFields will be sent to the server as
18554	// null. It is an error if a field in this list has a non-empty value.
18555	// This may be used to include null fields in Patch requests.
18556	NullFields []string `json:"-"`
18557}
18558
18559func (s *InstanceGroupsSetNamedPortsRequest) MarshalJSON() ([]byte, error) {
18560	type NoMethod InstanceGroupsSetNamedPortsRequest
18561	raw := NoMethod(*s)
18562	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18563}
18564
18565// InstanceList: Contains a list of instances.
18566type InstanceList struct {
18567	// Id: [Output Only] Unique identifier for the resource; defined by the
18568	// server.
18569	Id string `json:"id,omitempty"`
18570
18571	// Items: A list of Instance resources.
18572	Items []*Instance `json:"items,omitempty"`
18573
18574	// Kind: [Output Only] Type of resource. Always compute#instanceList for
18575	// lists of Instance resources.
18576	Kind string `json:"kind,omitempty"`
18577
18578	// NextPageToken: [Output Only] This token allows you to get the next
18579	// page of results for list requests. If the number of results is larger
18580	// than maxResults, use the nextPageToken as a value for the query
18581	// parameter pageToken in the next list request. Subsequent list
18582	// requests will have their own nextPageToken to continue paging through
18583	// the results.
18584	NextPageToken string `json:"nextPageToken,omitempty"`
18585
18586	// SelfLink: [Output Only] Server-defined URL for this resource.
18587	SelfLink string `json:"selfLink,omitempty"`
18588
18589	// Warning: [Output Only] Informational warning message.
18590	Warning *InstanceListWarning `json:"warning,omitempty"`
18591
18592	// ServerResponse contains the HTTP response code and headers from the
18593	// server.
18594	googleapi.ServerResponse `json:"-"`
18595
18596	// ForceSendFields is a list of field names (e.g. "Id") to
18597	// unconditionally include in API requests. By default, fields with
18598	// empty values are omitted from API requests. However, any non-pointer,
18599	// non-interface field appearing in ForceSendFields will be sent to the
18600	// server regardless of whether the field is empty or not. This may be
18601	// used to include empty fields in Patch requests.
18602	ForceSendFields []string `json:"-"`
18603
18604	// NullFields is a list of field names (e.g. "Id") to include in API
18605	// requests with the JSON null value. By default, fields with empty
18606	// values are omitted from API requests. However, any field with an
18607	// empty value appearing in NullFields will be sent to the server as
18608	// null. It is an error if a field in this list has a non-empty value.
18609	// This may be used to include null fields in Patch requests.
18610	NullFields []string `json:"-"`
18611}
18612
18613func (s *InstanceList) MarshalJSON() ([]byte, error) {
18614	type NoMethod InstanceList
18615	raw := NoMethod(*s)
18616	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18617}
18618
18619// InstanceListWarning: [Output Only] Informational warning message.
18620type InstanceListWarning struct {
18621	// Code: [Output Only] A warning code, if applicable. For example,
18622	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
18623	// the response.
18624	//
18625	// Possible values:
18626	//   "CLEANUP_FAILED"
18627	//   "DEPRECATED_RESOURCE_USED"
18628	//   "DEPRECATED_TYPE_USED"
18629	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
18630	//   "EXPERIMENTAL_TYPE_USED"
18631	//   "EXTERNAL_API_WARNING"
18632	//   "FIELD_VALUE_OVERRIDEN"
18633	//   "INJECTED_KERNELS_DEPRECATED"
18634	//   "LARGE_DEPLOYMENT_WARNING"
18635	//   "MISSING_TYPE_DEPENDENCY"
18636	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
18637	//   "NEXT_HOP_CANNOT_IP_FORWARD"
18638	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
18639	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
18640	//   "NEXT_HOP_NOT_RUNNING"
18641	//   "NOT_CRITICAL_ERROR"
18642	//   "NO_RESULTS_ON_PAGE"
18643	//   "PARTIAL_SUCCESS"
18644	//   "REQUIRED_TOS_AGREEMENT"
18645	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
18646	//   "RESOURCE_NOT_DELETED"
18647	//   "SCHEMA_VALIDATION_IGNORED"
18648	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
18649	//   "UNDECLARED_PROPERTIES"
18650	//   "UNREACHABLE"
18651	Code string `json:"code,omitempty"`
18652
18653	// Data: [Output Only] Metadata about this warning in key: value format.
18654	// For example:
18655	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
18656	Data []*InstanceListWarningData `json:"data,omitempty"`
18657
18658	// Message: [Output Only] A human-readable description of the warning
18659	// code.
18660	Message string `json:"message,omitempty"`
18661
18662	// ForceSendFields is a list of field names (e.g. "Code") to
18663	// unconditionally include in API requests. By default, fields with
18664	// empty values are omitted from API requests. However, any non-pointer,
18665	// non-interface field appearing in ForceSendFields will be sent to the
18666	// server regardless of whether the field is empty or not. This may be
18667	// used to include empty fields in Patch requests.
18668	ForceSendFields []string `json:"-"`
18669
18670	// NullFields is a list of field names (e.g. "Code") to include in API
18671	// requests with the JSON null value. By default, fields with empty
18672	// values are omitted from API requests. However, any field with an
18673	// empty value appearing in NullFields will be sent to the server as
18674	// null. It is an error if a field in this list has a non-empty value.
18675	// This may be used to include null fields in Patch requests.
18676	NullFields []string `json:"-"`
18677}
18678
18679func (s *InstanceListWarning) MarshalJSON() ([]byte, error) {
18680	type NoMethod InstanceListWarning
18681	raw := NoMethod(*s)
18682	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18683}
18684
18685type InstanceListWarningData struct {
18686	// Key: [Output Only] A key that provides more detail on the warning
18687	// being returned. For example, for warnings where there are no results
18688	// in a list request for a particular zone, this key might be scope and
18689	// the key value might be the zone name. Other examples might be a key
18690	// indicating a deprecated resource and a suggested replacement, or a
18691	// warning about invalid network settings (for example, if an instance
18692	// attempts to perform IP forwarding but is not enabled for IP
18693	// forwarding).
18694	Key string `json:"key,omitempty"`
18695
18696	// Value: [Output Only] A warning data value corresponding to the key.
18697	Value string `json:"value,omitempty"`
18698
18699	// ForceSendFields is a list of field names (e.g. "Key") to
18700	// unconditionally include in API requests. By default, fields with
18701	// empty values are omitted from API requests. However, any non-pointer,
18702	// non-interface field appearing in ForceSendFields will be sent to the
18703	// server regardless of whether the field is empty or not. This may be
18704	// used to include empty fields in Patch requests.
18705	ForceSendFields []string `json:"-"`
18706
18707	// NullFields is a list of field names (e.g. "Key") to include in API
18708	// requests with the JSON null value. By default, fields with empty
18709	// values are omitted from API requests. However, any field with an
18710	// empty value appearing in NullFields will be sent to the server as
18711	// null. It is an error if a field in this list has a non-empty value.
18712	// This may be used to include null fields in Patch requests.
18713	NullFields []string `json:"-"`
18714}
18715
18716func (s *InstanceListWarningData) MarshalJSON() ([]byte, error) {
18717	type NoMethod InstanceListWarningData
18718	raw := NoMethod(*s)
18719	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18720}
18721
18722// InstanceListReferrers: Contains a list of instance referrers.
18723type InstanceListReferrers struct {
18724	// Id: [Output Only] Unique identifier for the resource; defined by the
18725	// server.
18726	Id string `json:"id,omitempty"`
18727
18728	// Items: A list of Reference resources.
18729	Items []*Reference `json:"items,omitempty"`
18730
18731	// Kind: [Output Only] Type of resource. Always
18732	// compute#instanceListReferrers for lists of Instance referrers.
18733	Kind string `json:"kind,omitempty"`
18734
18735	// NextPageToken: [Output Only] This token allows you to get the next
18736	// page of results for list requests. If the number of results is larger
18737	// than maxResults, use the nextPageToken as a value for the query
18738	// parameter pageToken in the next list request. Subsequent list
18739	// requests will have their own nextPageToken to continue paging through
18740	// the results.
18741	NextPageToken string `json:"nextPageToken,omitempty"`
18742
18743	// SelfLink: [Output Only] Server-defined URL for this resource.
18744	SelfLink string `json:"selfLink,omitempty"`
18745
18746	// Warning: [Output Only] Informational warning message.
18747	Warning *InstanceListReferrersWarning `json:"warning,omitempty"`
18748
18749	// ServerResponse contains the HTTP response code and headers from the
18750	// server.
18751	googleapi.ServerResponse `json:"-"`
18752
18753	// ForceSendFields is a list of field names (e.g. "Id") to
18754	// unconditionally include in API requests. By default, fields with
18755	// empty values are omitted from API requests. However, any non-pointer,
18756	// non-interface field appearing in ForceSendFields will be sent to the
18757	// server regardless of whether the field is empty or not. This may be
18758	// used to include empty fields in Patch requests.
18759	ForceSendFields []string `json:"-"`
18760
18761	// NullFields is a list of field names (e.g. "Id") to include in API
18762	// requests with the JSON null value. By default, fields with empty
18763	// values are omitted from API requests. However, any field with an
18764	// empty value appearing in NullFields will be sent to the server as
18765	// null. It is an error if a field in this list has a non-empty value.
18766	// This may be used to include null fields in Patch requests.
18767	NullFields []string `json:"-"`
18768}
18769
18770func (s *InstanceListReferrers) MarshalJSON() ([]byte, error) {
18771	type NoMethod InstanceListReferrers
18772	raw := NoMethod(*s)
18773	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18774}
18775
18776// InstanceListReferrersWarning: [Output Only] Informational warning
18777// message.
18778type InstanceListReferrersWarning struct {
18779	// Code: [Output Only] A warning code, if applicable. For example,
18780	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
18781	// the response.
18782	//
18783	// Possible values:
18784	//   "CLEANUP_FAILED"
18785	//   "DEPRECATED_RESOURCE_USED"
18786	//   "DEPRECATED_TYPE_USED"
18787	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
18788	//   "EXPERIMENTAL_TYPE_USED"
18789	//   "EXTERNAL_API_WARNING"
18790	//   "FIELD_VALUE_OVERRIDEN"
18791	//   "INJECTED_KERNELS_DEPRECATED"
18792	//   "LARGE_DEPLOYMENT_WARNING"
18793	//   "MISSING_TYPE_DEPENDENCY"
18794	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
18795	//   "NEXT_HOP_CANNOT_IP_FORWARD"
18796	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
18797	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
18798	//   "NEXT_HOP_NOT_RUNNING"
18799	//   "NOT_CRITICAL_ERROR"
18800	//   "NO_RESULTS_ON_PAGE"
18801	//   "PARTIAL_SUCCESS"
18802	//   "REQUIRED_TOS_AGREEMENT"
18803	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
18804	//   "RESOURCE_NOT_DELETED"
18805	//   "SCHEMA_VALIDATION_IGNORED"
18806	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
18807	//   "UNDECLARED_PROPERTIES"
18808	//   "UNREACHABLE"
18809	Code string `json:"code,omitempty"`
18810
18811	// Data: [Output Only] Metadata about this warning in key: value format.
18812	// For example:
18813	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
18814	Data []*InstanceListReferrersWarningData `json:"data,omitempty"`
18815
18816	// Message: [Output Only] A human-readable description of the warning
18817	// code.
18818	Message string `json:"message,omitempty"`
18819
18820	// ForceSendFields is a list of field names (e.g. "Code") to
18821	// unconditionally include in API requests. By default, fields with
18822	// empty values are omitted from API requests. However, any non-pointer,
18823	// non-interface field appearing in ForceSendFields will be sent to the
18824	// server regardless of whether the field is empty or not. This may be
18825	// used to include empty fields in Patch requests.
18826	ForceSendFields []string `json:"-"`
18827
18828	// NullFields is a list of field names (e.g. "Code") to include in API
18829	// requests with the JSON null value. By default, fields with empty
18830	// values are omitted from API requests. However, any field with an
18831	// empty value appearing in NullFields will be sent to the server as
18832	// null. It is an error if a field in this list has a non-empty value.
18833	// This may be used to include null fields in Patch requests.
18834	NullFields []string `json:"-"`
18835}
18836
18837func (s *InstanceListReferrersWarning) MarshalJSON() ([]byte, error) {
18838	type NoMethod InstanceListReferrersWarning
18839	raw := NoMethod(*s)
18840	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18841}
18842
18843type InstanceListReferrersWarningData struct {
18844	// Key: [Output Only] A key that provides more detail on the warning
18845	// being returned. For example, for warnings where there are no results
18846	// in a list request for a particular zone, this key might be scope and
18847	// the key value might be the zone name. Other examples might be a key
18848	// indicating a deprecated resource and a suggested replacement, or a
18849	// warning about invalid network settings (for example, if an instance
18850	// attempts to perform IP forwarding but is not enabled for IP
18851	// forwarding).
18852	Key string `json:"key,omitempty"`
18853
18854	// Value: [Output Only] A warning data value corresponding to the key.
18855	Value string `json:"value,omitempty"`
18856
18857	// ForceSendFields is a list of field names (e.g. "Key") to
18858	// unconditionally include in API requests. By default, fields with
18859	// empty values are omitted from API requests. However, any non-pointer,
18860	// non-interface field appearing in ForceSendFields will be sent to the
18861	// server regardless of whether the field is empty or not. This may be
18862	// used to include empty fields in Patch requests.
18863	ForceSendFields []string `json:"-"`
18864
18865	// NullFields is a list of field names (e.g. "Key") to include in API
18866	// requests with the JSON null value. By default, fields with empty
18867	// values are omitted from API requests. However, any field with an
18868	// empty value appearing in NullFields will be sent to the server as
18869	// null. It is an error if a field in this list has a non-empty value.
18870	// This may be used to include null fields in Patch requests.
18871	NullFields []string `json:"-"`
18872}
18873
18874func (s *InstanceListReferrersWarningData) MarshalJSON() ([]byte, error) {
18875	type NoMethod InstanceListReferrersWarningData
18876	raw := NoMethod(*s)
18877	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18878}
18879
18880type InstanceManagedByIgmError struct {
18881	// Error: [Output Only] Contents of the error.
18882	Error *InstanceManagedByIgmErrorManagedInstanceError `json:"error,omitempty"`
18883
18884	// InstanceActionDetails: [Output Only] Details of the instance action
18885	// that triggered this error. May be null, if the error was not caused
18886	// by an action on an instance. This field is optional.
18887	InstanceActionDetails *InstanceManagedByIgmErrorInstanceActionDetails `json:"instanceActionDetails,omitempty"`
18888
18889	// Timestamp: [Output Only] The time that this error occurred. This
18890	// value is in RFC3339 text format.
18891	Timestamp string `json:"timestamp,omitempty"`
18892
18893	// ForceSendFields is a list of field names (e.g. "Error") to
18894	// unconditionally include in API requests. By default, fields with
18895	// empty values are omitted from API requests. However, any non-pointer,
18896	// non-interface field appearing in ForceSendFields will be sent to the
18897	// server regardless of whether the field is empty or not. This may be
18898	// used to include empty fields in Patch requests.
18899	ForceSendFields []string `json:"-"`
18900
18901	// NullFields is a list of field names (e.g. "Error") to include in API
18902	// requests with the JSON null value. By default, fields with empty
18903	// values are omitted from API requests. However, any field with an
18904	// empty value appearing in NullFields will be sent to the server as
18905	// null. It is an error if a field in this list has a non-empty value.
18906	// This may be used to include null fields in Patch requests.
18907	NullFields []string `json:"-"`
18908}
18909
18910func (s *InstanceManagedByIgmError) MarshalJSON() ([]byte, error) {
18911	type NoMethod InstanceManagedByIgmError
18912	raw := NoMethod(*s)
18913	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18914}
18915
18916type InstanceManagedByIgmErrorInstanceActionDetails struct {
18917	// Action: [Output Only] Action that managed instance group was
18918	// executing on the instance when the error occurred. Possible values:
18919	//
18920	// Possible values:
18921	//   "ABANDONING"
18922	//   "CREATING"
18923	//   "CREATING_WITHOUT_RETRIES"
18924	//   "DELETING"
18925	//   "NONE"
18926	//   "RECREATING"
18927	//   "REFRESHING"
18928	//   "RESTARTING"
18929	//   "VERIFYING"
18930	Action string `json:"action,omitempty"`
18931
18932	// Instance: [Output Only] The URL of the instance. The URL can be set
18933	// even if the instance has not yet been created.
18934	Instance string `json:"instance,omitempty"`
18935
18936	// Version: [Output Only] Version this instance was created from, or was
18937	// being created from, but the creation failed. Corresponds to one of
18938	// the versions that were set on the Instance Group Manager resource at
18939	// the time this instance was being created.
18940	Version *ManagedInstanceVersion `json:"version,omitempty"`
18941
18942	// ForceSendFields is a list of field names (e.g. "Action") to
18943	// unconditionally include in API requests. By default, fields with
18944	// empty values are omitted from API requests. However, any non-pointer,
18945	// non-interface field appearing in ForceSendFields will be sent to the
18946	// server regardless of whether the field is empty or not. This may be
18947	// used to include empty fields in Patch requests.
18948	ForceSendFields []string `json:"-"`
18949
18950	// NullFields is a list of field names (e.g. "Action") to include in API
18951	// requests with the JSON null value. By default, fields with empty
18952	// values are omitted from API requests. However, any field with an
18953	// empty value appearing in NullFields will be sent to the server as
18954	// null. It is an error if a field in this list has a non-empty value.
18955	// This may be used to include null fields in Patch requests.
18956	NullFields []string `json:"-"`
18957}
18958
18959func (s *InstanceManagedByIgmErrorInstanceActionDetails) MarshalJSON() ([]byte, error) {
18960	type NoMethod InstanceManagedByIgmErrorInstanceActionDetails
18961	raw := NoMethod(*s)
18962	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18963}
18964
18965type InstanceManagedByIgmErrorManagedInstanceError struct {
18966	// Code: [Output Only] Error code.
18967	Code string `json:"code,omitempty"`
18968
18969	// Message: [Output Only] Error message.
18970	Message string `json:"message,omitempty"`
18971
18972	// ForceSendFields is a list of field names (e.g. "Code") to
18973	// unconditionally include in API requests. By default, fields with
18974	// empty values are omitted from API requests. However, any non-pointer,
18975	// non-interface field appearing in ForceSendFields will be sent to the
18976	// server regardless of whether the field is empty or not. This may be
18977	// used to include empty fields in Patch requests.
18978	ForceSendFields []string `json:"-"`
18979
18980	// NullFields is a list of field names (e.g. "Code") to include in API
18981	// requests with the JSON null value. By default, fields with empty
18982	// values are omitted from API requests. However, any field with an
18983	// empty value appearing in NullFields will be sent to the server as
18984	// null. It is an error if a field in this list has a non-empty value.
18985	// This may be used to include null fields in Patch requests.
18986	NullFields []string `json:"-"`
18987}
18988
18989func (s *InstanceManagedByIgmErrorManagedInstanceError) MarshalJSON() ([]byte, error) {
18990	type NoMethod InstanceManagedByIgmErrorManagedInstanceError
18991	raw := NoMethod(*s)
18992	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18993}
18994
18995type InstanceMoveRequest struct {
18996	// DestinationZone: The URL of the destination zone to move the
18997	// instance. This can be a full or partial URL. For example, the
18998	// following are all valid URLs to a zone:
18999	// - https://www.googleapis.com/compute/v1/projects/project/zones/zone
19000	//
19001	// - projects/project/zones/zone
19002	// - zones/zone
19003	DestinationZone string `json:"destinationZone,omitempty"`
19004
19005	// TargetInstance: The URL of the target instance to move. This can be a
19006	// full or partial URL. For example, the following are all valid URLs to
19007	// an instance:
19008	// -
19009	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance
19010	//
19011	// - projects/project/zones/zone/instances/instance
19012	// - zones/zone/instances/instance
19013	TargetInstance string `json:"targetInstance,omitempty"`
19014
19015	// ForceSendFields is a list of field names (e.g. "DestinationZone") to
19016	// unconditionally include in API requests. By default, fields with
19017	// empty values are omitted from API requests. However, any non-pointer,
19018	// non-interface field appearing in ForceSendFields will be sent to the
19019	// server regardless of whether the field is empty or not. This may be
19020	// used to include empty fields in Patch requests.
19021	ForceSendFields []string `json:"-"`
19022
19023	// NullFields is a list of field names (e.g. "DestinationZone") to
19024	// include in API requests with the JSON null value. By default, fields
19025	// with empty values are omitted from API requests. However, any field
19026	// with an empty value appearing in NullFields will be sent to the
19027	// server as null. It is an error if a field in this list has a
19028	// non-empty value. This may be used to include null fields in Patch
19029	// requests.
19030	NullFields []string `json:"-"`
19031}
19032
19033func (s *InstanceMoveRequest) MarshalJSON() ([]byte, error) {
19034	type NoMethod InstanceMoveRequest
19035	raw := NoMethod(*s)
19036	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19037}
19038
19039type InstanceProperties struct {
19040	// AdvancedMachineFeatures: Controls for advanced machine-related
19041	// behavior features.
19042	AdvancedMachineFeatures *AdvancedMachineFeatures `json:"advancedMachineFeatures,omitempty"`
19043
19044	// CanIpForward: Enables instances created based on these properties to
19045	// send packets with source IP addresses other than their own and
19046	// receive packets with destination IP addresses other than their own.
19047	// If these instances will be used as an IP gateway or it will be set as
19048	// the next-hop in a Route resource, specify true. If unsure, leave this
19049	// set to false. See the Enable IP forwarding documentation for more
19050	// information.
19051	CanIpForward bool `json:"canIpForward,omitempty"`
19052
19053	// ConfidentialInstanceConfig: Specifies the Confidential Instance
19054	// options.
19055	ConfidentialInstanceConfig *ConfidentialInstanceConfig `json:"confidentialInstanceConfig,omitempty"`
19056
19057	// Description: An optional text description for the instances that are
19058	// created from these properties.
19059	Description string `json:"description,omitempty"`
19060
19061	// Disks: An array of disks that are associated with the instances that
19062	// are created from these properties.
19063	Disks []*AttachedDisk `json:"disks,omitempty"`
19064
19065	// DisplayDevice: Display Device properties to enable support for remote
19066	// display products like: Teradici, VNC and TeamViewer
19067	DisplayDevice *DisplayDevice `json:"displayDevice,omitempty"`
19068
19069	// GuestAccelerators: A list of guest accelerator cards' type and count
19070	// to use for instances created from these properties.
19071	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
19072
19073	// Labels: Labels to apply to instances that are created from these
19074	// properties.
19075	Labels map[string]string `json:"labels,omitempty"`
19076
19077	// MachineType: The machine type to use for instances that are created
19078	// from these properties.
19079	MachineType string `json:"machineType,omitempty"`
19080
19081	// Metadata: The metadata key/value pairs to assign to instances that
19082	// are created from these properties. These pairs can consist of custom
19083	// metadata or predefined keys. See Project and instance metadata for
19084	// more information.
19085	Metadata *Metadata `json:"metadata,omitempty"`
19086
19087	// MinCpuPlatform: Minimum cpu/platform to be used by instances. The
19088	// instance may be scheduled on the specified or newer cpu/platform.
19089	// Applicable values are the friendly names of CPU platforms, such as
19090	// minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy
19091	// Bridge". For more information, read Specifying a Minimum CPU
19092	// Platform.
19093	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
19094
19095	// NetworkInterfaces: An array of network access configurations for this
19096	// interface.
19097	NetworkInterfaces []*NetworkInterface `json:"networkInterfaces,omitempty"`
19098
19099	NetworkPerformanceConfig *NetworkPerformanceConfig `json:"networkPerformanceConfig,omitempty"`
19100
19101	// PostKeyRevocationActionType: PostKeyRevocationActionType of the
19102	// instance.
19103	//
19104	// Possible values:
19105	//   "NOOP"
19106	//   "POST_KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED"
19107	//   "SHUTDOWN"
19108	PostKeyRevocationActionType string `json:"postKeyRevocationActionType,omitempty"`
19109
19110	// PrivateIpv6GoogleAccess: The private IPv6 google access type for VMs.
19111	// If not specified, use  INHERIT_FROM_SUBNETWORK as default.
19112	//
19113	// Possible values:
19114	//   "ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE"
19115	//   "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE"
19116	//   "INHERIT_FROM_SUBNETWORK"
19117	PrivateIpv6GoogleAccess string `json:"privateIpv6GoogleAccess,omitempty"`
19118
19119	// ReservationAffinity: Specifies the reservations that instances can
19120	// consume from.
19121	ReservationAffinity *ReservationAffinity `json:"reservationAffinity,omitempty"`
19122
19123	// ResourcePolicies: Resource policies (names, not ULRs) applied to
19124	// instances created from these properties.
19125	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
19126
19127	// Scheduling: Specifies the scheduling options for the instances that
19128	// are created from these properties.
19129	Scheduling *Scheduling `json:"scheduling,omitempty"`
19130
19131	// ServiceAccounts: A list of service accounts with specified scopes.
19132	// Access tokens for these service accounts are available to the
19133	// instances that are created from these properties. Use metadata
19134	// queries to obtain the access tokens for these instances.
19135	ServiceAccounts []*ServiceAccount `json:"serviceAccounts,omitempty"`
19136
19137	ShieldedInstanceConfig *ShieldedInstanceConfig `json:"shieldedInstanceConfig,omitempty"`
19138
19139	// ShieldedVmConfig: Specifies the Shielded VM options for the instances
19140	// that are created from these properties.
19141	ShieldedVmConfig *ShieldedVmConfig `json:"shieldedVmConfig,omitempty"`
19142
19143	// Tags: A list of tags to apply to the instances that are created from
19144	// these properties. The tags identify valid sources or targets for
19145	// network firewalls. The setTags method can modify this list of tags.
19146	// Each tag within the list must comply with RFC1035.
19147	Tags *Tags `json:"tags,omitempty"`
19148
19149	// ForceSendFields is a list of field names (e.g.
19150	// "AdvancedMachineFeatures") to unconditionally include in API
19151	// requests. By default, fields with empty values are omitted from API
19152	// requests. However, any non-pointer, non-interface field appearing in
19153	// ForceSendFields will be sent to the server regardless of whether the
19154	// field is empty or not. This may be used to include empty fields in
19155	// Patch requests.
19156	ForceSendFields []string `json:"-"`
19157
19158	// NullFields is a list of field names (e.g. "AdvancedMachineFeatures")
19159	// to include in API requests with the JSON null value. By default,
19160	// fields with empty values are omitted from API requests. However, any
19161	// field with an empty value appearing in NullFields will be sent to the
19162	// server as null. It is an error if a field in this list has a
19163	// non-empty value. This may be used to include null fields in Patch
19164	// requests.
19165	NullFields []string `json:"-"`
19166}
19167
19168func (s *InstanceProperties) MarshalJSON() ([]byte, error) {
19169	type NoMethod InstanceProperties
19170	raw := NoMethod(*s)
19171	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19172}
19173
19174type InstanceReference struct {
19175	// Instance: The URL for a specific instance.
19176	Instance string `json:"instance,omitempty"`
19177
19178	// ForceSendFields is a list of field names (e.g. "Instance") to
19179	// unconditionally include in API requests. By default, fields with
19180	// empty values are omitted from API requests. However, any non-pointer,
19181	// non-interface field appearing in ForceSendFields will be sent to the
19182	// server regardless of whether the field is empty or not. This may be
19183	// used to include empty fields in Patch requests.
19184	ForceSendFields []string `json:"-"`
19185
19186	// NullFields is a list of field names (e.g. "Instance") to include in
19187	// API requests with the JSON null value. By default, fields with empty
19188	// values are omitted from API requests. However, any field with an
19189	// empty value appearing in NullFields will be sent to the server as
19190	// null. It is an error if a field in this list has a non-empty value.
19191	// This may be used to include null fields in Patch requests.
19192	NullFields []string `json:"-"`
19193}
19194
19195func (s *InstanceReference) MarshalJSON() ([]byte, error) {
19196	type NoMethod InstanceReference
19197	raw := NoMethod(*s)
19198	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19199}
19200
19201// InstanceTemplate: Represents an Instance Template resource.
19202//
19203// You can use instance templates to create VM instances and managed
19204// instance groups. For more information, read Instance Templates. (==
19205// resource_for {$api_version}.instanceTemplates ==)
19206type InstanceTemplate struct {
19207	// CreationTimestamp: [Output Only] The creation timestamp for this
19208	// instance template in RFC3339 text format.
19209	CreationTimestamp string `json:"creationTimestamp,omitempty"`
19210
19211	// Description: An optional description of this resource. Provide this
19212	// property when you create the resource.
19213	Description string `json:"description,omitempty"`
19214
19215	// Id: [Output Only] A unique identifier for this instance template. The
19216	// server defines this identifier.
19217	Id uint64 `json:"id,omitempty,string"`
19218
19219	// Kind: [Output Only] The resource type, which is always
19220	// compute#instanceTemplate for instance templates.
19221	Kind string `json:"kind,omitempty"`
19222
19223	// Name: Name of the resource; provided by the client when the resource
19224	// is created. The name must be 1-63 characters long, and comply with
19225	// RFC1035. Specifically, the name must be 1-63 characters long and
19226	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
19227	// the first character must be a lowercase letter, and all following
19228	// characters must be a dash, lowercase letter, or digit, except the
19229	// last character, which cannot be a dash.
19230	Name string `json:"name,omitempty"`
19231
19232	// Properties: The instance properties for this instance template.
19233	Properties *InstanceProperties `json:"properties,omitempty"`
19234
19235	// SelfLink: [Output Only] The URL for this instance template. The
19236	// server defines this URL.
19237	SelfLink string `json:"selfLink,omitempty"`
19238
19239	// SourceInstance: The source instance used to create the template. You
19240	// can provide this as a partial or full URL to the resource. For
19241	// example, the following are valid values:
19242	// -
19243	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance
19244	//
19245	// - projects/project/zones/zone/instances/instance
19246	SourceInstance string `json:"sourceInstance,omitempty"`
19247
19248	// SourceInstanceParams: The source instance params to use to create
19249	// this instance template.
19250	SourceInstanceParams *SourceInstanceParams `json:"sourceInstanceParams,omitempty"`
19251
19252	// ServerResponse contains the HTTP response code and headers from the
19253	// server.
19254	googleapi.ServerResponse `json:"-"`
19255
19256	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
19257	// to unconditionally include in API requests. By default, fields with
19258	// empty values are omitted from API requests. However, any non-pointer,
19259	// non-interface field appearing in ForceSendFields will be sent to the
19260	// server regardless of whether the field is empty or not. This may be
19261	// used to include empty fields in Patch requests.
19262	ForceSendFields []string `json:"-"`
19263
19264	// NullFields is a list of field names (e.g. "CreationTimestamp") to
19265	// include in API requests with the JSON null value. By default, fields
19266	// with empty values are omitted from API requests. However, any field
19267	// with an empty value appearing in NullFields will be sent to the
19268	// server as null. It is an error if a field in this list has a
19269	// non-empty value. This may be used to include null fields in Patch
19270	// requests.
19271	NullFields []string `json:"-"`
19272}
19273
19274func (s *InstanceTemplate) MarshalJSON() ([]byte, error) {
19275	type NoMethod InstanceTemplate
19276	raw := NoMethod(*s)
19277	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19278}
19279
19280// InstanceTemplateList: A list of instance templates.
19281type InstanceTemplateList struct {
19282	// Id: [Output Only] Unique identifier for the resource; defined by the
19283	// server.
19284	Id string `json:"id,omitempty"`
19285
19286	// Items: A list of InstanceTemplate resources.
19287	Items []*InstanceTemplate `json:"items,omitempty"`
19288
19289	// Kind: [Output Only] The resource type, which is always
19290	// compute#instanceTemplatesListResponse for instance template lists.
19291	Kind string `json:"kind,omitempty"`
19292
19293	// NextPageToken: [Output Only] This token allows you to get the next
19294	// page of results for list requests. If the number of results is larger
19295	// than maxResults, use the nextPageToken as a value for the query
19296	// parameter pageToken in the next list request. Subsequent list
19297	// requests will have their own nextPageToken to continue paging through
19298	// the results.
19299	NextPageToken string `json:"nextPageToken,omitempty"`
19300
19301	// SelfLink: [Output Only] Server-defined URL for this resource.
19302	SelfLink string `json:"selfLink,omitempty"`
19303
19304	// Warning: [Output Only] Informational warning message.
19305	Warning *InstanceTemplateListWarning `json:"warning,omitempty"`
19306
19307	// ServerResponse contains the HTTP response code and headers from the
19308	// server.
19309	googleapi.ServerResponse `json:"-"`
19310
19311	// ForceSendFields is a list of field names (e.g. "Id") to
19312	// unconditionally include in API requests. By default, fields with
19313	// empty values are omitted from API requests. However, any non-pointer,
19314	// non-interface field appearing in ForceSendFields will be sent to the
19315	// server regardless of whether the field is empty or not. This may be
19316	// used to include empty fields in Patch requests.
19317	ForceSendFields []string `json:"-"`
19318
19319	// NullFields is a list of field names (e.g. "Id") to include in API
19320	// requests with the JSON null value. By default, fields with empty
19321	// values are omitted from API requests. However, any field with an
19322	// empty value appearing in NullFields will be sent to the server as
19323	// null. It is an error if a field in this list has a non-empty value.
19324	// This may be used to include null fields in Patch requests.
19325	NullFields []string `json:"-"`
19326}
19327
19328func (s *InstanceTemplateList) MarshalJSON() ([]byte, error) {
19329	type NoMethod InstanceTemplateList
19330	raw := NoMethod(*s)
19331	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19332}
19333
19334// InstanceTemplateListWarning: [Output Only] Informational warning
19335// message.
19336type InstanceTemplateListWarning struct {
19337	// Code: [Output Only] A warning code, if applicable. For example,
19338	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
19339	// the response.
19340	//
19341	// Possible values:
19342	//   "CLEANUP_FAILED"
19343	//   "DEPRECATED_RESOURCE_USED"
19344	//   "DEPRECATED_TYPE_USED"
19345	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
19346	//   "EXPERIMENTAL_TYPE_USED"
19347	//   "EXTERNAL_API_WARNING"
19348	//   "FIELD_VALUE_OVERRIDEN"
19349	//   "INJECTED_KERNELS_DEPRECATED"
19350	//   "LARGE_DEPLOYMENT_WARNING"
19351	//   "MISSING_TYPE_DEPENDENCY"
19352	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
19353	//   "NEXT_HOP_CANNOT_IP_FORWARD"
19354	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
19355	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
19356	//   "NEXT_HOP_NOT_RUNNING"
19357	//   "NOT_CRITICAL_ERROR"
19358	//   "NO_RESULTS_ON_PAGE"
19359	//   "PARTIAL_SUCCESS"
19360	//   "REQUIRED_TOS_AGREEMENT"
19361	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
19362	//   "RESOURCE_NOT_DELETED"
19363	//   "SCHEMA_VALIDATION_IGNORED"
19364	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
19365	//   "UNDECLARED_PROPERTIES"
19366	//   "UNREACHABLE"
19367	Code string `json:"code,omitempty"`
19368
19369	// Data: [Output Only] Metadata about this warning in key: value format.
19370	// For example:
19371	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
19372	Data []*InstanceTemplateListWarningData `json:"data,omitempty"`
19373
19374	// Message: [Output Only] A human-readable description of the warning
19375	// code.
19376	Message string `json:"message,omitempty"`
19377
19378	// ForceSendFields is a list of field names (e.g. "Code") to
19379	// unconditionally include in API requests. By default, fields with
19380	// empty values are omitted from API requests. However, any non-pointer,
19381	// non-interface field appearing in ForceSendFields will be sent to the
19382	// server regardless of whether the field is empty or not. This may be
19383	// used to include empty fields in Patch requests.
19384	ForceSendFields []string `json:"-"`
19385
19386	// NullFields is a list of field names (e.g. "Code") to include in API
19387	// requests with the JSON null value. By default, fields with empty
19388	// values are omitted from API requests. However, any field with an
19389	// empty value appearing in NullFields will be sent to the server as
19390	// null. It is an error if a field in this list has a non-empty value.
19391	// This may be used to include null fields in Patch requests.
19392	NullFields []string `json:"-"`
19393}
19394
19395func (s *InstanceTemplateListWarning) MarshalJSON() ([]byte, error) {
19396	type NoMethod InstanceTemplateListWarning
19397	raw := NoMethod(*s)
19398	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19399}
19400
19401type InstanceTemplateListWarningData struct {
19402	// Key: [Output Only] A key that provides more detail on the warning
19403	// being returned. For example, for warnings where there are no results
19404	// in a list request for a particular zone, this key might be scope and
19405	// the key value might be the zone name. Other examples might be a key
19406	// indicating a deprecated resource and a suggested replacement, or a
19407	// warning about invalid network settings (for example, if an instance
19408	// attempts to perform IP forwarding but is not enabled for IP
19409	// forwarding).
19410	Key string `json:"key,omitempty"`
19411
19412	// Value: [Output Only] A warning data value corresponding to the key.
19413	Value string `json:"value,omitempty"`
19414
19415	// ForceSendFields is a list of field names (e.g. "Key") to
19416	// unconditionally include in API requests. By default, fields with
19417	// empty values are omitted from API requests. However, any non-pointer,
19418	// non-interface field appearing in ForceSendFields will be sent to the
19419	// server regardless of whether the field is empty or not. This may be
19420	// used to include empty fields in Patch requests.
19421	ForceSendFields []string `json:"-"`
19422
19423	// NullFields is a list of field names (e.g. "Key") to include in API
19424	// requests with the JSON null value. By default, fields with empty
19425	// values are omitted from API requests. However, any field with an
19426	// empty value appearing in NullFields will be sent to the server as
19427	// null. It is an error if a field in this list has a non-empty value.
19428	// This may be used to include null fields in Patch requests.
19429	NullFields []string `json:"-"`
19430}
19431
19432func (s *InstanceTemplateListWarningData) MarshalJSON() ([]byte, error) {
19433	type NoMethod InstanceTemplateListWarningData
19434	raw := NoMethod(*s)
19435	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19436}
19437
19438type InstanceWithNamedPorts struct {
19439	// Instance: [Output Only] The URL of the instance.
19440	Instance string `json:"instance,omitempty"`
19441
19442	// NamedPorts: [Output Only] The named ports that belong to this
19443	// instance group.
19444	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
19445
19446	// Status: [Output Only] The status of the instance.
19447	//
19448	// Possible values:
19449	//   "DEPROVISIONING"
19450	//   "PROVISIONING"
19451	//   "REPAIRING"
19452	//   "RUNNING"
19453	//   "STAGING"
19454	//   "STOPPED"
19455	//   "STOPPING"
19456	//   "SUSPENDED"
19457	//   "SUSPENDING"
19458	//   "TERMINATED"
19459	Status string `json:"status,omitempty"`
19460
19461	// ForceSendFields is a list of field names (e.g. "Instance") to
19462	// unconditionally include in API requests. By default, fields with
19463	// empty values are omitted from API requests. However, any non-pointer,
19464	// non-interface field appearing in ForceSendFields will be sent to the
19465	// server regardless of whether the field is empty or not. This may be
19466	// used to include empty fields in Patch requests.
19467	ForceSendFields []string `json:"-"`
19468
19469	// NullFields is a list of field names (e.g. "Instance") to include in
19470	// API requests with the JSON null value. By default, fields with empty
19471	// values are omitted from API requests. However, any field with an
19472	// empty value appearing in NullFields will be sent to the server as
19473	// null. It is an error if a field in this list has a non-empty value.
19474	// This may be used to include null fields in Patch requests.
19475	NullFields []string `json:"-"`
19476}
19477
19478func (s *InstanceWithNamedPorts) MarshalJSON() ([]byte, error) {
19479	type NoMethod InstanceWithNamedPorts
19480	raw := NoMethod(*s)
19481	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19482}
19483
19484type InstancesAddResourcePoliciesRequest struct {
19485	// ResourcePolicies: Resource policies to be added to this instance.
19486	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
19487
19488	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
19489	// unconditionally include in API requests. By default, fields with
19490	// empty values are omitted from API requests. However, any non-pointer,
19491	// non-interface field appearing in ForceSendFields will be sent to the
19492	// server regardless of whether the field is empty or not. This may be
19493	// used to include empty fields in Patch requests.
19494	ForceSendFields []string `json:"-"`
19495
19496	// NullFields is a list of field names (e.g. "ResourcePolicies") to
19497	// include in API requests with the JSON null value. By default, fields
19498	// with empty values are omitted from API requests. However, any field
19499	// with an empty value appearing in NullFields will be sent to the
19500	// server as null. It is an error if a field in this list has a
19501	// non-empty value. This may be used to include null fields in Patch
19502	// requests.
19503	NullFields []string `json:"-"`
19504}
19505
19506func (s *InstancesAddResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
19507	type NoMethod InstancesAddResourcePoliciesRequest
19508	raw := NoMethod(*s)
19509	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19510}
19511
19512type InstancesGetEffectiveFirewallsResponse struct {
19513	// FirewallPolicys: Effective firewalls from firewall policies.
19514	FirewallPolicys []*InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy `json:"firewallPolicys,omitempty"`
19515
19516	// Firewalls: Effective firewalls on the instance.
19517	Firewalls []*Firewall `json:"firewalls,omitempty"`
19518
19519	// OrganizationFirewalls: Effective firewalls from organization
19520	// policies.
19521	OrganizationFirewalls []*InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy `json:"organizationFirewalls,omitempty"`
19522
19523	// ServerResponse contains the HTTP response code and headers from the
19524	// server.
19525	googleapi.ServerResponse `json:"-"`
19526
19527	// ForceSendFields is a list of field names (e.g. "FirewallPolicys") to
19528	// unconditionally include in API requests. By default, fields with
19529	// empty values are omitted from API requests. However, any non-pointer,
19530	// non-interface field appearing in ForceSendFields will be sent to the
19531	// server regardless of whether the field is empty or not. This may be
19532	// used to include empty fields in Patch requests.
19533	ForceSendFields []string `json:"-"`
19534
19535	// NullFields is a list of field names (e.g. "FirewallPolicys") to
19536	// include in API requests with the JSON null value. By default, fields
19537	// with empty values are omitted from API requests. However, any field
19538	// with an empty value appearing in NullFields will be sent to the
19539	// server as null. It is an error if a field in this list has a
19540	// non-empty value. This may be used to include null fields in Patch
19541	// requests.
19542	NullFields []string `json:"-"`
19543}
19544
19545func (s *InstancesGetEffectiveFirewallsResponse) MarshalJSON() ([]byte, error) {
19546	type NoMethod InstancesGetEffectiveFirewallsResponse
19547	raw := NoMethod(*s)
19548	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19549}
19550
19551type InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy struct {
19552	// DisplayName: [Output Only] Deprecated, please use short name instead.
19553	// The display name of the firewall policy.
19554	DisplayName string `json:"displayName,omitempty"`
19555
19556	// Name: [Output Only] The name of the firewall policy.
19557	Name string `json:"name,omitempty"`
19558
19559	// Rules: The rules that apply to the network.
19560	Rules []*FirewallPolicyRule `json:"rules,omitempty"`
19561
19562	// ShortName: [Output Only] The short name of the firewall policy.
19563	ShortName string `json:"shortName,omitempty"`
19564
19565	// Type: [Output Only] The type of the firewall policy.
19566	//
19567	// Possible values:
19568	//   "HIERARCHY"
19569	//   "UNSPECIFIED"
19570	Type string `json:"type,omitempty"`
19571
19572	// ForceSendFields is a list of field names (e.g. "DisplayName") to
19573	// unconditionally include in API requests. By default, fields with
19574	// empty values are omitted from API requests. However, any non-pointer,
19575	// non-interface field appearing in ForceSendFields will be sent to the
19576	// server regardless of whether the field is empty or not. This may be
19577	// used to include empty fields in Patch requests.
19578	ForceSendFields []string `json:"-"`
19579
19580	// NullFields is a list of field names (e.g. "DisplayName") to include
19581	// in API requests with the JSON null value. By default, fields with
19582	// empty values are omitted from API requests. However, any field with
19583	// an empty value appearing in NullFields will be sent to the server as
19584	// null. It is an error if a field in this list has a non-empty value.
19585	// This may be used to include null fields in Patch requests.
19586	NullFields []string `json:"-"`
19587}
19588
19589func (s *InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy) MarshalJSON() ([]byte, error) {
19590	type NoMethod InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy
19591	raw := NoMethod(*s)
19592	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19593}
19594
19595// InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy: A
19596// pruned SecurityPolicy containing ID and any applicable firewall
19597// rules.
19598type InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy struct {
19599	// Id: The unique identifier for the security policy. This identifier is
19600	// defined by the server.
19601	Id uint64 `json:"id,omitempty,string"`
19602
19603	// Rules: The rules that apply to the network.
19604	Rules []*SecurityPolicyRule `json:"rules,omitempty"`
19605
19606	// ForceSendFields is a list of field names (e.g. "Id") to
19607	// unconditionally include in API requests. By default, fields with
19608	// empty values are omitted from API requests. However, any non-pointer,
19609	// non-interface field appearing in ForceSendFields will be sent to the
19610	// server regardless of whether the field is empty or not. This may be
19611	// used to include empty fields in Patch requests.
19612	ForceSendFields []string `json:"-"`
19613
19614	// NullFields is a list of field names (e.g. "Id") to include in API
19615	// requests with the JSON null value. By default, fields with empty
19616	// values are omitted from API requests. However, any field with an
19617	// empty value appearing in NullFields will be sent to the server as
19618	// null. It is an error if a field in this list has a non-empty value.
19619	// This may be used to include null fields in Patch requests.
19620	NullFields []string `json:"-"`
19621}
19622
19623func (s *InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy) MarshalJSON() ([]byte, error) {
19624	type NoMethod InstancesGetEffectiveFirewallsResponseOrganizationFirewallPolicy
19625	raw := NoMethod(*s)
19626	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19627}
19628
19629type InstancesRemoveResourcePoliciesRequest struct {
19630	// ResourcePolicies: Resource policies to be removed from this instance.
19631	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
19632
19633	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
19634	// unconditionally include in API requests. By default, fields with
19635	// empty values are omitted from API requests. However, any non-pointer,
19636	// non-interface field appearing in ForceSendFields will be sent to the
19637	// server regardless of whether the field is empty or not. This may be
19638	// used to include empty fields in Patch requests.
19639	ForceSendFields []string `json:"-"`
19640
19641	// NullFields is a list of field names (e.g. "ResourcePolicies") to
19642	// include in API requests with the JSON null value. By default, fields
19643	// with empty values are omitted from API requests. However, any field
19644	// with an empty value appearing in NullFields will be sent to the
19645	// server as null. It is an error if a field in this list has a
19646	// non-empty value. This may be used to include null fields in Patch
19647	// requests.
19648	NullFields []string `json:"-"`
19649}
19650
19651func (s *InstancesRemoveResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
19652	type NoMethod InstancesRemoveResourcePoliciesRequest
19653	raw := NoMethod(*s)
19654	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19655}
19656
19657type InstancesResumeRequest struct {
19658	// Disks: Array of disks associated with this instance that are
19659	// protected with a customer-supplied encryption key.
19660	//
19661	// In order to resume the instance, the disk url and its corresponding
19662	// key must be provided.
19663	//
19664	// If the disk is not protected with a customer-supplied encryption key
19665	// it should not be specified.
19666	Disks []*CustomerEncryptionKeyProtectedDisk `json:"disks,omitempty"`
19667
19668	// InstanceEncryptionKey: Decrypts data associated with an instance that
19669	// is protected with a customer-supplied encryption key.
19670	//
19671	// If the instance you are starting is protected with a
19672	// customer-supplied encryption key, the correct key must be provided
19673	// otherwise the instance resume will not succeed.
19674	InstanceEncryptionKey *CustomerEncryptionKey `json:"instanceEncryptionKey,omitempty"`
19675
19676	// ForceSendFields is a list of field names (e.g. "Disks") to
19677	// unconditionally include in API requests. By default, fields with
19678	// empty values are omitted from API requests. However, any non-pointer,
19679	// non-interface field appearing in ForceSendFields will be sent to the
19680	// server regardless of whether the field is empty or not. This may be
19681	// used to include empty fields in Patch requests.
19682	ForceSendFields []string `json:"-"`
19683
19684	// NullFields is a list of field names (e.g. "Disks") to include in API
19685	// requests with the JSON null value. By default, fields with empty
19686	// values are omitted from API requests. However, any field with an
19687	// empty value appearing in NullFields will be sent to the server as
19688	// null. It is an error if a field in this list has a non-empty value.
19689	// This may be used to include null fields in Patch requests.
19690	NullFields []string `json:"-"`
19691}
19692
19693func (s *InstancesResumeRequest) MarshalJSON() ([]byte, error) {
19694	type NoMethod InstancesResumeRequest
19695	raw := NoMethod(*s)
19696	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19697}
19698
19699type InstancesScopedList struct {
19700	// Instances: [Output Only] A list of instances contained in this scope.
19701	Instances []*Instance `json:"instances,omitempty"`
19702
19703	// Warning: [Output Only] Informational warning which replaces the list
19704	// of instances when the list is empty.
19705	Warning *InstancesScopedListWarning `json:"warning,omitempty"`
19706
19707	// ForceSendFields is a list of field names (e.g. "Instances") to
19708	// unconditionally include in API requests. By default, fields with
19709	// empty values are omitted from API requests. However, any non-pointer,
19710	// non-interface field appearing in ForceSendFields will be sent to the
19711	// server regardless of whether the field is empty or not. This may be
19712	// used to include empty fields in Patch requests.
19713	ForceSendFields []string `json:"-"`
19714
19715	// NullFields is a list of field names (e.g. "Instances") to include in
19716	// API requests with the JSON null value. By default, fields with empty
19717	// values are omitted from API requests. However, any field with an
19718	// empty value appearing in NullFields will be sent to the server as
19719	// null. It is an error if a field in this list has a non-empty value.
19720	// This may be used to include null fields in Patch requests.
19721	NullFields []string `json:"-"`
19722}
19723
19724func (s *InstancesScopedList) MarshalJSON() ([]byte, error) {
19725	type NoMethod InstancesScopedList
19726	raw := NoMethod(*s)
19727	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19728}
19729
19730// InstancesScopedListWarning: [Output Only] Informational warning which
19731// replaces the list of instances when the list is empty.
19732type InstancesScopedListWarning struct {
19733	// Code: [Output Only] A warning code, if applicable. For example,
19734	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
19735	// the response.
19736	//
19737	// Possible values:
19738	//   "CLEANUP_FAILED"
19739	//   "DEPRECATED_RESOURCE_USED"
19740	//   "DEPRECATED_TYPE_USED"
19741	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
19742	//   "EXPERIMENTAL_TYPE_USED"
19743	//   "EXTERNAL_API_WARNING"
19744	//   "FIELD_VALUE_OVERRIDEN"
19745	//   "INJECTED_KERNELS_DEPRECATED"
19746	//   "LARGE_DEPLOYMENT_WARNING"
19747	//   "MISSING_TYPE_DEPENDENCY"
19748	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
19749	//   "NEXT_HOP_CANNOT_IP_FORWARD"
19750	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
19751	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
19752	//   "NEXT_HOP_NOT_RUNNING"
19753	//   "NOT_CRITICAL_ERROR"
19754	//   "NO_RESULTS_ON_PAGE"
19755	//   "PARTIAL_SUCCESS"
19756	//   "REQUIRED_TOS_AGREEMENT"
19757	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
19758	//   "RESOURCE_NOT_DELETED"
19759	//   "SCHEMA_VALIDATION_IGNORED"
19760	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
19761	//   "UNDECLARED_PROPERTIES"
19762	//   "UNREACHABLE"
19763	Code string `json:"code,omitempty"`
19764
19765	// Data: [Output Only] Metadata about this warning in key: value format.
19766	// For example:
19767	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
19768	Data []*InstancesScopedListWarningData `json:"data,omitempty"`
19769
19770	// Message: [Output Only] A human-readable description of the warning
19771	// code.
19772	Message string `json:"message,omitempty"`
19773
19774	// ForceSendFields is a list of field names (e.g. "Code") to
19775	// unconditionally include in API requests. By default, fields with
19776	// empty values are omitted from API requests. However, any non-pointer,
19777	// non-interface field appearing in ForceSendFields will be sent to the
19778	// server regardless of whether the field is empty or not. This may be
19779	// used to include empty fields in Patch requests.
19780	ForceSendFields []string `json:"-"`
19781
19782	// NullFields is a list of field names (e.g. "Code") to include in API
19783	// requests with the JSON null value. By default, fields with empty
19784	// values are omitted from API requests. However, any field with an
19785	// empty value appearing in NullFields will be sent to the server as
19786	// null. It is an error if a field in this list has a non-empty value.
19787	// This may be used to include null fields in Patch requests.
19788	NullFields []string `json:"-"`
19789}
19790
19791func (s *InstancesScopedListWarning) MarshalJSON() ([]byte, error) {
19792	type NoMethod InstancesScopedListWarning
19793	raw := NoMethod(*s)
19794	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19795}
19796
19797type InstancesScopedListWarningData struct {
19798	// Key: [Output Only] A key that provides more detail on the warning
19799	// being returned. For example, for warnings where there are no results
19800	// in a list request for a particular zone, this key might be scope and
19801	// the key value might be the zone name. Other examples might be a key
19802	// indicating a deprecated resource and a suggested replacement, or a
19803	// warning about invalid network settings (for example, if an instance
19804	// attempts to perform IP forwarding but is not enabled for IP
19805	// forwarding).
19806	Key string `json:"key,omitempty"`
19807
19808	// Value: [Output Only] A warning data value corresponding to the key.
19809	Value string `json:"value,omitempty"`
19810
19811	// ForceSendFields is a list of field names (e.g. "Key") to
19812	// unconditionally include in API requests. By default, fields with
19813	// empty values are omitted from API requests. However, any non-pointer,
19814	// non-interface field appearing in ForceSendFields will be sent to the
19815	// server regardless of whether the field is empty or not. This may be
19816	// used to include empty fields in Patch requests.
19817	ForceSendFields []string `json:"-"`
19818
19819	// NullFields is a list of field names (e.g. "Key") to include in API
19820	// requests with the JSON null value. By default, fields with empty
19821	// values are omitted from API requests. However, any field with an
19822	// empty value appearing in NullFields will be sent to the server as
19823	// null. It is an error if a field in this list has a non-empty value.
19824	// This may be used to include null fields in Patch requests.
19825	NullFields []string `json:"-"`
19826}
19827
19828func (s *InstancesScopedListWarningData) MarshalJSON() ([]byte, error) {
19829	type NoMethod InstancesScopedListWarningData
19830	raw := NoMethod(*s)
19831	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19832}
19833
19834type InstancesSetLabelsRequest struct {
19835	// LabelFingerprint: Fingerprint of the previous set of labels for this
19836	// resource, used to prevent conflicts. Provide the latest fingerprint
19837	// value when making a request to add or change labels.
19838	LabelFingerprint string `json:"labelFingerprint,omitempty"`
19839
19840	Labels map[string]string `json:"labels,omitempty"`
19841
19842	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") to
19843	// unconditionally include in API requests. By default, fields with
19844	// empty values are omitted from API requests. However, any non-pointer,
19845	// non-interface field appearing in ForceSendFields will be sent to the
19846	// server regardless of whether the field is empty or not. This may be
19847	// used to include empty fields in Patch requests.
19848	ForceSendFields []string `json:"-"`
19849
19850	// NullFields is a list of field names (e.g. "LabelFingerprint") to
19851	// include in API requests with the JSON null value. By default, fields
19852	// with empty values are omitted from API requests. However, any field
19853	// with an empty value appearing in NullFields will be sent to the
19854	// server as null. It is an error if a field in this list has a
19855	// non-empty value. This may be used to include null fields in Patch
19856	// requests.
19857	NullFields []string `json:"-"`
19858}
19859
19860func (s *InstancesSetLabelsRequest) MarshalJSON() ([]byte, error) {
19861	type NoMethod InstancesSetLabelsRequest
19862	raw := NoMethod(*s)
19863	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19864}
19865
19866type InstancesSetMachineResourcesRequest struct {
19867	// GuestAccelerators: A list of the type and count of accelerator cards
19868	// attached to the instance.
19869	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
19870
19871	// ForceSendFields is a list of field names (e.g. "GuestAccelerators")
19872	// to unconditionally include in API requests. By default, fields with
19873	// empty values are omitted from API requests. However, any non-pointer,
19874	// non-interface field appearing in ForceSendFields will be sent to the
19875	// server regardless of whether the field is empty or not. This may be
19876	// used to include empty fields in Patch requests.
19877	ForceSendFields []string `json:"-"`
19878
19879	// NullFields is a list of field names (e.g. "GuestAccelerators") to
19880	// include in API requests with the JSON null value. By default, fields
19881	// with empty values are omitted from API requests. However, any field
19882	// with an empty value appearing in NullFields will be sent to the
19883	// server as null. It is an error if a field in this list has a
19884	// non-empty value. This may be used to include null fields in Patch
19885	// requests.
19886	NullFields []string `json:"-"`
19887}
19888
19889func (s *InstancesSetMachineResourcesRequest) MarshalJSON() ([]byte, error) {
19890	type NoMethod InstancesSetMachineResourcesRequest
19891	raw := NoMethod(*s)
19892	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19893}
19894
19895type InstancesSetMachineTypeRequest struct {
19896	// MachineType: Full or partial URL of the machine type resource. See
19897	// Machine Types for a full list of machine types. For example:
19898	// zones/us-central1-f/machineTypes/n1-standard-1
19899	MachineType string `json:"machineType,omitempty"`
19900
19901	// ForceSendFields is a list of field names (e.g. "MachineType") to
19902	// unconditionally include in API requests. By default, fields with
19903	// empty values are omitted from API requests. However, any non-pointer,
19904	// non-interface field appearing in ForceSendFields will be sent to the
19905	// server regardless of whether the field is empty or not. This may be
19906	// used to include empty fields in Patch requests.
19907	ForceSendFields []string `json:"-"`
19908
19909	// NullFields is a list of field names (e.g. "MachineType") to include
19910	// in API requests with the JSON null value. By default, fields with
19911	// empty values are omitted from API requests. However, any field with
19912	// an empty value appearing in NullFields will be sent to the server as
19913	// null. It is an error if a field in this list has a non-empty value.
19914	// This may be used to include null fields in Patch requests.
19915	NullFields []string `json:"-"`
19916}
19917
19918func (s *InstancesSetMachineTypeRequest) MarshalJSON() ([]byte, error) {
19919	type NoMethod InstancesSetMachineTypeRequest
19920	raw := NoMethod(*s)
19921	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19922}
19923
19924type InstancesSetMinCpuPlatformRequest struct {
19925	// MinCpuPlatform: Minimum cpu/platform this instance should be started
19926	// at.
19927	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
19928
19929	// ForceSendFields is a list of field names (e.g. "MinCpuPlatform") to
19930	// unconditionally include in API requests. By default, fields with
19931	// empty values are omitted from API requests. However, any non-pointer,
19932	// non-interface field appearing in ForceSendFields will be sent to the
19933	// server regardless of whether the field is empty or not. This may be
19934	// used to include empty fields in Patch requests.
19935	ForceSendFields []string `json:"-"`
19936
19937	// NullFields is a list of field names (e.g. "MinCpuPlatform") to
19938	// include in API requests with the JSON null value. By default, fields
19939	// with empty values are omitted from API requests. However, any field
19940	// with an empty value appearing in NullFields will be sent to the
19941	// server as null. It is an error if a field in this list has a
19942	// non-empty value. This may be used to include null fields in Patch
19943	// requests.
19944	NullFields []string `json:"-"`
19945}
19946
19947func (s *InstancesSetMinCpuPlatformRequest) MarshalJSON() ([]byte, error) {
19948	type NoMethod InstancesSetMinCpuPlatformRequest
19949	raw := NoMethod(*s)
19950	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19951}
19952
19953type InstancesSetNameRequest struct {
19954	// CurrentName: The current name of this resource, used to prevent
19955	// conflicts. Provide the latest name when making a request to change
19956	// name.
19957	CurrentName string `json:"currentName,omitempty"`
19958
19959	// Name: The name to be applied to the instance. Needs to be RFC 1035
19960	// compliant.
19961	Name string `json:"name,omitempty"`
19962
19963	// ForceSendFields is a list of field names (e.g. "CurrentName") to
19964	// unconditionally include in API requests. By default, fields with
19965	// empty values are omitted from API requests. However, any non-pointer,
19966	// non-interface field appearing in ForceSendFields will be sent to the
19967	// server regardless of whether the field is empty or not. This may be
19968	// used to include empty fields in Patch requests.
19969	ForceSendFields []string `json:"-"`
19970
19971	// NullFields is a list of field names (e.g. "CurrentName") to include
19972	// in API requests with the JSON null value. By default, fields with
19973	// empty values are omitted from API requests. However, any field with
19974	// an empty value appearing in NullFields will be sent to the server as
19975	// null. It is an error if a field in this list has a non-empty value.
19976	// This may be used to include null fields in Patch requests.
19977	NullFields []string `json:"-"`
19978}
19979
19980func (s *InstancesSetNameRequest) MarshalJSON() ([]byte, error) {
19981	type NoMethod InstancesSetNameRequest
19982	raw := NoMethod(*s)
19983	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19984}
19985
19986type InstancesSetServiceAccountRequest struct {
19987	// Email: Email address of the service account.
19988	Email string `json:"email,omitempty"`
19989
19990	// Scopes: The list of scopes to be made available for this service
19991	// account.
19992	Scopes []string `json:"scopes,omitempty"`
19993
19994	// ForceSendFields is a list of field names (e.g. "Email") to
19995	// unconditionally include in API requests. By default, fields with
19996	// empty values are omitted from API requests. However, any non-pointer,
19997	// non-interface field appearing in ForceSendFields will be sent to the
19998	// server regardless of whether the field is empty or not. This may be
19999	// used to include empty fields in Patch requests.
20000	ForceSendFields []string `json:"-"`
20001
20002	// NullFields is a list of field names (e.g. "Email") to include in API
20003	// requests with the JSON null value. By default, fields with empty
20004	// values are omitted from API requests. However, any field with an
20005	// empty value appearing in NullFields will be sent to the server as
20006	// null. It is an error if a field in this list has a non-empty value.
20007	// This may be used to include null fields in Patch requests.
20008	NullFields []string `json:"-"`
20009}
20010
20011func (s *InstancesSetServiceAccountRequest) MarshalJSON() ([]byte, error) {
20012	type NoMethod InstancesSetServiceAccountRequest
20013	raw := NoMethod(*s)
20014	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20015}
20016
20017type InstancesStartWithEncryptionKeyRequest struct {
20018	// Disks: Array of disks associated with this instance that are
20019	// protected with a customer-supplied encryption key.
20020	//
20021	// In order to start the instance, the disk url and its corresponding
20022	// key must be provided.
20023	//
20024	// If the disk is not protected with a customer-supplied encryption key
20025	// it should not be specified.
20026	Disks []*CustomerEncryptionKeyProtectedDisk `json:"disks,omitempty"`
20027
20028	// ForceSendFields is a list of field names (e.g. "Disks") to
20029	// unconditionally include in API requests. By default, fields with
20030	// empty values are omitted from API requests. However, any non-pointer,
20031	// non-interface field appearing in ForceSendFields will be sent to the
20032	// server regardless of whether the field is empty or not. This may be
20033	// used to include empty fields in Patch requests.
20034	ForceSendFields []string `json:"-"`
20035
20036	// NullFields is a list of field names (e.g. "Disks") to include in API
20037	// requests with the JSON null value. By default, fields with empty
20038	// values are omitted from API requests. However, any field with an
20039	// empty value appearing in NullFields will be sent to the server as
20040	// null. It is an error if a field in this list has a non-empty value.
20041	// This may be used to include null fields in Patch requests.
20042	NullFields []string `json:"-"`
20043}
20044
20045func (s *InstancesStartWithEncryptionKeyRequest) MarshalJSON() ([]byte, error) {
20046	type NoMethod InstancesStartWithEncryptionKeyRequest
20047	raw := NoMethod(*s)
20048	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20049}
20050
20051// Int64RangeMatch: HttpRouteRuleMatch criteria for field values that
20052// must stay within the specified integer range.
20053type Int64RangeMatch struct {
20054	// RangeEnd: The end of the range (exclusive) in signed long integer
20055	// format.
20056	RangeEnd int64 `json:"rangeEnd,omitempty,string"`
20057
20058	// RangeStart: The start of the range (inclusive) in signed long integer
20059	// format.
20060	RangeStart int64 `json:"rangeStart,omitempty,string"`
20061
20062	// ForceSendFields is a list of field names (e.g. "RangeEnd") to
20063	// unconditionally include in API requests. By default, fields with
20064	// empty values are omitted from API requests. However, any non-pointer,
20065	// non-interface field appearing in ForceSendFields will be sent to the
20066	// server regardless of whether the field is empty or not. This may be
20067	// used to include empty fields in Patch requests.
20068	ForceSendFields []string `json:"-"`
20069
20070	// NullFields is a list of field names (e.g. "RangeEnd") to include in
20071	// API requests with the JSON null value. By default, fields with empty
20072	// values are omitted from API requests. However, any field with an
20073	// empty value appearing in NullFields will be sent to the server as
20074	// null. It is an error if a field in this list has a non-empty value.
20075	// This may be used to include null fields in Patch requests.
20076	NullFields []string `json:"-"`
20077}
20078
20079func (s *Int64RangeMatch) MarshalJSON() ([]byte, error) {
20080	type NoMethod Int64RangeMatch
20081	raw := NoMethod(*s)
20082	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20083}
20084
20085// Interconnect: Represents an Interconnect resource.
20086//
20087// An Interconnect resource is a dedicated connection between the GCP
20088// network and your on-premises network. For more information, read the
20089// Dedicated Interconnect Overview. (== resource_for
20090// {$api_version}.interconnects ==)
20091type Interconnect struct {
20092	// AdminEnabled: Administrative status of the interconnect. When this is
20093	// set to true, the Interconnect is functional and can carry traffic.
20094	// When set to false, no packets can be carried over the interconnect
20095	// and no BGP routes are exchanged over it. By default, the status is
20096	// set to true.
20097	AdminEnabled bool `json:"adminEnabled,omitempty"`
20098
20099	// CircuitInfos: [Output Only] A list of CircuitInfo objects, that
20100	// describe the individual circuits in this LAG.
20101	CircuitInfos []*InterconnectCircuitInfo `json:"circuitInfos,omitempty"`
20102
20103	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
20104	// format.
20105	CreationTimestamp string `json:"creationTimestamp,omitempty"`
20106
20107	// CustomerName: Customer name, to put in the Letter of Authorization as
20108	// the party authorized to request a crossconnect.
20109	CustomerName string `json:"customerName,omitempty"`
20110
20111	// Description: An optional description of this resource. Provide this
20112	// property when you create the resource.
20113	Description string `json:"description,omitempty"`
20114
20115	// ExpectedOutages: [Output Only] A list of outages expected for this
20116	// Interconnect.
20117	ExpectedOutages []*InterconnectOutageNotification `json:"expectedOutages,omitempty"`
20118
20119	// GoogleIpAddress: [Output Only] IP address configured on the Google
20120	// side of the Interconnect link. This can be used only for ping tests.
20121	GoogleIpAddress string `json:"googleIpAddress,omitempty"`
20122
20123	// GoogleReferenceId: [Output Only] Google reference ID to be used when
20124	// raising support tickets with Google or otherwise to debug backend
20125	// connectivity issues.
20126	GoogleReferenceId string `json:"googleReferenceId,omitempty"`
20127
20128	// Id: [Output Only] The unique identifier for the resource. This
20129	// identifier is defined by the server.
20130	Id uint64 `json:"id,omitempty,string"`
20131
20132	// InterconnectAttachments: [Output Only] A list of the URLs of all
20133	// InterconnectAttachments configured to use this Interconnect.
20134	InterconnectAttachments []string `json:"interconnectAttachments,omitempty"`
20135
20136	// InterconnectType: Type of interconnect, which can take one of the
20137	// following values:
20138	// - PARTNER: A partner-managed interconnection shared between customers
20139	// though a partner.
20140	// - DEDICATED: A dedicated physical interconnection with the customer.
20141	// Note that a value IT_PRIVATE has been deprecated in favor of
20142	// DEDICATED.
20143	//
20144	// Possible values:
20145	//   "DEDICATED"
20146	//   "IT_PRIVATE"
20147	//   "PARTNER"
20148	InterconnectType string `json:"interconnectType,omitempty"`
20149
20150	// Kind: [Output Only] Type of the resource. Always compute#interconnect
20151	// for interconnects.
20152	Kind string `json:"kind,omitempty"`
20153
20154	// LabelFingerprint: A fingerprint for the labels being applied to this
20155	// Interconnect, which is essentially a hash of the labels set used for
20156	// optimistic locking. The fingerprint is initially generated by Compute
20157	// Engine and changes after every request to modify or update labels.
20158	// You must always provide an up-to-date fingerprint hash in order to
20159	// update or change labels, otherwise the request will fail with error
20160	// 412 conditionNotMet.
20161	//
20162	// To see the latest fingerprint, make a get() request to retrieve an
20163	// Interconnect.
20164	LabelFingerprint string `json:"labelFingerprint,omitempty"`
20165
20166	// Labels: Labels for this resource. These can only be added or modified
20167	// by the setLabels method. Each label key/value pair must comply with
20168	// RFC1035. Label values may be empty.
20169	Labels map[string]string `json:"labels,omitempty"`
20170
20171	// LinkType: Type of link requested, which can take one of the following
20172	// values:
20173	// - LINK_TYPE_ETHERNET_10G_LR: A 10G Ethernet with LR optics
20174	// - LINK_TYPE_ETHERNET_100G_LR: A 100G Ethernet with LR optics. Note
20175	// that this field indicates the speed of each of the links in the
20176	// bundle, not the speed of the entire bundle.
20177	//
20178	// Possible values:
20179	//   "LINK_TYPE_ETHERNET_100G_LR"
20180	//   "LINK_TYPE_ETHERNET_10G_LR"
20181	LinkType string `json:"linkType,omitempty"`
20182
20183	// Location: URL of the InterconnectLocation object that represents
20184	// where this connection is to be provisioned.
20185	Location string `json:"location,omitempty"`
20186
20187	// Name: Name of the resource. Provided by the client when the resource
20188	// is created. The name must be 1-63 characters long, and comply with
20189	// RFC1035. Specifically, the name must be 1-63 characters long and
20190	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
20191	// the first character must be a lowercase letter, and all following
20192	// characters must be a dash, lowercase letter, or digit, except the
20193	// last character, which cannot be a dash.
20194	Name string `json:"name,omitempty"`
20195
20196	// NocContactEmail: Email address to contact the customer NOC for
20197	// operations and maintenance notifications regarding this Interconnect.
20198	// If specified, this will be used for notifications in addition to all
20199	// other forms described, such as Stackdriver logs alerting and Cloud
20200	// Notifications.
20201	NocContactEmail string `json:"nocContactEmail,omitempty"`
20202
20203	// OperationalStatus: [Output Only] The current status of this
20204	// Interconnect's functionality, which can take one of the following
20205	// values:
20206	// - OS_ACTIVE: A valid Interconnect, which is turned up and is ready to
20207	// use. Attachments may be provisioned on this Interconnect.
20208	// - OS_UNPROVISIONED: An Interconnect that has not completed turnup. No
20209	// attachments may be provisioned on this Interconnect.
20210	// - OS_UNDER_MAINTENANCE: An Interconnect that is undergoing internal
20211	// maintenance. No attachments may be provisioned or updated on this
20212	// Interconnect.
20213	//
20214	// Possible values:
20215	//   "OS_ACTIVE"
20216	//   "OS_UNPROVISIONED"
20217	OperationalStatus string `json:"operationalStatus,omitempty"`
20218
20219	// PeerIpAddress: [Output Only] IP address configured on the customer
20220	// side of the Interconnect link. The customer should configure this IP
20221	// address during turnup when prompted by Google NOC. This can be used
20222	// only for ping tests.
20223	PeerIpAddress string `json:"peerIpAddress,omitempty"`
20224
20225	// ProvisionedLinkCount: [Output Only] Number of links actually
20226	// provisioned in this interconnect.
20227	ProvisionedLinkCount int64 `json:"provisionedLinkCount,omitempty"`
20228
20229	// RequestedLinkCount: Target number of physical links in the link
20230	// bundle, as requested by the customer.
20231	RequestedLinkCount int64 `json:"requestedLinkCount,omitempty"`
20232
20233	// SelfLink: [Output Only] Server-defined URL for the resource.
20234	SelfLink string `json:"selfLink,omitempty"`
20235
20236	// State: [Output Only] The current state of Interconnect functionality,
20237	// which can take one of the following values:
20238	// - ACTIVE: The Interconnect is valid, turned up and ready to use.
20239	// Attachments may be provisioned on this Interconnect.
20240	// - UNPROVISIONED: The Interconnect has not completed turnup. No
20241	// attachments may be provisioned on this Interconnect.
20242	// - UNDER_MAINTENANCE: The Interconnect is undergoing internal
20243	// maintenance. No attachments may be provisioned or updated on this
20244	// Interconnect.
20245	//
20246	// Possible values:
20247	//   "ACTIVE"
20248	//   "UNPROVISIONED"
20249	State string `json:"state,omitempty"`
20250
20251	// ServerResponse contains the HTTP response code and headers from the
20252	// server.
20253	googleapi.ServerResponse `json:"-"`
20254
20255	// ForceSendFields is a list of field names (e.g. "AdminEnabled") to
20256	// unconditionally include in API requests. By default, fields with
20257	// empty values are omitted from API requests. However, any non-pointer,
20258	// non-interface field appearing in ForceSendFields will be sent to the
20259	// server regardless of whether the field is empty or not. This may be
20260	// used to include empty fields in Patch requests.
20261	ForceSendFields []string `json:"-"`
20262
20263	// NullFields is a list of field names (e.g. "AdminEnabled") to include
20264	// in API requests with the JSON null value. By default, fields with
20265	// empty values are omitted from API requests. However, any field with
20266	// an empty value appearing in NullFields will be sent to the server as
20267	// null. It is an error if a field in this list has a non-empty value.
20268	// This may be used to include null fields in Patch requests.
20269	NullFields []string `json:"-"`
20270}
20271
20272func (s *Interconnect) MarshalJSON() ([]byte, error) {
20273	type NoMethod Interconnect
20274	raw := NoMethod(*s)
20275	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20276}
20277
20278// InterconnectAttachment: Represents an Interconnect Attachment (VLAN)
20279// resource.
20280//
20281// You can use Interconnect attachments (VLANS) to connect your Virtual
20282// Private Cloud networks to your on-premises networks through an
20283// Interconnect. For more information, read  Creating VLAN Attachments.
20284// (== resource_for {$api_version}.interconnectAttachments ==)
20285type InterconnectAttachment struct {
20286	// AdminEnabled: Determines whether this Attachment will carry packets.
20287	// Not present for PARTNER_PROVIDER.
20288	AdminEnabled bool `json:"adminEnabled,omitempty"`
20289
20290	// Bandwidth: Provisioned bandwidth capacity for the interconnect
20291	// attachment. For attachments of type DEDICATED, the user can set the
20292	// bandwidth. For attachments of type PARTNER, the Google Partner that
20293	// is operating the interconnect must set the bandwidth. Output only for
20294	// PARTNER type, mutable for PARTNER_PROVIDER and DEDICATED, and can
20295	// take one of the following values:
20296	// - BPS_50M: 50 Mbit/s
20297	// - BPS_100M: 100 Mbit/s
20298	// - BPS_200M: 200 Mbit/s
20299	// - BPS_300M: 300 Mbit/s
20300	// - BPS_400M: 400 Mbit/s
20301	// - BPS_500M: 500 Mbit/s
20302	// - BPS_1G: 1 Gbit/s
20303	// - BPS_2G: 2 Gbit/s
20304	// - BPS_5G: 5 Gbit/s
20305	// - BPS_10G: 10 Gbit/s
20306	// - BPS_20G: 20 Gbit/s
20307	// - BPS_50G: 50 Gbit/s
20308	//
20309	// Possible values:
20310	//   "BPS_100M"
20311	//   "BPS_10G"
20312	//   "BPS_1G"
20313	//   "BPS_200M"
20314	//   "BPS_20G"
20315	//   "BPS_2G"
20316	//   "BPS_300M"
20317	//   "BPS_400M"
20318	//   "BPS_500M"
20319	//   "BPS_50G"
20320	//   "BPS_50M"
20321	//   "BPS_5G"
20322	Bandwidth string `json:"bandwidth,omitempty"`
20323
20324	// CandidateSubnets: Up to 16 candidate prefixes that can be used to
20325	// restrict the allocation of cloudRouterIpAddress and
20326	// customerRouterIpAddress for this attachment. All prefixes must be
20327	// within link-local address space (169.254.0.0/16) and must be /29 or
20328	// shorter (/28, /27, etc). Google will attempt to select an unused /29
20329	// from the supplied candidate prefix(es). The request will fail if all
20330	// possible /29s are in use on Google's edge. If not supplied, Google
20331	// will randomly select an unused /29 from all of link-local space.
20332	CandidateSubnets []string `json:"candidateSubnets,omitempty"`
20333
20334	// CloudRouterIpAddress: [Output Only] IPv4 address + prefix length to
20335	// be configured on Cloud Router Interface for this interconnect
20336	// attachment.
20337	CloudRouterIpAddress string `json:"cloudRouterIpAddress,omitempty"`
20338
20339	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
20340	// format.
20341	CreationTimestamp string `json:"creationTimestamp,omitempty"`
20342
20343	// CustomerRouterIpAddress: [Output Only] IPv4 address + prefix length
20344	// to be configured on the customer router subinterface for this
20345	// interconnect attachment.
20346	CustomerRouterIpAddress string `json:"customerRouterIpAddress,omitempty"`
20347
20348	// DataplaneVersion: [Output Only] Dataplane version for this
20349	// InterconnectAttachment.
20350	DataplaneVersion int64 `json:"dataplaneVersion,omitempty"`
20351
20352	// Description: An optional description of this resource.
20353	Description string `json:"description,omitempty"`
20354
20355	// EdgeAvailabilityDomain: Desired availability domain for the
20356	// attachment. Only available for type PARTNER, at creation time, and
20357	// can take one of the following values:
20358	// - AVAILABILITY_DOMAIN_ANY
20359	// - AVAILABILITY_DOMAIN_1
20360	// - AVAILABILITY_DOMAIN_2 For improved reliability, customers should
20361	// configure a pair of attachments, one per availability domain. The
20362	// selected availability domain will be provided to the Partner via the
20363	// pairing key, so that the provisioned circuit will lie in the
20364	// specified domain. If not specified, the value will default to
20365	// AVAILABILITY_DOMAIN_ANY.
20366	//
20367	// Possible values:
20368	//   "AVAILABILITY_DOMAIN_1"
20369	//   "AVAILABILITY_DOMAIN_2"
20370	//   "AVAILABILITY_DOMAIN_ANY"
20371	EdgeAvailabilityDomain string `json:"edgeAvailabilityDomain,omitempty"`
20372
20373	// Encryption: Indicates the user-supplied encryption option of this
20374	// interconnect attachment:
20375	// - NONE is the default value, which means that the attachment carries
20376	// unencrypted traffic. VMs can send traffic to, or receive traffic
20377	// from, this type of attachment.
20378	// - IPSEC indicates that the attachment carries only traffic encrypted
20379	// by an IPsec device such as an HA VPN gateway. VMs cannot directly
20380	// send traffic to, or receive traffic from, such an attachment. To use
20381	// IPsec-encrypted Cloud Interconnect, create the attachment using this
20382	// option.
20383	//
20384	// Possible values:
20385	//   "IPSEC"
20386	//   "NONE"
20387	Encryption string `json:"encryption,omitempty"`
20388
20389	// GoogleReferenceId: [Output Only] Google reference ID, to be used when
20390	// raising support tickets with Google or otherwise to debug backend
20391	// connectivity issues. [Deprecated] This field is not used.
20392	GoogleReferenceId string `json:"googleReferenceId,omitempty"`
20393
20394	// Id: [Output Only] The unique identifier for the resource. This
20395	// identifier is defined by the server.
20396	Id uint64 `json:"id,omitempty,string"`
20397
20398	// Interconnect: URL of the underlying Interconnect object that this
20399	// attachment's traffic will traverse through.
20400	Interconnect string `json:"interconnect,omitempty"`
20401
20402	// IpsecInternalAddresses: URL of addresses that have been reserved for
20403	// the interconnect attachment, Used only for interconnect attachment
20404	// that has the encryption option as IPSEC. The addresses must be RFC
20405	// 1918 IP address ranges. When creating HA VPN gateway over the
20406	// interconnect attachment, if the attachment is configured to use an
20407	// RFC 1918 IP address, then the VPN gateway?s IP address will be
20408	// allocated from the IP address range specified here. For example, if
20409	// the HA VPN gateway?s interface 0 is paired to this interconnect
20410	// attachment, then an RFC 1918 IP address for the VPN gateway interface
20411	// 0 will be allocated from the IP address specified for this
20412	// interconnect attachment. If this field is not specified for
20413	// interconnect attachment that has encryption option as IPSEC, later on
20414	// when creating HA VPN gateway on this interconnect attachment, the HA
20415	// VPN gateway's IP address will be allocated from regional external IP
20416	// address pool.
20417	IpsecInternalAddresses []string `json:"ipsecInternalAddresses,omitempty"`
20418
20419	// Kind: [Output Only] Type of the resource. Always
20420	// compute#interconnectAttachment for interconnect attachments.
20421	Kind string `json:"kind,omitempty"`
20422
20423	// LabelFingerprint: A fingerprint for the labels being applied to this
20424	// InterconnectAttachment, which is essentially a hash of the labels set
20425	// used for optimistic locking. The fingerprint is initially generated
20426	// by Compute Engine and changes after every request to modify or update
20427	// labels. You must always provide an up-to-date fingerprint hash in
20428	// order to update or change labels, otherwise the request will fail
20429	// with error 412 conditionNotMet.
20430	//
20431	// To see the latest fingerprint, make a get() request to retrieve an
20432	// InterconnectAttachment.
20433	LabelFingerprint string `json:"labelFingerprint,omitempty"`
20434
20435	// Labels: Labels for this resource. These can only be added or modified
20436	// by the setLabels method. Each label key/value pair must comply with
20437	// RFC1035. Label values may be empty.
20438	Labels map[string]string `json:"labels,omitempty"`
20439
20440	// Mtu: Maximum Transmission Unit (MTU), in bytes, of packets passing
20441	// through this interconnect attachment. Only 1440 and 1500 are allowed.
20442	// If not specified, the value will default to 1440.
20443	Mtu int64 `json:"mtu,omitempty"`
20444
20445	// Name: Name of the resource. Provided by the client when the resource
20446	// is created. The name must be 1-63 characters long, and comply with
20447	// RFC1035. Specifically, the name must be 1-63 characters long and
20448	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
20449	// the first character must be a lowercase letter, and all following
20450	// characters must be a dash, lowercase letter, or digit, except the
20451	// last character, which cannot be a dash.
20452	Name string `json:"name,omitempty"`
20453
20454	// OperationalStatus: [Output Only] The current status of whether or not
20455	// this interconnect attachment is functional, which can take one of the
20456	// following values:
20457	// - OS_ACTIVE: The attachment has been turned up and is ready to use.
20458	//
20459	// - OS_UNPROVISIONED: The attachment is not ready to use yet, because
20460	// turnup is not complete.
20461	//
20462	// Possible values:
20463	//   "OS_ACTIVE"
20464	//   "OS_UNPROVISIONED"
20465	OperationalStatus string `json:"operationalStatus,omitempty"`
20466
20467	// PairingKey: [Output only for type PARTNER. Input only for
20468	// PARTNER_PROVIDER. Not present for DEDICATED]. The opaque identifier
20469	// of an PARTNER attachment used to initiate provisioning with a
20470	// selected partner. Of the form "XXXXX/region/domain"
20471	PairingKey string `json:"pairingKey,omitempty"`
20472
20473	// PartnerAsn: Optional BGP ASN for the router supplied by a Layer 3
20474	// Partner if they configured BGP on behalf of the customer. Output only
20475	// for PARTNER type, input only for PARTNER_PROVIDER, not available for
20476	// DEDICATED.
20477	PartnerAsn int64 `json:"partnerAsn,omitempty,string"`
20478
20479	// PartnerMetadata: Informational metadata about Partner attachments
20480	// from Partners to display to customers. Output only for for PARTNER
20481	// type, mutable for PARTNER_PROVIDER, not available for DEDICATED.
20482	PartnerMetadata *InterconnectAttachmentPartnerMetadata `json:"partnerMetadata,omitempty"`
20483
20484	// PrivateInterconnectInfo: [Output Only] Information specific to an
20485	// InterconnectAttachment. This property is populated if the
20486	// interconnect that this is attached to is of type DEDICATED.
20487	PrivateInterconnectInfo *InterconnectAttachmentPrivateInfo `json:"privateInterconnectInfo,omitempty"`
20488
20489	// Region: [Output Only] URL of the region where the regional
20490	// interconnect attachment resides. You must specify this field as part
20491	// of the HTTP request URL. It is not settable as a field in the request
20492	// body.
20493	Region string `json:"region,omitempty"`
20494
20495	// Router: URL of the Cloud Router to be used for dynamic routing. This
20496	// router must be in the same region as this InterconnectAttachment. The
20497	// InterconnectAttachment will automatically connect the Interconnect to
20498	// the network & region within which the Cloud Router is configured.
20499	Router string `json:"router,omitempty"`
20500
20501	// SelfLink: [Output Only] Server-defined URL for the resource.
20502	SelfLink string `json:"selfLink,omitempty"`
20503
20504	// State: [Output Only] The current state of this attachment's
20505	// functionality. Enum values ACTIVE and UNPROVISIONED are shared by
20506	// DEDICATED/PRIVATE, PARTNER, and PARTNER_PROVIDER interconnect
20507	// attachments, while enum values PENDING_PARTNER,
20508	// PARTNER_REQUEST_RECEIVED, and PENDING_CUSTOMER are used for only
20509	// PARTNER and PARTNER_PROVIDER interconnect attachments. This state can
20510	// take one of the following values:
20511	// - ACTIVE: The attachment has been turned up and is ready to use.
20512	// - UNPROVISIONED: The attachment is not ready to use yet, because
20513	// turnup is not complete.
20514	// - PENDING_PARTNER: A newly-created PARTNER attachment that has not
20515	// yet been configured on the Partner side.
20516	// - PARTNER_REQUEST_RECEIVED: A PARTNER attachment is in the process of
20517	// provisioning after a PARTNER_PROVIDER attachment was created that
20518	// references it.
20519	// - PENDING_CUSTOMER: A PARTNER or PARTNER_PROVIDER attachment that is
20520	// waiting for a customer to activate it.
20521	// - DEFUNCT: The attachment was deleted externally and is no longer
20522	// functional. This could be because the associated Interconnect was
20523	// removed, or because the other side of a Partner attachment was
20524	// deleted.
20525	//
20526	// Possible values:
20527	//   "ACTIVE"
20528	//   "DEFUNCT"
20529	//   "PARTNER_REQUEST_RECEIVED"
20530	//   "PENDING_CUSTOMER"
20531	//   "PENDING_PARTNER"
20532	//   "STATE_UNSPECIFIED"
20533	//   "UNPROVISIONED"
20534	State string `json:"state,omitempty"`
20535
20536	// Type: The type of interconnect attachment this is, which can take one
20537	// of the following values:
20538	// - DEDICATED: an attachment to a Dedicated Interconnect.
20539	// - PARTNER: an attachment to a Partner Interconnect, created by the
20540	// customer.
20541	// - PARTNER_PROVIDER: an attachment to a Partner Interconnect, created
20542	// by the partner.
20543	//
20544	// Possible values:
20545	//   "DEDICATED"
20546	//   "PARTNER"
20547	//   "PARTNER_PROVIDER"
20548	Type string `json:"type,omitempty"`
20549
20550	// VlanTag8021q: The IEEE 802.1Q VLAN tag for this attachment, in the
20551	// range 2-4094. Only specified at creation time.
20552	VlanTag8021q int64 `json:"vlanTag8021q,omitempty"`
20553
20554	// ServerResponse contains the HTTP response code and headers from the
20555	// server.
20556	googleapi.ServerResponse `json:"-"`
20557
20558	// ForceSendFields is a list of field names (e.g. "AdminEnabled") to
20559	// unconditionally include in API requests. By default, fields with
20560	// empty values are omitted from API requests. However, any non-pointer,
20561	// non-interface field appearing in ForceSendFields will be sent to the
20562	// server regardless of whether the field is empty or not. This may be
20563	// used to include empty fields in Patch requests.
20564	ForceSendFields []string `json:"-"`
20565
20566	// NullFields is a list of field names (e.g. "AdminEnabled") to include
20567	// in API requests with the JSON null value. By default, fields with
20568	// empty values are omitted from API requests. However, any field with
20569	// an empty value appearing in NullFields will be sent to the server as
20570	// null. It is an error if a field in this list has a non-empty value.
20571	// This may be used to include null fields in Patch requests.
20572	NullFields []string `json:"-"`
20573}
20574
20575func (s *InterconnectAttachment) MarshalJSON() ([]byte, error) {
20576	type NoMethod InterconnectAttachment
20577	raw := NoMethod(*s)
20578	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20579}
20580
20581type InterconnectAttachmentAggregatedList struct {
20582	// Id: [Output Only] Unique identifier for the resource; defined by the
20583	// server.
20584	Id string `json:"id,omitempty"`
20585
20586	// Items: A list of InterconnectAttachmentsScopedList resources.
20587	Items map[string]InterconnectAttachmentsScopedList `json:"items,omitempty"`
20588
20589	// Kind: [Output Only] Type of resource. Always
20590	// compute#interconnectAttachmentAggregatedList for aggregated lists of
20591	// interconnect attachments.
20592	Kind string `json:"kind,omitempty"`
20593
20594	// NextPageToken: [Output Only] This token allows you to get the next
20595	// page of results for list requests. If the number of results is larger
20596	// than maxResults, use the nextPageToken as a value for the query
20597	// parameter pageToken in the next list request. Subsequent list
20598	// requests will have their own nextPageToken to continue paging through
20599	// the results.
20600	NextPageToken string `json:"nextPageToken,omitempty"`
20601
20602	// SelfLink: [Output Only] Server-defined URL for this resource.
20603	SelfLink string `json:"selfLink,omitempty"`
20604
20605	// Unreachables: [Output Only] Unreachable resources.
20606	Unreachables []string `json:"unreachables,omitempty"`
20607
20608	// Warning: [Output Only] Informational warning message.
20609	Warning *InterconnectAttachmentAggregatedListWarning `json:"warning,omitempty"`
20610
20611	// ServerResponse contains the HTTP response code and headers from the
20612	// server.
20613	googleapi.ServerResponse `json:"-"`
20614
20615	// ForceSendFields is a list of field names (e.g. "Id") to
20616	// unconditionally include in API requests. By default, fields with
20617	// empty values are omitted from API requests. However, any non-pointer,
20618	// non-interface field appearing in ForceSendFields will be sent to the
20619	// server regardless of whether the field is empty or not. This may be
20620	// used to include empty fields in Patch requests.
20621	ForceSendFields []string `json:"-"`
20622
20623	// NullFields is a list of field names (e.g. "Id") to include in API
20624	// requests with the JSON null value. By default, fields with empty
20625	// values are omitted from API requests. However, any field with an
20626	// empty value appearing in NullFields will be sent to the server as
20627	// null. It is an error if a field in this list has a non-empty value.
20628	// This may be used to include null fields in Patch requests.
20629	NullFields []string `json:"-"`
20630}
20631
20632func (s *InterconnectAttachmentAggregatedList) MarshalJSON() ([]byte, error) {
20633	type NoMethod InterconnectAttachmentAggregatedList
20634	raw := NoMethod(*s)
20635	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20636}
20637
20638// InterconnectAttachmentAggregatedListWarning: [Output Only]
20639// Informational warning message.
20640type InterconnectAttachmentAggregatedListWarning struct {
20641	// Code: [Output Only] A warning code, if applicable. For example,
20642	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
20643	// the response.
20644	//
20645	// Possible values:
20646	//   "CLEANUP_FAILED"
20647	//   "DEPRECATED_RESOURCE_USED"
20648	//   "DEPRECATED_TYPE_USED"
20649	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
20650	//   "EXPERIMENTAL_TYPE_USED"
20651	//   "EXTERNAL_API_WARNING"
20652	//   "FIELD_VALUE_OVERRIDEN"
20653	//   "INJECTED_KERNELS_DEPRECATED"
20654	//   "LARGE_DEPLOYMENT_WARNING"
20655	//   "MISSING_TYPE_DEPENDENCY"
20656	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
20657	//   "NEXT_HOP_CANNOT_IP_FORWARD"
20658	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
20659	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
20660	//   "NEXT_HOP_NOT_RUNNING"
20661	//   "NOT_CRITICAL_ERROR"
20662	//   "NO_RESULTS_ON_PAGE"
20663	//   "PARTIAL_SUCCESS"
20664	//   "REQUIRED_TOS_AGREEMENT"
20665	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
20666	//   "RESOURCE_NOT_DELETED"
20667	//   "SCHEMA_VALIDATION_IGNORED"
20668	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
20669	//   "UNDECLARED_PROPERTIES"
20670	//   "UNREACHABLE"
20671	Code string `json:"code,omitempty"`
20672
20673	// Data: [Output Only] Metadata about this warning in key: value format.
20674	// For example:
20675	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
20676	Data []*InterconnectAttachmentAggregatedListWarningData `json:"data,omitempty"`
20677
20678	// Message: [Output Only] A human-readable description of the warning
20679	// code.
20680	Message string `json:"message,omitempty"`
20681
20682	// ForceSendFields is a list of field names (e.g. "Code") to
20683	// unconditionally include in API requests. By default, fields with
20684	// empty values are omitted from API requests. However, any non-pointer,
20685	// non-interface field appearing in ForceSendFields will be sent to the
20686	// server regardless of whether the field is empty or not. This may be
20687	// used to include empty fields in Patch requests.
20688	ForceSendFields []string `json:"-"`
20689
20690	// NullFields is a list of field names (e.g. "Code") to include in API
20691	// requests with the JSON null value. By default, fields with empty
20692	// values are omitted from API requests. However, any field with an
20693	// empty value appearing in NullFields will be sent to the server as
20694	// null. It is an error if a field in this list has a non-empty value.
20695	// This may be used to include null fields in Patch requests.
20696	NullFields []string `json:"-"`
20697}
20698
20699func (s *InterconnectAttachmentAggregatedListWarning) MarshalJSON() ([]byte, error) {
20700	type NoMethod InterconnectAttachmentAggregatedListWarning
20701	raw := NoMethod(*s)
20702	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20703}
20704
20705type InterconnectAttachmentAggregatedListWarningData struct {
20706	// Key: [Output Only] A key that provides more detail on the warning
20707	// being returned. For example, for warnings where there are no results
20708	// in a list request for a particular zone, this key might be scope and
20709	// the key value might be the zone name. Other examples might be a key
20710	// indicating a deprecated resource and a suggested replacement, or a
20711	// warning about invalid network settings (for example, if an instance
20712	// attempts to perform IP forwarding but is not enabled for IP
20713	// forwarding).
20714	Key string `json:"key,omitempty"`
20715
20716	// Value: [Output Only] A warning data value corresponding to the key.
20717	Value string `json:"value,omitempty"`
20718
20719	// ForceSendFields is a list of field names (e.g. "Key") to
20720	// unconditionally include in API requests. By default, fields with
20721	// empty values are omitted from API requests. However, any non-pointer,
20722	// non-interface field appearing in ForceSendFields will be sent to the
20723	// server regardless of whether the field is empty or not. This may be
20724	// used to include empty fields in Patch requests.
20725	ForceSendFields []string `json:"-"`
20726
20727	// NullFields is a list of field names (e.g. "Key") to include in API
20728	// requests with the JSON null value. By default, fields with empty
20729	// values are omitted from API requests. However, any field with an
20730	// empty value appearing in NullFields will be sent to the server as
20731	// null. It is an error if a field in this list has a non-empty value.
20732	// This may be used to include null fields in Patch requests.
20733	NullFields []string `json:"-"`
20734}
20735
20736func (s *InterconnectAttachmentAggregatedListWarningData) MarshalJSON() ([]byte, error) {
20737	type NoMethod InterconnectAttachmentAggregatedListWarningData
20738	raw := NoMethod(*s)
20739	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20740}
20741
20742// InterconnectAttachmentList: Response to the list request, and
20743// contains a list of interconnect attachments.
20744type InterconnectAttachmentList struct {
20745	// Id: [Output Only] Unique identifier for the resource; defined by the
20746	// server.
20747	Id string `json:"id,omitempty"`
20748
20749	// Items: A list of InterconnectAttachment resources.
20750	Items []*InterconnectAttachment `json:"items,omitempty"`
20751
20752	// Kind: [Output Only] Type of resource. Always
20753	// compute#interconnectAttachmentList for lists of interconnect
20754	// attachments.
20755	Kind string `json:"kind,omitempty"`
20756
20757	// NextPageToken: [Output Only] This token allows you to get the next
20758	// page of results for list requests. If the number of results is larger
20759	// than maxResults, use the nextPageToken as a value for the query
20760	// parameter pageToken in the next list request. Subsequent list
20761	// requests will have their own nextPageToken to continue paging through
20762	// the results.
20763	NextPageToken string `json:"nextPageToken,omitempty"`
20764
20765	// SelfLink: [Output Only] Server-defined URL for this resource.
20766	SelfLink string `json:"selfLink,omitempty"`
20767
20768	// Warning: [Output Only] Informational warning message.
20769	Warning *InterconnectAttachmentListWarning `json:"warning,omitempty"`
20770
20771	// ServerResponse contains the HTTP response code and headers from the
20772	// server.
20773	googleapi.ServerResponse `json:"-"`
20774
20775	// ForceSendFields is a list of field names (e.g. "Id") to
20776	// unconditionally include in API requests. By default, fields with
20777	// empty values are omitted from API requests. However, any non-pointer,
20778	// non-interface field appearing in ForceSendFields will be sent to the
20779	// server regardless of whether the field is empty or not. This may be
20780	// used to include empty fields in Patch requests.
20781	ForceSendFields []string `json:"-"`
20782
20783	// NullFields is a list of field names (e.g. "Id") to include in API
20784	// requests with the JSON null value. By default, fields with empty
20785	// values are omitted from API requests. However, any field with an
20786	// empty value appearing in NullFields will be sent to the server as
20787	// null. It is an error if a field in this list has a non-empty value.
20788	// This may be used to include null fields in Patch requests.
20789	NullFields []string `json:"-"`
20790}
20791
20792func (s *InterconnectAttachmentList) MarshalJSON() ([]byte, error) {
20793	type NoMethod InterconnectAttachmentList
20794	raw := NoMethod(*s)
20795	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20796}
20797
20798// InterconnectAttachmentListWarning: [Output Only] Informational
20799// warning message.
20800type InterconnectAttachmentListWarning struct {
20801	// Code: [Output Only] A warning code, if applicable. For example,
20802	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
20803	// the response.
20804	//
20805	// Possible values:
20806	//   "CLEANUP_FAILED"
20807	//   "DEPRECATED_RESOURCE_USED"
20808	//   "DEPRECATED_TYPE_USED"
20809	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
20810	//   "EXPERIMENTAL_TYPE_USED"
20811	//   "EXTERNAL_API_WARNING"
20812	//   "FIELD_VALUE_OVERRIDEN"
20813	//   "INJECTED_KERNELS_DEPRECATED"
20814	//   "LARGE_DEPLOYMENT_WARNING"
20815	//   "MISSING_TYPE_DEPENDENCY"
20816	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
20817	//   "NEXT_HOP_CANNOT_IP_FORWARD"
20818	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
20819	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
20820	//   "NEXT_HOP_NOT_RUNNING"
20821	//   "NOT_CRITICAL_ERROR"
20822	//   "NO_RESULTS_ON_PAGE"
20823	//   "PARTIAL_SUCCESS"
20824	//   "REQUIRED_TOS_AGREEMENT"
20825	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
20826	//   "RESOURCE_NOT_DELETED"
20827	//   "SCHEMA_VALIDATION_IGNORED"
20828	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
20829	//   "UNDECLARED_PROPERTIES"
20830	//   "UNREACHABLE"
20831	Code string `json:"code,omitempty"`
20832
20833	// Data: [Output Only] Metadata about this warning in key: value format.
20834	// For example:
20835	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
20836	Data []*InterconnectAttachmentListWarningData `json:"data,omitempty"`
20837
20838	// Message: [Output Only] A human-readable description of the warning
20839	// code.
20840	Message string `json:"message,omitempty"`
20841
20842	// ForceSendFields is a list of field names (e.g. "Code") to
20843	// unconditionally include in API requests. By default, fields with
20844	// empty values are omitted from API requests. However, any non-pointer,
20845	// non-interface field appearing in ForceSendFields will be sent to the
20846	// server regardless of whether the field is empty or not. This may be
20847	// used to include empty fields in Patch requests.
20848	ForceSendFields []string `json:"-"`
20849
20850	// NullFields is a list of field names (e.g. "Code") to include in API
20851	// requests with the JSON null value. By default, fields with empty
20852	// values are omitted from API requests. However, any field with an
20853	// empty value appearing in NullFields will be sent to the server as
20854	// null. It is an error if a field in this list has a non-empty value.
20855	// This may be used to include null fields in Patch requests.
20856	NullFields []string `json:"-"`
20857}
20858
20859func (s *InterconnectAttachmentListWarning) MarshalJSON() ([]byte, error) {
20860	type NoMethod InterconnectAttachmentListWarning
20861	raw := NoMethod(*s)
20862	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20863}
20864
20865type InterconnectAttachmentListWarningData struct {
20866	// Key: [Output Only] A key that provides more detail on the warning
20867	// being returned. For example, for warnings where there are no results
20868	// in a list request for a particular zone, this key might be scope and
20869	// the key value might be the zone name. Other examples might be a key
20870	// indicating a deprecated resource and a suggested replacement, or a
20871	// warning about invalid network settings (for example, if an instance
20872	// attempts to perform IP forwarding but is not enabled for IP
20873	// forwarding).
20874	Key string `json:"key,omitempty"`
20875
20876	// Value: [Output Only] A warning data value corresponding to the key.
20877	Value string `json:"value,omitempty"`
20878
20879	// ForceSendFields is a list of field names (e.g. "Key") to
20880	// unconditionally include in API requests. By default, fields with
20881	// empty values are omitted from API requests. However, any non-pointer,
20882	// non-interface field appearing in ForceSendFields will be sent to the
20883	// server regardless of whether the field is empty or not. This may be
20884	// used to include empty fields in Patch requests.
20885	ForceSendFields []string `json:"-"`
20886
20887	// NullFields is a list of field names (e.g. "Key") to include in API
20888	// requests with the JSON null value. By default, fields with empty
20889	// values are omitted from API requests. However, any field with an
20890	// empty value appearing in NullFields will be sent to the server as
20891	// null. It is an error if a field in this list has a non-empty value.
20892	// This may be used to include null fields in Patch requests.
20893	NullFields []string `json:"-"`
20894}
20895
20896func (s *InterconnectAttachmentListWarningData) MarshalJSON() ([]byte, error) {
20897	type NoMethod InterconnectAttachmentListWarningData
20898	raw := NoMethod(*s)
20899	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20900}
20901
20902// InterconnectAttachmentPartnerMetadata: Informational metadata about
20903// Partner attachments from Partners to display to customers. These
20904// fields are propagated from PARTNER_PROVIDER attachments to their
20905// corresponding PARTNER attachments.
20906type InterconnectAttachmentPartnerMetadata struct {
20907	// InterconnectName: Plain text name of the Interconnect this attachment
20908	// is connected to, as displayed in the Partner's portal. For instance
20909	// "Chicago 1". This value may be validated to match approved Partner
20910	// values.
20911	InterconnectName string `json:"interconnectName,omitempty"`
20912
20913	// PartnerName: Plain text name of the Partner providing this
20914	// attachment. This value may be validated to match approved Partner
20915	// values.
20916	PartnerName string `json:"partnerName,omitempty"`
20917
20918	// PortalUrl: URL of the Partner's portal for this Attachment. Partners
20919	// may customise this to be a deep link to the specific resource on the
20920	// Partner portal. This value may be validated to match approved Partner
20921	// values.
20922	PortalUrl string `json:"portalUrl,omitempty"`
20923
20924	// ForceSendFields is a list of field names (e.g. "InterconnectName") to
20925	// unconditionally include in API requests. By default, fields with
20926	// empty values are omitted from API requests. However, any non-pointer,
20927	// non-interface field appearing in ForceSendFields will be sent to the
20928	// server regardless of whether the field is empty or not. This may be
20929	// used to include empty fields in Patch requests.
20930	ForceSendFields []string `json:"-"`
20931
20932	// NullFields is a list of field names (e.g. "InterconnectName") to
20933	// include in API requests with the JSON null value. By default, fields
20934	// with empty values are omitted from API requests. However, any field
20935	// with an empty value appearing in NullFields will be sent to the
20936	// server as null. It is an error if a field in this list has a
20937	// non-empty value. This may be used to include null fields in Patch
20938	// requests.
20939	NullFields []string `json:"-"`
20940}
20941
20942func (s *InterconnectAttachmentPartnerMetadata) MarshalJSON() ([]byte, error) {
20943	type NoMethod InterconnectAttachmentPartnerMetadata
20944	raw := NoMethod(*s)
20945	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20946}
20947
20948// InterconnectAttachmentPrivateInfo: Information for an interconnect
20949// attachment when this belongs to an interconnect of type DEDICATED.
20950type InterconnectAttachmentPrivateInfo struct {
20951	// Tag8021q: [Output Only] 802.1q encapsulation tag to be used for
20952	// traffic between Google and the customer, going to and from this
20953	// network and region.
20954	Tag8021q int64 `json:"tag8021q,omitempty"`
20955
20956	// ForceSendFields is a list of field names (e.g. "Tag8021q") to
20957	// unconditionally include in API requests. By default, fields with
20958	// empty values are omitted from API requests. However, any non-pointer,
20959	// non-interface field appearing in ForceSendFields will be sent to the
20960	// server regardless of whether the field is empty or not. This may be
20961	// used to include empty fields in Patch requests.
20962	ForceSendFields []string `json:"-"`
20963
20964	// NullFields is a list of field names (e.g. "Tag8021q") to include in
20965	// API requests with the JSON null value. By default, fields with empty
20966	// values are omitted from API requests. However, any field with an
20967	// empty value appearing in NullFields will be sent to the server as
20968	// null. It is an error if a field in this list has a non-empty value.
20969	// This may be used to include null fields in Patch requests.
20970	NullFields []string `json:"-"`
20971}
20972
20973func (s *InterconnectAttachmentPrivateInfo) MarshalJSON() ([]byte, error) {
20974	type NoMethod InterconnectAttachmentPrivateInfo
20975	raw := NoMethod(*s)
20976	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20977}
20978
20979type InterconnectAttachmentsScopedList struct {
20980	// InterconnectAttachments: A list of interconnect attachments contained
20981	// in this scope.
20982	InterconnectAttachments []*InterconnectAttachment `json:"interconnectAttachments,omitempty"`
20983
20984	// Warning: Informational warning which replaces the list of addresses
20985	// when the list is empty.
20986	Warning *InterconnectAttachmentsScopedListWarning `json:"warning,omitempty"`
20987
20988	// ForceSendFields is a list of field names (e.g.
20989	// "InterconnectAttachments") to unconditionally include in API
20990	// requests. By default, fields with empty values are omitted from API
20991	// requests. However, any non-pointer, non-interface field appearing in
20992	// ForceSendFields will be sent to the server regardless of whether the
20993	// field is empty or not. This may be used to include empty fields in
20994	// Patch requests.
20995	ForceSendFields []string `json:"-"`
20996
20997	// NullFields is a list of field names (e.g. "InterconnectAttachments")
20998	// to include in API requests with the JSON null value. By default,
20999	// fields with empty values are omitted from API requests. However, any
21000	// field with an empty value appearing in NullFields will be sent to the
21001	// server as null. It is an error if a field in this list has a
21002	// non-empty value. This may be used to include null fields in Patch
21003	// requests.
21004	NullFields []string `json:"-"`
21005}
21006
21007func (s *InterconnectAttachmentsScopedList) MarshalJSON() ([]byte, error) {
21008	type NoMethod InterconnectAttachmentsScopedList
21009	raw := NoMethod(*s)
21010	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21011}
21012
21013// InterconnectAttachmentsScopedListWarning: Informational warning which
21014// replaces the list of addresses when the list is empty.
21015type InterconnectAttachmentsScopedListWarning struct {
21016	// Code: [Output Only] A warning code, if applicable. For example,
21017	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
21018	// the response.
21019	//
21020	// Possible values:
21021	//   "CLEANUP_FAILED"
21022	//   "DEPRECATED_RESOURCE_USED"
21023	//   "DEPRECATED_TYPE_USED"
21024	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
21025	//   "EXPERIMENTAL_TYPE_USED"
21026	//   "EXTERNAL_API_WARNING"
21027	//   "FIELD_VALUE_OVERRIDEN"
21028	//   "INJECTED_KERNELS_DEPRECATED"
21029	//   "LARGE_DEPLOYMENT_WARNING"
21030	//   "MISSING_TYPE_DEPENDENCY"
21031	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
21032	//   "NEXT_HOP_CANNOT_IP_FORWARD"
21033	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
21034	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
21035	//   "NEXT_HOP_NOT_RUNNING"
21036	//   "NOT_CRITICAL_ERROR"
21037	//   "NO_RESULTS_ON_PAGE"
21038	//   "PARTIAL_SUCCESS"
21039	//   "REQUIRED_TOS_AGREEMENT"
21040	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
21041	//   "RESOURCE_NOT_DELETED"
21042	//   "SCHEMA_VALIDATION_IGNORED"
21043	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
21044	//   "UNDECLARED_PROPERTIES"
21045	//   "UNREACHABLE"
21046	Code string `json:"code,omitempty"`
21047
21048	// Data: [Output Only] Metadata about this warning in key: value format.
21049	// For example:
21050	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
21051	Data []*InterconnectAttachmentsScopedListWarningData `json:"data,omitempty"`
21052
21053	// Message: [Output Only] A human-readable description of the warning
21054	// code.
21055	Message string `json:"message,omitempty"`
21056
21057	// ForceSendFields is a list of field names (e.g. "Code") to
21058	// unconditionally include in API requests. By default, fields with
21059	// empty values are omitted from API requests. However, any non-pointer,
21060	// non-interface field appearing in ForceSendFields will be sent to the
21061	// server regardless of whether the field is empty or not. This may be
21062	// used to include empty fields in Patch requests.
21063	ForceSendFields []string `json:"-"`
21064
21065	// NullFields is a list of field names (e.g. "Code") to include in API
21066	// requests with the JSON null value. By default, fields with empty
21067	// values are omitted from API requests. However, any field with an
21068	// empty value appearing in NullFields will be sent to the server as
21069	// null. It is an error if a field in this list has a non-empty value.
21070	// This may be used to include null fields in Patch requests.
21071	NullFields []string `json:"-"`
21072}
21073
21074func (s *InterconnectAttachmentsScopedListWarning) MarshalJSON() ([]byte, error) {
21075	type NoMethod InterconnectAttachmentsScopedListWarning
21076	raw := NoMethod(*s)
21077	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21078}
21079
21080type InterconnectAttachmentsScopedListWarningData struct {
21081	// Key: [Output Only] A key that provides more detail on the warning
21082	// being returned. For example, for warnings where there are no results
21083	// in a list request for a particular zone, this key might be scope and
21084	// the key value might be the zone name. Other examples might be a key
21085	// indicating a deprecated resource and a suggested replacement, or a
21086	// warning about invalid network settings (for example, if an instance
21087	// attempts to perform IP forwarding but is not enabled for IP
21088	// forwarding).
21089	Key string `json:"key,omitempty"`
21090
21091	// Value: [Output Only] A warning data value corresponding to the key.
21092	Value string `json:"value,omitempty"`
21093
21094	// ForceSendFields is a list of field names (e.g. "Key") to
21095	// unconditionally include in API requests. By default, fields with
21096	// empty values are omitted from API requests. However, any non-pointer,
21097	// non-interface field appearing in ForceSendFields will be sent to the
21098	// server regardless of whether the field is empty or not. This may be
21099	// used to include empty fields in Patch requests.
21100	ForceSendFields []string `json:"-"`
21101
21102	// NullFields is a list of field names (e.g. "Key") to include in API
21103	// requests with the JSON null value. By default, fields with empty
21104	// values are omitted from API requests. However, any field with an
21105	// empty value appearing in NullFields will be sent to the server as
21106	// null. It is an error if a field in this list has a non-empty value.
21107	// This may be used to include null fields in Patch requests.
21108	NullFields []string `json:"-"`
21109}
21110
21111func (s *InterconnectAttachmentsScopedListWarningData) MarshalJSON() ([]byte, error) {
21112	type NoMethod InterconnectAttachmentsScopedListWarningData
21113	raw := NoMethod(*s)
21114	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21115}
21116
21117// InterconnectCircuitInfo: Describes a single physical circuit between
21118// the Customer and Google. CircuitInfo objects are created by Google,
21119// so all fields are output only.
21120type InterconnectCircuitInfo struct {
21121	// CustomerDemarcId: Customer-side demarc ID for this circuit.
21122	CustomerDemarcId string `json:"customerDemarcId,omitempty"`
21123
21124	// GoogleCircuitId: Google-assigned unique ID for this circuit. Assigned
21125	// at circuit turn-up.
21126	GoogleCircuitId string `json:"googleCircuitId,omitempty"`
21127
21128	// GoogleDemarcId: Google-side demarc ID for this circuit. Assigned at
21129	// circuit turn-up and provided by Google to the customer in the LOA.
21130	GoogleDemarcId string `json:"googleDemarcId,omitempty"`
21131
21132	// ForceSendFields is a list of field names (e.g. "CustomerDemarcId") to
21133	// unconditionally include in API requests. By default, fields with
21134	// empty values are omitted from API requests. However, any non-pointer,
21135	// non-interface field appearing in ForceSendFields will be sent to the
21136	// server regardless of whether the field is empty or not. This may be
21137	// used to include empty fields in Patch requests.
21138	ForceSendFields []string `json:"-"`
21139
21140	// NullFields is a list of field names (e.g. "CustomerDemarcId") to
21141	// include in API requests with the JSON null value. By default, fields
21142	// with empty values are omitted from API requests. However, any field
21143	// with an empty value appearing in NullFields will be sent to the
21144	// server as null. It is an error if a field in this list has a
21145	// non-empty value. This may be used to include null fields in Patch
21146	// requests.
21147	NullFields []string `json:"-"`
21148}
21149
21150func (s *InterconnectCircuitInfo) MarshalJSON() ([]byte, error) {
21151	type NoMethod InterconnectCircuitInfo
21152	raw := NoMethod(*s)
21153	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21154}
21155
21156// InterconnectDiagnostics: Diagnostics information about interconnect,
21157// contains detailed and current technical information about Google's
21158// side of the connection.
21159type InterconnectDiagnostics struct {
21160	// ArpCaches: A list of InterconnectDiagnostics.ARPEntry objects,
21161	// describing individual neighbors currently seen by the Google router
21162	// in the ARP cache for the Interconnect. This will be empty when the
21163	// Interconnect is not bundled.
21164	ArpCaches []*InterconnectDiagnosticsARPEntry `json:"arpCaches,omitempty"`
21165
21166	// Links: A list of InterconnectDiagnostics.LinkStatus objects,
21167	// describing the status for each link on the Interconnect.
21168	Links []*InterconnectDiagnosticsLinkStatus `json:"links,omitempty"`
21169
21170	// MacAddress: The MAC address of the Interconnect's bundle interface.
21171	MacAddress string `json:"macAddress,omitempty"`
21172
21173	// ForceSendFields is a list of field names (e.g. "ArpCaches") to
21174	// unconditionally include in API requests. By default, fields with
21175	// empty values are omitted from API requests. However, any non-pointer,
21176	// non-interface field appearing in ForceSendFields will be sent to the
21177	// server regardless of whether the field is empty or not. This may be
21178	// used to include empty fields in Patch requests.
21179	ForceSendFields []string `json:"-"`
21180
21181	// NullFields is a list of field names (e.g. "ArpCaches") to include in
21182	// API requests with the JSON null value. By default, fields with empty
21183	// values are omitted from API requests. However, any field with an
21184	// empty value appearing in NullFields will be sent to the server as
21185	// null. It is an error if a field in this list has a non-empty value.
21186	// This may be used to include null fields in Patch requests.
21187	NullFields []string `json:"-"`
21188}
21189
21190func (s *InterconnectDiagnostics) MarshalJSON() ([]byte, error) {
21191	type NoMethod InterconnectDiagnostics
21192	raw := NoMethod(*s)
21193	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21194}
21195
21196// InterconnectDiagnosticsARPEntry: Describing the ARP neighbor entries
21197// seen on this link
21198type InterconnectDiagnosticsARPEntry struct {
21199	// IpAddress: The IP address of this ARP neighbor.
21200	IpAddress string `json:"ipAddress,omitempty"`
21201
21202	// MacAddress: The MAC address of this ARP neighbor.
21203	MacAddress string `json:"macAddress,omitempty"`
21204
21205	// ForceSendFields is a list of field names (e.g. "IpAddress") to
21206	// unconditionally include in API requests. By default, fields with
21207	// empty values are omitted from API requests. However, any non-pointer,
21208	// non-interface field appearing in ForceSendFields will be sent to the
21209	// server regardless of whether the field is empty or not. This may be
21210	// used to include empty fields in Patch requests.
21211	ForceSendFields []string `json:"-"`
21212
21213	// NullFields is a list of field names (e.g. "IpAddress") to include in
21214	// API requests with the JSON null value. By default, fields with empty
21215	// values are omitted from API requests. However, any field with an
21216	// empty value appearing in NullFields will be sent to the server as
21217	// null. It is an error if a field in this list has a non-empty value.
21218	// This may be used to include null fields in Patch requests.
21219	NullFields []string `json:"-"`
21220}
21221
21222func (s *InterconnectDiagnosticsARPEntry) MarshalJSON() ([]byte, error) {
21223	type NoMethod InterconnectDiagnosticsARPEntry
21224	raw := NoMethod(*s)
21225	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21226}
21227
21228type InterconnectDiagnosticsLinkLACPStatus struct {
21229	// GoogleSystemId: System ID of the port on Google's side of the LACP
21230	// exchange.
21231	GoogleSystemId string `json:"googleSystemId,omitempty"`
21232
21233	// NeighborSystemId: System ID of the port on the neighbor's side of the
21234	// LACP exchange.
21235	NeighborSystemId string `json:"neighborSystemId,omitempty"`
21236
21237	// State: The state of a LACP link, which can take one of the following
21238	// values:
21239	// - ACTIVE: The link is configured and active within the bundle.
21240	// - DETACHED: The link is not configured within the bundle. This means
21241	// that the rest of the object should be empty.
21242	//
21243	// Possible values:
21244	//   "ACTIVE"
21245	//   "DETACHED"
21246	State string `json:"state,omitempty"`
21247
21248	// ForceSendFields is a list of field names (e.g. "GoogleSystemId") to
21249	// unconditionally include in API requests. By default, fields with
21250	// empty values are omitted from API requests. However, any non-pointer,
21251	// non-interface field appearing in ForceSendFields will be sent to the
21252	// server regardless of whether the field is empty or not. This may be
21253	// used to include empty fields in Patch requests.
21254	ForceSendFields []string `json:"-"`
21255
21256	// NullFields is a list of field names (e.g. "GoogleSystemId") to
21257	// include in API requests with the JSON null value. By default, fields
21258	// with empty values are omitted from API requests. However, any field
21259	// with an empty value appearing in NullFields will be sent to the
21260	// server as null. It is an error if a field in this list has a
21261	// non-empty value. This may be used to include null fields in Patch
21262	// requests.
21263	NullFields []string `json:"-"`
21264}
21265
21266func (s *InterconnectDiagnosticsLinkLACPStatus) MarshalJSON() ([]byte, error) {
21267	type NoMethod InterconnectDiagnosticsLinkLACPStatus
21268	raw := NoMethod(*s)
21269	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21270}
21271
21272type InterconnectDiagnosticsLinkOpticalPower struct {
21273	// State: The status of the current value when compared to the warning
21274	// and alarm levels for the receiving or transmitting transceiver.
21275	// Possible states include:
21276	// - OK: The value has not crossed a warning threshold.
21277	// - LOW_WARNING: The value has crossed below the low warning threshold.
21278	//
21279	// - HIGH_WARNING: The value has crossed above the high warning
21280	// threshold.
21281	// - LOW_ALARM: The value has crossed below the low alarm threshold.
21282	// - HIGH_ALARM: The value has crossed above the high alarm threshold.
21283	//
21284	// Possible values:
21285	//   "HIGH_ALARM"
21286	//   "HIGH_WARNING"
21287	//   "LOW_ALARM"
21288	//   "LOW_WARNING"
21289	//   "OK"
21290	State string `json:"state,omitempty"`
21291
21292	// Value: Value of the current receiving or transmitting optical power,
21293	// read in dBm. Take a known good optical value, give it a 10% margin
21294	// and trigger warnings relative to that value. In general, a -7dBm
21295	// warning and a -11dBm alarm are good optical value estimates for most
21296	// links.
21297	Value float64 `json:"value,omitempty"`
21298
21299	// ForceSendFields is a list of field names (e.g. "State") to
21300	// unconditionally include in API requests. By default, fields with
21301	// empty values are omitted from API requests. However, any non-pointer,
21302	// non-interface field appearing in ForceSendFields will be sent to the
21303	// server regardless of whether the field is empty or not. This may be
21304	// used to include empty fields in Patch requests.
21305	ForceSendFields []string `json:"-"`
21306
21307	// NullFields is a list of field names (e.g. "State") to include in API
21308	// requests with the JSON null value. By default, fields with empty
21309	// values are omitted from API requests. However, any field with an
21310	// empty value appearing in NullFields will be sent to the server as
21311	// null. It is an error if a field in this list has a non-empty value.
21312	// This may be used to include null fields in Patch requests.
21313	NullFields []string `json:"-"`
21314}
21315
21316func (s *InterconnectDiagnosticsLinkOpticalPower) MarshalJSON() ([]byte, error) {
21317	type NoMethod InterconnectDiagnosticsLinkOpticalPower
21318	raw := NoMethod(*s)
21319	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21320}
21321
21322func (s *InterconnectDiagnosticsLinkOpticalPower) UnmarshalJSON(data []byte) error {
21323	type NoMethod InterconnectDiagnosticsLinkOpticalPower
21324	var s1 struct {
21325		Value gensupport.JSONFloat64 `json:"value"`
21326		*NoMethod
21327	}
21328	s1.NoMethod = (*NoMethod)(s)
21329	if err := json.Unmarshal(data, &s1); err != nil {
21330		return err
21331	}
21332	s.Value = float64(s1.Value)
21333	return nil
21334}
21335
21336type InterconnectDiagnosticsLinkStatus struct {
21337	// ArpCaches: A list of InterconnectDiagnostics.ARPEntry objects,
21338	// describing the ARP neighbor entries seen on this link. This will be
21339	// empty if the link is bundled
21340	ArpCaches []*InterconnectDiagnosticsARPEntry `json:"arpCaches,omitempty"`
21341
21342	// CircuitId: The unique ID for this link assigned during turn up by
21343	// Google.
21344	CircuitId string `json:"circuitId,omitempty"`
21345
21346	// GoogleDemarc: The Demarc address assigned by Google and provided in
21347	// the LoA.
21348	GoogleDemarc string `json:"googleDemarc,omitempty"`
21349
21350	LacpStatus *InterconnectDiagnosticsLinkLACPStatus `json:"lacpStatus,omitempty"`
21351
21352	// ReceivingOpticalPower: An InterconnectDiagnostics.LinkOpticalPower
21353	// object, describing the current value and status of the received light
21354	// level.
21355	ReceivingOpticalPower *InterconnectDiagnosticsLinkOpticalPower `json:"receivingOpticalPower,omitempty"`
21356
21357	// TransmittingOpticalPower: An InterconnectDiagnostics.LinkOpticalPower
21358	// object, describing the current value and status of the transmitted
21359	// light level.
21360	TransmittingOpticalPower *InterconnectDiagnosticsLinkOpticalPower `json:"transmittingOpticalPower,omitempty"`
21361
21362	// ForceSendFields is a list of field names (e.g. "ArpCaches") to
21363	// unconditionally include in API requests. By default, fields with
21364	// empty values are omitted from API requests. However, any non-pointer,
21365	// non-interface field appearing in ForceSendFields will be sent to the
21366	// server regardless of whether the field is empty or not. This may be
21367	// used to include empty fields in Patch requests.
21368	ForceSendFields []string `json:"-"`
21369
21370	// NullFields is a list of field names (e.g. "ArpCaches") to include in
21371	// API requests with the JSON null value. By default, fields with empty
21372	// values are omitted from API requests. However, any field with an
21373	// empty value appearing in NullFields will be sent to the server as
21374	// null. It is an error if a field in this list has a non-empty value.
21375	// This may be used to include null fields in Patch requests.
21376	NullFields []string `json:"-"`
21377}
21378
21379func (s *InterconnectDiagnosticsLinkStatus) MarshalJSON() ([]byte, error) {
21380	type NoMethod InterconnectDiagnosticsLinkStatus
21381	raw := NoMethod(*s)
21382	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21383}
21384
21385// InterconnectList: Response to the list request, and contains a list
21386// of interconnects.
21387type InterconnectList struct {
21388	// Id: [Output Only] Unique identifier for the resource; defined by the
21389	// server.
21390	Id string `json:"id,omitempty"`
21391
21392	// Items: A list of Interconnect resources.
21393	Items []*Interconnect `json:"items,omitempty"`
21394
21395	// Kind: [Output Only] Type of resource. Always compute#interconnectList
21396	// for lists of interconnects.
21397	Kind string `json:"kind,omitempty"`
21398
21399	// NextPageToken: [Output Only] This token allows you to get the next
21400	// page of results for list requests. If the number of results is larger
21401	// than maxResults, use the nextPageToken as a value for the query
21402	// parameter pageToken in the next list request. Subsequent list
21403	// requests will have their own nextPageToken to continue paging through
21404	// the results.
21405	NextPageToken string `json:"nextPageToken,omitempty"`
21406
21407	// SelfLink: [Output Only] Server-defined URL for this resource.
21408	SelfLink string `json:"selfLink,omitempty"`
21409
21410	// Warning: [Output Only] Informational warning message.
21411	Warning *InterconnectListWarning `json:"warning,omitempty"`
21412
21413	// ServerResponse contains the HTTP response code and headers from the
21414	// server.
21415	googleapi.ServerResponse `json:"-"`
21416
21417	// ForceSendFields is a list of field names (e.g. "Id") to
21418	// unconditionally include in API requests. By default, fields with
21419	// empty values are omitted from API requests. However, any non-pointer,
21420	// non-interface field appearing in ForceSendFields will be sent to the
21421	// server regardless of whether the field is empty or not. This may be
21422	// used to include empty fields in Patch requests.
21423	ForceSendFields []string `json:"-"`
21424
21425	// NullFields is a list of field names (e.g. "Id") to include in API
21426	// requests with the JSON null value. By default, fields with empty
21427	// values are omitted from API requests. However, any field with an
21428	// empty value appearing in NullFields will be sent to the server as
21429	// null. It is an error if a field in this list has a non-empty value.
21430	// This may be used to include null fields in Patch requests.
21431	NullFields []string `json:"-"`
21432}
21433
21434func (s *InterconnectList) MarshalJSON() ([]byte, error) {
21435	type NoMethod InterconnectList
21436	raw := NoMethod(*s)
21437	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21438}
21439
21440// InterconnectListWarning: [Output Only] Informational warning message.
21441type InterconnectListWarning struct {
21442	// Code: [Output Only] A warning code, if applicable. For example,
21443	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
21444	// the response.
21445	//
21446	// Possible values:
21447	//   "CLEANUP_FAILED"
21448	//   "DEPRECATED_RESOURCE_USED"
21449	//   "DEPRECATED_TYPE_USED"
21450	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
21451	//   "EXPERIMENTAL_TYPE_USED"
21452	//   "EXTERNAL_API_WARNING"
21453	//   "FIELD_VALUE_OVERRIDEN"
21454	//   "INJECTED_KERNELS_DEPRECATED"
21455	//   "LARGE_DEPLOYMENT_WARNING"
21456	//   "MISSING_TYPE_DEPENDENCY"
21457	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
21458	//   "NEXT_HOP_CANNOT_IP_FORWARD"
21459	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
21460	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
21461	//   "NEXT_HOP_NOT_RUNNING"
21462	//   "NOT_CRITICAL_ERROR"
21463	//   "NO_RESULTS_ON_PAGE"
21464	//   "PARTIAL_SUCCESS"
21465	//   "REQUIRED_TOS_AGREEMENT"
21466	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
21467	//   "RESOURCE_NOT_DELETED"
21468	//   "SCHEMA_VALIDATION_IGNORED"
21469	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
21470	//   "UNDECLARED_PROPERTIES"
21471	//   "UNREACHABLE"
21472	Code string `json:"code,omitempty"`
21473
21474	// Data: [Output Only] Metadata about this warning in key: value format.
21475	// For example:
21476	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
21477	Data []*InterconnectListWarningData `json:"data,omitempty"`
21478
21479	// Message: [Output Only] A human-readable description of the warning
21480	// code.
21481	Message string `json:"message,omitempty"`
21482
21483	// ForceSendFields is a list of field names (e.g. "Code") to
21484	// unconditionally include in API requests. By default, fields with
21485	// empty values are omitted from API requests. However, any non-pointer,
21486	// non-interface field appearing in ForceSendFields will be sent to the
21487	// server regardless of whether the field is empty or not. This may be
21488	// used to include empty fields in Patch requests.
21489	ForceSendFields []string `json:"-"`
21490
21491	// NullFields is a list of field names (e.g. "Code") to include in API
21492	// requests with the JSON null value. By default, fields with empty
21493	// values are omitted from API requests. However, any field with an
21494	// empty value appearing in NullFields will be sent to the server as
21495	// null. It is an error if a field in this list has a non-empty value.
21496	// This may be used to include null fields in Patch requests.
21497	NullFields []string `json:"-"`
21498}
21499
21500func (s *InterconnectListWarning) MarshalJSON() ([]byte, error) {
21501	type NoMethod InterconnectListWarning
21502	raw := NoMethod(*s)
21503	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21504}
21505
21506type InterconnectListWarningData struct {
21507	// Key: [Output Only] A key that provides more detail on the warning
21508	// being returned. For example, for warnings where there are no results
21509	// in a list request for a particular zone, this key might be scope and
21510	// the key value might be the zone name. Other examples might be a key
21511	// indicating a deprecated resource and a suggested replacement, or a
21512	// warning about invalid network settings (for example, if an instance
21513	// attempts to perform IP forwarding but is not enabled for IP
21514	// forwarding).
21515	Key string `json:"key,omitempty"`
21516
21517	// Value: [Output Only] A warning data value corresponding to the key.
21518	Value string `json:"value,omitempty"`
21519
21520	// ForceSendFields is a list of field names (e.g. "Key") to
21521	// unconditionally include in API requests. By default, fields with
21522	// empty values are omitted from API requests. However, any non-pointer,
21523	// non-interface field appearing in ForceSendFields will be sent to the
21524	// server regardless of whether the field is empty or not. This may be
21525	// used to include empty fields in Patch requests.
21526	ForceSendFields []string `json:"-"`
21527
21528	// NullFields is a list of field names (e.g. "Key") to include in API
21529	// requests with the JSON null value. By default, fields with empty
21530	// values are omitted from API requests. However, any field with an
21531	// empty value appearing in NullFields will be sent to the server as
21532	// null. It is an error if a field in this list has a non-empty value.
21533	// This may be used to include null fields in Patch requests.
21534	NullFields []string `json:"-"`
21535}
21536
21537func (s *InterconnectListWarningData) MarshalJSON() ([]byte, error) {
21538	type NoMethod InterconnectListWarningData
21539	raw := NoMethod(*s)
21540	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21541}
21542
21543// InterconnectLocation: Represents an Interconnect Attachment (VLAN)
21544// Location resource.
21545//
21546// You can use this resource to find location details about an
21547// Interconnect attachment (VLAN). For more information about
21548// interconnect attachments, read  Creating VLAN Attachments.
21549type InterconnectLocation struct {
21550	// Address: [Output Only] The postal address of the Point of Presence,
21551	// each line in the address is separated by a newline character.
21552	Address string `json:"address,omitempty"`
21553
21554	// AvailabilityZone: [Output Only] Availability zone for this
21555	// InterconnectLocation. Within a metropolitan area (metro), maintenance
21556	// will not be simultaneously scheduled in more than one availability
21557	// zone. Example: "zone1" or "zone2".
21558	AvailabilityZone string `json:"availabilityZone,omitempty"`
21559
21560	// City: [Output Only] Metropolitan area designator that indicates which
21561	// city an interconnect is located. For example: "Chicago, IL",
21562	// "Amsterdam, Netherlands".
21563	City string `json:"city,omitempty"`
21564
21565	// Continent: [Output Only] Continent for this location, which can take
21566	// one of the following values:
21567	// - AFRICA
21568	// - ASIA_PAC
21569	// - EUROPE
21570	// - NORTH_AMERICA
21571	// - SOUTH_AMERICA
21572	//
21573	// Possible values:
21574	//   "AFRICA"
21575	//   "ASIA_PAC"
21576	//   "C_AFRICA"
21577	//   "C_ASIA_PAC"
21578	//   "C_EUROPE"
21579	//   "C_NORTH_AMERICA"
21580	//   "C_SOUTH_AMERICA"
21581	//   "EUROPE"
21582	//   "NORTH_AMERICA"
21583	//   "SOUTH_AMERICA"
21584	Continent string `json:"continent,omitempty"`
21585
21586	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
21587	// format.
21588	CreationTimestamp string `json:"creationTimestamp,omitempty"`
21589
21590	// Description: [Output Only] An optional description of the resource.
21591	Description string `json:"description,omitempty"`
21592
21593	// FacilityProvider: [Output Only] The name of the provider for this
21594	// facility (e.g., EQUINIX).
21595	FacilityProvider string `json:"facilityProvider,omitempty"`
21596
21597	// FacilityProviderFacilityId: [Output Only] A provider-assigned
21598	// Identifier for this facility (e.g., Ashburn-DC1).
21599	FacilityProviderFacilityId string `json:"facilityProviderFacilityId,omitempty"`
21600
21601	// Id: [Output Only] The unique identifier for the resource. This
21602	// identifier is defined by the server.
21603	Id uint64 `json:"id,omitempty,string"`
21604
21605	// Kind: [Output Only] Type of the resource. Always
21606	// compute#interconnectLocation for interconnect locations.
21607	Kind string `json:"kind,omitempty"`
21608
21609	// Name: [Output Only] Name of the resource.
21610	Name string `json:"name,omitempty"`
21611
21612	// PeeringdbFacilityId: [Output Only] The peeringdb identifier for this
21613	// facility (corresponding with a netfac type in peeringdb).
21614	PeeringdbFacilityId string `json:"peeringdbFacilityId,omitempty"`
21615
21616	// RegionInfos: [Output Only] A list of InterconnectLocation.RegionInfo
21617	// objects, that describe parameters pertaining to the relation between
21618	// this InterconnectLocation and various Google Cloud regions.
21619	RegionInfos []*InterconnectLocationRegionInfo `json:"regionInfos,omitempty"`
21620
21621	// SelfLink: [Output Only] Server-defined URL for the resource.
21622	SelfLink string `json:"selfLink,omitempty"`
21623
21624	// Status: [Output Only] The status of this InterconnectLocation, which
21625	// can take one of the following values:
21626	// - CLOSED: The InterconnectLocation is closed and is unavailable for
21627	// provisioning new Interconnects.
21628	// - AVAILABLE: The InterconnectLocation is available for provisioning
21629	// new Interconnects.
21630	//
21631	// Possible values:
21632	//   "AVAILABLE"
21633	//   "CLOSED"
21634	Status string `json:"status,omitempty"`
21635
21636	// ServerResponse contains the HTTP response code and headers from the
21637	// server.
21638	googleapi.ServerResponse `json:"-"`
21639
21640	// ForceSendFields is a list of field names (e.g. "Address") to
21641	// unconditionally include in API requests. By default, fields with
21642	// empty values are omitted from API requests. However, any non-pointer,
21643	// non-interface field appearing in ForceSendFields will be sent to the
21644	// server regardless of whether the field is empty or not. This may be
21645	// used to include empty fields in Patch requests.
21646	ForceSendFields []string `json:"-"`
21647
21648	// NullFields is a list of field names (e.g. "Address") to include in
21649	// API requests with the JSON null value. By default, fields with empty
21650	// values are omitted from API requests. However, any field with an
21651	// empty value appearing in NullFields will be sent to the server as
21652	// null. It is an error if a field in this list has a non-empty value.
21653	// This may be used to include null fields in Patch requests.
21654	NullFields []string `json:"-"`
21655}
21656
21657func (s *InterconnectLocation) MarshalJSON() ([]byte, error) {
21658	type NoMethod InterconnectLocation
21659	raw := NoMethod(*s)
21660	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21661}
21662
21663// InterconnectLocationList: Response to the list request, and contains
21664// a list of interconnect locations.
21665type InterconnectLocationList struct {
21666	// Id: [Output Only] Unique identifier for the resource; defined by the
21667	// server.
21668	Id string `json:"id,omitempty"`
21669
21670	// Items: A list of InterconnectLocation resources.
21671	Items []*InterconnectLocation `json:"items,omitempty"`
21672
21673	// Kind: [Output Only] Type of resource. Always
21674	// compute#interconnectLocationList for lists of interconnect locations.
21675	Kind string `json:"kind,omitempty"`
21676
21677	// NextPageToken: [Output Only] This token allows you to get the next
21678	// page of results for list requests. If the number of results is larger
21679	// than maxResults, use the nextPageToken as a value for the query
21680	// parameter pageToken in the next list request. Subsequent list
21681	// requests will have their own nextPageToken to continue paging through
21682	// the results.
21683	NextPageToken string `json:"nextPageToken,omitempty"`
21684
21685	// SelfLink: [Output Only] Server-defined URL for this resource.
21686	SelfLink string `json:"selfLink,omitempty"`
21687
21688	// Warning: [Output Only] Informational warning message.
21689	Warning *InterconnectLocationListWarning `json:"warning,omitempty"`
21690
21691	// ServerResponse contains the HTTP response code and headers from the
21692	// server.
21693	googleapi.ServerResponse `json:"-"`
21694
21695	// ForceSendFields is a list of field names (e.g. "Id") to
21696	// unconditionally include in API requests. By default, fields with
21697	// empty values are omitted from API requests. However, any non-pointer,
21698	// non-interface field appearing in ForceSendFields will be sent to the
21699	// server regardless of whether the field is empty or not. This may be
21700	// used to include empty fields in Patch requests.
21701	ForceSendFields []string `json:"-"`
21702
21703	// NullFields is a list of field names (e.g. "Id") to include in API
21704	// requests with the JSON null value. By default, fields with empty
21705	// values are omitted from API requests. However, any field with an
21706	// empty value appearing in NullFields will be sent to the server as
21707	// null. It is an error if a field in this list has a non-empty value.
21708	// This may be used to include null fields in Patch requests.
21709	NullFields []string `json:"-"`
21710}
21711
21712func (s *InterconnectLocationList) MarshalJSON() ([]byte, error) {
21713	type NoMethod InterconnectLocationList
21714	raw := NoMethod(*s)
21715	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21716}
21717
21718// InterconnectLocationListWarning: [Output Only] Informational warning
21719// message.
21720type InterconnectLocationListWarning struct {
21721	// Code: [Output Only] A warning code, if applicable. For example,
21722	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
21723	// the response.
21724	//
21725	// Possible values:
21726	//   "CLEANUP_FAILED"
21727	//   "DEPRECATED_RESOURCE_USED"
21728	//   "DEPRECATED_TYPE_USED"
21729	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
21730	//   "EXPERIMENTAL_TYPE_USED"
21731	//   "EXTERNAL_API_WARNING"
21732	//   "FIELD_VALUE_OVERRIDEN"
21733	//   "INJECTED_KERNELS_DEPRECATED"
21734	//   "LARGE_DEPLOYMENT_WARNING"
21735	//   "MISSING_TYPE_DEPENDENCY"
21736	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
21737	//   "NEXT_HOP_CANNOT_IP_FORWARD"
21738	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
21739	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
21740	//   "NEXT_HOP_NOT_RUNNING"
21741	//   "NOT_CRITICAL_ERROR"
21742	//   "NO_RESULTS_ON_PAGE"
21743	//   "PARTIAL_SUCCESS"
21744	//   "REQUIRED_TOS_AGREEMENT"
21745	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
21746	//   "RESOURCE_NOT_DELETED"
21747	//   "SCHEMA_VALIDATION_IGNORED"
21748	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
21749	//   "UNDECLARED_PROPERTIES"
21750	//   "UNREACHABLE"
21751	Code string `json:"code,omitempty"`
21752
21753	// Data: [Output Only] Metadata about this warning in key: value format.
21754	// For example:
21755	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
21756	Data []*InterconnectLocationListWarningData `json:"data,omitempty"`
21757
21758	// Message: [Output Only] A human-readable description of the warning
21759	// code.
21760	Message string `json:"message,omitempty"`
21761
21762	// ForceSendFields is a list of field names (e.g. "Code") to
21763	// unconditionally include in API requests. By default, fields with
21764	// empty values are omitted from API requests. However, any non-pointer,
21765	// non-interface field appearing in ForceSendFields will be sent to the
21766	// server regardless of whether the field is empty or not. This may be
21767	// used to include empty fields in Patch requests.
21768	ForceSendFields []string `json:"-"`
21769
21770	// NullFields is a list of field names (e.g. "Code") to include in API
21771	// requests with the JSON null value. By default, fields with empty
21772	// values are omitted from API requests. However, any field with an
21773	// empty value appearing in NullFields will be sent to the server as
21774	// null. It is an error if a field in this list has a non-empty value.
21775	// This may be used to include null fields in Patch requests.
21776	NullFields []string `json:"-"`
21777}
21778
21779func (s *InterconnectLocationListWarning) MarshalJSON() ([]byte, error) {
21780	type NoMethod InterconnectLocationListWarning
21781	raw := NoMethod(*s)
21782	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21783}
21784
21785type InterconnectLocationListWarningData struct {
21786	// Key: [Output Only] A key that provides more detail on the warning
21787	// being returned. For example, for warnings where there are no results
21788	// in a list request for a particular zone, this key might be scope and
21789	// the key value might be the zone name. Other examples might be a key
21790	// indicating a deprecated resource and a suggested replacement, or a
21791	// warning about invalid network settings (for example, if an instance
21792	// attempts to perform IP forwarding but is not enabled for IP
21793	// forwarding).
21794	Key string `json:"key,omitempty"`
21795
21796	// Value: [Output Only] A warning data value corresponding to the key.
21797	Value string `json:"value,omitempty"`
21798
21799	// ForceSendFields is a list of field names (e.g. "Key") to
21800	// unconditionally include in API requests. By default, fields with
21801	// empty values are omitted from API requests. However, any non-pointer,
21802	// non-interface field appearing in ForceSendFields will be sent to the
21803	// server regardless of whether the field is empty or not. This may be
21804	// used to include empty fields in Patch requests.
21805	ForceSendFields []string `json:"-"`
21806
21807	// NullFields is a list of field names (e.g. "Key") to include in API
21808	// requests with the JSON null value. By default, fields with empty
21809	// values are omitted from API requests. However, any field with an
21810	// empty value appearing in NullFields will be sent to the server as
21811	// null. It is an error if a field in this list has a non-empty value.
21812	// This may be used to include null fields in Patch requests.
21813	NullFields []string `json:"-"`
21814}
21815
21816func (s *InterconnectLocationListWarningData) MarshalJSON() ([]byte, error) {
21817	type NoMethod InterconnectLocationListWarningData
21818	raw := NoMethod(*s)
21819	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21820}
21821
21822// InterconnectLocationRegionInfo: Information about any potential
21823// InterconnectAttachments between an Interconnect at a specific
21824// InterconnectLocation, and a specific Cloud Region.
21825type InterconnectLocationRegionInfo struct {
21826	// ExpectedRttMs: Expected round-trip time in milliseconds, from this
21827	// InterconnectLocation to a VM in this region.
21828	ExpectedRttMs int64 `json:"expectedRttMs,omitempty,string"`
21829
21830	// LocationPresence: Identifies the network presence of this location.
21831	//
21832	// Possible values:
21833	//   "GLOBAL"
21834	//   "LOCAL_REGION"
21835	//   "LP_GLOBAL"
21836	//   "LP_LOCAL_REGION"
21837	LocationPresence string `json:"locationPresence,omitempty"`
21838
21839	// Region: URL for the region of this location.
21840	Region string `json:"region,omitempty"`
21841
21842	// ForceSendFields is a list of field names (e.g. "ExpectedRttMs") to
21843	// unconditionally include in API requests. By default, fields with
21844	// empty values are omitted from API requests. However, any non-pointer,
21845	// non-interface field appearing in ForceSendFields will be sent to the
21846	// server regardless of whether the field is empty or not. This may be
21847	// used to include empty fields in Patch requests.
21848	ForceSendFields []string `json:"-"`
21849
21850	// NullFields is a list of field names (e.g. "ExpectedRttMs") to include
21851	// in API requests with the JSON null value. By default, fields with
21852	// empty values are omitted from API requests. However, any field with
21853	// an empty value appearing in NullFields will be sent to the server as
21854	// null. It is an error if a field in this list has a non-empty value.
21855	// This may be used to include null fields in Patch requests.
21856	NullFields []string `json:"-"`
21857}
21858
21859func (s *InterconnectLocationRegionInfo) MarshalJSON() ([]byte, error) {
21860	type NoMethod InterconnectLocationRegionInfo
21861	raw := NoMethod(*s)
21862	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21863}
21864
21865// InterconnectOutageNotification: Description of a planned outage on
21866// this Interconnect.
21867type InterconnectOutageNotification struct {
21868	// AffectedCircuits: If issue_type is IT_PARTIAL_OUTAGE, a list of the
21869	// Google-side circuit IDs that will be affected.
21870	AffectedCircuits []string `json:"affectedCircuits,omitempty"`
21871
21872	// Description: A description about the purpose of the outage.
21873	Description string `json:"description,omitempty"`
21874
21875	// EndTime: Scheduled end time for the outage (milliseconds since Unix
21876	// epoch).
21877	EndTime int64 `json:"endTime,omitempty,string"`
21878
21879	// IssueType: Form this outage is expected to take, which can take one
21880	// of the following values:
21881	// - OUTAGE: The Interconnect may be completely out of service for some
21882	// or all of the specified window.
21883	// - PARTIAL_OUTAGE: Some circuits comprising the Interconnect as a
21884	// whole should remain up, but with reduced bandwidth. Note that the
21885	// versions of this enum prefixed with "IT_" have been deprecated in
21886	// favor of the unprefixed values.
21887	//
21888	// Possible values:
21889	//   "IT_OUTAGE"
21890	//   "IT_PARTIAL_OUTAGE"
21891	//   "OUTAGE"
21892	//   "PARTIAL_OUTAGE"
21893	IssueType string `json:"issueType,omitempty"`
21894
21895	// Name: Unique identifier for this outage notification.
21896	Name string `json:"name,omitempty"`
21897
21898	// Source: The party that generated this notification, which can take
21899	// the following value:
21900	// - GOOGLE: this notification as generated by Google. Note that the
21901	// value of NSRC_GOOGLE has been deprecated in favor of GOOGLE.
21902	//
21903	// Possible values:
21904	//   "GOOGLE"
21905	//   "NSRC_GOOGLE"
21906	Source string `json:"source,omitempty"`
21907
21908	// StartTime: Scheduled start time for the outage (milliseconds since
21909	// Unix epoch).
21910	StartTime int64 `json:"startTime,omitempty,string"`
21911
21912	// State: State of this notification, which can take one of the
21913	// following values:
21914	// - ACTIVE: This outage notification is active. The event could be in
21915	// the past, present, or future. See start_time and end_time for
21916	// scheduling.
21917	// - CANCELLED: The outage associated with this notification was
21918	// cancelled before the outage was due to start. Note that the versions
21919	// of this enum prefixed with "NS_" have been deprecated in favor of the
21920	// unprefixed values.
21921	//
21922	// Possible values:
21923	//   "ACTIVE"
21924	//   "CANCELLED"
21925	//   "COMPLETED"
21926	//   "NS_ACTIVE"
21927	//   "NS_CANCELED"
21928	State string `json:"state,omitempty"`
21929
21930	// ForceSendFields is a list of field names (e.g. "AffectedCircuits") to
21931	// unconditionally include in API requests. By default, fields with
21932	// empty values are omitted from API requests. However, any non-pointer,
21933	// non-interface field appearing in ForceSendFields will be sent to the
21934	// server regardless of whether the field is empty or not. This may be
21935	// used to include empty fields in Patch requests.
21936	ForceSendFields []string `json:"-"`
21937
21938	// NullFields is a list of field names (e.g. "AffectedCircuits") to
21939	// include in API requests with the JSON null value. By default, fields
21940	// with empty values are omitted from API requests. However, any field
21941	// with an empty value appearing in NullFields will be sent to the
21942	// server as null. It is an error if a field in this list has a
21943	// non-empty value. This may be used to include null fields in Patch
21944	// requests.
21945	NullFields []string `json:"-"`
21946}
21947
21948func (s *InterconnectOutageNotification) MarshalJSON() ([]byte, error) {
21949	type NoMethod InterconnectOutageNotification
21950	raw := NoMethod(*s)
21951	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21952}
21953
21954// InterconnectsGetDiagnosticsResponse: Response for the
21955// InterconnectsGetDiagnosticsRequest.
21956type InterconnectsGetDiagnosticsResponse struct {
21957	Result *InterconnectDiagnostics `json:"result,omitempty"`
21958
21959	// ServerResponse contains the HTTP response code and headers from the
21960	// server.
21961	googleapi.ServerResponse `json:"-"`
21962
21963	// ForceSendFields is a list of field names (e.g. "Result") to
21964	// unconditionally include in API requests. By default, fields with
21965	// empty values are omitted from API requests. However, any non-pointer,
21966	// non-interface field appearing in ForceSendFields will be sent to the
21967	// server regardless of whether the field is empty or not. This may be
21968	// used to include empty fields in Patch requests.
21969	ForceSendFields []string `json:"-"`
21970
21971	// NullFields is a list of field names (e.g. "Result") to include in API
21972	// requests with the JSON null value. By default, fields with empty
21973	// values are omitted from API requests. However, any field with an
21974	// empty value appearing in NullFields will be sent to the server as
21975	// null. It is an error if a field in this list has a non-empty value.
21976	// This may be used to include null fields in Patch requests.
21977	NullFields []string `json:"-"`
21978}
21979
21980func (s *InterconnectsGetDiagnosticsResponse) MarshalJSON() ([]byte, error) {
21981	type NoMethod InterconnectsGetDiagnosticsResponse
21982	raw := NoMethod(*s)
21983	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21984}
21985
21986// License: Represents a License resource.
21987//
21988// A License represents billing and aggregate usage data for public and
21989// marketplace images.  Caution This resource is intended for use only
21990// by third-party partners who are creating Cloud Marketplace images.
21991// (== resource_for {$api_version}.licenses ==)
21992type License struct {
21993	// ChargesUseFee: [Output Only] Deprecated. This field no longer
21994	// reflects whether a license charges a usage fee.
21995	ChargesUseFee bool `json:"chargesUseFee,omitempty"`
21996
21997	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
21998	// format.
21999	CreationTimestamp string `json:"creationTimestamp,omitempty"`
22000
22001	// Description: An optional textual description of the resource;
22002	// provided by the client when the resource is created.
22003	Description string `json:"description,omitempty"`
22004
22005	// Id: [Output Only] The unique identifier for the resource. This
22006	// identifier is defined by the server.
22007	Id uint64 `json:"id,omitempty,string"`
22008
22009	// Kind: [Output Only] Type of resource. Always compute#license for
22010	// licenses.
22011	Kind string `json:"kind,omitempty"`
22012
22013	// LicenseCode: [Output Only] The unique code used to attach this
22014	// license to images, snapshots, and disks.
22015	LicenseCode uint64 `json:"licenseCode,omitempty,string"`
22016
22017	// Name: Name of the resource. The name must be 1-63 characters long and
22018	// comply with RFC1035.
22019	Name string `json:"name,omitempty"`
22020
22021	ResourceRequirements *LicenseResourceRequirements `json:"resourceRequirements,omitempty"`
22022
22023	// SelfLink: [Output Only] Server-defined URL for the resource.
22024	SelfLink string `json:"selfLink,omitempty"`
22025
22026	// Transferable: If false, licenses will not be copied from the source
22027	// resource when creating an image from a disk, disk from snapshot, or
22028	// snapshot from disk.
22029	Transferable bool `json:"transferable,omitempty"`
22030
22031	// ServerResponse contains the HTTP response code and headers from the
22032	// server.
22033	googleapi.ServerResponse `json:"-"`
22034
22035	// ForceSendFields is a list of field names (e.g. "ChargesUseFee") to
22036	// unconditionally include in API requests. By default, fields with
22037	// empty values are omitted from API requests. However, any non-pointer,
22038	// non-interface field appearing in ForceSendFields will be sent to the
22039	// server regardless of whether the field is empty or not. This may be
22040	// used to include empty fields in Patch requests.
22041	ForceSendFields []string `json:"-"`
22042
22043	// NullFields is a list of field names (e.g. "ChargesUseFee") to include
22044	// in API requests with the JSON null value. By default, fields with
22045	// empty values are omitted from API requests. However, any field with
22046	// an empty value appearing in NullFields will be sent to the server as
22047	// null. It is an error if a field in this list has a non-empty value.
22048	// This may be used to include null fields in Patch requests.
22049	NullFields []string `json:"-"`
22050}
22051
22052func (s *License) MarshalJSON() ([]byte, error) {
22053	type NoMethod License
22054	raw := NoMethod(*s)
22055	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22056}
22057
22058// LicenseCode: Represents a License Code resource.
22059//
22060// A License Code is a unique identifier used to represent a license
22061// resource.  Caution This resource is intended for use only by
22062// third-party partners who are creating Cloud Marketplace images. (==
22063// resource_for {$api_version}.licenseCodes ==)
22064type LicenseCode struct {
22065	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
22066	// format.
22067	CreationTimestamp string `json:"creationTimestamp,omitempty"`
22068
22069	// Description: [Output Only] Description of this License Code.
22070	Description string `json:"description,omitempty"`
22071
22072	// Id: [Output Only] The unique identifier for the resource. This
22073	// identifier is defined by the server.
22074	Id uint64 `json:"id,omitempty,string"`
22075
22076	// Kind: [Output Only] Type of resource. Always compute#licenseCode for
22077	// licenses.
22078	Kind string `json:"kind,omitempty"`
22079
22080	// LicenseAlias: [Output Only] URL and description aliases of Licenses
22081	// with the same License Code.
22082	LicenseAlias []*LicenseCodeLicenseAlias `json:"licenseAlias,omitempty"`
22083
22084	// Name: [Output Only] Name of the resource. The name is 1-20 characters
22085	// long and must be a valid 64 bit integer.
22086	Name string `json:"name,omitempty"`
22087
22088	// SelfLink: [Output Only] Server-defined URL for the resource.
22089	SelfLink string `json:"selfLink,omitempty"`
22090
22091	// State: [Output Only] Current state of this License Code.
22092	//
22093	// Possible values:
22094	//   "DISABLED"
22095	//   "ENABLED"
22096	//   "RESTRICTED"
22097	//   "STATE_UNSPECIFIED"
22098	//   "TERMINATED"
22099	State string `json:"state,omitempty"`
22100
22101	// Transferable: [Output Only] If true, the license will remain attached
22102	// when creating images or snapshots from disks. Otherwise, the license
22103	// is not transferred.
22104	Transferable bool `json:"transferable,omitempty"`
22105
22106	// ServerResponse contains the HTTP response code and headers from the
22107	// server.
22108	googleapi.ServerResponse `json:"-"`
22109
22110	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
22111	// to unconditionally include in API requests. By default, fields with
22112	// empty values are omitted from API requests. However, any non-pointer,
22113	// non-interface field appearing in ForceSendFields will be sent to the
22114	// server regardless of whether the field is empty or not. This may be
22115	// used to include empty fields in Patch requests.
22116	ForceSendFields []string `json:"-"`
22117
22118	// NullFields is a list of field names (e.g. "CreationTimestamp") to
22119	// include in API requests with the JSON null value. By default, fields
22120	// with empty values are omitted from API requests. However, any field
22121	// with an empty value appearing in NullFields will be sent to the
22122	// server as null. It is an error if a field in this list has a
22123	// non-empty value. This may be used to include null fields in Patch
22124	// requests.
22125	NullFields []string `json:"-"`
22126}
22127
22128func (s *LicenseCode) MarshalJSON() ([]byte, error) {
22129	type NoMethod LicenseCode
22130	raw := NoMethod(*s)
22131	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22132}
22133
22134type LicenseCodeLicenseAlias struct {
22135	// Description: [Output Only] Description of this License Code.
22136	Description string `json:"description,omitempty"`
22137
22138	// SelfLink: [Output Only] URL of license corresponding to this License
22139	// Code.
22140	SelfLink string `json:"selfLink,omitempty"`
22141
22142	// ForceSendFields is a list of field names (e.g. "Description") to
22143	// unconditionally include in API requests. By default, fields with
22144	// empty values are omitted from API requests. However, any non-pointer,
22145	// non-interface field appearing in ForceSendFields will be sent to the
22146	// server regardless of whether the field is empty or not. This may be
22147	// used to include empty fields in Patch requests.
22148	ForceSendFields []string `json:"-"`
22149
22150	// NullFields is a list of field names (e.g. "Description") to include
22151	// in API requests with the JSON null value. By default, fields with
22152	// empty values are omitted from API requests. However, any field with
22153	// an empty value appearing in NullFields will be sent to the server as
22154	// null. It is an error if a field in this list has a non-empty value.
22155	// This may be used to include null fields in Patch requests.
22156	NullFields []string `json:"-"`
22157}
22158
22159func (s *LicenseCodeLicenseAlias) MarshalJSON() ([]byte, error) {
22160	type NoMethod LicenseCodeLicenseAlias
22161	raw := NoMethod(*s)
22162	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22163}
22164
22165// LicenseResourceCommitment: Commitment for a particular license
22166// resource.
22167type LicenseResourceCommitment struct {
22168	// Amount: The number of licenses purchased.
22169	Amount int64 `json:"amount,omitempty,string"`
22170
22171	// CoresPerLicense: Specifies the core range of the instance for which
22172	// this license applies.
22173	CoresPerLicense string `json:"coresPerLicense,omitempty"`
22174
22175	// License: Any applicable license URI.
22176	License string `json:"license,omitempty"`
22177
22178	// ForceSendFields is a list of field names (e.g. "Amount") to
22179	// unconditionally include in API requests. By default, fields with
22180	// empty values are omitted from API requests. However, any non-pointer,
22181	// non-interface field appearing in ForceSendFields will be sent to the
22182	// server regardless of whether the field is empty or not. This may be
22183	// used to include empty fields in Patch requests.
22184	ForceSendFields []string `json:"-"`
22185
22186	// NullFields is a list of field names (e.g. "Amount") to include in API
22187	// requests with the JSON null value. By default, fields with empty
22188	// values are omitted from API requests. However, any field with an
22189	// empty value appearing in NullFields will be sent to the server as
22190	// null. It is an error if a field in this list has a non-empty value.
22191	// This may be used to include null fields in Patch requests.
22192	NullFields []string `json:"-"`
22193}
22194
22195func (s *LicenseResourceCommitment) MarshalJSON() ([]byte, error) {
22196	type NoMethod LicenseResourceCommitment
22197	raw := NoMethod(*s)
22198	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22199}
22200
22201type LicenseResourceRequirements struct {
22202	// MinGuestCpuCount: Minimum number of guest cpus required to use the
22203	// Instance. Enforced at Instance creation and Instance start.
22204	MinGuestCpuCount int64 `json:"minGuestCpuCount,omitempty"`
22205
22206	// MinMemoryMb: Minimum memory required to use the Instance. Enforced at
22207	// Instance creation and Instance start.
22208	MinMemoryMb int64 `json:"minMemoryMb,omitempty"`
22209
22210	// ForceSendFields is a list of field names (e.g. "MinGuestCpuCount") to
22211	// unconditionally include in API requests. By default, fields with
22212	// empty values are omitted from API requests. However, any non-pointer,
22213	// non-interface field appearing in ForceSendFields will be sent to the
22214	// server regardless of whether the field is empty or not. This may be
22215	// used to include empty fields in Patch requests.
22216	ForceSendFields []string `json:"-"`
22217
22218	// NullFields is a list of field names (e.g. "MinGuestCpuCount") to
22219	// include in API requests with the JSON null value. By default, fields
22220	// with empty values are omitted from API requests. However, any field
22221	// with an empty value appearing in NullFields will be sent to the
22222	// server as null. It is an error if a field in this list has a
22223	// non-empty value. This may be used to include null fields in Patch
22224	// requests.
22225	NullFields []string `json:"-"`
22226}
22227
22228func (s *LicenseResourceRequirements) MarshalJSON() ([]byte, error) {
22229	type NoMethod LicenseResourceRequirements
22230	raw := NoMethod(*s)
22231	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22232}
22233
22234type LicensesListResponse struct {
22235	// Id: [Output Only] Unique identifier for the resource; defined by the
22236	// server.
22237	Id string `json:"id,omitempty"`
22238
22239	// Items: A list of License resources.
22240	Items []*License `json:"items,omitempty"`
22241
22242	// NextPageToken: [Output Only] This token allows you to get the next
22243	// page of results for list requests. If the number of results is larger
22244	// than maxResults, use the nextPageToken as a value for the query
22245	// parameter pageToken in the next list request. Subsequent list
22246	// requests will have their own nextPageToken to continue paging through
22247	// the results.
22248	NextPageToken string `json:"nextPageToken,omitempty"`
22249
22250	// SelfLink: [Output Only] Server-defined URL for this resource.
22251	SelfLink string `json:"selfLink,omitempty"`
22252
22253	// Warning: [Output Only] Informational warning message.
22254	Warning *LicensesListResponseWarning `json:"warning,omitempty"`
22255
22256	// ServerResponse contains the HTTP response code and headers from the
22257	// server.
22258	googleapi.ServerResponse `json:"-"`
22259
22260	// ForceSendFields is a list of field names (e.g. "Id") to
22261	// unconditionally include in API requests. By default, fields with
22262	// empty values are omitted from API requests. However, any non-pointer,
22263	// non-interface field appearing in ForceSendFields will be sent to the
22264	// server regardless of whether the field is empty or not. This may be
22265	// used to include empty fields in Patch requests.
22266	ForceSendFields []string `json:"-"`
22267
22268	// NullFields is a list of field names (e.g. "Id") to include in API
22269	// requests with the JSON null value. By default, fields with empty
22270	// values are omitted from API requests. However, any field with an
22271	// empty value appearing in NullFields will be sent to the server as
22272	// null. It is an error if a field in this list has a non-empty value.
22273	// This may be used to include null fields in Patch requests.
22274	NullFields []string `json:"-"`
22275}
22276
22277func (s *LicensesListResponse) MarshalJSON() ([]byte, error) {
22278	type NoMethod LicensesListResponse
22279	raw := NoMethod(*s)
22280	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22281}
22282
22283// LicensesListResponseWarning: [Output Only] Informational warning
22284// message.
22285type LicensesListResponseWarning struct {
22286	// Code: [Output Only] A warning code, if applicable. For example,
22287	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
22288	// the response.
22289	//
22290	// Possible values:
22291	//   "CLEANUP_FAILED"
22292	//   "DEPRECATED_RESOURCE_USED"
22293	//   "DEPRECATED_TYPE_USED"
22294	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
22295	//   "EXPERIMENTAL_TYPE_USED"
22296	//   "EXTERNAL_API_WARNING"
22297	//   "FIELD_VALUE_OVERRIDEN"
22298	//   "INJECTED_KERNELS_DEPRECATED"
22299	//   "LARGE_DEPLOYMENT_WARNING"
22300	//   "MISSING_TYPE_DEPENDENCY"
22301	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
22302	//   "NEXT_HOP_CANNOT_IP_FORWARD"
22303	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
22304	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
22305	//   "NEXT_HOP_NOT_RUNNING"
22306	//   "NOT_CRITICAL_ERROR"
22307	//   "NO_RESULTS_ON_PAGE"
22308	//   "PARTIAL_SUCCESS"
22309	//   "REQUIRED_TOS_AGREEMENT"
22310	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
22311	//   "RESOURCE_NOT_DELETED"
22312	//   "SCHEMA_VALIDATION_IGNORED"
22313	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
22314	//   "UNDECLARED_PROPERTIES"
22315	//   "UNREACHABLE"
22316	Code string `json:"code,omitempty"`
22317
22318	// Data: [Output Only] Metadata about this warning in key: value format.
22319	// For example:
22320	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
22321	Data []*LicensesListResponseWarningData `json:"data,omitempty"`
22322
22323	// Message: [Output Only] A human-readable description of the warning
22324	// code.
22325	Message string `json:"message,omitempty"`
22326
22327	// ForceSendFields is a list of field names (e.g. "Code") to
22328	// unconditionally include in API requests. By default, fields with
22329	// empty values are omitted from API requests. However, any non-pointer,
22330	// non-interface field appearing in ForceSendFields will be sent to the
22331	// server regardless of whether the field is empty or not. This may be
22332	// used to include empty fields in Patch requests.
22333	ForceSendFields []string `json:"-"`
22334
22335	// NullFields is a list of field names (e.g. "Code") to include in API
22336	// requests with the JSON null value. By default, fields with empty
22337	// values are omitted from API requests. However, any field with an
22338	// empty value appearing in NullFields will be sent to the server as
22339	// null. It is an error if a field in this list has a non-empty value.
22340	// This may be used to include null fields in Patch requests.
22341	NullFields []string `json:"-"`
22342}
22343
22344func (s *LicensesListResponseWarning) MarshalJSON() ([]byte, error) {
22345	type NoMethod LicensesListResponseWarning
22346	raw := NoMethod(*s)
22347	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22348}
22349
22350type LicensesListResponseWarningData struct {
22351	// Key: [Output Only] A key that provides more detail on the warning
22352	// being returned. For example, for warnings where there are no results
22353	// in a list request for a particular zone, this key might be scope and
22354	// the key value might be the zone name. Other examples might be a key
22355	// indicating a deprecated resource and a suggested replacement, or a
22356	// warning about invalid network settings (for example, if an instance
22357	// attempts to perform IP forwarding but is not enabled for IP
22358	// forwarding).
22359	Key string `json:"key,omitempty"`
22360
22361	// Value: [Output Only] A warning data value corresponding to the key.
22362	Value string `json:"value,omitempty"`
22363
22364	// ForceSendFields is a list of field names (e.g. "Key") to
22365	// unconditionally include in API requests. By default, fields with
22366	// empty values are omitted from API requests. However, any non-pointer,
22367	// non-interface field appearing in ForceSendFields will be sent to the
22368	// server regardless of whether the field is empty or not. This may be
22369	// used to include empty fields in Patch requests.
22370	ForceSendFields []string `json:"-"`
22371
22372	// NullFields is a list of field names (e.g. "Key") to include in API
22373	// requests with the JSON null value. By default, fields with empty
22374	// values are omitted from API requests. However, any field with an
22375	// empty value appearing in NullFields will be sent to the server as
22376	// null. It is an error if a field in this list has a non-empty value.
22377	// This may be used to include null fields in Patch requests.
22378	NullFields []string `json:"-"`
22379}
22380
22381func (s *LicensesListResponseWarningData) MarshalJSON() ([]byte, error) {
22382	type NoMethod LicensesListResponseWarningData
22383	raw := NoMethod(*s)
22384	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22385}
22386
22387type LocalDisk struct {
22388	// DiskCount: Specifies the number of such disks.
22389	DiskCount int64 `json:"diskCount,omitempty"`
22390
22391	// DiskSizeGb: Specifies the size of the disk in base-2 GB.
22392	DiskSizeGb int64 `json:"diskSizeGb,omitempty"`
22393
22394	// DiskType: Specifies the desired disk type on the node. This disk type
22395	// must be a local storage type (e.g.: local-ssd). Note that for
22396	// nodeTemplates, this should be the name of the disk type and not its
22397	// URL.
22398	DiskType string `json:"diskType,omitempty"`
22399
22400	// ForceSendFields is a list of field names (e.g. "DiskCount") to
22401	// unconditionally include in API requests. By default, fields with
22402	// empty values are omitted from API requests. However, any non-pointer,
22403	// non-interface field appearing in ForceSendFields will be sent to the
22404	// server regardless of whether the field is empty or not. This may be
22405	// used to include empty fields in Patch requests.
22406	ForceSendFields []string `json:"-"`
22407
22408	// NullFields is a list of field names (e.g. "DiskCount") to include in
22409	// API requests with the JSON null value. By default, fields with empty
22410	// values are omitted from API requests. However, any field with an
22411	// empty value appearing in NullFields will be sent to the server as
22412	// null. It is an error if a field in this list has a non-empty value.
22413	// This may be used to include null fields in Patch requests.
22414	NullFields []string `json:"-"`
22415}
22416
22417func (s *LocalDisk) MarshalJSON() ([]byte, error) {
22418	type NoMethod LocalDisk
22419	raw := NoMethod(*s)
22420	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22421}
22422
22423// LocationPolicy: Configuration for location policy among multiple
22424// possible locations (e.g. preferences for zone selection among zones
22425// in a single region).
22426type LocationPolicy struct {
22427	// Locations: Location configurations mapped by location name. Currently
22428	// only zone names are supported and must be represented as valid
22429	// internal URLs, like: zones/us-central1-a.
22430	Locations map[string]LocationPolicyLocation `json:"locations,omitempty"`
22431
22432	// ForceSendFields is a list of field names (e.g. "Locations") to
22433	// unconditionally include in API requests. By default, fields with
22434	// empty values are omitted from API requests. However, any non-pointer,
22435	// non-interface field appearing in ForceSendFields will be sent to the
22436	// server regardless of whether the field is empty or not. This may be
22437	// used to include empty fields in Patch requests.
22438	ForceSendFields []string `json:"-"`
22439
22440	// NullFields is a list of field names (e.g. "Locations") to include in
22441	// API requests with the JSON null value. By default, fields with empty
22442	// values are omitted from API requests. However, any field with an
22443	// empty value appearing in NullFields will be sent to the server as
22444	// null. It is an error if a field in this list has a non-empty value.
22445	// This may be used to include null fields in Patch requests.
22446	NullFields []string `json:"-"`
22447}
22448
22449func (s *LocationPolicy) MarshalJSON() ([]byte, error) {
22450	type NoMethod LocationPolicy
22451	raw := NoMethod(*s)
22452	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22453}
22454
22455type LocationPolicyLocation struct {
22456	// Possible values:
22457	//   "ALLOW"
22458	//   "DENY"
22459	//   "PREFERENCE_UNSPECIFIED"
22460	Preference string `json:"preference,omitempty"`
22461
22462	// ForceSendFields is a list of field names (e.g. "Preference") to
22463	// unconditionally include in API requests. By default, fields with
22464	// empty values are omitted from API requests. However, any non-pointer,
22465	// non-interface field appearing in ForceSendFields will be sent to the
22466	// server regardless of whether the field is empty or not. This may be
22467	// used to include empty fields in Patch requests.
22468	ForceSendFields []string `json:"-"`
22469
22470	// NullFields is a list of field names (e.g. "Preference") to include in
22471	// API requests with the JSON null value. By default, fields with empty
22472	// values are omitted from API requests. However, any field with an
22473	// empty value appearing in NullFields will be sent to the server as
22474	// null. It is an error if a field in this list has a non-empty value.
22475	// This may be used to include null fields in Patch requests.
22476	NullFields []string `json:"-"`
22477}
22478
22479func (s *LocationPolicyLocation) MarshalJSON() ([]byte, error) {
22480	type NoMethod LocationPolicyLocation
22481	raw := NoMethod(*s)
22482	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22483}
22484
22485// LogConfig: Specifies what kind of log the caller must write
22486type LogConfig struct {
22487	// CloudAudit: Cloud audit options.
22488	CloudAudit *LogConfigCloudAuditOptions `json:"cloudAudit,omitempty"`
22489
22490	// Counter: Counter options.
22491	Counter *LogConfigCounterOptions `json:"counter,omitempty"`
22492
22493	// DataAccess: Data access options.
22494	DataAccess *LogConfigDataAccessOptions `json:"dataAccess,omitempty"`
22495
22496	// ForceSendFields is a list of field names (e.g. "CloudAudit") to
22497	// unconditionally include in API requests. By default, fields with
22498	// empty values are omitted from API requests. However, any non-pointer,
22499	// non-interface field appearing in ForceSendFields will be sent to the
22500	// server regardless of whether the field is empty or not. This may be
22501	// used to include empty fields in Patch requests.
22502	ForceSendFields []string `json:"-"`
22503
22504	// NullFields is a list of field names (e.g. "CloudAudit") to include in
22505	// API requests with the JSON null value. By default, fields with empty
22506	// values are omitted from API requests. However, any field with an
22507	// empty value appearing in NullFields will be sent to the server as
22508	// null. It is an error if a field in this list has a non-empty value.
22509	// This may be used to include null fields in Patch requests.
22510	NullFields []string `json:"-"`
22511}
22512
22513func (s *LogConfig) MarshalJSON() ([]byte, error) {
22514	type NoMethod LogConfig
22515	raw := NoMethod(*s)
22516	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22517}
22518
22519// LogConfigCloudAuditOptions: Write a Cloud Audit log
22520type LogConfigCloudAuditOptions struct {
22521	// AuthorizationLoggingOptions: Information used by the Cloud Audit
22522	// Logging pipeline.
22523	AuthorizationLoggingOptions *AuthorizationLoggingOptions `json:"authorizationLoggingOptions,omitempty"`
22524
22525	// LogName: The log_name to populate in the Cloud Audit Record.
22526	//
22527	// Possible values:
22528	//   "ADMIN_ACTIVITY"
22529	//   "DATA_ACCESS"
22530	//   "UNSPECIFIED_LOG_NAME"
22531	LogName string `json:"logName,omitempty"`
22532
22533	// ForceSendFields is a list of field names (e.g.
22534	// "AuthorizationLoggingOptions") to unconditionally include in API
22535	// requests. By default, fields with empty values are omitted from API
22536	// requests. However, any non-pointer, non-interface field appearing in
22537	// ForceSendFields will be sent to the server regardless of whether the
22538	// field is empty or not. This may be used to include empty fields in
22539	// Patch requests.
22540	ForceSendFields []string `json:"-"`
22541
22542	// NullFields is a list of field names (e.g.
22543	// "AuthorizationLoggingOptions") to include in API requests with the
22544	// JSON null value. By default, fields with empty values are omitted
22545	// from API requests. However, any field with an empty value appearing
22546	// in NullFields will be sent to the server as null. It is an error if a
22547	// field in this list has a non-empty value. This may be used to include
22548	// null fields in Patch requests.
22549	NullFields []string `json:"-"`
22550}
22551
22552func (s *LogConfigCloudAuditOptions) MarshalJSON() ([]byte, error) {
22553	type NoMethod LogConfigCloudAuditOptions
22554	raw := NoMethod(*s)
22555	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22556}
22557
22558// LogConfigCounterOptions: Increment a streamz counter with the
22559// specified metric and field names.
22560//
22561// Metric names should start with a '/', generally be lowercase-only,
22562// and end in "_count". Field names should not contain an initial slash.
22563// The actual exported metric names will have "/iam/policy"
22564// prepended.
22565//
22566// Field names correspond to IAM request parameters and field values are
22567// their respective values.
22568//
22569// Supported field names: - "authority", which is "[token]" if
22570// IAMContext.token is present, otherwise the value of
22571// IAMContext.authority_selector if present, and otherwise a
22572// representation of IAMContext.principal; or - "iam_principal", a
22573// representation of IAMContext.principal even if a token or authority
22574// selector is present; or - "" (empty string), resulting in a counter
22575// with no fields.
22576//
22577// Examples: counter { metric: "/debug_access_count" field:
22578// "iam_principal" } ==> increment counter
22579// /iam/policy/debug_access_count {iam_principal=[value of
22580// IAMContext.principal]}
22581type LogConfigCounterOptions struct {
22582	// CustomFields: Custom fields.
22583	CustomFields []*LogConfigCounterOptionsCustomField `json:"customFields,omitempty"`
22584
22585	// Field: The field value to attribute.
22586	Field string `json:"field,omitempty"`
22587
22588	// Metric: The metric to update.
22589	Metric string `json:"metric,omitempty"`
22590
22591	// ForceSendFields is a list of field names (e.g. "CustomFields") to
22592	// unconditionally include in API requests. By default, fields with
22593	// empty values are omitted from API requests. However, any non-pointer,
22594	// non-interface field appearing in ForceSendFields will be sent to the
22595	// server regardless of whether the field is empty or not. This may be
22596	// used to include empty fields in Patch requests.
22597	ForceSendFields []string `json:"-"`
22598
22599	// NullFields is a list of field names (e.g. "CustomFields") to include
22600	// in API requests with the JSON null value. By default, fields with
22601	// empty values are omitted from API requests. However, any field with
22602	// an empty value appearing in NullFields will be sent to the server as
22603	// null. It is an error if a field in this list has a non-empty value.
22604	// This may be used to include null fields in Patch requests.
22605	NullFields []string `json:"-"`
22606}
22607
22608func (s *LogConfigCounterOptions) MarshalJSON() ([]byte, error) {
22609	type NoMethod LogConfigCounterOptions
22610	raw := NoMethod(*s)
22611	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22612}
22613
22614// LogConfigCounterOptionsCustomField: Custom fields. These can be used
22615// to create a counter with arbitrary field/value pairs. See:
22616// go/rpcsp-custom-fields.
22617type LogConfigCounterOptionsCustomField struct {
22618	// Name: Name is the field name.
22619	Name string `json:"name,omitempty"`
22620
22621	// Value: Value is the field value. It is important that in contrast to
22622	// the CounterOptions.field, the value here is a constant that is not
22623	// derived from the IAMContext.
22624	Value string `json:"value,omitempty"`
22625
22626	// ForceSendFields is a list of field names (e.g. "Name") to
22627	// unconditionally include in API requests. By default, fields with
22628	// empty values are omitted from API requests. However, any non-pointer,
22629	// non-interface field appearing in ForceSendFields will be sent to the
22630	// server regardless of whether the field is empty or not. This may be
22631	// used to include empty fields in Patch requests.
22632	ForceSendFields []string `json:"-"`
22633
22634	// NullFields is a list of field names (e.g. "Name") to include in API
22635	// requests with the JSON null value. By default, fields with empty
22636	// values are omitted from API requests. However, any field with an
22637	// empty value appearing in NullFields will be sent to the server as
22638	// null. It is an error if a field in this list has a non-empty value.
22639	// This may be used to include null fields in Patch requests.
22640	NullFields []string `json:"-"`
22641}
22642
22643func (s *LogConfigCounterOptionsCustomField) MarshalJSON() ([]byte, error) {
22644	type NoMethod LogConfigCounterOptionsCustomField
22645	raw := NoMethod(*s)
22646	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22647}
22648
22649// LogConfigDataAccessOptions: Write a Data Access (Gin) log
22650type LogConfigDataAccessOptions struct {
22651	// Possible values:
22652	//   "LOG_FAIL_CLOSED"
22653	//   "LOG_MODE_UNSPECIFIED"
22654	LogMode string `json:"logMode,omitempty"`
22655
22656	// ForceSendFields is a list of field names (e.g. "LogMode") to
22657	// unconditionally include in API requests. By default, fields with
22658	// empty values are omitted from API requests. However, any non-pointer,
22659	// non-interface field appearing in ForceSendFields will be sent to the
22660	// server regardless of whether the field is empty or not. This may be
22661	// used to include empty fields in Patch requests.
22662	ForceSendFields []string `json:"-"`
22663
22664	// NullFields is a list of field names (e.g. "LogMode") to include in
22665	// API requests with the JSON null value. By default, fields with empty
22666	// values are omitted from API requests. However, any field with an
22667	// empty value appearing in NullFields will be sent to the server as
22668	// null. It is an error if a field in this list has a non-empty value.
22669	// This may be used to include null fields in Patch requests.
22670	NullFields []string `json:"-"`
22671}
22672
22673func (s *LogConfigDataAccessOptions) MarshalJSON() ([]byte, error) {
22674	type NoMethod LogConfigDataAccessOptions
22675	raw := NoMethod(*s)
22676	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22677}
22678
22679// MachineImage: Represents a machine image resource.
22680//
22681// A machine image is a Compute Engine resource that stores all the
22682// configuration, metadata, permissions, and data from one or more disks
22683// required to create a Virtual machine (VM) instance. For more
22684// information, see Machine images. (== resource_for
22685// {$api_version}.machineImages ==)
22686type MachineImage struct {
22687	// CreationTimestamp: [Output Only] The creation timestamp for this
22688	// machine image in RFC3339 text format.
22689	CreationTimestamp string `json:"creationTimestamp,omitempty"`
22690
22691	// Description: An optional description of this resource. Provide this
22692	// property when you create the resource.
22693	Description string `json:"description,omitempty"`
22694
22695	// GuestFlush: [Input Only] Whether to attempt an application consistent
22696	// machine image by informing the OS to prepare for the snapshot
22697	// process. Currently only supported on Windows instances using the
22698	// Volume Shadow Copy Service (VSS).
22699	GuestFlush bool `json:"guestFlush,omitempty"`
22700
22701	// Id: [Output Only] A unique identifier for this machine image. The
22702	// server defines this identifier.
22703	Id uint64 `json:"id,omitempty,string"`
22704
22705	// Kind: [Output Only] The resource type, which is always
22706	// compute#machineImage for machine image.
22707	Kind string `json:"kind,omitempty"`
22708
22709	// MachineImageEncryptionKey: Encrypts the machine image using a
22710	// customer-supplied encryption key.
22711	//
22712	// After you encrypt a machine image using a customer-supplied key, you
22713	// must provide the same key if you use the machine image later. For
22714	// example, you must provide the encryption key when you create an
22715	// instance from the encrypted machine image in a future
22716	// request.
22717	//
22718	// Customer-supplied encryption keys do not protect access to metadata
22719	// of the machine image.
22720	//
22721	// If you do not provide an encryption key when creating the machine
22722	// image, then the machine image will be encrypted using an
22723	// automatically generated key and you do not need to provide a key to
22724	// use the machine image later.
22725	MachineImageEncryptionKey *CustomerEncryptionKey `json:"machineImageEncryptionKey,omitempty"`
22726
22727	// Name: Name of the resource; provided by the client when the resource
22728	// is created. The name must be 1-63 characters long, and comply with
22729	// RFC1035. Specifically, the name must be 1-63 characters long and
22730	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
22731	// the first character must be a lowercase letter, and all following
22732	// characters must be a dash, lowercase letter, or digit, except the
22733	// last character, which cannot be a dash.
22734	Name string `json:"name,omitempty"`
22735
22736	// SatisfiesPzs: [Output Only] Reserved for future use.
22737	SatisfiesPzs bool `json:"satisfiesPzs,omitempty"`
22738
22739	// SelfLink: [Output Only] The URL for this machine image. The server
22740	// defines this URL.
22741	SelfLink string `json:"selfLink,omitempty"`
22742
22743	// SourceDiskEncryptionKeys: [Input Only] The customer-supplied
22744	// encryption key of the disks attached to the source instance. Required
22745	// if the source disk is protected by a customer-supplied encryption
22746	// key.
22747	SourceDiskEncryptionKeys []*SourceDiskEncryptionKey `json:"sourceDiskEncryptionKeys,omitempty"`
22748
22749	// SourceInstance: The source instance used to create the machine image.
22750	// You can provide this as a partial or full URL to the resource. For
22751	// example, the following are valid values:
22752	// -
22753	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance
22754	//
22755	// - projects/project/zones/zone/instances/instance
22756	SourceInstance string `json:"sourceInstance,omitempty"`
22757
22758	// SourceInstanceProperties: [Output Only] Properties of source
22759	// instance.
22760	SourceInstanceProperties *SourceInstanceProperties `json:"sourceInstanceProperties,omitempty"`
22761
22762	// Status: [Output Only] The status of the machine image. One of the
22763	// following values: INVALID, CREATING, READY, DELETING, and UPLOADING.
22764	//
22765	// Possible values:
22766	//   "CREATING"
22767	//   "DELETING"
22768	//   "INVALID"
22769	//   "READY"
22770	//   "UPLOADING"
22771	Status string `json:"status,omitempty"`
22772
22773	// StorageLocations: The regional or multi-regional Cloud Storage bucket
22774	// location where the machine image is stored.
22775	StorageLocations []string `json:"storageLocations,omitempty"`
22776
22777	// TotalStorageBytes: [Output Only] Total size of the storage used by
22778	// the machine image.
22779	TotalStorageBytes int64 `json:"totalStorageBytes,omitempty,string"`
22780
22781	// ServerResponse contains the HTTP response code and headers from the
22782	// server.
22783	googleapi.ServerResponse `json:"-"`
22784
22785	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
22786	// to unconditionally include in API requests. By default, fields with
22787	// empty values are omitted from API requests. However, any non-pointer,
22788	// non-interface field appearing in ForceSendFields will be sent to the
22789	// server regardless of whether the field is empty or not. This may be
22790	// used to include empty fields in Patch requests.
22791	ForceSendFields []string `json:"-"`
22792
22793	// NullFields is a list of field names (e.g. "CreationTimestamp") to
22794	// include in API requests with the JSON null value. By default, fields
22795	// with empty values are omitted from API requests. However, any field
22796	// with an empty value appearing in NullFields will be sent to the
22797	// server as null. It is an error if a field in this list has a
22798	// non-empty value. This may be used to include null fields in Patch
22799	// requests.
22800	NullFields []string `json:"-"`
22801}
22802
22803func (s *MachineImage) MarshalJSON() ([]byte, error) {
22804	type NoMethod MachineImage
22805	raw := NoMethod(*s)
22806	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22807}
22808
22809// MachineImageList: A list of machine images.
22810type MachineImageList struct {
22811	// Id: [Output Only] Unique identifier for the resource; defined by the
22812	// server.
22813	Id string `json:"id,omitempty"`
22814
22815	// Items: A list of MachineImage resources.
22816	Items []*MachineImage `json:"items,omitempty"`
22817
22818	// Kind: [Output Only] The resource type, which is always
22819	// compute#machineImagesListResponse for machine image lists.
22820	Kind string `json:"kind,omitempty"`
22821
22822	// NextPageToken: [Output Only] This token allows you to get the next
22823	// page of results for list requests. If the number of results is larger
22824	// than maxResults, use the nextPageToken as a value for the query
22825	// parameter pageToken in the next list request. Subsequent list
22826	// requests will have their own nextPageToken to continue paging through
22827	// the results.
22828	NextPageToken string `json:"nextPageToken,omitempty"`
22829
22830	// SelfLink: [Output Only] Server-defined URL for this resource.
22831	SelfLink string `json:"selfLink,omitempty"`
22832
22833	// Warning: [Output Only] Informational warning message.
22834	Warning *MachineImageListWarning `json:"warning,omitempty"`
22835
22836	// ServerResponse contains the HTTP response code and headers from the
22837	// server.
22838	googleapi.ServerResponse `json:"-"`
22839
22840	// ForceSendFields is a list of field names (e.g. "Id") to
22841	// unconditionally include in API requests. By default, fields with
22842	// empty values are omitted from API requests. However, any non-pointer,
22843	// non-interface field appearing in ForceSendFields will be sent to the
22844	// server regardless of whether the field is empty or not. This may be
22845	// used to include empty fields in Patch requests.
22846	ForceSendFields []string `json:"-"`
22847
22848	// NullFields is a list of field names (e.g. "Id") to include in API
22849	// requests with the JSON null value. By default, fields with empty
22850	// values are omitted from API requests. However, any field with an
22851	// empty value appearing in NullFields will be sent to the server as
22852	// null. It is an error if a field in this list has a non-empty value.
22853	// This may be used to include null fields in Patch requests.
22854	NullFields []string `json:"-"`
22855}
22856
22857func (s *MachineImageList) MarshalJSON() ([]byte, error) {
22858	type NoMethod MachineImageList
22859	raw := NoMethod(*s)
22860	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22861}
22862
22863// MachineImageListWarning: [Output Only] Informational warning message.
22864type MachineImageListWarning struct {
22865	// Code: [Output Only] A warning code, if applicable. For example,
22866	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
22867	// the response.
22868	//
22869	// Possible values:
22870	//   "CLEANUP_FAILED"
22871	//   "DEPRECATED_RESOURCE_USED"
22872	//   "DEPRECATED_TYPE_USED"
22873	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
22874	//   "EXPERIMENTAL_TYPE_USED"
22875	//   "EXTERNAL_API_WARNING"
22876	//   "FIELD_VALUE_OVERRIDEN"
22877	//   "INJECTED_KERNELS_DEPRECATED"
22878	//   "LARGE_DEPLOYMENT_WARNING"
22879	//   "MISSING_TYPE_DEPENDENCY"
22880	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
22881	//   "NEXT_HOP_CANNOT_IP_FORWARD"
22882	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
22883	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
22884	//   "NEXT_HOP_NOT_RUNNING"
22885	//   "NOT_CRITICAL_ERROR"
22886	//   "NO_RESULTS_ON_PAGE"
22887	//   "PARTIAL_SUCCESS"
22888	//   "REQUIRED_TOS_AGREEMENT"
22889	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
22890	//   "RESOURCE_NOT_DELETED"
22891	//   "SCHEMA_VALIDATION_IGNORED"
22892	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
22893	//   "UNDECLARED_PROPERTIES"
22894	//   "UNREACHABLE"
22895	Code string `json:"code,omitempty"`
22896
22897	// Data: [Output Only] Metadata about this warning in key: value format.
22898	// For example:
22899	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
22900	Data []*MachineImageListWarningData `json:"data,omitempty"`
22901
22902	// Message: [Output Only] A human-readable description of the warning
22903	// code.
22904	Message string `json:"message,omitempty"`
22905
22906	// ForceSendFields is a list of field names (e.g. "Code") to
22907	// unconditionally include in API requests. By default, fields with
22908	// empty values are omitted from API requests. However, any non-pointer,
22909	// non-interface field appearing in ForceSendFields will be sent to the
22910	// server regardless of whether the field is empty or not. This may be
22911	// used to include empty fields in Patch requests.
22912	ForceSendFields []string `json:"-"`
22913
22914	// NullFields is a list of field names (e.g. "Code") to include in API
22915	// requests with the JSON null value. By default, fields with empty
22916	// values are omitted from API requests. However, any field with an
22917	// empty value appearing in NullFields will be sent to the server as
22918	// null. It is an error if a field in this list has a non-empty value.
22919	// This may be used to include null fields in Patch requests.
22920	NullFields []string `json:"-"`
22921}
22922
22923func (s *MachineImageListWarning) MarshalJSON() ([]byte, error) {
22924	type NoMethod MachineImageListWarning
22925	raw := NoMethod(*s)
22926	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22927}
22928
22929type MachineImageListWarningData struct {
22930	// Key: [Output Only] A key that provides more detail on the warning
22931	// being returned. For example, for warnings where there are no results
22932	// in a list request for a particular zone, this key might be scope and
22933	// the key value might be the zone name. Other examples might be a key
22934	// indicating a deprecated resource and a suggested replacement, or a
22935	// warning about invalid network settings (for example, if an instance
22936	// attempts to perform IP forwarding but is not enabled for IP
22937	// forwarding).
22938	Key string `json:"key,omitempty"`
22939
22940	// Value: [Output Only] A warning data value corresponding to the key.
22941	Value string `json:"value,omitempty"`
22942
22943	// ForceSendFields is a list of field names (e.g. "Key") to
22944	// unconditionally include in API requests. By default, fields with
22945	// empty values are omitted from API requests. However, any non-pointer,
22946	// non-interface field appearing in ForceSendFields will be sent to the
22947	// server regardless of whether the field is empty or not. This may be
22948	// used to include empty fields in Patch requests.
22949	ForceSendFields []string `json:"-"`
22950
22951	// NullFields is a list of field names (e.g. "Key") to include in API
22952	// requests with the JSON null value. By default, fields with empty
22953	// values are omitted from API requests. However, any field with an
22954	// empty value appearing in NullFields will be sent to the server as
22955	// null. It is an error if a field in this list has a non-empty value.
22956	// This may be used to include null fields in Patch requests.
22957	NullFields []string `json:"-"`
22958}
22959
22960func (s *MachineImageListWarningData) MarshalJSON() ([]byte, error) {
22961	type NoMethod MachineImageListWarningData
22962	raw := NoMethod(*s)
22963	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22964}
22965
22966// MachineType: Represents a Machine Type resource.
22967//
22968// You can use specific machine types for your VM instances based on
22969// performance and pricing requirements. For more information, read
22970// Machine Types. (== resource_for {$api_version}.machineTypes ==)
22971type MachineType struct {
22972	// Accelerators: [Output Only] A list of accelerator configurations
22973	// assigned to this machine type.
22974	Accelerators []*MachineTypeAccelerators `json:"accelerators,omitempty"`
22975
22976	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
22977	// format.
22978	CreationTimestamp string `json:"creationTimestamp,omitempty"`
22979
22980	// Deprecated -- [Output Only] The deprecation status associated with
22981	// this machine type. Only applicable if the machine type is
22982	// unavailable.
22983	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
22984
22985	// Description: [Output Only] An optional textual description of the
22986	// resource.
22987	Description string `json:"description,omitempty"`
22988
22989	// GuestCpus: [Output Only] The number of virtual CPUs that are
22990	// available to the instance.
22991	GuestCpus int64 `json:"guestCpus,omitempty"`
22992
22993	// Id: [Output Only] The unique identifier for the resource. This
22994	// identifier is defined by the server.
22995	Id uint64 `json:"id,omitempty,string"`
22996
22997	// IsSharedCpu: [Output Only] Whether this machine type has a shared
22998	// CPU. See Shared-core machine types for more information.
22999	IsSharedCpu bool `json:"isSharedCpu,omitempty"`
23000
23001	// Kind: [Output Only] The type of the resource. Always
23002	// compute#machineType for machine types.
23003	Kind string `json:"kind,omitempty"`
23004
23005	// MaximumPersistentDisks: [Output Only] Maximum persistent disks
23006	// allowed.
23007	MaximumPersistentDisks int64 `json:"maximumPersistentDisks,omitempty"`
23008
23009	// MaximumPersistentDisksSizeGb: [Output Only] Maximum total persistent
23010	// disks size (GB) allowed.
23011	MaximumPersistentDisksSizeGb int64 `json:"maximumPersistentDisksSizeGb,omitempty,string"`
23012
23013	// MemoryMb: [Output Only] The amount of physical memory available to
23014	// the instance, defined in MB.
23015	MemoryMb int64 `json:"memoryMb,omitempty"`
23016
23017	// Name: [Output Only] Name of the resource.
23018	Name string `json:"name,omitempty"`
23019
23020	// SelfLink: [Output Only] Server-defined URL for the resource.
23021	SelfLink string `json:"selfLink,omitempty"`
23022
23023	// Zone: [Output Only] The name of the zone where the machine type
23024	// resides, such as us-central1-a.
23025	Zone string `json:"zone,omitempty"`
23026
23027	// ServerResponse contains the HTTP response code and headers from the
23028	// server.
23029	googleapi.ServerResponse `json:"-"`
23030
23031	// ForceSendFields is a list of field names (e.g. "Accelerators") to
23032	// unconditionally include in API requests. By default, fields with
23033	// empty values are omitted from API requests. However, any non-pointer,
23034	// non-interface field appearing in ForceSendFields will be sent to the
23035	// server regardless of whether the field is empty or not. This may be
23036	// used to include empty fields in Patch requests.
23037	ForceSendFields []string `json:"-"`
23038
23039	// NullFields is a list of field names (e.g. "Accelerators") to include
23040	// in API requests with the JSON null value. By default, fields with
23041	// empty values are omitted from API requests. However, any field with
23042	// an empty value appearing in NullFields will be sent to the server as
23043	// null. It is an error if a field in this list has a non-empty value.
23044	// This may be used to include null fields in Patch requests.
23045	NullFields []string `json:"-"`
23046}
23047
23048func (s *MachineType) MarshalJSON() ([]byte, error) {
23049	type NoMethod MachineType
23050	raw := NoMethod(*s)
23051	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23052}
23053
23054type MachineTypeAccelerators struct {
23055	// GuestAcceleratorCount: Number of accelerator cards exposed to the
23056	// guest.
23057	GuestAcceleratorCount int64 `json:"guestAcceleratorCount,omitempty"`
23058
23059	// GuestAcceleratorType: The accelerator type resource name, not a full
23060	// URL, e.g. 'nvidia-tesla-k80'.
23061	GuestAcceleratorType string `json:"guestAcceleratorType,omitempty"`
23062
23063	// ForceSendFields is a list of field names (e.g.
23064	// "GuestAcceleratorCount") to unconditionally include in API requests.
23065	// By default, fields with empty values are omitted from API requests.
23066	// However, any non-pointer, non-interface field appearing in
23067	// ForceSendFields will be sent to the server regardless of whether the
23068	// field is empty or not. This may be used to include empty fields in
23069	// Patch requests.
23070	ForceSendFields []string `json:"-"`
23071
23072	// NullFields is a list of field names (e.g. "GuestAcceleratorCount") to
23073	// include in API requests with the JSON null value. By default, fields
23074	// with empty values are omitted from API requests. However, any field
23075	// with an empty value appearing in NullFields will be sent to the
23076	// server as null. It is an error if a field in this list has a
23077	// non-empty value. This may be used to include null fields in Patch
23078	// requests.
23079	NullFields []string `json:"-"`
23080}
23081
23082func (s *MachineTypeAccelerators) MarshalJSON() ([]byte, error) {
23083	type NoMethod MachineTypeAccelerators
23084	raw := NoMethod(*s)
23085	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23086}
23087
23088type MachineTypeAggregatedList struct {
23089	// Id: [Output Only] Unique identifier for the resource; defined by the
23090	// server.
23091	Id string `json:"id,omitempty"`
23092
23093	// Items: A list of MachineTypesScopedList resources.
23094	Items map[string]MachineTypesScopedList `json:"items,omitempty"`
23095
23096	// Kind: [Output Only] Type of resource. Always
23097	// compute#machineTypeAggregatedList for aggregated lists of machine
23098	// types.
23099	Kind string `json:"kind,omitempty"`
23100
23101	// NextPageToken: [Output Only] This token allows you to get the next
23102	// page of results for list requests. If the number of results is larger
23103	// than maxResults, use the nextPageToken as a value for the query
23104	// parameter pageToken in the next list request. Subsequent list
23105	// requests will have their own nextPageToken to continue paging through
23106	// the results.
23107	NextPageToken string `json:"nextPageToken,omitempty"`
23108
23109	// SelfLink: [Output Only] Server-defined URL for this resource.
23110	SelfLink string `json:"selfLink,omitempty"`
23111
23112	// Unreachables: [Output Only] Unreachable resources.
23113	Unreachables []string `json:"unreachables,omitempty"`
23114
23115	// Warning: [Output Only] Informational warning message.
23116	Warning *MachineTypeAggregatedListWarning `json:"warning,omitempty"`
23117
23118	// ServerResponse contains the HTTP response code and headers from the
23119	// server.
23120	googleapi.ServerResponse `json:"-"`
23121
23122	// ForceSendFields is a list of field names (e.g. "Id") to
23123	// unconditionally include in API requests. By default, fields with
23124	// empty values are omitted from API requests. However, any non-pointer,
23125	// non-interface field appearing in ForceSendFields will be sent to the
23126	// server regardless of whether the field is empty or not. This may be
23127	// used to include empty fields in Patch requests.
23128	ForceSendFields []string `json:"-"`
23129
23130	// NullFields is a list of field names (e.g. "Id") to include in API
23131	// requests with the JSON null value. By default, fields with empty
23132	// values are omitted from API requests. However, any field with an
23133	// empty value appearing in NullFields will be sent to the server as
23134	// null. It is an error if a field in this list has a non-empty value.
23135	// This may be used to include null fields in Patch requests.
23136	NullFields []string `json:"-"`
23137}
23138
23139func (s *MachineTypeAggregatedList) MarshalJSON() ([]byte, error) {
23140	type NoMethod MachineTypeAggregatedList
23141	raw := NoMethod(*s)
23142	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23143}
23144
23145// MachineTypeAggregatedListWarning: [Output Only] Informational warning
23146// message.
23147type MachineTypeAggregatedListWarning struct {
23148	// Code: [Output Only] A warning code, if applicable. For example,
23149	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
23150	// the response.
23151	//
23152	// Possible values:
23153	//   "CLEANUP_FAILED"
23154	//   "DEPRECATED_RESOURCE_USED"
23155	//   "DEPRECATED_TYPE_USED"
23156	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
23157	//   "EXPERIMENTAL_TYPE_USED"
23158	//   "EXTERNAL_API_WARNING"
23159	//   "FIELD_VALUE_OVERRIDEN"
23160	//   "INJECTED_KERNELS_DEPRECATED"
23161	//   "LARGE_DEPLOYMENT_WARNING"
23162	//   "MISSING_TYPE_DEPENDENCY"
23163	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
23164	//   "NEXT_HOP_CANNOT_IP_FORWARD"
23165	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
23166	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
23167	//   "NEXT_HOP_NOT_RUNNING"
23168	//   "NOT_CRITICAL_ERROR"
23169	//   "NO_RESULTS_ON_PAGE"
23170	//   "PARTIAL_SUCCESS"
23171	//   "REQUIRED_TOS_AGREEMENT"
23172	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
23173	//   "RESOURCE_NOT_DELETED"
23174	//   "SCHEMA_VALIDATION_IGNORED"
23175	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
23176	//   "UNDECLARED_PROPERTIES"
23177	//   "UNREACHABLE"
23178	Code string `json:"code,omitempty"`
23179
23180	// Data: [Output Only] Metadata about this warning in key: value format.
23181	// For example:
23182	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
23183	Data []*MachineTypeAggregatedListWarningData `json:"data,omitempty"`
23184
23185	// Message: [Output Only] A human-readable description of the warning
23186	// code.
23187	Message string `json:"message,omitempty"`
23188
23189	// ForceSendFields is a list of field names (e.g. "Code") to
23190	// unconditionally include in API requests. By default, fields with
23191	// empty values are omitted from API requests. However, any non-pointer,
23192	// non-interface field appearing in ForceSendFields will be sent to the
23193	// server regardless of whether the field is empty or not. This may be
23194	// used to include empty fields in Patch requests.
23195	ForceSendFields []string `json:"-"`
23196
23197	// NullFields is a list of field names (e.g. "Code") to include in API
23198	// requests with the JSON null value. By default, fields with empty
23199	// values are omitted from API requests. However, any field with an
23200	// empty value appearing in NullFields will be sent to the server as
23201	// null. It is an error if a field in this list has a non-empty value.
23202	// This may be used to include null fields in Patch requests.
23203	NullFields []string `json:"-"`
23204}
23205
23206func (s *MachineTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
23207	type NoMethod MachineTypeAggregatedListWarning
23208	raw := NoMethod(*s)
23209	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23210}
23211
23212type MachineTypeAggregatedListWarningData struct {
23213	// Key: [Output Only] A key that provides more detail on the warning
23214	// being returned. For example, for warnings where there are no results
23215	// in a list request for a particular zone, this key might be scope and
23216	// the key value might be the zone name. Other examples might be a key
23217	// indicating a deprecated resource and a suggested replacement, or a
23218	// warning about invalid network settings (for example, if an instance
23219	// attempts to perform IP forwarding but is not enabled for IP
23220	// forwarding).
23221	Key string `json:"key,omitempty"`
23222
23223	// Value: [Output Only] A warning data value corresponding to the key.
23224	Value string `json:"value,omitempty"`
23225
23226	// ForceSendFields is a list of field names (e.g. "Key") to
23227	// unconditionally include in API requests. By default, fields with
23228	// empty values are omitted from API requests. However, any non-pointer,
23229	// non-interface field appearing in ForceSendFields will be sent to the
23230	// server regardless of whether the field is empty or not. This may be
23231	// used to include empty fields in Patch requests.
23232	ForceSendFields []string `json:"-"`
23233
23234	// NullFields is a list of field names (e.g. "Key") to include in API
23235	// requests with the JSON null value. By default, fields with empty
23236	// values are omitted from API requests. However, any field with an
23237	// empty value appearing in NullFields will be sent to the server as
23238	// null. It is an error if a field in this list has a non-empty value.
23239	// This may be used to include null fields in Patch requests.
23240	NullFields []string `json:"-"`
23241}
23242
23243func (s *MachineTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
23244	type NoMethod MachineTypeAggregatedListWarningData
23245	raw := NoMethod(*s)
23246	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23247}
23248
23249// MachineTypeList: Contains a list of machine types.
23250type MachineTypeList struct {
23251	// Id: [Output Only] Unique identifier for the resource; defined by the
23252	// server.
23253	Id string `json:"id,omitempty"`
23254
23255	// Items: A list of MachineType resources.
23256	Items []*MachineType `json:"items,omitempty"`
23257
23258	// Kind: [Output Only] Type of resource. Always compute#machineTypeList
23259	// for lists of machine types.
23260	Kind string `json:"kind,omitempty"`
23261
23262	// NextPageToken: [Output Only] This token allows you to get the next
23263	// page of results for list requests. If the number of results is larger
23264	// than maxResults, use the nextPageToken as a value for the query
23265	// parameter pageToken in the next list request. Subsequent list
23266	// requests will have their own nextPageToken to continue paging through
23267	// the results.
23268	NextPageToken string `json:"nextPageToken,omitempty"`
23269
23270	// SelfLink: [Output Only] Server-defined URL for this resource.
23271	SelfLink string `json:"selfLink,omitempty"`
23272
23273	// Warning: [Output Only] Informational warning message.
23274	Warning *MachineTypeListWarning `json:"warning,omitempty"`
23275
23276	// ServerResponse contains the HTTP response code and headers from the
23277	// server.
23278	googleapi.ServerResponse `json:"-"`
23279
23280	// ForceSendFields is a list of field names (e.g. "Id") to
23281	// unconditionally include in API requests. By default, fields with
23282	// empty values are omitted from API requests. However, any non-pointer,
23283	// non-interface field appearing in ForceSendFields will be sent to the
23284	// server regardless of whether the field is empty or not. This may be
23285	// used to include empty fields in Patch requests.
23286	ForceSendFields []string `json:"-"`
23287
23288	// NullFields is a list of field names (e.g. "Id") to include in API
23289	// requests with the JSON null value. By default, fields with empty
23290	// values are omitted from API requests. However, any field with an
23291	// empty value appearing in NullFields will be sent to the server as
23292	// null. It is an error if a field in this list has a non-empty value.
23293	// This may be used to include null fields in Patch requests.
23294	NullFields []string `json:"-"`
23295}
23296
23297func (s *MachineTypeList) MarshalJSON() ([]byte, error) {
23298	type NoMethod MachineTypeList
23299	raw := NoMethod(*s)
23300	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23301}
23302
23303// MachineTypeListWarning: [Output Only] Informational warning message.
23304type MachineTypeListWarning struct {
23305	// Code: [Output Only] A warning code, if applicable. For example,
23306	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
23307	// the response.
23308	//
23309	// Possible values:
23310	//   "CLEANUP_FAILED"
23311	//   "DEPRECATED_RESOURCE_USED"
23312	//   "DEPRECATED_TYPE_USED"
23313	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
23314	//   "EXPERIMENTAL_TYPE_USED"
23315	//   "EXTERNAL_API_WARNING"
23316	//   "FIELD_VALUE_OVERRIDEN"
23317	//   "INJECTED_KERNELS_DEPRECATED"
23318	//   "LARGE_DEPLOYMENT_WARNING"
23319	//   "MISSING_TYPE_DEPENDENCY"
23320	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
23321	//   "NEXT_HOP_CANNOT_IP_FORWARD"
23322	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
23323	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
23324	//   "NEXT_HOP_NOT_RUNNING"
23325	//   "NOT_CRITICAL_ERROR"
23326	//   "NO_RESULTS_ON_PAGE"
23327	//   "PARTIAL_SUCCESS"
23328	//   "REQUIRED_TOS_AGREEMENT"
23329	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
23330	//   "RESOURCE_NOT_DELETED"
23331	//   "SCHEMA_VALIDATION_IGNORED"
23332	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
23333	//   "UNDECLARED_PROPERTIES"
23334	//   "UNREACHABLE"
23335	Code string `json:"code,omitempty"`
23336
23337	// Data: [Output Only] Metadata about this warning in key: value format.
23338	// For example:
23339	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
23340	Data []*MachineTypeListWarningData `json:"data,omitempty"`
23341
23342	// Message: [Output Only] A human-readable description of the warning
23343	// code.
23344	Message string `json:"message,omitempty"`
23345
23346	// ForceSendFields is a list of field names (e.g. "Code") to
23347	// unconditionally include in API requests. By default, fields with
23348	// empty values are omitted from API requests. However, any non-pointer,
23349	// non-interface field appearing in ForceSendFields will be sent to the
23350	// server regardless of whether the field is empty or not. This may be
23351	// used to include empty fields in Patch requests.
23352	ForceSendFields []string `json:"-"`
23353
23354	// NullFields is a list of field names (e.g. "Code") to include in API
23355	// requests with the JSON null value. By default, fields with empty
23356	// values are omitted from API requests. However, any field with an
23357	// empty value appearing in NullFields will be sent to the server as
23358	// null. It is an error if a field in this list has a non-empty value.
23359	// This may be used to include null fields in Patch requests.
23360	NullFields []string `json:"-"`
23361}
23362
23363func (s *MachineTypeListWarning) MarshalJSON() ([]byte, error) {
23364	type NoMethod MachineTypeListWarning
23365	raw := NoMethod(*s)
23366	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23367}
23368
23369type MachineTypeListWarningData struct {
23370	// Key: [Output Only] A key that provides more detail on the warning
23371	// being returned. For example, for warnings where there are no results
23372	// in a list request for a particular zone, this key might be scope and
23373	// the key value might be the zone name. Other examples might be a key
23374	// indicating a deprecated resource and a suggested replacement, or a
23375	// warning about invalid network settings (for example, if an instance
23376	// attempts to perform IP forwarding but is not enabled for IP
23377	// forwarding).
23378	Key string `json:"key,omitempty"`
23379
23380	// Value: [Output Only] A warning data value corresponding to the key.
23381	Value string `json:"value,omitempty"`
23382
23383	// ForceSendFields is a list of field names (e.g. "Key") to
23384	// unconditionally include in API requests. By default, fields with
23385	// empty values are omitted from API requests. However, any non-pointer,
23386	// non-interface field appearing in ForceSendFields will be sent to the
23387	// server regardless of whether the field is empty or not. This may be
23388	// used to include empty fields in Patch requests.
23389	ForceSendFields []string `json:"-"`
23390
23391	// NullFields is a list of field names (e.g. "Key") to include in API
23392	// requests with the JSON null value. By default, fields with empty
23393	// values are omitted from API requests. However, any field with an
23394	// empty value appearing in NullFields will be sent to the server as
23395	// null. It is an error if a field in this list has a non-empty value.
23396	// This may be used to include null fields in Patch requests.
23397	NullFields []string `json:"-"`
23398}
23399
23400func (s *MachineTypeListWarningData) MarshalJSON() ([]byte, error) {
23401	type NoMethod MachineTypeListWarningData
23402	raw := NoMethod(*s)
23403	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23404}
23405
23406type MachineTypesScopedList struct {
23407	// MachineTypes: [Output Only] A list of machine types contained in this
23408	// scope.
23409	MachineTypes []*MachineType `json:"machineTypes,omitempty"`
23410
23411	// Warning: [Output Only] An informational warning that appears when the
23412	// machine types list is empty.
23413	Warning *MachineTypesScopedListWarning `json:"warning,omitempty"`
23414
23415	// ForceSendFields is a list of field names (e.g. "MachineTypes") to
23416	// unconditionally include in API requests. By default, fields with
23417	// empty values are omitted from API requests. However, any non-pointer,
23418	// non-interface field appearing in ForceSendFields will be sent to the
23419	// server regardless of whether the field is empty or not. This may be
23420	// used to include empty fields in Patch requests.
23421	ForceSendFields []string `json:"-"`
23422
23423	// NullFields is a list of field names (e.g. "MachineTypes") to include
23424	// in API requests with the JSON null value. By default, fields with
23425	// empty values are omitted from API requests. However, any field with
23426	// an empty value appearing in NullFields will be sent to the server as
23427	// null. It is an error if a field in this list has a non-empty value.
23428	// This may be used to include null fields in Patch requests.
23429	NullFields []string `json:"-"`
23430}
23431
23432func (s *MachineTypesScopedList) MarshalJSON() ([]byte, error) {
23433	type NoMethod MachineTypesScopedList
23434	raw := NoMethod(*s)
23435	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23436}
23437
23438// MachineTypesScopedListWarning: [Output Only] An informational warning
23439// that appears when the machine types list is empty.
23440type MachineTypesScopedListWarning struct {
23441	// Code: [Output Only] A warning code, if applicable. For example,
23442	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
23443	// the response.
23444	//
23445	// Possible values:
23446	//   "CLEANUP_FAILED"
23447	//   "DEPRECATED_RESOURCE_USED"
23448	//   "DEPRECATED_TYPE_USED"
23449	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
23450	//   "EXPERIMENTAL_TYPE_USED"
23451	//   "EXTERNAL_API_WARNING"
23452	//   "FIELD_VALUE_OVERRIDEN"
23453	//   "INJECTED_KERNELS_DEPRECATED"
23454	//   "LARGE_DEPLOYMENT_WARNING"
23455	//   "MISSING_TYPE_DEPENDENCY"
23456	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
23457	//   "NEXT_HOP_CANNOT_IP_FORWARD"
23458	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
23459	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
23460	//   "NEXT_HOP_NOT_RUNNING"
23461	//   "NOT_CRITICAL_ERROR"
23462	//   "NO_RESULTS_ON_PAGE"
23463	//   "PARTIAL_SUCCESS"
23464	//   "REQUIRED_TOS_AGREEMENT"
23465	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
23466	//   "RESOURCE_NOT_DELETED"
23467	//   "SCHEMA_VALIDATION_IGNORED"
23468	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
23469	//   "UNDECLARED_PROPERTIES"
23470	//   "UNREACHABLE"
23471	Code string `json:"code,omitempty"`
23472
23473	// Data: [Output Only] Metadata about this warning in key: value format.
23474	// For example:
23475	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
23476	Data []*MachineTypesScopedListWarningData `json:"data,omitempty"`
23477
23478	// Message: [Output Only] A human-readable description of the warning
23479	// code.
23480	Message string `json:"message,omitempty"`
23481
23482	// ForceSendFields is a list of field names (e.g. "Code") to
23483	// unconditionally include in API requests. By default, fields with
23484	// empty values are omitted from API requests. However, any non-pointer,
23485	// non-interface field appearing in ForceSendFields will be sent to the
23486	// server regardless of whether the field is empty or not. This may be
23487	// used to include empty fields in Patch requests.
23488	ForceSendFields []string `json:"-"`
23489
23490	// NullFields is a list of field names (e.g. "Code") to include in API
23491	// requests with the JSON null value. By default, fields with empty
23492	// values are omitted from API requests. However, any field with an
23493	// empty value appearing in NullFields will be sent to the server as
23494	// null. It is an error if a field in this list has a non-empty value.
23495	// This may be used to include null fields in Patch requests.
23496	NullFields []string `json:"-"`
23497}
23498
23499func (s *MachineTypesScopedListWarning) MarshalJSON() ([]byte, error) {
23500	type NoMethod MachineTypesScopedListWarning
23501	raw := NoMethod(*s)
23502	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23503}
23504
23505type MachineTypesScopedListWarningData struct {
23506	// Key: [Output Only] A key that provides more detail on the warning
23507	// being returned. For example, for warnings where there are no results
23508	// in a list request for a particular zone, this key might be scope and
23509	// the key value might be the zone name. Other examples might be a key
23510	// indicating a deprecated resource and a suggested replacement, or a
23511	// warning about invalid network settings (for example, if an instance
23512	// attempts to perform IP forwarding but is not enabled for IP
23513	// forwarding).
23514	Key string `json:"key,omitempty"`
23515
23516	// Value: [Output Only] A warning data value corresponding to the key.
23517	Value string `json:"value,omitempty"`
23518
23519	// ForceSendFields is a list of field names (e.g. "Key") to
23520	// unconditionally include in API requests. By default, fields with
23521	// empty values are omitted from API requests. However, any non-pointer,
23522	// non-interface field appearing in ForceSendFields will be sent to the
23523	// server regardless of whether the field is empty or not. This may be
23524	// used to include empty fields in Patch requests.
23525	ForceSendFields []string `json:"-"`
23526
23527	// NullFields is a list of field names (e.g. "Key") to include in API
23528	// requests with the JSON null value. By default, fields with empty
23529	// values are omitted from API requests. However, any field with an
23530	// empty value appearing in NullFields will be sent to the server as
23531	// null. It is an error if a field in this list has a non-empty value.
23532	// This may be used to include null fields in Patch requests.
23533	NullFields []string `json:"-"`
23534}
23535
23536func (s *MachineTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
23537	type NoMethod MachineTypesScopedListWarningData
23538	raw := NoMethod(*s)
23539	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23540}
23541
23542// ManagedInstance: A Managed Instance resource.
23543type ManagedInstance struct {
23544	// CurrentAction: [Output Only] The current action that the managed
23545	// instance group has scheduled for the instance. Possible values:
23546	// - NONE The instance is running, and the managed instance group does
23547	// not have any scheduled actions for this instance.
23548	// - CREATING The managed instance group is creating this instance. If
23549	// the group fails to create this instance, it will try again until it
23550	// is successful.
23551	// - CREATING_WITHOUT_RETRIES The managed instance group is attempting
23552	// to create this instance only once. If the group fails to create this
23553	// instance, it does not try again and the group's targetSize value is
23554	// decreased instead.
23555	// - RECREATING The managed instance group is recreating this instance.
23556	//
23557	// - DELETING The managed instance group is permanently deleting this
23558	// instance.
23559	// - ABANDONING The managed instance group is abandoning this instance.
23560	// The instance will be removed from the instance group and from any
23561	// target pools that are associated with this group.
23562	// - RESTARTING The managed instance group is restarting the instance.
23563	//
23564	// - REFRESHING The managed instance group is applying configuration
23565	// changes to the instance without stopping it. For example, the group
23566	// can update the target pool list for an instance without stopping that
23567	// instance.
23568	// - VERIFYING The managed instance group has created the instance and
23569	// it is in the process of being verified.
23570	//
23571	// Possible values:
23572	//   "ABANDONING"
23573	//   "CREATING"
23574	//   "CREATING_WITHOUT_RETRIES"
23575	//   "DELETING"
23576	//   "NONE"
23577	//   "RECREATING"
23578	//   "REFRESHING"
23579	//   "RESTARTING"
23580	//   "VERIFYING"
23581	CurrentAction string `json:"currentAction,omitempty"`
23582
23583	// Id: [Output only] The unique identifier for this resource. This field
23584	// is empty when instance does not exist.
23585	Id uint64 `json:"id,omitempty,string"`
23586
23587	// Instance: [Output Only] The URL of the instance. The URL can exist
23588	// even if the instance has not yet been created.
23589	Instance string `json:"instance,omitempty"`
23590
23591	// InstanceHealth: [Output Only] Health state of the instance per
23592	// health-check.
23593	InstanceHealth []*ManagedInstanceInstanceHealth `json:"instanceHealth,omitempty"`
23594
23595	// InstanceStatus: [Output Only] The status of the instance. This field
23596	// is empty when the instance does not exist.
23597	//
23598	// Possible values:
23599	//   "DEPROVISIONING"
23600	//   "PROVISIONING"
23601	//   "REPAIRING"
23602	//   "RUNNING"
23603	//   "STAGING"
23604	//   "STOPPED"
23605	//   "STOPPING"
23606	//   "SUSPENDED"
23607	//   "SUSPENDING"
23608	//   "TERMINATED"
23609	InstanceStatus string `json:"instanceStatus,omitempty"`
23610
23611	// LastAttempt: [Output Only] Information about the last attempt to
23612	// create or delete the instance.
23613	LastAttempt *ManagedInstanceLastAttempt `json:"lastAttempt,omitempty"`
23614
23615	// PreservedStateFromConfig: [Output Only] Preserved state applied from
23616	// per-instance config for this instance.
23617	PreservedStateFromConfig *PreservedState `json:"preservedStateFromConfig,omitempty"`
23618
23619	// PreservedStateFromPolicy: [Output Only] Preserved state generated
23620	// based on stateful policy for this instance.
23621	PreservedStateFromPolicy *PreservedState `json:"preservedStateFromPolicy,omitempty"`
23622
23623	// Version: [Output Only] Intended version of this instance.
23624	Version *ManagedInstanceVersion `json:"version,omitempty"`
23625
23626	// ForceSendFields is a list of field names (e.g. "CurrentAction") to
23627	// unconditionally include in API requests. By default, fields with
23628	// empty values are omitted from API requests. However, any non-pointer,
23629	// non-interface field appearing in ForceSendFields will be sent to the
23630	// server regardless of whether the field is empty or not. This may be
23631	// used to include empty fields in Patch requests.
23632	ForceSendFields []string `json:"-"`
23633
23634	// NullFields is a list of field names (e.g. "CurrentAction") to include
23635	// in API requests with the JSON null value. By default, fields with
23636	// empty values are omitted from API requests. However, any field with
23637	// an empty value appearing in NullFields will be sent to the server as
23638	// null. It is an error if a field in this list has a non-empty value.
23639	// This may be used to include null fields in Patch requests.
23640	NullFields []string `json:"-"`
23641}
23642
23643func (s *ManagedInstance) MarshalJSON() ([]byte, error) {
23644	type NoMethod ManagedInstance
23645	raw := NoMethod(*s)
23646	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23647}
23648
23649type ManagedInstanceInstanceHealth struct {
23650	// DetailedHealthState: [Output Only] The current detailed instance
23651	// health state.
23652	//
23653	// Possible values:
23654	//   "DRAINING"
23655	//   "HEALTHY"
23656	//   "TIMEOUT"
23657	//   "UNHEALTHY"
23658	//   "UNKNOWN"
23659	DetailedHealthState string `json:"detailedHealthState,omitempty"`
23660
23661	// HealthCheck: [Output Only] The URL for the health check that verifies
23662	// whether the instance is healthy.
23663	HealthCheck string `json:"healthCheck,omitempty"`
23664
23665	// ForceSendFields is a list of field names (e.g. "DetailedHealthState")
23666	// to unconditionally include in API requests. By default, fields with
23667	// empty values are omitted from API requests. However, any non-pointer,
23668	// non-interface field appearing in ForceSendFields will be sent to the
23669	// server regardless of whether the field is empty or not. This may be
23670	// used to include empty fields in Patch requests.
23671	ForceSendFields []string `json:"-"`
23672
23673	// NullFields is a list of field names (e.g. "DetailedHealthState") to
23674	// include in API requests with the JSON null value. By default, fields
23675	// with empty values are omitted from API requests. However, any field
23676	// with an empty value appearing in NullFields will be sent to the
23677	// server as null. It is an error if a field in this list has a
23678	// non-empty value. This may be used to include null fields in Patch
23679	// requests.
23680	NullFields []string `json:"-"`
23681}
23682
23683func (s *ManagedInstanceInstanceHealth) MarshalJSON() ([]byte, error) {
23684	type NoMethod ManagedInstanceInstanceHealth
23685	raw := NoMethod(*s)
23686	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23687}
23688
23689type ManagedInstanceLastAttempt struct {
23690	// Errors: [Output Only] Encountered errors during the last attempt to
23691	// create or delete the instance.
23692	Errors *ManagedInstanceLastAttemptErrors `json:"errors,omitempty"`
23693
23694	// ForceSendFields is a list of field names (e.g. "Errors") to
23695	// unconditionally include in API requests. By default, fields with
23696	// empty values are omitted from API requests. However, any non-pointer,
23697	// non-interface field appearing in ForceSendFields will be sent to the
23698	// server regardless of whether the field is empty or not. This may be
23699	// used to include empty fields in Patch requests.
23700	ForceSendFields []string `json:"-"`
23701
23702	// NullFields is a list of field names (e.g. "Errors") to include in API
23703	// requests with the JSON null value. By default, fields with empty
23704	// values are omitted from API requests. However, any field with an
23705	// empty value appearing in NullFields will be sent to the server as
23706	// null. It is an error if a field in this list has a non-empty value.
23707	// This may be used to include null fields in Patch requests.
23708	NullFields []string `json:"-"`
23709}
23710
23711func (s *ManagedInstanceLastAttempt) MarshalJSON() ([]byte, error) {
23712	type NoMethod ManagedInstanceLastAttempt
23713	raw := NoMethod(*s)
23714	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23715}
23716
23717// ManagedInstanceLastAttemptErrors: [Output Only] Encountered errors
23718// during the last attempt to create or delete the instance.
23719type ManagedInstanceLastAttemptErrors struct {
23720	// Errors: [Output Only] The array of errors encountered while
23721	// processing this operation.
23722	Errors []*ManagedInstanceLastAttemptErrorsErrors `json:"errors,omitempty"`
23723
23724	// ForceSendFields is a list of field names (e.g. "Errors") to
23725	// unconditionally include in API requests. By default, fields with
23726	// empty values are omitted from API requests. However, any non-pointer,
23727	// non-interface field appearing in ForceSendFields will be sent to the
23728	// server regardless of whether the field is empty or not. This may be
23729	// used to include empty fields in Patch requests.
23730	ForceSendFields []string `json:"-"`
23731
23732	// NullFields is a list of field names (e.g. "Errors") to include in API
23733	// requests with the JSON null value. By default, fields with empty
23734	// values are omitted from API requests. However, any field with an
23735	// empty value appearing in NullFields will be sent to the server as
23736	// null. It is an error if a field in this list has a non-empty value.
23737	// This may be used to include null fields in Patch requests.
23738	NullFields []string `json:"-"`
23739}
23740
23741func (s *ManagedInstanceLastAttemptErrors) MarshalJSON() ([]byte, error) {
23742	type NoMethod ManagedInstanceLastAttemptErrors
23743	raw := NoMethod(*s)
23744	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23745}
23746
23747type ManagedInstanceLastAttemptErrorsErrors struct {
23748	// Code: [Output Only] The error type identifier for this error.
23749	Code string `json:"code,omitempty"`
23750
23751	// Location: [Output Only] Indicates the field in the request that
23752	// caused the error. This property is optional.
23753	Location string `json:"location,omitempty"`
23754
23755	// Message: [Output Only] An optional, human-readable error message.
23756	Message string `json:"message,omitempty"`
23757
23758	// ForceSendFields is a list of field names (e.g. "Code") to
23759	// unconditionally include in API requests. By default, fields with
23760	// empty values are omitted from API requests. However, any non-pointer,
23761	// non-interface field appearing in ForceSendFields will be sent to the
23762	// server regardless of whether the field is empty or not. This may be
23763	// used to include empty fields in Patch requests.
23764	ForceSendFields []string `json:"-"`
23765
23766	// NullFields is a list of field names (e.g. "Code") to include in API
23767	// requests with the JSON null value. By default, fields with empty
23768	// values are omitted from API requests. However, any field with an
23769	// empty value appearing in NullFields will be sent to the server as
23770	// null. It is an error if a field in this list has a non-empty value.
23771	// This may be used to include null fields in Patch requests.
23772	NullFields []string `json:"-"`
23773}
23774
23775func (s *ManagedInstanceLastAttemptErrorsErrors) MarshalJSON() ([]byte, error) {
23776	type NoMethod ManagedInstanceLastAttemptErrorsErrors
23777	raw := NoMethod(*s)
23778	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23779}
23780
23781type ManagedInstanceVersion struct {
23782	// InstanceTemplate: [Output Only] The intended template of the
23783	// instance. This field is empty when current_action is one of {
23784	// DELETING, ABANDONING }.
23785	InstanceTemplate string `json:"instanceTemplate,omitempty"`
23786
23787	// Name: [Output Only] Name of the version.
23788	Name string `json:"name,omitempty"`
23789
23790	// ForceSendFields is a list of field names (e.g. "InstanceTemplate") to
23791	// unconditionally include in API requests. By default, fields with
23792	// empty values are omitted from API requests. However, any non-pointer,
23793	// non-interface field appearing in ForceSendFields will be sent to the
23794	// server regardless of whether the field is empty or not. This may be
23795	// used to include empty fields in Patch requests.
23796	ForceSendFields []string `json:"-"`
23797
23798	// NullFields is a list of field names (e.g. "InstanceTemplate") to
23799	// include in API requests with the JSON null value. By default, fields
23800	// with empty values are omitted from API requests. However, any field
23801	// with an empty value appearing in NullFields will be sent to the
23802	// server as null. It is an error if a field in this list has a
23803	// non-empty value. This may be used to include null fields in Patch
23804	// requests.
23805	NullFields []string `json:"-"`
23806}
23807
23808func (s *ManagedInstanceVersion) MarshalJSON() ([]byte, error) {
23809	type NoMethod ManagedInstanceVersion
23810	raw := NoMethod(*s)
23811	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23812}
23813
23814// Metadata: A metadata key/value entry.
23815type Metadata struct {
23816	// Fingerprint: Specifies a fingerprint for this request, which is
23817	// essentially a hash of the metadata's contents and used for optimistic
23818	// locking. The fingerprint is initially generated by Compute Engine and
23819	// changes after every request to modify or update metadata. You must
23820	// always provide an up-to-date fingerprint hash in order to update or
23821	// change metadata, otherwise the request will fail with error 412
23822	// conditionNotMet.
23823	//
23824	// To see the latest fingerprint, make a get() request to retrieve the
23825	// resource.
23826	Fingerprint string `json:"fingerprint,omitempty"`
23827
23828	// Items: Array of key/value pairs. The total size of all keys and
23829	// values must be less than 512 KB.
23830	Items []*MetadataItems `json:"items,omitempty"`
23831
23832	// Kind: [Output Only] Type of the resource. Always compute#metadata for
23833	// metadata.
23834	Kind string `json:"kind,omitempty"`
23835
23836	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
23837	// unconditionally include in API requests. By default, fields with
23838	// empty values are omitted from API requests. However, any non-pointer,
23839	// non-interface field appearing in ForceSendFields will be sent to the
23840	// server regardless of whether the field is empty or not. This may be
23841	// used to include empty fields in Patch requests.
23842	ForceSendFields []string `json:"-"`
23843
23844	// NullFields is a list of field names (e.g. "Fingerprint") to include
23845	// in API requests with the JSON null value. By default, fields with
23846	// empty values are omitted from API requests. However, any field with
23847	// an empty value appearing in NullFields will be sent to the server as
23848	// null. It is an error if a field in this list has a non-empty value.
23849	// This may be used to include null fields in Patch requests.
23850	NullFields []string `json:"-"`
23851}
23852
23853func (s *Metadata) MarshalJSON() ([]byte, error) {
23854	type NoMethod Metadata
23855	raw := NoMethod(*s)
23856	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23857}
23858
23859type MetadataItems struct {
23860	// Key: Key for the metadata entry. Keys must conform to the following
23861	// regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is
23862	// reflected as part of a URL in the metadata server. Additionally, to
23863	// avoid ambiguity, keys must not conflict with any other metadata keys
23864	// for the project.
23865	Key string `json:"key,omitempty"`
23866
23867	// Value: Value for the metadata entry. These are free-form strings, and
23868	// only have meaning as interpreted by the image running in the
23869	// instance. The only restriction placed on values is that their size
23870	// must be less than or equal to 262144 bytes (256 KiB).
23871	Value *string `json:"value,omitempty"`
23872
23873	// ForceSendFields is a list of field names (e.g. "Key") to
23874	// unconditionally include in API requests. By default, fields with
23875	// empty values are omitted from API requests. However, any non-pointer,
23876	// non-interface field appearing in ForceSendFields will be sent to the
23877	// server regardless of whether the field is empty or not. This may be
23878	// used to include empty fields in Patch requests.
23879	ForceSendFields []string `json:"-"`
23880
23881	// NullFields is a list of field names (e.g. "Key") to include in API
23882	// requests with the JSON null value. By default, fields with empty
23883	// values are omitted from API requests. However, any field with an
23884	// empty value appearing in NullFields will be sent to the server as
23885	// null. It is an error if a field in this list has a non-empty value.
23886	// This may be used to include null fields in Patch requests.
23887	NullFields []string `json:"-"`
23888}
23889
23890func (s *MetadataItems) MarshalJSON() ([]byte, error) {
23891	type NoMethod MetadataItems
23892	raw := NoMethod(*s)
23893	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23894}
23895
23896// MetadataFilter: Opaque filter criteria used by loadbalancers to
23897// restrict routing configuration to a limited set of loadbalancing
23898// proxies. Proxies and sidecars involved in loadbalancing would
23899// typically present metadata to the loadbalancers which need to match
23900// criteria specified here. If a match takes place, the relevant
23901// configuration is made available to those proxies.
23902// For each metadataFilter in this list, if its filterMatchCriteria is
23903// set to MATCH_ANY, at least one of the filterLabels must match the
23904// corresponding label provided in the metadata. If its
23905// filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels
23906// must match with corresponding labels provided in the metadata.
23907// An example for using metadataFilters would be: if loadbalancing
23908// involves  Envoys, they will only receive routing configuration when
23909// values in metadataFilters match values supplied in <a
23910// href="https://www.envoyproxy.io/docs/envoy/latest/api-v2/api/v2/core/b
23911// ase.proto#envoy-api-msg-core-node" Node metadata of their XDS
23912// requests to loadbalancers.
23913type MetadataFilter struct {
23914	// FilterLabels: The list of label value pairs that must match labels in
23915	// the provided metadata based on filterMatchCriteria
23916	// This list must not be empty and can have at the most 64 entries.
23917	FilterLabels []*MetadataFilterLabelMatch `json:"filterLabels,omitempty"`
23918
23919	// FilterMatchCriteria: Specifies how individual filterLabel matches
23920	// within the list of filterLabels contribute towards the overall
23921	// metadataFilter match.
23922	// Supported values are:
23923	// - MATCH_ANY: At least one of the filterLabels must have a matching
23924	// label in the provided metadata.
23925	// - MATCH_ALL: All filterLabels must have matching labels in the
23926	// provided metadata.
23927	//
23928	// Possible values:
23929	//   "MATCH_ALL"
23930	//   "MATCH_ANY"
23931	//   "NOT_SET"
23932	FilterMatchCriteria string `json:"filterMatchCriteria,omitempty"`
23933
23934	// ForceSendFields is a list of field names (e.g. "FilterLabels") to
23935	// unconditionally include in API requests. By default, fields with
23936	// empty values are omitted from API requests. However, any non-pointer,
23937	// non-interface field appearing in ForceSendFields will be sent to the
23938	// server regardless of whether the field is empty or not. This may be
23939	// used to include empty fields in Patch requests.
23940	ForceSendFields []string `json:"-"`
23941
23942	// NullFields is a list of field names (e.g. "FilterLabels") to include
23943	// in API requests with the JSON null value. By default, fields with
23944	// empty values are omitted from API requests. However, any field with
23945	// an empty value appearing in NullFields will be sent to the server as
23946	// null. It is an error if a field in this list has a non-empty value.
23947	// This may be used to include null fields in Patch requests.
23948	NullFields []string `json:"-"`
23949}
23950
23951func (s *MetadataFilter) MarshalJSON() ([]byte, error) {
23952	type NoMethod MetadataFilter
23953	raw := NoMethod(*s)
23954	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23955}
23956
23957// MetadataFilterLabelMatch: MetadataFilter label name value pairs that
23958// are expected to match corresponding labels presented as metadata to
23959// the loadbalancer.
23960type MetadataFilterLabelMatch struct {
23961	// Name: Name of metadata label.
23962	// The name can have a maximum length of 1024 characters and must be at
23963	// least 1 character long.
23964	Name string `json:"name,omitempty"`
23965
23966	// Value: The value of the label must match the specified value.
23967	// value can have a maximum length of 1024 characters.
23968	Value string `json:"value,omitempty"`
23969
23970	// ForceSendFields is a list of field names (e.g. "Name") to
23971	// unconditionally include in API requests. By default, fields with
23972	// empty values are omitted from API requests. However, any non-pointer,
23973	// non-interface field appearing in ForceSendFields will be sent to the
23974	// server regardless of whether the field is empty or not. This may be
23975	// used to include empty fields in Patch requests.
23976	ForceSendFields []string `json:"-"`
23977
23978	// NullFields is a list of field names (e.g. "Name") to include in API
23979	// requests with the JSON null value. By default, fields with empty
23980	// values are omitted from API requests. However, any field with an
23981	// empty value appearing in NullFields will be sent to the server as
23982	// null. It is an error if a field in this list has a non-empty value.
23983	// This may be used to include null fields in Patch requests.
23984	NullFields []string `json:"-"`
23985}
23986
23987func (s *MetadataFilterLabelMatch) MarshalJSON() ([]byte, error) {
23988	type NoMethod MetadataFilterLabelMatch
23989	raw := NoMethod(*s)
23990	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23991}
23992
23993// NamedPort: The named port. For example: .
23994type NamedPort struct {
23995	// Name: The name for this named port. The name must be 1-63 characters
23996	// long, and comply with RFC1035.
23997	Name string `json:"name,omitempty"`
23998
23999	// Port: The port number, which can be a value between 1 and 65535.
24000	Port int64 `json:"port,omitempty"`
24001
24002	// ForceSendFields is a list of field names (e.g. "Name") to
24003	// unconditionally include in API requests. By default, fields with
24004	// empty values are omitted from API requests. However, any non-pointer,
24005	// non-interface field appearing in ForceSendFields will be sent to the
24006	// server regardless of whether the field is empty or not. This may be
24007	// used to include empty fields in Patch requests.
24008	ForceSendFields []string `json:"-"`
24009
24010	// NullFields is a list of field names (e.g. "Name") to include in API
24011	// requests with the JSON null value. By default, fields with empty
24012	// values are omitted from API requests. However, any field with an
24013	// empty value appearing in NullFields will be sent to the server as
24014	// null. It is an error if a field in this list has a non-empty value.
24015	// This may be used to include null fields in Patch requests.
24016	NullFields []string `json:"-"`
24017}
24018
24019func (s *NamedPort) MarshalJSON() ([]byte, error) {
24020	type NoMethod NamedPort
24021	raw := NoMethod(*s)
24022	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24023}
24024
24025// Network: Represents a VPC Network resource.
24026//
24027// Networks connect resources to each other and to the internet. For
24028// more information, read Virtual Private Cloud (VPC) Network. (==
24029// resource_for {$api_version}.networks ==)
24030type Network struct {
24031	// IPv4Range: Deprecated in favor of subnet mode networks. The range of
24032	// internal addresses that are legal on this network. This range is a
24033	// CIDR specification, for example: 192.168.0.0/16. Provided by the
24034	// client when the network is created.
24035	IPv4Range string `json:"IPv4Range,omitempty"`
24036
24037	// AutoCreateSubnetworks: Must be set to create a VPC network. If not
24038	// set, a legacy network is created.
24039	//
24040	// When set to true, the VPC network is created in auto mode. When set
24041	// to false, the VPC network is created in custom mode.
24042	//
24043	// An auto mode VPC network starts with one subnet per region. Each
24044	// subnet has a predetermined range as described in Auto mode VPC
24045	// network IP ranges.
24046	//
24047	// For custom mode VPC networks, you can add subnets using the
24048	// subnetworks insert method.
24049	AutoCreateSubnetworks bool `json:"autoCreateSubnetworks,omitempty"`
24050
24051	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
24052	// format.
24053	CreationTimestamp string `json:"creationTimestamp,omitempty"`
24054
24055	// Description: An optional description of this resource. Provide this
24056	// field when you create the resource.
24057	Description string `json:"description,omitempty"`
24058
24059	// GatewayIPv4: [Output Only] The gateway address for default routing
24060	// out of the network, selected by GCP.
24061	GatewayIPv4 string `json:"gatewayIPv4,omitempty"`
24062
24063	// Id: [Output Only] The unique identifier for the resource. This
24064	// identifier is defined by the server.
24065	Id uint64 `json:"id,omitempty,string"`
24066
24067	// Kind: [Output Only] Type of the resource. Always compute#network for
24068	// networks.
24069	Kind string `json:"kind,omitempty"`
24070
24071	// Mtu: Maximum Transmission Unit in bytes. The minimum value for this
24072	// field is 1460 and the maximum value is 1500 bytes.
24073	Mtu int64 `json:"mtu,omitempty"`
24074
24075	// Name: Name of the resource. Provided by the client when the resource
24076	// is created. The name must be 1-63 characters long, and comply with
24077	// RFC1035. Specifically, the name must be 1-63 characters long and
24078	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first
24079	// character must be a lowercase letter, and all following characters
24080	// (except for the last character) must be a dash, lowercase letter, or
24081	// digit. The last character must be a lowercase letter or digit.
24082	Name string `json:"name,omitempty"`
24083
24084	// Peerings: [Output Only] A list of network peerings for the resource.
24085	Peerings []*NetworkPeering `json:"peerings,omitempty"`
24086
24087	// RoutingConfig: The network-level routing configuration for this
24088	// network. Used by Cloud Router to determine what type of network-wide
24089	// routing behavior to enforce.
24090	RoutingConfig *NetworkRoutingConfig `json:"routingConfig,omitempty"`
24091
24092	// SelfLink: [Output Only] Server-defined URL for the resource.
24093	SelfLink string `json:"selfLink,omitempty"`
24094
24095	// Subnetworks: [Output Only] Server-defined fully-qualified URLs for
24096	// all subnetworks in this VPC network.
24097	Subnetworks []string `json:"subnetworks,omitempty"`
24098
24099	// ServerResponse contains the HTTP response code and headers from the
24100	// server.
24101	googleapi.ServerResponse `json:"-"`
24102
24103	// ForceSendFields is a list of field names (e.g. "IPv4Range") to
24104	// unconditionally include in API requests. By default, fields with
24105	// empty values are omitted from API requests. However, any non-pointer,
24106	// non-interface field appearing in ForceSendFields will be sent to the
24107	// server regardless of whether the field is empty or not. This may be
24108	// used to include empty fields in Patch requests.
24109	ForceSendFields []string `json:"-"`
24110
24111	// NullFields is a list of field names (e.g. "IPv4Range") to include in
24112	// API requests with the JSON null value. By default, fields with empty
24113	// values are omitted from API requests. However, any field with an
24114	// empty value appearing in NullFields will be sent to the server as
24115	// null. It is an error if a field in this list has a non-empty value.
24116	// This may be used to include null fields in Patch requests.
24117	NullFields []string `json:"-"`
24118}
24119
24120func (s *Network) MarshalJSON() ([]byte, error) {
24121	type NoMethod Network
24122	raw := NoMethod(*s)
24123	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24124}
24125
24126// NetworkEndpoint: The network endpoint.
24127type NetworkEndpoint struct {
24128	// Annotations: Metadata defined as annotations on the network endpoint.
24129	Annotations map[string]string `json:"annotations,omitempty"`
24130
24131	// Fqdn: Optional fully qualified domain name of network endpoint. This
24132	// can only be specified when NetworkEndpointGroup.network_endpoint_type
24133	// is NON_GCP_FQDN_PORT.
24134	Fqdn string `json:"fqdn,omitempty"`
24135
24136	// Instance: The name for a specific VM instance that the IP address
24137	// belongs to. This is required for network endpoints of type
24138	// GCE_VM_IP_PORT. The instance must be in the same zone of network
24139	// endpoint group.
24140	//
24141	// The name must be 1-63 characters long, and comply with RFC1035.
24142	Instance string `json:"instance,omitempty"`
24143
24144	// IpAddress: Optional IPv4 address of network endpoint. The IP address
24145	// must belong to a VM in Compute Engine (either the primary IP or as
24146	// part of an aliased IP range). If the IP address is not specified,
24147	// then the primary IP address for the VM instance in the network that
24148	// the network endpoint group belongs to will be used.
24149	IpAddress string `json:"ipAddress,omitempty"`
24150
24151	// Port: Optional port number of network endpoint. If not specified, the
24152	// defaultPort for the network endpoint group will be used.
24153	Port int64 `json:"port,omitempty"`
24154
24155	// ForceSendFields is a list of field names (e.g. "Annotations") to
24156	// unconditionally include in API requests. By default, fields with
24157	// empty values are omitted from API requests. However, any non-pointer,
24158	// non-interface field appearing in ForceSendFields will be sent to the
24159	// server regardless of whether the field is empty or not. This may be
24160	// used to include empty fields in Patch requests.
24161	ForceSendFields []string `json:"-"`
24162
24163	// NullFields is a list of field names (e.g. "Annotations") to include
24164	// in API requests with the JSON null value. By default, fields with
24165	// empty values are omitted from API requests. However, any field with
24166	// an empty value appearing in NullFields will be sent to the server as
24167	// null. It is an error if a field in this list has a non-empty value.
24168	// This may be used to include null fields in Patch requests.
24169	NullFields []string `json:"-"`
24170}
24171
24172func (s *NetworkEndpoint) MarshalJSON() ([]byte, error) {
24173	type NoMethod NetworkEndpoint
24174	raw := NoMethod(*s)
24175	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24176}
24177
24178// NetworkEndpointGroup: Represents a collection of network
24179// endpoints.
24180//
24181// A network endpoint group (NEG) defines how a set of endpoints should
24182// be reached, whether they are reachable, and where they are located.
24183// For more information about using NEGs, see  Setting up external
24184// HTTP(S) Load Balancing with internet NEGs,  Setting up zonal NEGs, or
24185//  Setting up external HTTP(S) Load Balancing with serverless NEGs. (==
24186// resource_for {$api_version}.networkEndpointGroups ==) (==
24187// resource_for {$api_version}.globalNetworkEndpointGroups ==) (==
24188// resource_for {$api_version}.regionNetworkEndpointGroups ==)
24189type NetworkEndpointGroup struct {
24190	// Annotations: Metadata defined as annotations on the network endpoint
24191	// group.
24192	Annotations map[string]string `json:"annotations,omitempty"`
24193
24194	// AppEngine: Only valid when networkEndpointType is "SERVERLESS". Only
24195	// one of cloudRun, appEngine or cloudFunction may be set.
24196	AppEngine *NetworkEndpointGroupAppEngine `json:"appEngine,omitempty"`
24197
24198	// CloudFunction: Only valid when networkEndpointType is "SERVERLESS".
24199	// Only one of cloudRun, appEngine or cloudFunction may be set.
24200	CloudFunction *NetworkEndpointGroupCloudFunction `json:"cloudFunction,omitempty"`
24201
24202	// CloudRun: Only valid when networkEndpointType is "SERVERLESS". Only
24203	// one of cloudRun, appEngine or cloudFunction may be set.
24204	CloudRun *NetworkEndpointGroupCloudRun `json:"cloudRun,omitempty"`
24205
24206	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
24207	// format.
24208	CreationTimestamp string `json:"creationTimestamp,omitempty"`
24209
24210	// DefaultPort: The default port used if the port number is not
24211	// specified in the network endpoint.
24212	DefaultPort int64 `json:"defaultPort,omitempty"`
24213
24214	// Description: An optional description of this resource. Provide this
24215	// property when you create the resource.
24216	Description string `json:"description,omitempty"`
24217
24218	// Id: [Output Only] The unique identifier for the resource. This
24219	// identifier is defined by the server.
24220	Id uint64 `json:"id,omitempty,string"`
24221
24222	// Kind: [Output Only] Type of the resource. Always
24223	// compute#networkEndpointGroup for network endpoint group.
24224	Kind string `json:"kind,omitempty"`
24225
24226	// LoadBalancer: This field is only valid when the network endpoint
24227	// group is used for load balancing. [Deprecated] This field is
24228	// deprecated.
24229	LoadBalancer *NetworkEndpointGroupLbNetworkEndpointGroup `json:"loadBalancer,omitempty"`
24230
24231	// Name: Name of the resource; provided by the client when the resource
24232	// is created. The name must be 1-63 characters long, and comply with
24233	// RFC1035. Specifically, the name must be 1-63 characters long and
24234	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
24235	// the first character must be a lowercase letter, and all following
24236	// characters must be a dash, lowercase letter, or digit, except the
24237	// last character, which cannot be a dash.
24238	Name string `json:"name,omitempty"`
24239
24240	// Network: The URL of the network to which all network endpoints in the
24241	// NEG belong. Uses "default" project network if unspecified.
24242	Network string `json:"network,omitempty"`
24243
24244	// NetworkEndpointType: Type of network endpoints in this network
24245	// endpoint group. Can be one of GCE_VM_IP_PORT,
24246	// NON_GCP_PRIVATE_IP_PORT, INTERNET_FQDN_PORT, INTERNET_IP_PORT, or
24247	// SERVERLESS.
24248	//
24249	// Possible values:
24250	//   "GCE_VM_IP"
24251	//   "GCE_VM_IP_PORT"
24252	//   "INTERNET_FQDN_PORT"
24253	//   "INTERNET_IP_PORT"
24254	//   "NON_GCP_PRIVATE_IP_PORT"
24255	//   "SERVERLESS"
24256	NetworkEndpointType string `json:"networkEndpointType,omitempty"`
24257
24258	// Region: [Output Only] The URL of the region where the network
24259	// endpoint group is located.
24260	Region string `json:"region,omitempty"`
24261
24262	// SelfLink: [Output Only] Server-defined URL for the resource.
24263	SelfLink string `json:"selfLink,omitempty"`
24264
24265	// Size: [Output only] Number of network endpoints in the network
24266	// endpoint group.
24267	Size int64 `json:"size,omitempty"`
24268
24269	// Subnetwork: Optional URL of the subnetwork to which all network
24270	// endpoints in the NEG belong.
24271	Subnetwork string `json:"subnetwork,omitempty"`
24272
24273	// Zone: [Output Only] The URL of the zone where the network endpoint
24274	// group is located.
24275	Zone string `json:"zone,omitempty"`
24276
24277	// ServerResponse contains the HTTP response code and headers from the
24278	// server.
24279	googleapi.ServerResponse `json:"-"`
24280
24281	// ForceSendFields is a list of field names (e.g. "Annotations") to
24282	// unconditionally include in API requests. By default, fields with
24283	// empty values are omitted from API requests. However, any non-pointer,
24284	// non-interface field appearing in ForceSendFields will be sent to the
24285	// server regardless of whether the field is empty or not. This may be
24286	// used to include empty fields in Patch requests.
24287	ForceSendFields []string `json:"-"`
24288
24289	// NullFields is a list of field names (e.g. "Annotations") to include
24290	// in API requests with the JSON null value. By default, fields with
24291	// empty values are omitted from API requests. However, any field with
24292	// an empty value appearing in NullFields will be sent to the server as
24293	// null. It is an error if a field in this list has a non-empty value.
24294	// This may be used to include null fields in Patch requests.
24295	NullFields []string `json:"-"`
24296}
24297
24298func (s *NetworkEndpointGroup) MarshalJSON() ([]byte, error) {
24299	type NoMethod NetworkEndpointGroup
24300	raw := NoMethod(*s)
24301	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24302}
24303
24304type NetworkEndpointGroupAggregatedList struct {
24305	// Id: [Output Only] Unique identifier for the resource; defined by the
24306	// server.
24307	Id string `json:"id,omitempty"`
24308
24309	// Items: A list of NetworkEndpointGroupsScopedList resources.
24310	Items map[string]NetworkEndpointGroupsScopedList `json:"items,omitempty"`
24311
24312	// Kind: [Output Only] The resource type, which is always
24313	// compute#networkEndpointGroupAggregatedList for aggregated lists of
24314	// network endpoint groups.
24315	Kind string `json:"kind,omitempty"`
24316
24317	// NextPageToken: [Output Only] This token allows you to get the next
24318	// page of results for list requests. If the number of results is larger
24319	// than maxResults, use the nextPageToken as a value for the query
24320	// parameter pageToken in the next list request. Subsequent list
24321	// requests will have their own nextPageToken to continue paging through
24322	// the results.
24323	NextPageToken string `json:"nextPageToken,omitempty"`
24324
24325	// SelfLink: [Output Only] Server-defined URL for this resource.
24326	SelfLink string `json:"selfLink,omitempty"`
24327
24328	// Unreachables: [Output Only] Unreachable resources.
24329	Unreachables []string `json:"unreachables,omitempty"`
24330
24331	// Warning: [Output Only] Informational warning message.
24332	Warning *NetworkEndpointGroupAggregatedListWarning `json:"warning,omitempty"`
24333
24334	// ServerResponse contains the HTTP response code and headers from the
24335	// server.
24336	googleapi.ServerResponse `json:"-"`
24337
24338	// ForceSendFields is a list of field names (e.g. "Id") to
24339	// unconditionally include in API requests. By default, fields with
24340	// empty values are omitted from API requests. However, any non-pointer,
24341	// non-interface field appearing in ForceSendFields will be sent to the
24342	// server regardless of whether the field is empty or not. This may be
24343	// used to include empty fields in Patch requests.
24344	ForceSendFields []string `json:"-"`
24345
24346	// NullFields is a list of field names (e.g. "Id") to include in API
24347	// requests with the JSON null value. By default, fields with empty
24348	// values are omitted from API requests. However, any field with an
24349	// empty value appearing in NullFields will be sent to the server as
24350	// null. It is an error if a field in this list has a non-empty value.
24351	// This may be used to include null fields in Patch requests.
24352	NullFields []string `json:"-"`
24353}
24354
24355func (s *NetworkEndpointGroupAggregatedList) MarshalJSON() ([]byte, error) {
24356	type NoMethod NetworkEndpointGroupAggregatedList
24357	raw := NoMethod(*s)
24358	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24359}
24360
24361// NetworkEndpointGroupAggregatedListWarning: [Output Only]
24362// Informational warning message.
24363type NetworkEndpointGroupAggregatedListWarning struct {
24364	// Code: [Output Only] A warning code, if applicable. For example,
24365	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
24366	// the response.
24367	//
24368	// Possible values:
24369	//   "CLEANUP_FAILED"
24370	//   "DEPRECATED_RESOURCE_USED"
24371	//   "DEPRECATED_TYPE_USED"
24372	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
24373	//   "EXPERIMENTAL_TYPE_USED"
24374	//   "EXTERNAL_API_WARNING"
24375	//   "FIELD_VALUE_OVERRIDEN"
24376	//   "INJECTED_KERNELS_DEPRECATED"
24377	//   "LARGE_DEPLOYMENT_WARNING"
24378	//   "MISSING_TYPE_DEPENDENCY"
24379	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
24380	//   "NEXT_HOP_CANNOT_IP_FORWARD"
24381	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
24382	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
24383	//   "NEXT_HOP_NOT_RUNNING"
24384	//   "NOT_CRITICAL_ERROR"
24385	//   "NO_RESULTS_ON_PAGE"
24386	//   "PARTIAL_SUCCESS"
24387	//   "REQUIRED_TOS_AGREEMENT"
24388	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
24389	//   "RESOURCE_NOT_DELETED"
24390	//   "SCHEMA_VALIDATION_IGNORED"
24391	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
24392	//   "UNDECLARED_PROPERTIES"
24393	//   "UNREACHABLE"
24394	Code string `json:"code,omitempty"`
24395
24396	// Data: [Output Only] Metadata about this warning in key: value format.
24397	// For example:
24398	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
24399	Data []*NetworkEndpointGroupAggregatedListWarningData `json:"data,omitempty"`
24400
24401	// Message: [Output Only] A human-readable description of the warning
24402	// code.
24403	Message string `json:"message,omitempty"`
24404
24405	// ForceSendFields is a list of field names (e.g. "Code") to
24406	// unconditionally include in API requests. By default, fields with
24407	// empty values are omitted from API requests. However, any non-pointer,
24408	// non-interface field appearing in ForceSendFields will be sent to the
24409	// server regardless of whether the field is empty or not. This may be
24410	// used to include empty fields in Patch requests.
24411	ForceSendFields []string `json:"-"`
24412
24413	// NullFields is a list of field names (e.g. "Code") to include in API
24414	// requests with the JSON null value. By default, fields with empty
24415	// values are omitted from API requests. However, any field with an
24416	// empty value appearing in NullFields will be sent to the server as
24417	// null. It is an error if a field in this list has a non-empty value.
24418	// This may be used to include null fields in Patch requests.
24419	NullFields []string `json:"-"`
24420}
24421
24422func (s *NetworkEndpointGroupAggregatedListWarning) MarshalJSON() ([]byte, error) {
24423	type NoMethod NetworkEndpointGroupAggregatedListWarning
24424	raw := NoMethod(*s)
24425	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24426}
24427
24428type NetworkEndpointGroupAggregatedListWarningData struct {
24429	// Key: [Output Only] A key that provides more detail on the warning
24430	// being returned. For example, for warnings where there are no results
24431	// in a list request for a particular zone, this key might be scope and
24432	// the key value might be the zone name. Other examples might be a key
24433	// indicating a deprecated resource and a suggested replacement, or a
24434	// warning about invalid network settings (for example, if an instance
24435	// attempts to perform IP forwarding but is not enabled for IP
24436	// forwarding).
24437	Key string `json:"key,omitempty"`
24438
24439	// Value: [Output Only] A warning data value corresponding to the key.
24440	Value string `json:"value,omitempty"`
24441
24442	// ForceSendFields is a list of field names (e.g. "Key") to
24443	// unconditionally include in API requests. By default, fields with
24444	// empty values are omitted from API requests. However, any non-pointer,
24445	// non-interface field appearing in ForceSendFields will be sent to the
24446	// server regardless of whether the field is empty or not. This may be
24447	// used to include empty fields in Patch requests.
24448	ForceSendFields []string `json:"-"`
24449
24450	// NullFields is a list of field names (e.g. "Key") to include in API
24451	// requests with the JSON null value. By default, fields with empty
24452	// values are omitted from API requests. However, any field with an
24453	// empty value appearing in NullFields will be sent to the server as
24454	// null. It is an error if a field in this list has a non-empty value.
24455	// This may be used to include null fields in Patch requests.
24456	NullFields []string `json:"-"`
24457}
24458
24459func (s *NetworkEndpointGroupAggregatedListWarningData) MarshalJSON() ([]byte, error) {
24460	type NoMethod NetworkEndpointGroupAggregatedListWarningData
24461	raw := NoMethod(*s)
24462	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24463}
24464
24465// NetworkEndpointGroupAppEngine: Configuration for an App Engine
24466// network endpoint group (NEG). The service is optional, may be
24467// provided explicitly or in the URL mask. The version is optional and
24468// can only be provided explicitly or in the URL mask when service is
24469// present.
24470//
24471// Note: App Engine service must be in the same project and located in
24472// the same region as the Serverless NEG.
24473type NetworkEndpointGroupAppEngine struct {
24474	// Service: Optional serving service.
24475	//
24476	// The service name is case-sensitive and must be 1-63 characters
24477	// long.
24478	//
24479	// Example value: "default", "my-service".
24480	Service string `json:"service,omitempty"`
24481
24482	// UrlMask: A template to parse service and version fields from a
24483	// request URL. URL mask allows for routing to multiple App Engine
24484	// services without having to create multiple Network Endpoint Groups
24485	// and backend services.
24486	//
24487	// For example, the request URLs "foo1-dot-appname.appspot.com/v1" and
24488	// "foo1-dot-appname.appspot.com/v2" can be backed by the same
24489	// Serverless NEG with URL mask "-dot-appname.appspot.com/". The URL
24490	// mask will parse them to { service = "foo1", version = "v1" } and {
24491	// service = "foo1", version = "v2" } respectively.
24492	UrlMask string `json:"urlMask,omitempty"`
24493
24494	// Version: Optional serving version.
24495	//
24496	// The version name is case-sensitive and must be 1-100 characters
24497	// long.
24498	//
24499	// Example value: "v1", "v2".
24500	Version string `json:"version,omitempty"`
24501
24502	// ForceSendFields is a list of field names (e.g. "Service") to
24503	// unconditionally include in API requests. By default, fields with
24504	// empty values are omitted from API requests. However, any non-pointer,
24505	// non-interface field appearing in ForceSendFields will be sent to the
24506	// server regardless of whether the field is empty or not. This may be
24507	// used to include empty fields in Patch requests.
24508	ForceSendFields []string `json:"-"`
24509
24510	// NullFields is a list of field names (e.g. "Service") to include in
24511	// API requests with the JSON null value. By default, fields with empty
24512	// values are omitted from API requests. However, any field with an
24513	// empty value appearing in NullFields will be sent to the server as
24514	// null. It is an error if a field in this list has a non-empty value.
24515	// This may be used to include null fields in Patch requests.
24516	NullFields []string `json:"-"`
24517}
24518
24519func (s *NetworkEndpointGroupAppEngine) MarshalJSON() ([]byte, error) {
24520	type NoMethod NetworkEndpointGroupAppEngine
24521	raw := NoMethod(*s)
24522	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24523}
24524
24525// NetworkEndpointGroupCloudFunction: Configuration for a Cloud Function
24526// network endpoint group (NEG). The function must be provided
24527// explicitly or in the URL mask.
24528//
24529// Note: Cloud Function must be in the same project and located in the
24530// same region as the Serverless NEG.
24531type NetworkEndpointGroupCloudFunction struct {
24532	// Function: A user-defined name of the Cloud Function.
24533	//
24534	// The function name is case-sensitive and must be 1-63 characters
24535	// long.
24536	//
24537	// Example value: "func1".
24538	Function string `json:"function,omitempty"`
24539
24540	// UrlMask: A template to parse function field from a request URL. URL
24541	// mask allows for routing to multiple Cloud Functions without having to
24542	// create multiple Network Endpoint Groups and backend services.
24543	//
24544	// For example, request URLs "mydomain.com/function1" and
24545	// "mydomain.com/function2" can be backed by the same Serverless NEG
24546	// with URL mask "/". The URL mask will parse them to { function =
24547	// "function1" } and { function = "function2" } respectively.
24548	UrlMask string `json:"urlMask,omitempty"`
24549
24550	// ForceSendFields is a list of field names (e.g. "Function") to
24551	// unconditionally include in API requests. By default, fields with
24552	// empty values are omitted from API requests. However, any non-pointer,
24553	// non-interface field appearing in ForceSendFields will be sent to the
24554	// server regardless of whether the field is empty or not. This may be
24555	// used to include empty fields in Patch requests.
24556	ForceSendFields []string `json:"-"`
24557
24558	// NullFields is a list of field names (e.g. "Function") to include in
24559	// API requests with the JSON null value. By default, fields with empty
24560	// values are omitted from API requests. However, any field with an
24561	// empty value appearing in NullFields will be sent to the server as
24562	// null. It is an error if a field in this list has a non-empty value.
24563	// This may be used to include null fields in Patch requests.
24564	NullFields []string `json:"-"`
24565}
24566
24567func (s *NetworkEndpointGroupCloudFunction) MarshalJSON() ([]byte, error) {
24568	type NoMethod NetworkEndpointGroupCloudFunction
24569	raw := NoMethod(*s)
24570	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24571}
24572
24573// NetworkEndpointGroupCloudRun: Configuration for a Cloud Run network
24574// endpoint group (NEG). The service must be provided explicitly or in
24575// the URL mask. The tag is optional, may be provided explicitly or in
24576// the URL mask.
24577//
24578// Note: Cloud Run service must be in the same project and located in
24579// the same region as the Serverless NEG.
24580type NetworkEndpointGroupCloudRun struct {
24581	// Service: Cloud Run service is the main resource of Cloud Run.
24582	//
24583	// The service must be 1-63 characters long, and comply with
24584	// RFC1035.
24585	//
24586	// Example value: "run-service".
24587	Service string `json:"service,omitempty"`
24588
24589	// Tag: Optional Cloud Run tag represents the "named-revision" to
24590	// provide additional fine-grained traffic routing information.
24591	//
24592	// The tag must be 1-63 characters long, and comply with
24593	// RFC1035.
24594	//
24595	// Example value: "revision-0010".
24596	Tag string `json:"tag,omitempty"`
24597
24598	// UrlMask: A template to parse service and tag fields from a request
24599	// URL. URL mask allows for routing to multiple Run services without
24600	// having to create multiple network endpoint groups and backend
24601	// services.
24602	//
24603	// For example, request URLs "foo1.domain.com/bar1" and
24604	// "foo1.domain.com/bar2" can be backed by the same Serverless Network
24605	// Endpoint Group (NEG) with URL mask ".domain.com/". The URL mask will
24606	// parse them to { service="bar1", tag="foo1" } and { service="bar2",
24607	// tag="foo2" } respectively.
24608	UrlMask string `json:"urlMask,omitempty"`
24609
24610	// ForceSendFields is a list of field names (e.g. "Service") to
24611	// unconditionally include in API requests. By default, fields with
24612	// empty values are omitted from API requests. However, any non-pointer,
24613	// non-interface field appearing in ForceSendFields will be sent to the
24614	// server regardless of whether the field is empty or not. This may be
24615	// used to include empty fields in Patch requests.
24616	ForceSendFields []string `json:"-"`
24617
24618	// NullFields is a list of field names (e.g. "Service") to include in
24619	// API requests with the JSON null value. By default, fields with empty
24620	// values are omitted from API requests. However, any field with an
24621	// empty value appearing in NullFields will be sent to the server as
24622	// null. It is an error if a field in this list has a non-empty value.
24623	// This may be used to include null fields in Patch requests.
24624	NullFields []string `json:"-"`
24625}
24626
24627func (s *NetworkEndpointGroupCloudRun) MarshalJSON() ([]byte, error) {
24628	type NoMethod NetworkEndpointGroupCloudRun
24629	raw := NoMethod(*s)
24630	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24631}
24632
24633// NetworkEndpointGroupLbNetworkEndpointGroup: Load balancing specific
24634// fields for network endpoint group.
24635type NetworkEndpointGroupLbNetworkEndpointGroup struct {
24636	// DefaultPort: The default port used if the port number is not
24637	// specified in the network endpoint. [Deprecated] This field is
24638	// deprecated.
24639	DefaultPort int64 `json:"defaultPort,omitempty"`
24640
24641	// Network: The URL of the network to which all network endpoints in the
24642	// NEG belong. Uses "default" project network if unspecified.
24643	// [Deprecated] This field is deprecated.
24644	Network string `json:"network,omitempty"`
24645
24646	// Subnetwork: Optional URL of the subnetwork to which all network
24647	// endpoints in the NEG belong. [Deprecated] This field is deprecated.
24648	Subnetwork string `json:"subnetwork,omitempty"`
24649
24650	// Zone: [Output Only] The URL of the zone where the network endpoint
24651	// group is located. [Deprecated] This field is deprecated.
24652	Zone string `json:"zone,omitempty"`
24653
24654	// ForceSendFields is a list of field names (e.g. "DefaultPort") to
24655	// unconditionally include in API requests. By default, fields with
24656	// empty values are omitted from API requests. However, any non-pointer,
24657	// non-interface field appearing in ForceSendFields will be sent to the
24658	// server regardless of whether the field is empty or not. This may be
24659	// used to include empty fields in Patch requests.
24660	ForceSendFields []string `json:"-"`
24661
24662	// NullFields is a list of field names (e.g. "DefaultPort") to include
24663	// in API requests with the JSON null value. By default, fields with
24664	// empty values are omitted from API requests. However, any field with
24665	// an empty value appearing in NullFields will be sent to the server as
24666	// null. It is an error if a field in this list has a non-empty value.
24667	// This may be used to include null fields in Patch requests.
24668	NullFields []string `json:"-"`
24669}
24670
24671func (s *NetworkEndpointGroupLbNetworkEndpointGroup) MarshalJSON() ([]byte, error) {
24672	type NoMethod NetworkEndpointGroupLbNetworkEndpointGroup
24673	raw := NoMethod(*s)
24674	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24675}
24676
24677type NetworkEndpointGroupList struct {
24678	// Id: [Output Only] Unique identifier for the resource; defined by the
24679	// server.
24680	Id string `json:"id,omitempty"`
24681
24682	// Items: A list of NetworkEndpointGroup resources.
24683	Items []*NetworkEndpointGroup `json:"items,omitempty"`
24684
24685	// Kind: [Output Only] The resource type, which is always
24686	// compute#networkEndpointGroupList for network endpoint group lists.
24687	Kind string `json:"kind,omitempty"`
24688
24689	// NextPageToken: [Output Only] This token allows you to get the next
24690	// page of results for list requests. If the number of results is larger
24691	// than maxResults, use the nextPageToken as a value for the query
24692	// parameter pageToken in the next list request. Subsequent list
24693	// requests will have their own nextPageToken to continue paging through
24694	// the results.
24695	NextPageToken string `json:"nextPageToken,omitempty"`
24696
24697	// SelfLink: [Output Only] Server-defined URL for this resource.
24698	SelfLink string `json:"selfLink,omitempty"`
24699
24700	// Warning: [Output Only] Informational warning message.
24701	Warning *NetworkEndpointGroupListWarning `json:"warning,omitempty"`
24702
24703	// ServerResponse contains the HTTP response code and headers from the
24704	// server.
24705	googleapi.ServerResponse `json:"-"`
24706
24707	// ForceSendFields is a list of field names (e.g. "Id") to
24708	// unconditionally include in API requests. By default, fields with
24709	// empty values are omitted from API requests. However, any non-pointer,
24710	// non-interface field appearing in ForceSendFields will be sent to the
24711	// server regardless of whether the field is empty or not. This may be
24712	// used to include empty fields in Patch requests.
24713	ForceSendFields []string `json:"-"`
24714
24715	// NullFields is a list of field names (e.g. "Id") to include in API
24716	// requests with the JSON null value. By default, fields with empty
24717	// values are omitted from API requests. However, any field with an
24718	// empty value appearing in NullFields will be sent to the server as
24719	// null. It is an error if a field in this list has a non-empty value.
24720	// This may be used to include null fields in Patch requests.
24721	NullFields []string `json:"-"`
24722}
24723
24724func (s *NetworkEndpointGroupList) MarshalJSON() ([]byte, error) {
24725	type NoMethod NetworkEndpointGroupList
24726	raw := NoMethod(*s)
24727	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24728}
24729
24730// NetworkEndpointGroupListWarning: [Output Only] Informational warning
24731// message.
24732type NetworkEndpointGroupListWarning struct {
24733	// Code: [Output Only] A warning code, if applicable. For example,
24734	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
24735	// the response.
24736	//
24737	// Possible values:
24738	//   "CLEANUP_FAILED"
24739	//   "DEPRECATED_RESOURCE_USED"
24740	//   "DEPRECATED_TYPE_USED"
24741	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
24742	//   "EXPERIMENTAL_TYPE_USED"
24743	//   "EXTERNAL_API_WARNING"
24744	//   "FIELD_VALUE_OVERRIDEN"
24745	//   "INJECTED_KERNELS_DEPRECATED"
24746	//   "LARGE_DEPLOYMENT_WARNING"
24747	//   "MISSING_TYPE_DEPENDENCY"
24748	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
24749	//   "NEXT_HOP_CANNOT_IP_FORWARD"
24750	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
24751	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
24752	//   "NEXT_HOP_NOT_RUNNING"
24753	//   "NOT_CRITICAL_ERROR"
24754	//   "NO_RESULTS_ON_PAGE"
24755	//   "PARTIAL_SUCCESS"
24756	//   "REQUIRED_TOS_AGREEMENT"
24757	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
24758	//   "RESOURCE_NOT_DELETED"
24759	//   "SCHEMA_VALIDATION_IGNORED"
24760	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
24761	//   "UNDECLARED_PROPERTIES"
24762	//   "UNREACHABLE"
24763	Code string `json:"code,omitempty"`
24764
24765	// Data: [Output Only] Metadata about this warning in key: value format.
24766	// For example:
24767	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
24768	Data []*NetworkEndpointGroupListWarningData `json:"data,omitempty"`
24769
24770	// Message: [Output Only] A human-readable description of the warning
24771	// code.
24772	Message string `json:"message,omitempty"`
24773
24774	// ForceSendFields is a list of field names (e.g. "Code") to
24775	// unconditionally include in API requests. By default, fields with
24776	// empty values are omitted from API requests. However, any non-pointer,
24777	// non-interface field appearing in ForceSendFields will be sent to the
24778	// server regardless of whether the field is empty or not. This may be
24779	// used to include empty fields in Patch requests.
24780	ForceSendFields []string `json:"-"`
24781
24782	// NullFields is a list of field names (e.g. "Code") to include in API
24783	// requests with the JSON null value. By default, fields with empty
24784	// values are omitted from API requests. However, any field with an
24785	// empty value appearing in NullFields will be sent to the server as
24786	// null. It is an error if a field in this list has a non-empty value.
24787	// This may be used to include null fields in Patch requests.
24788	NullFields []string `json:"-"`
24789}
24790
24791func (s *NetworkEndpointGroupListWarning) MarshalJSON() ([]byte, error) {
24792	type NoMethod NetworkEndpointGroupListWarning
24793	raw := NoMethod(*s)
24794	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24795}
24796
24797type NetworkEndpointGroupListWarningData struct {
24798	// Key: [Output Only] A key that provides more detail on the warning
24799	// being returned. For example, for warnings where there are no results
24800	// in a list request for a particular zone, this key might be scope and
24801	// the key value might be the zone name. Other examples might be a key
24802	// indicating a deprecated resource and a suggested replacement, or a
24803	// warning about invalid network settings (for example, if an instance
24804	// attempts to perform IP forwarding but is not enabled for IP
24805	// forwarding).
24806	Key string `json:"key,omitempty"`
24807
24808	// Value: [Output Only] A warning data value corresponding to the key.
24809	Value string `json:"value,omitempty"`
24810
24811	// ForceSendFields is a list of field names (e.g. "Key") to
24812	// unconditionally include in API requests. By default, fields with
24813	// empty values are omitted from API requests. However, any non-pointer,
24814	// non-interface field appearing in ForceSendFields will be sent to the
24815	// server regardless of whether the field is empty or not. This may be
24816	// used to include empty fields in Patch requests.
24817	ForceSendFields []string `json:"-"`
24818
24819	// NullFields is a list of field names (e.g. "Key") to include in API
24820	// requests with the JSON null value. By default, fields with empty
24821	// values are omitted from API requests. However, any field with an
24822	// empty value appearing in NullFields will be sent to the server as
24823	// null. It is an error if a field in this list has a non-empty value.
24824	// This may be used to include null fields in Patch requests.
24825	NullFields []string `json:"-"`
24826}
24827
24828func (s *NetworkEndpointGroupListWarningData) MarshalJSON() ([]byte, error) {
24829	type NoMethod NetworkEndpointGroupListWarningData
24830	raw := NoMethod(*s)
24831	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24832}
24833
24834type NetworkEndpointGroupsAttachEndpointsRequest struct {
24835	// NetworkEndpoints: The list of network endpoints to be attached.
24836	NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"`
24837
24838	// ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to
24839	// unconditionally include in API requests. By default, fields with
24840	// empty values are omitted from API requests. However, any non-pointer,
24841	// non-interface field appearing in ForceSendFields will be sent to the
24842	// server regardless of whether the field is empty or not. This may be
24843	// used to include empty fields in Patch requests.
24844	ForceSendFields []string `json:"-"`
24845
24846	// NullFields is a list of field names (e.g. "NetworkEndpoints") to
24847	// include in API requests with the JSON null value. By default, fields
24848	// with empty values are omitted from API requests. However, any field
24849	// with an empty value appearing in NullFields will be sent to the
24850	// server as null. It is an error if a field in this list has a
24851	// non-empty value. This may be used to include null fields in Patch
24852	// requests.
24853	NullFields []string `json:"-"`
24854}
24855
24856func (s *NetworkEndpointGroupsAttachEndpointsRequest) MarshalJSON() ([]byte, error) {
24857	type NoMethod NetworkEndpointGroupsAttachEndpointsRequest
24858	raw := NoMethod(*s)
24859	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24860}
24861
24862type NetworkEndpointGroupsDetachEndpointsRequest struct {
24863	// NetworkEndpoints: The list of network endpoints to be detached.
24864	NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"`
24865
24866	// ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to
24867	// unconditionally include in API requests. By default, fields with
24868	// empty values are omitted from API requests. However, any non-pointer,
24869	// non-interface field appearing in ForceSendFields will be sent to the
24870	// server regardless of whether the field is empty or not. This may be
24871	// used to include empty fields in Patch requests.
24872	ForceSendFields []string `json:"-"`
24873
24874	// NullFields is a list of field names (e.g. "NetworkEndpoints") to
24875	// include in API requests with the JSON null value. By default, fields
24876	// with empty values are omitted from API requests. However, any field
24877	// with an empty value appearing in NullFields will be sent to the
24878	// server as null. It is an error if a field in this list has a
24879	// non-empty value. This may be used to include null fields in Patch
24880	// requests.
24881	NullFields []string `json:"-"`
24882}
24883
24884func (s *NetworkEndpointGroupsDetachEndpointsRequest) MarshalJSON() ([]byte, error) {
24885	type NoMethod NetworkEndpointGroupsDetachEndpointsRequest
24886	raw := NoMethod(*s)
24887	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24888}
24889
24890type NetworkEndpointGroupsListEndpointsRequest struct {
24891	// EndpointFilters: Optional list of endpoints to query. This is a more
24892	// efficient but also limited version of filter parameter. Endpoints in
24893	// the filter must have ip_address and port fields populated, other
24894	// fields are not supported.
24895	EndpointFilters []*NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter `json:"endpointFilters,omitempty"`
24896
24897	// HealthStatus: Optional query parameter for showing the health status
24898	// of each network endpoint. Valid options are SKIP or SHOW. If you
24899	// don't specify this parameter, the health status of network endpoints
24900	// will not be provided.
24901	//
24902	// Possible values:
24903	//   "SHOW"
24904	//   "SKIP"
24905	HealthStatus string `json:"healthStatus,omitempty"`
24906
24907	// ForceSendFields is a list of field names (e.g. "EndpointFilters") to
24908	// unconditionally include in API requests. By default, fields with
24909	// empty values are omitted from API requests. However, any non-pointer,
24910	// non-interface field appearing in ForceSendFields will be sent to the
24911	// server regardless of whether the field is empty or not. This may be
24912	// used to include empty fields in Patch requests.
24913	ForceSendFields []string `json:"-"`
24914
24915	// NullFields is a list of field names (e.g. "EndpointFilters") to
24916	// include in API requests with the JSON null value. By default, fields
24917	// with empty values are omitted from API requests. However, any field
24918	// with an empty value appearing in NullFields will be sent to the
24919	// server as null. It is an error if a field in this list has a
24920	// non-empty value. This may be used to include null fields in Patch
24921	// requests.
24922	NullFields []string `json:"-"`
24923}
24924
24925func (s *NetworkEndpointGroupsListEndpointsRequest) MarshalJSON() ([]byte, error) {
24926	type NoMethod NetworkEndpointGroupsListEndpointsRequest
24927	raw := NoMethod(*s)
24928	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24929}
24930
24931type NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter struct {
24932	NetworkEndpoint *NetworkEndpoint `json:"networkEndpoint,omitempty"`
24933
24934	// ForceSendFields is a list of field names (e.g. "NetworkEndpoint") to
24935	// unconditionally include in API requests. By default, fields with
24936	// empty values are omitted from API requests. However, any non-pointer,
24937	// non-interface field appearing in ForceSendFields will be sent to the
24938	// server regardless of whether the field is empty or not. This may be
24939	// used to include empty fields in Patch requests.
24940	ForceSendFields []string `json:"-"`
24941
24942	// NullFields is a list of field names (e.g. "NetworkEndpoint") to
24943	// include in API requests with the JSON null value. By default, fields
24944	// with empty values are omitted from API requests. However, any field
24945	// with an empty value appearing in NullFields will be sent to the
24946	// server as null. It is an error if a field in this list has a
24947	// non-empty value. This may be used to include null fields in Patch
24948	// requests.
24949	NullFields []string `json:"-"`
24950}
24951
24952func (s *NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter) MarshalJSON() ([]byte, error) {
24953	type NoMethod NetworkEndpointGroupsListEndpointsRequestNetworkEndpointFilter
24954	raw := NoMethod(*s)
24955	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24956}
24957
24958type NetworkEndpointGroupsListNetworkEndpoints struct {
24959	// Id: [Output Only] Unique identifier for the resource; defined by the
24960	// server.
24961	Id string `json:"id,omitempty"`
24962
24963	// Items: A list of NetworkEndpointWithHealthStatus resources.
24964	Items []*NetworkEndpointWithHealthStatus `json:"items,omitempty"`
24965
24966	// Kind: [Output Only] The resource type, which is always
24967	// compute#networkEndpointGroupsListNetworkEndpoints for the list of
24968	// network endpoints in the specified network endpoint group.
24969	Kind string `json:"kind,omitempty"`
24970
24971	// NextPageToken: [Output Only] This token allows you to get the next
24972	// page of results for list requests. If the number of results is larger
24973	// than maxResults, use the nextPageToken as a value for the query
24974	// parameter pageToken in the next list request. Subsequent list
24975	// requests will have their own nextPageToken to continue paging through
24976	// the results.
24977	NextPageToken string `json:"nextPageToken,omitempty"`
24978
24979	// Warning: [Output Only] Informational warning message.
24980	Warning *NetworkEndpointGroupsListNetworkEndpointsWarning `json:"warning,omitempty"`
24981
24982	// ServerResponse contains the HTTP response code and headers from the
24983	// server.
24984	googleapi.ServerResponse `json:"-"`
24985
24986	// ForceSendFields is a list of field names (e.g. "Id") to
24987	// unconditionally include in API requests. By default, fields with
24988	// empty values are omitted from API requests. However, any non-pointer,
24989	// non-interface field appearing in ForceSendFields will be sent to the
24990	// server regardless of whether the field is empty or not. This may be
24991	// used to include empty fields in Patch requests.
24992	ForceSendFields []string `json:"-"`
24993
24994	// NullFields is a list of field names (e.g. "Id") to include in API
24995	// requests with the JSON null value. By default, fields with empty
24996	// values are omitted from API requests. However, any field with an
24997	// empty value appearing in NullFields will be sent to the server as
24998	// null. It is an error if a field in this list has a non-empty value.
24999	// This may be used to include null fields in Patch requests.
25000	NullFields []string `json:"-"`
25001}
25002
25003func (s *NetworkEndpointGroupsListNetworkEndpoints) MarshalJSON() ([]byte, error) {
25004	type NoMethod NetworkEndpointGroupsListNetworkEndpoints
25005	raw := NoMethod(*s)
25006	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25007}
25008
25009// NetworkEndpointGroupsListNetworkEndpointsWarning: [Output Only]
25010// Informational warning message.
25011type NetworkEndpointGroupsListNetworkEndpointsWarning struct {
25012	// Code: [Output Only] A warning code, if applicable. For example,
25013	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
25014	// the response.
25015	//
25016	// Possible values:
25017	//   "CLEANUP_FAILED"
25018	//   "DEPRECATED_RESOURCE_USED"
25019	//   "DEPRECATED_TYPE_USED"
25020	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
25021	//   "EXPERIMENTAL_TYPE_USED"
25022	//   "EXTERNAL_API_WARNING"
25023	//   "FIELD_VALUE_OVERRIDEN"
25024	//   "INJECTED_KERNELS_DEPRECATED"
25025	//   "LARGE_DEPLOYMENT_WARNING"
25026	//   "MISSING_TYPE_DEPENDENCY"
25027	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
25028	//   "NEXT_HOP_CANNOT_IP_FORWARD"
25029	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
25030	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
25031	//   "NEXT_HOP_NOT_RUNNING"
25032	//   "NOT_CRITICAL_ERROR"
25033	//   "NO_RESULTS_ON_PAGE"
25034	//   "PARTIAL_SUCCESS"
25035	//   "REQUIRED_TOS_AGREEMENT"
25036	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
25037	//   "RESOURCE_NOT_DELETED"
25038	//   "SCHEMA_VALIDATION_IGNORED"
25039	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
25040	//   "UNDECLARED_PROPERTIES"
25041	//   "UNREACHABLE"
25042	Code string `json:"code,omitempty"`
25043
25044	// Data: [Output Only] Metadata about this warning in key: value format.
25045	// For example:
25046	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
25047	Data []*NetworkEndpointGroupsListNetworkEndpointsWarningData `json:"data,omitempty"`
25048
25049	// Message: [Output Only] A human-readable description of the warning
25050	// code.
25051	Message string `json:"message,omitempty"`
25052
25053	// ForceSendFields is a list of field names (e.g. "Code") to
25054	// unconditionally include in API requests. By default, fields with
25055	// empty values are omitted from API requests. However, any non-pointer,
25056	// non-interface field appearing in ForceSendFields will be sent to the
25057	// server regardless of whether the field is empty or not. This may be
25058	// used to include empty fields in Patch requests.
25059	ForceSendFields []string `json:"-"`
25060
25061	// NullFields is a list of field names (e.g. "Code") to include in API
25062	// requests with the JSON null value. By default, fields with empty
25063	// values are omitted from API requests. However, any field with an
25064	// empty value appearing in NullFields will be sent to the server as
25065	// null. It is an error if a field in this list has a non-empty value.
25066	// This may be used to include null fields in Patch requests.
25067	NullFields []string `json:"-"`
25068}
25069
25070func (s *NetworkEndpointGroupsListNetworkEndpointsWarning) MarshalJSON() ([]byte, error) {
25071	type NoMethod NetworkEndpointGroupsListNetworkEndpointsWarning
25072	raw := NoMethod(*s)
25073	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25074}
25075
25076type NetworkEndpointGroupsListNetworkEndpointsWarningData struct {
25077	// Key: [Output Only] A key that provides more detail on the warning
25078	// being returned. For example, for warnings where there are no results
25079	// in a list request for a particular zone, this key might be scope and
25080	// the key value might be the zone name. Other examples might be a key
25081	// indicating a deprecated resource and a suggested replacement, or a
25082	// warning about invalid network settings (for example, if an instance
25083	// attempts to perform IP forwarding but is not enabled for IP
25084	// forwarding).
25085	Key string `json:"key,omitempty"`
25086
25087	// Value: [Output Only] A warning data value corresponding to the key.
25088	Value string `json:"value,omitempty"`
25089
25090	// ForceSendFields is a list of field names (e.g. "Key") to
25091	// unconditionally include in API requests. By default, fields with
25092	// empty values are omitted from API requests. However, any non-pointer,
25093	// non-interface field appearing in ForceSendFields will be sent to the
25094	// server regardless of whether the field is empty or not. This may be
25095	// used to include empty fields in Patch requests.
25096	ForceSendFields []string `json:"-"`
25097
25098	// NullFields is a list of field names (e.g. "Key") to include in API
25099	// requests with the JSON null value. By default, fields with empty
25100	// values are omitted from API requests. However, any field with an
25101	// empty value appearing in NullFields will be sent to the server as
25102	// null. It is an error if a field in this list has a non-empty value.
25103	// This may be used to include null fields in Patch requests.
25104	NullFields []string `json:"-"`
25105}
25106
25107func (s *NetworkEndpointGroupsListNetworkEndpointsWarningData) MarshalJSON() ([]byte, error) {
25108	type NoMethod NetworkEndpointGroupsListNetworkEndpointsWarningData
25109	raw := NoMethod(*s)
25110	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25111}
25112
25113type NetworkEndpointGroupsScopedList struct {
25114	// NetworkEndpointGroups: [Output Only] The list of network endpoint
25115	// groups that are contained in this scope.
25116	NetworkEndpointGroups []*NetworkEndpointGroup `json:"networkEndpointGroups,omitempty"`
25117
25118	// Warning: [Output Only] An informational warning that replaces the
25119	// list of network endpoint groups when the list is empty.
25120	Warning *NetworkEndpointGroupsScopedListWarning `json:"warning,omitempty"`
25121
25122	// ForceSendFields is a list of field names (e.g.
25123	// "NetworkEndpointGroups") to unconditionally include in API requests.
25124	// By default, fields with empty values are omitted from API requests.
25125	// However, any non-pointer, non-interface field appearing in
25126	// ForceSendFields will be sent to the server regardless of whether the
25127	// field is empty or not. This may be used to include empty fields in
25128	// Patch requests.
25129	ForceSendFields []string `json:"-"`
25130
25131	// NullFields is a list of field names (e.g. "NetworkEndpointGroups") to
25132	// include in API requests with the JSON null value. By default, fields
25133	// with empty values are omitted from API requests. However, any field
25134	// with an empty value appearing in NullFields will be sent to the
25135	// server as null. It is an error if a field in this list has a
25136	// non-empty value. This may be used to include null fields in Patch
25137	// requests.
25138	NullFields []string `json:"-"`
25139}
25140
25141func (s *NetworkEndpointGroupsScopedList) MarshalJSON() ([]byte, error) {
25142	type NoMethod NetworkEndpointGroupsScopedList
25143	raw := NoMethod(*s)
25144	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25145}
25146
25147// NetworkEndpointGroupsScopedListWarning: [Output Only] An
25148// informational warning that replaces the list of network endpoint
25149// groups when the list is empty.
25150type NetworkEndpointGroupsScopedListWarning struct {
25151	// Code: [Output Only] A warning code, if applicable. For example,
25152	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
25153	// the response.
25154	//
25155	// Possible values:
25156	//   "CLEANUP_FAILED"
25157	//   "DEPRECATED_RESOURCE_USED"
25158	//   "DEPRECATED_TYPE_USED"
25159	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
25160	//   "EXPERIMENTAL_TYPE_USED"
25161	//   "EXTERNAL_API_WARNING"
25162	//   "FIELD_VALUE_OVERRIDEN"
25163	//   "INJECTED_KERNELS_DEPRECATED"
25164	//   "LARGE_DEPLOYMENT_WARNING"
25165	//   "MISSING_TYPE_DEPENDENCY"
25166	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
25167	//   "NEXT_HOP_CANNOT_IP_FORWARD"
25168	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
25169	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
25170	//   "NEXT_HOP_NOT_RUNNING"
25171	//   "NOT_CRITICAL_ERROR"
25172	//   "NO_RESULTS_ON_PAGE"
25173	//   "PARTIAL_SUCCESS"
25174	//   "REQUIRED_TOS_AGREEMENT"
25175	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
25176	//   "RESOURCE_NOT_DELETED"
25177	//   "SCHEMA_VALIDATION_IGNORED"
25178	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
25179	//   "UNDECLARED_PROPERTIES"
25180	//   "UNREACHABLE"
25181	Code string `json:"code,omitempty"`
25182
25183	// Data: [Output Only] Metadata about this warning in key: value format.
25184	// For example:
25185	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
25186	Data []*NetworkEndpointGroupsScopedListWarningData `json:"data,omitempty"`
25187
25188	// Message: [Output Only] A human-readable description of the warning
25189	// code.
25190	Message string `json:"message,omitempty"`
25191
25192	// ForceSendFields is a list of field names (e.g. "Code") to
25193	// unconditionally include in API requests. By default, fields with
25194	// empty values are omitted from API requests. However, any non-pointer,
25195	// non-interface field appearing in ForceSendFields will be sent to the
25196	// server regardless of whether the field is empty or not. This may be
25197	// used to include empty fields in Patch requests.
25198	ForceSendFields []string `json:"-"`
25199
25200	// NullFields is a list of field names (e.g. "Code") to include in API
25201	// requests with the JSON null value. By default, fields with empty
25202	// values are omitted from API requests. However, any field with an
25203	// empty value appearing in NullFields will be sent to the server as
25204	// null. It is an error if a field in this list has a non-empty value.
25205	// This may be used to include null fields in Patch requests.
25206	NullFields []string `json:"-"`
25207}
25208
25209func (s *NetworkEndpointGroupsScopedListWarning) MarshalJSON() ([]byte, error) {
25210	type NoMethod NetworkEndpointGroupsScopedListWarning
25211	raw := NoMethod(*s)
25212	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25213}
25214
25215type NetworkEndpointGroupsScopedListWarningData struct {
25216	// Key: [Output Only] A key that provides more detail on the warning
25217	// being returned. For example, for warnings where there are no results
25218	// in a list request for a particular zone, this key might be scope and
25219	// the key value might be the zone name. Other examples might be a key
25220	// indicating a deprecated resource and a suggested replacement, or a
25221	// warning about invalid network settings (for example, if an instance
25222	// attempts to perform IP forwarding but is not enabled for IP
25223	// forwarding).
25224	Key string `json:"key,omitempty"`
25225
25226	// Value: [Output Only] A warning data value corresponding to the key.
25227	Value string `json:"value,omitempty"`
25228
25229	// ForceSendFields is a list of field names (e.g. "Key") to
25230	// unconditionally include in API requests. By default, fields with
25231	// empty values are omitted from API requests. However, any non-pointer,
25232	// non-interface field appearing in ForceSendFields will be sent to the
25233	// server regardless of whether the field is empty or not. This may be
25234	// used to include empty fields in Patch requests.
25235	ForceSendFields []string `json:"-"`
25236
25237	// NullFields is a list of field names (e.g. "Key") to include in API
25238	// requests with the JSON null value. By default, fields with empty
25239	// values are omitted from API requests. However, any field with an
25240	// empty value appearing in NullFields will be sent to the server as
25241	// null. It is an error if a field in this list has a non-empty value.
25242	// This may be used to include null fields in Patch requests.
25243	NullFields []string `json:"-"`
25244}
25245
25246func (s *NetworkEndpointGroupsScopedListWarningData) MarshalJSON() ([]byte, error) {
25247	type NoMethod NetworkEndpointGroupsScopedListWarningData
25248	raw := NoMethod(*s)
25249	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25250}
25251
25252type NetworkEndpointWithHealthStatus struct {
25253	// Healths: [Output only] The health status of network endpoint;
25254	Healths []*HealthStatusForNetworkEndpoint `json:"healths,omitempty"`
25255
25256	// NetworkEndpoint: [Output only] The network endpoint;
25257	NetworkEndpoint *NetworkEndpoint `json:"networkEndpoint,omitempty"`
25258
25259	// ForceSendFields is a list of field names (e.g. "Healths") to
25260	// unconditionally include in API requests. By default, fields with
25261	// empty values are omitted from API requests. However, any non-pointer,
25262	// non-interface field appearing in ForceSendFields will be sent to the
25263	// server regardless of whether the field is empty or not. This may be
25264	// used to include empty fields in Patch requests.
25265	ForceSendFields []string `json:"-"`
25266
25267	// NullFields is a list of field names (e.g. "Healths") to include in
25268	// API requests with the JSON null value. By default, fields with empty
25269	// values are omitted from API requests. However, any field with an
25270	// empty value appearing in NullFields will be sent to the server as
25271	// null. It is an error if a field in this list has a non-empty value.
25272	// This may be used to include null fields in Patch requests.
25273	NullFields []string `json:"-"`
25274}
25275
25276func (s *NetworkEndpointWithHealthStatus) MarshalJSON() ([]byte, error) {
25277	type NoMethod NetworkEndpointWithHealthStatus
25278	raw := NoMethod(*s)
25279	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25280}
25281
25282// NetworkInterface: A network interface resource attached to an
25283// instance.
25284type NetworkInterface struct {
25285	// AccessConfigs: An array of configurations for this interface.
25286	// Currently, only one access config, ONE_TO_ONE_NAT, is supported. If
25287	// there are no accessConfigs specified, then this instance will have no
25288	// external internet access.
25289	AccessConfigs []*AccessConfig `json:"accessConfigs,omitempty"`
25290
25291	// AliasIpRanges: An array of alias IP ranges for this network
25292	// interface. You can only specify this field for network interfaces in
25293	// VPC networks.
25294	AliasIpRanges []*AliasIpRange `json:"aliasIpRanges,omitempty"`
25295
25296	// Fingerprint: Fingerprint hash of contents stored in this network
25297	// interface. This field will be ignored when inserting an Instance or
25298	// adding a NetworkInterface. An up-to-date fingerprint must be provided
25299	// in order to update the NetworkInterface. The request will fail with
25300	// error 400 Bad Request if the fingerprint is not provided, or 412
25301	// Precondition Failed if the fingerprint is out of date.
25302	Fingerprint string `json:"fingerprint,omitempty"`
25303
25304	// Ipv6Address: [Output Only] An IPv6 internal network address for this
25305	// network interface.
25306	Ipv6Address string `json:"ipv6Address,omitempty"`
25307
25308	// Kind: [Output Only] Type of the resource. Always
25309	// compute#networkInterface for network interfaces.
25310	Kind string `json:"kind,omitempty"`
25311
25312	// Name: [Output Only] The name of the network interface, which is
25313	// generated by the server. For network devices, these are eth0, eth1,
25314	// etc.
25315	Name string `json:"name,omitempty"`
25316
25317	// Network: URL of the network resource for this instance. When creating
25318	// an instance, if neither the network nor the subnetwork is specified,
25319	// the default network global/networks/default is used; if the network
25320	// is not specified but the subnetwork is specified, the network is
25321	// inferred.
25322	//
25323	// If you specify this property, you can specify the network as a full
25324	// or partial URL. For example, the following are all valid URLs:
25325	// -
25326	// https://www.googleapis.com/compute/v1/projects/project/global/networks/network
25327	//
25328	// - projects/project/global/networks/network
25329	// - global/networks/default
25330	Network string `json:"network,omitempty"`
25331
25332	// NetworkIP: An IPv4 internal IP address to assign to the instance for
25333	// this network interface. If not specified by the user, an unused
25334	// internal IP is assigned by the system.
25335	NetworkIP string `json:"networkIP,omitempty"`
25336
25337	// NicType: The type of vNIC to be used on this interface. This may be
25338	// gVNIC or VirtioNet.
25339	//
25340	// Possible values:
25341	//   "GVNIC"
25342	//   "UNSPECIFIED_NIC_TYPE"
25343	//   "VIRTIO_NET"
25344	NicType string `json:"nicType,omitempty"`
25345
25346	// Subnetwork: The URL of the Subnetwork resource for this instance. If
25347	// the network resource is in legacy mode, do not specify this field. If
25348	// the network is in auto subnet mode, specifying the subnetwork is
25349	// optional. If the network is in custom subnet mode, specifying the
25350	// subnetwork is required. If you specify this field, you can specify
25351	// the subnetwork as a full or partial URL. For example, the following
25352	// are all valid URLs:
25353	// -
25354	// https://www.googleapis.com/compute/v1/projects/project/regions/region/subnetworks/subnetwork
25355	//
25356	// - regions/region/subnetworks/subnetwork
25357	Subnetwork string `json:"subnetwork,omitempty"`
25358
25359	// ForceSendFields is a list of field names (e.g. "AccessConfigs") to
25360	// unconditionally include in API requests. By default, fields with
25361	// empty values are omitted from API requests. However, any non-pointer,
25362	// non-interface field appearing in ForceSendFields will be sent to the
25363	// server regardless of whether the field is empty or not. This may be
25364	// used to include empty fields in Patch requests.
25365	ForceSendFields []string `json:"-"`
25366
25367	// NullFields is a list of field names (e.g. "AccessConfigs") to include
25368	// in API requests with the JSON null value. By default, fields with
25369	// empty values are omitted from API requests. However, any field with
25370	// an empty value appearing in NullFields will be sent to the server as
25371	// null. It is an error if a field in this list has a non-empty value.
25372	// This may be used to include null fields in Patch requests.
25373	NullFields []string `json:"-"`
25374}
25375
25376func (s *NetworkInterface) MarshalJSON() ([]byte, error) {
25377	type NoMethod NetworkInterface
25378	raw := NoMethod(*s)
25379	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25380}
25381
25382// NetworkList: Contains a list of networks.
25383type NetworkList struct {
25384	// Id: [Output Only] Unique identifier for the resource; defined by the
25385	// server.
25386	Id string `json:"id,omitempty"`
25387
25388	// Items: A list of Network resources.
25389	Items []*Network `json:"items,omitempty"`
25390
25391	// Kind: [Output Only] Type of resource. Always compute#networkList for
25392	// lists of networks.
25393	Kind string `json:"kind,omitempty"`
25394
25395	// NextPageToken: [Output Only] This token allows you to get the next
25396	// page of results for list requests. If the number of results is larger
25397	// than maxResults, use the nextPageToken as a value for the query
25398	// parameter pageToken in the next list request. Subsequent list
25399	// requests will have their own nextPageToken to continue paging through
25400	// the results.
25401	NextPageToken string `json:"nextPageToken,omitempty"`
25402
25403	// SelfLink: [Output Only] Server-defined URL for this resource.
25404	SelfLink string `json:"selfLink,omitempty"`
25405
25406	// Warning: [Output Only] Informational warning message.
25407	Warning *NetworkListWarning `json:"warning,omitempty"`
25408
25409	// ServerResponse contains the HTTP response code and headers from the
25410	// server.
25411	googleapi.ServerResponse `json:"-"`
25412
25413	// ForceSendFields is a list of field names (e.g. "Id") to
25414	// unconditionally include in API requests. By default, fields with
25415	// empty values are omitted from API requests. However, any non-pointer,
25416	// non-interface field appearing in ForceSendFields will be sent to the
25417	// server regardless of whether the field is empty or not. This may be
25418	// used to include empty fields in Patch requests.
25419	ForceSendFields []string `json:"-"`
25420
25421	// NullFields is a list of field names (e.g. "Id") to include in API
25422	// requests with the JSON null value. By default, fields with empty
25423	// values are omitted from API requests. However, any field with an
25424	// empty value appearing in NullFields will be sent to the server as
25425	// null. It is an error if a field in this list has a non-empty value.
25426	// This may be used to include null fields in Patch requests.
25427	NullFields []string `json:"-"`
25428}
25429
25430func (s *NetworkList) MarshalJSON() ([]byte, error) {
25431	type NoMethod NetworkList
25432	raw := NoMethod(*s)
25433	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25434}
25435
25436// NetworkListWarning: [Output Only] Informational warning message.
25437type NetworkListWarning struct {
25438	// Code: [Output Only] A warning code, if applicable. For example,
25439	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
25440	// the response.
25441	//
25442	// Possible values:
25443	//   "CLEANUP_FAILED"
25444	//   "DEPRECATED_RESOURCE_USED"
25445	//   "DEPRECATED_TYPE_USED"
25446	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
25447	//   "EXPERIMENTAL_TYPE_USED"
25448	//   "EXTERNAL_API_WARNING"
25449	//   "FIELD_VALUE_OVERRIDEN"
25450	//   "INJECTED_KERNELS_DEPRECATED"
25451	//   "LARGE_DEPLOYMENT_WARNING"
25452	//   "MISSING_TYPE_DEPENDENCY"
25453	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
25454	//   "NEXT_HOP_CANNOT_IP_FORWARD"
25455	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
25456	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
25457	//   "NEXT_HOP_NOT_RUNNING"
25458	//   "NOT_CRITICAL_ERROR"
25459	//   "NO_RESULTS_ON_PAGE"
25460	//   "PARTIAL_SUCCESS"
25461	//   "REQUIRED_TOS_AGREEMENT"
25462	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
25463	//   "RESOURCE_NOT_DELETED"
25464	//   "SCHEMA_VALIDATION_IGNORED"
25465	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
25466	//   "UNDECLARED_PROPERTIES"
25467	//   "UNREACHABLE"
25468	Code string `json:"code,omitempty"`
25469
25470	// Data: [Output Only] Metadata about this warning in key: value format.
25471	// For example:
25472	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
25473	Data []*NetworkListWarningData `json:"data,omitempty"`
25474
25475	// Message: [Output Only] A human-readable description of the warning
25476	// code.
25477	Message string `json:"message,omitempty"`
25478
25479	// ForceSendFields is a list of field names (e.g. "Code") to
25480	// unconditionally include in API requests. By default, fields with
25481	// empty values are omitted from API requests. However, any non-pointer,
25482	// non-interface field appearing in ForceSendFields will be sent to the
25483	// server regardless of whether the field is empty or not. This may be
25484	// used to include empty fields in Patch requests.
25485	ForceSendFields []string `json:"-"`
25486
25487	// NullFields is a list of field names (e.g. "Code") to include in API
25488	// requests with the JSON null value. By default, fields with empty
25489	// values are omitted from API requests. However, any field with an
25490	// empty value appearing in NullFields will be sent to the server as
25491	// null. It is an error if a field in this list has a non-empty value.
25492	// This may be used to include null fields in Patch requests.
25493	NullFields []string `json:"-"`
25494}
25495
25496func (s *NetworkListWarning) MarshalJSON() ([]byte, error) {
25497	type NoMethod NetworkListWarning
25498	raw := NoMethod(*s)
25499	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25500}
25501
25502type NetworkListWarningData struct {
25503	// Key: [Output Only] A key that provides more detail on the warning
25504	// being returned. For example, for warnings where there are no results
25505	// in a list request for a particular zone, this key might be scope and
25506	// the key value might be the zone name. Other examples might be a key
25507	// indicating a deprecated resource and a suggested replacement, or a
25508	// warning about invalid network settings (for example, if an instance
25509	// attempts to perform IP forwarding but is not enabled for IP
25510	// forwarding).
25511	Key string `json:"key,omitempty"`
25512
25513	// Value: [Output Only] A warning data value corresponding to the key.
25514	Value string `json:"value,omitempty"`
25515
25516	// ForceSendFields is a list of field names (e.g. "Key") to
25517	// unconditionally include in API requests. By default, fields with
25518	// empty values are omitted from API requests. However, any non-pointer,
25519	// non-interface field appearing in ForceSendFields will be sent to the
25520	// server regardless of whether the field is empty or not. This may be
25521	// used to include empty fields in Patch requests.
25522	ForceSendFields []string `json:"-"`
25523
25524	// NullFields is a list of field names (e.g. "Key") to include in API
25525	// requests with the JSON null value. By default, fields with empty
25526	// values are omitted from API requests. However, any field with an
25527	// empty value appearing in NullFields will be sent to the server as
25528	// null. It is an error if a field in this list has a non-empty value.
25529	// This may be used to include null fields in Patch requests.
25530	NullFields []string `json:"-"`
25531}
25532
25533func (s *NetworkListWarningData) MarshalJSON() ([]byte, error) {
25534	type NoMethod NetworkListWarningData
25535	raw := NoMethod(*s)
25536	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25537}
25538
25539// NetworkPeering: A network peering attached to a network resource. The
25540// message includes the peering name, peer network, peering state, and a
25541// flag indicating whether Google Compute Engine should automatically
25542// create routes for the peering.
25543type NetworkPeering struct {
25544	// AutoCreateRoutes: This field will be deprecated soon. Use the
25545	// exchange_subnet_routes field instead. Indicates whether full mesh
25546	// connectivity is created and managed automatically between peered
25547	// networks. Currently this field should always be true since Google
25548	// Compute Engine will automatically create and manage subnetwork routes
25549	// between two networks when peering state is ACTIVE.
25550	AutoCreateRoutes bool `json:"autoCreateRoutes,omitempty"`
25551
25552	// ExchangeSubnetRoutes: Indicates whether full mesh connectivity is
25553	// created and managed automatically between peered networks. Currently
25554	// this field should always be true since Google Compute Engine will
25555	// automatically create and manage subnetwork routes between two
25556	// networks when peering state is ACTIVE.
25557	ExchangeSubnetRoutes bool `json:"exchangeSubnetRoutes,omitempty"`
25558
25559	// ExportCustomRoutes: Whether to export the custom routes to peer
25560	// network.
25561	ExportCustomRoutes bool `json:"exportCustomRoutes,omitempty"`
25562
25563	// ExportSubnetRoutesWithPublicIp: Whether subnet routes with public IP
25564	// range are exported. The default value is true, all subnet routes are
25565	// exported. The IPv4 special-use ranges
25566	// (https://en.wikipedia.org/wiki/IPv4#Special_addresses) are always
25567	// exported to peers and are not controlled by this field.
25568	ExportSubnetRoutesWithPublicIp bool `json:"exportSubnetRoutesWithPublicIp,omitempty"`
25569
25570	// ImportCustomRoutes: Whether to import the custom routes from peer
25571	// network.
25572	ImportCustomRoutes bool `json:"importCustomRoutes,omitempty"`
25573
25574	// ImportSubnetRoutesWithPublicIp: Whether subnet routes with public IP
25575	// range are imported. The default value is false. The IPv4 special-use
25576	// ranges (https://en.wikipedia.org/wiki/IPv4#Special_addresses) are
25577	// always imported from peers and are not controlled by this field.
25578	ImportSubnetRoutesWithPublicIp bool `json:"importSubnetRoutesWithPublicIp,omitempty"`
25579
25580	// Name: Name of this peering. Provided by the client when the peering
25581	// is created. The name must comply with RFC1035. Specifically, the name
25582	// must be 1-63 characters long and match regular expression
25583	// `[a-z]([-a-z0-9]*[a-z0-9])?`. The first character must be a lowercase
25584	// letter, and all the following characters must be a dash, lowercase
25585	// letter, or digit, except the last character, which cannot be a dash.
25586	Name string `json:"name,omitempty"`
25587
25588	// Network: The URL of the peer network. It can be either full URL or
25589	// partial URL. The peer network may belong to a different project. If
25590	// the partial URL does not contain project, it is assumed that the peer
25591	// network is in the same project as the current network.
25592	Network string `json:"network,omitempty"`
25593
25594	// PeerMtu: Maximum Transmission Unit in bytes.
25595	PeerMtu int64 `json:"peerMtu,omitempty"`
25596
25597	// State: [Output Only] State for the peering, either `ACTIVE` or
25598	// `INACTIVE`. The peering is `ACTIVE` when there's a matching
25599	// configuration in the peer network.
25600	//
25601	// Possible values:
25602	//   "ACTIVE"
25603	//   "INACTIVE"
25604	State string `json:"state,omitempty"`
25605
25606	// StateDetails: [Output Only] Details about the current state of the
25607	// peering.
25608	StateDetails string `json:"stateDetails,omitempty"`
25609
25610	// ForceSendFields is a list of field names (e.g. "AutoCreateRoutes") to
25611	// unconditionally include in API requests. By default, fields with
25612	// empty values are omitted from API requests. However, any non-pointer,
25613	// non-interface field appearing in ForceSendFields will be sent to the
25614	// server regardless of whether the field is empty or not. This may be
25615	// used to include empty fields in Patch requests.
25616	ForceSendFields []string `json:"-"`
25617
25618	// NullFields is a list of field names (e.g. "AutoCreateRoutes") to
25619	// include in API requests with the JSON null value. By default, fields
25620	// with empty values are omitted from API requests. However, any field
25621	// with an empty value appearing in NullFields will be sent to the
25622	// server as null. It is an error if a field in this list has a
25623	// non-empty value. This may be used to include null fields in Patch
25624	// requests.
25625	NullFields []string `json:"-"`
25626}
25627
25628func (s *NetworkPeering) MarshalJSON() ([]byte, error) {
25629	type NoMethod NetworkPeering
25630	raw := NoMethod(*s)
25631	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25632}
25633
25634type NetworkPerformanceConfig struct {
25635	// Possible values:
25636	//   "DEFAULT"
25637	//   "TIER_1"
25638	TotalEgressBandwidthTier string `json:"totalEgressBandwidthTier,omitempty"`
25639
25640	// ForceSendFields is a list of field names (e.g.
25641	// "TotalEgressBandwidthTier") to unconditionally include in API
25642	// requests. By default, fields with empty values are omitted from API
25643	// requests. However, any non-pointer, non-interface field appearing in
25644	// ForceSendFields will be sent to the server regardless of whether the
25645	// field is empty or not. This may be used to include empty fields in
25646	// Patch requests.
25647	ForceSendFields []string `json:"-"`
25648
25649	// NullFields is a list of field names (e.g. "TotalEgressBandwidthTier")
25650	// to include in API requests with the JSON null value. By default,
25651	// fields with empty values are omitted from API requests. However, any
25652	// field with an empty value appearing in NullFields will be sent to the
25653	// server as null. It is an error if a field in this list has a
25654	// non-empty value. This may be used to include null fields in Patch
25655	// requests.
25656	NullFields []string `json:"-"`
25657}
25658
25659func (s *NetworkPerformanceConfig) MarshalJSON() ([]byte, error) {
25660	type NoMethod NetworkPerformanceConfig
25661	raw := NoMethod(*s)
25662	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25663}
25664
25665// NetworkRoutingConfig: A routing configuration attached to a network
25666// resource. The message includes the list of routers associated with
25667// the network, and a flag indicating the type of routing behavior to
25668// enforce network-wide.
25669type NetworkRoutingConfig struct {
25670	// RoutingMode: The network-wide routing mode to use. If set to
25671	// REGIONAL, this network's Cloud Routers will only advertise routes
25672	// with subnets of this network in the same region as the router. If set
25673	// to GLOBAL, this network's Cloud Routers will advertise routes with
25674	// all subnets of this network, across regions.
25675	//
25676	// Possible values:
25677	//   "GLOBAL"
25678	//   "REGIONAL"
25679	RoutingMode string `json:"routingMode,omitempty"`
25680
25681	// ForceSendFields is a list of field names (e.g. "RoutingMode") to
25682	// unconditionally include in API requests. By default, fields with
25683	// empty values are omitted from API requests. However, any non-pointer,
25684	// non-interface field appearing in ForceSendFields will be sent to the
25685	// server regardless of whether the field is empty or not. This may be
25686	// used to include empty fields in Patch requests.
25687	ForceSendFields []string `json:"-"`
25688
25689	// NullFields is a list of field names (e.g. "RoutingMode") to include
25690	// in API requests with the JSON null value. By default, fields with
25691	// empty values are omitted from API requests. However, any field with
25692	// an empty value appearing in NullFields will be sent to the server as
25693	// null. It is an error if a field in this list has a non-empty value.
25694	// This may be used to include null fields in Patch requests.
25695	NullFields []string `json:"-"`
25696}
25697
25698func (s *NetworkRoutingConfig) MarshalJSON() ([]byte, error) {
25699	type NoMethod NetworkRoutingConfig
25700	raw := NoMethod(*s)
25701	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25702}
25703
25704type NetworksAddPeeringRequest struct {
25705	// AutoCreateRoutes: This field will be deprecated soon. Use
25706	// exchange_subnet_routes in network_peering instead. Indicates whether
25707	// full mesh connectivity is created and managed automatically between
25708	// peered networks. Currently this field should always be true since
25709	// Google Compute Engine will automatically create and manage subnetwork
25710	// routes between two networks when peering state is ACTIVE.
25711	AutoCreateRoutes bool `json:"autoCreateRoutes,omitempty"`
25712
25713	// Name: Name of the peering, which should conform to RFC1035.
25714	Name string `json:"name,omitempty"`
25715
25716	// NetworkPeering: Network peering parameters. In order to specify route
25717	// policies for peering using import and export custom routes, you must
25718	// specify all peering related parameters (name, peer network,
25719	// exchange_subnet_routes) in the network_peering field. The
25720	// corresponding fields in NetworksAddPeeringRequest will be deprecated
25721	// soon.
25722	NetworkPeering *NetworkPeering `json:"networkPeering,omitempty"`
25723
25724	// PeerNetwork: URL of the peer network. It can be either full URL or
25725	// partial URL. The peer network may belong to a different project. If
25726	// the partial URL does not contain project, it is assumed that the peer
25727	// network is in the same project as the current network.
25728	PeerNetwork string `json:"peerNetwork,omitempty"`
25729
25730	// ForceSendFields is a list of field names (e.g. "AutoCreateRoutes") to
25731	// unconditionally include in API requests. By default, fields with
25732	// empty values are omitted from API requests. However, any non-pointer,
25733	// non-interface field appearing in ForceSendFields will be sent to the
25734	// server regardless of whether the field is empty or not. This may be
25735	// used to include empty fields in Patch requests.
25736	ForceSendFields []string `json:"-"`
25737
25738	// NullFields is a list of field names (e.g. "AutoCreateRoutes") to
25739	// include in API requests with the JSON null value. By default, fields
25740	// with empty values are omitted from API requests. However, any field
25741	// with an empty value appearing in NullFields will be sent to the
25742	// server as null. It is an error if a field in this list has a
25743	// non-empty value. This may be used to include null fields in Patch
25744	// requests.
25745	NullFields []string `json:"-"`
25746}
25747
25748func (s *NetworksAddPeeringRequest) MarshalJSON() ([]byte, error) {
25749	type NoMethod NetworksAddPeeringRequest
25750	raw := NoMethod(*s)
25751	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25752}
25753
25754type NetworksGetEffectiveFirewallsResponse struct {
25755	// FirewallPolicys: Effective firewalls from firewall policy.
25756	FirewallPolicys []*NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy `json:"firewallPolicys,omitempty"`
25757
25758	// Firewalls: Effective firewalls on the network.
25759	Firewalls []*Firewall `json:"firewalls,omitempty"`
25760
25761	// OrganizationFirewalls: Effective firewalls from organization
25762	// policies.
25763	OrganizationFirewalls []*NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy `json:"organizationFirewalls,omitempty"`
25764
25765	// ServerResponse contains the HTTP response code and headers from the
25766	// server.
25767	googleapi.ServerResponse `json:"-"`
25768
25769	// ForceSendFields is a list of field names (e.g. "FirewallPolicys") to
25770	// unconditionally include in API requests. By default, fields with
25771	// empty values are omitted from API requests. However, any non-pointer,
25772	// non-interface field appearing in ForceSendFields will be sent to the
25773	// server regardless of whether the field is empty or not. This may be
25774	// used to include empty fields in Patch requests.
25775	ForceSendFields []string `json:"-"`
25776
25777	// NullFields is a list of field names (e.g. "FirewallPolicys") to
25778	// include in API requests with the JSON null value. By default, fields
25779	// with empty values are omitted from API requests. However, any field
25780	// with an empty value appearing in NullFields will be sent to the
25781	// server as null. It is an error if a field in this list has a
25782	// non-empty value. This may be used to include null fields in Patch
25783	// requests.
25784	NullFields []string `json:"-"`
25785}
25786
25787func (s *NetworksGetEffectiveFirewallsResponse) MarshalJSON() ([]byte, error) {
25788	type NoMethod NetworksGetEffectiveFirewallsResponse
25789	raw := NoMethod(*s)
25790	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25791}
25792
25793type NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy struct {
25794	// DisplayName: [Output Only] Deprecated, please use short name instead.
25795	// The display name of the firewall policy.
25796	DisplayName string `json:"displayName,omitempty"`
25797
25798	// Name: [Output Only] The name of the firewall policy.
25799	Name string `json:"name,omitempty"`
25800
25801	// Rules: The rules that apply to the network.
25802	Rules []*FirewallPolicyRule `json:"rules,omitempty"`
25803
25804	// ShortName: [Output Only] The short name of the firewall policy.
25805	ShortName string `json:"shortName,omitempty"`
25806
25807	// Type: [Output Only] The type of the firewall policy.
25808	//
25809	// Possible values:
25810	//   "HIERARCHY"
25811	//   "NETWORK"
25812	//   "UNSPECIFIED"
25813	Type string `json:"type,omitempty"`
25814
25815	// ForceSendFields is a list of field names (e.g. "DisplayName") to
25816	// unconditionally include in API requests. By default, fields with
25817	// empty values are omitted from API requests. However, any non-pointer,
25818	// non-interface field appearing in ForceSendFields will be sent to the
25819	// server regardless of whether the field is empty or not. This may be
25820	// used to include empty fields in Patch requests.
25821	ForceSendFields []string `json:"-"`
25822
25823	// NullFields is a list of field names (e.g. "DisplayName") to include
25824	// in API requests with the JSON null value. By default, fields with
25825	// empty values are omitted from API requests. However, any field with
25826	// an empty value appearing in NullFields will be sent to the server as
25827	// null. It is an error if a field in this list has a non-empty value.
25828	// This may be used to include null fields in Patch requests.
25829	NullFields []string `json:"-"`
25830}
25831
25832func (s *NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy) MarshalJSON() ([]byte, error) {
25833	type NoMethod NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy
25834	raw := NoMethod(*s)
25835	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25836}
25837
25838// NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy: A
25839// pruned SecurityPolicy containing ID and any applicable firewall
25840// rules.
25841type NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy struct {
25842	// Id: [Output Only] The unique identifier for the security policy. This
25843	// identifier is defined by the server.
25844	Id uint64 `json:"id,omitempty,string"`
25845
25846	// Rules: The rules that apply to the network.
25847	Rules []*SecurityPolicyRule `json:"rules,omitempty"`
25848
25849	// ForceSendFields is a list of field names (e.g. "Id") to
25850	// unconditionally include in API requests. By default, fields with
25851	// empty values are omitted from API requests. However, any non-pointer,
25852	// non-interface field appearing in ForceSendFields will be sent to the
25853	// server regardless of whether the field is empty or not. This may be
25854	// used to include empty fields in Patch requests.
25855	ForceSendFields []string `json:"-"`
25856
25857	// NullFields is a list of field names (e.g. "Id") to include in API
25858	// requests with the JSON null value. By default, fields with empty
25859	// values are omitted from API requests. However, any field with an
25860	// empty value appearing in NullFields will be sent to the server as
25861	// null. It is an error if a field in this list has a non-empty value.
25862	// This may be used to include null fields in Patch requests.
25863	NullFields []string `json:"-"`
25864}
25865
25866func (s *NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy) MarshalJSON() ([]byte, error) {
25867	type NoMethod NetworksGetEffectiveFirewallsResponseOrganizationFirewallPolicy
25868	raw := NoMethod(*s)
25869	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25870}
25871
25872type NetworksRemovePeeringRequest struct {
25873	// Name: Name of the peering, which should conform to RFC1035.
25874	Name string `json:"name,omitempty"`
25875
25876	// ForceSendFields is a list of field names (e.g. "Name") to
25877	// unconditionally include in API requests. By default, fields with
25878	// empty values are omitted from API requests. However, any non-pointer,
25879	// non-interface field appearing in ForceSendFields will be sent to the
25880	// server regardless of whether the field is empty or not. This may be
25881	// used to include empty fields in Patch requests.
25882	ForceSendFields []string `json:"-"`
25883
25884	// NullFields is a list of field names (e.g. "Name") to include in API
25885	// requests with the JSON null value. By default, fields with empty
25886	// values are omitted from API requests. However, any field with an
25887	// empty value appearing in NullFields will be sent to the server as
25888	// null. It is an error if a field in this list has a non-empty value.
25889	// This may be used to include null fields in Patch requests.
25890	NullFields []string `json:"-"`
25891}
25892
25893func (s *NetworksRemovePeeringRequest) MarshalJSON() ([]byte, error) {
25894	type NoMethod NetworksRemovePeeringRequest
25895	raw := NoMethod(*s)
25896	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25897}
25898
25899type NetworksUpdatePeeringRequest struct {
25900	NetworkPeering *NetworkPeering `json:"networkPeering,omitempty"`
25901
25902	// ForceSendFields is a list of field names (e.g. "NetworkPeering") to
25903	// unconditionally include in API requests. By default, fields with
25904	// empty values are omitted from API requests. However, any non-pointer,
25905	// non-interface field appearing in ForceSendFields will be sent to the
25906	// server regardless of whether the field is empty or not. This may be
25907	// used to include empty fields in Patch requests.
25908	ForceSendFields []string `json:"-"`
25909
25910	// NullFields is a list of field names (e.g. "NetworkPeering") to
25911	// include in API requests with the JSON null value. By default, fields
25912	// with empty values are omitted from API requests. However, any field
25913	// with an empty value appearing in NullFields will be sent to the
25914	// server as null. It is an error if a field in this list has a
25915	// non-empty value. This may be used to include null fields in Patch
25916	// requests.
25917	NullFields []string `json:"-"`
25918}
25919
25920func (s *NetworksUpdatePeeringRequest) MarshalJSON() ([]byte, error) {
25921	type NoMethod NetworksUpdatePeeringRequest
25922	raw := NoMethod(*s)
25923	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25924}
25925
25926// NodeGroup: Represent a sole-tenant Node Group resource.
25927//
25928// A sole-tenant node is a physical server that is dedicated to hosting
25929// VM instances only for your specific project. Use sole-tenant nodes to
25930// keep your instances physically separated from instances in other
25931// projects, or to group your instances together on the same host
25932// hardware. For more information, read Sole-tenant nodes. (==
25933// resource_for {$api_version}.nodeGroups ==)
25934type NodeGroup struct {
25935	// AutoscalingPolicy: Specifies how autoscaling should behave.
25936	AutoscalingPolicy *NodeGroupAutoscalingPolicy `json:"autoscalingPolicy,omitempty"`
25937
25938	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
25939	// format.
25940	CreationTimestamp string `json:"creationTimestamp,omitempty"`
25941
25942	// Description: An optional description of this resource. Provide this
25943	// property when you create the resource.
25944	Description string `json:"description,omitempty"`
25945
25946	Fingerprint string `json:"fingerprint,omitempty"`
25947
25948	// Id: [Output Only] The unique identifier for the resource. This
25949	// identifier is defined by the server.
25950	Id uint64 `json:"id,omitempty,string"`
25951
25952	// Kind: [Output Only] The type of the resource. Always
25953	// compute#nodeGroup for node group.
25954	Kind string `json:"kind,omitempty"`
25955
25956	// LocationHint: An opaque location hint used to place the Node close to
25957	// other resources. This field is for use by internal tools that use the
25958	// public API. The location hint here on the NodeGroup overrides any
25959	// location_hint present in the NodeTemplate.
25960	LocationHint string `json:"locationHint,omitempty"`
25961
25962	// MaintenancePolicy: Specifies how to handle instances when a node in
25963	// the group undergoes maintenance. Set to one of: DEFAULT,
25964	// RESTART_IN_PLACE, or MIGRATE_WITHIN_NODE_GROUP. The default value is
25965	// DEFAULT. For more information, see  Maintenance policies.
25966	//
25967	// Possible values:
25968	//   "DEFAULT"
25969	//   "MAINTENANCE_POLICY_UNSPECIFIED"
25970	//   "MIGRATE_WITHIN_NODE_GROUP"
25971	//   "RESTART_IN_PLACE"
25972	MaintenancePolicy string `json:"maintenancePolicy,omitempty"`
25973
25974	MaintenanceWindow *NodeGroupMaintenanceWindow `json:"maintenanceWindow,omitempty"`
25975
25976	// Name: The name of the resource, provided by the client when initially
25977	// creating the resource. The resource name must be 1-63 characters
25978	// long, and comply with RFC1035. Specifically, the name must be 1-63
25979	// characters long and match the regular expression
25980	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
25981	// a lowercase letter, and all following characters must be a dash,
25982	// lowercase letter, or digit, except the last character, which cannot
25983	// be a dash.
25984	Name string `json:"name,omitempty"`
25985
25986	// NodeTemplate: URL of the node template to create the node group from.
25987	NodeTemplate string `json:"nodeTemplate,omitempty"`
25988
25989	// SelfLink: [Output Only] Server-defined URL for the resource.
25990	SelfLink string `json:"selfLink,omitempty"`
25991
25992	// Size: [Output Only] The total number of nodes in the node group.
25993	Size int64 `json:"size,omitempty"`
25994
25995	// Possible values:
25996	//   "CREATING"
25997	//   "DELETING"
25998	//   "INVALID"
25999	//   "READY"
26000	Status string `json:"status,omitempty"`
26001
26002	// Zone: [Output Only] The name of the zone where the node group
26003	// resides, such as us-central1-a.
26004	Zone string `json:"zone,omitempty"`
26005
26006	// ServerResponse contains the HTTP response code and headers from the
26007	// server.
26008	googleapi.ServerResponse `json:"-"`
26009
26010	// ForceSendFields is a list of field names (e.g. "AutoscalingPolicy")
26011	// to unconditionally include in API requests. By default, fields with
26012	// empty values are omitted from API requests. However, any non-pointer,
26013	// non-interface field appearing in ForceSendFields will be sent to the
26014	// server regardless of whether the field is empty or not. This may be
26015	// used to include empty fields in Patch requests.
26016	ForceSendFields []string `json:"-"`
26017
26018	// NullFields is a list of field names (e.g. "AutoscalingPolicy") to
26019	// include in API requests with the JSON null value. By default, fields
26020	// with empty values are omitted from API requests. However, any field
26021	// with an empty value appearing in NullFields will be sent to the
26022	// server as null. It is an error if a field in this list has a
26023	// non-empty value. This may be used to include null fields in Patch
26024	// requests.
26025	NullFields []string `json:"-"`
26026}
26027
26028func (s *NodeGroup) MarshalJSON() ([]byte, error) {
26029	type NoMethod NodeGroup
26030	raw := NoMethod(*s)
26031	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26032}
26033
26034type NodeGroupAggregatedList struct {
26035	// Id: [Output Only] Unique identifier for the resource; defined by the
26036	// server.
26037	Id string `json:"id,omitempty"`
26038
26039	// Items: A list of NodeGroupsScopedList resources.
26040	Items map[string]NodeGroupsScopedList `json:"items,omitempty"`
26041
26042	// Kind: [Output Only] Type of resource.Always
26043	// compute#nodeGroupAggregatedList for aggregated lists of node groups.
26044	Kind string `json:"kind,omitempty"`
26045
26046	// NextPageToken: [Output Only] This token allows you to get the next
26047	// page of results for list requests. If the number of results is larger
26048	// than maxResults, use the nextPageToken as a value for the query
26049	// parameter pageToken in the next list request. Subsequent list
26050	// requests will have their own nextPageToken to continue paging through
26051	// the results.
26052	NextPageToken string `json:"nextPageToken,omitempty"`
26053
26054	// SelfLink: [Output Only] Server-defined URL for this resource.
26055	SelfLink string `json:"selfLink,omitempty"`
26056
26057	// Unreachables: [Output Only] Unreachable resources.
26058	Unreachables []string `json:"unreachables,omitempty"`
26059
26060	// Warning: [Output Only] Informational warning message.
26061	Warning *NodeGroupAggregatedListWarning `json:"warning,omitempty"`
26062
26063	// ServerResponse contains the HTTP response code and headers from the
26064	// server.
26065	googleapi.ServerResponse `json:"-"`
26066
26067	// ForceSendFields is a list of field names (e.g. "Id") to
26068	// unconditionally include in API requests. By default, fields with
26069	// empty values are omitted from API requests. However, any non-pointer,
26070	// non-interface field appearing in ForceSendFields will be sent to the
26071	// server regardless of whether the field is empty or not. This may be
26072	// used to include empty fields in Patch requests.
26073	ForceSendFields []string `json:"-"`
26074
26075	// NullFields is a list of field names (e.g. "Id") to include in API
26076	// requests with the JSON null value. By default, fields with empty
26077	// values are omitted from API requests. However, any field with an
26078	// empty value appearing in NullFields will be sent to the server as
26079	// null. It is an error if a field in this list has a non-empty value.
26080	// This may be used to include null fields in Patch requests.
26081	NullFields []string `json:"-"`
26082}
26083
26084func (s *NodeGroupAggregatedList) MarshalJSON() ([]byte, error) {
26085	type NoMethod NodeGroupAggregatedList
26086	raw := NoMethod(*s)
26087	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26088}
26089
26090// NodeGroupAggregatedListWarning: [Output Only] Informational warning
26091// message.
26092type NodeGroupAggregatedListWarning struct {
26093	// Code: [Output Only] A warning code, if applicable. For example,
26094	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
26095	// the response.
26096	//
26097	// Possible values:
26098	//   "CLEANUP_FAILED"
26099	//   "DEPRECATED_RESOURCE_USED"
26100	//   "DEPRECATED_TYPE_USED"
26101	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
26102	//   "EXPERIMENTAL_TYPE_USED"
26103	//   "EXTERNAL_API_WARNING"
26104	//   "FIELD_VALUE_OVERRIDEN"
26105	//   "INJECTED_KERNELS_DEPRECATED"
26106	//   "LARGE_DEPLOYMENT_WARNING"
26107	//   "MISSING_TYPE_DEPENDENCY"
26108	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
26109	//   "NEXT_HOP_CANNOT_IP_FORWARD"
26110	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
26111	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
26112	//   "NEXT_HOP_NOT_RUNNING"
26113	//   "NOT_CRITICAL_ERROR"
26114	//   "NO_RESULTS_ON_PAGE"
26115	//   "PARTIAL_SUCCESS"
26116	//   "REQUIRED_TOS_AGREEMENT"
26117	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
26118	//   "RESOURCE_NOT_DELETED"
26119	//   "SCHEMA_VALIDATION_IGNORED"
26120	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
26121	//   "UNDECLARED_PROPERTIES"
26122	//   "UNREACHABLE"
26123	Code string `json:"code,omitempty"`
26124
26125	// Data: [Output Only] Metadata about this warning in key: value format.
26126	// For example:
26127	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
26128	Data []*NodeGroupAggregatedListWarningData `json:"data,omitempty"`
26129
26130	// Message: [Output Only] A human-readable description of the warning
26131	// code.
26132	Message string `json:"message,omitempty"`
26133
26134	// ForceSendFields is a list of field names (e.g. "Code") to
26135	// unconditionally include in API requests. By default, fields with
26136	// empty values are omitted from API requests. However, any non-pointer,
26137	// non-interface field appearing in ForceSendFields will be sent to the
26138	// server regardless of whether the field is empty or not. This may be
26139	// used to include empty fields in Patch requests.
26140	ForceSendFields []string `json:"-"`
26141
26142	// NullFields is a list of field names (e.g. "Code") to include in API
26143	// requests with the JSON null value. By default, fields with empty
26144	// values are omitted from API requests. However, any field with an
26145	// empty value appearing in NullFields will be sent to the server as
26146	// null. It is an error if a field in this list has a non-empty value.
26147	// This may be used to include null fields in Patch requests.
26148	NullFields []string `json:"-"`
26149}
26150
26151func (s *NodeGroupAggregatedListWarning) MarshalJSON() ([]byte, error) {
26152	type NoMethod NodeGroupAggregatedListWarning
26153	raw := NoMethod(*s)
26154	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26155}
26156
26157type NodeGroupAggregatedListWarningData struct {
26158	// Key: [Output Only] A key that provides more detail on the warning
26159	// being returned. For example, for warnings where there are no results
26160	// in a list request for a particular zone, this key might be scope and
26161	// the key value might be the zone name. Other examples might be a key
26162	// indicating a deprecated resource and a suggested replacement, or a
26163	// warning about invalid network settings (for example, if an instance
26164	// attempts to perform IP forwarding but is not enabled for IP
26165	// forwarding).
26166	Key string `json:"key,omitempty"`
26167
26168	// Value: [Output Only] A warning data value corresponding to the key.
26169	Value string `json:"value,omitempty"`
26170
26171	// ForceSendFields is a list of field names (e.g. "Key") to
26172	// unconditionally include in API requests. By default, fields with
26173	// empty values are omitted from API requests. However, any non-pointer,
26174	// non-interface field appearing in ForceSendFields will be sent to the
26175	// server regardless of whether the field is empty or not. This may be
26176	// used to include empty fields in Patch requests.
26177	ForceSendFields []string `json:"-"`
26178
26179	// NullFields is a list of field names (e.g. "Key") to include in API
26180	// requests with the JSON null value. By default, fields with empty
26181	// values are omitted from API requests. However, any field with an
26182	// empty value appearing in NullFields will be sent to the server as
26183	// null. It is an error if a field in this list has a non-empty value.
26184	// This may be used to include null fields in Patch requests.
26185	NullFields []string `json:"-"`
26186}
26187
26188func (s *NodeGroupAggregatedListWarningData) MarshalJSON() ([]byte, error) {
26189	type NoMethod NodeGroupAggregatedListWarningData
26190	raw := NoMethod(*s)
26191	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26192}
26193
26194type NodeGroupAutoscalingPolicy struct {
26195	// MaxNodes: The maximum number of nodes that the group should have.
26196	// Must be set if autoscaling is enabled. Maximum value allowed is 100.
26197	MaxNodes int64 `json:"maxNodes,omitempty"`
26198
26199	// MinNodes: The minimum number of nodes that the group should have.
26200	MinNodes int64 `json:"minNodes,omitempty"`
26201
26202	// Mode: The autoscaling mode. Set to one of: ON, OFF, or
26203	// ONLY_SCALE_OUT. For more information, see  Autoscaler modes.
26204	//
26205	// Possible values:
26206	//   "MODE_UNSPECIFIED"
26207	//   "OFF"
26208	//   "ON"
26209	//   "ONLY_SCALE_OUT"
26210	Mode string `json:"mode,omitempty"`
26211
26212	// ForceSendFields is a list of field names (e.g. "MaxNodes") to
26213	// unconditionally include in API requests. By default, fields with
26214	// empty values are omitted from API requests. However, any non-pointer,
26215	// non-interface field appearing in ForceSendFields will be sent to the
26216	// server regardless of whether the field is empty or not. This may be
26217	// used to include empty fields in Patch requests.
26218	ForceSendFields []string `json:"-"`
26219
26220	// NullFields is a list of field names (e.g. "MaxNodes") to include in
26221	// API requests with the JSON null value. By default, fields with empty
26222	// values are omitted from API requests. However, any field with an
26223	// empty value appearing in NullFields will be sent to the server as
26224	// null. It is an error if a field in this list has a non-empty value.
26225	// This may be used to include null fields in Patch requests.
26226	NullFields []string `json:"-"`
26227}
26228
26229func (s *NodeGroupAutoscalingPolicy) MarshalJSON() ([]byte, error) {
26230	type NoMethod NodeGroupAutoscalingPolicy
26231	raw := NoMethod(*s)
26232	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26233}
26234
26235// NodeGroupList: Contains a list of nodeGroups.
26236type NodeGroupList struct {
26237	// Id: [Output Only] Unique identifier for the resource; defined by the
26238	// server.
26239	Id string `json:"id,omitempty"`
26240
26241	// Items: A list of NodeGroup resources.
26242	Items []*NodeGroup `json:"items,omitempty"`
26243
26244	// Kind: [Output Only] Type of resource.Always compute#nodeGroupList for
26245	// lists of node groups.
26246	Kind string `json:"kind,omitempty"`
26247
26248	// NextPageToken: [Output Only] This token allows you to get the next
26249	// page of results for list requests. If the number of results is larger
26250	// than maxResults, use the nextPageToken as a value for the query
26251	// parameter pageToken in the next list request. Subsequent list
26252	// requests will have their own nextPageToken to continue paging through
26253	// the results.
26254	NextPageToken string `json:"nextPageToken,omitempty"`
26255
26256	// SelfLink: [Output Only] Server-defined URL for this resource.
26257	SelfLink string `json:"selfLink,omitempty"`
26258
26259	// Warning: [Output Only] Informational warning message.
26260	Warning *NodeGroupListWarning `json:"warning,omitempty"`
26261
26262	// ServerResponse contains the HTTP response code and headers from the
26263	// server.
26264	googleapi.ServerResponse `json:"-"`
26265
26266	// ForceSendFields is a list of field names (e.g. "Id") to
26267	// unconditionally include in API requests. By default, fields with
26268	// empty values are omitted from API requests. However, any non-pointer,
26269	// non-interface field appearing in ForceSendFields will be sent to the
26270	// server regardless of whether the field is empty or not. This may be
26271	// used to include empty fields in Patch requests.
26272	ForceSendFields []string `json:"-"`
26273
26274	// NullFields is a list of field names (e.g. "Id") to include in API
26275	// requests with the JSON null value. By default, fields with empty
26276	// values are omitted from API requests. However, any field with an
26277	// empty value appearing in NullFields will be sent to the server as
26278	// null. It is an error if a field in this list has a non-empty value.
26279	// This may be used to include null fields in Patch requests.
26280	NullFields []string `json:"-"`
26281}
26282
26283func (s *NodeGroupList) MarshalJSON() ([]byte, error) {
26284	type NoMethod NodeGroupList
26285	raw := NoMethod(*s)
26286	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26287}
26288
26289// NodeGroupListWarning: [Output Only] Informational warning message.
26290type NodeGroupListWarning struct {
26291	// Code: [Output Only] A warning code, if applicable. For example,
26292	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
26293	// the response.
26294	//
26295	// Possible values:
26296	//   "CLEANUP_FAILED"
26297	//   "DEPRECATED_RESOURCE_USED"
26298	//   "DEPRECATED_TYPE_USED"
26299	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
26300	//   "EXPERIMENTAL_TYPE_USED"
26301	//   "EXTERNAL_API_WARNING"
26302	//   "FIELD_VALUE_OVERRIDEN"
26303	//   "INJECTED_KERNELS_DEPRECATED"
26304	//   "LARGE_DEPLOYMENT_WARNING"
26305	//   "MISSING_TYPE_DEPENDENCY"
26306	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
26307	//   "NEXT_HOP_CANNOT_IP_FORWARD"
26308	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
26309	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
26310	//   "NEXT_HOP_NOT_RUNNING"
26311	//   "NOT_CRITICAL_ERROR"
26312	//   "NO_RESULTS_ON_PAGE"
26313	//   "PARTIAL_SUCCESS"
26314	//   "REQUIRED_TOS_AGREEMENT"
26315	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
26316	//   "RESOURCE_NOT_DELETED"
26317	//   "SCHEMA_VALIDATION_IGNORED"
26318	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
26319	//   "UNDECLARED_PROPERTIES"
26320	//   "UNREACHABLE"
26321	Code string `json:"code,omitempty"`
26322
26323	// Data: [Output Only] Metadata about this warning in key: value format.
26324	// For example:
26325	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
26326	Data []*NodeGroupListWarningData `json:"data,omitempty"`
26327
26328	// Message: [Output Only] A human-readable description of the warning
26329	// code.
26330	Message string `json:"message,omitempty"`
26331
26332	// ForceSendFields is a list of field names (e.g. "Code") to
26333	// unconditionally include in API requests. By default, fields with
26334	// empty values are omitted from API requests. However, any non-pointer,
26335	// non-interface field appearing in ForceSendFields will be sent to the
26336	// server regardless of whether the field is empty or not. This may be
26337	// used to include empty fields in Patch requests.
26338	ForceSendFields []string `json:"-"`
26339
26340	// NullFields is a list of field names (e.g. "Code") to include in API
26341	// requests with the JSON null value. By default, fields with empty
26342	// values are omitted from API requests. However, any field with an
26343	// empty value appearing in NullFields will be sent to the server as
26344	// null. It is an error if a field in this list has a non-empty value.
26345	// This may be used to include null fields in Patch requests.
26346	NullFields []string `json:"-"`
26347}
26348
26349func (s *NodeGroupListWarning) MarshalJSON() ([]byte, error) {
26350	type NoMethod NodeGroupListWarning
26351	raw := NoMethod(*s)
26352	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26353}
26354
26355type NodeGroupListWarningData struct {
26356	// Key: [Output Only] A key that provides more detail on the warning
26357	// being returned. For example, for warnings where there are no results
26358	// in a list request for a particular zone, this key might be scope and
26359	// the key value might be the zone name. Other examples might be a key
26360	// indicating a deprecated resource and a suggested replacement, or a
26361	// warning about invalid network settings (for example, if an instance
26362	// attempts to perform IP forwarding but is not enabled for IP
26363	// forwarding).
26364	Key string `json:"key,omitempty"`
26365
26366	// Value: [Output Only] A warning data value corresponding to the key.
26367	Value string `json:"value,omitempty"`
26368
26369	// ForceSendFields is a list of field names (e.g. "Key") to
26370	// unconditionally include in API requests. By default, fields with
26371	// empty values are omitted from API requests. However, any non-pointer,
26372	// non-interface field appearing in ForceSendFields will be sent to the
26373	// server regardless of whether the field is empty or not. This may be
26374	// used to include empty fields in Patch requests.
26375	ForceSendFields []string `json:"-"`
26376
26377	// NullFields is a list of field names (e.g. "Key") to include in API
26378	// requests with the JSON null value. By default, fields with empty
26379	// values are omitted from API requests. However, any field with an
26380	// empty value appearing in NullFields will be sent to the server as
26381	// null. It is an error if a field in this list has a non-empty value.
26382	// This may be used to include null fields in Patch requests.
26383	NullFields []string `json:"-"`
26384}
26385
26386func (s *NodeGroupListWarningData) MarshalJSON() ([]byte, error) {
26387	type NoMethod NodeGroupListWarningData
26388	raw := NoMethod(*s)
26389	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26390}
26391
26392// NodeGroupMaintenanceWindow: Time window specified for daily
26393// maintenance operations. GCE's internal maintenance will be performed
26394// within this window.
26395type NodeGroupMaintenanceWindow struct {
26396	// MaintenanceDuration: [Output only] A predetermined duration for the
26397	// window, automatically chosen to be the smallest possible in the given
26398	// scenario.
26399	MaintenanceDuration *Duration `json:"maintenanceDuration,omitempty"`
26400
26401	// StartTime: Start time of the window. This must be in UTC format that
26402	// resolves to one of 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For
26403	// example, both 13:00-5 and 08:00 are valid.
26404	StartTime string `json:"startTime,omitempty"`
26405
26406	// ForceSendFields is a list of field names (e.g. "MaintenanceDuration")
26407	// to unconditionally include in API requests. By default, fields with
26408	// empty values are omitted from API requests. However, any non-pointer,
26409	// non-interface field appearing in ForceSendFields will be sent to the
26410	// server regardless of whether the field is empty or not. This may be
26411	// used to include empty fields in Patch requests.
26412	ForceSendFields []string `json:"-"`
26413
26414	// NullFields is a list of field names (e.g. "MaintenanceDuration") to
26415	// include in API requests with the JSON null value. By default, fields
26416	// with empty values are omitted from API requests. However, any field
26417	// with an empty value appearing in NullFields will be sent to the
26418	// server as null. It is an error if a field in this list has a
26419	// non-empty value. This may be used to include null fields in Patch
26420	// requests.
26421	NullFields []string `json:"-"`
26422}
26423
26424func (s *NodeGroupMaintenanceWindow) MarshalJSON() ([]byte, error) {
26425	type NoMethod NodeGroupMaintenanceWindow
26426	raw := NoMethod(*s)
26427	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26428}
26429
26430type NodeGroupNode struct {
26431	// Accelerators: Accelerators for this node.
26432	Accelerators []*AcceleratorConfig `json:"accelerators,omitempty"`
26433
26434	// CpuOvercommitType: CPU overcommit.
26435	//
26436	// Possible values:
26437	//   "CPU_OVERCOMMIT_TYPE_UNSPECIFIED"
26438	//   "ENABLED"
26439	//   "NONE"
26440	CpuOvercommitType string `json:"cpuOvercommitType,omitempty"`
26441
26442	// Disks: Local disk configurations.
26443	Disks []*LocalDisk `json:"disks,omitempty"`
26444
26445	// Instances: Instances scheduled on this node.
26446	Instances []string `json:"instances,omitempty"`
26447
26448	// Name: The name of the node.
26449	Name string `json:"name,omitempty"`
26450
26451	// NodeType: The type of this node.
26452	NodeType string `json:"nodeType,omitempty"`
26453
26454	// SatisfiesPzs: [Output Only] Reserved for future use.
26455	SatisfiesPzs bool `json:"satisfiesPzs,omitempty"`
26456
26457	// ServerBinding: Binding properties for the physical server.
26458	ServerBinding *ServerBinding `json:"serverBinding,omitempty"`
26459
26460	// ServerId: Server ID associated with this node.
26461	ServerId string `json:"serverId,omitempty"`
26462
26463	// Possible values:
26464	//   "CREATING"
26465	//   "DELETING"
26466	//   "INVALID"
26467	//   "READY"
26468	//   "REPAIRING"
26469	Status string `json:"status,omitempty"`
26470
26471	// ForceSendFields is a list of field names (e.g. "Accelerators") to
26472	// unconditionally include in API requests. By default, fields with
26473	// empty values are omitted from API requests. However, any non-pointer,
26474	// non-interface field appearing in ForceSendFields will be sent to the
26475	// server regardless of whether the field is empty or not. This may be
26476	// used to include empty fields in Patch requests.
26477	ForceSendFields []string `json:"-"`
26478
26479	// NullFields is a list of field names (e.g. "Accelerators") to include
26480	// in API requests with the JSON null value. By default, fields with
26481	// empty values are omitted from API requests. However, any field with
26482	// an empty value appearing in NullFields will be sent to the server as
26483	// null. It is an error if a field in this list has a non-empty value.
26484	// This may be used to include null fields in Patch requests.
26485	NullFields []string `json:"-"`
26486}
26487
26488func (s *NodeGroupNode) MarshalJSON() ([]byte, error) {
26489	type NoMethod NodeGroupNode
26490	raw := NoMethod(*s)
26491	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26492}
26493
26494type NodeGroupsAddNodesRequest struct {
26495	// AdditionalNodeCount: Count of additional nodes to be added to the
26496	// node group.
26497	AdditionalNodeCount int64 `json:"additionalNodeCount,omitempty"`
26498
26499	// ForceSendFields is a list of field names (e.g. "AdditionalNodeCount")
26500	// to unconditionally include in API requests. By default, fields with
26501	// empty values are omitted from API requests. However, any non-pointer,
26502	// non-interface field appearing in ForceSendFields will be sent to the
26503	// server regardless of whether the field is empty or not. This may be
26504	// used to include empty fields in Patch requests.
26505	ForceSendFields []string `json:"-"`
26506
26507	// NullFields is a list of field names (e.g. "AdditionalNodeCount") to
26508	// include in API requests with the JSON null value. By default, fields
26509	// with empty values are omitted from API requests. However, any field
26510	// with an empty value appearing in NullFields will be sent to the
26511	// server as null. It is an error if a field in this list has a
26512	// non-empty value. This may be used to include null fields in Patch
26513	// requests.
26514	NullFields []string `json:"-"`
26515}
26516
26517func (s *NodeGroupsAddNodesRequest) MarshalJSON() ([]byte, error) {
26518	type NoMethod NodeGroupsAddNodesRequest
26519	raw := NoMethod(*s)
26520	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26521}
26522
26523type NodeGroupsDeleteNodesRequest struct {
26524	// Nodes: Names of the nodes to delete.
26525	Nodes []string `json:"nodes,omitempty"`
26526
26527	// ForceSendFields is a list of field names (e.g. "Nodes") to
26528	// unconditionally include in API requests. By default, fields with
26529	// empty values are omitted from API requests. However, any non-pointer,
26530	// non-interface field appearing in ForceSendFields will be sent to the
26531	// server regardless of whether the field is empty or not. This may be
26532	// used to include empty fields in Patch requests.
26533	ForceSendFields []string `json:"-"`
26534
26535	// NullFields is a list of field names (e.g. "Nodes") to include in API
26536	// requests with the JSON null value. By default, fields with empty
26537	// values are omitted from API requests. However, any field with an
26538	// empty value appearing in NullFields will be sent to the server as
26539	// null. It is an error if a field in this list has a non-empty value.
26540	// This may be used to include null fields in Patch requests.
26541	NullFields []string `json:"-"`
26542}
26543
26544func (s *NodeGroupsDeleteNodesRequest) MarshalJSON() ([]byte, error) {
26545	type NoMethod NodeGroupsDeleteNodesRequest
26546	raw := NoMethod(*s)
26547	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26548}
26549
26550type NodeGroupsListNodes struct {
26551	// Id: [Output Only] Unique identifier for the resource; defined by the
26552	// server.
26553	Id string `json:"id,omitempty"`
26554
26555	// Items: A list of Node resources.
26556	Items []*NodeGroupNode `json:"items,omitempty"`
26557
26558	// Kind: [Output Only] The resource type, which is always
26559	// compute.nodeGroupsListNodes for the list of nodes in the specified
26560	// node group.
26561	Kind string `json:"kind,omitempty"`
26562
26563	// NextPageToken: [Output Only] This token allows you to get the next
26564	// page of results for list requests. If the number of results is larger
26565	// than maxResults, use the nextPageToken as a value for the query
26566	// parameter pageToken in the next list request. Subsequent list
26567	// requests will have their own nextPageToken to continue paging through
26568	// the results.
26569	NextPageToken string `json:"nextPageToken,omitempty"`
26570
26571	// SelfLink: [Output Only] Server-defined URL for this resource.
26572	SelfLink string `json:"selfLink,omitempty"`
26573
26574	// Warning: [Output Only] Informational warning message.
26575	Warning *NodeGroupsListNodesWarning `json:"warning,omitempty"`
26576
26577	// ServerResponse contains the HTTP response code and headers from the
26578	// server.
26579	googleapi.ServerResponse `json:"-"`
26580
26581	// ForceSendFields is a list of field names (e.g. "Id") to
26582	// unconditionally include in API requests. By default, fields with
26583	// empty values are omitted from API requests. However, any non-pointer,
26584	// non-interface field appearing in ForceSendFields will be sent to the
26585	// server regardless of whether the field is empty or not. This may be
26586	// used to include empty fields in Patch requests.
26587	ForceSendFields []string `json:"-"`
26588
26589	// NullFields is a list of field names (e.g. "Id") to include in API
26590	// requests with the JSON null value. By default, fields with empty
26591	// values are omitted from API requests. However, any field with an
26592	// empty value appearing in NullFields will be sent to the server as
26593	// null. It is an error if a field in this list has a non-empty value.
26594	// This may be used to include null fields in Patch requests.
26595	NullFields []string `json:"-"`
26596}
26597
26598func (s *NodeGroupsListNodes) MarshalJSON() ([]byte, error) {
26599	type NoMethod NodeGroupsListNodes
26600	raw := NoMethod(*s)
26601	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26602}
26603
26604// NodeGroupsListNodesWarning: [Output Only] Informational warning
26605// message.
26606type NodeGroupsListNodesWarning struct {
26607	// Code: [Output Only] A warning code, if applicable. For example,
26608	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
26609	// the response.
26610	//
26611	// Possible values:
26612	//   "CLEANUP_FAILED"
26613	//   "DEPRECATED_RESOURCE_USED"
26614	//   "DEPRECATED_TYPE_USED"
26615	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
26616	//   "EXPERIMENTAL_TYPE_USED"
26617	//   "EXTERNAL_API_WARNING"
26618	//   "FIELD_VALUE_OVERRIDEN"
26619	//   "INJECTED_KERNELS_DEPRECATED"
26620	//   "LARGE_DEPLOYMENT_WARNING"
26621	//   "MISSING_TYPE_DEPENDENCY"
26622	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
26623	//   "NEXT_HOP_CANNOT_IP_FORWARD"
26624	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
26625	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
26626	//   "NEXT_HOP_NOT_RUNNING"
26627	//   "NOT_CRITICAL_ERROR"
26628	//   "NO_RESULTS_ON_PAGE"
26629	//   "PARTIAL_SUCCESS"
26630	//   "REQUIRED_TOS_AGREEMENT"
26631	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
26632	//   "RESOURCE_NOT_DELETED"
26633	//   "SCHEMA_VALIDATION_IGNORED"
26634	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
26635	//   "UNDECLARED_PROPERTIES"
26636	//   "UNREACHABLE"
26637	Code string `json:"code,omitempty"`
26638
26639	// Data: [Output Only] Metadata about this warning in key: value format.
26640	// For example:
26641	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
26642	Data []*NodeGroupsListNodesWarningData `json:"data,omitempty"`
26643
26644	// Message: [Output Only] A human-readable description of the warning
26645	// code.
26646	Message string `json:"message,omitempty"`
26647
26648	// ForceSendFields is a list of field names (e.g. "Code") to
26649	// unconditionally include in API requests. By default, fields with
26650	// empty values are omitted from API requests. However, any non-pointer,
26651	// non-interface field appearing in ForceSendFields will be sent to the
26652	// server regardless of whether the field is empty or not. This may be
26653	// used to include empty fields in Patch requests.
26654	ForceSendFields []string `json:"-"`
26655
26656	// NullFields is a list of field names (e.g. "Code") to include in API
26657	// requests with the JSON null value. By default, fields with empty
26658	// values are omitted from API requests. However, any field with an
26659	// empty value appearing in NullFields will be sent to the server as
26660	// null. It is an error if a field in this list has a non-empty value.
26661	// This may be used to include null fields in Patch requests.
26662	NullFields []string `json:"-"`
26663}
26664
26665func (s *NodeGroupsListNodesWarning) MarshalJSON() ([]byte, error) {
26666	type NoMethod NodeGroupsListNodesWarning
26667	raw := NoMethod(*s)
26668	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26669}
26670
26671type NodeGroupsListNodesWarningData struct {
26672	// Key: [Output Only] A key that provides more detail on the warning
26673	// being returned. For example, for warnings where there are no results
26674	// in a list request for a particular zone, this key might be scope and
26675	// the key value might be the zone name. Other examples might be a key
26676	// indicating a deprecated resource and a suggested replacement, or a
26677	// warning about invalid network settings (for example, if an instance
26678	// attempts to perform IP forwarding but is not enabled for IP
26679	// forwarding).
26680	Key string `json:"key,omitempty"`
26681
26682	// Value: [Output Only] A warning data value corresponding to the key.
26683	Value string `json:"value,omitempty"`
26684
26685	// ForceSendFields is a list of field names (e.g. "Key") to
26686	// unconditionally include in API requests. By default, fields with
26687	// empty values are omitted from API requests. However, any non-pointer,
26688	// non-interface field appearing in ForceSendFields will be sent to the
26689	// server regardless of whether the field is empty or not. This may be
26690	// used to include empty fields in Patch requests.
26691	ForceSendFields []string `json:"-"`
26692
26693	// NullFields is a list of field names (e.g. "Key") to include in API
26694	// requests with the JSON null value. By default, fields with empty
26695	// values are omitted from API requests. However, any field with an
26696	// empty value appearing in NullFields will be sent to the server as
26697	// null. It is an error if a field in this list has a non-empty value.
26698	// This may be used to include null fields in Patch requests.
26699	NullFields []string `json:"-"`
26700}
26701
26702func (s *NodeGroupsListNodesWarningData) MarshalJSON() ([]byte, error) {
26703	type NoMethod NodeGroupsListNodesWarningData
26704	raw := NoMethod(*s)
26705	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26706}
26707
26708type NodeGroupsScopedList struct {
26709	// NodeGroups: [Output Only] A list of node groups contained in this
26710	// scope.
26711	NodeGroups []*NodeGroup `json:"nodeGroups,omitempty"`
26712
26713	// Warning: [Output Only] An informational warning that appears when the
26714	// nodeGroup list is empty.
26715	Warning *NodeGroupsScopedListWarning `json:"warning,omitempty"`
26716
26717	// ForceSendFields is a list of field names (e.g. "NodeGroups") to
26718	// unconditionally include in API requests. By default, fields with
26719	// empty values are omitted from API requests. However, any non-pointer,
26720	// non-interface field appearing in ForceSendFields will be sent to the
26721	// server regardless of whether the field is empty or not. This may be
26722	// used to include empty fields in Patch requests.
26723	ForceSendFields []string `json:"-"`
26724
26725	// NullFields is a list of field names (e.g. "NodeGroups") to include in
26726	// API requests with the JSON null value. By default, fields with empty
26727	// values are omitted from API requests. However, any field with an
26728	// empty value appearing in NullFields will be sent to the server as
26729	// null. It is an error if a field in this list has a non-empty value.
26730	// This may be used to include null fields in Patch requests.
26731	NullFields []string `json:"-"`
26732}
26733
26734func (s *NodeGroupsScopedList) MarshalJSON() ([]byte, error) {
26735	type NoMethod NodeGroupsScopedList
26736	raw := NoMethod(*s)
26737	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26738}
26739
26740// NodeGroupsScopedListWarning: [Output Only] An informational warning
26741// that appears when the nodeGroup list is empty.
26742type NodeGroupsScopedListWarning struct {
26743	// Code: [Output Only] A warning code, if applicable. For example,
26744	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
26745	// the response.
26746	//
26747	// Possible values:
26748	//   "CLEANUP_FAILED"
26749	//   "DEPRECATED_RESOURCE_USED"
26750	//   "DEPRECATED_TYPE_USED"
26751	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
26752	//   "EXPERIMENTAL_TYPE_USED"
26753	//   "EXTERNAL_API_WARNING"
26754	//   "FIELD_VALUE_OVERRIDEN"
26755	//   "INJECTED_KERNELS_DEPRECATED"
26756	//   "LARGE_DEPLOYMENT_WARNING"
26757	//   "MISSING_TYPE_DEPENDENCY"
26758	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
26759	//   "NEXT_HOP_CANNOT_IP_FORWARD"
26760	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
26761	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
26762	//   "NEXT_HOP_NOT_RUNNING"
26763	//   "NOT_CRITICAL_ERROR"
26764	//   "NO_RESULTS_ON_PAGE"
26765	//   "PARTIAL_SUCCESS"
26766	//   "REQUIRED_TOS_AGREEMENT"
26767	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
26768	//   "RESOURCE_NOT_DELETED"
26769	//   "SCHEMA_VALIDATION_IGNORED"
26770	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
26771	//   "UNDECLARED_PROPERTIES"
26772	//   "UNREACHABLE"
26773	Code string `json:"code,omitempty"`
26774
26775	// Data: [Output Only] Metadata about this warning in key: value format.
26776	// For example:
26777	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
26778	Data []*NodeGroupsScopedListWarningData `json:"data,omitempty"`
26779
26780	// Message: [Output Only] A human-readable description of the warning
26781	// code.
26782	Message string `json:"message,omitempty"`
26783
26784	// ForceSendFields is a list of field names (e.g. "Code") to
26785	// unconditionally include in API requests. By default, fields with
26786	// empty values are omitted from API requests. However, any non-pointer,
26787	// non-interface field appearing in ForceSendFields will be sent to the
26788	// server regardless of whether the field is empty or not. This may be
26789	// used to include empty fields in Patch requests.
26790	ForceSendFields []string `json:"-"`
26791
26792	// NullFields is a list of field names (e.g. "Code") to include in API
26793	// requests with the JSON null value. By default, fields with empty
26794	// values are omitted from API requests. However, any field with an
26795	// empty value appearing in NullFields will be sent to the server as
26796	// null. It is an error if a field in this list has a non-empty value.
26797	// This may be used to include null fields in Patch requests.
26798	NullFields []string `json:"-"`
26799}
26800
26801func (s *NodeGroupsScopedListWarning) MarshalJSON() ([]byte, error) {
26802	type NoMethod NodeGroupsScopedListWarning
26803	raw := NoMethod(*s)
26804	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26805}
26806
26807type NodeGroupsScopedListWarningData struct {
26808	// Key: [Output Only] A key that provides more detail on the warning
26809	// being returned. For example, for warnings where there are no results
26810	// in a list request for a particular zone, this key might be scope and
26811	// the key value might be the zone name. Other examples might be a key
26812	// indicating a deprecated resource and a suggested replacement, or a
26813	// warning about invalid network settings (for example, if an instance
26814	// attempts to perform IP forwarding but is not enabled for IP
26815	// forwarding).
26816	Key string `json:"key,omitempty"`
26817
26818	// Value: [Output Only] A warning data value corresponding to the key.
26819	Value string `json:"value,omitempty"`
26820
26821	// ForceSendFields is a list of field names (e.g. "Key") to
26822	// unconditionally include in API requests. By default, fields with
26823	// empty values are omitted from API requests. However, any non-pointer,
26824	// non-interface field appearing in ForceSendFields will be sent to the
26825	// server regardless of whether the field is empty or not. This may be
26826	// used to include empty fields in Patch requests.
26827	ForceSendFields []string `json:"-"`
26828
26829	// NullFields is a list of field names (e.g. "Key") to include in API
26830	// requests with the JSON null value. By default, fields with empty
26831	// values are omitted from API requests. However, any field with an
26832	// empty value appearing in NullFields will be sent to the server as
26833	// null. It is an error if a field in this list has a non-empty value.
26834	// This may be used to include null fields in Patch requests.
26835	NullFields []string `json:"-"`
26836}
26837
26838func (s *NodeGroupsScopedListWarningData) MarshalJSON() ([]byte, error) {
26839	type NoMethod NodeGroupsScopedListWarningData
26840	raw := NoMethod(*s)
26841	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26842}
26843
26844type NodeGroupsSetNodeTemplateRequest struct {
26845	// NodeTemplate: Full or partial URL of the node template resource to be
26846	// updated for this node group.
26847	NodeTemplate string `json:"nodeTemplate,omitempty"`
26848
26849	// ForceSendFields is a list of field names (e.g. "NodeTemplate") to
26850	// unconditionally include in API requests. By default, fields with
26851	// empty values are omitted from API requests. However, any non-pointer,
26852	// non-interface field appearing in ForceSendFields will be sent to the
26853	// server regardless of whether the field is empty or not. This may be
26854	// used to include empty fields in Patch requests.
26855	ForceSendFields []string `json:"-"`
26856
26857	// NullFields is a list of field names (e.g. "NodeTemplate") to include
26858	// in API requests with the JSON null value. By default, fields with
26859	// empty values are omitted from API requests. However, any field with
26860	// an empty value appearing in NullFields will be sent to the server as
26861	// null. It is an error if a field in this list has a non-empty value.
26862	// This may be used to include null fields in Patch requests.
26863	NullFields []string `json:"-"`
26864}
26865
26866func (s *NodeGroupsSetNodeTemplateRequest) MarshalJSON() ([]byte, error) {
26867	type NoMethod NodeGroupsSetNodeTemplateRequest
26868	raw := NoMethod(*s)
26869	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26870}
26871
26872// NodeTemplate: Represent a sole-tenant Node Template resource.
26873//
26874// You can use a template to define properties for nodes in a node
26875// group. For more information, read Creating node groups and instances.
26876// (== resource_for {$api_version}.nodeTemplates ==)
26877type NodeTemplate struct {
26878	Accelerators []*AcceleratorConfig `json:"accelerators,omitempty"`
26879
26880	// CpuOvercommitType: CPU overcommit.
26881	//
26882	// Possible values:
26883	//   "CPU_OVERCOMMIT_TYPE_UNSPECIFIED"
26884	//   "ENABLED"
26885	//   "NONE"
26886	CpuOvercommitType string `json:"cpuOvercommitType,omitempty"`
26887
26888	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
26889	// format.
26890	CreationTimestamp string `json:"creationTimestamp,omitempty"`
26891
26892	// Description: An optional description of this resource. Provide this
26893	// property when you create the resource.
26894	Description string `json:"description,omitempty"`
26895
26896	Disks []*LocalDisk `json:"disks,omitempty"`
26897
26898	// Id: [Output Only] The unique identifier for the resource. This
26899	// identifier is defined by the server.
26900	Id uint64 `json:"id,omitempty,string"`
26901
26902	// Kind: [Output Only] The type of the resource. Always
26903	// compute#nodeTemplate for node templates.
26904	Kind string `json:"kind,omitempty"`
26905
26906	// Name: The name of the resource, provided by the client when initially
26907	// creating the resource. The resource name must be 1-63 characters
26908	// long, and comply with RFC1035. Specifically, the name must be 1-63
26909	// characters long and match the regular expression
26910	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
26911	// a lowercase letter, and all following characters must be a dash,
26912	// lowercase letter, or digit, except the last character, which cannot
26913	// be a dash.
26914	Name string `json:"name,omitempty"`
26915
26916	// NodeAffinityLabels: Labels to use for node affinity, which will be
26917	// used in instance scheduling.
26918	NodeAffinityLabels map[string]string `json:"nodeAffinityLabels,omitempty"`
26919
26920	// NodeType: The node type to use for nodes group that are created from
26921	// this template.
26922	NodeType string `json:"nodeType,omitempty"`
26923
26924	// NodeTypeFlexibility: The flexible properties of the desired node
26925	// type. Node groups that use this node template will create nodes of a
26926	// type that matches these properties.
26927	//
26928	// This field is mutually exclusive with the node_type property; you can
26929	// only define one or the other, but not both.
26930	NodeTypeFlexibility *NodeTemplateNodeTypeFlexibility `json:"nodeTypeFlexibility,omitempty"`
26931
26932	// Region: [Output Only] The name of the region where the node template
26933	// resides, such as us-central1.
26934	Region string `json:"region,omitempty"`
26935
26936	// SelfLink: [Output Only] Server-defined URL for the resource.
26937	SelfLink string `json:"selfLink,omitempty"`
26938
26939	// ServerBinding: Sets the binding properties for the physical server.
26940	// Valid values include:
26941	// - [Default] RESTART_NODE_ON_ANY_SERVER: Restarts VMs on any available
26942	// physical server
26943	// - RESTART_NODE_ON_MINIMAL_SERVER: Restarts VMs on the same physical
26944	// server whenever possible
26945	//
26946	// See Sole-tenant node options for more information.
26947	ServerBinding *ServerBinding `json:"serverBinding,omitempty"`
26948
26949	// Status: [Output Only] The status of the node template. One of the
26950	// following values: CREATING, READY, and DELETING.
26951	//
26952	// Possible values:
26953	//   "CREATING"
26954	//   "DELETING"
26955	//   "INVALID"
26956	//   "READY"
26957	Status string `json:"status,omitempty"`
26958
26959	// StatusMessage: [Output Only] An optional, human-readable explanation
26960	// of the status.
26961	StatusMessage string `json:"statusMessage,omitempty"`
26962
26963	// ServerResponse contains the HTTP response code and headers from the
26964	// server.
26965	googleapi.ServerResponse `json:"-"`
26966
26967	// ForceSendFields is a list of field names (e.g. "Accelerators") to
26968	// unconditionally include in API requests. By default, fields with
26969	// empty values are omitted from API requests. However, any non-pointer,
26970	// non-interface field appearing in ForceSendFields will be sent to the
26971	// server regardless of whether the field is empty or not. This may be
26972	// used to include empty fields in Patch requests.
26973	ForceSendFields []string `json:"-"`
26974
26975	// NullFields is a list of field names (e.g. "Accelerators") to include
26976	// in API requests with the JSON null value. By default, fields with
26977	// empty values are omitted from API requests. However, any field with
26978	// an empty value appearing in NullFields will be sent to the server as
26979	// null. It is an error if a field in this list has a non-empty value.
26980	// This may be used to include null fields in Patch requests.
26981	NullFields []string `json:"-"`
26982}
26983
26984func (s *NodeTemplate) MarshalJSON() ([]byte, error) {
26985	type NoMethod NodeTemplate
26986	raw := NoMethod(*s)
26987	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26988}
26989
26990type NodeTemplateAggregatedList struct {
26991	// Id: [Output Only] Unique identifier for the resource; defined by the
26992	// server.
26993	Id string `json:"id,omitempty"`
26994
26995	// Items: A list of NodeTemplatesScopedList resources.
26996	Items map[string]NodeTemplatesScopedList `json:"items,omitempty"`
26997
26998	// Kind: [Output Only] Type of resource.Always
26999	// compute#nodeTemplateAggregatedList for aggregated lists of node
27000	// templates.
27001	Kind string `json:"kind,omitempty"`
27002
27003	// NextPageToken: [Output Only] This token allows you to get the next
27004	// page of results for list requests. If the number of results is larger
27005	// than maxResults, use the nextPageToken as a value for the query
27006	// parameter pageToken in the next list request. Subsequent list
27007	// requests will have their own nextPageToken to continue paging through
27008	// the results.
27009	NextPageToken string `json:"nextPageToken,omitempty"`
27010
27011	// SelfLink: [Output Only] Server-defined URL for this resource.
27012	SelfLink string `json:"selfLink,omitempty"`
27013
27014	// Unreachables: [Output Only] Unreachable resources.
27015	Unreachables []string `json:"unreachables,omitempty"`
27016
27017	// Warning: [Output Only] Informational warning message.
27018	Warning *NodeTemplateAggregatedListWarning `json:"warning,omitempty"`
27019
27020	// ServerResponse contains the HTTP response code and headers from the
27021	// server.
27022	googleapi.ServerResponse `json:"-"`
27023
27024	// ForceSendFields is a list of field names (e.g. "Id") to
27025	// unconditionally include in API requests. By default, fields with
27026	// empty values are omitted from API requests. However, any non-pointer,
27027	// non-interface field appearing in ForceSendFields will be sent to the
27028	// server regardless of whether the field is empty or not. This may be
27029	// used to include empty fields in Patch requests.
27030	ForceSendFields []string `json:"-"`
27031
27032	// NullFields is a list of field names (e.g. "Id") to include in API
27033	// requests with the JSON null value. By default, fields with empty
27034	// values are omitted from API requests. However, any field with an
27035	// empty value appearing in NullFields will be sent to the server as
27036	// null. It is an error if a field in this list has a non-empty value.
27037	// This may be used to include null fields in Patch requests.
27038	NullFields []string `json:"-"`
27039}
27040
27041func (s *NodeTemplateAggregatedList) MarshalJSON() ([]byte, error) {
27042	type NoMethod NodeTemplateAggregatedList
27043	raw := NoMethod(*s)
27044	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27045}
27046
27047// NodeTemplateAggregatedListWarning: [Output Only] Informational
27048// warning message.
27049type NodeTemplateAggregatedListWarning struct {
27050	// Code: [Output Only] A warning code, if applicable. For example,
27051	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
27052	// the response.
27053	//
27054	// Possible values:
27055	//   "CLEANUP_FAILED"
27056	//   "DEPRECATED_RESOURCE_USED"
27057	//   "DEPRECATED_TYPE_USED"
27058	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
27059	//   "EXPERIMENTAL_TYPE_USED"
27060	//   "EXTERNAL_API_WARNING"
27061	//   "FIELD_VALUE_OVERRIDEN"
27062	//   "INJECTED_KERNELS_DEPRECATED"
27063	//   "LARGE_DEPLOYMENT_WARNING"
27064	//   "MISSING_TYPE_DEPENDENCY"
27065	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
27066	//   "NEXT_HOP_CANNOT_IP_FORWARD"
27067	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
27068	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
27069	//   "NEXT_HOP_NOT_RUNNING"
27070	//   "NOT_CRITICAL_ERROR"
27071	//   "NO_RESULTS_ON_PAGE"
27072	//   "PARTIAL_SUCCESS"
27073	//   "REQUIRED_TOS_AGREEMENT"
27074	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
27075	//   "RESOURCE_NOT_DELETED"
27076	//   "SCHEMA_VALIDATION_IGNORED"
27077	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
27078	//   "UNDECLARED_PROPERTIES"
27079	//   "UNREACHABLE"
27080	Code string `json:"code,omitempty"`
27081
27082	// Data: [Output Only] Metadata about this warning in key: value format.
27083	// For example:
27084	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
27085	Data []*NodeTemplateAggregatedListWarningData `json:"data,omitempty"`
27086
27087	// Message: [Output Only] A human-readable description of the warning
27088	// code.
27089	Message string `json:"message,omitempty"`
27090
27091	// ForceSendFields is a list of field names (e.g. "Code") to
27092	// unconditionally include in API requests. By default, fields with
27093	// empty values are omitted from API requests. However, any non-pointer,
27094	// non-interface field appearing in ForceSendFields will be sent to the
27095	// server regardless of whether the field is empty or not. This may be
27096	// used to include empty fields in Patch requests.
27097	ForceSendFields []string `json:"-"`
27098
27099	// NullFields is a list of field names (e.g. "Code") to include in API
27100	// requests with the JSON null value. By default, fields with empty
27101	// values are omitted from API requests. However, any field with an
27102	// empty value appearing in NullFields will be sent to the server as
27103	// null. It is an error if a field in this list has a non-empty value.
27104	// This may be used to include null fields in Patch requests.
27105	NullFields []string `json:"-"`
27106}
27107
27108func (s *NodeTemplateAggregatedListWarning) MarshalJSON() ([]byte, error) {
27109	type NoMethod NodeTemplateAggregatedListWarning
27110	raw := NoMethod(*s)
27111	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27112}
27113
27114type NodeTemplateAggregatedListWarningData struct {
27115	// Key: [Output Only] A key that provides more detail on the warning
27116	// being returned. For example, for warnings where there are no results
27117	// in a list request for a particular zone, this key might be scope and
27118	// the key value might be the zone name. Other examples might be a key
27119	// indicating a deprecated resource and a suggested replacement, or a
27120	// warning about invalid network settings (for example, if an instance
27121	// attempts to perform IP forwarding but is not enabled for IP
27122	// forwarding).
27123	Key string `json:"key,omitempty"`
27124
27125	// Value: [Output Only] A warning data value corresponding to the key.
27126	Value string `json:"value,omitempty"`
27127
27128	// ForceSendFields is a list of field names (e.g. "Key") to
27129	// unconditionally include in API requests. By default, fields with
27130	// empty values are omitted from API requests. However, any non-pointer,
27131	// non-interface field appearing in ForceSendFields will be sent to the
27132	// server regardless of whether the field is empty or not. This may be
27133	// used to include empty fields in Patch requests.
27134	ForceSendFields []string `json:"-"`
27135
27136	// NullFields is a list of field names (e.g. "Key") to include in API
27137	// requests with the JSON null value. By default, fields with empty
27138	// values are omitted from API requests. However, any field with an
27139	// empty value appearing in NullFields will be sent to the server as
27140	// null. It is an error if a field in this list has a non-empty value.
27141	// This may be used to include null fields in Patch requests.
27142	NullFields []string `json:"-"`
27143}
27144
27145func (s *NodeTemplateAggregatedListWarningData) MarshalJSON() ([]byte, error) {
27146	type NoMethod NodeTemplateAggregatedListWarningData
27147	raw := NoMethod(*s)
27148	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27149}
27150
27151// NodeTemplateList: Contains a list of node templates.
27152type NodeTemplateList struct {
27153	// Id: [Output Only] Unique identifier for the resource; defined by the
27154	// server.
27155	Id string `json:"id,omitempty"`
27156
27157	// Items: A list of NodeTemplate resources.
27158	Items []*NodeTemplate `json:"items,omitempty"`
27159
27160	// Kind: [Output Only] Type of resource.Always compute#nodeTemplateList
27161	// for lists of node templates.
27162	Kind string `json:"kind,omitempty"`
27163
27164	// NextPageToken: [Output Only] This token allows you to get the next
27165	// page of results for list requests. If the number of results is larger
27166	// than maxResults, use the nextPageToken as a value for the query
27167	// parameter pageToken in the next list request. Subsequent list
27168	// requests will have their own nextPageToken to continue paging through
27169	// the results.
27170	NextPageToken string `json:"nextPageToken,omitempty"`
27171
27172	// SelfLink: [Output Only] Server-defined URL for this resource.
27173	SelfLink string `json:"selfLink,omitempty"`
27174
27175	// Warning: [Output Only] Informational warning message.
27176	Warning *NodeTemplateListWarning `json:"warning,omitempty"`
27177
27178	// ServerResponse contains the HTTP response code and headers from the
27179	// server.
27180	googleapi.ServerResponse `json:"-"`
27181
27182	// ForceSendFields is a list of field names (e.g. "Id") to
27183	// unconditionally include in API requests. By default, fields with
27184	// empty values are omitted from API requests. However, any non-pointer,
27185	// non-interface field appearing in ForceSendFields will be sent to the
27186	// server regardless of whether the field is empty or not. This may be
27187	// used to include empty fields in Patch requests.
27188	ForceSendFields []string `json:"-"`
27189
27190	// NullFields is a list of field names (e.g. "Id") to include in API
27191	// requests with the JSON null value. By default, fields with empty
27192	// values are omitted from API requests. However, any field with an
27193	// empty value appearing in NullFields will be sent to the server as
27194	// null. It is an error if a field in this list has a non-empty value.
27195	// This may be used to include null fields in Patch requests.
27196	NullFields []string `json:"-"`
27197}
27198
27199func (s *NodeTemplateList) MarshalJSON() ([]byte, error) {
27200	type NoMethod NodeTemplateList
27201	raw := NoMethod(*s)
27202	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27203}
27204
27205// NodeTemplateListWarning: [Output Only] Informational warning message.
27206type NodeTemplateListWarning struct {
27207	// Code: [Output Only] A warning code, if applicable. For example,
27208	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
27209	// the response.
27210	//
27211	// Possible values:
27212	//   "CLEANUP_FAILED"
27213	//   "DEPRECATED_RESOURCE_USED"
27214	//   "DEPRECATED_TYPE_USED"
27215	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
27216	//   "EXPERIMENTAL_TYPE_USED"
27217	//   "EXTERNAL_API_WARNING"
27218	//   "FIELD_VALUE_OVERRIDEN"
27219	//   "INJECTED_KERNELS_DEPRECATED"
27220	//   "LARGE_DEPLOYMENT_WARNING"
27221	//   "MISSING_TYPE_DEPENDENCY"
27222	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
27223	//   "NEXT_HOP_CANNOT_IP_FORWARD"
27224	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
27225	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
27226	//   "NEXT_HOP_NOT_RUNNING"
27227	//   "NOT_CRITICAL_ERROR"
27228	//   "NO_RESULTS_ON_PAGE"
27229	//   "PARTIAL_SUCCESS"
27230	//   "REQUIRED_TOS_AGREEMENT"
27231	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
27232	//   "RESOURCE_NOT_DELETED"
27233	//   "SCHEMA_VALIDATION_IGNORED"
27234	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
27235	//   "UNDECLARED_PROPERTIES"
27236	//   "UNREACHABLE"
27237	Code string `json:"code,omitempty"`
27238
27239	// Data: [Output Only] Metadata about this warning in key: value format.
27240	// For example:
27241	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
27242	Data []*NodeTemplateListWarningData `json:"data,omitempty"`
27243
27244	// Message: [Output Only] A human-readable description of the warning
27245	// code.
27246	Message string `json:"message,omitempty"`
27247
27248	// ForceSendFields is a list of field names (e.g. "Code") to
27249	// unconditionally include in API requests. By default, fields with
27250	// empty values are omitted from API requests. However, any non-pointer,
27251	// non-interface field appearing in ForceSendFields will be sent to the
27252	// server regardless of whether the field is empty or not. This may be
27253	// used to include empty fields in Patch requests.
27254	ForceSendFields []string `json:"-"`
27255
27256	// NullFields is a list of field names (e.g. "Code") to include in API
27257	// requests with the JSON null value. By default, fields with empty
27258	// values are omitted from API requests. However, any field with an
27259	// empty value appearing in NullFields will be sent to the server as
27260	// null. It is an error if a field in this list has a non-empty value.
27261	// This may be used to include null fields in Patch requests.
27262	NullFields []string `json:"-"`
27263}
27264
27265func (s *NodeTemplateListWarning) MarshalJSON() ([]byte, error) {
27266	type NoMethod NodeTemplateListWarning
27267	raw := NoMethod(*s)
27268	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27269}
27270
27271type NodeTemplateListWarningData struct {
27272	// Key: [Output Only] A key that provides more detail on the warning
27273	// being returned. For example, for warnings where there are no results
27274	// in a list request for a particular zone, this key might be scope and
27275	// the key value might be the zone name. Other examples might be a key
27276	// indicating a deprecated resource and a suggested replacement, or a
27277	// warning about invalid network settings (for example, if an instance
27278	// attempts to perform IP forwarding but is not enabled for IP
27279	// forwarding).
27280	Key string `json:"key,omitempty"`
27281
27282	// Value: [Output Only] A warning data value corresponding to the key.
27283	Value string `json:"value,omitempty"`
27284
27285	// ForceSendFields is a list of field names (e.g. "Key") to
27286	// unconditionally include in API requests. By default, fields with
27287	// empty values are omitted from API requests. However, any non-pointer,
27288	// non-interface field appearing in ForceSendFields will be sent to the
27289	// server regardless of whether the field is empty or not. This may be
27290	// used to include empty fields in Patch requests.
27291	ForceSendFields []string `json:"-"`
27292
27293	// NullFields is a list of field names (e.g. "Key") to include in API
27294	// requests with the JSON null value. By default, fields with empty
27295	// values are omitted from API requests. However, any field with an
27296	// empty value appearing in NullFields will be sent to the server as
27297	// null. It is an error if a field in this list has a non-empty value.
27298	// This may be used to include null fields in Patch requests.
27299	NullFields []string `json:"-"`
27300}
27301
27302func (s *NodeTemplateListWarningData) MarshalJSON() ([]byte, error) {
27303	type NoMethod NodeTemplateListWarningData
27304	raw := NoMethod(*s)
27305	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27306}
27307
27308type NodeTemplateNodeTypeFlexibility struct {
27309	Cpus string `json:"cpus,omitempty"`
27310
27311	LocalSsd string `json:"localSsd,omitempty"`
27312
27313	Memory string `json:"memory,omitempty"`
27314
27315	// ForceSendFields is a list of field names (e.g. "Cpus") to
27316	// unconditionally include in API requests. By default, fields with
27317	// empty values are omitted from API requests. However, any non-pointer,
27318	// non-interface field appearing in ForceSendFields will be sent to the
27319	// server regardless of whether the field is empty or not. This may be
27320	// used to include empty fields in Patch requests.
27321	ForceSendFields []string `json:"-"`
27322
27323	// NullFields is a list of field names (e.g. "Cpus") to include in API
27324	// requests with the JSON null value. By default, fields with empty
27325	// values are omitted from API requests. However, any field with an
27326	// empty value appearing in NullFields will be sent to the server as
27327	// null. It is an error if a field in this list has a non-empty value.
27328	// This may be used to include null fields in Patch requests.
27329	NullFields []string `json:"-"`
27330}
27331
27332func (s *NodeTemplateNodeTypeFlexibility) MarshalJSON() ([]byte, error) {
27333	type NoMethod NodeTemplateNodeTypeFlexibility
27334	raw := NoMethod(*s)
27335	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27336}
27337
27338type NodeTemplatesScopedList struct {
27339	// NodeTemplates: [Output Only] A list of node templates contained in
27340	// this scope.
27341	NodeTemplates []*NodeTemplate `json:"nodeTemplates,omitempty"`
27342
27343	// Warning: [Output Only] An informational warning that appears when the
27344	// node templates list is empty.
27345	Warning *NodeTemplatesScopedListWarning `json:"warning,omitempty"`
27346
27347	// ForceSendFields is a list of field names (e.g. "NodeTemplates") to
27348	// unconditionally include in API requests. By default, fields with
27349	// empty values are omitted from API requests. However, any non-pointer,
27350	// non-interface field appearing in ForceSendFields will be sent to the
27351	// server regardless of whether the field is empty or not. This may be
27352	// used to include empty fields in Patch requests.
27353	ForceSendFields []string `json:"-"`
27354
27355	// NullFields is a list of field names (e.g. "NodeTemplates") to include
27356	// in API requests with the JSON null value. By default, fields with
27357	// empty values are omitted from API requests. However, any field with
27358	// an empty value appearing in NullFields will be sent to the server as
27359	// null. It is an error if a field in this list has a non-empty value.
27360	// This may be used to include null fields in Patch requests.
27361	NullFields []string `json:"-"`
27362}
27363
27364func (s *NodeTemplatesScopedList) MarshalJSON() ([]byte, error) {
27365	type NoMethod NodeTemplatesScopedList
27366	raw := NoMethod(*s)
27367	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27368}
27369
27370// NodeTemplatesScopedListWarning: [Output Only] An informational
27371// warning that appears when the node templates list is empty.
27372type NodeTemplatesScopedListWarning struct {
27373	// Code: [Output Only] A warning code, if applicable. For example,
27374	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
27375	// the response.
27376	//
27377	// Possible values:
27378	//   "CLEANUP_FAILED"
27379	//   "DEPRECATED_RESOURCE_USED"
27380	//   "DEPRECATED_TYPE_USED"
27381	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
27382	//   "EXPERIMENTAL_TYPE_USED"
27383	//   "EXTERNAL_API_WARNING"
27384	//   "FIELD_VALUE_OVERRIDEN"
27385	//   "INJECTED_KERNELS_DEPRECATED"
27386	//   "LARGE_DEPLOYMENT_WARNING"
27387	//   "MISSING_TYPE_DEPENDENCY"
27388	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
27389	//   "NEXT_HOP_CANNOT_IP_FORWARD"
27390	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
27391	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
27392	//   "NEXT_HOP_NOT_RUNNING"
27393	//   "NOT_CRITICAL_ERROR"
27394	//   "NO_RESULTS_ON_PAGE"
27395	//   "PARTIAL_SUCCESS"
27396	//   "REQUIRED_TOS_AGREEMENT"
27397	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
27398	//   "RESOURCE_NOT_DELETED"
27399	//   "SCHEMA_VALIDATION_IGNORED"
27400	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
27401	//   "UNDECLARED_PROPERTIES"
27402	//   "UNREACHABLE"
27403	Code string `json:"code,omitempty"`
27404
27405	// Data: [Output Only] Metadata about this warning in key: value format.
27406	// For example:
27407	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
27408	Data []*NodeTemplatesScopedListWarningData `json:"data,omitempty"`
27409
27410	// Message: [Output Only] A human-readable description of the warning
27411	// code.
27412	Message string `json:"message,omitempty"`
27413
27414	// ForceSendFields is a list of field names (e.g. "Code") to
27415	// unconditionally include in API requests. By default, fields with
27416	// empty values are omitted from API requests. However, any non-pointer,
27417	// non-interface field appearing in ForceSendFields will be sent to the
27418	// server regardless of whether the field is empty or not. This may be
27419	// used to include empty fields in Patch requests.
27420	ForceSendFields []string `json:"-"`
27421
27422	// NullFields is a list of field names (e.g. "Code") to include in API
27423	// requests with the JSON null value. By default, fields with empty
27424	// values are omitted from API requests. However, any field with an
27425	// empty value appearing in NullFields will be sent to the server as
27426	// null. It is an error if a field in this list has a non-empty value.
27427	// This may be used to include null fields in Patch requests.
27428	NullFields []string `json:"-"`
27429}
27430
27431func (s *NodeTemplatesScopedListWarning) MarshalJSON() ([]byte, error) {
27432	type NoMethod NodeTemplatesScopedListWarning
27433	raw := NoMethod(*s)
27434	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27435}
27436
27437type NodeTemplatesScopedListWarningData struct {
27438	// Key: [Output Only] A key that provides more detail on the warning
27439	// being returned. For example, for warnings where there are no results
27440	// in a list request for a particular zone, this key might be scope and
27441	// the key value might be the zone name. Other examples might be a key
27442	// indicating a deprecated resource and a suggested replacement, or a
27443	// warning about invalid network settings (for example, if an instance
27444	// attempts to perform IP forwarding but is not enabled for IP
27445	// forwarding).
27446	Key string `json:"key,omitempty"`
27447
27448	// Value: [Output Only] A warning data value corresponding to the key.
27449	Value string `json:"value,omitempty"`
27450
27451	// ForceSendFields is a list of field names (e.g. "Key") to
27452	// unconditionally include in API requests. By default, fields with
27453	// empty values are omitted from API requests. However, any non-pointer,
27454	// non-interface field appearing in ForceSendFields will be sent to the
27455	// server regardless of whether the field is empty or not. This may be
27456	// used to include empty fields in Patch requests.
27457	ForceSendFields []string `json:"-"`
27458
27459	// NullFields is a list of field names (e.g. "Key") to include in API
27460	// requests with the JSON null value. By default, fields with empty
27461	// values are omitted from API requests. However, any field with an
27462	// empty value appearing in NullFields will be sent to the server as
27463	// null. It is an error if a field in this list has a non-empty value.
27464	// This may be used to include null fields in Patch requests.
27465	NullFields []string `json:"-"`
27466}
27467
27468func (s *NodeTemplatesScopedListWarningData) MarshalJSON() ([]byte, error) {
27469	type NoMethod NodeTemplatesScopedListWarningData
27470	raw := NoMethod(*s)
27471	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27472}
27473
27474// NodeType: Represent a sole-tenant Node Type resource.
27475//
27476// Each node within a node group must have a node type. A node type
27477// specifies the total amount of cores and memory for that node.
27478// Currently, the only available node type is n1-node-96-624 node type
27479// that has 96 vCPUs and 624 GB of memory, available in multiple zones.
27480// For more information read Node types. (== resource_for
27481// {$api_version}.nodeTypes ==)
27482type NodeType struct {
27483	// CpuPlatform: [Output Only] The CPU platform used by this node type.
27484	CpuPlatform string `json:"cpuPlatform,omitempty"`
27485
27486	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
27487	// format.
27488	CreationTimestamp string `json:"creationTimestamp,omitempty"`
27489
27490	// Deprecated -- [Output Only] The deprecation status associated with
27491	// this node type.
27492	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
27493
27494	// Description: [Output Only] An optional textual description of the
27495	// resource.
27496	Description string `json:"description,omitempty"`
27497
27498	// GuestCpus: [Output Only] The number of virtual CPUs that are
27499	// available to the node type.
27500	GuestCpus int64 `json:"guestCpus,omitempty"`
27501
27502	// Id: [Output Only] The unique identifier for the resource. This
27503	// identifier is defined by the server.
27504	Id uint64 `json:"id,omitempty,string"`
27505
27506	// Kind: [Output Only] The type of the resource. Always compute#nodeType
27507	// for node types.
27508	Kind string `json:"kind,omitempty"`
27509
27510	// LocalSsdGb: [Output Only] Local SSD available to the node type,
27511	// defined in GB.
27512	LocalSsdGb int64 `json:"localSsdGb,omitempty"`
27513
27514	// MemoryMb: [Output Only] The amount of physical memory available to
27515	// the node type, defined in MB.
27516	MemoryMb int64 `json:"memoryMb,omitempty"`
27517
27518	// Name: [Output Only] Name of the resource.
27519	Name string `json:"name,omitempty"`
27520
27521	// SelfLink: [Output Only] Server-defined URL for the resource.
27522	SelfLink string `json:"selfLink,omitempty"`
27523
27524	// Zone: [Output Only] The name of the zone where the node type resides,
27525	// such as us-central1-a.
27526	Zone string `json:"zone,omitempty"`
27527
27528	// ServerResponse contains the HTTP response code and headers from the
27529	// server.
27530	googleapi.ServerResponse `json:"-"`
27531
27532	// ForceSendFields is a list of field names (e.g. "CpuPlatform") to
27533	// unconditionally include in API requests. By default, fields with
27534	// empty values are omitted from API requests. However, any non-pointer,
27535	// non-interface field appearing in ForceSendFields will be sent to the
27536	// server regardless of whether the field is empty or not. This may be
27537	// used to include empty fields in Patch requests.
27538	ForceSendFields []string `json:"-"`
27539
27540	// NullFields is a list of field names (e.g. "CpuPlatform") to include
27541	// in API requests with the JSON null value. By default, fields with
27542	// empty values are omitted from API requests. However, any field with
27543	// an empty value appearing in NullFields will be sent to the server as
27544	// null. It is an error if a field in this list has a non-empty value.
27545	// This may be used to include null fields in Patch requests.
27546	NullFields []string `json:"-"`
27547}
27548
27549func (s *NodeType) MarshalJSON() ([]byte, error) {
27550	type NoMethod NodeType
27551	raw := NoMethod(*s)
27552	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27553}
27554
27555type NodeTypeAggregatedList struct {
27556	// Id: [Output Only] Unique identifier for the resource; defined by the
27557	// server.
27558	Id string `json:"id,omitempty"`
27559
27560	// Items: A list of NodeTypesScopedList resources.
27561	Items map[string]NodeTypesScopedList `json:"items,omitempty"`
27562
27563	// Kind: [Output Only] Type of resource.Always
27564	// compute#nodeTypeAggregatedList for aggregated lists of node types.
27565	Kind string `json:"kind,omitempty"`
27566
27567	// NextPageToken: [Output Only] This token allows you to get the next
27568	// page of results for list requests. If the number of results is larger
27569	// than maxResults, use the nextPageToken as a value for the query
27570	// parameter pageToken in the next list request. Subsequent list
27571	// requests will have their own nextPageToken to continue paging through
27572	// the results.
27573	NextPageToken string `json:"nextPageToken,omitempty"`
27574
27575	// SelfLink: [Output Only] Server-defined URL for this resource.
27576	SelfLink string `json:"selfLink,omitempty"`
27577
27578	// Unreachables: [Output Only] Unreachable resources.
27579	Unreachables []string `json:"unreachables,omitempty"`
27580
27581	// Warning: [Output Only] Informational warning message.
27582	Warning *NodeTypeAggregatedListWarning `json:"warning,omitempty"`
27583
27584	// ServerResponse contains the HTTP response code and headers from the
27585	// server.
27586	googleapi.ServerResponse `json:"-"`
27587
27588	// ForceSendFields is a list of field names (e.g. "Id") to
27589	// unconditionally include in API requests. By default, fields with
27590	// empty values are omitted from API requests. However, any non-pointer,
27591	// non-interface field appearing in ForceSendFields will be sent to the
27592	// server regardless of whether the field is empty or not. This may be
27593	// used to include empty fields in Patch requests.
27594	ForceSendFields []string `json:"-"`
27595
27596	// NullFields is a list of field names (e.g. "Id") to include in API
27597	// requests with the JSON null value. By default, fields with empty
27598	// values are omitted from API requests. However, any field with an
27599	// empty value appearing in NullFields will be sent to the server as
27600	// null. It is an error if a field in this list has a non-empty value.
27601	// This may be used to include null fields in Patch requests.
27602	NullFields []string `json:"-"`
27603}
27604
27605func (s *NodeTypeAggregatedList) MarshalJSON() ([]byte, error) {
27606	type NoMethod NodeTypeAggregatedList
27607	raw := NoMethod(*s)
27608	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27609}
27610
27611// NodeTypeAggregatedListWarning: [Output Only] Informational warning
27612// message.
27613type NodeTypeAggregatedListWarning struct {
27614	// Code: [Output Only] A warning code, if applicable. For example,
27615	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
27616	// the response.
27617	//
27618	// Possible values:
27619	//   "CLEANUP_FAILED"
27620	//   "DEPRECATED_RESOURCE_USED"
27621	//   "DEPRECATED_TYPE_USED"
27622	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
27623	//   "EXPERIMENTAL_TYPE_USED"
27624	//   "EXTERNAL_API_WARNING"
27625	//   "FIELD_VALUE_OVERRIDEN"
27626	//   "INJECTED_KERNELS_DEPRECATED"
27627	//   "LARGE_DEPLOYMENT_WARNING"
27628	//   "MISSING_TYPE_DEPENDENCY"
27629	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
27630	//   "NEXT_HOP_CANNOT_IP_FORWARD"
27631	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
27632	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
27633	//   "NEXT_HOP_NOT_RUNNING"
27634	//   "NOT_CRITICAL_ERROR"
27635	//   "NO_RESULTS_ON_PAGE"
27636	//   "PARTIAL_SUCCESS"
27637	//   "REQUIRED_TOS_AGREEMENT"
27638	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
27639	//   "RESOURCE_NOT_DELETED"
27640	//   "SCHEMA_VALIDATION_IGNORED"
27641	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
27642	//   "UNDECLARED_PROPERTIES"
27643	//   "UNREACHABLE"
27644	Code string `json:"code,omitempty"`
27645
27646	// Data: [Output Only] Metadata about this warning in key: value format.
27647	// For example:
27648	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
27649	Data []*NodeTypeAggregatedListWarningData `json:"data,omitempty"`
27650
27651	// Message: [Output Only] A human-readable description of the warning
27652	// code.
27653	Message string `json:"message,omitempty"`
27654
27655	// ForceSendFields is a list of field names (e.g. "Code") to
27656	// unconditionally include in API requests. By default, fields with
27657	// empty values are omitted from API requests. However, any non-pointer,
27658	// non-interface field appearing in ForceSendFields will be sent to the
27659	// server regardless of whether the field is empty or not. This may be
27660	// used to include empty fields in Patch requests.
27661	ForceSendFields []string `json:"-"`
27662
27663	// NullFields is a list of field names (e.g. "Code") to include in API
27664	// requests with the JSON null value. By default, fields with empty
27665	// values are omitted from API requests. However, any field with an
27666	// empty value appearing in NullFields will be sent to the server as
27667	// null. It is an error if a field in this list has a non-empty value.
27668	// This may be used to include null fields in Patch requests.
27669	NullFields []string `json:"-"`
27670}
27671
27672func (s *NodeTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
27673	type NoMethod NodeTypeAggregatedListWarning
27674	raw := NoMethod(*s)
27675	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27676}
27677
27678type NodeTypeAggregatedListWarningData struct {
27679	// Key: [Output Only] A key that provides more detail on the warning
27680	// being returned. For example, for warnings where there are no results
27681	// in a list request for a particular zone, this key might be scope and
27682	// the key value might be the zone name. Other examples might be a key
27683	// indicating a deprecated resource and a suggested replacement, or a
27684	// warning about invalid network settings (for example, if an instance
27685	// attempts to perform IP forwarding but is not enabled for IP
27686	// forwarding).
27687	Key string `json:"key,omitempty"`
27688
27689	// Value: [Output Only] A warning data value corresponding to the key.
27690	Value string `json:"value,omitempty"`
27691
27692	// ForceSendFields is a list of field names (e.g. "Key") to
27693	// unconditionally include in API requests. By default, fields with
27694	// empty values are omitted from API requests. However, any non-pointer,
27695	// non-interface field appearing in ForceSendFields will be sent to the
27696	// server regardless of whether the field is empty or not. This may be
27697	// used to include empty fields in Patch requests.
27698	ForceSendFields []string `json:"-"`
27699
27700	// NullFields is a list of field names (e.g. "Key") to include in API
27701	// requests with the JSON null value. By default, fields with empty
27702	// values are omitted from API requests. However, any field with an
27703	// empty value appearing in NullFields will be sent to the server as
27704	// null. It is an error if a field in this list has a non-empty value.
27705	// This may be used to include null fields in Patch requests.
27706	NullFields []string `json:"-"`
27707}
27708
27709func (s *NodeTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
27710	type NoMethod NodeTypeAggregatedListWarningData
27711	raw := NoMethod(*s)
27712	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27713}
27714
27715// NodeTypeList: Contains a list of node types.
27716type NodeTypeList struct {
27717	// Id: [Output Only] Unique identifier for the resource; defined by the
27718	// server.
27719	Id string `json:"id,omitempty"`
27720
27721	// Items: A list of NodeType resources.
27722	Items []*NodeType `json:"items,omitempty"`
27723
27724	// Kind: [Output Only] Type of resource.Always compute#nodeTypeList for
27725	// lists of node types.
27726	Kind string `json:"kind,omitempty"`
27727
27728	// NextPageToken: [Output Only] This token allows you to get the next
27729	// page of results for list requests. If the number of results is larger
27730	// than maxResults, use the nextPageToken as a value for the query
27731	// parameter pageToken in the next list request. Subsequent list
27732	// requests will have their own nextPageToken to continue paging through
27733	// the results.
27734	NextPageToken string `json:"nextPageToken,omitempty"`
27735
27736	// SelfLink: [Output Only] Server-defined URL for this resource.
27737	SelfLink string `json:"selfLink,omitempty"`
27738
27739	// Warning: [Output Only] Informational warning message.
27740	Warning *NodeTypeListWarning `json:"warning,omitempty"`
27741
27742	// ServerResponse contains the HTTP response code and headers from the
27743	// server.
27744	googleapi.ServerResponse `json:"-"`
27745
27746	// ForceSendFields is a list of field names (e.g. "Id") to
27747	// unconditionally include in API requests. By default, fields with
27748	// empty values are omitted from API requests. However, any non-pointer,
27749	// non-interface field appearing in ForceSendFields will be sent to the
27750	// server regardless of whether the field is empty or not. This may be
27751	// used to include empty fields in Patch requests.
27752	ForceSendFields []string `json:"-"`
27753
27754	// NullFields is a list of field names (e.g. "Id") to include in API
27755	// requests with the JSON null value. By default, fields with empty
27756	// values are omitted from API requests. However, any field with an
27757	// empty value appearing in NullFields will be sent to the server as
27758	// null. It is an error if a field in this list has a non-empty value.
27759	// This may be used to include null fields in Patch requests.
27760	NullFields []string `json:"-"`
27761}
27762
27763func (s *NodeTypeList) MarshalJSON() ([]byte, error) {
27764	type NoMethod NodeTypeList
27765	raw := NoMethod(*s)
27766	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27767}
27768
27769// NodeTypeListWarning: [Output Only] Informational warning message.
27770type NodeTypeListWarning struct {
27771	// Code: [Output Only] A warning code, if applicable. For example,
27772	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
27773	// the response.
27774	//
27775	// Possible values:
27776	//   "CLEANUP_FAILED"
27777	//   "DEPRECATED_RESOURCE_USED"
27778	//   "DEPRECATED_TYPE_USED"
27779	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
27780	//   "EXPERIMENTAL_TYPE_USED"
27781	//   "EXTERNAL_API_WARNING"
27782	//   "FIELD_VALUE_OVERRIDEN"
27783	//   "INJECTED_KERNELS_DEPRECATED"
27784	//   "LARGE_DEPLOYMENT_WARNING"
27785	//   "MISSING_TYPE_DEPENDENCY"
27786	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
27787	//   "NEXT_HOP_CANNOT_IP_FORWARD"
27788	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
27789	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
27790	//   "NEXT_HOP_NOT_RUNNING"
27791	//   "NOT_CRITICAL_ERROR"
27792	//   "NO_RESULTS_ON_PAGE"
27793	//   "PARTIAL_SUCCESS"
27794	//   "REQUIRED_TOS_AGREEMENT"
27795	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
27796	//   "RESOURCE_NOT_DELETED"
27797	//   "SCHEMA_VALIDATION_IGNORED"
27798	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
27799	//   "UNDECLARED_PROPERTIES"
27800	//   "UNREACHABLE"
27801	Code string `json:"code,omitempty"`
27802
27803	// Data: [Output Only] Metadata about this warning in key: value format.
27804	// For example:
27805	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
27806	Data []*NodeTypeListWarningData `json:"data,omitempty"`
27807
27808	// Message: [Output Only] A human-readable description of the warning
27809	// code.
27810	Message string `json:"message,omitempty"`
27811
27812	// ForceSendFields is a list of field names (e.g. "Code") to
27813	// unconditionally include in API requests. By default, fields with
27814	// empty values are omitted from API requests. However, any non-pointer,
27815	// non-interface field appearing in ForceSendFields will be sent to the
27816	// server regardless of whether the field is empty or not. This may be
27817	// used to include empty fields in Patch requests.
27818	ForceSendFields []string `json:"-"`
27819
27820	// NullFields is a list of field names (e.g. "Code") to include in API
27821	// requests with the JSON null value. By default, fields with empty
27822	// values are omitted from API requests. However, any field with an
27823	// empty value appearing in NullFields will be sent to the server as
27824	// null. It is an error if a field in this list has a non-empty value.
27825	// This may be used to include null fields in Patch requests.
27826	NullFields []string `json:"-"`
27827}
27828
27829func (s *NodeTypeListWarning) MarshalJSON() ([]byte, error) {
27830	type NoMethod NodeTypeListWarning
27831	raw := NoMethod(*s)
27832	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27833}
27834
27835type NodeTypeListWarningData struct {
27836	// Key: [Output Only] A key that provides more detail on the warning
27837	// being returned. For example, for warnings where there are no results
27838	// in a list request for a particular zone, this key might be scope and
27839	// the key value might be the zone name. Other examples might be a key
27840	// indicating a deprecated resource and a suggested replacement, or a
27841	// warning about invalid network settings (for example, if an instance
27842	// attempts to perform IP forwarding but is not enabled for IP
27843	// forwarding).
27844	Key string `json:"key,omitempty"`
27845
27846	// Value: [Output Only] A warning data value corresponding to the key.
27847	Value string `json:"value,omitempty"`
27848
27849	// ForceSendFields is a list of field names (e.g. "Key") to
27850	// unconditionally include in API requests. By default, fields with
27851	// empty values are omitted from API requests. However, any non-pointer,
27852	// non-interface field appearing in ForceSendFields will be sent to the
27853	// server regardless of whether the field is empty or not. This may be
27854	// used to include empty fields in Patch requests.
27855	ForceSendFields []string `json:"-"`
27856
27857	// NullFields is a list of field names (e.g. "Key") to include in API
27858	// requests with the JSON null value. By default, fields with empty
27859	// values are omitted from API requests. However, any field with an
27860	// empty value appearing in NullFields will be sent to the server as
27861	// null. It is an error if a field in this list has a non-empty value.
27862	// This may be used to include null fields in Patch requests.
27863	NullFields []string `json:"-"`
27864}
27865
27866func (s *NodeTypeListWarningData) MarshalJSON() ([]byte, error) {
27867	type NoMethod NodeTypeListWarningData
27868	raw := NoMethod(*s)
27869	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27870}
27871
27872type NodeTypesScopedList struct {
27873	// NodeTypes: [Output Only] A list of node types contained in this
27874	// scope.
27875	NodeTypes []*NodeType `json:"nodeTypes,omitempty"`
27876
27877	// Warning: [Output Only] An informational warning that appears when the
27878	// node types list is empty.
27879	Warning *NodeTypesScopedListWarning `json:"warning,omitempty"`
27880
27881	// ForceSendFields is a list of field names (e.g. "NodeTypes") to
27882	// unconditionally include in API requests. By default, fields with
27883	// empty values are omitted from API requests. However, any non-pointer,
27884	// non-interface field appearing in ForceSendFields will be sent to the
27885	// server regardless of whether the field is empty or not. This may be
27886	// used to include empty fields in Patch requests.
27887	ForceSendFields []string `json:"-"`
27888
27889	// NullFields is a list of field names (e.g. "NodeTypes") to include in
27890	// API requests with the JSON null value. By default, fields with empty
27891	// values are omitted from API requests. However, any field with an
27892	// empty value appearing in NullFields will be sent to the server as
27893	// null. It is an error if a field in this list has a non-empty value.
27894	// This may be used to include null fields in Patch requests.
27895	NullFields []string `json:"-"`
27896}
27897
27898func (s *NodeTypesScopedList) MarshalJSON() ([]byte, error) {
27899	type NoMethod NodeTypesScopedList
27900	raw := NoMethod(*s)
27901	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27902}
27903
27904// NodeTypesScopedListWarning: [Output Only] An informational warning
27905// that appears when the node types list is empty.
27906type NodeTypesScopedListWarning struct {
27907	// Code: [Output Only] A warning code, if applicable. For example,
27908	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
27909	// the response.
27910	//
27911	// Possible values:
27912	//   "CLEANUP_FAILED"
27913	//   "DEPRECATED_RESOURCE_USED"
27914	//   "DEPRECATED_TYPE_USED"
27915	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
27916	//   "EXPERIMENTAL_TYPE_USED"
27917	//   "EXTERNAL_API_WARNING"
27918	//   "FIELD_VALUE_OVERRIDEN"
27919	//   "INJECTED_KERNELS_DEPRECATED"
27920	//   "LARGE_DEPLOYMENT_WARNING"
27921	//   "MISSING_TYPE_DEPENDENCY"
27922	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
27923	//   "NEXT_HOP_CANNOT_IP_FORWARD"
27924	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
27925	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
27926	//   "NEXT_HOP_NOT_RUNNING"
27927	//   "NOT_CRITICAL_ERROR"
27928	//   "NO_RESULTS_ON_PAGE"
27929	//   "PARTIAL_SUCCESS"
27930	//   "REQUIRED_TOS_AGREEMENT"
27931	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
27932	//   "RESOURCE_NOT_DELETED"
27933	//   "SCHEMA_VALIDATION_IGNORED"
27934	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
27935	//   "UNDECLARED_PROPERTIES"
27936	//   "UNREACHABLE"
27937	Code string `json:"code,omitempty"`
27938
27939	// Data: [Output Only] Metadata about this warning in key: value format.
27940	// For example:
27941	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
27942	Data []*NodeTypesScopedListWarningData `json:"data,omitempty"`
27943
27944	// Message: [Output Only] A human-readable description of the warning
27945	// code.
27946	Message string `json:"message,omitempty"`
27947
27948	// ForceSendFields is a list of field names (e.g. "Code") to
27949	// unconditionally include in API requests. By default, fields with
27950	// empty values are omitted from API requests. However, any non-pointer,
27951	// non-interface field appearing in ForceSendFields will be sent to the
27952	// server regardless of whether the field is empty or not. This may be
27953	// used to include empty fields in Patch requests.
27954	ForceSendFields []string `json:"-"`
27955
27956	// NullFields is a list of field names (e.g. "Code") to include in API
27957	// requests with the JSON null value. By default, fields with empty
27958	// values are omitted from API requests. However, any field with an
27959	// empty value appearing in NullFields will be sent to the server as
27960	// null. It is an error if a field in this list has a non-empty value.
27961	// This may be used to include null fields in Patch requests.
27962	NullFields []string `json:"-"`
27963}
27964
27965func (s *NodeTypesScopedListWarning) MarshalJSON() ([]byte, error) {
27966	type NoMethod NodeTypesScopedListWarning
27967	raw := NoMethod(*s)
27968	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27969}
27970
27971type NodeTypesScopedListWarningData struct {
27972	// Key: [Output Only] A key that provides more detail on the warning
27973	// being returned. For example, for warnings where there are no results
27974	// in a list request for a particular zone, this key might be scope and
27975	// the key value might be the zone name. Other examples might be a key
27976	// indicating a deprecated resource and a suggested replacement, or a
27977	// warning about invalid network settings (for example, if an instance
27978	// attempts to perform IP forwarding but is not enabled for IP
27979	// forwarding).
27980	Key string `json:"key,omitempty"`
27981
27982	// Value: [Output Only] A warning data value corresponding to the key.
27983	Value string `json:"value,omitempty"`
27984
27985	// ForceSendFields is a list of field names (e.g. "Key") to
27986	// unconditionally include in API requests. By default, fields with
27987	// empty values are omitted from API requests. However, any non-pointer,
27988	// non-interface field appearing in ForceSendFields will be sent to the
27989	// server regardless of whether the field is empty or not. This may be
27990	// used to include empty fields in Patch requests.
27991	ForceSendFields []string `json:"-"`
27992
27993	// NullFields is a list of field names (e.g. "Key") to include in API
27994	// requests with the JSON null value. By default, fields with empty
27995	// values are omitted from API requests. However, any field with an
27996	// empty value appearing in NullFields will be sent to the server as
27997	// null. It is an error if a field in this list has a non-empty value.
27998	// This may be used to include null fields in Patch requests.
27999	NullFields []string `json:"-"`
28000}
28001
28002func (s *NodeTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
28003	type NoMethod NodeTypesScopedListWarningData
28004	raw := NoMethod(*s)
28005	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28006}
28007
28008// NotificationEndpoint: Represents a notification endpoint.
28009//
28010// A notification endpoint resource defines an endpoint to receive
28011// notifications when there are status changes detected by the
28012// associated health check service.
28013//
28014// For more information, see  Health checks overview. (== resource_for
28015// {$api_version}.notificationEndpoint ==) (== resource_for
28016// {$api_version}.regionNotificationEndpoints ==)
28017type NotificationEndpoint struct {
28018	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
28019	// format.
28020	CreationTimestamp string `json:"creationTimestamp,omitempty"`
28021
28022	// Description: An optional description of this resource. Provide this
28023	// property when you create the resource.
28024	Description string `json:"description,omitempty"`
28025
28026	// GrpcSettings: Settings of the gRPC notification endpoint including
28027	// the endpoint URL and the retry duration.
28028	GrpcSettings *NotificationEndpointGrpcSettings `json:"grpcSettings,omitempty"`
28029
28030	// Id: [Output Only] A unique identifier for this resource type. The
28031	// server generates this identifier.
28032	Id uint64 `json:"id,omitempty,string"`
28033
28034	// Kind: [Output Only] Type of the resource. Always
28035	// compute#notificationEndpoint for notification endpoints.
28036	Kind string `json:"kind,omitempty"`
28037
28038	// Name: Name of the resource. Provided by the client when the resource
28039	// is created. The name must be 1-63 characters long, and comply with
28040	// RFC1035. Specifically, the name must be 1-63 characters long and
28041	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
28042	// the first character must be a lowercase letter, and all following
28043	// characters must be a dash, lowercase letter, or digit, except the
28044	// last character, which cannot be a dash.
28045	Name string `json:"name,omitempty"`
28046
28047	// Region: [Output Only] URL of the region where the notification
28048	// endpoint resides. This field applies only to the regional resource.
28049	// You must specify this field as part of the HTTP request URL. It is
28050	// not settable as a field in the request body.
28051	Region string `json:"region,omitempty"`
28052
28053	// SelfLink: [Output Only] Server-defined URL for the resource.
28054	SelfLink string `json:"selfLink,omitempty"`
28055
28056	// ServerResponse contains the HTTP response code and headers from the
28057	// server.
28058	googleapi.ServerResponse `json:"-"`
28059
28060	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
28061	// to unconditionally include in API requests. By default, fields with
28062	// empty values are omitted from API requests. However, any non-pointer,
28063	// non-interface field appearing in ForceSendFields will be sent to the
28064	// server regardless of whether the field is empty or not. This may be
28065	// used to include empty fields in Patch requests.
28066	ForceSendFields []string `json:"-"`
28067
28068	// NullFields is a list of field names (e.g. "CreationTimestamp") to
28069	// include in API requests with the JSON null value. By default, fields
28070	// with empty values are omitted from API requests. However, any field
28071	// with an empty value appearing in NullFields will be sent to the
28072	// server as null. It is an error if a field in this list has a
28073	// non-empty value. This may be used to include null fields in Patch
28074	// requests.
28075	NullFields []string `json:"-"`
28076}
28077
28078func (s *NotificationEndpoint) MarshalJSON() ([]byte, error) {
28079	type NoMethod NotificationEndpoint
28080	raw := NoMethod(*s)
28081	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28082}
28083
28084// NotificationEndpointGrpcSettings: Represents a gRPC setting that
28085// describes one gRPC notification endpoint and the retry duration
28086// attempting to send notification to this endpoint.
28087type NotificationEndpointGrpcSettings struct {
28088	// Authority: Optional. If specified, this field is used to set the
28089	// authority header by the sender of notifications. See
28090	// https://tools.ietf.org/html/rfc7540#section-8.1.2.3
28091	Authority string `json:"authority,omitempty"`
28092
28093	// Endpoint: Endpoint to which gRPC notifications are sent. This must be
28094	// a valid gRPCLB DNS name.
28095	Endpoint string `json:"endpoint,omitempty"`
28096
28097	// PayloadName: Optional. If specified, this field is used to populate
28098	// the "name" field in gRPC requests.
28099	PayloadName string `json:"payloadName,omitempty"`
28100
28101	// ResendInterval: Optional. This field is used to configure how often
28102	// to send a full update of all non-healthy backends. If unspecified,
28103	// full updates are not sent. If specified, must be in the range between
28104	// 600 seconds to 3600 seconds. Nanos are disallowed.
28105	ResendInterval *Duration `json:"resendInterval,omitempty"`
28106
28107	// RetryDurationSec: How much time (in seconds) is spent attempting
28108	// notification retries until a successful response is received. Default
28109	// is 30s. Limit is 20m (1200s). Must be a positive number.
28110	RetryDurationSec int64 `json:"retryDurationSec,omitempty"`
28111
28112	// ForceSendFields is a list of field names (e.g. "Authority") to
28113	// unconditionally include in API requests. By default, fields with
28114	// empty values are omitted from API requests. However, any non-pointer,
28115	// non-interface field appearing in ForceSendFields will be sent to the
28116	// server regardless of whether the field is empty or not. This may be
28117	// used to include empty fields in Patch requests.
28118	ForceSendFields []string `json:"-"`
28119
28120	// NullFields is a list of field names (e.g. "Authority") to include in
28121	// API requests with the JSON null value. By default, fields with empty
28122	// values are omitted from API requests. However, any field with an
28123	// empty value appearing in NullFields will be sent to the server as
28124	// null. It is an error if a field in this list has a non-empty value.
28125	// This may be used to include null fields in Patch requests.
28126	NullFields []string `json:"-"`
28127}
28128
28129func (s *NotificationEndpointGrpcSettings) MarshalJSON() ([]byte, error) {
28130	type NoMethod NotificationEndpointGrpcSettings
28131	raw := NoMethod(*s)
28132	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28133}
28134
28135type NotificationEndpointList struct {
28136	// Id: [Output Only] Unique identifier for the resource; defined by the
28137	// server.
28138	Id string `json:"id,omitempty"`
28139
28140	// Items: A list of NotificationEndpoint resources.
28141	Items []*NotificationEndpoint `json:"items,omitempty"`
28142
28143	// Kind: [Output Only] Type of the resource. Always
28144	// compute#notificationEndpoint for notification endpoints.
28145	Kind string `json:"kind,omitempty"`
28146
28147	// NextPageToken: [Output Only] This token allows you to get the next
28148	// page of results for list requests. If the number of results is larger
28149	// than maxResults, use the nextPageToken as a value for the query
28150	// parameter pageToken in the next list request. Subsequent list
28151	// requests will have their own nextPageToken to continue paging through
28152	// the results.
28153	NextPageToken string `json:"nextPageToken,omitempty"`
28154
28155	// SelfLink: [Output Only] Server-defined URL for this resource.
28156	SelfLink string `json:"selfLink,omitempty"`
28157
28158	// Warning: [Output Only] Informational warning message.
28159	Warning *NotificationEndpointListWarning `json:"warning,omitempty"`
28160
28161	// ServerResponse contains the HTTP response code and headers from the
28162	// server.
28163	googleapi.ServerResponse `json:"-"`
28164
28165	// ForceSendFields is a list of field names (e.g. "Id") to
28166	// unconditionally include in API requests. By default, fields with
28167	// empty values are omitted from API requests. However, any non-pointer,
28168	// non-interface field appearing in ForceSendFields will be sent to the
28169	// server regardless of whether the field is empty or not. This may be
28170	// used to include empty fields in Patch requests.
28171	ForceSendFields []string `json:"-"`
28172
28173	// NullFields is a list of field names (e.g. "Id") to include in API
28174	// requests with the JSON null value. By default, fields with empty
28175	// values are omitted from API requests. However, any field with an
28176	// empty value appearing in NullFields will be sent to the server as
28177	// null. It is an error if a field in this list has a non-empty value.
28178	// This may be used to include null fields in Patch requests.
28179	NullFields []string `json:"-"`
28180}
28181
28182func (s *NotificationEndpointList) MarshalJSON() ([]byte, error) {
28183	type NoMethod NotificationEndpointList
28184	raw := NoMethod(*s)
28185	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28186}
28187
28188// NotificationEndpointListWarning: [Output Only] Informational warning
28189// message.
28190type NotificationEndpointListWarning struct {
28191	// Code: [Output Only] A warning code, if applicable. For example,
28192	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
28193	// the response.
28194	//
28195	// Possible values:
28196	//   "CLEANUP_FAILED"
28197	//   "DEPRECATED_RESOURCE_USED"
28198	//   "DEPRECATED_TYPE_USED"
28199	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
28200	//   "EXPERIMENTAL_TYPE_USED"
28201	//   "EXTERNAL_API_WARNING"
28202	//   "FIELD_VALUE_OVERRIDEN"
28203	//   "INJECTED_KERNELS_DEPRECATED"
28204	//   "LARGE_DEPLOYMENT_WARNING"
28205	//   "MISSING_TYPE_DEPENDENCY"
28206	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
28207	//   "NEXT_HOP_CANNOT_IP_FORWARD"
28208	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
28209	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
28210	//   "NEXT_HOP_NOT_RUNNING"
28211	//   "NOT_CRITICAL_ERROR"
28212	//   "NO_RESULTS_ON_PAGE"
28213	//   "PARTIAL_SUCCESS"
28214	//   "REQUIRED_TOS_AGREEMENT"
28215	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
28216	//   "RESOURCE_NOT_DELETED"
28217	//   "SCHEMA_VALIDATION_IGNORED"
28218	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
28219	//   "UNDECLARED_PROPERTIES"
28220	//   "UNREACHABLE"
28221	Code string `json:"code,omitempty"`
28222
28223	// Data: [Output Only] Metadata about this warning in key: value format.
28224	// For example:
28225	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
28226	Data []*NotificationEndpointListWarningData `json:"data,omitempty"`
28227
28228	// Message: [Output Only] A human-readable description of the warning
28229	// code.
28230	Message string `json:"message,omitempty"`
28231
28232	// ForceSendFields is a list of field names (e.g. "Code") to
28233	// unconditionally include in API requests. By default, fields with
28234	// empty values are omitted from API requests. However, any non-pointer,
28235	// non-interface field appearing in ForceSendFields will be sent to the
28236	// server regardless of whether the field is empty or not. This may be
28237	// used to include empty fields in Patch requests.
28238	ForceSendFields []string `json:"-"`
28239
28240	// NullFields is a list of field names (e.g. "Code") to include in API
28241	// requests with the JSON null value. By default, fields with empty
28242	// values are omitted from API requests. However, any field with an
28243	// empty value appearing in NullFields will be sent to the server as
28244	// null. It is an error if a field in this list has a non-empty value.
28245	// This may be used to include null fields in Patch requests.
28246	NullFields []string `json:"-"`
28247}
28248
28249func (s *NotificationEndpointListWarning) MarshalJSON() ([]byte, error) {
28250	type NoMethod NotificationEndpointListWarning
28251	raw := NoMethod(*s)
28252	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28253}
28254
28255type NotificationEndpointListWarningData struct {
28256	// Key: [Output Only] A key that provides more detail on the warning
28257	// being returned. For example, for warnings where there are no results
28258	// in a list request for a particular zone, this key might be scope and
28259	// the key value might be the zone name. Other examples might be a key
28260	// indicating a deprecated resource and a suggested replacement, or a
28261	// warning about invalid network settings (for example, if an instance
28262	// attempts to perform IP forwarding but is not enabled for IP
28263	// forwarding).
28264	Key string `json:"key,omitempty"`
28265
28266	// Value: [Output Only] A warning data value corresponding to the key.
28267	Value string `json:"value,omitempty"`
28268
28269	// ForceSendFields is a list of field names (e.g. "Key") to
28270	// unconditionally include in API requests. By default, fields with
28271	// empty values are omitted from API requests. However, any non-pointer,
28272	// non-interface field appearing in ForceSendFields will be sent to the
28273	// server regardless of whether the field is empty or not. This may be
28274	// used to include empty fields in Patch requests.
28275	ForceSendFields []string `json:"-"`
28276
28277	// NullFields is a list of field names (e.g. "Key") to include in API
28278	// requests with the JSON null value. By default, fields with empty
28279	// values are omitted from API requests. However, any field with an
28280	// empty value appearing in NullFields will be sent to the server as
28281	// null. It is an error if a field in this list has a non-empty value.
28282	// This may be used to include null fields in Patch requests.
28283	NullFields []string `json:"-"`
28284}
28285
28286func (s *NotificationEndpointListWarningData) MarshalJSON() ([]byte, error) {
28287	type NoMethod NotificationEndpointListWarningData
28288	raw := NoMethod(*s)
28289	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28290}
28291
28292// Operation: Represents an Operation resource.
28293//
28294// Google Compute Engine has three Operation resources:
28295//
28296// * Global
28297// (/compute/docs/reference/rest/{$api_version}/globalOperations) *
28298// Regional
28299// (/compute/docs/reference/rest/{$api_version}/regionOperations) *
28300// Zonal
28301// (/compute/docs/reference/rest/{$api_version}/zoneOperations)
28302//
28303// You can use an operation resource to manage asynchronous API
28304// requests. For more information, read Handling API
28305// responses.
28306//
28307// Operations can be global, regional or zonal.
28308// - For global operations, use the `globalOperations` resource.
28309// - For regional operations, use the `regionOperations` resource.
28310// - For zonal operations, use the `zonalOperations` resource.
28311//
28312// For more information, read  Global, Regional, and Zonal Resources.
28313// (== resource_for {$api_version}.globalOperations ==) (== resource_for
28314// {$api_version}.regionOperations ==) (== resource_for
28315// {$api_version}.zoneOperations ==)
28316type Operation struct {
28317	// ClientOperationId: [Output Only] The value of `requestId` if you
28318	// provided it in the request. Not present otherwise.
28319	ClientOperationId string `json:"clientOperationId,omitempty"`
28320
28321	// CreationTimestamp: [Deprecated] This field is deprecated.
28322	CreationTimestamp string `json:"creationTimestamp,omitempty"`
28323
28324	// Description: [Output Only] A textual description of the operation,
28325	// which is set when the operation is created.
28326	Description string `json:"description,omitempty"`
28327
28328	// EndTime: [Output Only] The time that this operation was completed.
28329	// This value is in RFC3339 text format.
28330	EndTime string `json:"endTime,omitempty"`
28331
28332	// Error: [Output Only] If errors are generated during processing of the
28333	// operation, this field will be populated.
28334	Error *OperationError `json:"error,omitempty"`
28335
28336	// HttpErrorMessage: [Output Only] If the operation fails, this field
28337	// contains the HTTP error message that was returned, such as `NOT
28338	// FOUND`.
28339	HttpErrorMessage string `json:"httpErrorMessage,omitempty"`
28340
28341	// HttpErrorStatusCode: [Output Only] If the operation fails, this field
28342	// contains the HTTP error status code that was returned. For example, a
28343	// `404` means the resource was not found.
28344	HttpErrorStatusCode int64 `json:"httpErrorStatusCode,omitempty"`
28345
28346	// Id: [Output Only] The unique identifier for the operation. This
28347	// identifier is defined by the server.
28348	Id uint64 `json:"id,omitempty,string"`
28349
28350	// InsertTime: [Output Only] The time that this operation was requested.
28351	// This value is in RFC3339 text format.
28352	InsertTime string `json:"insertTime,omitempty"`
28353
28354	// Kind: [Output Only] Type of the resource. Always `compute#operation`
28355	// for Operation resources.
28356	Kind string `json:"kind,omitempty"`
28357
28358	// Name: [Output Only] Name of the operation.
28359	Name string `json:"name,omitempty"`
28360
28361	// OperationGroupId: [Output Only] An ID that represents a group of
28362	// operations, such as when a group of operations results from a
28363	// `bulkInsert` API request.
28364	OperationGroupId string `json:"operationGroupId,omitempty"`
28365
28366	// OperationType: [Output Only] The type of operation, such as `insert`,
28367	// `update`, or `delete`, and so on.
28368	OperationType string `json:"operationType,omitempty"`
28369
28370	// Progress: [Output Only] An optional progress indicator that ranges
28371	// from 0 to 100. There is no requirement that this be linear or support
28372	// any granularity of operations. This should not be used to guess when
28373	// the operation will be complete. This number should monotonically
28374	// increase as the operation progresses.
28375	Progress int64 `json:"progress,omitempty"`
28376
28377	// Region: [Output Only] The URL of the region where the operation
28378	// resides. Only applicable when performing regional operations.
28379	Region string `json:"region,omitempty"`
28380
28381	// SelfLink: [Output Only] Server-defined URL for the resource.
28382	SelfLink string `json:"selfLink,omitempty"`
28383
28384	// StartTime: [Output Only] The time that this operation was started by
28385	// the server. This value is in RFC3339 text format.
28386	StartTime string `json:"startTime,omitempty"`
28387
28388	// Status: [Output Only] The status of the operation, which can be one
28389	// of the following: `PENDING`, `RUNNING`, or `DONE`.
28390	//
28391	// Possible values:
28392	//   "DONE"
28393	//   "PENDING"
28394	//   "RUNNING"
28395	Status string `json:"status,omitempty"`
28396
28397	// StatusMessage: [Output Only] An optional textual description of the
28398	// current status of the operation.
28399	StatusMessage string `json:"statusMessage,omitempty"`
28400
28401	// TargetId: [Output Only] The unique target ID, which identifies a
28402	// specific incarnation of the target resource.
28403	TargetId uint64 `json:"targetId,omitempty,string"`
28404
28405	// TargetLink: [Output Only] The URL of the resource that the operation
28406	// modifies. For operations related to creating a snapshot, this points
28407	// to the persistent disk that the snapshot was created from.
28408	TargetLink string `json:"targetLink,omitempty"`
28409
28410	// User: [Output Only] User who requested the operation, for example:
28411	// `user@example.com`.
28412	User string `json:"user,omitempty"`
28413
28414	// Warnings: [Output Only] If warning messages are generated during
28415	// processing of the operation, this field will be populated.
28416	Warnings []*OperationWarnings `json:"warnings,omitempty"`
28417
28418	// Zone: [Output Only] The URL of the zone where the operation resides.
28419	// Only applicable when performing per-zone operations.
28420	Zone string `json:"zone,omitempty"`
28421
28422	// ServerResponse contains the HTTP response code and headers from the
28423	// server.
28424	googleapi.ServerResponse `json:"-"`
28425
28426	// ForceSendFields is a list of field names (e.g. "ClientOperationId")
28427	// to unconditionally include in API requests. By default, fields with
28428	// empty values are omitted from API requests. However, any non-pointer,
28429	// non-interface field appearing in ForceSendFields will be sent to the
28430	// server regardless of whether the field is empty or not. This may be
28431	// used to include empty fields in Patch requests.
28432	ForceSendFields []string `json:"-"`
28433
28434	// NullFields is a list of field names (e.g. "ClientOperationId") to
28435	// include in API requests with the JSON null value. By default, fields
28436	// with empty values are omitted from API requests. However, any field
28437	// with an empty value appearing in NullFields will be sent to the
28438	// server as null. It is an error if a field in this list has a
28439	// non-empty value. This may be used to include null fields in Patch
28440	// requests.
28441	NullFields []string `json:"-"`
28442}
28443
28444func (s *Operation) MarshalJSON() ([]byte, error) {
28445	type NoMethod Operation
28446	raw := NoMethod(*s)
28447	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28448}
28449
28450// OperationError: [Output Only] If errors are generated during
28451// processing of the operation, this field will be populated.
28452type OperationError struct {
28453	// Errors: [Output Only] The array of errors encountered while
28454	// processing this operation.
28455	Errors []*OperationErrorErrors `json:"errors,omitempty"`
28456
28457	// ForceSendFields is a list of field names (e.g. "Errors") to
28458	// unconditionally include in API requests. By default, fields with
28459	// empty values are omitted from API requests. However, any non-pointer,
28460	// non-interface field appearing in ForceSendFields will be sent to the
28461	// server regardless of whether the field is empty or not. This may be
28462	// used to include empty fields in Patch requests.
28463	ForceSendFields []string `json:"-"`
28464
28465	// NullFields is a list of field names (e.g. "Errors") to include in API
28466	// requests with the JSON null value. By default, fields with empty
28467	// values are omitted from API requests. However, any field with an
28468	// empty value appearing in NullFields will be sent to the server as
28469	// null. It is an error if a field in this list has a non-empty value.
28470	// This may be used to include null fields in Patch requests.
28471	NullFields []string `json:"-"`
28472}
28473
28474func (s *OperationError) MarshalJSON() ([]byte, error) {
28475	type NoMethod OperationError
28476	raw := NoMethod(*s)
28477	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28478}
28479
28480type OperationErrorErrors struct {
28481	// Code: [Output Only] The error type identifier for this error.
28482	Code string `json:"code,omitempty"`
28483
28484	// Location: [Output Only] Indicates the field in the request that
28485	// caused the error. This property is optional.
28486	Location string `json:"location,omitempty"`
28487
28488	// Message: [Output Only] An optional, human-readable error message.
28489	Message string `json:"message,omitempty"`
28490
28491	// ForceSendFields is a list of field names (e.g. "Code") to
28492	// unconditionally include in API requests. By default, fields with
28493	// empty values are omitted from API requests. However, any non-pointer,
28494	// non-interface field appearing in ForceSendFields will be sent to the
28495	// server regardless of whether the field is empty or not. This may be
28496	// used to include empty fields in Patch requests.
28497	ForceSendFields []string `json:"-"`
28498
28499	// NullFields is a list of field names (e.g. "Code") to include in API
28500	// requests with the JSON null value. By default, fields with empty
28501	// values are omitted from API requests. However, any field with an
28502	// empty value appearing in NullFields will be sent to the server as
28503	// null. It is an error if a field in this list has a non-empty value.
28504	// This may be used to include null fields in Patch requests.
28505	NullFields []string `json:"-"`
28506}
28507
28508func (s *OperationErrorErrors) MarshalJSON() ([]byte, error) {
28509	type NoMethod OperationErrorErrors
28510	raw := NoMethod(*s)
28511	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28512}
28513
28514type OperationWarnings struct {
28515	// Code: [Output Only] A warning code, if applicable. For example,
28516	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
28517	// the response.
28518	//
28519	// Possible values:
28520	//   "CLEANUP_FAILED"
28521	//   "DEPRECATED_RESOURCE_USED"
28522	//   "DEPRECATED_TYPE_USED"
28523	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
28524	//   "EXPERIMENTAL_TYPE_USED"
28525	//   "EXTERNAL_API_WARNING"
28526	//   "FIELD_VALUE_OVERRIDEN"
28527	//   "INJECTED_KERNELS_DEPRECATED"
28528	//   "LARGE_DEPLOYMENT_WARNING"
28529	//   "MISSING_TYPE_DEPENDENCY"
28530	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
28531	//   "NEXT_HOP_CANNOT_IP_FORWARD"
28532	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
28533	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
28534	//   "NEXT_HOP_NOT_RUNNING"
28535	//   "NOT_CRITICAL_ERROR"
28536	//   "NO_RESULTS_ON_PAGE"
28537	//   "PARTIAL_SUCCESS"
28538	//   "REQUIRED_TOS_AGREEMENT"
28539	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
28540	//   "RESOURCE_NOT_DELETED"
28541	//   "SCHEMA_VALIDATION_IGNORED"
28542	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
28543	//   "UNDECLARED_PROPERTIES"
28544	//   "UNREACHABLE"
28545	Code string `json:"code,omitempty"`
28546
28547	// Data: [Output Only] Metadata about this warning in key: value format.
28548	// For example:
28549	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
28550	Data []*OperationWarningsData `json:"data,omitempty"`
28551
28552	// Message: [Output Only] A human-readable description of the warning
28553	// code.
28554	Message string `json:"message,omitempty"`
28555
28556	// ForceSendFields is a list of field names (e.g. "Code") to
28557	// unconditionally include in API requests. By default, fields with
28558	// empty values are omitted from API requests. However, any non-pointer,
28559	// non-interface field appearing in ForceSendFields will be sent to the
28560	// server regardless of whether the field is empty or not. This may be
28561	// used to include empty fields in Patch requests.
28562	ForceSendFields []string `json:"-"`
28563
28564	// NullFields is a list of field names (e.g. "Code") to include in API
28565	// requests with the JSON null value. By default, fields with empty
28566	// values are omitted from API requests. However, any field with an
28567	// empty value appearing in NullFields will be sent to the server as
28568	// null. It is an error if a field in this list has a non-empty value.
28569	// This may be used to include null fields in Patch requests.
28570	NullFields []string `json:"-"`
28571}
28572
28573func (s *OperationWarnings) MarshalJSON() ([]byte, error) {
28574	type NoMethod OperationWarnings
28575	raw := NoMethod(*s)
28576	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28577}
28578
28579type OperationWarningsData struct {
28580	// Key: [Output Only] A key that provides more detail on the warning
28581	// being returned. For example, for warnings where there are no results
28582	// in a list request for a particular zone, this key might be scope and
28583	// the key value might be the zone name. Other examples might be a key
28584	// indicating a deprecated resource and a suggested replacement, or a
28585	// warning about invalid network settings (for example, if an instance
28586	// attempts to perform IP forwarding but is not enabled for IP
28587	// forwarding).
28588	Key string `json:"key,omitempty"`
28589
28590	// Value: [Output Only] A warning data value corresponding to the key.
28591	Value string `json:"value,omitempty"`
28592
28593	// ForceSendFields is a list of field names (e.g. "Key") to
28594	// unconditionally include in API requests. By default, fields with
28595	// empty values are omitted from API requests. However, any non-pointer,
28596	// non-interface field appearing in ForceSendFields will be sent to the
28597	// server regardless of whether the field is empty or not. This may be
28598	// used to include empty fields in Patch requests.
28599	ForceSendFields []string `json:"-"`
28600
28601	// NullFields is a list of field names (e.g. "Key") to include in API
28602	// requests with the JSON null value. By default, fields with empty
28603	// values are omitted from API requests. However, any field with an
28604	// empty value appearing in NullFields will be sent to the server as
28605	// null. It is an error if a field in this list has a non-empty value.
28606	// This may be used to include null fields in Patch requests.
28607	NullFields []string `json:"-"`
28608}
28609
28610func (s *OperationWarningsData) MarshalJSON() ([]byte, error) {
28611	type NoMethod OperationWarningsData
28612	raw := NoMethod(*s)
28613	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28614}
28615
28616type OperationAggregatedList struct {
28617	// Id: [Output Only] The unique identifier for the resource. This
28618	// identifier is defined by the server.
28619	Id string `json:"id,omitempty"`
28620
28621	// Items: [Output Only] A map of scoped operation lists.
28622	Items map[string]OperationsScopedList `json:"items,omitempty"`
28623
28624	// Kind: [Output Only] Type of resource. Always
28625	// `compute#operationAggregatedList` for aggregated lists of operations.
28626	Kind string `json:"kind,omitempty"`
28627
28628	// NextPageToken: [Output Only] This token allows you to get the next
28629	// page of results for list requests. If the number of results is larger
28630	// than `maxResults`, use the `nextPageToken` as a value for the query
28631	// parameter `pageToken` in the next list request. Subsequent list
28632	// requests will have their own `nextPageToken` to continue paging
28633	// through the results.
28634	NextPageToken string `json:"nextPageToken,omitempty"`
28635
28636	// SelfLink: [Output Only] Server-defined URL for this resource.
28637	SelfLink string `json:"selfLink,omitempty"`
28638
28639	// Unreachables: [Output Only] Unreachable resources.
28640	Unreachables []string `json:"unreachables,omitempty"`
28641
28642	// Warning: [Output Only] Informational warning message.
28643	Warning *OperationAggregatedListWarning `json:"warning,omitempty"`
28644
28645	// ServerResponse contains the HTTP response code and headers from the
28646	// server.
28647	googleapi.ServerResponse `json:"-"`
28648
28649	// ForceSendFields is a list of field names (e.g. "Id") to
28650	// unconditionally include in API requests. By default, fields with
28651	// empty values are omitted from API requests. However, any non-pointer,
28652	// non-interface field appearing in ForceSendFields will be sent to the
28653	// server regardless of whether the field is empty or not. This may be
28654	// used to include empty fields in Patch requests.
28655	ForceSendFields []string `json:"-"`
28656
28657	// NullFields is a list of field names (e.g. "Id") to include in API
28658	// requests with the JSON null value. By default, fields with empty
28659	// values are omitted from API requests. However, any field with an
28660	// empty value appearing in NullFields will be sent to the server as
28661	// null. It is an error if a field in this list has a non-empty value.
28662	// This may be used to include null fields in Patch requests.
28663	NullFields []string `json:"-"`
28664}
28665
28666func (s *OperationAggregatedList) MarshalJSON() ([]byte, error) {
28667	type NoMethod OperationAggregatedList
28668	raw := NoMethod(*s)
28669	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28670}
28671
28672// OperationAggregatedListWarning: [Output Only] Informational warning
28673// message.
28674type OperationAggregatedListWarning struct {
28675	// Code: [Output Only] A warning code, if applicable. For example,
28676	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
28677	// the response.
28678	//
28679	// Possible values:
28680	//   "CLEANUP_FAILED"
28681	//   "DEPRECATED_RESOURCE_USED"
28682	//   "DEPRECATED_TYPE_USED"
28683	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
28684	//   "EXPERIMENTAL_TYPE_USED"
28685	//   "EXTERNAL_API_WARNING"
28686	//   "FIELD_VALUE_OVERRIDEN"
28687	//   "INJECTED_KERNELS_DEPRECATED"
28688	//   "LARGE_DEPLOYMENT_WARNING"
28689	//   "MISSING_TYPE_DEPENDENCY"
28690	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
28691	//   "NEXT_HOP_CANNOT_IP_FORWARD"
28692	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
28693	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
28694	//   "NEXT_HOP_NOT_RUNNING"
28695	//   "NOT_CRITICAL_ERROR"
28696	//   "NO_RESULTS_ON_PAGE"
28697	//   "PARTIAL_SUCCESS"
28698	//   "REQUIRED_TOS_AGREEMENT"
28699	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
28700	//   "RESOURCE_NOT_DELETED"
28701	//   "SCHEMA_VALIDATION_IGNORED"
28702	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
28703	//   "UNDECLARED_PROPERTIES"
28704	//   "UNREACHABLE"
28705	Code string `json:"code,omitempty"`
28706
28707	// Data: [Output Only] Metadata about this warning in key: value format.
28708	// For example:
28709	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
28710	Data []*OperationAggregatedListWarningData `json:"data,omitempty"`
28711
28712	// Message: [Output Only] A human-readable description of the warning
28713	// code.
28714	Message string `json:"message,omitempty"`
28715
28716	// ForceSendFields is a list of field names (e.g. "Code") to
28717	// unconditionally include in API requests. By default, fields with
28718	// empty values are omitted from API requests. However, any non-pointer,
28719	// non-interface field appearing in ForceSendFields will be sent to the
28720	// server regardless of whether the field is empty or not. This may be
28721	// used to include empty fields in Patch requests.
28722	ForceSendFields []string `json:"-"`
28723
28724	// NullFields is a list of field names (e.g. "Code") to include in API
28725	// requests with the JSON null value. By default, fields with empty
28726	// values are omitted from API requests. However, any field with an
28727	// empty value appearing in NullFields will be sent to the server as
28728	// null. It is an error if a field in this list has a non-empty value.
28729	// This may be used to include null fields in Patch requests.
28730	NullFields []string `json:"-"`
28731}
28732
28733func (s *OperationAggregatedListWarning) MarshalJSON() ([]byte, error) {
28734	type NoMethod OperationAggregatedListWarning
28735	raw := NoMethod(*s)
28736	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28737}
28738
28739type OperationAggregatedListWarningData struct {
28740	// Key: [Output Only] A key that provides more detail on the warning
28741	// being returned. For example, for warnings where there are no results
28742	// in a list request for a particular zone, this key might be scope and
28743	// the key value might be the zone name. Other examples might be a key
28744	// indicating a deprecated resource and a suggested replacement, or a
28745	// warning about invalid network settings (for example, if an instance
28746	// attempts to perform IP forwarding but is not enabled for IP
28747	// forwarding).
28748	Key string `json:"key,omitempty"`
28749
28750	// Value: [Output Only] A warning data value corresponding to the key.
28751	Value string `json:"value,omitempty"`
28752
28753	// ForceSendFields is a list of field names (e.g. "Key") to
28754	// unconditionally include in API requests. By default, fields with
28755	// empty values are omitted from API requests. However, any non-pointer,
28756	// non-interface field appearing in ForceSendFields will be sent to the
28757	// server regardless of whether the field is empty or not. This may be
28758	// used to include empty fields in Patch requests.
28759	ForceSendFields []string `json:"-"`
28760
28761	// NullFields is a list of field names (e.g. "Key") to include in API
28762	// requests with the JSON null value. By default, fields with empty
28763	// values are omitted from API requests. However, any field with an
28764	// empty value appearing in NullFields will be sent to the server as
28765	// null. It is an error if a field in this list has a non-empty value.
28766	// This may be used to include null fields in Patch requests.
28767	NullFields []string `json:"-"`
28768}
28769
28770func (s *OperationAggregatedListWarningData) MarshalJSON() ([]byte, error) {
28771	type NoMethod OperationAggregatedListWarningData
28772	raw := NoMethod(*s)
28773	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28774}
28775
28776// OperationList: Contains a list of Operation resources.
28777type OperationList struct {
28778	// Id: [Output Only] The unique identifier for the resource. This
28779	// identifier is defined by the server.
28780	Id string `json:"id,omitempty"`
28781
28782	// Items: [Output Only] A list of Operation resources.
28783	Items []*Operation `json:"items,omitempty"`
28784
28785	// Kind: [Output Only] Type of resource. Always `compute#operations` for
28786	// Operations resource.
28787	Kind string `json:"kind,omitempty"`
28788
28789	// NextPageToken: [Output Only] This token allows you to get the next
28790	// page of results for list requests. If the number of results is larger
28791	// than `maxResults`, use the `nextPageToken` as a value for the query
28792	// parameter `pageToken` in the next list request. Subsequent list
28793	// requests will have their own `nextPageToken` to continue paging
28794	// through the results.
28795	NextPageToken string `json:"nextPageToken,omitempty"`
28796
28797	// SelfLink: [Output Only] Server-defined URL for this resource.
28798	SelfLink string `json:"selfLink,omitempty"`
28799
28800	// Warning: [Output Only] Informational warning message.
28801	Warning *OperationListWarning `json:"warning,omitempty"`
28802
28803	// ServerResponse contains the HTTP response code and headers from the
28804	// server.
28805	googleapi.ServerResponse `json:"-"`
28806
28807	// ForceSendFields is a list of field names (e.g. "Id") to
28808	// unconditionally include in API requests. By default, fields with
28809	// empty values are omitted from API requests. However, any non-pointer,
28810	// non-interface field appearing in ForceSendFields will be sent to the
28811	// server regardless of whether the field is empty or not. This may be
28812	// used to include empty fields in Patch requests.
28813	ForceSendFields []string `json:"-"`
28814
28815	// NullFields is a list of field names (e.g. "Id") to include in API
28816	// requests with the JSON null value. By default, fields with empty
28817	// values are omitted from API requests. However, any field with an
28818	// empty value appearing in NullFields will be sent to the server as
28819	// null. It is an error if a field in this list has a non-empty value.
28820	// This may be used to include null fields in Patch requests.
28821	NullFields []string `json:"-"`
28822}
28823
28824func (s *OperationList) MarshalJSON() ([]byte, error) {
28825	type NoMethod OperationList
28826	raw := NoMethod(*s)
28827	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28828}
28829
28830// OperationListWarning: [Output Only] Informational warning message.
28831type OperationListWarning struct {
28832	// Code: [Output Only] A warning code, if applicable. For example,
28833	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
28834	// the response.
28835	//
28836	// Possible values:
28837	//   "CLEANUP_FAILED"
28838	//   "DEPRECATED_RESOURCE_USED"
28839	//   "DEPRECATED_TYPE_USED"
28840	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
28841	//   "EXPERIMENTAL_TYPE_USED"
28842	//   "EXTERNAL_API_WARNING"
28843	//   "FIELD_VALUE_OVERRIDEN"
28844	//   "INJECTED_KERNELS_DEPRECATED"
28845	//   "LARGE_DEPLOYMENT_WARNING"
28846	//   "MISSING_TYPE_DEPENDENCY"
28847	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
28848	//   "NEXT_HOP_CANNOT_IP_FORWARD"
28849	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
28850	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
28851	//   "NEXT_HOP_NOT_RUNNING"
28852	//   "NOT_CRITICAL_ERROR"
28853	//   "NO_RESULTS_ON_PAGE"
28854	//   "PARTIAL_SUCCESS"
28855	//   "REQUIRED_TOS_AGREEMENT"
28856	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
28857	//   "RESOURCE_NOT_DELETED"
28858	//   "SCHEMA_VALIDATION_IGNORED"
28859	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
28860	//   "UNDECLARED_PROPERTIES"
28861	//   "UNREACHABLE"
28862	Code string `json:"code,omitempty"`
28863
28864	// Data: [Output Only] Metadata about this warning in key: value format.
28865	// For example:
28866	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
28867	Data []*OperationListWarningData `json:"data,omitempty"`
28868
28869	// Message: [Output Only] A human-readable description of the warning
28870	// code.
28871	Message string `json:"message,omitempty"`
28872
28873	// ForceSendFields is a list of field names (e.g. "Code") to
28874	// unconditionally include in API requests. By default, fields with
28875	// empty values are omitted from API requests. However, any non-pointer,
28876	// non-interface field appearing in ForceSendFields will be sent to the
28877	// server regardless of whether the field is empty or not. This may be
28878	// used to include empty fields in Patch requests.
28879	ForceSendFields []string `json:"-"`
28880
28881	// NullFields is a list of field names (e.g. "Code") to include in API
28882	// requests with the JSON null value. By default, fields with empty
28883	// values are omitted from API requests. However, any field with an
28884	// empty value appearing in NullFields will be sent to the server as
28885	// null. It is an error if a field in this list has a non-empty value.
28886	// This may be used to include null fields in Patch requests.
28887	NullFields []string `json:"-"`
28888}
28889
28890func (s *OperationListWarning) MarshalJSON() ([]byte, error) {
28891	type NoMethod OperationListWarning
28892	raw := NoMethod(*s)
28893	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28894}
28895
28896type OperationListWarningData struct {
28897	// Key: [Output Only] A key that provides more detail on the warning
28898	// being returned. For example, for warnings where there are no results
28899	// in a list request for a particular zone, this key might be scope and
28900	// the key value might be the zone name. Other examples might be a key
28901	// indicating a deprecated resource and a suggested replacement, or a
28902	// warning about invalid network settings (for example, if an instance
28903	// attempts to perform IP forwarding but is not enabled for IP
28904	// forwarding).
28905	Key string `json:"key,omitempty"`
28906
28907	// Value: [Output Only] A warning data value corresponding to the key.
28908	Value string `json:"value,omitempty"`
28909
28910	// ForceSendFields is a list of field names (e.g. "Key") to
28911	// unconditionally include in API requests. By default, fields with
28912	// empty values are omitted from API requests. However, any non-pointer,
28913	// non-interface field appearing in ForceSendFields will be sent to the
28914	// server regardless of whether the field is empty or not. This may be
28915	// used to include empty fields in Patch requests.
28916	ForceSendFields []string `json:"-"`
28917
28918	// NullFields is a list of field names (e.g. "Key") to include in API
28919	// requests with the JSON null value. By default, fields with empty
28920	// values are omitted from API requests. However, any field with an
28921	// empty value appearing in NullFields will be sent to the server as
28922	// null. It is an error if a field in this list has a non-empty value.
28923	// This may be used to include null fields in Patch requests.
28924	NullFields []string `json:"-"`
28925}
28926
28927func (s *OperationListWarningData) MarshalJSON() ([]byte, error) {
28928	type NoMethod OperationListWarningData
28929	raw := NoMethod(*s)
28930	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28931}
28932
28933type OperationsScopedList struct {
28934	// Operations: [Output Only] A list of operations contained in this
28935	// scope.
28936	Operations []*Operation `json:"operations,omitempty"`
28937
28938	// Warning: [Output Only] Informational warning which replaces the list
28939	// of operations when the list is empty.
28940	Warning *OperationsScopedListWarning `json:"warning,omitempty"`
28941
28942	// ForceSendFields is a list of field names (e.g. "Operations") to
28943	// unconditionally include in API requests. By default, fields with
28944	// empty values are omitted from API requests. However, any non-pointer,
28945	// non-interface field appearing in ForceSendFields will be sent to the
28946	// server regardless of whether the field is empty or not. This may be
28947	// used to include empty fields in Patch requests.
28948	ForceSendFields []string `json:"-"`
28949
28950	// NullFields is a list of field names (e.g. "Operations") to include in
28951	// API requests with the JSON null value. By default, fields with empty
28952	// values are omitted from API requests. However, any field with an
28953	// empty value appearing in NullFields will be sent to the server as
28954	// null. It is an error if a field in this list has a non-empty value.
28955	// This may be used to include null fields in Patch requests.
28956	NullFields []string `json:"-"`
28957}
28958
28959func (s *OperationsScopedList) MarshalJSON() ([]byte, error) {
28960	type NoMethod OperationsScopedList
28961	raw := NoMethod(*s)
28962	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28963}
28964
28965// OperationsScopedListWarning: [Output Only] Informational warning
28966// which replaces the list of operations when the list is empty.
28967type OperationsScopedListWarning struct {
28968	// Code: [Output Only] A warning code, if applicable. For example,
28969	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
28970	// the response.
28971	//
28972	// Possible values:
28973	//   "CLEANUP_FAILED"
28974	//   "DEPRECATED_RESOURCE_USED"
28975	//   "DEPRECATED_TYPE_USED"
28976	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
28977	//   "EXPERIMENTAL_TYPE_USED"
28978	//   "EXTERNAL_API_WARNING"
28979	//   "FIELD_VALUE_OVERRIDEN"
28980	//   "INJECTED_KERNELS_DEPRECATED"
28981	//   "LARGE_DEPLOYMENT_WARNING"
28982	//   "MISSING_TYPE_DEPENDENCY"
28983	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
28984	//   "NEXT_HOP_CANNOT_IP_FORWARD"
28985	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
28986	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
28987	//   "NEXT_HOP_NOT_RUNNING"
28988	//   "NOT_CRITICAL_ERROR"
28989	//   "NO_RESULTS_ON_PAGE"
28990	//   "PARTIAL_SUCCESS"
28991	//   "REQUIRED_TOS_AGREEMENT"
28992	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
28993	//   "RESOURCE_NOT_DELETED"
28994	//   "SCHEMA_VALIDATION_IGNORED"
28995	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
28996	//   "UNDECLARED_PROPERTIES"
28997	//   "UNREACHABLE"
28998	Code string `json:"code,omitempty"`
28999
29000	// Data: [Output Only] Metadata about this warning in key: value format.
29001	// For example:
29002	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
29003	Data []*OperationsScopedListWarningData `json:"data,omitempty"`
29004
29005	// Message: [Output Only] A human-readable description of the warning
29006	// code.
29007	Message string `json:"message,omitempty"`
29008
29009	// ForceSendFields is a list of field names (e.g. "Code") to
29010	// unconditionally include in API requests. By default, fields with
29011	// empty values are omitted from API requests. However, any non-pointer,
29012	// non-interface field appearing in ForceSendFields will be sent to the
29013	// server regardless of whether the field is empty or not. This may be
29014	// used to include empty fields in Patch requests.
29015	ForceSendFields []string `json:"-"`
29016
29017	// NullFields is a list of field names (e.g. "Code") to include in API
29018	// requests with the JSON null value. By default, fields with empty
29019	// values are omitted from API requests. However, any field with an
29020	// empty value appearing in NullFields will be sent to the server as
29021	// null. It is an error if a field in this list has a non-empty value.
29022	// This may be used to include null fields in Patch requests.
29023	NullFields []string `json:"-"`
29024}
29025
29026func (s *OperationsScopedListWarning) MarshalJSON() ([]byte, error) {
29027	type NoMethod OperationsScopedListWarning
29028	raw := NoMethod(*s)
29029	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29030}
29031
29032type OperationsScopedListWarningData struct {
29033	// Key: [Output Only] A key that provides more detail on the warning
29034	// being returned. For example, for warnings where there are no results
29035	// in a list request for a particular zone, this key might be scope and
29036	// the key value might be the zone name. Other examples might be a key
29037	// indicating a deprecated resource and a suggested replacement, or a
29038	// warning about invalid network settings (for example, if an instance
29039	// attempts to perform IP forwarding but is not enabled for IP
29040	// forwarding).
29041	Key string `json:"key,omitempty"`
29042
29043	// Value: [Output Only] A warning data value corresponding to the key.
29044	Value string `json:"value,omitempty"`
29045
29046	// ForceSendFields is a list of field names (e.g. "Key") to
29047	// unconditionally include in API requests. By default, fields with
29048	// empty values are omitted from API requests. However, any non-pointer,
29049	// non-interface field appearing in ForceSendFields will be sent to the
29050	// server regardless of whether the field is empty or not. This may be
29051	// used to include empty fields in Patch requests.
29052	ForceSendFields []string `json:"-"`
29053
29054	// NullFields is a list of field names (e.g. "Key") to include in API
29055	// requests with the JSON null value. By default, fields with empty
29056	// values are omitted from API requests. However, any field with an
29057	// empty value appearing in NullFields will be sent to the server as
29058	// null. It is an error if a field in this list has a non-empty value.
29059	// This may be used to include null fields in Patch requests.
29060	NullFields []string `json:"-"`
29061}
29062
29063func (s *OperationsScopedListWarningData) MarshalJSON() ([]byte, error) {
29064	type NoMethod OperationsScopedListWarningData
29065	raw := NoMethod(*s)
29066	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29067}
29068
29069type OrganizationSecurityPoliciesListAssociationsResponse struct {
29070	// Associations: A list of associations.
29071	Associations []*SecurityPolicyAssociation `json:"associations,omitempty"`
29072
29073	// Kind: [Output Only] Type of securityPolicy associations. Always
29074	// compute#organizationSecurityPoliciesListAssociations for lists of
29075	// securityPolicy associations.
29076	Kind string `json:"kind,omitempty"`
29077
29078	// ServerResponse contains the HTTP response code and headers from the
29079	// server.
29080	googleapi.ServerResponse `json:"-"`
29081
29082	// ForceSendFields is a list of field names (e.g. "Associations") to
29083	// unconditionally include in API requests. By default, fields with
29084	// empty values are omitted from API requests. However, any non-pointer,
29085	// non-interface field appearing in ForceSendFields will be sent to the
29086	// server regardless of whether the field is empty or not. This may be
29087	// used to include empty fields in Patch requests.
29088	ForceSendFields []string `json:"-"`
29089
29090	// NullFields is a list of field names (e.g. "Associations") to include
29091	// in API requests with the JSON null value. By default, fields with
29092	// empty values are omitted from API requests. However, any field with
29093	// an empty value appearing in NullFields will be sent to the server as
29094	// null. It is an error if a field in this list has a non-empty value.
29095	// This may be used to include null fields in Patch requests.
29096	NullFields []string `json:"-"`
29097}
29098
29099func (s *OrganizationSecurityPoliciesListAssociationsResponse) MarshalJSON() ([]byte, error) {
29100	type NoMethod OrganizationSecurityPoliciesListAssociationsResponse
29101	raw := NoMethod(*s)
29102	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29103}
29104
29105// OutlierDetection: Settings controlling the eviction of unhealthy
29106// hosts from the load balancing pool for the backend service.
29107type OutlierDetection struct {
29108	// BaseEjectionTime: The base time that a host is ejected for. The real
29109	// ejection time is equal to the base ejection time multiplied by the
29110	// number of times the host has been ejected. Defaults to 30000ms or
29111	// 30s.
29112	BaseEjectionTime *Duration `json:"baseEjectionTime,omitempty"`
29113
29114	// ConsecutiveErrors: Number of errors before a host is ejected from the
29115	// connection pool. When the backend host is accessed over HTTP, a 5xx
29116	// return code qualifies as an error. Defaults to 5.
29117	ConsecutiveErrors int64 `json:"consecutiveErrors,omitempty"`
29118
29119	// ConsecutiveGatewayFailure: The number of consecutive gateway failures
29120	// (502, 503, 504 status or connection errors that are mapped to one of
29121	// those status codes) before a consecutive gateway failure ejection
29122	// occurs. Defaults to 3.
29123	ConsecutiveGatewayFailure int64 `json:"consecutiveGatewayFailure,omitempty"`
29124
29125	// EnforcingConsecutiveErrors: The percentage chance that a host will be
29126	// actually ejected when an outlier status is detected through
29127	// consecutive 5xx. This setting can be used to disable ejection or to
29128	// ramp it up slowly. Defaults to 0.
29129	EnforcingConsecutiveErrors int64 `json:"enforcingConsecutiveErrors,omitempty"`
29130
29131	// EnforcingConsecutiveGatewayFailure: The percentage chance that a host
29132	// will be actually ejected when an outlier status is detected through
29133	// consecutive gateway failures. This setting can be used to disable
29134	// ejection or to ramp it up slowly. Defaults to 100.
29135	EnforcingConsecutiveGatewayFailure int64 `json:"enforcingConsecutiveGatewayFailure,omitempty"`
29136
29137	// EnforcingSuccessRate: The percentage chance that a host will be
29138	// actually ejected when an outlier status is detected through success
29139	// rate statistics. This setting can be used to disable ejection or to
29140	// ramp it up slowly. Defaults to 100.
29141	EnforcingSuccessRate int64 `json:"enforcingSuccessRate,omitempty"`
29142
29143	// Interval: Time interval between ejection analysis sweeps. This can
29144	// result in both new ejections as well as hosts being returned to
29145	// service. Defaults to 1 second.
29146	Interval *Duration `json:"interval,omitempty"`
29147
29148	// MaxEjectionPercent: Maximum percentage of hosts in the load balancing
29149	// pool for the backend service that can be ejected. Defaults to 50%.
29150	MaxEjectionPercent int64 `json:"maxEjectionPercent,omitempty"`
29151
29152	// SuccessRateMinimumHosts: The number of hosts in a cluster that must
29153	// have enough request volume to detect success rate outliers. If the
29154	// number of hosts is less than this setting, outlier detection via
29155	// success rate statistics is not performed for any host in the cluster.
29156	// Defaults to 5.
29157	SuccessRateMinimumHosts int64 `json:"successRateMinimumHosts,omitempty"`
29158
29159	// SuccessRateRequestVolume: The minimum number of total requests that
29160	// must be collected in one interval (as defined by the interval
29161	// duration above) to include this host in success rate based outlier
29162	// detection. If the volume is lower than this setting, outlier
29163	// detection via success rate statistics is not performed for that host.
29164	// Defaults to 100.
29165	SuccessRateRequestVolume int64 `json:"successRateRequestVolume,omitempty"`
29166
29167	// SuccessRateStdevFactor: This factor is used to determine the ejection
29168	// threshold for success rate outlier ejection. The ejection threshold
29169	// is the difference between the mean success rate, and the product of
29170	// this factor and the standard deviation of the mean success rate: mean
29171	// - (stdev * success_rate_stdev_factor). This factor is divided by a
29172	// thousand to get a double. That is, if the desired factor is 1.9, the
29173	// runtime value should be 1900. Defaults to 1900.
29174	SuccessRateStdevFactor int64 `json:"successRateStdevFactor,omitempty"`
29175
29176	// ForceSendFields is a list of field names (e.g. "BaseEjectionTime") to
29177	// unconditionally include in API requests. By default, fields with
29178	// empty values are omitted from API requests. However, any non-pointer,
29179	// non-interface field appearing in ForceSendFields will be sent to the
29180	// server regardless of whether the field is empty or not. This may be
29181	// used to include empty fields in Patch requests.
29182	ForceSendFields []string `json:"-"`
29183
29184	// NullFields is a list of field names (e.g. "BaseEjectionTime") to
29185	// include in API requests with the JSON null value. By default, fields
29186	// with empty values are omitted from API requests. However, any field
29187	// with an empty value appearing in NullFields will be sent to the
29188	// server as null. It is an error if a field in this list has a
29189	// non-empty value. This may be used to include null fields in Patch
29190	// requests.
29191	NullFields []string `json:"-"`
29192}
29193
29194func (s *OutlierDetection) MarshalJSON() ([]byte, error) {
29195	type NoMethod OutlierDetection
29196	raw := NoMethod(*s)
29197	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29198}
29199
29200// PacketIntervals: Next free: 7
29201type PacketIntervals struct {
29202	// AvgMs: Average observed inter-packet interval in milliseconds.
29203	AvgMs int64 `json:"avgMs,omitempty,string"`
29204
29205	// Duration: From how long ago in the past these intervals were
29206	// observed.
29207	//
29208	// Possible values:
29209	//   "DURATION_UNSPECIFIED"
29210	//   "HOUR"
29211	//   "MAX"
29212	//   "MINUTE"
29213	Duration string `json:"duration,omitempty"`
29214
29215	// MaxMs: Maximum observed inter-packet interval in milliseconds.
29216	MaxMs int64 `json:"maxMs,omitempty,string"`
29217
29218	// MinMs: Minimum observed inter-packet interval in milliseconds.
29219	MinMs int64 `json:"minMs,omitempty,string"`
29220
29221	// NumIntervals: Number of inter-packet intervals from which these
29222	// statistics were derived.
29223	NumIntervals int64 `json:"numIntervals,omitempty,string"`
29224
29225	// Type: The type of packets for which inter-packet intervals were
29226	// computed.
29227	//
29228	// Possible values:
29229	//   "LOOPBACK"
29230	//   "RECEIVE"
29231	//   "TRANSMIT"
29232	//   "TYPE_UNSPECIFIED"
29233	Type string `json:"type,omitempty"`
29234
29235	// ForceSendFields is a list of field names (e.g. "AvgMs") to
29236	// unconditionally include in API requests. By default, fields with
29237	// empty values are omitted from API requests. However, any non-pointer,
29238	// non-interface field appearing in ForceSendFields will be sent to the
29239	// server regardless of whether the field is empty or not. This may be
29240	// used to include empty fields in Patch requests.
29241	ForceSendFields []string `json:"-"`
29242
29243	// NullFields is a list of field names (e.g. "AvgMs") to include in API
29244	// requests with the JSON null value. By default, fields with empty
29245	// values are omitted from API requests. However, any field with an
29246	// empty value appearing in NullFields will be sent to the server as
29247	// null. It is an error if a field in this list has a non-empty value.
29248	// This may be used to include null fields in Patch requests.
29249	NullFields []string `json:"-"`
29250}
29251
29252func (s *PacketIntervals) MarshalJSON() ([]byte, error) {
29253	type NoMethod PacketIntervals
29254	raw := NoMethod(*s)
29255	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29256}
29257
29258// PacketMirroring: Represents a Packet Mirroring resource.
29259//
29260// Packet Mirroring clones the traffic of specified instances in your
29261// Virtual Private Cloud (VPC) network and forwards it to a collector
29262// destination, such as an instance group of an internal TCP/UDP load
29263// balancer, for analysis or examination. For more information about
29264// setting up Packet Mirroring, see Using Packet Mirroring. (==
29265// resource_for {$api_version}.packetMirrorings ==)
29266type PacketMirroring struct {
29267	// CollectorIlb: The Forwarding Rule resource of type
29268	// loadBalancingScheme=INTERNAL that will be used as collector for
29269	// mirrored traffic. The specified forwarding rule must have
29270	// isMirroringCollector set to true.
29271	CollectorIlb *PacketMirroringForwardingRuleInfo `json:"collectorIlb,omitempty"`
29272
29273	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
29274	// format.
29275	CreationTimestamp string `json:"creationTimestamp,omitempty"`
29276
29277	// Description: An optional description of this resource. Provide this
29278	// property when you create the resource.
29279	Description string `json:"description,omitempty"`
29280
29281	// Enable: Indicates whether or not this packet mirroring takes effect.
29282	// If set to FALSE, this packet mirroring policy will not be enforced on
29283	// the network.
29284	//
29285	// The default is TRUE.
29286	//
29287	// Possible values:
29288	//   "FALSE"
29289	//   "TRUE"
29290	Enable string `json:"enable,omitempty"`
29291
29292	// Filter: Filter for mirrored traffic. If unspecified, all traffic is
29293	// mirrored.
29294	Filter *PacketMirroringFilter `json:"filter,omitempty"`
29295
29296	// Id: [Output Only] The unique identifier for the resource. This
29297	// identifier is defined by the server.
29298	Id uint64 `json:"id,omitempty,string"`
29299
29300	// Kind: [Output Only] Type of the resource. Always
29301	// compute#packetMirroring for packet mirrorings.
29302	Kind string `json:"kind,omitempty"`
29303
29304	// MirroredResources: PacketMirroring mirroredResourceInfos.
29305	// MirroredResourceInfo specifies a set of mirrored VM instances,
29306	// subnetworks and/or tags for which traffic from/to all VM instances
29307	// will be mirrored.
29308	MirroredResources *PacketMirroringMirroredResourceInfo `json:"mirroredResources,omitempty"`
29309
29310	// Name: Name of the resource; provided by the client when the resource
29311	// is created. The name must be 1-63 characters long, and comply with
29312	// RFC1035. Specifically, the name must be 1-63 characters long and
29313	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
29314	// the first character must be a lowercase letter, and all following
29315	// characters must be a dash, lowercase letter, or digit, except the
29316	// last character, which cannot be a dash.
29317	Name string `json:"name,omitempty"`
29318
29319	// Network: Specifies the mirrored VPC network. Only packets in this
29320	// network will be mirrored. All mirrored VMs should have a NIC in the
29321	// given network. All mirrored subnetworks should belong to the given
29322	// network.
29323	Network *PacketMirroringNetworkInfo `json:"network,omitempty"`
29324
29325	// Priority: The priority of applying this configuration. Priority is
29326	// used to break ties in cases where there is more than one matching
29327	// rule. In the case of two rules that apply for a given Instance, the
29328	// one with the lowest-numbered priority value wins.
29329	//
29330	// Default value is 1000. Valid range is 0 through 65535.
29331	Priority int64 `json:"priority,omitempty"`
29332
29333	// Region: [Output Only] URI of the region where the packetMirroring
29334	// resides.
29335	Region string `json:"region,omitempty"`
29336
29337	// SelfLink: [Output Only] Server-defined URL for the resource.
29338	SelfLink string `json:"selfLink,omitempty"`
29339
29340	// ServerResponse contains the HTTP response code and headers from the
29341	// server.
29342	googleapi.ServerResponse `json:"-"`
29343
29344	// ForceSendFields is a list of field names (e.g. "CollectorIlb") to
29345	// unconditionally include in API requests. By default, fields with
29346	// empty values are omitted from API requests. However, any non-pointer,
29347	// non-interface field appearing in ForceSendFields will be sent to the
29348	// server regardless of whether the field is empty or not. This may be
29349	// used to include empty fields in Patch requests.
29350	ForceSendFields []string `json:"-"`
29351
29352	// NullFields is a list of field names (e.g. "CollectorIlb") to include
29353	// in API requests with the JSON null value. By default, fields with
29354	// empty values are omitted from API requests. However, any field with
29355	// an empty value appearing in NullFields will be sent to the server as
29356	// null. It is an error if a field in this list has a non-empty value.
29357	// This may be used to include null fields in Patch requests.
29358	NullFields []string `json:"-"`
29359}
29360
29361func (s *PacketMirroring) MarshalJSON() ([]byte, error) {
29362	type NoMethod PacketMirroring
29363	raw := NoMethod(*s)
29364	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29365}
29366
29367// PacketMirroringAggregatedList: Contains a list of packetMirrorings.
29368type PacketMirroringAggregatedList struct {
29369	// Id: [Output Only] Unique identifier for the resource; defined by the
29370	// server.
29371	Id string `json:"id,omitempty"`
29372
29373	// Items: A list of PacketMirroring resources.
29374	Items map[string]PacketMirroringsScopedList `json:"items,omitempty"`
29375
29376	// Kind: Type of resource.
29377	Kind string `json:"kind,omitempty"`
29378
29379	// NextPageToken: [Output Only] This token allows you to get the next
29380	// page of results for list requests. If the number of results is larger
29381	// than maxResults, use the nextPageToken as a value for the query
29382	// parameter pageToken in the next list request. Subsequent list
29383	// requests will have their own nextPageToken to continue paging through
29384	// the results.
29385	NextPageToken string `json:"nextPageToken,omitempty"`
29386
29387	// SelfLink: [Output Only] Server-defined URL for this resource.
29388	SelfLink string `json:"selfLink,omitempty"`
29389
29390	// Unreachables: [Output Only] Unreachable resources.
29391	Unreachables []string `json:"unreachables,omitempty"`
29392
29393	// Warning: [Output Only] Informational warning message.
29394	Warning *PacketMirroringAggregatedListWarning `json:"warning,omitempty"`
29395
29396	// ServerResponse contains the HTTP response code and headers from the
29397	// server.
29398	googleapi.ServerResponse `json:"-"`
29399
29400	// ForceSendFields is a list of field names (e.g. "Id") to
29401	// unconditionally include in API requests. By default, fields with
29402	// empty values are omitted from API requests. However, any non-pointer,
29403	// non-interface field appearing in ForceSendFields will be sent to the
29404	// server regardless of whether the field is empty or not. This may be
29405	// used to include empty fields in Patch requests.
29406	ForceSendFields []string `json:"-"`
29407
29408	// NullFields is a list of field names (e.g. "Id") to include in API
29409	// requests with the JSON null value. By default, fields with empty
29410	// values are omitted from API requests. However, any field with an
29411	// empty value appearing in NullFields will be sent to the server as
29412	// null. It is an error if a field in this list has a non-empty value.
29413	// This may be used to include null fields in Patch requests.
29414	NullFields []string `json:"-"`
29415}
29416
29417func (s *PacketMirroringAggregatedList) MarshalJSON() ([]byte, error) {
29418	type NoMethod PacketMirroringAggregatedList
29419	raw := NoMethod(*s)
29420	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29421}
29422
29423// PacketMirroringAggregatedListWarning: [Output Only] Informational
29424// warning message.
29425type PacketMirroringAggregatedListWarning struct {
29426	// Code: [Output Only] A warning code, if applicable. For example,
29427	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
29428	// the response.
29429	//
29430	// Possible values:
29431	//   "CLEANUP_FAILED"
29432	//   "DEPRECATED_RESOURCE_USED"
29433	//   "DEPRECATED_TYPE_USED"
29434	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
29435	//   "EXPERIMENTAL_TYPE_USED"
29436	//   "EXTERNAL_API_WARNING"
29437	//   "FIELD_VALUE_OVERRIDEN"
29438	//   "INJECTED_KERNELS_DEPRECATED"
29439	//   "LARGE_DEPLOYMENT_WARNING"
29440	//   "MISSING_TYPE_DEPENDENCY"
29441	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
29442	//   "NEXT_HOP_CANNOT_IP_FORWARD"
29443	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
29444	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
29445	//   "NEXT_HOP_NOT_RUNNING"
29446	//   "NOT_CRITICAL_ERROR"
29447	//   "NO_RESULTS_ON_PAGE"
29448	//   "PARTIAL_SUCCESS"
29449	//   "REQUIRED_TOS_AGREEMENT"
29450	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
29451	//   "RESOURCE_NOT_DELETED"
29452	//   "SCHEMA_VALIDATION_IGNORED"
29453	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
29454	//   "UNDECLARED_PROPERTIES"
29455	//   "UNREACHABLE"
29456	Code string `json:"code,omitempty"`
29457
29458	// Data: [Output Only] Metadata about this warning in key: value format.
29459	// For example:
29460	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
29461	Data []*PacketMirroringAggregatedListWarningData `json:"data,omitempty"`
29462
29463	// Message: [Output Only] A human-readable description of the warning
29464	// code.
29465	Message string `json:"message,omitempty"`
29466
29467	// ForceSendFields is a list of field names (e.g. "Code") to
29468	// unconditionally include in API requests. By default, fields with
29469	// empty values are omitted from API requests. However, any non-pointer,
29470	// non-interface field appearing in ForceSendFields will be sent to the
29471	// server regardless of whether the field is empty or not. This may be
29472	// used to include empty fields in Patch requests.
29473	ForceSendFields []string `json:"-"`
29474
29475	// NullFields is a list of field names (e.g. "Code") to include in API
29476	// requests with the JSON null value. By default, fields with empty
29477	// values are omitted from API requests. However, any field with an
29478	// empty value appearing in NullFields will be sent to the server as
29479	// null. It is an error if a field in this list has a non-empty value.
29480	// This may be used to include null fields in Patch requests.
29481	NullFields []string `json:"-"`
29482}
29483
29484func (s *PacketMirroringAggregatedListWarning) MarshalJSON() ([]byte, error) {
29485	type NoMethod PacketMirroringAggregatedListWarning
29486	raw := NoMethod(*s)
29487	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29488}
29489
29490type PacketMirroringAggregatedListWarningData struct {
29491	// Key: [Output Only] A key that provides more detail on the warning
29492	// being returned. For example, for warnings where there are no results
29493	// in a list request for a particular zone, this key might be scope and
29494	// the key value might be the zone name. Other examples might be a key
29495	// indicating a deprecated resource and a suggested replacement, or a
29496	// warning about invalid network settings (for example, if an instance
29497	// attempts to perform IP forwarding but is not enabled for IP
29498	// forwarding).
29499	Key string `json:"key,omitempty"`
29500
29501	// Value: [Output Only] A warning data value corresponding to the key.
29502	Value string `json:"value,omitempty"`
29503
29504	// ForceSendFields is a list of field names (e.g. "Key") to
29505	// unconditionally include in API requests. By default, fields with
29506	// empty values are omitted from API requests. However, any non-pointer,
29507	// non-interface field appearing in ForceSendFields will be sent to the
29508	// server regardless of whether the field is empty or not. This may be
29509	// used to include empty fields in Patch requests.
29510	ForceSendFields []string `json:"-"`
29511
29512	// NullFields is a list of field names (e.g. "Key") to include in API
29513	// requests with the JSON null value. By default, fields with empty
29514	// values are omitted from API requests. However, any field with an
29515	// empty value appearing in NullFields will be sent to the server as
29516	// null. It is an error if a field in this list has a non-empty value.
29517	// This may be used to include null fields in Patch requests.
29518	NullFields []string `json:"-"`
29519}
29520
29521func (s *PacketMirroringAggregatedListWarningData) MarshalJSON() ([]byte, error) {
29522	type NoMethod PacketMirroringAggregatedListWarningData
29523	raw := NoMethod(*s)
29524	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29525}
29526
29527type PacketMirroringFilter struct {
29528	// IPProtocols: Protocols that apply as filter on mirrored traffic. If
29529	// no protocols are specified, all traffic that matches the specified
29530	// CIDR ranges is mirrored. If neither cidrRanges nor IPProtocols is
29531	// specified, all traffic is mirrored.
29532	IPProtocols []string `json:"IPProtocols,omitempty"`
29533
29534	// CidrRanges: IP CIDR ranges that apply as filter on the source
29535	// (ingress) or destination (egress) IP in the IP header. Only IPv4 is
29536	// supported. If no ranges are specified, all traffic that matches the
29537	// specified IPProtocols is mirrored. If neither cidrRanges nor
29538	// IPProtocols is specified, all traffic is mirrored.
29539	CidrRanges []string `json:"cidrRanges,omitempty"`
29540
29541	// Direction: Direction of traffic to mirror, either INGRESS, EGRESS, or
29542	// BOTH. The default is BOTH.
29543	//
29544	// Possible values:
29545	//   "BOTH"
29546	//   "EGRESS"
29547	//   "INGRESS"
29548	Direction string `json:"direction,omitempty"`
29549
29550	// ForceSendFields is a list of field names (e.g. "IPProtocols") to
29551	// unconditionally include in API requests. By default, fields with
29552	// empty values are omitted from API requests. However, any non-pointer,
29553	// non-interface field appearing in ForceSendFields will be sent to the
29554	// server regardless of whether the field is empty or not. This may be
29555	// used to include empty fields in Patch requests.
29556	ForceSendFields []string `json:"-"`
29557
29558	// NullFields is a list of field names (e.g. "IPProtocols") to include
29559	// in API requests with the JSON null value. By default, fields with
29560	// empty values are omitted from API requests. However, any field with
29561	// an empty value appearing in NullFields will be sent to the server as
29562	// null. It is an error if a field in this list has a non-empty value.
29563	// This may be used to include null fields in Patch requests.
29564	NullFields []string `json:"-"`
29565}
29566
29567func (s *PacketMirroringFilter) MarshalJSON() ([]byte, error) {
29568	type NoMethod PacketMirroringFilter
29569	raw := NoMethod(*s)
29570	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29571}
29572
29573type PacketMirroringForwardingRuleInfo struct {
29574	// CanonicalUrl: [Output Only] Unique identifier for the forwarding
29575	// rule; defined by the server.
29576	CanonicalUrl string `json:"canonicalUrl,omitempty"`
29577
29578	// Url: Resource URL to the forwarding rule representing the ILB
29579	// configured as destination of the mirrored traffic.
29580	Url string `json:"url,omitempty"`
29581
29582	// ForceSendFields is a list of field names (e.g. "CanonicalUrl") to
29583	// unconditionally include in API requests. By default, fields with
29584	// empty values are omitted from API requests. However, any non-pointer,
29585	// non-interface field appearing in ForceSendFields will be sent to the
29586	// server regardless of whether the field is empty or not. This may be
29587	// used to include empty fields in Patch requests.
29588	ForceSendFields []string `json:"-"`
29589
29590	// NullFields is a list of field names (e.g. "CanonicalUrl") to include
29591	// in API requests with the JSON null value. By default, fields with
29592	// empty values are omitted from API requests. However, any field with
29593	// an empty value appearing in NullFields will be sent to the server as
29594	// null. It is an error if a field in this list has a non-empty value.
29595	// This may be used to include null fields in Patch requests.
29596	NullFields []string `json:"-"`
29597}
29598
29599func (s *PacketMirroringForwardingRuleInfo) MarshalJSON() ([]byte, error) {
29600	type NoMethod PacketMirroringForwardingRuleInfo
29601	raw := NoMethod(*s)
29602	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29603}
29604
29605// PacketMirroringList: Contains a list of PacketMirroring resources.
29606type PacketMirroringList struct {
29607	// Id: [Output Only] Unique identifier for the resource; defined by the
29608	// server.
29609	Id string `json:"id,omitempty"`
29610
29611	// Items: A list of PacketMirroring resources.
29612	Items []*PacketMirroring `json:"items,omitempty"`
29613
29614	// Kind: [Output Only] Type of resource. Always compute#packetMirroring
29615	// for packetMirrorings.
29616	Kind string `json:"kind,omitempty"`
29617
29618	// NextPageToken: [Output Only] This token allows you to get the next
29619	// page of results for list requests. If the number of results is larger
29620	// than maxResults, use the nextPageToken as a value for the query
29621	// parameter pageToken in the next list request. Subsequent list
29622	// requests will have their own nextPageToken to continue paging through
29623	// the results.
29624	NextPageToken string `json:"nextPageToken,omitempty"`
29625
29626	// SelfLink: [Output Only] Server-defined URL for this resource.
29627	SelfLink string `json:"selfLink,omitempty"`
29628
29629	// Warning: [Output Only] Informational warning message.
29630	Warning *PacketMirroringListWarning `json:"warning,omitempty"`
29631
29632	// ServerResponse contains the HTTP response code and headers from the
29633	// server.
29634	googleapi.ServerResponse `json:"-"`
29635
29636	// ForceSendFields is a list of field names (e.g. "Id") to
29637	// unconditionally include in API requests. By default, fields with
29638	// empty values are omitted from API requests. However, any non-pointer,
29639	// non-interface field appearing in ForceSendFields will be sent to the
29640	// server regardless of whether the field is empty or not. This may be
29641	// used to include empty fields in Patch requests.
29642	ForceSendFields []string `json:"-"`
29643
29644	// NullFields is a list of field names (e.g. "Id") to include in API
29645	// requests with the JSON null value. By default, fields with empty
29646	// values are omitted from API requests. However, any field with an
29647	// empty value appearing in NullFields will be sent to the server as
29648	// null. It is an error if a field in this list has a non-empty value.
29649	// This may be used to include null fields in Patch requests.
29650	NullFields []string `json:"-"`
29651}
29652
29653func (s *PacketMirroringList) MarshalJSON() ([]byte, error) {
29654	type NoMethod PacketMirroringList
29655	raw := NoMethod(*s)
29656	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29657}
29658
29659// PacketMirroringListWarning: [Output Only] Informational warning
29660// message.
29661type PacketMirroringListWarning struct {
29662	// Code: [Output Only] A warning code, if applicable. For example,
29663	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
29664	// the response.
29665	//
29666	// Possible values:
29667	//   "CLEANUP_FAILED"
29668	//   "DEPRECATED_RESOURCE_USED"
29669	//   "DEPRECATED_TYPE_USED"
29670	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
29671	//   "EXPERIMENTAL_TYPE_USED"
29672	//   "EXTERNAL_API_WARNING"
29673	//   "FIELD_VALUE_OVERRIDEN"
29674	//   "INJECTED_KERNELS_DEPRECATED"
29675	//   "LARGE_DEPLOYMENT_WARNING"
29676	//   "MISSING_TYPE_DEPENDENCY"
29677	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
29678	//   "NEXT_HOP_CANNOT_IP_FORWARD"
29679	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
29680	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
29681	//   "NEXT_HOP_NOT_RUNNING"
29682	//   "NOT_CRITICAL_ERROR"
29683	//   "NO_RESULTS_ON_PAGE"
29684	//   "PARTIAL_SUCCESS"
29685	//   "REQUIRED_TOS_AGREEMENT"
29686	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
29687	//   "RESOURCE_NOT_DELETED"
29688	//   "SCHEMA_VALIDATION_IGNORED"
29689	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
29690	//   "UNDECLARED_PROPERTIES"
29691	//   "UNREACHABLE"
29692	Code string `json:"code,omitempty"`
29693
29694	// Data: [Output Only] Metadata about this warning in key: value format.
29695	// For example:
29696	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
29697	Data []*PacketMirroringListWarningData `json:"data,omitempty"`
29698
29699	// Message: [Output Only] A human-readable description of the warning
29700	// code.
29701	Message string `json:"message,omitempty"`
29702
29703	// ForceSendFields is a list of field names (e.g. "Code") to
29704	// unconditionally include in API requests. By default, fields with
29705	// empty values are omitted from API requests. However, any non-pointer,
29706	// non-interface field appearing in ForceSendFields will be sent to the
29707	// server regardless of whether the field is empty or not. This may be
29708	// used to include empty fields in Patch requests.
29709	ForceSendFields []string `json:"-"`
29710
29711	// NullFields is a list of field names (e.g. "Code") to include in API
29712	// requests with the JSON null value. By default, fields with empty
29713	// values are omitted from API requests. However, any field with an
29714	// empty value appearing in NullFields will be sent to the server as
29715	// null. It is an error if a field in this list has a non-empty value.
29716	// This may be used to include null fields in Patch requests.
29717	NullFields []string `json:"-"`
29718}
29719
29720func (s *PacketMirroringListWarning) MarshalJSON() ([]byte, error) {
29721	type NoMethod PacketMirroringListWarning
29722	raw := NoMethod(*s)
29723	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29724}
29725
29726type PacketMirroringListWarningData struct {
29727	// Key: [Output Only] A key that provides more detail on the warning
29728	// being returned. For example, for warnings where there are no results
29729	// in a list request for a particular zone, this key might be scope and
29730	// the key value might be the zone name. Other examples might be a key
29731	// indicating a deprecated resource and a suggested replacement, or a
29732	// warning about invalid network settings (for example, if an instance
29733	// attempts to perform IP forwarding but is not enabled for IP
29734	// forwarding).
29735	Key string `json:"key,omitempty"`
29736
29737	// Value: [Output Only] A warning data value corresponding to the key.
29738	Value string `json:"value,omitempty"`
29739
29740	// ForceSendFields is a list of field names (e.g. "Key") to
29741	// unconditionally include in API requests. By default, fields with
29742	// empty values are omitted from API requests. However, any non-pointer,
29743	// non-interface field appearing in ForceSendFields will be sent to the
29744	// server regardless of whether the field is empty or not. This may be
29745	// used to include empty fields in Patch requests.
29746	ForceSendFields []string `json:"-"`
29747
29748	// NullFields is a list of field names (e.g. "Key") to include in API
29749	// requests with the JSON null value. By default, fields with empty
29750	// values are omitted from API requests. However, any field with an
29751	// empty value appearing in NullFields will be sent to the server as
29752	// null. It is an error if a field in this list has a non-empty value.
29753	// This may be used to include null fields in Patch requests.
29754	NullFields []string `json:"-"`
29755}
29756
29757func (s *PacketMirroringListWarningData) MarshalJSON() ([]byte, error) {
29758	type NoMethod PacketMirroringListWarningData
29759	raw := NoMethod(*s)
29760	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29761}
29762
29763type PacketMirroringMirroredResourceInfo struct {
29764	// Instances: A set of virtual machine instances that are being
29765	// mirrored. They must live in zones contained in the same region as
29766	// this packetMirroring.
29767	//
29768	// Note that this config will apply only to those network interfaces of
29769	// the Instances that belong to the network specified in this
29770	// packetMirroring.
29771	//
29772	// You may specify a maximum of 50 Instances.
29773	Instances []*PacketMirroringMirroredResourceInfoInstanceInfo `json:"instances,omitempty"`
29774
29775	// Subnetworks: A set of subnetworks for which traffic from/to all VM
29776	// instances will be mirrored. They must live in the same region as this
29777	// packetMirroring.
29778	//
29779	// You may specify a maximum of 5 subnetworks.
29780	Subnetworks []*PacketMirroringMirroredResourceInfoSubnetInfo `json:"subnetworks,omitempty"`
29781
29782	// Tags: A set of mirrored tags. Traffic from/to all VM instances that
29783	// have one or more of these tags will be mirrored.
29784	Tags []string `json:"tags,omitempty"`
29785
29786	// ForceSendFields is a list of field names (e.g. "Instances") to
29787	// unconditionally include in API requests. By default, fields with
29788	// empty values are omitted from API requests. However, any non-pointer,
29789	// non-interface field appearing in ForceSendFields will be sent to the
29790	// server regardless of whether the field is empty or not. This may be
29791	// used to include empty fields in Patch requests.
29792	ForceSendFields []string `json:"-"`
29793
29794	// NullFields is a list of field names (e.g. "Instances") to include in
29795	// API requests with the JSON null value. By default, fields with empty
29796	// values are omitted from API requests. However, any field with an
29797	// empty value appearing in NullFields will be sent to the server as
29798	// null. It is an error if a field in this list has a non-empty value.
29799	// This may be used to include null fields in Patch requests.
29800	NullFields []string `json:"-"`
29801}
29802
29803func (s *PacketMirroringMirroredResourceInfo) MarshalJSON() ([]byte, error) {
29804	type NoMethod PacketMirroringMirroredResourceInfo
29805	raw := NoMethod(*s)
29806	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29807}
29808
29809type PacketMirroringMirroredResourceInfoInstanceInfo struct {
29810	// CanonicalUrl: [Output Only] Unique identifier for the instance;
29811	// defined by the server.
29812	CanonicalUrl string `json:"canonicalUrl,omitempty"`
29813
29814	// Url: Resource URL to the virtual machine instance which is being
29815	// mirrored.
29816	Url string `json:"url,omitempty"`
29817
29818	// ForceSendFields is a list of field names (e.g. "CanonicalUrl") to
29819	// unconditionally include in API requests. By default, fields with
29820	// empty values are omitted from API requests. However, any non-pointer,
29821	// non-interface field appearing in ForceSendFields will be sent to the
29822	// server regardless of whether the field is empty or not. This may be
29823	// used to include empty fields in Patch requests.
29824	ForceSendFields []string `json:"-"`
29825
29826	// NullFields is a list of field names (e.g. "CanonicalUrl") to include
29827	// in API requests with the JSON null value. By default, fields with
29828	// empty values are omitted from API requests. However, any field with
29829	// an empty value appearing in NullFields will be sent to the server as
29830	// null. It is an error if a field in this list has a non-empty value.
29831	// This may be used to include null fields in Patch requests.
29832	NullFields []string `json:"-"`
29833}
29834
29835func (s *PacketMirroringMirroredResourceInfoInstanceInfo) MarshalJSON() ([]byte, error) {
29836	type NoMethod PacketMirroringMirroredResourceInfoInstanceInfo
29837	raw := NoMethod(*s)
29838	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29839}
29840
29841type PacketMirroringMirroredResourceInfoSubnetInfo struct {
29842	// CanonicalUrl: [Output Only] Unique identifier for the subnetwork;
29843	// defined by the server.
29844	CanonicalUrl string `json:"canonicalUrl,omitempty"`
29845
29846	// Url: Resource URL to the subnetwork for which traffic from/to all VM
29847	// instances will be mirrored.
29848	Url string `json:"url,omitempty"`
29849
29850	// ForceSendFields is a list of field names (e.g. "CanonicalUrl") to
29851	// unconditionally include in API requests. By default, fields with
29852	// empty values are omitted from API requests. However, any non-pointer,
29853	// non-interface field appearing in ForceSendFields will be sent to the
29854	// server regardless of whether the field is empty or not. This may be
29855	// used to include empty fields in Patch requests.
29856	ForceSendFields []string `json:"-"`
29857
29858	// NullFields is a list of field names (e.g. "CanonicalUrl") to include
29859	// in API requests with the JSON null value. By default, fields with
29860	// empty values are omitted from API requests. However, any field with
29861	// an empty value appearing in NullFields will be sent to the server as
29862	// null. It is an error if a field in this list has a non-empty value.
29863	// This may be used to include null fields in Patch requests.
29864	NullFields []string `json:"-"`
29865}
29866
29867func (s *PacketMirroringMirroredResourceInfoSubnetInfo) MarshalJSON() ([]byte, error) {
29868	type NoMethod PacketMirroringMirroredResourceInfoSubnetInfo
29869	raw := NoMethod(*s)
29870	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29871}
29872
29873type PacketMirroringNetworkInfo struct {
29874	// CanonicalUrl: [Output Only] Unique identifier for the network;
29875	// defined by the server.
29876	CanonicalUrl string `json:"canonicalUrl,omitempty"`
29877
29878	// Url: URL of the network resource.
29879	Url string `json:"url,omitempty"`
29880
29881	// ForceSendFields is a list of field names (e.g. "CanonicalUrl") to
29882	// unconditionally include in API requests. By default, fields with
29883	// empty values are omitted from API requests. However, any non-pointer,
29884	// non-interface field appearing in ForceSendFields will be sent to the
29885	// server regardless of whether the field is empty or not. This may be
29886	// used to include empty fields in Patch requests.
29887	ForceSendFields []string `json:"-"`
29888
29889	// NullFields is a list of field names (e.g. "CanonicalUrl") to include
29890	// in API requests with the JSON null value. By default, fields with
29891	// empty values are omitted from API requests. However, any field with
29892	// an empty value appearing in NullFields will be sent to the server as
29893	// null. It is an error if a field in this list has a non-empty value.
29894	// This may be used to include null fields in Patch requests.
29895	NullFields []string `json:"-"`
29896}
29897
29898func (s *PacketMirroringNetworkInfo) MarshalJSON() ([]byte, error) {
29899	type NoMethod PacketMirroringNetworkInfo
29900	raw := NoMethod(*s)
29901	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29902}
29903
29904type PacketMirroringsScopedList struct {
29905	// PacketMirrorings: A list of packetMirrorings contained in this scope.
29906	PacketMirrorings []*PacketMirroring `json:"packetMirrorings,omitempty"`
29907
29908	// Warning: Informational warning which replaces the list of
29909	// packetMirrorings when the list is empty.
29910	Warning *PacketMirroringsScopedListWarning `json:"warning,omitempty"`
29911
29912	// ForceSendFields is a list of field names (e.g. "PacketMirrorings") to
29913	// unconditionally include in API requests. By default, fields with
29914	// empty values are omitted from API requests. However, any non-pointer,
29915	// non-interface field appearing in ForceSendFields will be sent to the
29916	// server regardless of whether the field is empty or not. This may be
29917	// used to include empty fields in Patch requests.
29918	ForceSendFields []string `json:"-"`
29919
29920	// NullFields is a list of field names (e.g. "PacketMirrorings") to
29921	// include in API requests with the JSON null value. By default, fields
29922	// with empty values are omitted from API requests. However, any field
29923	// with an empty value appearing in NullFields will be sent to the
29924	// server as null. It is an error if a field in this list has a
29925	// non-empty value. This may be used to include null fields in Patch
29926	// requests.
29927	NullFields []string `json:"-"`
29928}
29929
29930func (s *PacketMirroringsScopedList) MarshalJSON() ([]byte, error) {
29931	type NoMethod PacketMirroringsScopedList
29932	raw := NoMethod(*s)
29933	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29934}
29935
29936// PacketMirroringsScopedListWarning: Informational warning which
29937// replaces the list of packetMirrorings when the list is empty.
29938type PacketMirroringsScopedListWarning struct {
29939	// Code: [Output Only] A warning code, if applicable. For example,
29940	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
29941	// the response.
29942	//
29943	// Possible values:
29944	//   "CLEANUP_FAILED"
29945	//   "DEPRECATED_RESOURCE_USED"
29946	//   "DEPRECATED_TYPE_USED"
29947	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
29948	//   "EXPERIMENTAL_TYPE_USED"
29949	//   "EXTERNAL_API_WARNING"
29950	//   "FIELD_VALUE_OVERRIDEN"
29951	//   "INJECTED_KERNELS_DEPRECATED"
29952	//   "LARGE_DEPLOYMENT_WARNING"
29953	//   "MISSING_TYPE_DEPENDENCY"
29954	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
29955	//   "NEXT_HOP_CANNOT_IP_FORWARD"
29956	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
29957	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
29958	//   "NEXT_HOP_NOT_RUNNING"
29959	//   "NOT_CRITICAL_ERROR"
29960	//   "NO_RESULTS_ON_PAGE"
29961	//   "PARTIAL_SUCCESS"
29962	//   "REQUIRED_TOS_AGREEMENT"
29963	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
29964	//   "RESOURCE_NOT_DELETED"
29965	//   "SCHEMA_VALIDATION_IGNORED"
29966	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
29967	//   "UNDECLARED_PROPERTIES"
29968	//   "UNREACHABLE"
29969	Code string `json:"code,omitempty"`
29970
29971	// Data: [Output Only] Metadata about this warning in key: value format.
29972	// For example:
29973	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
29974	Data []*PacketMirroringsScopedListWarningData `json:"data,omitempty"`
29975
29976	// Message: [Output Only] A human-readable description of the warning
29977	// code.
29978	Message string `json:"message,omitempty"`
29979
29980	// ForceSendFields is a list of field names (e.g. "Code") to
29981	// unconditionally include in API requests. By default, fields with
29982	// empty values are omitted from API requests. However, any non-pointer,
29983	// non-interface field appearing in ForceSendFields will be sent to the
29984	// server regardless of whether the field is empty or not. This may be
29985	// used to include empty fields in Patch requests.
29986	ForceSendFields []string `json:"-"`
29987
29988	// NullFields is a list of field names (e.g. "Code") to include in API
29989	// requests with the JSON null value. By default, fields with empty
29990	// values are omitted from API requests. However, any field with an
29991	// empty value appearing in NullFields will be sent to the server as
29992	// null. It is an error if a field in this list has a non-empty value.
29993	// This may be used to include null fields in Patch requests.
29994	NullFields []string `json:"-"`
29995}
29996
29997func (s *PacketMirroringsScopedListWarning) MarshalJSON() ([]byte, error) {
29998	type NoMethod PacketMirroringsScopedListWarning
29999	raw := NoMethod(*s)
30000	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30001}
30002
30003type PacketMirroringsScopedListWarningData struct {
30004	// Key: [Output Only] A key that provides more detail on the warning
30005	// being returned. For example, for warnings where there are no results
30006	// in a list request for a particular zone, this key might be scope and
30007	// the key value might be the zone name. Other examples might be a key
30008	// indicating a deprecated resource and a suggested replacement, or a
30009	// warning about invalid network settings (for example, if an instance
30010	// attempts to perform IP forwarding but is not enabled for IP
30011	// forwarding).
30012	Key string `json:"key,omitempty"`
30013
30014	// Value: [Output Only] A warning data value corresponding to the key.
30015	Value string `json:"value,omitempty"`
30016
30017	// ForceSendFields is a list of field names (e.g. "Key") to
30018	// unconditionally include in API requests. By default, fields with
30019	// empty values are omitted from API requests. However, any non-pointer,
30020	// non-interface field appearing in ForceSendFields will be sent to the
30021	// server regardless of whether the field is empty or not. This may be
30022	// used to include empty fields in Patch requests.
30023	ForceSendFields []string `json:"-"`
30024
30025	// NullFields is a list of field names (e.g. "Key") to include in API
30026	// requests with the JSON null value. By default, fields with empty
30027	// values are omitted from API requests. However, any field with an
30028	// empty value appearing in NullFields will be sent to the server as
30029	// null. It is an error if a field in this list has a non-empty value.
30030	// This may be used to include null fields in Patch requests.
30031	NullFields []string `json:"-"`
30032}
30033
30034func (s *PacketMirroringsScopedListWarningData) MarshalJSON() ([]byte, error) {
30035	type NoMethod PacketMirroringsScopedListWarningData
30036	raw := NoMethod(*s)
30037	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30038}
30039
30040// PathMatcher: A matcher for the path portion of the URL. The
30041// BackendService from the longest-matched rule will serve the URL. If
30042// no rule was matched, the default service will be used.
30043type PathMatcher struct {
30044	// DefaultRouteAction: defaultRouteAction takes effect when none of the
30045	// pathRules or routeRules match. The load balancer performs advanced
30046	// routing actions like URL rewrites, header transformations, etc. prior
30047	// to forwarding the request to the selected backend. If
30048	// defaultRouteAction specifies any weightedBackendServices,
30049	// defaultService must not be set. Conversely if defaultService is set,
30050	// defaultRouteAction cannot contain any  weightedBackendServices.
30051	// Only one of defaultRouteAction or defaultUrlRedirect must be
30052	// set.
30053	// UrlMaps for external HTTP(S) load balancers support only the
30054	// urlRewrite action within a pathMatcher's defaultRouteAction.
30055	DefaultRouteAction *HttpRouteAction `json:"defaultRouteAction,omitempty"`
30056
30057	// DefaultService: The full or partial URL to the BackendService
30058	// resource. This will be used if none of the pathRules or routeRules
30059	// defined by this PathMatcher are matched. For example, the following
30060	// are all valid URLs to a BackendService resource:
30061	// -
30062	// https://www.googleapis.com/compute/v1/projects/project/global/backendServices/backendService
30063	//
30064	// - compute/v1/projects/project/global/backendServices/backendService
30065	//
30066	// - global/backendServices/backendService  If defaultRouteAction is
30067	// additionally specified, advanced routing actions like URL Rewrites,
30068	// etc. take effect prior to sending the request to the backend.
30069	// However, if defaultService is specified, defaultRouteAction cannot
30070	// contain any weightedBackendServices. Conversely, if
30071	// defaultRouteAction specifies any weightedBackendServices,
30072	// defaultService must not be specified.
30073	// Only one of defaultService, defaultUrlRedirect  or
30074	// defaultRouteAction.weightedBackendService must be set.
30075	// Authorization requires one or more of the following Google IAM
30076	// permissions on the specified resource default_service:
30077	// - compute.backendBuckets.use
30078	// - compute.backendServices.use
30079	DefaultService string `json:"defaultService,omitempty"`
30080
30081	// DefaultUrlRedirect: When none of the specified pathRules or
30082	// routeRules match, the request is redirected to a URL specified by
30083	// defaultUrlRedirect.
30084	// If defaultUrlRedirect is specified, defaultService or
30085	// defaultRouteAction must not be set.
30086	// Not supported when the URL map is bound to target gRPC proxy.
30087	DefaultUrlRedirect *HttpRedirectAction `json:"defaultUrlRedirect,omitempty"`
30088
30089	// Description: An optional description of this resource. Provide this
30090	// property when you create the resource.
30091	Description string `json:"description,omitempty"`
30092
30093	// HeaderAction: Specifies changes to request and response headers that
30094	// need to take effect for the selected backendService.
30095	// HeaderAction specified here are applied after the matching
30096	// HttpRouteRule HeaderAction and before the HeaderAction in the UrlMap
30097	//
30098	// Note that headerAction is not supported for Loadbalancers that have
30099	// their loadBalancingScheme set to EXTERNAL.
30100	// Not supported when the URL map is bound to target gRPC proxy that has
30101	// validateForProxyless field set to true.
30102	HeaderAction *HttpHeaderAction `json:"headerAction,omitempty"`
30103
30104	// Name: The name to which this PathMatcher is referred by the HostRule.
30105	Name string `json:"name,omitempty"`
30106
30107	// PathRules: The list of path rules. Use this list instead of
30108	// routeRules when routing based on simple path matching is all that's
30109	// required. The order by which path rules are specified does not
30110	// matter. Matches are always done on the longest-path-first basis.
30111	// For example: a pathRule with a path /a/b/c/* will match before /a/b/*
30112	// irrespective of the order in which those paths appear in this
30113	// list.
30114	// Within a given pathMatcher, only one of pathRules or routeRules must
30115	// be set.
30116	PathRules []*PathRule `json:"pathRules,omitempty"`
30117
30118	// RouteRules: The list of HTTP route rules. Use this list instead of
30119	// pathRules when advanced route matching and routing actions are
30120	// desired. routeRules are evaluated in order of priority, from the
30121	// lowest to highest number.
30122	// Within a given pathMatcher, you can set only one of pathRules or
30123	// routeRules.
30124	RouteRules []*HttpRouteRule `json:"routeRules,omitempty"`
30125
30126	// ForceSendFields is a list of field names (e.g. "DefaultRouteAction")
30127	// to unconditionally include in API requests. By default, fields with
30128	// empty values are omitted from API requests. However, any non-pointer,
30129	// non-interface field appearing in ForceSendFields will be sent to the
30130	// server regardless of whether the field is empty or not. This may be
30131	// used to include empty fields in Patch requests.
30132	ForceSendFields []string `json:"-"`
30133
30134	// NullFields is a list of field names (e.g. "DefaultRouteAction") to
30135	// include in API requests with the JSON null value. By default, fields
30136	// with empty values are omitted from API requests. However, any field
30137	// with an empty value appearing in NullFields will be sent to the
30138	// server as null. It is an error if a field in this list has a
30139	// non-empty value. This may be used to include null fields in Patch
30140	// requests.
30141	NullFields []string `json:"-"`
30142}
30143
30144func (s *PathMatcher) MarshalJSON() ([]byte, error) {
30145	type NoMethod PathMatcher
30146	raw := NoMethod(*s)
30147	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30148}
30149
30150// PathRule: A path-matching rule for a URL. If matched, will use the
30151// specified BackendService to handle the traffic arriving at this URL.
30152type PathRule struct {
30153	// Paths: The list of path patterns to match. Each must start with / and
30154	// the only place a * is allowed is at the end following a /. The string
30155	// fed to the path matcher does not include any text after the first ?
30156	// or #, and those chars are not allowed here.
30157	Paths []string `json:"paths,omitempty"`
30158
30159	// RouteAction: In response to a matching path, the load balancer
30160	// performs advanced routing actions like URL rewrites, header
30161	// transformations, etc. prior to forwarding the request to the selected
30162	// backend. If routeAction specifies any  weightedBackendServices,
30163	// service must not be set. Conversely if service is set, routeAction
30164	// cannot contain any  weightedBackendServices.
30165	// Only one of routeAction or urlRedirect must be set.
30166	// UrlMaps for external HTTP(S) load balancers support only the
30167	// urlRewrite action within a pathRule's routeAction.
30168	RouteAction *HttpRouteAction `json:"routeAction,omitempty"`
30169
30170	// Service: The full or partial URL of the backend service resource to
30171	// which traffic is directed if this rule is matched. If routeAction is
30172	// additionally specified, advanced routing actions like URL Rewrites,
30173	// etc. take effect prior to sending the request to the backend.
30174	// However, if service is specified, routeAction cannot contain any
30175	// weightedBackendService s. Conversely, if routeAction specifies any
30176	// weightedBackendServices, service must not be specified.
30177	// Only one of urlRedirect, service or
30178	// routeAction.weightedBackendService must be set.
30179	Service string `json:"service,omitempty"`
30180
30181	// UrlRedirect: When a path pattern is matched, the request is
30182	// redirected to a URL specified by urlRedirect.
30183	// If urlRedirect is specified, service or routeAction must not be
30184	// set.
30185	// Not supported when the URL map is bound to target gRPC proxy.
30186	UrlRedirect *HttpRedirectAction `json:"urlRedirect,omitempty"`
30187
30188	// ForceSendFields is a list of field names (e.g. "Paths") to
30189	// unconditionally include in API requests. By default, fields with
30190	// empty values are omitted from API requests. However, any non-pointer,
30191	// non-interface field appearing in ForceSendFields will be sent to the
30192	// server regardless of whether the field is empty or not. This may be
30193	// used to include empty fields in Patch requests.
30194	ForceSendFields []string `json:"-"`
30195
30196	// NullFields is a list of field names (e.g. "Paths") to include in API
30197	// requests with the JSON null value. By default, fields with empty
30198	// values are omitted from API requests. However, any field with an
30199	// empty value appearing in NullFields will be sent to the server as
30200	// null. It is an error if a field in this list has a non-empty value.
30201	// This may be used to include null fields in Patch requests.
30202	NullFields []string `json:"-"`
30203}
30204
30205func (s *PathRule) MarshalJSON() ([]byte, error) {
30206	type NoMethod PathRule
30207	raw := NoMethod(*s)
30208	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30209}
30210
30211type PerInstanceConfig struct {
30212	// Fingerprint: Fingerprint of this per-instance config. This field can
30213	// be used in optimistic locking. It is ignored when inserting a
30214	// per-instance config. An up-to-date fingerprint must be provided in
30215	// order to update an existing per-instance config or the field needs to
30216	// be unset.
30217	Fingerprint string `json:"fingerprint,omitempty"`
30218
30219	// Name: The name of a per-instance config and its corresponding
30220	// instance. Serves as a merge key during UpdatePerInstanceConfigs
30221	// operations, that is, if a per-instance config with the same name
30222	// exists then it will be updated, otherwise a new one will be created
30223	// for the VM instance with the same name. An attempt to create a
30224	// per-instance config for a VM instance that either doesn't exist or is
30225	// not part of the group will result in an error.
30226	Name string `json:"name,omitempty"`
30227
30228	// PreservedState: The intended preserved state for the given instance.
30229	// Does not contain preserved state generated from a stateful policy.
30230	PreservedState *PreservedState `json:"preservedState,omitempty"`
30231
30232	// Status: The status of applying this per-instance config on the
30233	// corresponding managed instance.
30234	//
30235	// Possible values:
30236	//   "APPLYING"
30237	//   "DELETING"
30238	//   "EFFECTIVE"
30239	//   "NONE"
30240	//   "UNAPPLIED"
30241	//   "UNAPPLIED_DELETION"
30242	Status string `json:"status,omitempty"`
30243
30244	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
30245	// unconditionally include in API requests. By default, fields with
30246	// empty values are omitted from API requests. However, any non-pointer,
30247	// non-interface field appearing in ForceSendFields will be sent to the
30248	// server regardless of whether the field is empty or not. This may be
30249	// used to include empty fields in Patch requests.
30250	ForceSendFields []string `json:"-"`
30251
30252	// NullFields is a list of field names (e.g. "Fingerprint") to include
30253	// in API requests with the JSON null value. By default, fields with
30254	// empty values are omitted from API requests. However, any field with
30255	// an empty value appearing in NullFields will be sent to the server as
30256	// null. It is an error if a field in this list has a non-empty value.
30257	// This may be used to include null fields in Patch requests.
30258	NullFields []string `json:"-"`
30259}
30260
30261func (s *PerInstanceConfig) MarshalJSON() ([]byte, error) {
30262	type NoMethod PerInstanceConfig
30263	raw := NoMethod(*s)
30264	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30265}
30266
30267// Policy: An Identity and Access Management (IAM) policy, which
30268// specifies access controls for Google Cloud resources.
30269//
30270//
30271//
30272// A `Policy` is a collection of `bindings`. A `binding` binds one or
30273// more `members` to a single `role`. Members can be user accounts,
30274// service accounts, Google groups, and domains (such as G Suite). A
30275// `role` is a named list of permissions; each `role` can be an IAM
30276// predefined role or a user-created custom role.
30277//
30278// For some types of Google Cloud resources, a `binding` can also
30279// specify a `condition`, which is a logical expression that allows
30280// access to a resource only if the expression evaluates to `true`. A
30281// condition can add constraints based on attributes of the request, the
30282// resource, or both. To learn which resources support conditions in
30283// their IAM policies, see the IAM documentation
30284// (https://cloud.google.com/iam/help/conditions/resource-policies).
30285//
30286// **JSON example:**
30287//
30288// { "bindings": [ { "role": "roles/resourcemanager.organizationAdmin",
30289// "members": [ "user:mike@example.com", "group:admins@example.com",
30290// "domain:google.com",
30291// "serviceAccount:my-project-id@appspot.gserviceaccount.com" ] }, {
30292// "role": "roles/resourcemanager.organizationViewer", "members": [
30293// "user:eve@example.com" ], "condition": { "title": "expirable access",
30294// "description": "Does not grant access after Sep 2020", "expression":
30295// "request.time < timestamp('2020-10-01T00:00:00.000Z')", } } ],
30296// "etag": "BwWWja0YfJA=", "version": 3 }
30297//
30298// **YAML example:**
30299//
30300// bindings: - members: - user:mike@example.com -
30301// group:admins@example.com - domain:google.com -
30302// serviceAccount:my-project-id@appspot.gserviceaccount.com role:
30303// roles/resourcemanager.organizationAdmin - members: -
30304// user:eve@example.com role: roles/resourcemanager.organizationViewer
30305// condition: title: expirable access description: Does not grant access
30306// after Sep 2020 expression: request.time <
30307// timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - version:
30308// 3
30309//
30310// For a description of IAM and its features, see the IAM documentation
30311// (https://cloud.google.com/iam/docs/).
30312type Policy struct {
30313	// AuditConfigs: Specifies cloud audit logging configuration for this
30314	// policy.
30315	AuditConfigs []*AuditConfig `json:"auditConfigs,omitempty"`
30316
30317	// Bindings: Associates a list of `members` to a `role`. Optionally, may
30318	// specify a `condition` that determines how and when the `bindings` are
30319	// applied. Each of the `bindings` must contain at least one member.
30320	Bindings []*Binding `json:"bindings,omitempty"`
30321
30322	// Etag: `etag` is used for optimistic concurrency control as a way to
30323	// help prevent simultaneous updates of a policy from overwriting each
30324	// other. It is strongly suggested that systems make use of the `etag`
30325	// in the read-modify-write cycle to perform policy updates in order to
30326	// avoid race conditions: An `etag` is returned in the response to
30327	// `getIamPolicy`, and systems are expected to put that etag in the
30328	// request to `setIamPolicy` to ensure that their change will be applied
30329	// to the same version of the policy.
30330	//
30331	// **Important:** If you use IAM Conditions, you must include the `etag`
30332	// field whenever you call `setIamPolicy`. If you omit this field, then
30333	// IAM allows you to overwrite a version `3` policy with a version `1`
30334	// policy, and all of the conditions in the version `3` policy are lost.
30335	Etag string `json:"etag,omitempty"`
30336
30337	IamOwned bool `json:"iamOwned,omitempty"`
30338
30339	// Rules: If more than one rule is specified, the rules are applied in
30340	// the following manner: - All matching LOG rules are always applied. -
30341	// If any DENY/DENY_WITH_LOG rule matches, permission is denied. Logging
30342	// will be applied if one or more matching rule requires logging. -
30343	// Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is
30344	// granted. Logging will be applied if one or more matching rule
30345	// requires logging. - Otherwise, if no rule applies, permission is
30346	// denied.
30347	Rules []*Rule `json:"rules,omitempty"`
30348
30349	// Version: Specifies the format of the policy.
30350	//
30351	// Valid values are `0`, `1`, and `3`. Requests that specify an invalid
30352	// value are rejected.
30353	//
30354	// Any operation that affects conditional role bindings must specify
30355	// version `3`. This requirement applies to the following operations:
30356	//
30357	// * Getting a policy that includes a conditional role binding * Adding
30358	// a conditional role binding to a policy * Changing a conditional role
30359	// binding in a policy * Removing any role binding, with or without a
30360	// condition, from a policy that includes conditions
30361	//
30362	// **Important:** If you use IAM Conditions, you must include the `etag`
30363	// field whenever you call `setIamPolicy`. If you omit this field, then
30364	// IAM allows you to overwrite a version `3` policy with a version `1`
30365	// policy, and all of the conditions in the version `3` policy are
30366	// lost.
30367	//
30368	// If a policy does not include any conditions, operations on that
30369	// policy may specify any valid version or leave the field unset.
30370	//
30371	// To learn which resources support conditions in their IAM policies,
30372	// see the IAM documentation
30373	// (https://cloud.google.com/iam/help/conditions/resource-policies).
30374	Version int64 `json:"version,omitempty"`
30375
30376	// ServerResponse contains the HTTP response code and headers from the
30377	// server.
30378	googleapi.ServerResponse `json:"-"`
30379
30380	// ForceSendFields is a list of field names (e.g. "AuditConfigs") to
30381	// unconditionally include in API requests. By default, fields with
30382	// empty values are omitted from API requests. However, any non-pointer,
30383	// non-interface field appearing in ForceSendFields will be sent to the
30384	// server regardless of whether the field is empty or not. This may be
30385	// used to include empty fields in Patch requests.
30386	ForceSendFields []string `json:"-"`
30387
30388	// NullFields is a list of field names (e.g. "AuditConfigs") to include
30389	// in API requests with the JSON null value. By default, fields with
30390	// empty values are omitted from API requests. However, any field with
30391	// an empty value appearing in NullFields will be sent to the server as
30392	// null. It is an error if a field in this list has a non-empty value.
30393	// This may be used to include null fields in Patch requests.
30394	NullFields []string `json:"-"`
30395}
30396
30397func (s *Policy) MarshalJSON() ([]byte, error) {
30398	type NoMethod Policy
30399	raw := NoMethod(*s)
30400	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30401}
30402
30403type PreconfiguredWafSet struct {
30404	// ExpressionSets: List of entities that are currently supported for WAF
30405	// rules.
30406	ExpressionSets []*WafExpressionSet `json:"expressionSets,omitempty"`
30407
30408	// ForceSendFields is a list of field names (e.g. "ExpressionSets") to
30409	// unconditionally include in API requests. By default, fields with
30410	// empty values are omitted from API requests. However, any non-pointer,
30411	// non-interface field appearing in ForceSendFields will be sent to the
30412	// server regardless of whether the field is empty or not. This may be
30413	// used to include empty fields in Patch requests.
30414	ForceSendFields []string `json:"-"`
30415
30416	// NullFields is a list of field names (e.g. "ExpressionSets") to
30417	// include in API requests with the JSON null value. By default, fields
30418	// with empty values are omitted from API requests. However, any field
30419	// with an empty value appearing in NullFields will be sent to the
30420	// server as null. It is an error if a field in this list has a
30421	// non-empty value. This may be used to include null fields in Patch
30422	// requests.
30423	NullFields []string `json:"-"`
30424}
30425
30426func (s *PreconfiguredWafSet) MarshalJSON() ([]byte, error) {
30427	type NoMethod PreconfiguredWafSet
30428	raw := NoMethod(*s)
30429	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30430}
30431
30432// PreservedState: Preserved state for a given instance.
30433type PreservedState struct {
30434	// Disks: Preserved disks defined for this instance. This map is keyed
30435	// with the device names of the disks.
30436	Disks map[string]PreservedStatePreservedDisk `json:"disks,omitempty"`
30437
30438	// Metadata: Preserved metadata defined for this instance.
30439	Metadata map[string]string `json:"metadata,omitempty"`
30440
30441	// ForceSendFields is a list of field names (e.g. "Disks") to
30442	// unconditionally include in API requests. By default, fields with
30443	// empty values are omitted from API requests. However, any non-pointer,
30444	// non-interface field appearing in ForceSendFields will be sent to the
30445	// server regardless of whether the field is empty or not. This may be
30446	// used to include empty fields in Patch requests.
30447	ForceSendFields []string `json:"-"`
30448
30449	// NullFields is a list of field names (e.g. "Disks") to include in API
30450	// requests with the JSON null value. By default, fields with empty
30451	// values are omitted from API requests. However, any field with an
30452	// empty value appearing in NullFields will be sent to the server as
30453	// null. It is an error if a field in this list has a non-empty value.
30454	// This may be used to include null fields in Patch requests.
30455	NullFields []string `json:"-"`
30456}
30457
30458func (s *PreservedState) MarshalJSON() ([]byte, error) {
30459	type NoMethod PreservedState
30460	raw := NoMethod(*s)
30461	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30462}
30463
30464type PreservedStatePreservedDisk struct {
30465	// AutoDelete: These stateful disks will never be deleted during
30466	// autohealing, update, instance recreate operations. This flag is used
30467	// to configure if the disk should be deleted after it is no longer used
30468	// by the group, e.g. when the given instance or the whole MIG is
30469	// deleted. Note: disks attached in READ_ONLY mode cannot be
30470	// auto-deleted.
30471	//
30472	// Possible values:
30473	//   "NEVER"
30474	//   "ON_PERMANENT_INSTANCE_DELETION"
30475	AutoDelete string `json:"autoDelete,omitempty"`
30476
30477	// Mode: The mode in which to attach this disk, either READ_WRITE or
30478	// READ_ONLY. If not specified, the default is to attach the disk in
30479	// READ_WRITE mode.
30480	//
30481	// Possible values:
30482	//   "READ_ONLY"
30483	//   "READ_WRITE"
30484	Mode string `json:"mode,omitempty"`
30485
30486	// Source: The URL of the disk resource that is stateful and should be
30487	// attached to the VM instance.
30488	Source string `json:"source,omitempty"`
30489
30490	// ForceSendFields is a list of field names (e.g. "AutoDelete") to
30491	// unconditionally include in API requests. By default, fields with
30492	// empty values are omitted from API requests. However, any non-pointer,
30493	// non-interface field appearing in ForceSendFields will be sent to the
30494	// server regardless of whether the field is empty or not. This may be
30495	// used to include empty fields in Patch requests.
30496	ForceSendFields []string `json:"-"`
30497
30498	// NullFields is a list of field names (e.g. "AutoDelete") to include in
30499	// API requests with the JSON null value. By default, fields with empty
30500	// values are omitted from API requests. However, any field with an
30501	// empty value appearing in NullFields will be sent to the server as
30502	// null. It is an error if a field in this list has a non-empty value.
30503	// This may be used to include null fields in Patch requests.
30504	NullFields []string `json:"-"`
30505}
30506
30507func (s *PreservedStatePreservedDisk) MarshalJSON() ([]byte, error) {
30508	type NoMethod PreservedStatePreservedDisk
30509	raw := NoMethod(*s)
30510	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30511}
30512
30513// Project: Represents a Project resource.
30514//
30515// A project is used to organize resources in a Google Cloud Platform
30516// environment. For more information, read about the  Resource
30517// Hierarchy. (== resource_for {$api_version}.projects ==)
30518type Project struct {
30519	// CommonInstanceMetadata: Metadata key/value pairs available to all
30520	// instances contained in this project. See Custom metadata for more
30521	// information.
30522	CommonInstanceMetadata *Metadata `json:"commonInstanceMetadata,omitempty"`
30523
30524	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
30525	// format.
30526	CreationTimestamp string `json:"creationTimestamp,omitempty"`
30527
30528	// DefaultNetworkTier: This signifies the default network tier used for
30529	// configuring resources of the project and can only take the following
30530	// values: PREMIUM, STANDARD. Initially the default network tier is
30531	// PREMIUM.
30532	//
30533	// Possible values:
30534	//   "PREMIUM"
30535	//   "STANDARD"
30536	DefaultNetworkTier string `json:"defaultNetworkTier,omitempty"`
30537
30538	// DefaultServiceAccount: [Output Only] Default service account used by
30539	// VMs running in this project.
30540	DefaultServiceAccount string `json:"defaultServiceAccount,omitempty"`
30541
30542	// Description: An optional textual description of the resource.
30543	Description string `json:"description,omitempty"`
30544
30545	// EnabledFeatures: Restricted features enabled for use on this project.
30546	EnabledFeatures []string `json:"enabledFeatures,omitempty"`
30547
30548	// Id: [Output Only] The unique identifier for the resource. This
30549	// identifier is defined by the server. This is not the project ID, and
30550	// is just a unique ID used by Compute Engine to identify resources.
30551	Id uint64 `json:"id,omitempty,string"`
30552
30553	// Kind: [Output Only] Type of the resource. Always compute#project for
30554	// projects.
30555	Kind string `json:"kind,omitempty"`
30556
30557	// Name: The project ID. For example: my-example-project. Use the
30558	// project ID to make requests to Compute Engine.
30559	Name string `json:"name,omitempty"`
30560
30561	// Quotas: [Output Only] Quotas assigned to this project.
30562	Quotas []*Quota `json:"quotas,omitempty"`
30563
30564	// SelfLink: [Output Only] Server-defined URL for the resource.
30565	SelfLink string `json:"selfLink,omitempty"`
30566
30567	// UsageExportLocation: The naming prefix for daily usage reports and
30568	// the Google Cloud Storage bucket where they are stored.
30569	UsageExportLocation *UsageExportLocation `json:"usageExportLocation,omitempty"`
30570
30571	// XpnProjectStatus: [Output Only] The role this project has in a shared
30572	// VPC configuration. Currently, only projects with the host role, which
30573	// is specified by the value HOST, are differentiated.
30574	//
30575	// Possible values:
30576	//   "HOST"
30577	//   "UNSPECIFIED_XPN_PROJECT_STATUS"
30578	XpnProjectStatus string `json:"xpnProjectStatus,omitempty"`
30579
30580	// ServerResponse contains the HTTP response code and headers from the
30581	// server.
30582	googleapi.ServerResponse `json:"-"`
30583
30584	// ForceSendFields is a list of field names (e.g.
30585	// "CommonInstanceMetadata") to unconditionally include in API requests.
30586	// By default, fields with empty values are omitted from API requests.
30587	// However, any non-pointer, non-interface field appearing in
30588	// ForceSendFields will be sent to the server regardless of whether the
30589	// field is empty or not. This may be used to include empty fields in
30590	// Patch requests.
30591	ForceSendFields []string `json:"-"`
30592
30593	// NullFields is a list of field names (e.g. "CommonInstanceMetadata")
30594	// to include in API requests with the JSON null value. By default,
30595	// fields with empty values are omitted from API requests. However, any
30596	// field with an empty value appearing in NullFields will be sent to the
30597	// server as null. It is an error if a field in this list has a
30598	// non-empty value. This may be used to include null fields in Patch
30599	// requests.
30600	NullFields []string `json:"-"`
30601}
30602
30603func (s *Project) MarshalJSON() ([]byte, error) {
30604	type NoMethod Project
30605	raw := NoMethod(*s)
30606	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30607}
30608
30609type ProjectsDisableXpnResourceRequest struct {
30610	// XpnResource: Service resource (a.k.a service project) ID.
30611	XpnResource *XpnResourceId `json:"xpnResource,omitempty"`
30612
30613	// ForceSendFields is a list of field names (e.g. "XpnResource") to
30614	// unconditionally include in API requests. By default, fields with
30615	// empty values are omitted from API requests. However, any non-pointer,
30616	// non-interface field appearing in ForceSendFields will be sent to the
30617	// server regardless of whether the field is empty or not. This may be
30618	// used to include empty fields in Patch requests.
30619	ForceSendFields []string `json:"-"`
30620
30621	// NullFields is a list of field names (e.g. "XpnResource") to include
30622	// in API requests with the JSON null value. By default, fields with
30623	// empty values are omitted from API requests. However, any field with
30624	// an empty value appearing in NullFields will be sent to the server as
30625	// null. It is an error if a field in this list has a non-empty value.
30626	// This may be used to include null fields in Patch requests.
30627	NullFields []string `json:"-"`
30628}
30629
30630func (s *ProjectsDisableXpnResourceRequest) MarshalJSON() ([]byte, error) {
30631	type NoMethod ProjectsDisableXpnResourceRequest
30632	raw := NoMethod(*s)
30633	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30634}
30635
30636type ProjectsEnableXpnResourceRequest struct {
30637	// XpnResource: Service resource (a.k.a service project) ID.
30638	XpnResource *XpnResourceId `json:"xpnResource,omitempty"`
30639
30640	// ForceSendFields is a list of field names (e.g. "XpnResource") to
30641	// unconditionally include in API requests. By default, fields with
30642	// empty values are omitted from API requests. However, any non-pointer,
30643	// non-interface field appearing in ForceSendFields will be sent to the
30644	// server regardless of whether the field is empty or not. This may be
30645	// used to include empty fields in Patch requests.
30646	ForceSendFields []string `json:"-"`
30647
30648	// NullFields is a list of field names (e.g. "XpnResource") to include
30649	// in API requests with the JSON null value. By default, fields with
30650	// empty values are omitted from API requests. However, any field with
30651	// an empty value appearing in NullFields will be sent to the server as
30652	// null. It is an error if a field in this list has a non-empty value.
30653	// This may be used to include null fields in Patch requests.
30654	NullFields []string `json:"-"`
30655}
30656
30657func (s *ProjectsEnableXpnResourceRequest) MarshalJSON() ([]byte, error) {
30658	type NoMethod ProjectsEnableXpnResourceRequest
30659	raw := NoMethod(*s)
30660	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30661}
30662
30663type ProjectsGetXpnResources struct {
30664	// Kind: [Output Only] Type of resource. Always
30665	// compute#projectsGetXpnResources for lists of service resources (a.k.a
30666	// service projects)
30667	Kind string `json:"kind,omitempty"`
30668
30669	// NextPageToken: [Output Only] This token allows you to get the next
30670	// page of results for list requests. If the number of results is larger
30671	// than maxResults, use the nextPageToken as a value for the query
30672	// parameter pageToken in the next list request. Subsequent list
30673	// requests will have their own nextPageToken to continue paging through
30674	// the results.
30675	NextPageToken string `json:"nextPageToken,omitempty"`
30676
30677	// Resources: Service resources (a.k.a service projects) attached to
30678	// this project as their shared VPC host.
30679	Resources []*XpnResourceId `json:"resources,omitempty"`
30680
30681	// ServerResponse contains the HTTP response code and headers from the
30682	// server.
30683	googleapi.ServerResponse `json:"-"`
30684
30685	// ForceSendFields is a list of field names (e.g. "Kind") to
30686	// unconditionally include in API requests. By default, fields with
30687	// empty values are omitted from API requests. However, any non-pointer,
30688	// non-interface field appearing in ForceSendFields will be sent to the
30689	// server regardless of whether the field is empty or not. This may be
30690	// used to include empty fields in Patch requests.
30691	ForceSendFields []string `json:"-"`
30692
30693	// NullFields is a list of field names (e.g. "Kind") to include in API
30694	// requests with the JSON null value. By default, fields with empty
30695	// values are omitted from API requests. However, any field with an
30696	// empty value appearing in NullFields will be sent to the server as
30697	// null. It is an error if a field in this list has a non-empty value.
30698	// This may be used to include null fields in Patch requests.
30699	NullFields []string `json:"-"`
30700}
30701
30702func (s *ProjectsGetXpnResources) MarshalJSON() ([]byte, error) {
30703	type NoMethod ProjectsGetXpnResources
30704	raw := NoMethod(*s)
30705	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30706}
30707
30708type ProjectsListXpnHostsRequest struct {
30709	// Organization: Optional organization ID managed by Cloud Resource
30710	// Manager, for which to list shared VPC host projects. If not
30711	// specified, the organization will be inferred from the project.
30712	Organization string `json:"organization,omitempty"`
30713
30714	// ForceSendFields is a list of field names (e.g. "Organization") to
30715	// unconditionally include in API requests. By default, fields with
30716	// empty values are omitted from API requests. However, any non-pointer,
30717	// non-interface field appearing in ForceSendFields will be sent to the
30718	// server regardless of whether the field is empty or not. This may be
30719	// used to include empty fields in Patch requests.
30720	ForceSendFields []string `json:"-"`
30721
30722	// NullFields is a list of field names (e.g. "Organization") to include
30723	// in API requests with the JSON null value. By default, fields with
30724	// empty values are omitted from API requests. However, any field with
30725	// an empty value appearing in NullFields will be sent to the server as
30726	// null. It is an error if a field in this list has a non-empty value.
30727	// This may be used to include null fields in Patch requests.
30728	NullFields []string `json:"-"`
30729}
30730
30731func (s *ProjectsListXpnHostsRequest) MarshalJSON() ([]byte, error) {
30732	type NoMethod ProjectsListXpnHostsRequest
30733	raw := NoMethod(*s)
30734	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30735}
30736
30737type ProjectsSetDefaultNetworkTierRequest struct {
30738	// NetworkTier: Default network tier to be set.
30739	//
30740	// Possible values:
30741	//   "PREMIUM"
30742	//   "STANDARD"
30743	NetworkTier string `json:"networkTier,omitempty"`
30744
30745	// ForceSendFields is a list of field names (e.g. "NetworkTier") to
30746	// unconditionally include in API requests. By default, fields with
30747	// empty values are omitted from API requests. However, any non-pointer,
30748	// non-interface field appearing in ForceSendFields will be sent to the
30749	// server regardless of whether the field is empty or not. This may be
30750	// used to include empty fields in Patch requests.
30751	ForceSendFields []string `json:"-"`
30752
30753	// NullFields is a list of field names (e.g. "NetworkTier") to include
30754	// in API requests with the JSON null value. By default, fields with
30755	// empty values are omitted from API requests. However, any field with
30756	// an empty value appearing in NullFields will be sent to the server as
30757	// null. It is an error if a field in this list has a non-empty value.
30758	// This may be used to include null fields in Patch requests.
30759	NullFields []string `json:"-"`
30760}
30761
30762func (s *ProjectsSetDefaultNetworkTierRequest) MarshalJSON() ([]byte, error) {
30763	type NoMethod ProjectsSetDefaultNetworkTierRequest
30764	raw := NoMethod(*s)
30765	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30766}
30767
30768// PublicAdvertisedPrefix: A public advertised prefix represents an
30769// aggregated IP prefix or netblock which customers bring to cloud. The
30770// IP prefix is a single unit of route advertisement and is announced
30771// globally to the internet.
30772type PublicAdvertisedPrefix struct {
30773	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
30774	// format.
30775	CreationTimestamp string `json:"creationTimestamp,omitempty"`
30776
30777	// Description: An optional description of this resource. Provide this
30778	// property when you create the resource.
30779	Description string `json:"description,omitempty"`
30780
30781	// DnsVerificationIp: The IPv4 address to be used for reverse DNS
30782	// verification.
30783	DnsVerificationIp string `json:"dnsVerificationIp,omitempty"`
30784
30785	// Fingerprint: Fingerprint of this resource. A hash of the contents
30786	// stored in this object. This field is used in optimistic locking. This
30787	// field will be ignored when inserting a new PublicAdvertisedPrefix. An
30788	// up-to-date fingerprint must be provided in order to update the
30789	// PublicAdvertisedPrefix, otherwise the request will fail with error
30790	// 412 conditionNotMet.
30791	//
30792	// To see the latest fingerprint, make a get() request to retrieve a
30793	// PublicAdvertisedPrefix.
30794	Fingerprint string `json:"fingerprint,omitempty"`
30795
30796	// Id: [Output Only] The unique identifier for the resource type. The
30797	// server generates this identifier.
30798	Id uint64 `json:"id,omitempty,string"`
30799
30800	// IpCidrRange: The IPv4 address range, in CIDR format, represented by
30801	// this public advertised prefix.
30802	IpCidrRange string `json:"ipCidrRange,omitempty"`
30803
30804	// Kind: [Output Only] Type of the resource. Always
30805	// compute#publicAdvertisedPrefix for public advertised prefixes.
30806	Kind string `json:"kind,omitempty"`
30807
30808	// Name: Name of the resource. Provided by the client when the resource
30809	// is created. The name must be 1-63 characters long, and comply with
30810	// RFC1035. Specifically, the name must be 1-63 characters long and
30811	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
30812	// the first character must be a lowercase letter, and all following
30813	// characters must be a dash, lowercase letter, or digit, except the
30814	// last character, which cannot be a dash.
30815	Name string `json:"name,omitempty"`
30816
30817	// PublicDelegatedPrefixs: [Output Only] The list of public delegated
30818	// prefixes that exist for this public advertised prefix.
30819	PublicDelegatedPrefixs []*PublicAdvertisedPrefixPublicDelegatedPrefix `json:"publicDelegatedPrefixs,omitempty"`
30820
30821	// SelfLink: [Output Only] Server-defined URL for the resource.
30822	SelfLink string `json:"selfLink,omitempty"`
30823
30824	// SharedSecret: [Output Only] The shared secret to be used for reverse
30825	// DNS verification.
30826	SharedSecret string `json:"sharedSecret,omitempty"`
30827
30828	// Status: The status of the public advertised prefix.
30829	//
30830	// Possible values:
30831	//   "INITIAL"
30832	//   "PREFIX_CONFIGURATION_COMPLETE"
30833	//   "PREFIX_CONFIGURATION_IN_PROGRESS"
30834	//   "PREFIX_REMOVAL_IN_PROGRESS"
30835	//   "PTR_CONFIGURED"
30836	//   "REVERSE_DNS_LOOKUP_FAILED"
30837	//   "VALIDATED"
30838	Status string `json:"status,omitempty"`
30839
30840	// ServerResponse contains the HTTP response code and headers from the
30841	// server.
30842	googleapi.ServerResponse `json:"-"`
30843
30844	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
30845	// to unconditionally include in API requests. By default, fields with
30846	// empty values are omitted from API requests. However, any non-pointer,
30847	// non-interface field appearing in ForceSendFields will be sent to the
30848	// server regardless of whether the field is empty or not. This may be
30849	// used to include empty fields in Patch requests.
30850	ForceSendFields []string `json:"-"`
30851
30852	// NullFields is a list of field names (e.g. "CreationTimestamp") to
30853	// include in API requests with the JSON null value. By default, fields
30854	// with empty values are omitted from API requests. However, any field
30855	// with an empty value appearing in NullFields will be sent to the
30856	// server as null. It is an error if a field in this list has a
30857	// non-empty value. This may be used to include null fields in Patch
30858	// requests.
30859	NullFields []string `json:"-"`
30860}
30861
30862func (s *PublicAdvertisedPrefix) MarshalJSON() ([]byte, error) {
30863	type NoMethod PublicAdvertisedPrefix
30864	raw := NoMethod(*s)
30865	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30866}
30867
30868type PublicAdvertisedPrefixList struct {
30869	// Id: [Output Only] Unique identifier for the resource; defined by the
30870	// server.
30871	Id string `json:"id,omitempty"`
30872
30873	// Items: A list of PublicAdvertisedPrefix resources.
30874	Items []*PublicAdvertisedPrefix `json:"items,omitempty"`
30875
30876	// Kind: [Output Only] Type of the resource. Always
30877	// compute#publicAdvertisedPrefix for public advertised prefixes.
30878	Kind string `json:"kind,omitempty"`
30879
30880	// NextPageToken: [Output Only] This token allows you to get the next
30881	// page of results for list requests. If the number of results is larger
30882	// than maxResults, use the nextPageToken as a value for the query
30883	// parameter pageToken in the next list request. Subsequent list
30884	// requests will have their own nextPageToken to continue paging through
30885	// the results.
30886	NextPageToken string `json:"nextPageToken,omitempty"`
30887
30888	// SelfLink: [Output Only] Server-defined URL for this resource.
30889	SelfLink string `json:"selfLink,omitempty"`
30890
30891	// Warning: [Output Only] Informational warning message.
30892	Warning *PublicAdvertisedPrefixListWarning `json:"warning,omitempty"`
30893
30894	// ServerResponse contains the HTTP response code and headers from the
30895	// server.
30896	googleapi.ServerResponse `json:"-"`
30897
30898	// ForceSendFields is a list of field names (e.g. "Id") to
30899	// unconditionally include in API requests. By default, fields with
30900	// empty values are omitted from API requests. However, any non-pointer,
30901	// non-interface field appearing in ForceSendFields will be sent to the
30902	// server regardless of whether the field is empty or not. This may be
30903	// used to include empty fields in Patch requests.
30904	ForceSendFields []string `json:"-"`
30905
30906	// NullFields is a list of field names (e.g. "Id") to include in API
30907	// requests with the JSON null value. By default, fields with empty
30908	// values are omitted from API requests. However, any field with an
30909	// empty value appearing in NullFields will be sent to the server as
30910	// null. It is an error if a field in this list has a non-empty value.
30911	// This may be used to include null fields in Patch requests.
30912	NullFields []string `json:"-"`
30913}
30914
30915func (s *PublicAdvertisedPrefixList) MarshalJSON() ([]byte, error) {
30916	type NoMethod PublicAdvertisedPrefixList
30917	raw := NoMethod(*s)
30918	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30919}
30920
30921// PublicAdvertisedPrefixListWarning: [Output Only] Informational
30922// warning message.
30923type PublicAdvertisedPrefixListWarning struct {
30924	// Code: [Output Only] A warning code, if applicable. For example,
30925	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
30926	// the response.
30927	//
30928	// Possible values:
30929	//   "CLEANUP_FAILED"
30930	//   "DEPRECATED_RESOURCE_USED"
30931	//   "DEPRECATED_TYPE_USED"
30932	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
30933	//   "EXPERIMENTAL_TYPE_USED"
30934	//   "EXTERNAL_API_WARNING"
30935	//   "FIELD_VALUE_OVERRIDEN"
30936	//   "INJECTED_KERNELS_DEPRECATED"
30937	//   "LARGE_DEPLOYMENT_WARNING"
30938	//   "MISSING_TYPE_DEPENDENCY"
30939	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
30940	//   "NEXT_HOP_CANNOT_IP_FORWARD"
30941	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
30942	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
30943	//   "NEXT_HOP_NOT_RUNNING"
30944	//   "NOT_CRITICAL_ERROR"
30945	//   "NO_RESULTS_ON_PAGE"
30946	//   "PARTIAL_SUCCESS"
30947	//   "REQUIRED_TOS_AGREEMENT"
30948	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
30949	//   "RESOURCE_NOT_DELETED"
30950	//   "SCHEMA_VALIDATION_IGNORED"
30951	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
30952	//   "UNDECLARED_PROPERTIES"
30953	//   "UNREACHABLE"
30954	Code string `json:"code,omitempty"`
30955
30956	// Data: [Output Only] Metadata about this warning in key: value format.
30957	// For example:
30958	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
30959	Data []*PublicAdvertisedPrefixListWarningData `json:"data,omitempty"`
30960
30961	// Message: [Output Only] A human-readable description of the warning
30962	// code.
30963	Message string `json:"message,omitempty"`
30964
30965	// ForceSendFields is a list of field names (e.g. "Code") to
30966	// unconditionally include in API requests. By default, fields with
30967	// empty values are omitted from API requests. However, any non-pointer,
30968	// non-interface field appearing in ForceSendFields will be sent to the
30969	// server regardless of whether the field is empty or not. This may be
30970	// used to include empty fields in Patch requests.
30971	ForceSendFields []string `json:"-"`
30972
30973	// NullFields is a list of field names (e.g. "Code") to include in API
30974	// requests with the JSON null value. By default, fields with empty
30975	// values are omitted from API requests. However, any field with an
30976	// empty value appearing in NullFields will be sent to the server as
30977	// null. It is an error if a field in this list has a non-empty value.
30978	// This may be used to include null fields in Patch requests.
30979	NullFields []string `json:"-"`
30980}
30981
30982func (s *PublicAdvertisedPrefixListWarning) MarshalJSON() ([]byte, error) {
30983	type NoMethod PublicAdvertisedPrefixListWarning
30984	raw := NoMethod(*s)
30985	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30986}
30987
30988type PublicAdvertisedPrefixListWarningData struct {
30989	// Key: [Output Only] A key that provides more detail on the warning
30990	// being returned. For example, for warnings where there are no results
30991	// in a list request for a particular zone, this key might be scope and
30992	// the key value might be the zone name. Other examples might be a key
30993	// indicating a deprecated resource and a suggested replacement, or a
30994	// warning about invalid network settings (for example, if an instance
30995	// attempts to perform IP forwarding but is not enabled for IP
30996	// forwarding).
30997	Key string `json:"key,omitempty"`
30998
30999	// Value: [Output Only] A warning data value corresponding to the key.
31000	Value string `json:"value,omitempty"`
31001
31002	// ForceSendFields is a list of field names (e.g. "Key") to
31003	// unconditionally include in API requests. By default, fields with
31004	// empty values are omitted from API requests. However, any non-pointer,
31005	// non-interface field appearing in ForceSendFields will be sent to the
31006	// server regardless of whether the field is empty or not. This may be
31007	// used to include empty fields in Patch requests.
31008	ForceSendFields []string `json:"-"`
31009
31010	// NullFields is a list of field names (e.g. "Key") to include in API
31011	// requests with the JSON null value. By default, fields with empty
31012	// values are omitted from API requests. However, any field with an
31013	// empty value appearing in NullFields will be sent to the server as
31014	// null. It is an error if a field in this list has a non-empty value.
31015	// This may be used to include null fields in Patch requests.
31016	NullFields []string `json:"-"`
31017}
31018
31019func (s *PublicAdvertisedPrefixListWarningData) MarshalJSON() ([]byte, error) {
31020	type NoMethod PublicAdvertisedPrefixListWarningData
31021	raw := NoMethod(*s)
31022	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31023}
31024
31025// PublicAdvertisedPrefixPublicDelegatedPrefix: Represents a CIDR range
31026// which can be used to assign addresses.
31027type PublicAdvertisedPrefixPublicDelegatedPrefix struct {
31028	// IpRange: The IP address range of the public delegated prefix
31029	IpRange string `json:"ipRange,omitempty"`
31030
31031	// Name: The name of the public delegated prefix
31032	Name string `json:"name,omitempty"`
31033
31034	// Project: The project number of the public delegated prefix
31035	Project string `json:"project,omitempty"`
31036
31037	// Region: The region of the public delegated prefix if it is regional.
31038	// If absent, the prefix is global.
31039	Region string `json:"region,omitempty"`
31040
31041	// Status: The status of the public delegated prefix. Possible values
31042	// are: INITIALIZING: The public delegated prefix is being initialized
31043	// and addresses cannot be created yet. ANNOUNCED: The public delegated
31044	// prefix is active.
31045	Status string `json:"status,omitempty"`
31046
31047	// ForceSendFields is a list of field names (e.g. "IpRange") to
31048	// unconditionally include in API requests. By default, fields with
31049	// empty values are omitted from API requests. However, any non-pointer,
31050	// non-interface field appearing in ForceSendFields will be sent to the
31051	// server regardless of whether the field is empty or not. This may be
31052	// used to include empty fields in Patch requests.
31053	ForceSendFields []string `json:"-"`
31054
31055	// NullFields is a list of field names (e.g. "IpRange") to include in
31056	// API requests with the JSON null value. By default, fields with empty
31057	// values are omitted from API requests. However, any field with an
31058	// empty value appearing in NullFields will be sent to the server as
31059	// null. It is an error if a field in this list has a non-empty value.
31060	// This may be used to include null fields in Patch requests.
31061	NullFields []string `json:"-"`
31062}
31063
31064func (s *PublicAdvertisedPrefixPublicDelegatedPrefix) MarshalJSON() ([]byte, error) {
31065	type NoMethod PublicAdvertisedPrefixPublicDelegatedPrefix
31066	raw := NoMethod(*s)
31067	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31068}
31069
31070// PublicDelegatedPrefix: A PublicDelegatedPrefix resource represents an
31071// IP block within a PublicAdvertisedPrefix that is configured within a
31072// single cloud scope (global or region). IPs in the block can be
31073// allocated to resources within that scope. Public delegated prefixes
31074// may be further broken up into smaller IP blocks in the same scope as
31075// the parent block.
31076type PublicDelegatedPrefix struct {
31077	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
31078	// format.
31079	CreationTimestamp string `json:"creationTimestamp,omitempty"`
31080
31081	// Description: An optional description of this resource. Provide this
31082	// property when you create the resource.
31083	Description string `json:"description,omitempty"`
31084
31085	// Fingerprint: Fingerprint of this resource. A hash of the contents
31086	// stored in this object. This field is used in optimistic locking. This
31087	// field will be ignored when inserting a new PublicDelegatedPrefix. An
31088	// up-to-date fingerprint must be provided in order to update the
31089	// PublicDelegatedPrefix, otherwise the request will fail with error 412
31090	// conditionNotMet.
31091	//
31092	// To see the latest fingerprint, make a get() request to retrieve a
31093	// PublicDelegatedPrefix.
31094	Fingerprint string `json:"fingerprint,omitempty"`
31095
31096	// Id: [Output Only] The unique identifier for the resource type. The
31097	// server generates this identifier.
31098	Id uint64 `json:"id,omitempty,string"`
31099
31100	// IpCidrRange: The IPv4 address range, in CIDR format, represented by
31101	// this public delegated prefix.
31102	IpCidrRange string `json:"ipCidrRange,omitempty"`
31103
31104	// IsLiveMigration: If true, the prefix will be live migrated.
31105	IsLiveMigration bool `json:"isLiveMigration,omitempty"`
31106
31107	// Kind: [Output Only] Type of the resource. Always
31108	// compute#publicDelegatedPrefix for public delegated prefixes.
31109	Kind string `json:"kind,omitempty"`
31110
31111	// Name: Name of the resource. Provided by the client when the resource
31112	// is created. The name must be 1-63 characters long, and comply with
31113	// RFC1035. Specifically, the name must be 1-63 characters long and
31114	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
31115	// the first character must be a lowercase letter, and all following
31116	// characters must be a dash, lowercase letter, or digit, except the
31117	// last character, which cannot be a dash.
31118	Name string `json:"name,omitempty"`
31119
31120	// ParentPrefix: The URL of parent prefix. Either PublicAdvertisedPrefix
31121	// or PublicDelegatedPrefix.
31122	ParentPrefix string `json:"parentPrefix,omitempty"`
31123
31124	// PublicDelegatedSubPrefixs: The list of sub public delegated prefixes
31125	// that exist for this public delegated prefix.
31126	PublicDelegatedSubPrefixs []*PublicDelegatedPrefixPublicDelegatedSubPrefix `json:"publicDelegatedSubPrefixs,omitempty"`
31127
31128	// Region: [Output Only] URL of the region where the public delegated
31129	// prefix resides. This field applies only to the region resource. You
31130	// must specify this field as part of the HTTP request URL. It is not
31131	// settable as a field in the request body.
31132	Region string `json:"region,omitempty"`
31133
31134	// SelfLink: [Output Only] Server-defined URL for the resource.
31135	SelfLink string `json:"selfLink,omitempty"`
31136
31137	// Status: [Output Only] The status of the public delegated prefix.
31138	//
31139	// Possible values:
31140	//   "ANNOUNCED"
31141	//   "DELETING"
31142	//   "INITIALIZING"
31143	Status string `json:"status,omitempty"`
31144
31145	// ServerResponse contains the HTTP response code and headers from the
31146	// server.
31147	googleapi.ServerResponse `json:"-"`
31148
31149	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
31150	// to unconditionally include in API requests. By default, fields with
31151	// empty values are omitted from API requests. However, any non-pointer,
31152	// non-interface field appearing in ForceSendFields will be sent to the
31153	// server regardless of whether the field is empty or not. This may be
31154	// used to include empty fields in Patch requests.
31155	ForceSendFields []string `json:"-"`
31156
31157	// NullFields is a list of field names (e.g. "CreationTimestamp") to
31158	// include in API requests with the JSON null value. By default, fields
31159	// with empty values are omitted from API requests. However, any field
31160	// with an empty value appearing in NullFields will be sent to the
31161	// server as null. It is an error if a field in this list has a
31162	// non-empty value. This may be used to include null fields in Patch
31163	// requests.
31164	NullFields []string `json:"-"`
31165}
31166
31167func (s *PublicDelegatedPrefix) MarshalJSON() ([]byte, error) {
31168	type NoMethod PublicDelegatedPrefix
31169	raw := NoMethod(*s)
31170	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31171}
31172
31173type PublicDelegatedPrefixAggregatedList struct {
31174	// Id: [Output Only] Unique identifier for the resource; defined by the
31175	// server.
31176	Id string `json:"id,omitempty"`
31177
31178	// Items: A list of PublicDelegatedPrefixesScopedList resources.
31179	Items map[string]PublicDelegatedPrefixesScopedList `json:"items,omitempty"`
31180
31181	// Kind: [Output Only] Type of the resource. Always
31182	// compute#publicDelegatedPrefixAggregatedList for aggregated lists of
31183	// public delegated prefixes.
31184	Kind string `json:"kind,omitempty"`
31185
31186	// NextPageToken: [Output Only] This token allows you to get the next
31187	// page of results for list requests. If the number of results is larger
31188	// than maxResults, use the nextPageToken as a value for the query
31189	// parameter pageToken in the next list request. Subsequent list
31190	// requests will have their own nextPageToken to continue paging through
31191	// the results.
31192	NextPageToken string `json:"nextPageToken,omitempty"`
31193
31194	// SelfLink: [Output Only] Server-defined URL for this resource.
31195	SelfLink string `json:"selfLink,omitempty"`
31196
31197	// Unreachables: [Output Only] Unreachable resources.
31198	Unreachables []string `json:"unreachables,omitempty"`
31199
31200	// Warning: [Output Only] Informational warning message.
31201	Warning *PublicDelegatedPrefixAggregatedListWarning `json:"warning,omitempty"`
31202
31203	// ServerResponse contains the HTTP response code and headers from the
31204	// server.
31205	googleapi.ServerResponse `json:"-"`
31206
31207	// ForceSendFields is a list of field names (e.g. "Id") to
31208	// unconditionally include in API requests. By default, fields with
31209	// empty values are omitted from API requests. However, any non-pointer,
31210	// non-interface field appearing in ForceSendFields will be sent to the
31211	// server regardless of whether the field is empty or not. This may be
31212	// used to include empty fields in Patch requests.
31213	ForceSendFields []string `json:"-"`
31214
31215	// NullFields is a list of field names (e.g. "Id") to include in API
31216	// requests with the JSON null value. By default, fields with empty
31217	// values are omitted from API requests. However, any field with an
31218	// empty value appearing in NullFields will be sent to the server as
31219	// null. It is an error if a field in this list has a non-empty value.
31220	// This may be used to include null fields in Patch requests.
31221	NullFields []string `json:"-"`
31222}
31223
31224func (s *PublicDelegatedPrefixAggregatedList) MarshalJSON() ([]byte, error) {
31225	type NoMethod PublicDelegatedPrefixAggregatedList
31226	raw := NoMethod(*s)
31227	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31228}
31229
31230// PublicDelegatedPrefixAggregatedListWarning: [Output Only]
31231// Informational warning message.
31232type PublicDelegatedPrefixAggregatedListWarning struct {
31233	// Code: [Output Only] A warning code, if applicable. For example,
31234	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
31235	// the response.
31236	//
31237	// Possible values:
31238	//   "CLEANUP_FAILED"
31239	//   "DEPRECATED_RESOURCE_USED"
31240	//   "DEPRECATED_TYPE_USED"
31241	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
31242	//   "EXPERIMENTAL_TYPE_USED"
31243	//   "EXTERNAL_API_WARNING"
31244	//   "FIELD_VALUE_OVERRIDEN"
31245	//   "INJECTED_KERNELS_DEPRECATED"
31246	//   "LARGE_DEPLOYMENT_WARNING"
31247	//   "MISSING_TYPE_DEPENDENCY"
31248	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
31249	//   "NEXT_HOP_CANNOT_IP_FORWARD"
31250	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
31251	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
31252	//   "NEXT_HOP_NOT_RUNNING"
31253	//   "NOT_CRITICAL_ERROR"
31254	//   "NO_RESULTS_ON_PAGE"
31255	//   "PARTIAL_SUCCESS"
31256	//   "REQUIRED_TOS_AGREEMENT"
31257	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
31258	//   "RESOURCE_NOT_DELETED"
31259	//   "SCHEMA_VALIDATION_IGNORED"
31260	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
31261	//   "UNDECLARED_PROPERTIES"
31262	//   "UNREACHABLE"
31263	Code string `json:"code,omitempty"`
31264
31265	// Data: [Output Only] Metadata about this warning in key: value format.
31266	// For example:
31267	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
31268	Data []*PublicDelegatedPrefixAggregatedListWarningData `json:"data,omitempty"`
31269
31270	// Message: [Output Only] A human-readable description of the warning
31271	// code.
31272	Message string `json:"message,omitempty"`
31273
31274	// ForceSendFields is a list of field names (e.g. "Code") to
31275	// unconditionally include in API requests. By default, fields with
31276	// empty values are omitted from API requests. However, any non-pointer,
31277	// non-interface field appearing in ForceSendFields will be sent to the
31278	// server regardless of whether the field is empty or not. This may be
31279	// used to include empty fields in Patch requests.
31280	ForceSendFields []string `json:"-"`
31281
31282	// NullFields is a list of field names (e.g. "Code") to include in API
31283	// requests with the JSON null value. By default, fields with empty
31284	// values are omitted from API requests. However, any field with an
31285	// empty value appearing in NullFields will be sent to the server as
31286	// null. It is an error if a field in this list has a non-empty value.
31287	// This may be used to include null fields in Patch requests.
31288	NullFields []string `json:"-"`
31289}
31290
31291func (s *PublicDelegatedPrefixAggregatedListWarning) MarshalJSON() ([]byte, error) {
31292	type NoMethod PublicDelegatedPrefixAggregatedListWarning
31293	raw := NoMethod(*s)
31294	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31295}
31296
31297type PublicDelegatedPrefixAggregatedListWarningData struct {
31298	// Key: [Output Only] A key that provides more detail on the warning
31299	// being returned. For example, for warnings where there are no results
31300	// in a list request for a particular zone, this key might be scope and
31301	// the key value might be the zone name. Other examples might be a key
31302	// indicating a deprecated resource and a suggested replacement, or a
31303	// warning about invalid network settings (for example, if an instance
31304	// attempts to perform IP forwarding but is not enabled for IP
31305	// forwarding).
31306	Key string `json:"key,omitempty"`
31307
31308	// Value: [Output Only] A warning data value corresponding to the key.
31309	Value string `json:"value,omitempty"`
31310
31311	// ForceSendFields is a list of field names (e.g. "Key") to
31312	// unconditionally include in API requests. By default, fields with
31313	// empty values are omitted from API requests. However, any non-pointer,
31314	// non-interface field appearing in ForceSendFields will be sent to the
31315	// server regardless of whether the field is empty or not. This may be
31316	// used to include empty fields in Patch requests.
31317	ForceSendFields []string `json:"-"`
31318
31319	// NullFields is a list of field names (e.g. "Key") to include in API
31320	// requests with the JSON null value. By default, fields with empty
31321	// values are omitted from API requests. However, any field with an
31322	// empty value appearing in NullFields will be sent to the server as
31323	// null. It is an error if a field in this list has a non-empty value.
31324	// This may be used to include null fields in Patch requests.
31325	NullFields []string `json:"-"`
31326}
31327
31328func (s *PublicDelegatedPrefixAggregatedListWarningData) MarshalJSON() ([]byte, error) {
31329	type NoMethod PublicDelegatedPrefixAggregatedListWarningData
31330	raw := NoMethod(*s)
31331	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31332}
31333
31334type PublicDelegatedPrefixList struct {
31335	// Id: [Output Only] Unique identifier for the resource; defined by the
31336	// server.
31337	Id string `json:"id,omitempty"`
31338
31339	// Items: A list of PublicDelegatedPrefix resources.
31340	Items []*PublicDelegatedPrefix `json:"items,omitempty"`
31341
31342	// Kind: [Output Only] Type of the resource. Always
31343	// compute#publicDelegatedPrefixList for public delegated prefixes.
31344	Kind string `json:"kind,omitempty"`
31345
31346	// NextPageToken: [Output Only] This token allows you to get the next
31347	// page of results for list requests. If the number of results is larger
31348	// than maxResults, use the nextPageToken as a value for the query
31349	// parameter pageToken in the next list request. Subsequent list
31350	// requests will have their own nextPageToken to continue paging through
31351	// the results.
31352	NextPageToken string `json:"nextPageToken,omitempty"`
31353
31354	// SelfLink: [Output Only] Server-defined URL for this resource.
31355	SelfLink string `json:"selfLink,omitempty"`
31356
31357	// Warning: [Output Only] Informational warning message.
31358	Warning *PublicDelegatedPrefixListWarning `json:"warning,omitempty"`
31359
31360	// ServerResponse contains the HTTP response code and headers from the
31361	// server.
31362	googleapi.ServerResponse `json:"-"`
31363
31364	// ForceSendFields is a list of field names (e.g. "Id") to
31365	// unconditionally include in API requests. By default, fields with
31366	// empty values are omitted from API requests. However, any non-pointer,
31367	// non-interface field appearing in ForceSendFields will be sent to the
31368	// server regardless of whether the field is empty or not. This may be
31369	// used to include empty fields in Patch requests.
31370	ForceSendFields []string `json:"-"`
31371
31372	// NullFields is a list of field names (e.g. "Id") to include in API
31373	// requests with the JSON null value. By default, fields with empty
31374	// values are omitted from API requests. However, any field with an
31375	// empty value appearing in NullFields will be sent to the server as
31376	// null. It is an error if a field in this list has a non-empty value.
31377	// This may be used to include null fields in Patch requests.
31378	NullFields []string `json:"-"`
31379}
31380
31381func (s *PublicDelegatedPrefixList) MarshalJSON() ([]byte, error) {
31382	type NoMethod PublicDelegatedPrefixList
31383	raw := NoMethod(*s)
31384	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31385}
31386
31387// PublicDelegatedPrefixListWarning: [Output Only] Informational warning
31388// message.
31389type PublicDelegatedPrefixListWarning struct {
31390	// Code: [Output Only] A warning code, if applicable. For example,
31391	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
31392	// the response.
31393	//
31394	// Possible values:
31395	//   "CLEANUP_FAILED"
31396	//   "DEPRECATED_RESOURCE_USED"
31397	//   "DEPRECATED_TYPE_USED"
31398	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
31399	//   "EXPERIMENTAL_TYPE_USED"
31400	//   "EXTERNAL_API_WARNING"
31401	//   "FIELD_VALUE_OVERRIDEN"
31402	//   "INJECTED_KERNELS_DEPRECATED"
31403	//   "LARGE_DEPLOYMENT_WARNING"
31404	//   "MISSING_TYPE_DEPENDENCY"
31405	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
31406	//   "NEXT_HOP_CANNOT_IP_FORWARD"
31407	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
31408	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
31409	//   "NEXT_HOP_NOT_RUNNING"
31410	//   "NOT_CRITICAL_ERROR"
31411	//   "NO_RESULTS_ON_PAGE"
31412	//   "PARTIAL_SUCCESS"
31413	//   "REQUIRED_TOS_AGREEMENT"
31414	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
31415	//   "RESOURCE_NOT_DELETED"
31416	//   "SCHEMA_VALIDATION_IGNORED"
31417	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
31418	//   "UNDECLARED_PROPERTIES"
31419	//   "UNREACHABLE"
31420	Code string `json:"code,omitempty"`
31421
31422	// Data: [Output Only] Metadata about this warning in key: value format.
31423	// For example:
31424	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
31425	Data []*PublicDelegatedPrefixListWarningData `json:"data,omitempty"`
31426
31427	// Message: [Output Only] A human-readable description of the warning
31428	// code.
31429	Message string `json:"message,omitempty"`
31430
31431	// ForceSendFields is a list of field names (e.g. "Code") to
31432	// unconditionally include in API requests. By default, fields with
31433	// empty values are omitted from API requests. However, any non-pointer,
31434	// non-interface field appearing in ForceSendFields will be sent to the
31435	// server regardless of whether the field is empty or not. This may be
31436	// used to include empty fields in Patch requests.
31437	ForceSendFields []string `json:"-"`
31438
31439	// NullFields is a list of field names (e.g. "Code") to include in API
31440	// requests with the JSON null value. By default, fields with empty
31441	// values are omitted from API requests. However, any field with an
31442	// empty value appearing in NullFields will be sent to the server as
31443	// null. It is an error if a field in this list has a non-empty value.
31444	// This may be used to include null fields in Patch requests.
31445	NullFields []string `json:"-"`
31446}
31447
31448func (s *PublicDelegatedPrefixListWarning) MarshalJSON() ([]byte, error) {
31449	type NoMethod PublicDelegatedPrefixListWarning
31450	raw := NoMethod(*s)
31451	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31452}
31453
31454type PublicDelegatedPrefixListWarningData struct {
31455	// Key: [Output Only] A key that provides more detail on the warning
31456	// being returned. For example, for warnings where there are no results
31457	// in a list request for a particular zone, this key might be scope and
31458	// the key value might be the zone name. Other examples might be a key
31459	// indicating a deprecated resource and a suggested replacement, or a
31460	// warning about invalid network settings (for example, if an instance
31461	// attempts to perform IP forwarding but is not enabled for IP
31462	// forwarding).
31463	Key string `json:"key,omitempty"`
31464
31465	// Value: [Output Only] A warning data value corresponding to the key.
31466	Value string `json:"value,omitempty"`
31467
31468	// ForceSendFields is a list of field names (e.g. "Key") to
31469	// unconditionally include in API requests. By default, fields with
31470	// empty values are omitted from API requests. However, any non-pointer,
31471	// non-interface field appearing in ForceSendFields will be sent to the
31472	// server regardless of whether the field is empty or not. This may be
31473	// used to include empty fields in Patch requests.
31474	ForceSendFields []string `json:"-"`
31475
31476	// NullFields is a list of field names (e.g. "Key") to include in API
31477	// requests with the JSON null value. By default, fields with empty
31478	// values are omitted from API requests. However, any field with an
31479	// empty value appearing in NullFields will be sent to the server as
31480	// null. It is an error if a field in this list has a non-empty value.
31481	// This may be used to include null fields in Patch requests.
31482	NullFields []string `json:"-"`
31483}
31484
31485func (s *PublicDelegatedPrefixListWarningData) MarshalJSON() ([]byte, error) {
31486	type NoMethod PublicDelegatedPrefixListWarningData
31487	raw := NoMethod(*s)
31488	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31489}
31490
31491// PublicDelegatedPrefixPublicDelegatedSubPrefix: Represents a sub
31492// PublicDelegatedPrefix.
31493type PublicDelegatedPrefixPublicDelegatedSubPrefix struct {
31494	// DelegateeProject: Name of the project scoping this
31495	// PublicDelegatedSubPrefix.
31496	DelegateeProject string `json:"delegateeProject,omitempty"`
31497
31498	// Description: An optional description of this resource. Provide this
31499	// property when you create the resource.
31500	Description string `json:"description,omitempty"`
31501
31502	// IpCidrRange: The IPv4 address range, in CIDR format, represented by
31503	// this sub public delegated prefix.
31504	IpCidrRange string `json:"ipCidrRange,omitempty"`
31505
31506	// IsAddress: Whether the sub prefix is delegated to create Address
31507	// resources in the delegatee project.
31508	IsAddress bool `json:"isAddress,omitempty"`
31509
31510	// Name: The name of the sub public delegated prefix.
31511	Name string `json:"name,omitempty"`
31512
31513	// Region: [Output Only] The region of the sub public delegated prefix
31514	// if it is regional. If absent, the sub prefix is global.
31515	Region string `json:"region,omitempty"`
31516
31517	// Status: [Output Only] The status of the sub public delegated prefix.
31518	//
31519	// Possible values:
31520	//   "ACTIVE"
31521	//   "INACTIVE"
31522	Status string `json:"status,omitempty"`
31523
31524	// ForceSendFields is a list of field names (e.g. "DelegateeProject") to
31525	// unconditionally include in API requests. By default, fields with
31526	// empty values are omitted from API requests. However, any non-pointer,
31527	// non-interface field appearing in ForceSendFields will be sent to the
31528	// server regardless of whether the field is empty or not. This may be
31529	// used to include empty fields in Patch requests.
31530	ForceSendFields []string `json:"-"`
31531
31532	// NullFields is a list of field names (e.g. "DelegateeProject") to
31533	// include in API requests with the JSON null value. By default, fields
31534	// with empty values are omitted from API requests. However, any field
31535	// with an empty value appearing in NullFields will be sent to the
31536	// server as null. It is an error if a field in this list has a
31537	// non-empty value. This may be used to include null fields in Patch
31538	// requests.
31539	NullFields []string `json:"-"`
31540}
31541
31542func (s *PublicDelegatedPrefixPublicDelegatedSubPrefix) MarshalJSON() ([]byte, error) {
31543	type NoMethod PublicDelegatedPrefixPublicDelegatedSubPrefix
31544	raw := NoMethod(*s)
31545	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31546}
31547
31548type PublicDelegatedPrefixesScopedList struct {
31549	// PublicDelegatedPrefixes: [Output Only] A list of
31550	// PublicDelegatedPrefixes contained in this scope.
31551	PublicDelegatedPrefixes []*PublicDelegatedPrefix `json:"publicDelegatedPrefixes,omitempty"`
31552
31553	// Warning: [Output Only] Informational warning which replaces the list
31554	// of public delegated prefixes when the list is empty.
31555	Warning *PublicDelegatedPrefixesScopedListWarning `json:"warning,omitempty"`
31556
31557	// ForceSendFields is a list of field names (e.g.
31558	// "PublicDelegatedPrefixes") to unconditionally include in API
31559	// requests. By default, fields with empty values are omitted from API
31560	// requests. However, any non-pointer, non-interface field appearing in
31561	// ForceSendFields will be sent to the server regardless of whether the
31562	// field is empty or not. This may be used to include empty fields in
31563	// Patch requests.
31564	ForceSendFields []string `json:"-"`
31565
31566	// NullFields is a list of field names (e.g. "PublicDelegatedPrefixes")
31567	// to include in API requests with the JSON null value. By default,
31568	// fields with empty values are omitted from API requests. However, any
31569	// field with an empty value appearing in NullFields will be sent to the
31570	// server as null. It is an error if a field in this list has a
31571	// non-empty value. This may be used to include null fields in Patch
31572	// requests.
31573	NullFields []string `json:"-"`
31574}
31575
31576func (s *PublicDelegatedPrefixesScopedList) MarshalJSON() ([]byte, error) {
31577	type NoMethod PublicDelegatedPrefixesScopedList
31578	raw := NoMethod(*s)
31579	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31580}
31581
31582// PublicDelegatedPrefixesScopedListWarning: [Output Only] Informational
31583// warning which replaces the list of public delegated prefixes when the
31584// list is empty.
31585type PublicDelegatedPrefixesScopedListWarning struct {
31586	// Code: [Output Only] A warning code, if applicable. For example,
31587	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
31588	// the response.
31589	//
31590	// Possible values:
31591	//   "CLEANUP_FAILED"
31592	//   "DEPRECATED_RESOURCE_USED"
31593	//   "DEPRECATED_TYPE_USED"
31594	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
31595	//   "EXPERIMENTAL_TYPE_USED"
31596	//   "EXTERNAL_API_WARNING"
31597	//   "FIELD_VALUE_OVERRIDEN"
31598	//   "INJECTED_KERNELS_DEPRECATED"
31599	//   "LARGE_DEPLOYMENT_WARNING"
31600	//   "MISSING_TYPE_DEPENDENCY"
31601	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
31602	//   "NEXT_HOP_CANNOT_IP_FORWARD"
31603	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
31604	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
31605	//   "NEXT_HOP_NOT_RUNNING"
31606	//   "NOT_CRITICAL_ERROR"
31607	//   "NO_RESULTS_ON_PAGE"
31608	//   "PARTIAL_SUCCESS"
31609	//   "REQUIRED_TOS_AGREEMENT"
31610	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
31611	//   "RESOURCE_NOT_DELETED"
31612	//   "SCHEMA_VALIDATION_IGNORED"
31613	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
31614	//   "UNDECLARED_PROPERTIES"
31615	//   "UNREACHABLE"
31616	Code string `json:"code,omitempty"`
31617
31618	// Data: [Output Only] Metadata about this warning in key: value format.
31619	// For example:
31620	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
31621	Data []*PublicDelegatedPrefixesScopedListWarningData `json:"data,omitempty"`
31622
31623	// Message: [Output Only] A human-readable description of the warning
31624	// code.
31625	Message string `json:"message,omitempty"`
31626
31627	// ForceSendFields is a list of field names (e.g. "Code") to
31628	// unconditionally include in API requests. By default, fields with
31629	// empty values are omitted from API requests. However, any non-pointer,
31630	// non-interface field appearing in ForceSendFields will be sent to the
31631	// server regardless of whether the field is empty or not. This may be
31632	// used to include empty fields in Patch requests.
31633	ForceSendFields []string `json:"-"`
31634
31635	// NullFields is a list of field names (e.g. "Code") to include in API
31636	// requests with the JSON null value. By default, fields with empty
31637	// values are omitted from API requests. However, any field with an
31638	// empty value appearing in NullFields will be sent to the server as
31639	// null. It is an error if a field in this list has a non-empty value.
31640	// This may be used to include null fields in Patch requests.
31641	NullFields []string `json:"-"`
31642}
31643
31644func (s *PublicDelegatedPrefixesScopedListWarning) MarshalJSON() ([]byte, error) {
31645	type NoMethod PublicDelegatedPrefixesScopedListWarning
31646	raw := NoMethod(*s)
31647	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31648}
31649
31650type PublicDelegatedPrefixesScopedListWarningData struct {
31651	// Key: [Output Only] A key that provides more detail on the warning
31652	// being returned. For example, for warnings where there are no results
31653	// in a list request for a particular zone, this key might be scope and
31654	// the key value might be the zone name. Other examples might be a key
31655	// indicating a deprecated resource and a suggested replacement, or a
31656	// warning about invalid network settings (for example, if an instance
31657	// attempts to perform IP forwarding but is not enabled for IP
31658	// forwarding).
31659	Key string `json:"key,omitempty"`
31660
31661	// Value: [Output Only] A warning data value corresponding to the key.
31662	Value string `json:"value,omitempty"`
31663
31664	// ForceSendFields is a list of field names (e.g. "Key") to
31665	// unconditionally include in API requests. By default, fields with
31666	// empty values are omitted from API requests. However, any non-pointer,
31667	// non-interface field appearing in ForceSendFields will be sent to the
31668	// server regardless of whether the field is empty or not. This may be
31669	// used to include empty fields in Patch requests.
31670	ForceSendFields []string `json:"-"`
31671
31672	// NullFields is a list of field names (e.g. "Key") to include in API
31673	// requests with the JSON null value. By default, fields with empty
31674	// values are omitted from API requests. However, any field with an
31675	// empty value appearing in NullFields will be sent to the server as
31676	// null. It is an error if a field in this list has a non-empty value.
31677	// This may be used to include null fields in Patch requests.
31678	NullFields []string `json:"-"`
31679}
31680
31681func (s *PublicDelegatedPrefixesScopedListWarningData) MarshalJSON() ([]byte, error) {
31682	type NoMethod PublicDelegatedPrefixesScopedListWarningData
31683	raw := NoMethod(*s)
31684	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31685}
31686
31687// Quota: A quotas entry.
31688type Quota struct {
31689	// Limit: [Output Only] Quota limit for this metric.
31690	Limit float64 `json:"limit,omitempty"`
31691
31692	// Metric: [Output Only] Name of the quota metric.
31693	//
31694	// Possible values:
31695	//   "A2_CPUS"
31696	//   "AFFINITY_GROUPS"
31697	//   "AUTOSCALERS"
31698	//   "BACKEND_BUCKETS"
31699	//   "BACKEND_SERVICES"
31700	//   "C2D_CPUS"
31701	//   "C2_CPUS"
31702	//   "COMMITMENTS"
31703	//   "COMMITTED_A2_CPUS"
31704	//   "COMMITTED_C2D_CPUS"
31705	//   "COMMITTED_C2_CPUS"
31706	//   "COMMITTED_CPUS"
31707	//   "COMMITTED_E2_CPUS"
31708	//   "COMMITTED_LICENSES"
31709	//   "COMMITTED_LOCAL_SSD_TOTAL_GB"
31710	//   "COMMITTED_MEMORY_OPTIMIZED_CPUS"
31711	//   "COMMITTED_N2D_CPUS"
31712	//   "COMMITTED_N2_CPUS"
31713	//   "COMMITTED_NVIDIA_A100_GPUS"
31714	//   "COMMITTED_NVIDIA_K80_GPUS"
31715	//   "COMMITTED_NVIDIA_P100_GPUS"
31716	//   "COMMITTED_NVIDIA_P4_GPUS"
31717	//   "COMMITTED_NVIDIA_T4_GPUS"
31718	//   "COMMITTED_NVIDIA_V100_GPUS"
31719	//   "CPUS"
31720	//   "CPUS_ALL_REGIONS"
31721	//   "DISKS_TOTAL_GB"
31722	//   "E2_CPUS"
31723	//   "EXTERNAL_NETWORK_LB_FORWARDING_RULES"
31724	//   "EXTERNAL_PROTOCOL_FORWARDING_RULES"
31725	//   "EXTERNAL_VPN_GATEWAYS"
31726	//   "FIREWALLS"
31727	//   "FORWARDING_RULES"
31728	//   "GLOBAL_INTERNAL_ADDRESSES"
31729	//   "GPUS_ALL_REGIONS"
31730	//   "HEALTH_CHECKS"
31731	//   "IMAGES"
31732	//   "INSTANCES"
31733	//   "INSTANCE_GROUPS"
31734	//   "INSTANCE_GROUP_MANAGERS"
31735	//   "INSTANCE_TEMPLATES"
31736	//   "INTERCONNECTS"
31737	//   "INTERCONNECT_ATTACHMENTS_PER_REGION"
31738	//   "INTERCONNECT_ATTACHMENTS_TOTAL_MBPS"
31739	//   "INTERCONNECT_TOTAL_GBPS"
31740	//   "INTERNAL_ADDRESSES"
31741	//   "INTERNAL_TRAFFIC_DIRECTOR_FORWARDING_RULES"
31742	//   "IN_PLACE_SNAPSHOTS"
31743	//   "IN_USE_ADDRESSES"
31744	//   "IN_USE_BACKUP_SCHEDULES"
31745	//   "IN_USE_SNAPSHOT_SCHEDULES"
31746	//   "LOCAL_SSD_TOTAL_GB"
31747	//   "M1_CPUS"
31748	//   "M2_CPUS"
31749	//   "MACHINE_IMAGES"
31750	//   "N2D_CPUS"
31751	//   "N2_CPUS"
31752	//   "NETWORKS"
31753	//   "NETWORK_ENDPOINT_GROUPS"
31754	//   "NETWORK_FIREWALL_POLICIES"
31755	//   "NODE_GROUPS"
31756	//   "NODE_TEMPLATES"
31757	//   "NVIDIA_A100_GPUS"
31758	//   "NVIDIA_K80_GPUS"
31759	//   "NVIDIA_P100_GPUS"
31760	//   "NVIDIA_P100_VWS_GPUS"
31761	//   "NVIDIA_P4_GPUS"
31762	//   "NVIDIA_P4_VWS_GPUS"
31763	//   "NVIDIA_T4_GPUS"
31764	//   "NVIDIA_T4_VWS_GPUS"
31765	//   "NVIDIA_V100_GPUS"
31766	//   "PACKET_MIRRORINGS"
31767	//   "PD_EXTREME_TOTAL_PROVISIONED_IOPS"
31768	//   "PREEMPTIBLE_CPUS"
31769	//   "PREEMPTIBLE_LOCAL_SSD_GB"
31770	//   "PREEMPTIBLE_NVIDIA_A100_GPUS"
31771	//   "PREEMPTIBLE_NVIDIA_K80_GPUS"
31772	//   "PREEMPTIBLE_NVIDIA_P100_GPUS"
31773	//   "PREEMPTIBLE_NVIDIA_P100_VWS_GPUS"
31774	//   "PREEMPTIBLE_NVIDIA_P4_GPUS"
31775	//   "PREEMPTIBLE_NVIDIA_P4_VWS_GPUS"
31776	//   "PREEMPTIBLE_NVIDIA_T4_GPUS"
31777	//   "PREEMPTIBLE_NVIDIA_T4_VWS_GPUS"
31778	//   "PREEMPTIBLE_NVIDIA_V100_GPUS"
31779	//   "PRIVATE_V6_ACCESS_SUBNETWORKS"
31780	//   "PSC_ILB_CONSUMER_FORWARDING_RULES_PER_PRODUCER_NETWORK"
31781	//   "PUBLIC_ADVERTISED_PREFIXES"
31782	//   "PUBLIC_DELEGATED_PREFIXES"
31783	//   "REGIONAL_AUTOSCALERS"
31784	//   "REGIONAL_INSTANCE_GROUP_MANAGERS"
31785	//   "RESERVATIONS"
31786	//   "RESOURCE_POLICIES"
31787	//   "ROUTERS"
31788	//   "ROUTES"
31789	//   "SECURITY_POLICIES"
31790	//   "SECURITY_POLICY_CEVAL_RULES"
31791	//   "SECURITY_POLICY_RULES"
31792	//   "SNAPSHOTS"
31793	//   "SSD_TOTAL_GB"
31794	//   "SSL_CERTIFICATES"
31795	//   "STATIC_ADDRESSES"
31796	//   "STATIC_BYOIP_ADDRESSES"
31797	//   "SUBNETWORKS"
31798	//   "TARGET_HTTPS_PROXIES"
31799	//   "TARGET_HTTP_PROXIES"
31800	//   "TARGET_INSTANCES"
31801	//   "TARGET_POOLS"
31802	//   "TARGET_SSL_PROXIES"
31803	//   "TARGET_TCP_PROXIES"
31804	//   "TARGET_VPN_GATEWAYS"
31805	//   "URL_MAPS"
31806	//   "VPN_GATEWAYS"
31807	//   "VPN_TUNNELS"
31808	//   "XPN_SERVICE_PROJECTS"
31809	Metric string `json:"metric,omitempty"`
31810
31811	// Owner: [Output Only] Owning resource. This is the resource on which
31812	// this quota is applied.
31813	Owner string `json:"owner,omitempty"`
31814
31815	// Usage: [Output Only] Current usage of this metric.
31816	Usage float64 `json:"usage,omitempty"`
31817
31818	// ForceSendFields is a list of field names (e.g. "Limit") to
31819	// unconditionally include in API requests. By default, fields with
31820	// empty values are omitted from API requests. However, any non-pointer,
31821	// non-interface field appearing in ForceSendFields will be sent to the
31822	// server regardless of whether the field is empty or not. This may be
31823	// used to include empty fields in Patch requests.
31824	ForceSendFields []string `json:"-"`
31825
31826	// NullFields is a list of field names (e.g. "Limit") to include in API
31827	// requests with the JSON null value. By default, fields with empty
31828	// values are omitted from API requests. However, any field with an
31829	// empty value appearing in NullFields will be sent to the server as
31830	// null. It is an error if a field in this list has a non-empty value.
31831	// This may be used to include null fields in Patch requests.
31832	NullFields []string `json:"-"`
31833}
31834
31835func (s *Quota) MarshalJSON() ([]byte, error) {
31836	type NoMethod Quota
31837	raw := NoMethod(*s)
31838	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31839}
31840
31841func (s *Quota) UnmarshalJSON(data []byte) error {
31842	type NoMethod Quota
31843	var s1 struct {
31844		Limit gensupport.JSONFloat64 `json:"limit"`
31845		Usage gensupport.JSONFloat64 `json:"usage"`
31846		*NoMethod
31847	}
31848	s1.NoMethod = (*NoMethod)(s)
31849	if err := json.Unmarshal(data, &s1); err != nil {
31850		return err
31851	}
31852	s.Limit = float64(s1.Limit)
31853	s.Usage = float64(s1.Usage)
31854	return nil
31855}
31856
31857// Reference: Represents a reference to a resource.
31858type Reference struct {
31859	// Kind: [Output Only] Type of the resource. Always compute#reference
31860	// for references.
31861	Kind string `json:"kind,omitempty"`
31862
31863	// ReferenceType: A description of the reference type with no implied
31864	// semantics. Possible values include:
31865	// - MEMBER_OF
31866	ReferenceType string `json:"referenceType,omitempty"`
31867
31868	// Referrer: URL of the resource which refers to the target.
31869	Referrer string `json:"referrer,omitempty"`
31870
31871	// Target: URL of the resource to which this reference points.
31872	Target string `json:"target,omitempty"`
31873
31874	// ForceSendFields is a list of field names (e.g. "Kind") to
31875	// unconditionally include in API requests. By default, fields with
31876	// empty values are omitted from API requests. However, any non-pointer,
31877	// non-interface field appearing in ForceSendFields will be sent to the
31878	// server regardless of whether the field is empty or not. This may be
31879	// used to include empty fields in Patch requests.
31880	ForceSendFields []string `json:"-"`
31881
31882	// NullFields is a list of field names (e.g. "Kind") to include in API
31883	// requests with the JSON null value. By default, fields with empty
31884	// values are omitted from API requests. However, any field with an
31885	// empty value appearing in NullFields will be sent to the server as
31886	// null. It is an error if a field in this list has a non-empty value.
31887	// This may be used to include null fields in Patch requests.
31888	NullFields []string `json:"-"`
31889}
31890
31891func (s *Reference) MarshalJSON() ([]byte, error) {
31892	type NoMethod Reference
31893	raw := NoMethod(*s)
31894	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31895}
31896
31897// Region: Represents a Region resource.
31898//
31899// A region is a geographical area where a resource is located. For more
31900// information, read Regions and Zones. (== resource_for
31901// {$api_version}.regions ==)
31902type Region struct {
31903	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
31904	// format.
31905	CreationTimestamp string `json:"creationTimestamp,omitempty"`
31906
31907	// Deprecated -- [Output Only] The deprecation status associated with
31908	// this region.
31909	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
31910
31911	// Description: [Output Only] Textual description of the resource.
31912	Description string `json:"description,omitempty"`
31913
31914	// Id: [Output Only] The unique identifier for the resource. This
31915	// identifier is defined by the server.
31916	Id uint64 `json:"id,omitempty,string"`
31917
31918	// Kind: [Output Only] Type of the resource. Always compute#region for
31919	// regions.
31920	Kind string `json:"kind,omitempty"`
31921
31922	// Name: [Output Only] Name of the resource.
31923	Name string `json:"name,omitempty"`
31924
31925	// Quotas: [Output Only] Quotas assigned to this region.
31926	Quotas []*Quota `json:"quotas,omitempty"`
31927
31928	// SelfLink: [Output Only] Server-defined URL for the resource.
31929	SelfLink string `json:"selfLink,omitempty"`
31930
31931	// Status: [Output Only] Status of the region, either UP or DOWN.
31932	//
31933	// Possible values:
31934	//   "DOWN"
31935	//   "UP"
31936	Status string `json:"status,omitempty"`
31937
31938	// SupportsPzs: [Output Only] Reserved for future use.
31939	SupportsPzs bool `json:"supportsPzs,omitempty"`
31940
31941	// Zones: [Output Only] A list of zones available in this region, in the
31942	// form of resource URLs.
31943	Zones []string `json:"zones,omitempty"`
31944
31945	// ServerResponse contains the HTTP response code and headers from the
31946	// server.
31947	googleapi.ServerResponse `json:"-"`
31948
31949	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
31950	// to unconditionally include in API requests. By default, fields with
31951	// empty values are omitted from API requests. However, any non-pointer,
31952	// non-interface field appearing in ForceSendFields will be sent to the
31953	// server regardless of whether the field is empty or not. This may be
31954	// used to include empty fields in Patch requests.
31955	ForceSendFields []string `json:"-"`
31956
31957	// NullFields is a list of field names (e.g. "CreationTimestamp") to
31958	// include in API requests with the JSON null value. By default, fields
31959	// with empty values are omitted from API requests. However, any field
31960	// with an empty value appearing in NullFields will be sent to the
31961	// server as null. It is an error if a field in this list has a
31962	// non-empty value. This may be used to include null fields in Patch
31963	// requests.
31964	NullFields []string `json:"-"`
31965}
31966
31967func (s *Region) MarshalJSON() ([]byte, error) {
31968	type NoMethod Region
31969	raw := NoMethod(*s)
31970	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31971}
31972
31973// RegionAutoscalerList: Contains a list of autoscalers.
31974type RegionAutoscalerList struct {
31975	// Id: [Output Only] Unique identifier for the resource; defined by the
31976	// server.
31977	Id string `json:"id,omitempty"`
31978
31979	// Items: A list of Autoscaler resources.
31980	Items []*Autoscaler `json:"items,omitempty"`
31981
31982	// Kind: Type of resource.
31983	Kind string `json:"kind,omitempty"`
31984
31985	// NextPageToken: [Output Only] This token allows you to get the next
31986	// page of results for list requests. If the number of results is larger
31987	// than maxResults, use the nextPageToken as a value for the query
31988	// parameter pageToken in the next list request. Subsequent list
31989	// requests will have their own nextPageToken to continue paging through
31990	// the results.
31991	NextPageToken string `json:"nextPageToken,omitempty"`
31992
31993	// SelfLink: [Output Only] Server-defined URL for this resource.
31994	SelfLink string `json:"selfLink,omitempty"`
31995
31996	// Warning: [Output Only] Informational warning message.
31997	Warning *RegionAutoscalerListWarning `json:"warning,omitempty"`
31998
31999	// ServerResponse contains the HTTP response code and headers from the
32000	// server.
32001	googleapi.ServerResponse `json:"-"`
32002
32003	// ForceSendFields is a list of field names (e.g. "Id") to
32004	// unconditionally include in API requests. By default, fields with
32005	// empty values are omitted from API requests. However, any non-pointer,
32006	// non-interface field appearing in ForceSendFields will be sent to the
32007	// server regardless of whether the field is empty or not. This may be
32008	// used to include empty fields in Patch requests.
32009	ForceSendFields []string `json:"-"`
32010
32011	// NullFields is a list of field names (e.g. "Id") to include in API
32012	// requests with the JSON null value. By default, fields with empty
32013	// values are omitted from API requests. However, any field with an
32014	// empty value appearing in NullFields will be sent to the server as
32015	// null. It is an error if a field in this list has a non-empty value.
32016	// This may be used to include null fields in Patch requests.
32017	NullFields []string `json:"-"`
32018}
32019
32020func (s *RegionAutoscalerList) MarshalJSON() ([]byte, error) {
32021	type NoMethod RegionAutoscalerList
32022	raw := NoMethod(*s)
32023	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32024}
32025
32026// RegionAutoscalerListWarning: [Output Only] Informational warning
32027// message.
32028type RegionAutoscalerListWarning struct {
32029	// Code: [Output Only] A warning code, if applicable. For example,
32030	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
32031	// the response.
32032	//
32033	// Possible values:
32034	//   "CLEANUP_FAILED"
32035	//   "DEPRECATED_RESOURCE_USED"
32036	//   "DEPRECATED_TYPE_USED"
32037	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
32038	//   "EXPERIMENTAL_TYPE_USED"
32039	//   "EXTERNAL_API_WARNING"
32040	//   "FIELD_VALUE_OVERRIDEN"
32041	//   "INJECTED_KERNELS_DEPRECATED"
32042	//   "LARGE_DEPLOYMENT_WARNING"
32043	//   "MISSING_TYPE_DEPENDENCY"
32044	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
32045	//   "NEXT_HOP_CANNOT_IP_FORWARD"
32046	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
32047	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
32048	//   "NEXT_HOP_NOT_RUNNING"
32049	//   "NOT_CRITICAL_ERROR"
32050	//   "NO_RESULTS_ON_PAGE"
32051	//   "PARTIAL_SUCCESS"
32052	//   "REQUIRED_TOS_AGREEMENT"
32053	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
32054	//   "RESOURCE_NOT_DELETED"
32055	//   "SCHEMA_VALIDATION_IGNORED"
32056	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
32057	//   "UNDECLARED_PROPERTIES"
32058	//   "UNREACHABLE"
32059	Code string `json:"code,omitempty"`
32060
32061	// Data: [Output Only] Metadata about this warning in key: value format.
32062	// For example:
32063	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
32064	Data []*RegionAutoscalerListWarningData `json:"data,omitempty"`
32065
32066	// Message: [Output Only] A human-readable description of the warning
32067	// code.
32068	Message string `json:"message,omitempty"`
32069
32070	// ForceSendFields is a list of field names (e.g. "Code") to
32071	// unconditionally include in API requests. By default, fields with
32072	// empty values are omitted from API requests. However, any non-pointer,
32073	// non-interface field appearing in ForceSendFields will be sent to the
32074	// server regardless of whether the field is empty or not. This may be
32075	// used to include empty fields in Patch requests.
32076	ForceSendFields []string `json:"-"`
32077
32078	// NullFields is a list of field names (e.g. "Code") to include in API
32079	// requests with the JSON null value. By default, fields with empty
32080	// values are omitted from API requests. However, any field with an
32081	// empty value appearing in NullFields will be sent to the server as
32082	// null. It is an error if a field in this list has a non-empty value.
32083	// This may be used to include null fields in Patch requests.
32084	NullFields []string `json:"-"`
32085}
32086
32087func (s *RegionAutoscalerListWarning) MarshalJSON() ([]byte, error) {
32088	type NoMethod RegionAutoscalerListWarning
32089	raw := NoMethod(*s)
32090	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32091}
32092
32093type RegionAutoscalerListWarningData struct {
32094	// Key: [Output Only] A key that provides more detail on the warning
32095	// being returned. For example, for warnings where there are no results
32096	// in a list request for a particular zone, this key might be scope and
32097	// the key value might be the zone name. Other examples might be a key
32098	// indicating a deprecated resource and a suggested replacement, or a
32099	// warning about invalid network settings (for example, if an instance
32100	// attempts to perform IP forwarding but is not enabled for IP
32101	// forwarding).
32102	Key string `json:"key,omitempty"`
32103
32104	// Value: [Output Only] A warning data value corresponding to the key.
32105	Value string `json:"value,omitempty"`
32106
32107	// ForceSendFields is a list of field names (e.g. "Key") to
32108	// unconditionally include in API requests. By default, fields with
32109	// empty values are omitted from API requests. However, any non-pointer,
32110	// non-interface field appearing in ForceSendFields will be sent to the
32111	// server regardless of whether the field is empty or not. This may be
32112	// used to include empty fields in Patch requests.
32113	ForceSendFields []string `json:"-"`
32114
32115	// NullFields is a list of field names (e.g. "Key") to include in API
32116	// requests with the JSON null value. By default, fields with empty
32117	// values are omitted from API requests. However, any field with an
32118	// empty value appearing in NullFields will be sent to the server as
32119	// null. It is an error if a field in this list has a non-empty value.
32120	// This may be used to include null fields in Patch requests.
32121	NullFields []string `json:"-"`
32122}
32123
32124func (s *RegionAutoscalerListWarningData) MarshalJSON() ([]byte, error) {
32125	type NoMethod RegionAutoscalerListWarningData
32126	raw := NoMethod(*s)
32127	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32128}
32129
32130type RegionCommitmentsUpdateReservationsRequest struct {
32131	// Reservations: A list of two reservations to transfer GPUs and local
32132	// SSD between.
32133	Reservations []*Reservation `json:"reservations,omitempty"`
32134
32135	// ForceSendFields is a list of field names (e.g. "Reservations") to
32136	// unconditionally include in API requests. By default, fields with
32137	// empty values are omitted from API requests. However, any non-pointer,
32138	// non-interface field appearing in ForceSendFields will be sent to the
32139	// server regardless of whether the field is empty or not. This may be
32140	// used to include empty fields in Patch requests.
32141	ForceSendFields []string `json:"-"`
32142
32143	// NullFields is a list of field names (e.g. "Reservations") to include
32144	// in API requests with the JSON null value. By default, fields with
32145	// empty values are omitted from API requests. However, any field with
32146	// an empty value appearing in NullFields will be sent to the server as
32147	// null. It is an error if a field in this list has a non-empty value.
32148	// This may be used to include null fields in Patch requests.
32149	NullFields []string `json:"-"`
32150}
32151
32152func (s *RegionCommitmentsUpdateReservationsRequest) MarshalJSON() ([]byte, error) {
32153	type NoMethod RegionCommitmentsUpdateReservationsRequest
32154	raw := NoMethod(*s)
32155	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32156}
32157
32158type RegionDiskTypeList struct {
32159	// Id: [Output Only] Unique identifier for the resource; defined by the
32160	// server.
32161	Id string `json:"id,omitempty"`
32162
32163	// Items: A list of DiskType resources.
32164	Items []*DiskType `json:"items,omitempty"`
32165
32166	// Kind: [Output Only] Type of resource. Always
32167	// compute#regionDiskTypeList for region disk types.
32168	Kind string `json:"kind,omitempty"`
32169
32170	// NextPageToken: [Output Only] This token allows you to get the next
32171	// page of results for list requests. If the number of results is larger
32172	// than maxResults, use the nextPageToken as a value for the query
32173	// parameter pageToken in the next list request. Subsequent list
32174	// requests will have their own nextPageToken to continue paging through
32175	// the results.
32176	NextPageToken string `json:"nextPageToken,omitempty"`
32177
32178	// SelfLink: [Output Only] Server-defined URL for this resource.
32179	SelfLink string `json:"selfLink,omitempty"`
32180
32181	// Warning: [Output Only] Informational warning message.
32182	Warning *RegionDiskTypeListWarning `json:"warning,omitempty"`
32183
32184	// ServerResponse contains the HTTP response code and headers from the
32185	// server.
32186	googleapi.ServerResponse `json:"-"`
32187
32188	// ForceSendFields is a list of field names (e.g. "Id") to
32189	// unconditionally include in API requests. By default, fields with
32190	// empty values are omitted from API requests. However, any non-pointer,
32191	// non-interface field appearing in ForceSendFields will be sent to the
32192	// server regardless of whether the field is empty or not. This may be
32193	// used to include empty fields in Patch requests.
32194	ForceSendFields []string `json:"-"`
32195
32196	// NullFields is a list of field names (e.g. "Id") to include in API
32197	// requests with the JSON null value. By default, fields with empty
32198	// values are omitted from API requests. However, any field with an
32199	// empty value appearing in NullFields will be sent to the server as
32200	// null. It is an error if a field in this list has a non-empty value.
32201	// This may be used to include null fields in Patch requests.
32202	NullFields []string `json:"-"`
32203}
32204
32205func (s *RegionDiskTypeList) MarshalJSON() ([]byte, error) {
32206	type NoMethod RegionDiskTypeList
32207	raw := NoMethod(*s)
32208	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32209}
32210
32211// RegionDiskTypeListWarning: [Output Only] Informational warning
32212// message.
32213type RegionDiskTypeListWarning struct {
32214	// Code: [Output Only] A warning code, if applicable. For example,
32215	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
32216	// the response.
32217	//
32218	// Possible values:
32219	//   "CLEANUP_FAILED"
32220	//   "DEPRECATED_RESOURCE_USED"
32221	//   "DEPRECATED_TYPE_USED"
32222	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
32223	//   "EXPERIMENTAL_TYPE_USED"
32224	//   "EXTERNAL_API_WARNING"
32225	//   "FIELD_VALUE_OVERRIDEN"
32226	//   "INJECTED_KERNELS_DEPRECATED"
32227	//   "LARGE_DEPLOYMENT_WARNING"
32228	//   "MISSING_TYPE_DEPENDENCY"
32229	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
32230	//   "NEXT_HOP_CANNOT_IP_FORWARD"
32231	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
32232	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
32233	//   "NEXT_HOP_NOT_RUNNING"
32234	//   "NOT_CRITICAL_ERROR"
32235	//   "NO_RESULTS_ON_PAGE"
32236	//   "PARTIAL_SUCCESS"
32237	//   "REQUIRED_TOS_AGREEMENT"
32238	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
32239	//   "RESOURCE_NOT_DELETED"
32240	//   "SCHEMA_VALIDATION_IGNORED"
32241	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
32242	//   "UNDECLARED_PROPERTIES"
32243	//   "UNREACHABLE"
32244	Code string `json:"code,omitempty"`
32245
32246	// Data: [Output Only] Metadata about this warning in key: value format.
32247	// For example:
32248	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
32249	Data []*RegionDiskTypeListWarningData `json:"data,omitempty"`
32250
32251	// Message: [Output Only] A human-readable description of the warning
32252	// code.
32253	Message string `json:"message,omitempty"`
32254
32255	// ForceSendFields is a list of field names (e.g. "Code") to
32256	// unconditionally include in API requests. By default, fields with
32257	// empty values are omitted from API requests. However, any non-pointer,
32258	// non-interface field appearing in ForceSendFields will be sent to the
32259	// server regardless of whether the field is empty or not. This may be
32260	// used to include empty fields in Patch requests.
32261	ForceSendFields []string `json:"-"`
32262
32263	// NullFields is a list of field names (e.g. "Code") to include in API
32264	// requests with the JSON null value. By default, fields with empty
32265	// values are omitted from API requests. However, any field with an
32266	// empty value appearing in NullFields will be sent to the server as
32267	// null. It is an error if a field in this list has a non-empty value.
32268	// This may be used to include null fields in Patch requests.
32269	NullFields []string `json:"-"`
32270}
32271
32272func (s *RegionDiskTypeListWarning) MarshalJSON() ([]byte, error) {
32273	type NoMethod RegionDiskTypeListWarning
32274	raw := NoMethod(*s)
32275	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32276}
32277
32278type RegionDiskTypeListWarningData struct {
32279	// Key: [Output Only] A key that provides more detail on the warning
32280	// being returned. For example, for warnings where there are no results
32281	// in a list request for a particular zone, this key might be scope and
32282	// the key value might be the zone name. Other examples might be a key
32283	// indicating a deprecated resource and a suggested replacement, or a
32284	// warning about invalid network settings (for example, if an instance
32285	// attempts to perform IP forwarding but is not enabled for IP
32286	// forwarding).
32287	Key string `json:"key,omitempty"`
32288
32289	// Value: [Output Only] A warning data value corresponding to the key.
32290	Value string `json:"value,omitempty"`
32291
32292	// ForceSendFields is a list of field names (e.g. "Key") to
32293	// unconditionally include in API requests. By default, fields with
32294	// empty values are omitted from API requests. However, any non-pointer,
32295	// non-interface field appearing in ForceSendFields will be sent to the
32296	// server regardless of whether the field is empty or not. This may be
32297	// used to include empty fields in Patch requests.
32298	ForceSendFields []string `json:"-"`
32299
32300	// NullFields is a list of field names (e.g. "Key") to include in API
32301	// requests with the JSON null value. By default, fields with empty
32302	// values are omitted from API requests. However, any field with an
32303	// empty value appearing in NullFields will be sent to the server as
32304	// null. It is an error if a field in this list has a non-empty value.
32305	// This may be used to include null fields in Patch requests.
32306	NullFields []string `json:"-"`
32307}
32308
32309func (s *RegionDiskTypeListWarningData) MarshalJSON() ([]byte, error) {
32310	type NoMethod RegionDiskTypeListWarningData
32311	raw := NoMethod(*s)
32312	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32313}
32314
32315type RegionDisksAddResourcePoliciesRequest struct {
32316	// ResourcePolicies: Resource policies to be added to this disk.
32317	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
32318
32319	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
32320	// unconditionally include in API requests. By default, fields with
32321	// empty values are omitted from API requests. However, any non-pointer,
32322	// non-interface field appearing in ForceSendFields will be sent to the
32323	// server regardless of whether the field is empty or not. This may be
32324	// used to include empty fields in Patch requests.
32325	ForceSendFields []string `json:"-"`
32326
32327	// NullFields is a list of field names (e.g. "ResourcePolicies") to
32328	// include in API requests with the JSON null value. By default, fields
32329	// with empty values are omitted from API requests. However, any field
32330	// with an empty value appearing in NullFields will be sent to the
32331	// server as null. It is an error if a field in this list has a
32332	// non-empty value. This may be used to include null fields in Patch
32333	// requests.
32334	NullFields []string `json:"-"`
32335}
32336
32337func (s *RegionDisksAddResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
32338	type NoMethod RegionDisksAddResourcePoliciesRequest
32339	raw := NoMethod(*s)
32340	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32341}
32342
32343type RegionDisksRemoveResourcePoliciesRequest struct {
32344	// ResourcePolicies: Resource policies to be removed from this disk.
32345	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
32346
32347	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
32348	// unconditionally include in API requests. By default, fields with
32349	// empty values are omitted from API requests. However, any non-pointer,
32350	// non-interface field appearing in ForceSendFields will be sent to the
32351	// server regardless of whether the field is empty or not. This may be
32352	// used to include empty fields in Patch requests.
32353	ForceSendFields []string `json:"-"`
32354
32355	// NullFields is a list of field names (e.g. "ResourcePolicies") to
32356	// include in API requests with the JSON null value. By default, fields
32357	// with empty values are omitted from API requests. However, any field
32358	// with an empty value appearing in NullFields will be sent to the
32359	// server as null. It is an error if a field in this list has a
32360	// non-empty value. This may be used to include null fields in Patch
32361	// requests.
32362	NullFields []string `json:"-"`
32363}
32364
32365func (s *RegionDisksRemoveResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
32366	type NoMethod RegionDisksRemoveResourcePoliciesRequest
32367	raw := NoMethod(*s)
32368	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32369}
32370
32371type RegionDisksResizeRequest struct {
32372	// SizeGb: The new size of the regional persistent disk, which is
32373	// specified in GB.
32374	SizeGb int64 `json:"sizeGb,omitempty,string"`
32375
32376	// ForceSendFields is a list of field names (e.g. "SizeGb") to
32377	// unconditionally include in API requests. By default, fields with
32378	// empty values are omitted from API requests. However, any non-pointer,
32379	// non-interface field appearing in ForceSendFields will be sent to the
32380	// server regardless of whether the field is empty or not. This may be
32381	// used to include empty fields in Patch requests.
32382	ForceSendFields []string `json:"-"`
32383
32384	// NullFields is a list of field names (e.g. "SizeGb") to include in API
32385	// requests with the JSON null value. By default, fields with empty
32386	// values are omitted from API requests. However, any field with an
32387	// empty value appearing in NullFields will be sent to the server as
32388	// null. It is an error if a field in this list has a non-empty value.
32389	// This may be used to include null fields in Patch requests.
32390	NullFields []string `json:"-"`
32391}
32392
32393func (s *RegionDisksResizeRequest) MarshalJSON() ([]byte, error) {
32394	type NoMethod RegionDisksResizeRequest
32395	raw := NoMethod(*s)
32396	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32397}
32398
32399// RegionInstanceGroupList: Contains a list of InstanceGroup resources.
32400type RegionInstanceGroupList struct {
32401	// Id: [Output Only] Unique identifier for the resource; defined by the
32402	// server.
32403	Id string `json:"id,omitempty"`
32404
32405	// Items: A list of InstanceGroup resources.
32406	Items []*InstanceGroup `json:"items,omitempty"`
32407
32408	// Kind: The resource type.
32409	Kind string `json:"kind,omitempty"`
32410
32411	// NextPageToken: [Output Only] This token allows you to get the next
32412	// page of results for list requests. If the number of results is larger
32413	// than maxResults, use the nextPageToken as a value for the query
32414	// parameter pageToken in the next list request. Subsequent list
32415	// requests will have their own nextPageToken to continue paging through
32416	// the results.
32417	NextPageToken string `json:"nextPageToken,omitempty"`
32418
32419	// SelfLink: [Output Only] Server-defined URL for this resource.
32420	SelfLink string `json:"selfLink,omitempty"`
32421
32422	// Warning: [Output Only] Informational warning message.
32423	Warning *RegionInstanceGroupListWarning `json:"warning,omitempty"`
32424
32425	// ServerResponse contains the HTTP response code and headers from the
32426	// server.
32427	googleapi.ServerResponse `json:"-"`
32428
32429	// ForceSendFields is a list of field names (e.g. "Id") to
32430	// unconditionally include in API requests. By default, fields with
32431	// empty values are omitted from API requests. However, any non-pointer,
32432	// non-interface field appearing in ForceSendFields will be sent to the
32433	// server regardless of whether the field is empty or not. This may be
32434	// used to include empty fields in Patch requests.
32435	ForceSendFields []string `json:"-"`
32436
32437	// NullFields is a list of field names (e.g. "Id") to include in API
32438	// requests with the JSON null value. By default, fields with empty
32439	// values are omitted from API requests. However, any field with an
32440	// empty value appearing in NullFields will be sent to the server as
32441	// null. It is an error if a field in this list has a non-empty value.
32442	// This may be used to include null fields in Patch requests.
32443	NullFields []string `json:"-"`
32444}
32445
32446func (s *RegionInstanceGroupList) MarshalJSON() ([]byte, error) {
32447	type NoMethod RegionInstanceGroupList
32448	raw := NoMethod(*s)
32449	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32450}
32451
32452// RegionInstanceGroupListWarning: [Output Only] Informational warning
32453// message.
32454type RegionInstanceGroupListWarning struct {
32455	// Code: [Output Only] A warning code, if applicable. For example,
32456	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
32457	// the response.
32458	//
32459	// Possible values:
32460	//   "CLEANUP_FAILED"
32461	//   "DEPRECATED_RESOURCE_USED"
32462	//   "DEPRECATED_TYPE_USED"
32463	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
32464	//   "EXPERIMENTAL_TYPE_USED"
32465	//   "EXTERNAL_API_WARNING"
32466	//   "FIELD_VALUE_OVERRIDEN"
32467	//   "INJECTED_KERNELS_DEPRECATED"
32468	//   "LARGE_DEPLOYMENT_WARNING"
32469	//   "MISSING_TYPE_DEPENDENCY"
32470	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
32471	//   "NEXT_HOP_CANNOT_IP_FORWARD"
32472	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
32473	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
32474	//   "NEXT_HOP_NOT_RUNNING"
32475	//   "NOT_CRITICAL_ERROR"
32476	//   "NO_RESULTS_ON_PAGE"
32477	//   "PARTIAL_SUCCESS"
32478	//   "REQUIRED_TOS_AGREEMENT"
32479	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
32480	//   "RESOURCE_NOT_DELETED"
32481	//   "SCHEMA_VALIDATION_IGNORED"
32482	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
32483	//   "UNDECLARED_PROPERTIES"
32484	//   "UNREACHABLE"
32485	Code string `json:"code,omitempty"`
32486
32487	// Data: [Output Only] Metadata about this warning in key: value format.
32488	// For example:
32489	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
32490	Data []*RegionInstanceGroupListWarningData `json:"data,omitempty"`
32491
32492	// Message: [Output Only] A human-readable description of the warning
32493	// code.
32494	Message string `json:"message,omitempty"`
32495
32496	// ForceSendFields is a list of field names (e.g. "Code") to
32497	// unconditionally include in API requests. By default, fields with
32498	// empty values are omitted from API requests. However, any non-pointer,
32499	// non-interface field appearing in ForceSendFields will be sent to the
32500	// server regardless of whether the field is empty or not. This may be
32501	// used to include empty fields in Patch requests.
32502	ForceSendFields []string `json:"-"`
32503
32504	// NullFields is a list of field names (e.g. "Code") to include in API
32505	// requests with the JSON null value. By default, fields with empty
32506	// values are omitted from API requests. However, any field with an
32507	// empty value appearing in NullFields will be sent to the server as
32508	// null. It is an error if a field in this list has a non-empty value.
32509	// This may be used to include null fields in Patch requests.
32510	NullFields []string `json:"-"`
32511}
32512
32513func (s *RegionInstanceGroupListWarning) MarshalJSON() ([]byte, error) {
32514	type NoMethod RegionInstanceGroupListWarning
32515	raw := NoMethod(*s)
32516	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32517}
32518
32519type RegionInstanceGroupListWarningData struct {
32520	// Key: [Output Only] A key that provides more detail on the warning
32521	// being returned. For example, for warnings where there are no results
32522	// in a list request for a particular zone, this key might be scope and
32523	// the key value might be the zone name. Other examples might be a key
32524	// indicating a deprecated resource and a suggested replacement, or a
32525	// warning about invalid network settings (for example, if an instance
32526	// attempts to perform IP forwarding but is not enabled for IP
32527	// forwarding).
32528	Key string `json:"key,omitempty"`
32529
32530	// Value: [Output Only] A warning data value corresponding to the key.
32531	Value string `json:"value,omitempty"`
32532
32533	// ForceSendFields is a list of field names (e.g. "Key") to
32534	// unconditionally include in API requests. By default, fields with
32535	// empty values are omitted from API requests. However, any non-pointer,
32536	// non-interface field appearing in ForceSendFields will be sent to the
32537	// server regardless of whether the field is empty or not. This may be
32538	// used to include empty fields in Patch requests.
32539	ForceSendFields []string `json:"-"`
32540
32541	// NullFields is a list of field names (e.g. "Key") to include in API
32542	// requests with the JSON null value. By default, fields with empty
32543	// values are omitted from API requests. However, any field with an
32544	// empty value appearing in NullFields will be sent to the server as
32545	// null. It is an error if a field in this list has a non-empty value.
32546	// This may be used to include null fields in Patch requests.
32547	NullFields []string `json:"-"`
32548}
32549
32550func (s *RegionInstanceGroupListWarningData) MarshalJSON() ([]byte, error) {
32551	type NoMethod RegionInstanceGroupListWarningData
32552	raw := NoMethod(*s)
32553	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32554}
32555
32556// RegionInstanceGroupManagerDeleteInstanceConfigReq:
32557// RegionInstanceGroupManagers.deletePerInstanceConfigs
32558type RegionInstanceGroupManagerDeleteInstanceConfigReq struct {
32559	// Names: The list of instance names for which we want to delete
32560	// per-instance configs on this managed instance group.
32561	Names []string `json:"names,omitempty"`
32562
32563	// ForceSendFields is a list of field names (e.g. "Names") to
32564	// unconditionally include in API requests. By default, fields with
32565	// empty values are omitted from API requests. However, any non-pointer,
32566	// non-interface field appearing in ForceSendFields will be sent to the
32567	// server regardless of whether the field is empty or not. This may be
32568	// used to include empty fields in Patch requests.
32569	ForceSendFields []string `json:"-"`
32570
32571	// NullFields is a list of field names (e.g. "Names") to include in API
32572	// requests with the JSON null value. By default, fields with empty
32573	// values are omitted from API requests. However, any field with an
32574	// empty value appearing in NullFields will be sent to the server as
32575	// null. It is an error if a field in this list has a non-empty value.
32576	// This may be used to include null fields in Patch requests.
32577	NullFields []string `json:"-"`
32578}
32579
32580func (s *RegionInstanceGroupManagerDeleteInstanceConfigReq) MarshalJSON() ([]byte, error) {
32581	type NoMethod RegionInstanceGroupManagerDeleteInstanceConfigReq
32582	raw := NoMethod(*s)
32583	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32584}
32585
32586// RegionInstanceGroupManagerList: Contains a list of managed instance
32587// groups.
32588type RegionInstanceGroupManagerList struct {
32589	// Id: [Output Only] Unique identifier for the resource; defined by the
32590	// server.
32591	Id string `json:"id,omitempty"`
32592
32593	// Items: A list of InstanceGroupManager resources.
32594	Items []*InstanceGroupManager `json:"items,omitempty"`
32595
32596	// Kind: [Output Only] The resource type, which is always
32597	// compute#instanceGroupManagerList for a list of managed instance
32598	// groups that exist in th regional scope.
32599	Kind string `json:"kind,omitempty"`
32600
32601	// NextPageToken: [Output Only] This token allows you to get the next
32602	// page of results for list requests. If the number of results is larger
32603	// than maxResults, use the nextPageToken as a value for the query
32604	// parameter pageToken in the next list request. Subsequent list
32605	// requests will have their own nextPageToken to continue paging through
32606	// the results.
32607	NextPageToken string `json:"nextPageToken,omitempty"`
32608
32609	// SelfLink: [Output Only] Server-defined URL for this resource.
32610	SelfLink string `json:"selfLink,omitempty"`
32611
32612	// Warning: [Output Only] Informational warning message.
32613	Warning *RegionInstanceGroupManagerListWarning `json:"warning,omitempty"`
32614
32615	// ServerResponse contains the HTTP response code and headers from the
32616	// server.
32617	googleapi.ServerResponse `json:"-"`
32618
32619	// ForceSendFields is a list of field names (e.g. "Id") to
32620	// unconditionally include in API requests. By default, fields with
32621	// empty values are omitted from API requests. However, any non-pointer,
32622	// non-interface field appearing in ForceSendFields will be sent to the
32623	// server regardless of whether the field is empty or not. This may be
32624	// used to include empty fields in Patch requests.
32625	ForceSendFields []string `json:"-"`
32626
32627	// NullFields is a list of field names (e.g. "Id") to include in API
32628	// requests with the JSON null value. By default, fields with empty
32629	// values are omitted from API requests. However, any field with an
32630	// empty value appearing in NullFields will be sent to the server as
32631	// null. It is an error if a field in this list has a non-empty value.
32632	// This may be used to include null fields in Patch requests.
32633	NullFields []string `json:"-"`
32634}
32635
32636func (s *RegionInstanceGroupManagerList) MarshalJSON() ([]byte, error) {
32637	type NoMethod RegionInstanceGroupManagerList
32638	raw := NoMethod(*s)
32639	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32640}
32641
32642// RegionInstanceGroupManagerListWarning: [Output Only] Informational
32643// warning message.
32644type RegionInstanceGroupManagerListWarning struct {
32645	// Code: [Output Only] A warning code, if applicable. For example,
32646	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
32647	// the response.
32648	//
32649	// Possible values:
32650	//   "CLEANUP_FAILED"
32651	//   "DEPRECATED_RESOURCE_USED"
32652	//   "DEPRECATED_TYPE_USED"
32653	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
32654	//   "EXPERIMENTAL_TYPE_USED"
32655	//   "EXTERNAL_API_WARNING"
32656	//   "FIELD_VALUE_OVERRIDEN"
32657	//   "INJECTED_KERNELS_DEPRECATED"
32658	//   "LARGE_DEPLOYMENT_WARNING"
32659	//   "MISSING_TYPE_DEPENDENCY"
32660	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
32661	//   "NEXT_HOP_CANNOT_IP_FORWARD"
32662	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
32663	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
32664	//   "NEXT_HOP_NOT_RUNNING"
32665	//   "NOT_CRITICAL_ERROR"
32666	//   "NO_RESULTS_ON_PAGE"
32667	//   "PARTIAL_SUCCESS"
32668	//   "REQUIRED_TOS_AGREEMENT"
32669	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
32670	//   "RESOURCE_NOT_DELETED"
32671	//   "SCHEMA_VALIDATION_IGNORED"
32672	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
32673	//   "UNDECLARED_PROPERTIES"
32674	//   "UNREACHABLE"
32675	Code string `json:"code,omitempty"`
32676
32677	// Data: [Output Only] Metadata about this warning in key: value format.
32678	// For example:
32679	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
32680	Data []*RegionInstanceGroupManagerListWarningData `json:"data,omitempty"`
32681
32682	// Message: [Output Only] A human-readable description of the warning
32683	// code.
32684	Message string `json:"message,omitempty"`
32685
32686	// ForceSendFields is a list of field names (e.g. "Code") to
32687	// unconditionally include in API requests. By default, fields with
32688	// empty values are omitted from API requests. However, any non-pointer,
32689	// non-interface field appearing in ForceSendFields will be sent to the
32690	// server regardless of whether the field is empty or not. This may be
32691	// used to include empty fields in Patch requests.
32692	ForceSendFields []string `json:"-"`
32693
32694	// NullFields is a list of field names (e.g. "Code") to include in API
32695	// requests with the JSON null value. By default, fields with empty
32696	// values are omitted from API requests. However, any field with an
32697	// empty value appearing in NullFields will be sent to the server as
32698	// null. It is an error if a field in this list has a non-empty value.
32699	// This may be used to include null fields in Patch requests.
32700	NullFields []string `json:"-"`
32701}
32702
32703func (s *RegionInstanceGroupManagerListWarning) MarshalJSON() ([]byte, error) {
32704	type NoMethod RegionInstanceGroupManagerListWarning
32705	raw := NoMethod(*s)
32706	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32707}
32708
32709type RegionInstanceGroupManagerListWarningData struct {
32710	// Key: [Output Only] A key that provides more detail on the warning
32711	// being returned. For example, for warnings where there are no results
32712	// in a list request for a particular zone, this key might be scope and
32713	// the key value might be the zone name. Other examples might be a key
32714	// indicating a deprecated resource and a suggested replacement, or a
32715	// warning about invalid network settings (for example, if an instance
32716	// attempts to perform IP forwarding but is not enabled for IP
32717	// forwarding).
32718	Key string `json:"key,omitempty"`
32719
32720	// Value: [Output Only] A warning data value corresponding to the key.
32721	Value string `json:"value,omitempty"`
32722
32723	// ForceSendFields is a list of field names (e.g. "Key") to
32724	// unconditionally include in API requests. By default, fields with
32725	// empty values are omitted from API requests. However, any non-pointer,
32726	// non-interface field appearing in ForceSendFields will be sent to the
32727	// server regardless of whether the field is empty or not. This may be
32728	// used to include empty fields in Patch requests.
32729	ForceSendFields []string `json:"-"`
32730
32731	// NullFields is a list of field names (e.g. "Key") to include in API
32732	// requests with the JSON null value. By default, fields with empty
32733	// values are omitted from API requests. However, any field with an
32734	// empty value appearing in NullFields will be sent to the server as
32735	// null. It is an error if a field in this list has a non-empty value.
32736	// This may be used to include null fields in Patch requests.
32737	NullFields []string `json:"-"`
32738}
32739
32740func (s *RegionInstanceGroupManagerListWarningData) MarshalJSON() ([]byte, error) {
32741	type NoMethod RegionInstanceGroupManagerListWarningData
32742	raw := NoMethod(*s)
32743	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32744}
32745
32746// RegionInstanceGroupManagerPatchInstanceConfigReq:
32747// RegionInstanceGroupManagers.patchPerInstanceConfigs
32748type RegionInstanceGroupManagerPatchInstanceConfigReq struct {
32749	// PerInstanceConfigs: The list of per-instance configs to insert or
32750	// patch on this managed instance group.
32751	PerInstanceConfigs []*PerInstanceConfig `json:"perInstanceConfigs,omitempty"`
32752
32753	// ForceSendFields is a list of field names (e.g. "PerInstanceConfigs")
32754	// to unconditionally include in API requests. By default, fields with
32755	// empty values are omitted from API requests. However, any non-pointer,
32756	// non-interface field appearing in ForceSendFields will be sent to the
32757	// server regardless of whether the field is empty or not. This may be
32758	// used to include empty fields in Patch requests.
32759	ForceSendFields []string `json:"-"`
32760
32761	// NullFields is a list of field names (e.g. "PerInstanceConfigs") to
32762	// include in API requests with the JSON null value. By default, fields
32763	// with empty values are omitted from API requests. However, any field
32764	// with an empty value appearing in NullFields will be sent to the
32765	// server as null. It is an error if a field in this list has a
32766	// non-empty value. This may be used to include null fields in Patch
32767	// requests.
32768	NullFields []string `json:"-"`
32769}
32770
32771func (s *RegionInstanceGroupManagerPatchInstanceConfigReq) MarshalJSON() ([]byte, error) {
32772	type NoMethod RegionInstanceGroupManagerPatchInstanceConfigReq
32773	raw := NoMethod(*s)
32774	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32775}
32776
32777// RegionInstanceGroupManagerUpdateInstanceConfigReq:
32778// RegionInstanceGroupManagers.updatePerInstanceConfigs
32779type RegionInstanceGroupManagerUpdateInstanceConfigReq struct {
32780	// PerInstanceConfigs: The list of per-instance configs to insert or
32781	// patch on this managed instance group.
32782	PerInstanceConfigs []*PerInstanceConfig `json:"perInstanceConfigs,omitempty"`
32783
32784	// ForceSendFields is a list of field names (e.g. "PerInstanceConfigs")
32785	// to unconditionally include in API requests. By default, fields with
32786	// empty values are omitted from API requests. However, any non-pointer,
32787	// non-interface field appearing in ForceSendFields will be sent to the
32788	// server regardless of whether the field is empty or not. This may be
32789	// used to include empty fields in Patch requests.
32790	ForceSendFields []string `json:"-"`
32791
32792	// NullFields is a list of field names (e.g. "PerInstanceConfigs") to
32793	// include in API requests with the JSON null value. By default, fields
32794	// with empty values are omitted from API requests. However, any field
32795	// with an empty value appearing in NullFields will be sent to the
32796	// server as null. It is an error if a field in this list has a
32797	// non-empty value. This may be used to include null fields in Patch
32798	// requests.
32799	NullFields []string `json:"-"`
32800}
32801
32802func (s *RegionInstanceGroupManagerUpdateInstanceConfigReq) MarshalJSON() ([]byte, error) {
32803	type NoMethod RegionInstanceGroupManagerUpdateInstanceConfigReq
32804	raw := NoMethod(*s)
32805	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32806}
32807
32808type RegionInstanceGroupManagersAbandonInstancesRequest struct {
32809	// Instances: The URLs of one or more instances to abandon. This can be
32810	// a full URL or a partial URL, such as
32811	// zones/[ZONE]/instances/[INSTANCE_NAME].
32812	Instances []string `json:"instances,omitempty"`
32813
32814	// ForceSendFields is a list of field names (e.g. "Instances") to
32815	// unconditionally include in API requests. By default, fields with
32816	// empty values are omitted from API requests. However, any non-pointer,
32817	// non-interface field appearing in ForceSendFields will be sent to the
32818	// server regardless of whether the field is empty or not. This may be
32819	// used to include empty fields in Patch requests.
32820	ForceSendFields []string `json:"-"`
32821
32822	// NullFields is a list of field names (e.g. "Instances") to include in
32823	// API requests with the JSON null value. By default, fields with empty
32824	// values are omitted from API requests. However, any field with an
32825	// empty value appearing in NullFields will be sent to the server as
32826	// null. It is an error if a field in this list has a non-empty value.
32827	// This may be used to include null fields in Patch requests.
32828	NullFields []string `json:"-"`
32829}
32830
32831func (s *RegionInstanceGroupManagersAbandonInstancesRequest) MarshalJSON() ([]byte, error) {
32832	type NoMethod RegionInstanceGroupManagersAbandonInstancesRequest
32833	raw := NoMethod(*s)
32834	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32835}
32836
32837// RegionInstanceGroupManagersApplyUpdatesRequest:
32838// RegionInstanceGroupManagers.applyUpdatesToInstances
32839type RegionInstanceGroupManagersApplyUpdatesRequest struct {
32840	// AllInstances: Flag to update all instances instead of specified list
32841	// of ?instances?. If the flag is set to true then the instances may not
32842	// be specified in the request.
32843	AllInstances bool `json:"allInstances,omitempty"`
32844
32845	// Instances: The list of URLs of one or more instances for which you
32846	// want to apply updates. Each URL can be a full URL or a partial URL,
32847	// such as zones/[ZONE]/instances/[INSTANCE_NAME].
32848	Instances []string `json:"instances,omitempty"`
32849
32850	// MinimalAction: The minimal action that you want to perform on each
32851	// instance during the update:
32852	// - REPLACE: At minimum, delete the instance and create it again.
32853	// - RESTART: Stop the instance and start it again.
32854	// - REFRESH: Do not stop the instance.
32855	// - NONE: Do not disrupt the instance at all.  By default, the minimum
32856	// action is NONE. If your update requires a more disruptive action than
32857	// you set with this flag, the necessary action is performed to execute
32858	// the update.
32859	//
32860	// Possible values:
32861	//   "NONE"
32862	//   "REFRESH"
32863	//   "REPLACE"
32864	//   "RESTART"
32865	MinimalAction string `json:"minimalAction,omitempty"`
32866
32867	// MostDisruptiveAllowedAction: The most disruptive action that you want
32868	// to perform on each instance during the update:
32869	// - REPLACE: Delete the instance and create it again.
32870	// - RESTART: Stop the instance and start it again.
32871	// - REFRESH: Do not stop the instance.
32872	// - NONE: Do not disrupt the instance at all.  By default, the most
32873	// disruptive allowed action is REPLACE. If your update requires a more
32874	// disruptive action than you set with this flag, the update request
32875	// will fail.
32876	//
32877	// Possible values:
32878	//   "NONE"
32879	//   "REFRESH"
32880	//   "REPLACE"
32881	//   "RESTART"
32882	MostDisruptiveAllowedAction string `json:"mostDisruptiveAllowedAction,omitempty"`
32883
32884	// ForceSendFields is a list of field names (e.g. "AllInstances") to
32885	// unconditionally include in API requests. By default, fields with
32886	// empty values are omitted from API requests. However, any non-pointer,
32887	// non-interface field appearing in ForceSendFields will be sent to the
32888	// server regardless of whether the field is empty or not. This may be
32889	// used to include empty fields in Patch requests.
32890	ForceSendFields []string `json:"-"`
32891
32892	// NullFields is a list of field names (e.g. "AllInstances") to include
32893	// in API requests with the JSON null value. By default, fields with
32894	// empty values are omitted from API requests. However, any field with
32895	// an empty value appearing in NullFields will be sent to the server as
32896	// null. It is an error if a field in this list has a non-empty value.
32897	// This may be used to include null fields in Patch requests.
32898	NullFields []string `json:"-"`
32899}
32900
32901func (s *RegionInstanceGroupManagersApplyUpdatesRequest) MarshalJSON() ([]byte, error) {
32902	type NoMethod RegionInstanceGroupManagersApplyUpdatesRequest
32903	raw := NoMethod(*s)
32904	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32905}
32906
32907// RegionInstanceGroupManagersCreateInstancesRequest:
32908// RegionInstanceGroupManagers.createInstances
32909type RegionInstanceGroupManagersCreateInstancesRequest struct {
32910	// Instances: [Required] List of specifications of per-instance configs.
32911	Instances []*PerInstanceConfig `json:"instances,omitempty"`
32912
32913	// ForceSendFields is a list of field names (e.g. "Instances") to
32914	// unconditionally include in API requests. By default, fields with
32915	// empty values are omitted from API requests. However, any non-pointer,
32916	// non-interface field appearing in ForceSendFields will be sent to the
32917	// server regardless of whether the field is empty or not. This may be
32918	// used to include empty fields in Patch requests.
32919	ForceSendFields []string `json:"-"`
32920
32921	// NullFields is a list of field names (e.g. "Instances") to include in
32922	// API requests with the JSON null value. By default, fields with empty
32923	// values are omitted from API requests. However, any field with an
32924	// empty value appearing in NullFields will be sent to the server as
32925	// null. It is an error if a field in this list has a non-empty value.
32926	// This may be used to include null fields in Patch requests.
32927	NullFields []string `json:"-"`
32928}
32929
32930func (s *RegionInstanceGroupManagersCreateInstancesRequest) MarshalJSON() ([]byte, error) {
32931	type NoMethod RegionInstanceGroupManagersCreateInstancesRequest
32932	raw := NoMethod(*s)
32933	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32934}
32935
32936type RegionInstanceGroupManagersDeleteInstancesRequest struct {
32937	// Instances: The URLs of one or more instances to delete. This can be a
32938	// full URL or a partial URL, such as
32939	// zones/[ZONE]/instances/[INSTANCE_NAME].
32940	Instances []string `json:"instances,omitempty"`
32941
32942	// ForceSendFields is a list of field names (e.g. "Instances") to
32943	// unconditionally include in API requests. By default, fields with
32944	// empty values are omitted from API requests. However, any non-pointer,
32945	// non-interface field appearing in ForceSendFields will be sent to the
32946	// server regardless of whether the field is empty or not. This may be
32947	// used to include empty fields in Patch requests.
32948	ForceSendFields []string `json:"-"`
32949
32950	// NullFields is a list of field names (e.g. "Instances") to include in
32951	// API requests with the JSON null value. By default, fields with empty
32952	// values are omitted from API requests. However, any field with an
32953	// empty value appearing in NullFields will be sent to the server as
32954	// null. It is an error if a field in this list has a non-empty value.
32955	// This may be used to include null fields in Patch requests.
32956	NullFields []string `json:"-"`
32957}
32958
32959func (s *RegionInstanceGroupManagersDeleteInstancesRequest) MarshalJSON() ([]byte, error) {
32960	type NoMethod RegionInstanceGroupManagersDeleteInstancesRequest
32961	raw := NoMethod(*s)
32962	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32963}
32964
32965type RegionInstanceGroupManagersListErrorsResponse struct {
32966	// Items: [Output Only] The list of errors of the managed instance
32967	// group.
32968	Items []*InstanceManagedByIgmError `json:"items,omitempty"`
32969
32970	// NextPageToken: [Output Only] This token allows you to get the next
32971	// page of results for list requests. If the number of results is larger
32972	// than maxResults, use the nextPageToken as a value for the query
32973	// parameter pageToken in the next list request. Subsequent list
32974	// requests will have their own nextPageToken to continue paging through
32975	// the results.
32976	NextPageToken string `json:"nextPageToken,omitempty"`
32977
32978	// ServerResponse contains the HTTP response code and headers from the
32979	// server.
32980	googleapi.ServerResponse `json:"-"`
32981
32982	// ForceSendFields is a list of field names (e.g. "Items") to
32983	// unconditionally include in API requests. By default, fields with
32984	// empty values are omitted from API requests. However, any non-pointer,
32985	// non-interface field appearing in ForceSendFields will be sent to the
32986	// server regardless of whether the field is empty or not. This may be
32987	// used to include empty fields in Patch requests.
32988	ForceSendFields []string `json:"-"`
32989
32990	// NullFields is a list of field names (e.g. "Items") to include in API
32991	// requests with the JSON null value. By default, fields with empty
32992	// values are omitted from API requests. However, any field with an
32993	// empty value appearing in NullFields will be sent to the server as
32994	// null. It is an error if a field in this list has a non-empty value.
32995	// This may be used to include null fields in Patch requests.
32996	NullFields []string `json:"-"`
32997}
32998
32999func (s *RegionInstanceGroupManagersListErrorsResponse) MarshalJSON() ([]byte, error) {
33000	type NoMethod RegionInstanceGroupManagersListErrorsResponse
33001	raw := NoMethod(*s)
33002	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33003}
33004
33005type RegionInstanceGroupManagersListInstanceConfigsResp struct {
33006	// Items: [Output Only] The list of PerInstanceConfig.
33007	Items []*PerInstanceConfig `json:"items,omitempty"`
33008
33009	// NextPageToken: [Output Only] This token allows you to get the next
33010	// page of results for list requests. If the number of results is larger
33011	// than maxResults, use the nextPageToken as a value for the query
33012	// parameter pageToken in the next list request. Subsequent list
33013	// requests will have their own nextPageToken to continue paging through
33014	// the results.
33015	NextPageToken string `json:"nextPageToken,omitempty"`
33016
33017	// Warning: [Output Only] Informational warning message.
33018	Warning *RegionInstanceGroupManagersListInstanceConfigsRespWarning `json:"warning,omitempty"`
33019
33020	// ServerResponse contains the HTTP response code and headers from the
33021	// server.
33022	googleapi.ServerResponse `json:"-"`
33023
33024	// ForceSendFields is a list of field names (e.g. "Items") to
33025	// unconditionally include in API requests. By default, fields with
33026	// empty values are omitted from API requests. However, any non-pointer,
33027	// non-interface field appearing in ForceSendFields will be sent to the
33028	// server regardless of whether the field is empty or not. This may be
33029	// used to include empty fields in Patch requests.
33030	ForceSendFields []string `json:"-"`
33031
33032	// NullFields is a list of field names (e.g. "Items") to include in API
33033	// requests with the JSON null value. By default, fields with empty
33034	// values are omitted from API requests. However, any field with an
33035	// empty value appearing in NullFields will be sent to the server as
33036	// null. It is an error if a field in this list has a non-empty value.
33037	// This may be used to include null fields in Patch requests.
33038	NullFields []string `json:"-"`
33039}
33040
33041func (s *RegionInstanceGroupManagersListInstanceConfigsResp) MarshalJSON() ([]byte, error) {
33042	type NoMethod RegionInstanceGroupManagersListInstanceConfigsResp
33043	raw := NoMethod(*s)
33044	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33045}
33046
33047// RegionInstanceGroupManagersListInstanceConfigsRespWarning: [Output
33048// Only] Informational warning message.
33049type RegionInstanceGroupManagersListInstanceConfigsRespWarning struct {
33050	// Code: [Output Only] A warning code, if applicable. For example,
33051	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
33052	// the response.
33053	//
33054	// Possible values:
33055	//   "CLEANUP_FAILED"
33056	//   "DEPRECATED_RESOURCE_USED"
33057	//   "DEPRECATED_TYPE_USED"
33058	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
33059	//   "EXPERIMENTAL_TYPE_USED"
33060	//   "EXTERNAL_API_WARNING"
33061	//   "FIELD_VALUE_OVERRIDEN"
33062	//   "INJECTED_KERNELS_DEPRECATED"
33063	//   "LARGE_DEPLOYMENT_WARNING"
33064	//   "MISSING_TYPE_DEPENDENCY"
33065	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
33066	//   "NEXT_HOP_CANNOT_IP_FORWARD"
33067	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
33068	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
33069	//   "NEXT_HOP_NOT_RUNNING"
33070	//   "NOT_CRITICAL_ERROR"
33071	//   "NO_RESULTS_ON_PAGE"
33072	//   "PARTIAL_SUCCESS"
33073	//   "REQUIRED_TOS_AGREEMENT"
33074	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
33075	//   "RESOURCE_NOT_DELETED"
33076	//   "SCHEMA_VALIDATION_IGNORED"
33077	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
33078	//   "UNDECLARED_PROPERTIES"
33079	//   "UNREACHABLE"
33080	Code string `json:"code,omitempty"`
33081
33082	// Data: [Output Only] Metadata about this warning in key: value format.
33083	// For example:
33084	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
33085	Data []*RegionInstanceGroupManagersListInstanceConfigsRespWarningData `json:"data,omitempty"`
33086
33087	// Message: [Output Only] A human-readable description of the warning
33088	// code.
33089	Message string `json:"message,omitempty"`
33090
33091	// ForceSendFields is a list of field names (e.g. "Code") to
33092	// unconditionally include in API requests. By default, fields with
33093	// empty values are omitted from API requests. However, any non-pointer,
33094	// non-interface field appearing in ForceSendFields will be sent to the
33095	// server regardless of whether the field is empty or not. This may be
33096	// used to include empty fields in Patch requests.
33097	ForceSendFields []string `json:"-"`
33098
33099	// NullFields is a list of field names (e.g. "Code") to include in API
33100	// requests with the JSON null value. By default, fields with empty
33101	// values are omitted from API requests. However, any field with an
33102	// empty value appearing in NullFields will be sent to the server as
33103	// null. It is an error if a field in this list has a non-empty value.
33104	// This may be used to include null fields in Patch requests.
33105	NullFields []string `json:"-"`
33106}
33107
33108func (s *RegionInstanceGroupManagersListInstanceConfigsRespWarning) MarshalJSON() ([]byte, error) {
33109	type NoMethod RegionInstanceGroupManagersListInstanceConfigsRespWarning
33110	raw := NoMethod(*s)
33111	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33112}
33113
33114type RegionInstanceGroupManagersListInstanceConfigsRespWarningData struct {
33115	// Key: [Output Only] A key that provides more detail on the warning
33116	// being returned. For example, for warnings where there are no results
33117	// in a list request for a particular zone, this key might be scope and
33118	// the key value might be the zone name. Other examples might be a key
33119	// indicating a deprecated resource and a suggested replacement, or a
33120	// warning about invalid network settings (for example, if an instance
33121	// attempts to perform IP forwarding but is not enabled for IP
33122	// forwarding).
33123	Key string `json:"key,omitempty"`
33124
33125	// Value: [Output Only] A warning data value corresponding to the key.
33126	Value string `json:"value,omitempty"`
33127
33128	// ForceSendFields is a list of field names (e.g. "Key") to
33129	// unconditionally include in API requests. By default, fields with
33130	// empty values are omitted from API requests. However, any non-pointer,
33131	// non-interface field appearing in ForceSendFields will be sent to the
33132	// server regardless of whether the field is empty or not. This may be
33133	// used to include empty fields in Patch requests.
33134	ForceSendFields []string `json:"-"`
33135
33136	// NullFields is a list of field names (e.g. "Key") to include in API
33137	// requests with the JSON null value. By default, fields with empty
33138	// values are omitted from API requests. However, any field with an
33139	// empty value appearing in NullFields will be sent to the server as
33140	// null. It is an error if a field in this list has a non-empty value.
33141	// This may be used to include null fields in Patch requests.
33142	NullFields []string `json:"-"`
33143}
33144
33145func (s *RegionInstanceGroupManagersListInstanceConfigsRespWarningData) MarshalJSON() ([]byte, error) {
33146	type NoMethod RegionInstanceGroupManagersListInstanceConfigsRespWarningData
33147	raw := NoMethod(*s)
33148	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33149}
33150
33151type RegionInstanceGroupManagersListInstancesResponse struct {
33152	// ManagedInstances: A list of managed instances.
33153	ManagedInstances []*ManagedInstance `json:"managedInstances,omitempty"`
33154
33155	// NextPageToken: [Output Only] This token allows you to get the next
33156	// page of results for list requests. If the number of results is larger
33157	// than maxResults, use the nextPageToken as a value for the query
33158	// parameter pageToken in the next list request. Subsequent list
33159	// requests will have their own nextPageToken to continue paging through
33160	// the results.
33161	NextPageToken string `json:"nextPageToken,omitempty"`
33162
33163	// ServerResponse contains the HTTP response code and headers from the
33164	// server.
33165	googleapi.ServerResponse `json:"-"`
33166
33167	// ForceSendFields is a list of field names (e.g. "ManagedInstances") to
33168	// unconditionally include in API requests. By default, fields with
33169	// empty values are omitted from API requests. However, any non-pointer,
33170	// non-interface field appearing in ForceSendFields will be sent to the
33171	// server regardless of whether the field is empty or not. This may be
33172	// used to include empty fields in Patch requests.
33173	ForceSendFields []string `json:"-"`
33174
33175	// NullFields is a list of field names (e.g. "ManagedInstances") to
33176	// include in API requests with the JSON null value. By default, fields
33177	// with empty values are omitted from API requests. However, any field
33178	// with an empty value appearing in NullFields will be sent to the
33179	// server as null. It is an error if a field in this list has a
33180	// non-empty value. This may be used to include null fields in Patch
33181	// requests.
33182	NullFields []string `json:"-"`
33183}
33184
33185func (s *RegionInstanceGroupManagersListInstancesResponse) MarshalJSON() ([]byte, error) {
33186	type NoMethod RegionInstanceGroupManagersListInstancesResponse
33187	raw := NoMethod(*s)
33188	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33189}
33190
33191type RegionInstanceGroupManagersRecreateRequest struct {
33192	// Instances: The URLs of one or more instances to recreate. This can be
33193	// a full URL or a partial URL, such as
33194	// zones/[ZONE]/instances/[INSTANCE_NAME].
33195	Instances []string `json:"instances,omitempty"`
33196
33197	// ForceSendFields is a list of field names (e.g. "Instances") to
33198	// unconditionally include in API requests. By default, fields with
33199	// empty values are omitted from API requests. However, any non-pointer,
33200	// non-interface field appearing in ForceSendFields will be sent to the
33201	// server regardless of whether the field is empty or not. This may be
33202	// used to include empty fields in Patch requests.
33203	ForceSendFields []string `json:"-"`
33204
33205	// NullFields is a list of field names (e.g. "Instances") to include in
33206	// API requests with the JSON null value. By default, fields with empty
33207	// values are omitted from API requests. However, any field with an
33208	// empty value appearing in NullFields will be sent to the server as
33209	// null. It is an error if a field in this list has a non-empty value.
33210	// This may be used to include null fields in Patch requests.
33211	NullFields []string `json:"-"`
33212}
33213
33214func (s *RegionInstanceGroupManagersRecreateRequest) MarshalJSON() ([]byte, error) {
33215	type NoMethod RegionInstanceGroupManagersRecreateRequest
33216	raw := NoMethod(*s)
33217	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33218}
33219
33220type RegionInstanceGroupManagersSetAutoHealingRequest struct {
33221	AutoHealingPolicies []*InstanceGroupManagerAutoHealingPolicy `json:"autoHealingPolicies,omitempty"`
33222
33223	// ForceSendFields is a list of field names (e.g. "AutoHealingPolicies")
33224	// to unconditionally include in API requests. By default, fields with
33225	// empty values are omitted from API requests. However, any non-pointer,
33226	// non-interface field appearing in ForceSendFields will be sent to the
33227	// server regardless of whether the field is empty or not. This may be
33228	// used to include empty fields in Patch requests.
33229	ForceSendFields []string `json:"-"`
33230
33231	// NullFields is a list of field names (e.g. "AutoHealingPolicies") to
33232	// include in API requests with the JSON null value. By default, fields
33233	// with empty values are omitted from API requests. However, any field
33234	// with an empty value appearing in NullFields will be sent to the
33235	// server as null. It is an error if a field in this list has a
33236	// non-empty value. This may be used to include null fields in Patch
33237	// requests.
33238	NullFields []string `json:"-"`
33239}
33240
33241func (s *RegionInstanceGroupManagersSetAutoHealingRequest) MarshalJSON() ([]byte, error) {
33242	type NoMethod RegionInstanceGroupManagersSetAutoHealingRequest
33243	raw := NoMethod(*s)
33244	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33245}
33246
33247type RegionInstanceGroupManagersSetTargetPoolsRequest struct {
33248	// Fingerprint: Fingerprint of the target pools information, which is a
33249	// hash of the contents. This field is used for optimistic locking when
33250	// you update the target pool entries. This field is optional.
33251	Fingerprint string `json:"fingerprint,omitempty"`
33252
33253	// TargetPools: The URL of all TargetPool resources to which instances
33254	// in the instanceGroup field are added. The target pools automatically
33255	// apply to all of the instances in the managed instance group.
33256	TargetPools []string `json:"targetPools,omitempty"`
33257
33258	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
33259	// unconditionally include in API requests. By default, fields with
33260	// empty values are omitted from API requests. However, any non-pointer,
33261	// non-interface field appearing in ForceSendFields will be sent to the
33262	// server regardless of whether the field is empty or not. This may be
33263	// used to include empty fields in Patch requests.
33264	ForceSendFields []string `json:"-"`
33265
33266	// NullFields is a list of field names (e.g. "Fingerprint") to include
33267	// in API requests with the JSON null value. By default, fields with
33268	// empty values are omitted from API requests. However, any field with
33269	// an empty value appearing in NullFields will be sent to the server as
33270	// null. It is an error if a field in this list has a non-empty value.
33271	// This may be used to include null fields in Patch requests.
33272	NullFields []string `json:"-"`
33273}
33274
33275func (s *RegionInstanceGroupManagersSetTargetPoolsRequest) MarshalJSON() ([]byte, error) {
33276	type NoMethod RegionInstanceGroupManagersSetTargetPoolsRequest
33277	raw := NoMethod(*s)
33278	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33279}
33280
33281type RegionInstanceGroupManagersSetTemplateRequest struct {
33282	// InstanceTemplate: URL of the InstanceTemplate resource from which all
33283	// new instances will be created.
33284	InstanceTemplate string `json:"instanceTemplate,omitempty"`
33285
33286	// ForceSendFields is a list of field names (e.g. "InstanceTemplate") to
33287	// unconditionally include in API requests. By default, fields with
33288	// empty values are omitted from API requests. However, any non-pointer,
33289	// non-interface field appearing in ForceSendFields will be sent to the
33290	// server regardless of whether the field is empty or not. This may be
33291	// used to include empty fields in Patch requests.
33292	ForceSendFields []string `json:"-"`
33293
33294	// NullFields is a list of field names (e.g. "InstanceTemplate") to
33295	// include in API requests with the JSON null value. By default, fields
33296	// with empty values are omitted from API requests. However, any field
33297	// with an empty value appearing in NullFields will be sent to the
33298	// server as null. It is an error if a field in this list has a
33299	// non-empty value. This may be used to include null fields in Patch
33300	// requests.
33301	NullFields []string `json:"-"`
33302}
33303
33304func (s *RegionInstanceGroupManagersSetTemplateRequest) MarshalJSON() ([]byte, error) {
33305	type NoMethod RegionInstanceGroupManagersSetTemplateRequest
33306	raw := NoMethod(*s)
33307	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33308}
33309
33310type RegionInstanceGroupsListInstances struct {
33311	// Id: [Output Only] Unique identifier for the resource; defined by the
33312	// server.
33313	Id string `json:"id,omitempty"`
33314
33315	// Items: A list of InstanceWithNamedPorts resources.
33316	Items []*InstanceWithNamedPorts `json:"items,omitempty"`
33317
33318	// Kind: The resource type.
33319	Kind string `json:"kind,omitempty"`
33320
33321	// NextPageToken: [Output Only] This token allows you to get the next
33322	// page of results for list requests. If the number of results is larger
33323	// than maxResults, use the nextPageToken as a value for the query
33324	// parameter pageToken in the next list request. Subsequent list
33325	// requests will have their own nextPageToken to continue paging through
33326	// the results.
33327	NextPageToken string `json:"nextPageToken,omitempty"`
33328
33329	// SelfLink: [Output Only] Server-defined URL for this resource.
33330	SelfLink string `json:"selfLink,omitempty"`
33331
33332	// Warning: [Output Only] Informational warning message.
33333	Warning *RegionInstanceGroupsListInstancesWarning `json:"warning,omitempty"`
33334
33335	// ServerResponse contains the HTTP response code and headers from the
33336	// server.
33337	googleapi.ServerResponse `json:"-"`
33338
33339	// ForceSendFields is a list of field names (e.g. "Id") to
33340	// unconditionally include in API requests. By default, fields with
33341	// empty values are omitted from API requests. However, any non-pointer,
33342	// non-interface field appearing in ForceSendFields will be sent to the
33343	// server regardless of whether the field is empty or not. This may be
33344	// used to include empty fields in Patch requests.
33345	ForceSendFields []string `json:"-"`
33346
33347	// NullFields is a list of field names (e.g. "Id") to include in API
33348	// requests with the JSON null value. By default, fields with empty
33349	// values are omitted from API requests. However, any field with an
33350	// empty value appearing in NullFields will be sent to the server as
33351	// null. It is an error if a field in this list has a non-empty value.
33352	// This may be used to include null fields in Patch requests.
33353	NullFields []string `json:"-"`
33354}
33355
33356func (s *RegionInstanceGroupsListInstances) MarshalJSON() ([]byte, error) {
33357	type NoMethod RegionInstanceGroupsListInstances
33358	raw := NoMethod(*s)
33359	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33360}
33361
33362// RegionInstanceGroupsListInstancesWarning: [Output Only] Informational
33363// warning message.
33364type RegionInstanceGroupsListInstancesWarning struct {
33365	// Code: [Output Only] A warning code, if applicable. For example,
33366	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
33367	// the response.
33368	//
33369	// Possible values:
33370	//   "CLEANUP_FAILED"
33371	//   "DEPRECATED_RESOURCE_USED"
33372	//   "DEPRECATED_TYPE_USED"
33373	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
33374	//   "EXPERIMENTAL_TYPE_USED"
33375	//   "EXTERNAL_API_WARNING"
33376	//   "FIELD_VALUE_OVERRIDEN"
33377	//   "INJECTED_KERNELS_DEPRECATED"
33378	//   "LARGE_DEPLOYMENT_WARNING"
33379	//   "MISSING_TYPE_DEPENDENCY"
33380	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
33381	//   "NEXT_HOP_CANNOT_IP_FORWARD"
33382	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
33383	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
33384	//   "NEXT_HOP_NOT_RUNNING"
33385	//   "NOT_CRITICAL_ERROR"
33386	//   "NO_RESULTS_ON_PAGE"
33387	//   "PARTIAL_SUCCESS"
33388	//   "REQUIRED_TOS_AGREEMENT"
33389	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
33390	//   "RESOURCE_NOT_DELETED"
33391	//   "SCHEMA_VALIDATION_IGNORED"
33392	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
33393	//   "UNDECLARED_PROPERTIES"
33394	//   "UNREACHABLE"
33395	Code string `json:"code,omitempty"`
33396
33397	// Data: [Output Only] Metadata about this warning in key: value format.
33398	// For example:
33399	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
33400	Data []*RegionInstanceGroupsListInstancesWarningData `json:"data,omitempty"`
33401
33402	// Message: [Output Only] A human-readable description of the warning
33403	// code.
33404	Message string `json:"message,omitempty"`
33405
33406	// ForceSendFields is a list of field names (e.g. "Code") to
33407	// unconditionally include in API requests. By default, fields with
33408	// empty values are omitted from API requests. However, any non-pointer,
33409	// non-interface field appearing in ForceSendFields will be sent to the
33410	// server regardless of whether the field is empty or not. This may be
33411	// used to include empty fields in Patch requests.
33412	ForceSendFields []string `json:"-"`
33413
33414	// NullFields is a list of field names (e.g. "Code") to include in API
33415	// requests with the JSON null value. By default, fields with empty
33416	// values are omitted from API requests. However, any field with an
33417	// empty value appearing in NullFields will be sent to the server as
33418	// null. It is an error if a field in this list has a non-empty value.
33419	// This may be used to include null fields in Patch requests.
33420	NullFields []string `json:"-"`
33421}
33422
33423func (s *RegionInstanceGroupsListInstancesWarning) MarshalJSON() ([]byte, error) {
33424	type NoMethod RegionInstanceGroupsListInstancesWarning
33425	raw := NoMethod(*s)
33426	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33427}
33428
33429type RegionInstanceGroupsListInstancesWarningData struct {
33430	// Key: [Output Only] A key that provides more detail on the warning
33431	// being returned. For example, for warnings where there are no results
33432	// in a list request for a particular zone, this key might be scope and
33433	// the key value might be the zone name. Other examples might be a key
33434	// indicating a deprecated resource and a suggested replacement, or a
33435	// warning about invalid network settings (for example, if an instance
33436	// attempts to perform IP forwarding but is not enabled for IP
33437	// forwarding).
33438	Key string `json:"key,omitempty"`
33439
33440	// Value: [Output Only] A warning data value corresponding to the key.
33441	Value string `json:"value,omitempty"`
33442
33443	// ForceSendFields is a list of field names (e.g. "Key") to
33444	// unconditionally include in API requests. By default, fields with
33445	// empty values are omitted from API requests. However, any non-pointer,
33446	// non-interface field appearing in ForceSendFields will be sent to the
33447	// server regardless of whether the field is empty or not. This may be
33448	// used to include empty fields in Patch requests.
33449	ForceSendFields []string `json:"-"`
33450
33451	// NullFields is a list of field names (e.g. "Key") to include in API
33452	// requests with the JSON null value. By default, fields with empty
33453	// values are omitted from API requests. However, any field with an
33454	// empty value appearing in NullFields will be sent to the server as
33455	// null. It is an error if a field in this list has a non-empty value.
33456	// This may be used to include null fields in Patch requests.
33457	NullFields []string `json:"-"`
33458}
33459
33460func (s *RegionInstanceGroupsListInstancesWarningData) MarshalJSON() ([]byte, error) {
33461	type NoMethod RegionInstanceGroupsListInstancesWarningData
33462	raw := NoMethod(*s)
33463	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33464}
33465
33466type RegionInstanceGroupsListInstancesRequest struct {
33467	// InstanceState: Instances in which state should be returned. Valid
33468	// options are: 'ALL', 'RUNNING'. By default, it lists all instances.
33469	//
33470	// Possible values:
33471	//   "ALL"
33472	//   "RUNNING"
33473	InstanceState string `json:"instanceState,omitempty"`
33474
33475	// PortName: Name of port user is interested in. It is optional. If it
33476	// is set, only information about this ports will be returned. If it is
33477	// not set, all the named ports will be returned. Always lists all
33478	// instances.
33479	PortName string `json:"portName,omitempty"`
33480
33481	// ForceSendFields is a list of field names (e.g. "InstanceState") to
33482	// unconditionally include in API requests. By default, fields with
33483	// empty values are omitted from API requests. However, any non-pointer,
33484	// non-interface field appearing in ForceSendFields will be sent to the
33485	// server regardless of whether the field is empty or not. This may be
33486	// used to include empty fields in Patch requests.
33487	ForceSendFields []string `json:"-"`
33488
33489	// NullFields is a list of field names (e.g. "InstanceState") to include
33490	// in API requests with the JSON null value. By default, fields with
33491	// empty values are omitted from API requests. However, any field with
33492	// an empty value appearing in NullFields will be sent to the server as
33493	// null. It is an error if a field in this list has a non-empty value.
33494	// This may be used to include null fields in Patch requests.
33495	NullFields []string `json:"-"`
33496}
33497
33498func (s *RegionInstanceGroupsListInstancesRequest) MarshalJSON() ([]byte, error) {
33499	type NoMethod RegionInstanceGroupsListInstancesRequest
33500	raw := NoMethod(*s)
33501	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33502}
33503
33504type RegionInstanceGroupsSetNamedPortsRequest struct {
33505	// Fingerprint: The fingerprint of the named ports information for this
33506	// instance group. Use this optional property to prevent conflicts when
33507	// multiple users change the named ports settings concurrently. Obtain
33508	// the fingerprint with the instanceGroups.get method. Then, include the
33509	// fingerprint in your request to ensure that you do not overwrite
33510	// changes that were applied from another concurrent request.
33511	Fingerprint string `json:"fingerprint,omitempty"`
33512
33513	// NamedPorts: The list of named ports to set for this instance group.
33514	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
33515
33516	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
33517	// unconditionally include in API requests. By default, fields with
33518	// empty values are omitted from API requests. However, any non-pointer,
33519	// non-interface field appearing in ForceSendFields will be sent to the
33520	// server regardless of whether the field is empty or not. This may be
33521	// used to include empty fields in Patch requests.
33522	ForceSendFields []string `json:"-"`
33523
33524	// NullFields is a list of field names (e.g. "Fingerprint") to include
33525	// in API requests with the JSON null value. By default, fields with
33526	// empty values are omitted from API requests. However, any field with
33527	// an empty value appearing in NullFields will be sent to the server as
33528	// null. It is an error if a field in this list has a non-empty value.
33529	// This may be used to include null fields in Patch requests.
33530	NullFields []string `json:"-"`
33531}
33532
33533func (s *RegionInstanceGroupsSetNamedPortsRequest) MarshalJSON() ([]byte, error) {
33534	type NoMethod RegionInstanceGroupsSetNamedPortsRequest
33535	raw := NoMethod(*s)
33536	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33537}
33538
33539// RegionList: Contains a list of region resources.
33540type RegionList struct {
33541	// Id: [Output Only] Unique identifier for the resource; defined by the
33542	// server.
33543	Id string `json:"id,omitempty"`
33544
33545	// Items: A list of Region resources.
33546	Items []*Region `json:"items,omitempty"`
33547
33548	// Kind: [Output Only] Type of resource. Always compute#regionList for
33549	// lists of regions.
33550	Kind string `json:"kind,omitempty"`
33551
33552	// NextPageToken: [Output Only] This token allows you to get the next
33553	// page of results for list requests. If the number of results is larger
33554	// than maxResults, use the nextPageToken as a value for the query
33555	// parameter pageToken in the next list request. Subsequent list
33556	// requests will have their own nextPageToken to continue paging through
33557	// the results.
33558	NextPageToken string `json:"nextPageToken,omitempty"`
33559
33560	// SelfLink: [Output Only] Server-defined URL for this resource.
33561	SelfLink string `json:"selfLink,omitempty"`
33562
33563	// Warning: [Output Only] Informational warning message.
33564	Warning *RegionListWarning `json:"warning,omitempty"`
33565
33566	// ServerResponse contains the HTTP response code and headers from the
33567	// server.
33568	googleapi.ServerResponse `json:"-"`
33569
33570	// ForceSendFields is a list of field names (e.g. "Id") to
33571	// unconditionally include in API requests. By default, fields with
33572	// empty values are omitted from API requests. However, any non-pointer,
33573	// non-interface field appearing in ForceSendFields will be sent to the
33574	// server regardless of whether the field is empty or not. This may be
33575	// used to include empty fields in Patch requests.
33576	ForceSendFields []string `json:"-"`
33577
33578	// NullFields is a list of field names (e.g. "Id") to include in API
33579	// requests with the JSON null value. By default, fields with empty
33580	// values are omitted from API requests. However, any field with an
33581	// empty value appearing in NullFields will be sent to the server as
33582	// null. It is an error if a field in this list has a non-empty value.
33583	// This may be used to include null fields in Patch requests.
33584	NullFields []string `json:"-"`
33585}
33586
33587func (s *RegionList) MarshalJSON() ([]byte, error) {
33588	type NoMethod RegionList
33589	raw := NoMethod(*s)
33590	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33591}
33592
33593// RegionListWarning: [Output Only] Informational warning message.
33594type RegionListWarning struct {
33595	// Code: [Output Only] A warning code, if applicable. For example,
33596	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
33597	// the response.
33598	//
33599	// Possible values:
33600	//   "CLEANUP_FAILED"
33601	//   "DEPRECATED_RESOURCE_USED"
33602	//   "DEPRECATED_TYPE_USED"
33603	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
33604	//   "EXPERIMENTAL_TYPE_USED"
33605	//   "EXTERNAL_API_WARNING"
33606	//   "FIELD_VALUE_OVERRIDEN"
33607	//   "INJECTED_KERNELS_DEPRECATED"
33608	//   "LARGE_DEPLOYMENT_WARNING"
33609	//   "MISSING_TYPE_DEPENDENCY"
33610	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
33611	//   "NEXT_HOP_CANNOT_IP_FORWARD"
33612	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
33613	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
33614	//   "NEXT_HOP_NOT_RUNNING"
33615	//   "NOT_CRITICAL_ERROR"
33616	//   "NO_RESULTS_ON_PAGE"
33617	//   "PARTIAL_SUCCESS"
33618	//   "REQUIRED_TOS_AGREEMENT"
33619	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
33620	//   "RESOURCE_NOT_DELETED"
33621	//   "SCHEMA_VALIDATION_IGNORED"
33622	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
33623	//   "UNDECLARED_PROPERTIES"
33624	//   "UNREACHABLE"
33625	Code string `json:"code,omitempty"`
33626
33627	// Data: [Output Only] Metadata about this warning in key: value format.
33628	// For example:
33629	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
33630	Data []*RegionListWarningData `json:"data,omitempty"`
33631
33632	// Message: [Output Only] A human-readable description of the warning
33633	// code.
33634	Message string `json:"message,omitempty"`
33635
33636	// ForceSendFields is a list of field names (e.g. "Code") to
33637	// unconditionally include in API requests. By default, fields with
33638	// empty values are omitted from API requests. However, any non-pointer,
33639	// non-interface field appearing in ForceSendFields will be sent to the
33640	// server regardless of whether the field is empty or not. This may be
33641	// used to include empty fields in Patch requests.
33642	ForceSendFields []string `json:"-"`
33643
33644	// NullFields is a list of field names (e.g. "Code") to include in API
33645	// requests with the JSON null value. By default, fields with empty
33646	// values are omitted from API requests. However, any field with an
33647	// empty value appearing in NullFields will be sent to the server as
33648	// null. It is an error if a field in this list has a non-empty value.
33649	// This may be used to include null fields in Patch requests.
33650	NullFields []string `json:"-"`
33651}
33652
33653func (s *RegionListWarning) MarshalJSON() ([]byte, error) {
33654	type NoMethod RegionListWarning
33655	raw := NoMethod(*s)
33656	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33657}
33658
33659type RegionListWarningData struct {
33660	// Key: [Output Only] A key that provides more detail on the warning
33661	// being returned. For example, for warnings where there are no results
33662	// in a list request for a particular zone, this key might be scope and
33663	// the key value might be the zone name. Other examples might be a key
33664	// indicating a deprecated resource and a suggested replacement, or a
33665	// warning about invalid network settings (for example, if an instance
33666	// attempts to perform IP forwarding but is not enabled for IP
33667	// forwarding).
33668	Key string `json:"key,omitempty"`
33669
33670	// Value: [Output Only] A warning data value corresponding to the key.
33671	Value string `json:"value,omitempty"`
33672
33673	// ForceSendFields is a list of field names (e.g. "Key") to
33674	// unconditionally include in API requests. By default, fields with
33675	// empty values are omitted from API requests. However, any non-pointer,
33676	// non-interface field appearing in ForceSendFields will be sent to the
33677	// server regardless of whether the field is empty or not. This may be
33678	// used to include empty fields in Patch requests.
33679	ForceSendFields []string `json:"-"`
33680
33681	// NullFields is a list of field names (e.g. "Key") to include in API
33682	// requests with the JSON null value. By default, fields with empty
33683	// values are omitted from API requests. However, any field with an
33684	// empty value appearing in NullFields will be sent to the server as
33685	// null. It is an error if a field in this list has a non-empty value.
33686	// This may be used to include null fields in Patch requests.
33687	NullFields []string `json:"-"`
33688}
33689
33690func (s *RegionListWarningData) MarshalJSON() ([]byte, error) {
33691	type NoMethod RegionListWarningData
33692	raw := NoMethod(*s)
33693	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33694}
33695
33696type RegionSetLabelsRequest struct {
33697	// LabelFingerprint: The fingerprint of the previous set of labels for
33698	// this resource, used to detect conflicts. The fingerprint is initially
33699	// generated by Compute Engine and changes after every request to modify
33700	// or update labels. You must always provide an up-to-date fingerprint
33701	// hash in order to update or change labels. Make a get() request to the
33702	// resource to get the latest fingerprint.
33703	LabelFingerprint string `json:"labelFingerprint,omitempty"`
33704
33705	// Labels: The labels to set for this resource.
33706	Labels map[string]string `json:"labels,omitempty"`
33707
33708	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") to
33709	// unconditionally include in API requests. By default, fields with
33710	// empty values are omitted from API requests. However, any non-pointer,
33711	// non-interface field appearing in ForceSendFields will be sent to the
33712	// server regardless of whether the field is empty or not. This may be
33713	// used to include empty fields in Patch requests.
33714	ForceSendFields []string `json:"-"`
33715
33716	// NullFields is a list of field names (e.g. "LabelFingerprint") to
33717	// include in API requests with the JSON null value. By default, fields
33718	// with empty values are omitted from API requests. However, any field
33719	// with an empty value appearing in NullFields will be sent to the
33720	// server as null. It is an error if a field in this list has a
33721	// non-empty value. This may be used to include null fields in Patch
33722	// requests.
33723	NullFields []string `json:"-"`
33724}
33725
33726func (s *RegionSetLabelsRequest) MarshalJSON() ([]byte, error) {
33727	type NoMethod RegionSetLabelsRequest
33728	raw := NoMethod(*s)
33729	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33730}
33731
33732type RegionSetPolicyRequest struct {
33733	// Bindings: Flatten Policy to create a backwacd compatible wire-format.
33734	// Deprecated. Use 'policy' to specify bindings.
33735	Bindings []*Binding `json:"bindings,omitempty"`
33736
33737	// Etag: Flatten Policy to create a backward compatible wire-format.
33738	// Deprecated. Use 'policy' to specify the etag.
33739	Etag string `json:"etag,omitempty"`
33740
33741	// Policy: REQUIRED: The complete policy to be applied to the
33742	// 'resource'. The size of the policy is limited to a few 10s of KB. An
33743	// empty policy is in general a valid policy but certain services (like
33744	// Projects) might reject them.
33745	Policy *Policy `json:"policy,omitempty"`
33746
33747	// ForceSendFields is a list of field names (e.g. "Bindings") to
33748	// unconditionally include in API requests. By default, fields with
33749	// empty values are omitted from API requests. However, any non-pointer,
33750	// non-interface field appearing in ForceSendFields will be sent to the
33751	// server regardless of whether the field is empty or not. This may be
33752	// used to include empty fields in Patch requests.
33753	ForceSendFields []string `json:"-"`
33754
33755	// NullFields is a list of field names (e.g. "Bindings") to include in
33756	// API requests with the JSON null value. By default, fields with empty
33757	// values are omitted from API requests. However, any field with an
33758	// empty value appearing in NullFields will be sent to the server as
33759	// null. It is an error if a field in this list has a non-empty value.
33760	// This may be used to include null fields in Patch requests.
33761	NullFields []string `json:"-"`
33762}
33763
33764func (s *RegionSetPolicyRequest) MarshalJSON() ([]byte, error) {
33765	type NoMethod RegionSetPolicyRequest
33766	raw := NoMethod(*s)
33767	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33768}
33769
33770type RegionTargetHttpsProxiesSetSslCertificatesRequest struct {
33771	// SslCertificates: New set of SslCertificate resources to associate
33772	// with this TargetHttpsProxy resource. Currently exactly one
33773	// SslCertificate resource must be specified.
33774	SslCertificates []string `json:"sslCertificates,omitempty"`
33775
33776	// ForceSendFields is a list of field names (e.g. "SslCertificates") to
33777	// unconditionally include in API requests. By default, fields with
33778	// empty values are omitted from API requests. However, any non-pointer,
33779	// non-interface field appearing in ForceSendFields will be sent to the
33780	// server regardless of whether the field is empty or not. This may be
33781	// used to include empty fields in Patch requests.
33782	ForceSendFields []string `json:"-"`
33783
33784	// NullFields is a list of field names (e.g. "SslCertificates") to
33785	// include in API requests with the JSON null value. By default, fields
33786	// with empty values are omitted from API requests. However, any field
33787	// with an empty value appearing in NullFields will be sent to the
33788	// server as null. It is an error if a field in this list has a
33789	// non-empty value. This may be used to include null fields in Patch
33790	// requests.
33791	NullFields []string `json:"-"`
33792}
33793
33794func (s *RegionTargetHttpsProxiesSetSslCertificatesRequest) MarshalJSON() ([]byte, error) {
33795	type NoMethod RegionTargetHttpsProxiesSetSslCertificatesRequest
33796	raw := NoMethod(*s)
33797	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33798}
33799
33800type RegionUrlMapsValidateRequest struct {
33801	// Resource: Content of the UrlMap to be validated.
33802	Resource *UrlMap `json:"resource,omitempty"`
33803
33804	// ForceSendFields is a list of field names (e.g. "Resource") to
33805	// unconditionally include in API requests. By default, fields with
33806	// empty values are omitted from API requests. However, any non-pointer,
33807	// non-interface field appearing in ForceSendFields will be sent to the
33808	// server regardless of whether the field is empty or not. This may be
33809	// used to include empty fields in Patch requests.
33810	ForceSendFields []string `json:"-"`
33811
33812	// NullFields is a list of field names (e.g. "Resource") to include in
33813	// API requests with the JSON null value. By default, fields with empty
33814	// values are omitted from API requests. However, any field with an
33815	// empty value appearing in NullFields will be sent to the server as
33816	// null. It is an error if a field in this list has a non-empty value.
33817	// This may be used to include null fields in Patch requests.
33818	NullFields []string `json:"-"`
33819}
33820
33821func (s *RegionUrlMapsValidateRequest) MarshalJSON() ([]byte, error) {
33822	type NoMethod RegionUrlMapsValidateRequest
33823	raw := NoMethod(*s)
33824	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33825}
33826
33827// RequestMirrorPolicy: A policy that specifies how requests intended
33828// for the route's backends are shadowed to a separate mirrored backend
33829// service. Loadbalancer does not wait for responses from the shadow
33830// service. Prior to sending traffic to the shadow service, the host /
33831// authority header is suffixed with -shadow.
33832type RequestMirrorPolicy struct {
33833	// BackendService: The full or partial URL to the BackendService
33834	// resource being mirrored to.
33835	BackendService string `json:"backendService,omitempty"`
33836
33837	// ForceSendFields is a list of field names (e.g. "BackendService") to
33838	// unconditionally include in API requests. By default, fields with
33839	// empty values are omitted from API requests. However, any non-pointer,
33840	// non-interface field appearing in ForceSendFields will be sent to the
33841	// server regardless of whether the field is empty or not. This may be
33842	// used to include empty fields in Patch requests.
33843	ForceSendFields []string `json:"-"`
33844
33845	// NullFields is a list of field names (e.g. "BackendService") to
33846	// include in API requests with the JSON null value. By default, fields
33847	// with empty values are omitted from API requests. However, any field
33848	// with an empty value appearing in NullFields will be sent to the
33849	// server as null. It is an error if a field in this list has a
33850	// non-empty value. This may be used to include null fields in Patch
33851	// requests.
33852	NullFields []string `json:"-"`
33853}
33854
33855func (s *RequestMirrorPolicy) MarshalJSON() ([]byte, error) {
33856	type NoMethod RequestMirrorPolicy
33857	raw := NoMethod(*s)
33858	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33859}
33860
33861// Reservation: Represents a reservation resource. A reservation ensures
33862// that capacity is held in a specific zone even if the reserved VMs are
33863// not running. For more information, read  Reserving zonal resources.
33864// (== resource_for {$api_version}.reservations ==)
33865type Reservation struct {
33866	// Commitment: [Output Only] Full or partial URL to a parent commitment.
33867	// This field displays for reservations that are tied to a commitment.
33868	Commitment string `json:"commitment,omitempty"`
33869
33870	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
33871	// format.
33872	CreationTimestamp string `json:"creationTimestamp,omitempty"`
33873
33874	// Description: An optional description of this resource. Provide this
33875	// property when you create the resource.
33876	Description string `json:"description,omitempty"`
33877
33878	// Id: [Output Only] The unique identifier for the resource. This
33879	// identifier is defined by the server.
33880	Id uint64 `json:"id,omitempty,string"`
33881
33882	// Kind: [Output Only] Type of the resource. Always compute#reservations
33883	// for reservations.
33884	Kind string `json:"kind,omitempty"`
33885
33886	// Name: The name of the resource, provided by the client when initially
33887	// creating the resource. The resource name must be 1-63 characters
33888	// long, and comply with RFC1035. Specifically, the name must be 1-63
33889	// characters long and match the regular expression
33890	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
33891	// a lowercase letter, and all following characters must be a dash,
33892	// lowercase letter, or digit, except the last character, which cannot
33893	// be a dash.
33894	Name string `json:"name,omitempty"`
33895
33896	// SatisfiesPzs: [Output Only] Reserved for future use.
33897	SatisfiesPzs bool `json:"satisfiesPzs,omitempty"`
33898
33899	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
33900	// resource.
33901	SelfLink string `json:"selfLink,omitempty"`
33902
33903	// SpecificReservation: Reservation for instances with specific machine
33904	// shapes.
33905	SpecificReservation *AllocationSpecificSKUReservation `json:"specificReservation,omitempty"`
33906
33907	// SpecificReservationRequired: Indicates whether the reservation can be
33908	// consumed by VMs with affinity for "any" reservation. If the field is
33909	// set, then only VMs that target the reservation by name can consume
33910	// from this reservation.
33911	SpecificReservationRequired bool `json:"specificReservationRequired,omitempty"`
33912
33913	// Status: [Output Only] The status of the reservation.
33914	//
33915	// Possible values:
33916	//   "CREATING"
33917	//   "DELETING"
33918	//   "INVALID"
33919	//   "READY"
33920	//   "UPDATING"
33921	Status string `json:"status,omitempty"`
33922
33923	// Zone: Zone in which the reservation resides. A zone must be provided
33924	// if the reservation is created within a commitment.
33925	Zone string `json:"zone,omitempty"`
33926
33927	// ServerResponse contains the HTTP response code and headers from the
33928	// server.
33929	googleapi.ServerResponse `json:"-"`
33930
33931	// ForceSendFields is a list of field names (e.g. "Commitment") to
33932	// unconditionally include in API requests. By default, fields with
33933	// empty values are omitted from API requests. However, any non-pointer,
33934	// non-interface field appearing in ForceSendFields will be sent to the
33935	// server regardless of whether the field is empty or not. This may be
33936	// used to include empty fields in Patch requests.
33937	ForceSendFields []string `json:"-"`
33938
33939	// NullFields is a list of field names (e.g. "Commitment") to include in
33940	// API requests with the JSON null value. By default, fields with empty
33941	// values are omitted from API requests. However, any field with an
33942	// empty value appearing in NullFields will be sent to the server as
33943	// null. It is an error if a field in this list has a non-empty value.
33944	// This may be used to include null fields in Patch requests.
33945	NullFields []string `json:"-"`
33946}
33947
33948func (s *Reservation) MarshalJSON() ([]byte, error) {
33949	type NoMethod Reservation
33950	raw := NoMethod(*s)
33951	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33952}
33953
33954// ReservationAffinity: Specifies the reservations that this instance
33955// can consume from.
33956type ReservationAffinity struct {
33957	// ConsumeReservationType: Specifies the type of reservation from which
33958	// this instance can consume resources: ANY_RESERVATION (default),
33959	// SPECIFIC_RESERVATION, or NO_RESERVATION. See  Consuming reserved
33960	// instances for examples.
33961	//
33962	// Possible values:
33963	//   "ANY_RESERVATION"
33964	//   "NO_RESERVATION"
33965	//   "SPECIFIC_RESERVATION"
33966	//   "SPECIFIC_THEN_ANY_RESERVATION"
33967	//   "UNSPECIFIED"
33968	ConsumeReservationType string `json:"consumeReservationType,omitempty"`
33969
33970	// Key: Corresponds to the label key of a reservation resource. To
33971	// target a SPECIFIC_RESERVATION by name, specify
33972	// googleapis.com/reservation-name as the key and specify the name of
33973	// your reservation as its value.
33974	Key string `json:"key,omitempty"`
33975
33976	// Values: Corresponds to the label values of a reservation resource.
33977	Values []string `json:"values,omitempty"`
33978
33979	// ForceSendFields is a list of field names (e.g.
33980	// "ConsumeReservationType") to unconditionally include in API requests.
33981	// By default, fields with empty values are omitted from API requests.
33982	// However, any non-pointer, non-interface field appearing in
33983	// ForceSendFields will be sent to the server regardless of whether the
33984	// field is empty or not. This may be used to include empty fields in
33985	// Patch requests.
33986	ForceSendFields []string `json:"-"`
33987
33988	// NullFields is a list of field names (e.g. "ConsumeReservationType")
33989	// to include in API requests with the JSON null value. By default,
33990	// fields with empty values are omitted from API requests. However, any
33991	// field with an empty value appearing in NullFields will be sent to the
33992	// server as null. It is an error if a field in this list has a
33993	// non-empty value. This may be used to include null fields in Patch
33994	// requests.
33995	NullFields []string `json:"-"`
33996}
33997
33998func (s *ReservationAffinity) MarshalJSON() ([]byte, error) {
33999	type NoMethod ReservationAffinity
34000	raw := NoMethod(*s)
34001	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34002}
34003
34004// ReservationAggregatedList: Contains a list of reservations.
34005type ReservationAggregatedList struct {
34006	// Id: [Output Only] Unique identifier for the resource; defined by the
34007	// server.
34008	Id string `json:"id,omitempty"`
34009
34010	// Items: A list of Allocation resources.
34011	Items map[string]ReservationsScopedList `json:"items,omitempty"`
34012
34013	// Kind: Type of resource.
34014	Kind string `json:"kind,omitempty"`
34015
34016	// NextPageToken: [Output Only] This token allows you to get the next
34017	// page of results for list requests. If the number of results is larger
34018	// than maxResults, use the nextPageToken as a value for the query
34019	// parameter pageToken in the next list request. Subsequent list
34020	// requests will have their own nextPageToken to continue paging through
34021	// the results.
34022	NextPageToken string `json:"nextPageToken,omitempty"`
34023
34024	// SelfLink: [Output Only] Server-defined URL for this resource.
34025	SelfLink string `json:"selfLink,omitempty"`
34026
34027	// Unreachables: [Output Only] Unreachable resources.
34028	Unreachables []string `json:"unreachables,omitempty"`
34029
34030	// Warning: [Output Only] Informational warning message.
34031	Warning *ReservationAggregatedListWarning `json:"warning,omitempty"`
34032
34033	// ServerResponse contains the HTTP response code and headers from the
34034	// server.
34035	googleapi.ServerResponse `json:"-"`
34036
34037	// ForceSendFields is a list of field names (e.g. "Id") to
34038	// unconditionally include in API requests. By default, fields with
34039	// empty values are omitted from API requests. However, any non-pointer,
34040	// non-interface field appearing in ForceSendFields will be sent to the
34041	// server regardless of whether the field is empty or not. This may be
34042	// used to include empty fields in Patch requests.
34043	ForceSendFields []string `json:"-"`
34044
34045	// NullFields is a list of field names (e.g. "Id") to include in API
34046	// requests with the JSON null value. By default, fields with empty
34047	// values are omitted from API requests. However, any field with an
34048	// empty value appearing in NullFields will be sent to the server as
34049	// null. It is an error if a field in this list has a non-empty value.
34050	// This may be used to include null fields in Patch requests.
34051	NullFields []string `json:"-"`
34052}
34053
34054func (s *ReservationAggregatedList) MarshalJSON() ([]byte, error) {
34055	type NoMethod ReservationAggregatedList
34056	raw := NoMethod(*s)
34057	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34058}
34059
34060// ReservationAggregatedListWarning: [Output Only] Informational warning
34061// message.
34062type ReservationAggregatedListWarning struct {
34063	// Code: [Output Only] A warning code, if applicable. For example,
34064	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
34065	// the response.
34066	//
34067	// Possible values:
34068	//   "CLEANUP_FAILED"
34069	//   "DEPRECATED_RESOURCE_USED"
34070	//   "DEPRECATED_TYPE_USED"
34071	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
34072	//   "EXPERIMENTAL_TYPE_USED"
34073	//   "EXTERNAL_API_WARNING"
34074	//   "FIELD_VALUE_OVERRIDEN"
34075	//   "INJECTED_KERNELS_DEPRECATED"
34076	//   "LARGE_DEPLOYMENT_WARNING"
34077	//   "MISSING_TYPE_DEPENDENCY"
34078	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
34079	//   "NEXT_HOP_CANNOT_IP_FORWARD"
34080	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
34081	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
34082	//   "NEXT_HOP_NOT_RUNNING"
34083	//   "NOT_CRITICAL_ERROR"
34084	//   "NO_RESULTS_ON_PAGE"
34085	//   "PARTIAL_SUCCESS"
34086	//   "REQUIRED_TOS_AGREEMENT"
34087	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
34088	//   "RESOURCE_NOT_DELETED"
34089	//   "SCHEMA_VALIDATION_IGNORED"
34090	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
34091	//   "UNDECLARED_PROPERTIES"
34092	//   "UNREACHABLE"
34093	Code string `json:"code,omitempty"`
34094
34095	// Data: [Output Only] Metadata about this warning in key: value format.
34096	// For example:
34097	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
34098	Data []*ReservationAggregatedListWarningData `json:"data,omitempty"`
34099
34100	// Message: [Output Only] A human-readable description of the warning
34101	// code.
34102	Message string `json:"message,omitempty"`
34103
34104	// ForceSendFields is a list of field names (e.g. "Code") to
34105	// unconditionally include in API requests. By default, fields with
34106	// empty values are omitted from API requests. However, any non-pointer,
34107	// non-interface field appearing in ForceSendFields will be sent to the
34108	// server regardless of whether the field is empty or not. This may be
34109	// used to include empty fields in Patch requests.
34110	ForceSendFields []string `json:"-"`
34111
34112	// NullFields is a list of field names (e.g. "Code") to include in API
34113	// requests with the JSON null value. By default, fields with empty
34114	// values are omitted from API requests. However, any field with an
34115	// empty value appearing in NullFields will be sent to the server as
34116	// null. It is an error if a field in this list has a non-empty value.
34117	// This may be used to include null fields in Patch requests.
34118	NullFields []string `json:"-"`
34119}
34120
34121func (s *ReservationAggregatedListWarning) MarshalJSON() ([]byte, error) {
34122	type NoMethod ReservationAggregatedListWarning
34123	raw := NoMethod(*s)
34124	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34125}
34126
34127type ReservationAggregatedListWarningData struct {
34128	// Key: [Output Only] A key that provides more detail on the warning
34129	// being returned. For example, for warnings where there are no results
34130	// in a list request for a particular zone, this key might be scope and
34131	// the key value might be the zone name. Other examples might be a key
34132	// indicating a deprecated resource and a suggested replacement, or a
34133	// warning about invalid network settings (for example, if an instance
34134	// attempts to perform IP forwarding but is not enabled for IP
34135	// forwarding).
34136	Key string `json:"key,omitempty"`
34137
34138	// Value: [Output Only] A warning data value corresponding to the key.
34139	Value string `json:"value,omitempty"`
34140
34141	// ForceSendFields is a list of field names (e.g. "Key") to
34142	// unconditionally include in API requests. By default, fields with
34143	// empty values are omitted from API requests. However, any non-pointer,
34144	// non-interface field appearing in ForceSendFields will be sent to the
34145	// server regardless of whether the field is empty or not. This may be
34146	// used to include empty fields in Patch requests.
34147	ForceSendFields []string `json:"-"`
34148
34149	// NullFields is a list of field names (e.g. "Key") to include in API
34150	// requests with the JSON null value. By default, fields with empty
34151	// values are omitted from API requests. However, any field with an
34152	// empty value appearing in NullFields will be sent to the server as
34153	// null. It is an error if a field in this list has a non-empty value.
34154	// This may be used to include null fields in Patch requests.
34155	NullFields []string `json:"-"`
34156}
34157
34158func (s *ReservationAggregatedListWarningData) MarshalJSON() ([]byte, error) {
34159	type NoMethod ReservationAggregatedListWarningData
34160	raw := NoMethod(*s)
34161	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34162}
34163
34164type ReservationList struct {
34165	// Id: [Output Only] The unique identifier for the resource. This
34166	// identifier is defined by the server.
34167	Id string `json:"id,omitempty"`
34168
34169	// Items: [Output Only] A list of Allocation resources.
34170	Items []*Reservation `json:"items,omitempty"`
34171
34172	// Kind: [Output Only] Type of resource.Always compute#reservationsList
34173	// for listsof reservations
34174	Kind string `json:"kind,omitempty"`
34175
34176	// NextPageToken: [Output Only] This token allows you to get the next
34177	// page of results for list requests. If the number of results is larger
34178	// than maxResults, use the nextPageToken as a value for the query
34179	// parameter pageToken in the next list request. Subsequent list
34180	// requests will have their own nextPageToken to continue paging through
34181	// the results.
34182	NextPageToken string `json:"nextPageToken,omitempty"`
34183
34184	// SelfLink: [Output Only] Server-defined URL for this resource.
34185	SelfLink string `json:"selfLink,omitempty"`
34186
34187	// Warning: [Output Only] Informational warning message.
34188	Warning *ReservationListWarning `json:"warning,omitempty"`
34189
34190	// ServerResponse contains the HTTP response code and headers from the
34191	// server.
34192	googleapi.ServerResponse `json:"-"`
34193
34194	// ForceSendFields is a list of field names (e.g. "Id") to
34195	// unconditionally include in API requests. By default, fields with
34196	// empty values are omitted from API requests. However, any non-pointer,
34197	// non-interface field appearing in ForceSendFields will be sent to the
34198	// server regardless of whether the field is empty or not. This may be
34199	// used to include empty fields in Patch requests.
34200	ForceSendFields []string `json:"-"`
34201
34202	// NullFields is a list of field names (e.g. "Id") to include in API
34203	// requests with the JSON null value. By default, fields with empty
34204	// values are omitted from API requests. However, any field with an
34205	// empty value appearing in NullFields will be sent to the server as
34206	// null. It is an error if a field in this list has a non-empty value.
34207	// This may be used to include null fields in Patch requests.
34208	NullFields []string `json:"-"`
34209}
34210
34211func (s *ReservationList) MarshalJSON() ([]byte, error) {
34212	type NoMethod ReservationList
34213	raw := NoMethod(*s)
34214	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34215}
34216
34217// ReservationListWarning: [Output Only] Informational warning message.
34218type ReservationListWarning struct {
34219	// Code: [Output Only] A warning code, if applicable. For example,
34220	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
34221	// the response.
34222	//
34223	// Possible values:
34224	//   "CLEANUP_FAILED"
34225	//   "DEPRECATED_RESOURCE_USED"
34226	//   "DEPRECATED_TYPE_USED"
34227	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
34228	//   "EXPERIMENTAL_TYPE_USED"
34229	//   "EXTERNAL_API_WARNING"
34230	//   "FIELD_VALUE_OVERRIDEN"
34231	//   "INJECTED_KERNELS_DEPRECATED"
34232	//   "LARGE_DEPLOYMENT_WARNING"
34233	//   "MISSING_TYPE_DEPENDENCY"
34234	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
34235	//   "NEXT_HOP_CANNOT_IP_FORWARD"
34236	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
34237	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
34238	//   "NEXT_HOP_NOT_RUNNING"
34239	//   "NOT_CRITICAL_ERROR"
34240	//   "NO_RESULTS_ON_PAGE"
34241	//   "PARTIAL_SUCCESS"
34242	//   "REQUIRED_TOS_AGREEMENT"
34243	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
34244	//   "RESOURCE_NOT_DELETED"
34245	//   "SCHEMA_VALIDATION_IGNORED"
34246	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
34247	//   "UNDECLARED_PROPERTIES"
34248	//   "UNREACHABLE"
34249	Code string `json:"code,omitempty"`
34250
34251	// Data: [Output Only] Metadata about this warning in key: value format.
34252	// For example:
34253	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
34254	Data []*ReservationListWarningData `json:"data,omitempty"`
34255
34256	// Message: [Output Only] A human-readable description of the warning
34257	// code.
34258	Message string `json:"message,omitempty"`
34259
34260	// ForceSendFields is a list of field names (e.g. "Code") to
34261	// unconditionally include in API requests. By default, fields with
34262	// empty values are omitted from API requests. However, any non-pointer,
34263	// non-interface field appearing in ForceSendFields will be sent to the
34264	// server regardless of whether the field is empty or not. This may be
34265	// used to include empty fields in Patch requests.
34266	ForceSendFields []string `json:"-"`
34267
34268	// NullFields is a list of field names (e.g. "Code") to include in API
34269	// requests with the JSON null value. By default, fields with empty
34270	// values are omitted from API requests. However, any field with an
34271	// empty value appearing in NullFields will be sent to the server as
34272	// null. It is an error if a field in this list has a non-empty value.
34273	// This may be used to include null fields in Patch requests.
34274	NullFields []string `json:"-"`
34275}
34276
34277func (s *ReservationListWarning) MarshalJSON() ([]byte, error) {
34278	type NoMethod ReservationListWarning
34279	raw := NoMethod(*s)
34280	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34281}
34282
34283type ReservationListWarningData struct {
34284	// Key: [Output Only] A key that provides more detail on the warning
34285	// being returned. For example, for warnings where there are no results
34286	// in a list request for a particular zone, this key might be scope and
34287	// the key value might be the zone name. Other examples might be a key
34288	// indicating a deprecated resource and a suggested replacement, or a
34289	// warning about invalid network settings (for example, if an instance
34290	// attempts to perform IP forwarding but is not enabled for IP
34291	// forwarding).
34292	Key string `json:"key,omitempty"`
34293
34294	// Value: [Output Only] A warning data value corresponding to the key.
34295	Value string `json:"value,omitempty"`
34296
34297	// ForceSendFields is a list of field names (e.g. "Key") to
34298	// unconditionally include in API requests. By default, fields with
34299	// empty values are omitted from API requests. However, any non-pointer,
34300	// non-interface field appearing in ForceSendFields will be sent to the
34301	// server regardless of whether the field is empty or not. This may be
34302	// used to include empty fields in Patch requests.
34303	ForceSendFields []string `json:"-"`
34304
34305	// NullFields is a list of field names (e.g. "Key") to include in API
34306	// requests with the JSON null value. By default, fields with empty
34307	// values are omitted from API requests. However, any field with an
34308	// empty value appearing in NullFields will be sent to the server as
34309	// null. It is an error if a field in this list has a non-empty value.
34310	// This may be used to include null fields in Patch requests.
34311	NullFields []string `json:"-"`
34312}
34313
34314func (s *ReservationListWarningData) MarshalJSON() ([]byte, error) {
34315	type NoMethod ReservationListWarningData
34316	raw := NoMethod(*s)
34317	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34318}
34319
34320type ReservationsResizeRequest struct {
34321	// SpecificSkuCount: Number of allocated resources can be resized with
34322	// minimum = 1 and maximum = 1000.
34323	SpecificSkuCount int64 `json:"specificSkuCount,omitempty,string"`
34324
34325	// ForceSendFields is a list of field names (e.g. "SpecificSkuCount") to
34326	// unconditionally include in API requests. By default, fields with
34327	// empty values are omitted from API requests. However, any non-pointer,
34328	// non-interface field appearing in ForceSendFields will be sent to the
34329	// server regardless of whether the field is empty or not. This may be
34330	// used to include empty fields in Patch requests.
34331	ForceSendFields []string `json:"-"`
34332
34333	// NullFields is a list of field names (e.g. "SpecificSkuCount") to
34334	// include in API requests with the JSON null value. By default, fields
34335	// with empty values are omitted from API requests. However, any field
34336	// with an empty value appearing in NullFields will be sent to the
34337	// server as null. It is an error if a field in this list has a
34338	// non-empty value. This may be used to include null fields in Patch
34339	// requests.
34340	NullFields []string `json:"-"`
34341}
34342
34343func (s *ReservationsResizeRequest) MarshalJSON() ([]byte, error) {
34344	type NoMethod ReservationsResizeRequest
34345	raw := NoMethod(*s)
34346	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34347}
34348
34349type ReservationsScopedList struct {
34350	// Reservations: A list of reservations contained in this scope.
34351	Reservations []*Reservation `json:"reservations,omitempty"`
34352
34353	// Warning: Informational warning which replaces the list of
34354	// reservations when the list is empty.
34355	Warning *ReservationsScopedListWarning `json:"warning,omitempty"`
34356
34357	// ForceSendFields is a list of field names (e.g. "Reservations") to
34358	// unconditionally include in API requests. By default, fields with
34359	// empty values are omitted from API requests. However, any non-pointer,
34360	// non-interface field appearing in ForceSendFields will be sent to the
34361	// server regardless of whether the field is empty or not. This may be
34362	// used to include empty fields in Patch requests.
34363	ForceSendFields []string `json:"-"`
34364
34365	// NullFields is a list of field names (e.g. "Reservations") to include
34366	// in API requests with the JSON null value. By default, fields with
34367	// empty values are omitted from API requests. However, any field with
34368	// an empty value appearing in NullFields will be sent to the server as
34369	// null. It is an error if a field in this list has a non-empty value.
34370	// This may be used to include null fields in Patch requests.
34371	NullFields []string `json:"-"`
34372}
34373
34374func (s *ReservationsScopedList) MarshalJSON() ([]byte, error) {
34375	type NoMethod ReservationsScopedList
34376	raw := NoMethod(*s)
34377	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34378}
34379
34380// ReservationsScopedListWarning: Informational warning which replaces
34381// the list of reservations when the list is empty.
34382type ReservationsScopedListWarning struct {
34383	// Code: [Output Only] A warning code, if applicable. For example,
34384	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
34385	// the response.
34386	//
34387	// Possible values:
34388	//   "CLEANUP_FAILED"
34389	//   "DEPRECATED_RESOURCE_USED"
34390	//   "DEPRECATED_TYPE_USED"
34391	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
34392	//   "EXPERIMENTAL_TYPE_USED"
34393	//   "EXTERNAL_API_WARNING"
34394	//   "FIELD_VALUE_OVERRIDEN"
34395	//   "INJECTED_KERNELS_DEPRECATED"
34396	//   "LARGE_DEPLOYMENT_WARNING"
34397	//   "MISSING_TYPE_DEPENDENCY"
34398	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
34399	//   "NEXT_HOP_CANNOT_IP_FORWARD"
34400	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
34401	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
34402	//   "NEXT_HOP_NOT_RUNNING"
34403	//   "NOT_CRITICAL_ERROR"
34404	//   "NO_RESULTS_ON_PAGE"
34405	//   "PARTIAL_SUCCESS"
34406	//   "REQUIRED_TOS_AGREEMENT"
34407	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
34408	//   "RESOURCE_NOT_DELETED"
34409	//   "SCHEMA_VALIDATION_IGNORED"
34410	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
34411	//   "UNDECLARED_PROPERTIES"
34412	//   "UNREACHABLE"
34413	Code string `json:"code,omitempty"`
34414
34415	// Data: [Output Only] Metadata about this warning in key: value format.
34416	// For example:
34417	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
34418	Data []*ReservationsScopedListWarningData `json:"data,omitempty"`
34419
34420	// Message: [Output Only] A human-readable description of the warning
34421	// code.
34422	Message string `json:"message,omitempty"`
34423
34424	// ForceSendFields is a list of field names (e.g. "Code") to
34425	// unconditionally include in API requests. By default, fields with
34426	// empty values are omitted from API requests. However, any non-pointer,
34427	// non-interface field appearing in ForceSendFields will be sent to the
34428	// server regardless of whether the field is empty or not. This may be
34429	// used to include empty fields in Patch requests.
34430	ForceSendFields []string `json:"-"`
34431
34432	// NullFields is a list of field names (e.g. "Code") to include in API
34433	// requests with the JSON null value. By default, fields with empty
34434	// values are omitted from API requests. However, any field with an
34435	// empty value appearing in NullFields will be sent to the server as
34436	// null. It is an error if a field in this list has a non-empty value.
34437	// This may be used to include null fields in Patch requests.
34438	NullFields []string `json:"-"`
34439}
34440
34441func (s *ReservationsScopedListWarning) MarshalJSON() ([]byte, error) {
34442	type NoMethod ReservationsScopedListWarning
34443	raw := NoMethod(*s)
34444	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34445}
34446
34447type ReservationsScopedListWarningData struct {
34448	// Key: [Output Only] A key that provides more detail on the warning
34449	// being returned. For example, for warnings where there are no results
34450	// in a list request for a particular zone, this key might be scope and
34451	// the key value might be the zone name. Other examples might be a key
34452	// indicating a deprecated resource and a suggested replacement, or a
34453	// warning about invalid network settings (for example, if an instance
34454	// attempts to perform IP forwarding but is not enabled for IP
34455	// forwarding).
34456	Key string `json:"key,omitempty"`
34457
34458	// Value: [Output Only] A warning data value corresponding to the key.
34459	Value string `json:"value,omitempty"`
34460
34461	// ForceSendFields is a list of field names (e.g. "Key") to
34462	// unconditionally include in API requests. By default, fields with
34463	// empty values are omitted from API requests. However, any non-pointer,
34464	// non-interface field appearing in ForceSendFields will be sent to the
34465	// server regardless of whether the field is empty or not. This may be
34466	// used to include empty fields in Patch requests.
34467	ForceSendFields []string `json:"-"`
34468
34469	// NullFields is a list of field names (e.g. "Key") to include in API
34470	// requests with the JSON null value. By default, fields with empty
34471	// values are omitted from API requests. However, any field with an
34472	// empty value appearing in NullFields will be sent to the server as
34473	// null. It is an error if a field in this list has a non-empty value.
34474	// This may be used to include null fields in Patch requests.
34475	NullFields []string `json:"-"`
34476}
34477
34478func (s *ReservationsScopedListWarningData) MarshalJSON() ([]byte, error) {
34479	type NoMethod ReservationsScopedListWarningData
34480	raw := NoMethod(*s)
34481	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34482}
34483
34484// ResourceCommitment: Commitment for a particular resource (a
34485// Commitment is composed of one or more of these).
34486type ResourceCommitment struct {
34487	// AcceleratorType: Name of the accelerator type resource. Applicable
34488	// only when the type is ACCELERATOR.
34489	AcceleratorType string `json:"acceleratorType,omitempty"`
34490
34491	// Amount: The amount of the resource purchased (in a type-dependent
34492	// unit, such as bytes). For vCPUs, this can just be an integer. For
34493	// memory, this must be provided in MB. Memory must be a multiple of 256
34494	// MB, with up to 6.5GB of memory per every vCPU.
34495	Amount int64 `json:"amount,omitempty,string"`
34496
34497	// Type: Type of resource for which this commitment applies. Possible
34498	// values are VCPU and MEMORY
34499	//
34500	// Possible values:
34501	//   "ACCELERATOR"
34502	//   "LOCAL_SSD"
34503	//   "MEMORY"
34504	//   "UNSPECIFIED"
34505	//   "VCPU"
34506	Type string `json:"type,omitempty"`
34507
34508	// ForceSendFields is a list of field names (e.g. "AcceleratorType") to
34509	// unconditionally include in API requests. By default, fields with
34510	// empty values are omitted from API requests. However, any non-pointer,
34511	// non-interface field appearing in ForceSendFields will be sent to the
34512	// server regardless of whether the field is empty or not. This may be
34513	// used to include empty fields in Patch requests.
34514	ForceSendFields []string `json:"-"`
34515
34516	// NullFields is a list of field names (e.g. "AcceleratorType") to
34517	// include in API requests with the JSON null value. By default, fields
34518	// with empty values are omitted from API requests. However, any field
34519	// with an empty value appearing in NullFields will be sent to the
34520	// server as null. It is an error if a field in this list has a
34521	// non-empty value. This may be used to include null fields in Patch
34522	// requests.
34523	NullFields []string `json:"-"`
34524}
34525
34526func (s *ResourceCommitment) MarshalJSON() ([]byte, error) {
34527	type NoMethod ResourceCommitment
34528	raw := NoMethod(*s)
34529	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34530}
34531
34532type ResourceGroupReference struct {
34533	// Group: A URI referencing one of the instance groups or network
34534	// endpoint groups listed in the backend service.
34535	Group string `json:"group,omitempty"`
34536
34537	// ForceSendFields is a list of field names (e.g. "Group") to
34538	// unconditionally include in API requests. By default, fields with
34539	// empty values are omitted from API requests. However, any non-pointer,
34540	// non-interface field appearing in ForceSendFields will be sent to the
34541	// server regardless of whether the field is empty or not. This may be
34542	// used to include empty fields in Patch requests.
34543	ForceSendFields []string `json:"-"`
34544
34545	// NullFields is a list of field names (e.g. "Group") to include in API
34546	// requests with the JSON null value. By default, fields with empty
34547	// values are omitted from API requests. However, any field with an
34548	// empty value appearing in NullFields will be sent to the server as
34549	// null. It is an error if a field in this list has a non-empty value.
34550	// This may be used to include null fields in Patch requests.
34551	NullFields []string `json:"-"`
34552}
34553
34554func (s *ResourceGroupReference) MarshalJSON() ([]byte, error) {
34555	type NoMethod ResourceGroupReference
34556	raw := NoMethod(*s)
34557	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34558}
34559
34560type ResourcePoliciesScopedList struct {
34561	// ResourcePolicies: A list of resourcePolicies contained in this scope.
34562	ResourcePolicies []*ResourcePolicy `json:"resourcePolicies,omitempty"`
34563
34564	// Warning: Informational warning which replaces the list of
34565	// resourcePolicies when the list is empty.
34566	Warning *ResourcePoliciesScopedListWarning `json:"warning,omitempty"`
34567
34568	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
34569	// unconditionally include in API requests. By default, fields with
34570	// empty values are omitted from API requests. However, any non-pointer,
34571	// non-interface field appearing in ForceSendFields will be sent to the
34572	// server regardless of whether the field is empty or not. This may be
34573	// used to include empty fields in Patch requests.
34574	ForceSendFields []string `json:"-"`
34575
34576	// NullFields is a list of field names (e.g. "ResourcePolicies") to
34577	// include in API requests with the JSON null value. By default, fields
34578	// with empty values are omitted from API requests. However, any field
34579	// with an empty value appearing in NullFields will be sent to the
34580	// server as null. It is an error if a field in this list has a
34581	// non-empty value. This may be used to include null fields in Patch
34582	// requests.
34583	NullFields []string `json:"-"`
34584}
34585
34586func (s *ResourcePoliciesScopedList) MarshalJSON() ([]byte, error) {
34587	type NoMethod ResourcePoliciesScopedList
34588	raw := NoMethod(*s)
34589	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34590}
34591
34592// ResourcePoliciesScopedListWarning: Informational warning which
34593// replaces the list of resourcePolicies when the list is empty.
34594type ResourcePoliciesScopedListWarning struct {
34595	// Code: [Output Only] A warning code, if applicable. For example,
34596	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
34597	// the response.
34598	//
34599	// Possible values:
34600	//   "CLEANUP_FAILED"
34601	//   "DEPRECATED_RESOURCE_USED"
34602	//   "DEPRECATED_TYPE_USED"
34603	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
34604	//   "EXPERIMENTAL_TYPE_USED"
34605	//   "EXTERNAL_API_WARNING"
34606	//   "FIELD_VALUE_OVERRIDEN"
34607	//   "INJECTED_KERNELS_DEPRECATED"
34608	//   "LARGE_DEPLOYMENT_WARNING"
34609	//   "MISSING_TYPE_DEPENDENCY"
34610	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
34611	//   "NEXT_HOP_CANNOT_IP_FORWARD"
34612	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
34613	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
34614	//   "NEXT_HOP_NOT_RUNNING"
34615	//   "NOT_CRITICAL_ERROR"
34616	//   "NO_RESULTS_ON_PAGE"
34617	//   "PARTIAL_SUCCESS"
34618	//   "REQUIRED_TOS_AGREEMENT"
34619	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
34620	//   "RESOURCE_NOT_DELETED"
34621	//   "SCHEMA_VALIDATION_IGNORED"
34622	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
34623	//   "UNDECLARED_PROPERTIES"
34624	//   "UNREACHABLE"
34625	Code string `json:"code,omitempty"`
34626
34627	// Data: [Output Only] Metadata about this warning in key: value format.
34628	// For example:
34629	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
34630	Data []*ResourcePoliciesScopedListWarningData `json:"data,omitempty"`
34631
34632	// Message: [Output Only] A human-readable description of the warning
34633	// code.
34634	Message string `json:"message,omitempty"`
34635
34636	// ForceSendFields is a list of field names (e.g. "Code") to
34637	// unconditionally include in API requests. By default, fields with
34638	// empty values are omitted from API requests. However, any non-pointer,
34639	// non-interface field appearing in ForceSendFields will be sent to the
34640	// server regardless of whether the field is empty or not. This may be
34641	// used to include empty fields in Patch requests.
34642	ForceSendFields []string `json:"-"`
34643
34644	// NullFields is a list of field names (e.g. "Code") to include in API
34645	// requests with the JSON null value. By default, fields with empty
34646	// values are omitted from API requests. However, any field with an
34647	// empty value appearing in NullFields will be sent to the server as
34648	// null. It is an error if a field in this list has a non-empty value.
34649	// This may be used to include null fields in Patch requests.
34650	NullFields []string `json:"-"`
34651}
34652
34653func (s *ResourcePoliciesScopedListWarning) MarshalJSON() ([]byte, error) {
34654	type NoMethod ResourcePoliciesScopedListWarning
34655	raw := NoMethod(*s)
34656	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34657}
34658
34659type ResourcePoliciesScopedListWarningData struct {
34660	// Key: [Output Only] A key that provides more detail on the warning
34661	// being returned. For example, for warnings where there are no results
34662	// in a list request for a particular zone, this key might be scope and
34663	// the key value might be the zone name. Other examples might be a key
34664	// indicating a deprecated resource and a suggested replacement, or a
34665	// warning about invalid network settings (for example, if an instance
34666	// attempts to perform IP forwarding but is not enabled for IP
34667	// forwarding).
34668	Key string `json:"key,omitempty"`
34669
34670	// Value: [Output Only] A warning data value corresponding to the key.
34671	Value string `json:"value,omitempty"`
34672
34673	// ForceSendFields is a list of field names (e.g. "Key") to
34674	// unconditionally include in API requests. By default, fields with
34675	// empty values are omitted from API requests. However, any non-pointer,
34676	// non-interface field appearing in ForceSendFields will be sent to the
34677	// server regardless of whether the field is empty or not. This may be
34678	// used to include empty fields in Patch requests.
34679	ForceSendFields []string `json:"-"`
34680
34681	// NullFields is a list of field names (e.g. "Key") to include in API
34682	// requests with the JSON null value. By default, fields with empty
34683	// values are omitted from API requests. However, any field with an
34684	// empty value appearing in NullFields will be sent to the server as
34685	// null. It is an error if a field in this list has a non-empty value.
34686	// This may be used to include null fields in Patch requests.
34687	NullFields []string `json:"-"`
34688}
34689
34690func (s *ResourcePoliciesScopedListWarningData) MarshalJSON() ([]byte, error) {
34691	type NoMethod ResourcePoliciesScopedListWarningData
34692	raw := NoMethod(*s)
34693	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34694}
34695
34696// ResourcePolicy: Represents a Resource Policy resource. You can use
34697// resource policies to schedule actions for some Compute Engine
34698// resources. For example, you can use them to schedule persistent disk
34699// snapshots.
34700//
34701// (== resource_for {$api_version}.resourcePolicies ==)
34702type ResourcePolicy struct {
34703	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
34704	// format.
34705	CreationTimestamp string `json:"creationTimestamp,omitempty"`
34706
34707	Description string `json:"description,omitempty"`
34708
34709	// GroupPlacementPolicy: Resource policy for instances for placement
34710	// configuration.
34711	GroupPlacementPolicy *ResourcePolicyGroupPlacementPolicy `json:"groupPlacementPolicy,omitempty"`
34712
34713	// Id: [Output Only] The unique identifier for the resource. This
34714	// identifier is defined by the server.
34715	Id uint64 `json:"id,omitempty,string"`
34716
34717	// InstanceSchedulePolicy: Resource policy for scheduling instance
34718	// operations.
34719	InstanceSchedulePolicy *ResourcePolicyInstanceSchedulePolicy `json:"instanceSchedulePolicy,omitempty"`
34720
34721	// Kind: [Output Only] Type of the resource. Always
34722	// compute#resource_policies for resource policies.
34723	Kind string `json:"kind,omitempty"`
34724
34725	// Name: The name of the resource, provided by the client when initially
34726	// creating the resource. The resource name must be 1-63 characters
34727	// long, and comply with RFC1035. Specifically, the name must be 1-63
34728	// characters long and match the regular expression
34729	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
34730	// a lowercase letter, and all following characters must be a dash,
34731	// lowercase letter, or digit, except the last character, which cannot
34732	// be a dash.
34733	Name string `json:"name,omitempty"`
34734
34735	Region string `json:"region,omitempty"`
34736
34737	// ResourceStatus: [Output Only] The system status of the resource
34738	// policy.
34739	ResourceStatus *ResourcePolicyResourceStatus `json:"resourceStatus,omitempty"`
34740
34741	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
34742	// resource.
34743	SelfLink string `json:"selfLink,omitempty"`
34744
34745	// SnapshotSchedulePolicy: Resource policy for persistent disks for
34746	// creating snapshots.
34747	SnapshotSchedulePolicy *ResourcePolicySnapshotSchedulePolicy `json:"snapshotSchedulePolicy,omitempty"`
34748
34749	// Status: [Output Only] The status of resource policy creation.
34750	//
34751	// Possible values:
34752	//   "CREATING"
34753	//   "DELETING"
34754	//   "EXPIRED"
34755	//   "INVALID"
34756	//   "READY"
34757	Status string `json:"status,omitempty"`
34758
34759	// ServerResponse contains the HTTP response code and headers from the
34760	// server.
34761	googleapi.ServerResponse `json:"-"`
34762
34763	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
34764	// to unconditionally include in API requests. By default, fields with
34765	// empty values are omitted from API requests. However, any non-pointer,
34766	// non-interface field appearing in ForceSendFields will be sent to the
34767	// server regardless of whether the field is empty or not. This may be
34768	// used to include empty fields in Patch requests.
34769	ForceSendFields []string `json:"-"`
34770
34771	// NullFields is a list of field names (e.g. "CreationTimestamp") to
34772	// include in API requests with the JSON null value. By default, fields
34773	// with empty values are omitted from API requests. However, any field
34774	// with an empty value appearing in NullFields will be sent to the
34775	// server as null. It is an error if a field in this list has a
34776	// non-empty value. This may be used to include null fields in Patch
34777	// requests.
34778	NullFields []string `json:"-"`
34779}
34780
34781func (s *ResourcePolicy) MarshalJSON() ([]byte, error) {
34782	type NoMethod ResourcePolicy
34783	raw := NoMethod(*s)
34784	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34785}
34786
34787// ResourcePolicyAggregatedList: Contains a list of resourcePolicies.
34788type ResourcePolicyAggregatedList struct {
34789	Etag string `json:"etag,omitempty"`
34790
34791	// Id: [Output Only] Unique identifier for the resource; defined by the
34792	// server.
34793	Id string `json:"id,omitempty"`
34794
34795	// Items: A list of ResourcePolicy resources.
34796	Items map[string]ResourcePoliciesScopedList `json:"items,omitempty"`
34797
34798	// Kind: Type of resource.
34799	Kind string `json:"kind,omitempty"`
34800
34801	// NextPageToken: [Output Only] This token allows you to get the next
34802	// page of results for list requests. If the number of results is larger
34803	// than maxResults, use the nextPageToken as a value for the query
34804	// parameter pageToken in the next list request. Subsequent list
34805	// requests will have their own nextPageToken to continue paging through
34806	// the results.
34807	NextPageToken string `json:"nextPageToken,omitempty"`
34808
34809	// SelfLink: [Output Only] Server-defined URL for this resource.
34810	SelfLink string `json:"selfLink,omitempty"`
34811
34812	// Unreachables: [Output Only] Unreachable resources.
34813	Unreachables []string `json:"unreachables,omitempty"`
34814
34815	// Warning: [Output Only] Informational warning message.
34816	Warning *ResourcePolicyAggregatedListWarning `json:"warning,omitempty"`
34817
34818	// ServerResponse contains the HTTP response code and headers from the
34819	// server.
34820	googleapi.ServerResponse `json:"-"`
34821
34822	// ForceSendFields is a list of field names (e.g. "Etag") to
34823	// unconditionally include in API requests. By default, fields with
34824	// empty values are omitted from API requests. However, any non-pointer,
34825	// non-interface field appearing in ForceSendFields will be sent to the
34826	// server regardless of whether the field is empty or not. This may be
34827	// used to include empty fields in Patch requests.
34828	ForceSendFields []string `json:"-"`
34829
34830	// NullFields is a list of field names (e.g. "Etag") to include in API
34831	// requests with the JSON null value. By default, fields with empty
34832	// values are omitted from API requests. However, any field with an
34833	// empty value appearing in NullFields will be sent to the server as
34834	// null. It is an error if a field in this list has a non-empty value.
34835	// This may be used to include null fields in Patch requests.
34836	NullFields []string `json:"-"`
34837}
34838
34839func (s *ResourcePolicyAggregatedList) MarshalJSON() ([]byte, error) {
34840	type NoMethod ResourcePolicyAggregatedList
34841	raw := NoMethod(*s)
34842	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34843}
34844
34845// ResourcePolicyAggregatedListWarning: [Output Only] Informational
34846// warning message.
34847type ResourcePolicyAggregatedListWarning struct {
34848	// Code: [Output Only] A warning code, if applicable. For example,
34849	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
34850	// the response.
34851	//
34852	// Possible values:
34853	//   "CLEANUP_FAILED"
34854	//   "DEPRECATED_RESOURCE_USED"
34855	//   "DEPRECATED_TYPE_USED"
34856	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
34857	//   "EXPERIMENTAL_TYPE_USED"
34858	//   "EXTERNAL_API_WARNING"
34859	//   "FIELD_VALUE_OVERRIDEN"
34860	//   "INJECTED_KERNELS_DEPRECATED"
34861	//   "LARGE_DEPLOYMENT_WARNING"
34862	//   "MISSING_TYPE_DEPENDENCY"
34863	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
34864	//   "NEXT_HOP_CANNOT_IP_FORWARD"
34865	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
34866	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
34867	//   "NEXT_HOP_NOT_RUNNING"
34868	//   "NOT_CRITICAL_ERROR"
34869	//   "NO_RESULTS_ON_PAGE"
34870	//   "PARTIAL_SUCCESS"
34871	//   "REQUIRED_TOS_AGREEMENT"
34872	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
34873	//   "RESOURCE_NOT_DELETED"
34874	//   "SCHEMA_VALIDATION_IGNORED"
34875	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
34876	//   "UNDECLARED_PROPERTIES"
34877	//   "UNREACHABLE"
34878	Code string `json:"code,omitempty"`
34879
34880	// Data: [Output Only] Metadata about this warning in key: value format.
34881	// For example:
34882	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
34883	Data []*ResourcePolicyAggregatedListWarningData `json:"data,omitempty"`
34884
34885	// Message: [Output Only] A human-readable description of the warning
34886	// code.
34887	Message string `json:"message,omitempty"`
34888
34889	// ForceSendFields is a list of field names (e.g. "Code") to
34890	// unconditionally include in API requests. By default, fields with
34891	// empty values are omitted from API requests. However, any non-pointer,
34892	// non-interface field appearing in ForceSendFields will be sent to the
34893	// server regardless of whether the field is empty or not. This may be
34894	// used to include empty fields in Patch requests.
34895	ForceSendFields []string `json:"-"`
34896
34897	// NullFields is a list of field names (e.g. "Code") to include in API
34898	// requests with the JSON null value. By default, fields with empty
34899	// values are omitted from API requests. However, any field with an
34900	// empty value appearing in NullFields will be sent to the server as
34901	// null. It is an error if a field in this list has a non-empty value.
34902	// This may be used to include null fields in Patch requests.
34903	NullFields []string `json:"-"`
34904}
34905
34906func (s *ResourcePolicyAggregatedListWarning) MarshalJSON() ([]byte, error) {
34907	type NoMethod ResourcePolicyAggregatedListWarning
34908	raw := NoMethod(*s)
34909	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34910}
34911
34912type ResourcePolicyAggregatedListWarningData struct {
34913	// Key: [Output Only] A key that provides more detail on the warning
34914	// being returned. For example, for warnings where there are no results
34915	// in a list request for a particular zone, this key might be scope and
34916	// the key value might be the zone name. Other examples might be a key
34917	// indicating a deprecated resource and a suggested replacement, or a
34918	// warning about invalid network settings (for example, if an instance
34919	// attempts to perform IP forwarding but is not enabled for IP
34920	// forwarding).
34921	Key string `json:"key,omitempty"`
34922
34923	// Value: [Output Only] A warning data value corresponding to the key.
34924	Value string `json:"value,omitempty"`
34925
34926	// ForceSendFields is a list of field names (e.g. "Key") to
34927	// unconditionally include in API requests. By default, fields with
34928	// empty values are omitted from API requests. However, any non-pointer,
34929	// non-interface field appearing in ForceSendFields will be sent to the
34930	// server regardless of whether the field is empty or not. This may be
34931	// used to include empty fields in Patch requests.
34932	ForceSendFields []string `json:"-"`
34933
34934	// NullFields is a list of field names (e.g. "Key") to include in API
34935	// requests with the JSON null value. By default, fields with empty
34936	// values are omitted from API requests. However, any field with an
34937	// empty value appearing in NullFields will be sent to the server as
34938	// null. It is an error if a field in this list has a non-empty value.
34939	// This may be used to include null fields in Patch requests.
34940	NullFields []string `json:"-"`
34941}
34942
34943func (s *ResourcePolicyAggregatedListWarningData) MarshalJSON() ([]byte, error) {
34944	type NoMethod ResourcePolicyAggregatedListWarningData
34945	raw := NoMethod(*s)
34946	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34947}
34948
34949// ResourcePolicyDailyCycle: Time window specified for daily operations.
34950type ResourcePolicyDailyCycle struct {
34951	// DaysInCycle: Defines a schedule with units measured in months. The
34952	// value determines how many months pass between the start of each
34953	// cycle.
34954	DaysInCycle int64 `json:"daysInCycle,omitempty"`
34955
34956	// Duration: [Output only] A predetermined duration for the window,
34957	// automatically chosen to be the smallest possible in the given
34958	// scenario.
34959	Duration string `json:"duration,omitempty"`
34960
34961	// StartTime: Start time of the window. This must be in UTC format that
34962	// resolves to one of 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For
34963	// example, both 13:00-5 and 08:00 are valid.
34964	StartTime string `json:"startTime,omitempty"`
34965
34966	// ForceSendFields is a list of field names (e.g. "DaysInCycle") to
34967	// unconditionally include in API requests. By default, fields with
34968	// empty values are omitted from API requests. However, any non-pointer,
34969	// non-interface field appearing in ForceSendFields will be sent to the
34970	// server regardless of whether the field is empty or not. This may be
34971	// used to include empty fields in Patch requests.
34972	ForceSendFields []string `json:"-"`
34973
34974	// NullFields is a list of field names (e.g. "DaysInCycle") to include
34975	// in API requests with the JSON null value. By default, fields with
34976	// empty values are omitted from API requests. However, any field with
34977	// an empty value appearing in NullFields will be sent to the server as
34978	// null. It is an error if a field in this list has a non-empty value.
34979	// This may be used to include null fields in Patch requests.
34980	NullFields []string `json:"-"`
34981}
34982
34983func (s *ResourcePolicyDailyCycle) MarshalJSON() ([]byte, error) {
34984	type NoMethod ResourcePolicyDailyCycle
34985	raw := NoMethod(*s)
34986	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34987}
34988
34989// ResourcePolicyGroupPlacementPolicy: A GroupPlacementPolicy specifies
34990// resource placement configuration. It specifies the failure bucket
34991// separation as well as network locality
34992type ResourcePolicyGroupPlacementPolicy struct {
34993	// AvailabilityDomainCount: The number of availability domains instances
34994	// will be spread across. If two instances are in different availability
34995	// domain, they will not be put in the same low latency network
34996	AvailabilityDomainCount int64 `json:"availabilityDomainCount,omitempty"`
34997
34998	// Collocation: Specifies network collocation
34999	//
35000	// Possible values:
35001	//   "COLLOCATED"
35002	//   "UNSPECIFIED_COLLOCATION"
35003	Collocation string `json:"collocation,omitempty"`
35004
35005	// VmCount: Number of vms in this placement group
35006	VmCount int64 `json:"vmCount,omitempty"`
35007
35008	// ForceSendFields is a list of field names (e.g.
35009	// "AvailabilityDomainCount") to unconditionally include in API
35010	// requests. By default, fields with empty values are omitted from API
35011	// requests. However, any non-pointer, non-interface field appearing in
35012	// ForceSendFields will be sent to the server regardless of whether the
35013	// field is empty or not. This may be used to include empty fields in
35014	// Patch requests.
35015	ForceSendFields []string `json:"-"`
35016
35017	// NullFields is a list of field names (e.g. "AvailabilityDomainCount")
35018	// to include in API requests with the JSON null value. By default,
35019	// fields with empty values are omitted from API requests. However, any
35020	// field with an empty value appearing in NullFields will be sent to the
35021	// server as null. It is an error if a field in this list has a
35022	// non-empty value. This may be used to include null fields in Patch
35023	// requests.
35024	NullFields []string `json:"-"`
35025}
35026
35027func (s *ResourcePolicyGroupPlacementPolicy) MarshalJSON() ([]byte, error) {
35028	type NoMethod ResourcePolicyGroupPlacementPolicy
35029	raw := NoMethod(*s)
35030	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35031}
35032
35033// ResourcePolicyHourlyCycle: Time window specified for hourly
35034// operations.
35035type ResourcePolicyHourlyCycle struct {
35036	// Duration: [Output only] Duration of the time window, automatically
35037	// chosen to be smallest possible in the given scenario.
35038	Duration string `json:"duration,omitempty"`
35039
35040	// HoursInCycle: Defines a schedule with units measured in hours. The
35041	// value determines how many hours pass between the start of each cycle.
35042	HoursInCycle int64 `json:"hoursInCycle,omitempty"`
35043
35044	// StartTime: Time within the window to start the operations. It must be
35045	// in format "HH:MM", where HH : [00-23] and MM : [00-00] GMT.
35046	StartTime string `json:"startTime,omitempty"`
35047
35048	// ForceSendFields is a list of field names (e.g. "Duration") to
35049	// unconditionally include in API requests. By default, fields with
35050	// empty values are omitted from API requests. However, any non-pointer,
35051	// non-interface field appearing in ForceSendFields will be sent to the
35052	// server regardless of whether the field is empty or not. This may be
35053	// used to include empty fields in Patch requests.
35054	ForceSendFields []string `json:"-"`
35055
35056	// NullFields is a list of field names (e.g. "Duration") to include in
35057	// API requests with the JSON null value. By default, fields with empty
35058	// values are omitted from API requests. However, any field with an
35059	// empty value appearing in NullFields will be sent to the server as
35060	// null. It is an error if a field in this list has a non-empty value.
35061	// This may be used to include null fields in Patch requests.
35062	NullFields []string `json:"-"`
35063}
35064
35065func (s *ResourcePolicyHourlyCycle) MarshalJSON() ([]byte, error) {
35066	type NoMethod ResourcePolicyHourlyCycle
35067	raw := NoMethod(*s)
35068	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35069}
35070
35071// ResourcePolicyInstanceSchedulePolicy: An InstanceSchedulePolicy
35072// specifies when and how frequent certain operations are performed on
35073// the instance.
35074type ResourcePolicyInstanceSchedulePolicy struct {
35075	// ExpirationTime: The expiration time of the schedule. The timestamp is
35076	// an RFC3339 string.
35077	ExpirationTime string `json:"expirationTime,omitempty"`
35078
35079	// StartTime: The start time of the schedule. The timestamp is an
35080	// RFC3339 string.
35081	StartTime string `json:"startTime,omitempty"`
35082
35083	// TimeZone: Specifies the time zone to be used in interpreting
35084	// Schedule.schedule. The value of this field must be a time zone name
35085	// from the tz database: http://en.wikipedia.org/wiki/Tz_database.
35086	TimeZone string `json:"timeZone,omitempty"`
35087
35088	// VmStartSchedule: Specifies the schedule for starting instances.
35089	VmStartSchedule *ResourcePolicyInstanceSchedulePolicySchedule `json:"vmStartSchedule,omitempty"`
35090
35091	// VmStopSchedule: Specifies the schedule for stopping instances.
35092	VmStopSchedule *ResourcePolicyInstanceSchedulePolicySchedule `json:"vmStopSchedule,omitempty"`
35093
35094	// ForceSendFields is a list of field names (e.g. "ExpirationTime") to
35095	// unconditionally include in API requests. By default, fields with
35096	// empty values are omitted from API requests. However, any non-pointer,
35097	// non-interface field appearing in ForceSendFields will be sent to the
35098	// server regardless of whether the field is empty or not. This may be
35099	// used to include empty fields in Patch requests.
35100	ForceSendFields []string `json:"-"`
35101
35102	// NullFields is a list of field names (e.g. "ExpirationTime") to
35103	// include in API requests with the JSON null value. By default, fields
35104	// with empty values are omitted from API requests. However, any field
35105	// with an empty value appearing in NullFields will be sent to the
35106	// server as null. It is an error if a field in this list has a
35107	// non-empty value. This may be used to include null fields in Patch
35108	// requests.
35109	NullFields []string `json:"-"`
35110}
35111
35112func (s *ResourcePolicyInstanceSchedulePolicy) MarshalJSON() ([]byte, error) {
35113	type NoMethod ResourcePolicyInstanceSchedulePolicy
35114	raw := NoMethod(*s)
35115	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35116}
35117
35118// ResourcePolicyInstanceSchedulePolicySchedule: Schedule for an
35119// instance operation.
35120type ResourcePolicyInstanceSchedulePolicySchedule struct {
35121	// Schedule: Specifies the frequency for the operation, using the
35122	// unix-cron format.
35123	Schedule string `json:"schedule,omitempty"`
35124
35125	// ForceSendFields is a list of field names (e.g. "Schedule") to
35126	// unconditionally include in API requests. By default, fields with
35127	// empty values are omitted from API requests. However, any non-pointer,
35128	// non-interface field appearing in ForceSendFields will be sent to the
35129	// server regardless of whether the field is empty or not. This may be
35130	// used to include empty fields in Patch requests.
35131	ForceSendFields []string `json:"-"`
35132
35133	// NullFields is a list of field names (e.g. "Schedule") to include in
35134	// API requests with the JSON null value. By default, fields with empty
35135	// values are omitted from API requests. However, any field with an
35136	// empty value appearing in NullFields will be sent to the server as
35137	// null. It is an error if a field in this list has a non-empty value.
35138	// This may be used to include null fields in Patch requests.
35139	NullFields []string `json:"-"`
35140}
35141
35142func (s *ResourcePolicyInstanceSchedulePolicySchedule) MarshalJSON() ([]byte, error) {
35143	type NoMethod ResourcePolicyInstanceSchedulePolicySchedule
35144	raw := NoMethod(*s)
35145	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35146}
35147
35148type ResourcePolicyList struct {
35149	Etag string `json:"etag,omitempty"`
35150
35151	// Id: [Output Only] The unique identifier for the resource. This
35152	// identifier is defined by the server.
35153	Id string `json:"id,omitempty"`
35154
35155	// Items: [Output Only] A list of ResourcePolicy resources.
35156	Items []*ResourcePolicy `json:"items,omitempty"`
35157
35158	// Kind: [Output Only] Type of resource.Always
35159	// compute#resourcePoliciesList for listsof resourcePolicies
35160	Kind string `json:"kind,omitempty"`
35161
35162	// NextPageToken: [Output Only] This token allows you to get the next
35163	// page of results for list requests. If the number of results is larger
35164	// than maxResults, use the nextPageToken as a value for the query
35165	// parameter pageToken in the next list request. Subsequent list
35166	// requests will have their own nextPageToken to continue paging through
35167	// the results.
35168	NextPageToken string `json:"nextPageToken,omitempty"`
35169
35170	// SelfLink: [Output Only] Server-defined URL for this resource.
35171	SelfLink string `json:"selfLink,omitempty"`
35172
35173	// Warning: [Output Only] Informational warning message.
35174	Warning *ResourcePolicyListWarning `json:"warning,omitempty"`
35175
35176	// ServerResponse contains the HTTP response code and headers from the
35177	// server.
35178	googleapi.ServerResponse `json:"-"`
35179
35180	// ForceSendFields is a list of field names (e.g. "Etag") to
35181	// unconditionally include in API requests. By default, fields with
35182	// empty values are omitted from API requests. However, any non-pointer,
35183	// non-interface field appearing in ForceSendFields will be sent to the
35184	// server regardless of whether the field is empty or not. This may be
35185	// used to include empty fields in Patch requests.
35186	ForceSendFields []string `json:"-"`
35187
35188	// NullFields is a list of field names (e.g. "Etag") to include in API
35189	// requests with the JSON null value. By default, fields with empty
35190	// values are omitted from API requests. However, any field with an
35191	// empty value appearing in NullFields will be sent to the server as
35192	// null. It is an error if a field in this list has a non-empty value.
35193	// This may be used to include null fields in Patch requests.
35194	NullFields []string `json:"-"`
35195}
35196
35197func (s *ResourcePolicyList) MarshalJSON() ([]byte, error) {
35198	type NoMethod ResourcePolicyList
35199	raw := NoMethod(*s)
35200	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35201}
35202
35203// ResourcePolicyListWarning: [Output Only] Informational warning
35204// message.
35205type ResourcePolicyListWarning struct {
35206	// Code: [Output Only] A warning code, if applicable. For example,
35207	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
35208	// the response.
35209	//
35210	// Possible values:
35211	//   "CLEANUP_FAILED"
35212	//   "DEPRECATED_RESOURCE_USED"
35213	//   "DEPRECATED_TYPE_USED"
35214	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
35215	//   "EXPERIMENTAL_TYPE_USED"
35216	//   "EXTERNAL_API_WARNING"
35217	//   "FIELD_VALUE_OVERRIDEN"
35218	//   "INJECTED_KERNELS_DEPRECATED"
35219	//   "LARGE_DEPLOYMENT_WARNING"
35220	//   "MISSING_TYPE_DEPENDENCY"
35221	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
35222	//   "NEXT_HOP_CANNOT_IP_FORWARD"
35223	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
35224	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
35225	//   "NEXT_HOP_NOT_RUNNING"
35226	//   "NOT_CRITICAL_ERROR"
35227	//   "NO_RESULTS_ON_PAGE"
35228	//   "PARTIAL_SUCCESS"
35229	//   "REQUIRED_TOS_AGREEMENT"
35230	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
35231	//   "RESOURCE_NOT_DELETED"
35232	//   "SCHEMA_VALIDATION_IGNORED"
35233	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
35234	//   "UNDECLARED_PROPERTIES"
35235	//   "UNREACHABLE"
35236	Code string `json:"code,omitempty"`
35237
35238	// Data: [Output Only] Metadata about this warning in key: value format.
35239	// For example:
35240	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
35241	Data []*ResourcePolicyListWarningData `json:"data,omitempty"`
35242
35243	// Message: [Output Only] A human-readable description of the warning
35244	// code.
35245	Message string `json:"message,omitempty"`
35246
35247	// ForceSendFields is a list of field names (e.g. "Code") to
35248	// unconditionally include in API requests. By default, fields with
35249	// empty values are omitted from API requests. However, any non-pointer,
35250	// non-interface field appearing in ForceSendFields will be sent to the
35251	// server regardless of whether the field is empty or not. This may be
35252	// used to include empty fields in Patch requests.
35253	ForceSendFields []string `json:"-"`
35254
35255	// NullFields is a list of field names (e.g. "Code") to include in API
35256	// requests with the JSON null value. By default, fields with empty
35257	// values are omitted from API requests. However, any field with an
35258	// empty value appearing in NullFields will be sent to the server as
35259	// null. It is an error if a field in this list has a non-empty value.
35260	// This may be used to include null fields in Patch requests.
35261	NullFields []string `json:"-"`
35262}
35263
35264func (s *ResourcePolicyListWarning) MarshalJSON() ([]byte, error) {
35265	type NoMethod ResourcePolicyListWarning
35266	raw := NoMethod(*s)
35267	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35268}
35269
35270type ResourcePolicyListWarningData struct {
35271	// Key: [Output Only] A key that provides more detail on the warning
35272	// being returned. For example, for warnings where there are no results
35273	// in a list request for a particular zone, this key might be scope and
35274	// the key value might be the zone name. Other examples might be a key
35275	// indicating a deprecated resource and a suggested replacement, or a
35276	// warning about invalid network settings (for example, if an instance
35277	// attempts to perform IP forwarding but is not enabled for IP
35278	// forwarding).
35279	Key string `json:"key,omitempty"`
35280
35281	// Value: [Output Only] A warning data value corresponding to the key.
35282	Value string `json:"value,omitempty"`
35283
35284	// ForceSendFields is a list of field names (e.g. "Key") to
35285	// unconditionally include in API requests. By default, fields with
35286	// empty values are omitted from API requests. However, any non-pointer,
35287	// non-interface field appearing in ForceSendFields will be sent to the
35288	// server regardless of whether the field is empty or not. This may be
35289	// used to include empty fields in Patch requests.
35290	ForceSendFields []string `json:"-"`
35291
35292	// NullFields is a list of field names (e.g. "Key") to include in API
35293	// requests with the JSON null value. By default, fields with empty
35294	// values are omitted from API requests. However, any field with an
35295	// empty value appearing in NullFields will be sent to the server as
35296	// null. It is an error if a field in this list has a non-empty value.
35297	// This may be used to include null fields in Patch requests.
35298	NullFields []string `json:"-"`
35299}
35300
35301func (s *ResourcePolicyListWarningData) MarshalJSON() ([]byte, error) {
35302	type NoMethod ResourcePolicyListWarningData
35303	raw := NoMethod(*s)
35304	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35305}
35306
35307// ResourcePolicyResourceStatus: Contains output only fields. Use this
35308// sub-message for all output fields set on ResourcePolicy. The internal
35309// structure of this "status" field should mimic the structure of
35310// ResourcePolicy proto specification.
35311type ResourcePolicyResourceStatus struct {
35312	// InstanceSchedulePolicy: [Output Only] Specifies a set of output
35313	// values reffering to the instance_schedule_policy system status. This
35314	// field should have the same name as corresponding policy field.
35315	InstanceSchedulePolicy *ResourcePolicyResourceStatusInstanceSchedulePolicyStatus `json:"instanceSchedulePolicy,omitempty"`
35316
35317	// ForceSendFields is a list of field names (e.g.
35318	// "InstanceSchedulePolicy") to unconditionally include in API requests.
35319	// By default, fields with empty values are omitted from API requests.
35320	// However, any non-pointer, non-interface field appearing in
35321	// ForceSendFields will be sent to the server regardless of whether the
35322	// field is empty or not. This may be used to include empty fields in
35323	// Patch requests.
35324	ForceSendFields []string `json:"-"`
35325
35326	// NullFields is a list of field names (e.g. "InstanceSchedulePolicy")
35327	// to include in API requests with the JSON null value. By default,
35328	// fields with empty values are omitted from API requests. However, any
35329	// field with an empty value appearing in NullFields will be sent to the
35330	// server as null. It is an error if a field in this list has a
35331	// non-empty value. This may be used to include null fields in Patch
35332	// requests.
35333	NullFields []string `json:"-"`
35334}
35335
35336func (s *ResourcePolicyResourceStatus) MarshalJSON() ([]byte, error) {
35337	type NoMethod ResourcePolicyResourceStatus
35338	raw := NoMethod(*s)
35339	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35340}
35341
35342type ResourcePolicyResourceStatusInstanceSchedulePolicyStatus struct {
35343	// LastRunStartTime: [Output Only] The last time the schedule
35344	// successfully ran. The timestamp is an RFC3339 string.
35345	LastRunStartTime string `json:"lastRunStartTime,omitempty"`
35346
35347	// NextRunStartTime: [Output Only] The next time the schedule is planned
35348	// to run. The actual time might be slightly different. The timestamp is
35349	// an RFC3339 string.
35350	NextRunStartTime string `json:"nextRunStartTime,omitempty"`
35351
35352	// ForceSendFields is a list of field names (e.g. "LastRunStartTime") to
35353	// unconditionally include in API requests. By default, fields with
35354	// empty values are omitted from API requests. However, any non-pointer,
35355	// non-interface field appearing in ForceSendFields will be sent to the
35356	// server regardless of whether the field is empty or not. This may be
35357	// used to include empty fields in Patch requests.
35358	ForceSendFields []string `json:"-"`
35359
35360	// NullFields is a list of field names (e.g. "LastRunStartTime") to
35361	// include in API requests with the JSON null value. By default, fields
35362	// with empty values are omitted from API requests. However, any field
35363	// with an empty value appearing in NullFields will be sent to the
35364	// server as null. It is an error if a field in this list has a
35365	// non-empty value. This may be used to include null fields in Patch
35366	// requests.
35367	NullFields []string `json:"-"`
35368}
35369
35370func (s *ResourcePolicyResourceStatusInstanceSchedulePolicyStatus) MarshalJSON() ([]byte, error) {
35371	type NoMethod ResourcePolicyResourceStatusInstanceSchedulePolicyStatus
35372	raw := NoMethod(*s)
35373	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35374}
35375
35376// ResourcePolicySnapshotSchedulePolicy: A snapshot schedule policy
35377// specifies when and how frequently snapshots are to be created for the
35378// target disk. Also specifies how many and how long these scheduled
35379// snapshots should be retained.
35380type ResourcePolicySnapshotSchedulePolicy struct {
35381	// RetentionPolicy: Retention policy applied to snapshots created by
35382	// this resource policy.
35383	RetentionPolicy *ResourcePolicySnapshotSchedulePolicyRetentionPolicy `json:"retentionPolicy,omitempty"`
35384
35385	// Schedule: A Vm Maintenance Policy specifies what kind of
35386	// infrastructure maintenance we are allowed to perform on this VM and
35387	// when. Schedule that is applied to disks covered by this policy.
35388	Schedule *ResourcePolicySnapshotSchedulePolicySchedule `json:"schedule,omitempty"`
35389
35390	// SnapshotProperties: Properties with which snapshots are created such
35391	// as labels, encryption keys.
35392	SnapshotProperties *ResourcePolicySnapshotSchedulePolicySnapshotProperties `json:"snapshotProperties,omitempty"`
35393
35394	// ForceSendFields is a list of field names (e.g. "RetentionPolicy") to
35395	// unconditionally include in API requests. By default, fields with
35396	// empty values are omitted from API requests. However, any non-pointer,
35397	// non-interface field appearing in ForceSendFields will be sent to the
35398	// server regardless of whether the field is empty or not. This may be
35399	// used to include empty fields in Patch requests.
35400	ForceSendFields []string `json:"-"`
35401
35402	// NullFields is a list of field names (e.g. "RetentionPolicy") to
35403	// include in API requests with the JSON null value. By default, fields
35404	// with empty values are omitted from API requests. However, any field
35405	// with an empty value appearing in NullFields will be sent to the
35406	// server as null. It is an error if a field in this list has a
35407	// non-empty value. This may be used to include null fields in Patch
35408	// requests.
35409	NullFields []string `json:"-"`
35410}
35411
35412func (s *ResourcePolicySnapshotSchedulePolicy) MarshalJSON() ([]byte, error) {
35413	type NoMethod ResourcePolicySnapshotSchedulePolicy
35414	raw := NoMethod(*s)
35415	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35416}
35417
35418// ResourcePolicySnapshotSchedulePolicyRetentionPolicy: Policy for
35419// retention of scheduled snapshots.
35420type ResourcePolicySnapshotSchedulePolicyRetentionPolicy struct {
35421	// MaxRetentionDays: Maximum age of the snapshot that is allowed to be
35422	// kept.
35423	MaxRetentionDays int64 `json:"maxRetentionDays,omitempty"`
35424
35425	// OnSourceDiskDelete: Specifies the behavior to apply to scheduled
35426	// snapshots when the source disk is deleted.
35427	//
35428	// Possible values:
35429	//   "APPLY_RETENTION_POLICY"
35430	//   "KEEP_AUTO_SNAPSHOTS"
35431	//   "UNSPECIFIED_ON_SOURCE_DISK_DELETE"
35432	OnSourceDiskDelete string `json:"onSourceDiskDelete,omitempty"`
35433
35434	// ForceSendFields is a list of field names (e.g. "MaxRetentionDays") to
35435	// unconditionally include in API requests. By default, fields with
35436	// empty values are omitted from API requests. However, any non-pointer,
35437	// non-interface field appearing in ForceSendFields will be sent to the
35438	// server regardless of whether the field is empty or not. This may be
35439	// used to include empty fields in Patch requests.
35440	ForceSendFields []string `json:"-"`
35441
35442	// NullFields is a list of field names (e.g. "MaxRetentionDays") to
35443	// include in API requests with the JSON null value. By default, fields
35444	// with empty values are omitted from API requests. However, any field
35445	// with an empty value appearing in NullFields will be sent to the
35446	// server as null. It is an error if a field in this list has a
35447	// non-empty value. This may be used to include null fields in Patch
35448	// requests.
35449	NullFields []string `json:"-"`
35450}
35451
35452func (s *ResourcePolicySnapshotSchedulePolicyRetentionPolicy) MarshalJSON() ([]byte, error) {
35453	type NoMethod ResourcePolicySnapshotSchedulePolicyRetentionPolicy
35454	raw := NoMethod(*s)
35455	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35456}
35457
35458// ResourcePolicySnapshotSchedulePolicySchedule: A schedule for disks
35459// where the schedueled operations are performed.
35460type ResourcePolicySnapshotSchedulePolicySchedule struct {
35461	DailySchedule *ResourcePolicyDailyCycle `json:"dailySchedule,omitempty"`
35462
35463	HourlySchedule *ResourcePolicyHourlyCycle `json:"hourlySchedule,omitempty"`
35464
35465	WeeklySchedule *ResourcePolicyWeeklyCycle `json:"weeklySchedule,omitempty"`
35466
35467	// ForceSendFields is a list of field names (e.g. "DailySchedule") to
35468	// unconditionally include in API requests. By default, fields with
35469	// empty values are omitted from API requests. However, any non-pointer,
35470	// non-interface field appearing in ForceSendFields will be sent to the
35471	// server regardless of whether the field is empty or not. This may be
35472	// used to include empty fields in Patch requests.
35473	ForceSendFields []string `json:"-"`
35474
35475	// NullFields is a list of field names (e.g. "DailySchedule") to include
35476	// in API requests with the JSON null value. By default, fields with
35477	// empty values are omitted from API requests. However, any field with
35478	// an empty value appearing in NullFields will be sent to the server as
35479	// null. It is an error if a field in this list has a non-empty value.
35480	// This may be used to include null fields in Patch requests.
35481	NullFields []string `json:"-"`
35482}
35483
35484func (s *ResourcePolicySnapshotSchedulePolicySchedule) MarshalJSON() ([]byte, error) {
35485	type NoMethod ResourcePolicySnapshotSchedulePolicySchedule
35486	raw := NoMethod(*s)
35487	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35488}
35489
35490// ResourcePolicySnapshotSchedulePolicySnapshotProperties: Specified
35491// snapshot properties for scheduled snapshots created by this policy.
35492type ResourcePolicySnapshotSchedulePolicySnapshotProperties struct {
35493	// ChainName: Chain name that the snapshot is created in.
35494	ChainName string `json:"chainName,omitempty"`
35495
35496	// GuestFlush: Indication to perform a 'guest aware' snapshot.
35497	GuestFlush bool `json:"guestFlush,omitempty"`
35498
35499	// Labels: Labels to apply to scheduled snapshots. These can be later
35500	// modified by the setLabels method. Label values may be empty.
35501	Labels map[string]string `json:"labels,omitempty"`
35502
35503	// StorageLocations: Cloud Storage bucket storage location of the auto
35504	// snapshot (regional or multi-regional).
35505	StorageLocations []string `json:"storageLocations,omitempty"`
35506
35507	// ForceSendFields is a list of field names (e.g. "ChainName") to
35508	// unconditionally include in API requests. By default, fields with
35509	// empty values are omitted from API requests. However, any non-pointer,
35510	// non-interface field appearing in ForceSendFields will be sent to the
35511	// server regardless of whether the field is empty or not. This may be
35512	// used to include empty fields in Patch requests.
35513	ForceSendFields []string `json:"-"`
35514
35515	// NullFields is a list of field names (e.g. "ChainName") to include in
35516	// API requests with the JSON null value. By default, fields with empty
35517	// values are omitted from API requests. However, any field with an
35518	// empty value appearing in NullFields will be sent to the server as
35519	// null. It is an error if a field in this list has a non-empty value.
35520	// This may be used to include null fields in Patch requests.
35521	NullFields []string `json:"-"`
35522}
35523
35524func (s *ResourcePolicySnapshotSchedulePolicySnapshotProperties) MarshalJSON() ([]byte, error) {
35525	type NoMethod ResourcePolicySnapshotSchedulePolicySnapshotProperties
35526	raw := NoMethod(*s)
35527	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35528}
35529
35530// ResourcePolicyWeeklyCycle: Time window specified for weekly
35531// operations.
35532type ResourcePolicyWeeklyCycle struct {
35533	// DayOfWeeks: Up to 7 intervals/windows, one for each day of the week.
35534	DayOfWeeks []*ResourcePolicyWeeklyCycleDayOfWeek `json:"dayOfWeeks,omitempty"`
35535
35536	// ForceSendFields is a list of field names (e.g. "DayOfWeeks") to
35537	// unconditionally include in API requests. By default, fields with
35538	// empty values are omitted from API requests. However, any non-pointer,
35539	// non-interface field appearing in ForceSendFields will be sent to the
35540	// server regardless of whether the field is empty or not. This may be
35541	// used to include empty fields in Patch requests.
35542	ForceSendFields []string `json:"-"`
35543
35544	// NullFields is a list of field names (e.g. "DayOfWeeks") to include in
35545	// API requests with the JSON null value. By default, fields with empty
35546	// values are omitted from API requests. However, any field with an
35547	// empty value appearing in NullFields will be sent to the server as
35548	// null. It is an error if a field in this list has a non-empty value.
35549	// This may be used to include null fields in Patch requests.
35550	NullFields []string `json:"-"`
35551}
35552
35553func (s *ResourcePolicyWeeklyCycle) MarshalJSON() ([]byte, error) {
35554	type NoMethod ResourcePolicyWeeklyCycle
35555	raw := NoMethod(*s)
35556	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35557}
35558
35559type ResourcePolicyWeeklyCycleDayOfWeek struct {
35560	// Day: Defines a schedule that runs on specific days of the week.
35561	// Specify one or more days. The following options are available:
35562	// MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY.
35563	//
35564	// Possible values:
35565	//   "FRIDAY"
35566	//   "INVALID"
35567	//   "MONDAY"
35568	//   "SATURDAY"
35569	//   "SUNDAY"
35570	//   "THURSDAY"
35571	//   "TUESDAY"
35572	//   "WEDNESDAY"
35573	Day string `json:"day,omitempty"`
35574
35575	// Duration: [Output only] Duration of the time window, automatically
35576	// chosen to be smallest possible in the given scenario.
35577	Duration string `json:"duration,omitempty"`
35578
35579	// StartTime: Time within the window to start the operations. It must be
35580	// in format "HH:MM", where HH : [00-23] and MM : [00-00] GMT.
35581	StartTime string `json:"startTime,omitempty"`
35582
35583	// ForceSendFields is a list of field names (e.g. "Day") to
35584	// unconditionally include in API requests. By default, fields with
35585	// empty values are omitted from API requests. However, any non-pointer,
35586	// non-interface field appearing in ForceSendFields will be sent to the
35587	// server regardless of whether the field is empty or not. This may be
35588	// used to include empty fields in Patch requests.
35589	ForceSendFields []string `json:"-"`
35590
35591	// NullFields is a list of field names (e.g. "Day") to include in API
35592	// requests with the JSON null value. By default, fields with empty
35593	// values are omitted from API requests. However, any field with an
35594	// empty value appearing in NullFields will be sent to the server as
35595	// null. It is an error if a field in this list has a non-empty value.
35596	// This may be used to include null fields in Patch requests.
35597	NullFields []string `json:"-"`
35598}
35599
35600func (s *ResourcePolicyWeeklyCycleDayOfWeek) MarshalJSON() ([]byte, error) {
35601	type NoMethod ResourcePolicyWeeklyCycleDayOfWeek
35602	raw := NoMethod(*s)
35603	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35604}
35605
35606// Route: Represents a Route resource.
35607//
35608// A route defines a path from VM instances in the VPC network to a
35609// specific destination. This destination can be inside or outside the
35610// VPC network. For more information, read the Routes overview. (==
35611// resource_for {$api_version}.routes ==)
35612type Route struct {
35613	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
35614	// format.
35615	CreationTimestamp string `json:"creationTimestamp,omitempty"`
35616
35617	// Description: An optional description of this resource. Provide this
35618	// field when you create the resource.
35619	Description string `json:"description,omitempty"`
35620
35621	// DestRange: The destination range of outgoing packets that this route
35622	// applies to. Both IPv4 and IPv6 are supported.
35623	DestRange string `json:"destRange,omitempty"`
35624
35625	// Id: [Output Only] The unique identifier for the resource. This
35626	// identifier is defined by the server.
35627	Id uint64 `json:"id,omitempty,string"`
35628
35629	// Kind: [Output Only] Type of this resource. Always compute#routes for
35630	// Route resources.
35631	Kind string `json:"kind,omitempty"`
35632
35633	// Name: Name of the resource. Provided by the client when the resource
35634	// is created. The name must be 1-63 characters long, and comply with
35635	// RFC1035. Specifically, the name must be 1-63 characters long and
35636	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first
35637	// character must be a lowercase letter, and all following characters
35638	// (except for the last character) must be a dash, lowercase letter, or
35639	// digit. The last character must be a lowercase letter or digit.
35640	Name string `json:"name,omitempty"`
35641
35642	// Network: Fully-qualified URL of the network that this route applies
35643	// to.
35644	Network string `json:"network,omitempty"`
35645
35646	// NextHopGateway: The URL to a gateway that should handle matching
35647	// packets. You can only specify the internet gateway using a full or
35648	// partial valid URL:
35649	// projects/project/global/gateways/default-internet-gateway
35650	NextHopGateway string `json:"nextHopGateway,omitempty"`
35651
35652	// NextHopIlb: The URL to a forwarding rule of type
35653	// loadBalancingScheme=INTERNAL that should handle matching packets or
35654	// the IP address of the forwarding Rule. For example, the following are
35655	// all valid URLs:
35656	// - 10.128.0.56
35657	// -
35658	// https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule
35659	//
35660	// - regions/region/forwardingRules/forwardingRule
35661	NextHopIlb string `json:"nextHopIlb,omitempty"`
35662
35663	// NextHopInstance: The URL to an instance that should handle matching
35664	// packets. You can specify this as a full or partial URL. For
35665	// example:
35666	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/
35667	NextHopInstance string `json:"nextHopInstance,omitempty"`
35668
35669	// NextHopInterconnectAttachment: [Output Only] The URL to an
35670	// InterconnectAttachment which is the next hop for the route. This
35671	// field will only be populated for the dynamic routes generated by
35672	// Cloud Router with a linked interconnectAttachment.
35673	NextHopInterconnectAttachment string `json:"nextHopInterconnectAttachment,omitempty"`
35674
35675	// NextHopIp: The network IP address of an instance that should handle
35676	// matching packets. Only IPv4 is supported.
35677	NextHopIp string `json:"nextHopIp,omitempty"`
35678
35679	// NextHopNetwork: The URL of the local network if it should handle
35680	// matching packets.
35681	NextHopNetwork string `json:"nextHopNetwork,omitempty"`
35682
35683	// NextHopPeering: [Output Only] The network peering name that should
35684	// handle matching packets, which should conform to RFC1035.
35685	NextHopPeering string `json:"nextHopPeering,omitempty"`
35686
35687	// NextHopVpnTunnel: The URL to a VpnTunnel that should handle matching
35688	// packets.
35689	NextHopVpnTunnel string `json:"nextHopVpnTunnel,omitempty"`
35690
35691	// Priority: The priority of this route. Priority is used to break ties
35692	// in cases where there is more than one matching route of equal prefix
35693	// length. In cases where multiple routes have equal prefix length, the
35694	// one with the lowest-numbered priority value wins. The default value
35695	// is `1000`. The priority value must be from `0` to `65535`, inclusive.
35696	Priority int64 `json:"priority,omitempty"`
35697
35698	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
35699	// resource.
35700	SelfLink string `json:"selfLink,omitempty"`
35701
35702	// Tags: A list of instance tags to which this route applies.
35703	Tags []string `json:"tags,omitempty"`
35704
35705	// Warnings: [Output Only] If potential misconfigurations are detected
35706	// for this route, this field will be populated with warning messages.
35707	Warnings []*RouteWarnings `json:"warnings,omitempty"`
35708
35709	// ServerResponse contains the HTTP response code and headers from the
35710	// server.
35711	googleapi.ServerResponse `json:"-"`
35712
35713	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
35714	// to unconditionally include in API requests. By default, fields with
35715	// empty values are omitted from API requests. However, any non-pointer,
35716	// non-interface field appearing in ForceSendFields will be sent to the
35717	// server regardless of whether the field is empty or not. This may be
35718	// used to include empty fields in Patch requests.
35719	ForceSendFields []string `json:"-"`
35720
35721	// NullFields is a list of field names (e.g. "CreationTimestamp") to
35722	// include in API requests with the JSON null value. By default, fields
35723	// with empty values are omitted from API requests. However, any field
35724	// with an empty value appearing in NullFields will be sent to the
35725	// server as null. It is an error if a field in this list has a
35726	// non-empty value. This may be used to include null fields in Patch
35727	// requests.
35728	NullFields []string `json:"-"`
35729}
35730
35731func (s *Route) MarshalJSON() ([]byte, error) {
35732	type NoMethod Route
35733	raw := NoMethod(*s)
35734	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35735}
35736
35737type RouteWarnings struct {
35738	// Code: [Output Only] A warning code, if applicable. For example,
35739	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
35740	// the response.
35741	//
35742	// Possible values:
35743	//   "CLEANUP_FAILED"
35744	//   "DEPRECATED_RESOURCE_USED"
35745	//   "DEPRECATED_TYPE_USED"
35746	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
35747	//   "EXPERIMENTAL_TYPE_USED"
35748	//   "EXTERNAL_API_WARNING"
35749	//   "FIELD_VALUE_OVERRIDEN"
35750	//   "INJECTED_KERNELS_DEPRECATED"
35751	//   "LARGE_DEPLOYMENT_WARNING"
35752	//   "MISSING_TYPE_DEPENDENCY"
35753	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
35754	//   "NEXT_HOP_CANNOT_IP_FORWARD"
35755	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
35756	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
35757	//   "NEXT_HOP_NOT_RUNNING"
35758	//   "NOT_CRITICAL_ERROR"
35759	//   "NO_RESULTS_ON_PAGE"
35760	//   "PARTIAL_SUCCESS"
35761	//   "REQUIRED_TOS_AGREEMENT"
35762	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
35763	//   "RESOURCE_NOT_DELETED"
35764	//   "SCHEMA_VALIDATION_IGNORED"
35765	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
35766	//   "UNDECLARED_PROPERTIES"
35767	//   "UNREACHABLE"
35768	Code string `json:"code,omitempty"`
35769
35770	// Data: [Output Only] Metadata about this warning in key: value format.
35771	// For example:
35772	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
35773	Data []*RouteWarningsData `json:"data,omitempty"`
35774
35775	// Message: [Output Only] A human-readable description of the warning
35776	// code.
35777	Message string `json:"message,omitempty"`
35778
35779	// ForceSendFields is a list of field names (e.g. "Code") to
35780	// unconditionally include in API requests. By default, fields with
35781	// empty values are omitted from API requests. However, any non-pointer,
35782	// non-interface field appearing in ForceSendFields will be sent to the
35783	// server regardless of whether the field is empty or not. This may be
35784	// used to include empty fields in Patch requests.
35785	ForceSendFields []string `json:"-"`
35786
35787	// NullFields is a list of field names (e.g. "Code") to include in API
35788	// requests with the JSON null value. By default, fields with empty
35789	// values are omitted from API requests. However, any field with an
35790	// empty value appearing in NullFields will be sent to the server as
35791	// null. It is an error if a field in this list has a non-empty value.
35792	// This may be used to include null fields in Patch requests.
35793	NullFields []string `json:"-"`
35794}
35795
35796func (s *RouteWarnings) MarshalJSON() ([]byte, error) {
35797	type NoMethod RouteWarnings
35798	raw := NoMethod(*s)
35799	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35800}
35801
35802type RouteWarningsData struct {
35803	// Key: [Output Only] A key that provides more detail on the warning
35804	// being returned. For example, for warnings where there are no results
35805	// in a list request for a particular zone, this key might be scope and
35806	// the key value might be the zone name. Other examples might be a key
35807	// indicating a deprecated resource and a suggested replacement, or a
35808	// warning about invalid network settings (for example, if an instance
35809	// attempts to perform IP forwarding but is not enabled for IP
35810	// forwarding).
35811	Key string `json:"key,omitempty"`
35812
35813	// Value: [Output Only] A warning data value corresponding to the key.
35814	Value string `json:"value,omitempty"`
35815
35816	// ForceSendFields is a list of field names (e.g. "Key") to
35817	// unconditionally include in API requests. By default, fields with
35818	// empty values are omitted from API requests. However, any non-pointer,
35819	// non-interface field appearing in ForceSendFields will be sent to the
35820	// server regardless of whether the field is empty or not. This may be
35821	// used to include empty fields in Patch requests.
35822	ForceSendFields []string `json:"-"`
35823
35824	// NullFields is a list of field names (e.g. "Key") to include in API
35825	// requests with the JSON null value. By default, fields with empty
35826	// values are omitted from API requests. However, any field with an
35827	// empty value appearing in NullFields will be sent to the server as
35828	// null. It is an error if a field in this list has a non-empty value.
35829	// This may be used to include null fields in Patch requests.
35830	NullFields []string `json:"-"`
35831}
35832
35833func (s *RouteWarningsData) MarshalJSON() ([]byte, error) {
35834	type NoMethod RouteWarningsData
35835	raw := NoMethod(*s)
35836	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35837}
35838
35839// RouteList: Contains a list of Route resources.
35840type RouteList struct {
35841	// Id: [Output Only] Unique identifier for the resource; defined by the
35842	// server.
35843	Id string `json:"id,omitempty"`
35844
35845	// Items: A list of Route resources.
35846	Items []*Route `json:"items,omitempty"`
35847
35848	// Kind: Type of resource.
35849	Kind string `json:"kind,omitempty"`
35850
35851	// NextPageToken: [Output Only] This token allows you to get the next
35852	// page of results for list requests. If the number of results is larger
35853	// than maxResults, use the nextPageToken as a value for the query
35854	// parameter pageToken in the next list request. Subsequent list
35855	// requests will have their own nextPageToken to continue paging through
35856	// the results.
35857	NextPageToken string `json:"nextPageToken,omitempty"`
35858
35859	// SelfLink: [Output Only] Server-defined URL for this resource.
35860	SelfLink string `json:"selfLink,omitempty"`
35861
35862	// Warning: [Output Only] Informational warning message.
35863	Warning *RouteListWarning `json:"warning,omitempty"`
35864
35865	// ServerResponse contains the HTTP response code and headers from the
35866	// server.
35867	googleapi.ServerResponse `json:"-"`
35868
35869	// ForceSendFields is a list of field names (e.g. "Id") to
35870	// unconditionally include in API requests. By default, fields with
35871	// empty values are omitted from API requests. However, any non-pointer,
35872	// non-interface field appearing in ForceSendFields will be sent to the
35873	// server regardless of whether the field is empty or not. This may be
35874	// used to include empty fields in Patch requests.
35875	ForceSendFields []string `json:"-"`
35876
35877	// NullFields is a list of field names (e.g. "Id") to include in API
35878	// requests with the JSON null value. By default, fields with empty
35879	// values are omitted from API requests. However, any field with an
35880	// empty value appearing in NullFields will be sent to the server as
35881	// null. It is an error if a field in this list has a non-empty value.
35882	// This may be used to include null fields in Patch requests.
35883	NullFields []string `json:"-"`
35884}
35885
35886func (s *RouteList) MarshalJSON() ([]byte, error) {
35887	type NoMethod RouteList
35888	raw := NoMethod(*s)
35889	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35890}
35891
35892// RouteListWarning: [Output Only] Informational warning message.
35893type RouteListWarning struct {
35894	// Code: [Output Only] A warning code, if applicable. For example,
35895	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
35896	// the response.
35897	//
35898	// Possible values:
35899	//   "CLEANUP_FAILED"
35900	//   "DEPRECATED_RESOURCE_USED"
35901	//   "DEPRECATED_TYPE_USED"
35902	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
35903	//   "EXPERIMENTAL_TYPE_USED"
35904	//   "EXTERNAL_API_WARNING"
35905	//   "FIELD_VALUE_OVERRIDEN"
35906	//   "INJECTED_KERNELS_DEPRECATED"
35907	//   "LARGE_DEPLOYMENT_WARNING"
35908	//   "MISSING_TYPE_DEPENDENCY"
35909	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
35910	//   "NEXT_HOP_CANNOT_IP_FORWARD"
35911	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
35912	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
35913	//   "NEXT_HOP_NOT_RUNNING"
35914	//   "NOT_CRITICAL_ERROR"
35915	//   "NO_RESULTS_ON_PAGE"
35916	//   "PARTIAL_SUCCESS"
35917	//   "REQUIRED_TOS_AGREEMENT"
35918	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
35919	//   "RESOURCE_NOT_DELETED"
35920	//   "SCHEMA_VALIDATION_IGNORED"
35921	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
35922	//   "UNDECLARED_PROPERTIES"
35923	//   "UNREACHABLE"
35924	Code string `json:"code,omitempty"`
35925
35926	// Data: [Output Only] Metadata about this warning in key: value format.
35927	// For example:
35928	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
35929	Data []*RouteListWarningData `json:"data,omitempty"`
35930
35931	// Message: [Output Only] A human-readable description of the warning
35932	// code.
35933	Message string `json:"message,omitempty"`
35934
35935	// ForceSendFields is a list of field names (e.g. "Code") to
35936	// unconditionally include in API requests. By default, fields with
35937	// empty values are omitted from API requests. However, any non-pointer,
35938	// non-interface field appearing in ForceSendFields will be sent to the
35939	// server regardless of whether the field is empty or not. This may be
35940	// used to include empty fields in Patch requests.
35941	ForceSendFields []string `json:"-"`
35942
35943	// NullFields is a list of field names (e.g. "Code") to include in API
35944	// requests with the JSON null value. By default, fields with empty
35945	// values are omitted from API requests. However, any field with an
35946	// empty value appearing in NullFields will be sent to the server as
35947	// null. It is an error if a field in this list has a non-empty value.
35948	// This may be used to include null fields in Patch requests.
35949	NullFields []string `json:"-"`
35950}
35951
35952func (s *RouteListWarning) MarshalJSON() ([]byte, error) {
35953	type NoMethod RouteListWarning
35954	raw := NoMethod(*s)
35955	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35956}
35957
35958type RouteListWarningData struct {
35959	// Key: [Output Only] A key that provides more detail on the warning
35960	// being returned. For example, for warnings where there are no results
35961	// in a list request for a particular zone, this key might be scope and
35962	// the key value might be the zone name. Other examples might be a key
35963	// indicating a deprecated resource and a suggested replacement, or a
35964	// warning about invalid network settings (for example, if an instance
35965	// attempts to perform IP forwarding but is not enabled for IP
35966	// forwarding).
35967	Key string `json:"key,omitempty"`
35968
35969	// Value: [Output Only] A warning data value corresponding to the key.
35970	Value string `json:"value,omitempty"`
35971
35972	// ForceSendFields is a list of field names (e.g. "Key") to
35973	// unconditionally include in API requests. By default, fields with
35974	// empty values are omitted from API requests. However, any non-pointer,
35975	// non-interface field appearing in ForceSendFields will be sent to the
35976	// server regardless of whether the field is empty or not. This may be
35977	// used to include empty fields in Patch requests.
35978	ForceSendFields []string `json:"-"`
35979
35980	// NullFields is a list of field names (e.g. "Key") to include in API
35981	// requests with the JSON null value. By default, fields with empty
35982	// values are omitted from API requests. However, any field with an
35983	// empty value appearing in NullFields will be sent to the server as
35984	// null. It is an error if a field in this list has a non-empty value.
35985	// This may be used to include null fields in Patch requests.
35986	NullFields []string `json:"-"`
35987}
35988
35989func (s *RouteListWarningData) MarshalJSON() ([]byte, error) {
35990	type NoMethod RouteListWarningData
35991	raw := NoMethod(*s)
35992	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35993}
35994
35995// Router: Represents a Cloud Router resource.
35996//
35997// For more information about Cloud Router, read the Cloud Router
35998// overview.
35999type Router struct {
36000	// Bgp: BGP information specific to this router.
36001	Bgp *RouterBgp `json:"bgp,omitempty"`
36002
36003	// BgpPeers: BGP information that must be configured into the routing
36004	// stack to establish BGP peering. This information must specify the
36005	// peer ASN and either the interface name, IP address, or peer IP
36006	// address. Please refer to RFC4273.
36007	BgpPeers []*RouterBgpPeer `json:"bgpPeers,omitempty"`
36008
36009	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
36010	// format.
36011	CreationTimestamp string `json:"creationTimestamp,omitempty"`
36012
36013	// Description: An optional description of this resource. Provide this
36014	// property when you create the resource.
36015	Description string `json:"description,omitempty"`
36016
36017	// EncryptedInterconnectRouter: Field to indicate if a router is
36018	// dedicated to use with encrypted Interconnect Attachment
36019	// (IPsec-encrypted Cloud Interconnect feature).
36020	EncryptedInterconnectRouter bool `json:"encryptedInterconnectRouter,omitempty"`
36021
36022	// Id: [Output Only] The unique identifier for the resource. This
36023	// identifier is defined by the server.
36024	Id uint64 `json:"id,omitempty,string"`
36025
36026	// Interfaces: Router interfaces. Each interface requires either one
36027	// linked resource, (for example, linkedVpnTunnel), or IP address and IP
36028	// address range (for example, ipRange), or both.
36029	Interfaces []*RouterInterface `json:"interfaces,omitempty"`
36030
36031	// Kind: [Output Only] Type of resource. Always compute#router for
36032	// routers.
36033	Kind string `json:"kind,omitempty"`
36034
36035	// Name: Name of the resource. Provided by the client when the resource
36036	// is created. The name must be 1-63 characters long, and comply with
36037	// RFC1035. Specifically, the name must be 1-63 characters long and
36038	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
36039	// the first character must be a lowercase letter, and all following
36040	// characters must be a dash, lowercase letter, or digit, except the
36041	// last character, which cannot be a dash.
36042	Name string `json:"name,omitempty"`
36043
36044	// Nats: A list of NAT services created in this router.
36045	Nats []*RouterNat `json:"nats,omitempty"`
36046
36047	// Network: URI of the network to which this router belongs.
36048	Network string `json:"network,omitempty"`
36049
36050	// Region: [Output Only] URI of the region where the router resides. You
36051	// must specify this field as part of the HTTP request URL. It is not
36052	// settable as a field in the request body.
36053	Region string `json:"region,omitempty"`
36054
36055	// SelfLink: [Output Only] Server-defined URL for the resource.
36056	SelfLink string `json:"selfLink,omitempty"`
36057
36058	// ServerResponse contains the HTTP response code and headers from the
36059	// server.
36060	googleapi.ServerResponse `json:"-"`
36061
36062	// ForceSendFields is a list of field names (e.g. "Bgp") to
36063	// unconditionally include in API requests. By default, fields with
36064	// empty values are omitted from API requests. However, any non-pointer,
36065	// non-interface field appearing in ForceSendFields will be sent to the
36066	// server regardless of whether the field is empty or not. This may be
36067	// used to include empty fields in Patch requests.
36068	ForceSendFields []string `json:"-"`
36069
36070	// NullFields is a list of field names (e.g. "Bgp") to include in API
36071	// requests with the JSON null value. By default, fields with empty
36072	// values are omitted from API requests. However, any field with an
36073	// empty value appearing in NullFields will be sent to the server as
36074	// null. It is an error if a field in this list has a non-empty value.
36075	// This may be used to include null fields in Patch requests.
36076	NullFields []string `json:"-"`
36077}
36078
36079func (s *Router) MarshalJSON() ([]byte, error) {
36080	type NoMethod Router
36081	raw := NoMethod(*s)
36082	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36083}
36084
36085// RouterAdvertisedIpRange: Description-tagged IP ranges for the router
36086// to advertise.
36087type RouterAdvertisedIpRange struct {
36088	// Description: User-specified description for the IP range.
36089	Description string `json:"description,omitempty"`
36090
36091	// Range: The IP range to advertise. The value must be a CIDR-formatted
36092	// string.
36093	Range string `json:"range,omitempty"`
36094
36095	// ForceSendFields is a list of field names (e.g. "Description") to
36096	// unconditionally include in API requests. By default, fields with
36097	// empty values are omitted from API requests. However, any non-pointer,
36098	// non-interface field appearing in ForceSendFields will be sent to the
36099	// server regardless of whether the field is empty or not. This may be
36100	// used to include empty fields in Patch requests.
36101	ForceSendFields []string `json:"-"`
36102
36103	// NullFields is a list of field names (e.g. "Description") to include
36104	// in API requests with the JSON null value. By default, fields with
36105	// empty values are omitted from API requests. However, any field with
36106	// an empty value appearing in NullFields will be sent to the server as
36107	// null. It is an error if a field in this list has a non-empty value.
36108	// This may be used to include null fields in Patch requests.
36109	NullFields []string `json:"-"`
36110}
36111
36112func (s *RouterAdvertisedIpRange) MarshalJSON() ([]byte, error) {
36113	type NoMethod RouterAdvertisedIpRange
36114	raw := NoMethod(*s)
36115	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36116}
36117
36118// RouterAggregatedList: Contains a list of routers.
36119type RouterAggregatedList struct {
36120	// Id: [Output Only] Unique identifier for the resource; defined by the
36121	// server.
36122	Id string `json:"id,omitempty"`
36123
36124	// Items: A list of Router resources.
36125	Items map[string]RoutersScopedList `json:"items,omitempty"`
36126
36127	// Kind: Type of resource.
36128	Kind string `json:"kind,omitempty"`
36129
36130	// NextPageToken: [Output Only] This token allows you to get the next
36131	// page of results for list requests. If the number of results is larger
36132	// than maxResults, use the nextPageToken as a value for the query
36133	// parameter pageToken in the next list request. Subsequent list
36134	// requests will have their own nextPageToken to continue paging through
36135	// the results.
36136	NextPageToken string `json:"nextPageToken,omitempty"`
36137
36138	// SelfLink: [Output Only] Server-defined URL for this resource.
36139	SelfLink string `json:"selfLink,omitempty"`
36140
36141	// Unreachables: [Output Only] Unreachable resources.
36142	Unreachables []string `json:"unreachables,omitempty"`
36143
36144	// Warning: [Output Only] Informational warning message.
36145	Warning *RouterAggregatedListWarning `json:"warning,omitempty"`
36146
36147	// ServerResponse contains the HTTP response code and headers from the
36148	// server.
36149	googleapi.ServerResponse `json:"-"`
36150
36151	// ForceSendFields is a list of field names (e.g. "Id") to
36152	// unconditionally include in API requests. By default, fields with
36153	// empty values are omitted from API requests. However, any non-pointer,
36154	// non-interface field appearing in ForceSendFields will be sent to the
36155	// server regardless of whether the field is empty or not. This may be
36156	// used to include empty fields in Patch requests.
36157	ForceSendFields []string `json:"-"`
36158
36159	// NullFields is a list of field names (e.g. "Id") to include in API
36160	// requests with the JSON null value. By default, fields with empty
36161	// values are omitted from API requests. However, any field with an
36162	// empty value appearing in NullFields will be sent to the server as
36163	// null. It is an error if a field in this list has a non-empty value.
36164	// This may be used to include null fields in Patch requests.
36165	NullFields []string `json:"-"`
36166}
36167
36168func (s *RouterAggregatedList) MarshalJSON() ([]byte, error) {
36169	type NoMethod RouterAggregatedList
36170	raw := NoMethod(*s)
36171	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36172}
36173
36174// RouterAggregatedListWarning: [Output Only] Informational warning
36175// message.
36176type RouterAggregatedListWarning struct {
36177	// Code: [Output Only] A warning code, if applicable. For example,
36178	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
36179	// the response.
36180	//
36181	// Possible values:
36182	//   "CLEANUP_FAILED"
36183	//   "DEPRECATED_RESOURCE_USED"
36184	//   "DEPRECATED_TYPE_USED"
36185	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
36186	//   "EXPERIMENTAL_TYPE_USED"
36187	//   "EXTERNAL_API_WARNING"
36188	//   "FIELD_VALUE_OVERRIDEN"
36189	//   "INJECTED_KERNELS_DEPRECATED"
36190	//   "LARGE_DEPLOYMENT_WARNING"
36191	//   "MISSING_TYPE_DEPENDENCY"
36192	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
36193	//   "NEXT_HOP_CANNOT_IP_FORWARD"
36194	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
36195	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
36196	//   "NEXT_HOP_NOT_RUNNING"
36197	//   "NOT_CRITICAL_ERROR"
36198	//   "NO_RESULTS_ON_PAGE"
36199	//   "PARTIAL_SUCCESS"
36200	//   "REQUIRED_TOS_AGREEMENT"
36201	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
36202	//   "RESOURCE_NOT_DELETED"
36203	//   "SCHEMA_VALIDATION_IGNORED"
36204	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
36205	//   "UNDECLARED_PROPERTIES"
36206	//   "UNREACHABLE"
36207	Code string `json:"code,omitempty"`
36208
36209	// Data: [Output Only] Metadata about this warning in key: value format.
36210	// For example:
36211	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
36212	Data []*RouterAggregatedListWarningData `json:"data,omitempty"`
36213
36214	// Message: [Output Only] A human-readable description of the warning
36215	// code.
36216	Message string `json:"message,omitempty"`
36217
36218	// ForceSendFields is a list of field names (e.g. "Code") to
36219	// unconditionally include in API requests. By default, fields with
36220	// empty values are omitted from API requests. However, any non-pointer,
36221	// non-interface field appearing in ForceSendFields will be sent to the
36222	// server regardless of whether the field is empty or not. This may be
36223	// used to include empty fields in Patch requests.
36224	ForceSendFields []string `json:"-"`
36225
36226	// NullFields is a list of field names (e.g. "Code") to include in API
36227	// requests with the JSON null value. By default, fields with empty
36228	// values are omitted from API requests. However, any field with an
36229	// empty value appearing in NullFields will be sent to the server as
36230	// null. It is an error if a field in this list has a non-empty value.
36231	// This may be used to include null fields in Patch requests.
36232	NullFields []string `json:"-"`
36233}
36234
36235func (s *RouterAggregatedListWarning) MarshalJSON() ([]byte, error) {
36236	type NoMethod RouterAggregatedListWarning
36237	raw := NoMethod(*s)
36238	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36239}
36240
36241type RouterAggregatedListWarningData struct {
36242	// Key: [Output Only] A key that provides more detail on the warning
36243	// being returned. For example, for warnings where there are no results
36244	// in a list request for a particular zone, this key might be scope and
36245	// the key value might be the zone name. Other examples might be a key
36246	// indicating a deprecated resource and a suggested replacement, or a
36247	// warning about invalid network settings (for example, if an instance
36248	// attempts to perform IP forwarding but is not enabled for IP
36249	// forwarding).
36250	Key string `json:"key,omitempty"`
36251
36252	// Value: [Output Only] A warning data value corresponding to the key.
36253	Value string `json:"value,omitempty"`
36254
36255	// ForceSendFields is a list of field names (e.g. "Key") to
36256	// unconditionally include in API requests. By default, fields with
36257	// empty values are omitted from API requests. However, any non-pointer,
36258	// non-interface field appearing in ForceSendFields will be sent to the
36259	// server regardless of whether the field is empty or not. This may be
36260	// used to include empty fields in Patch requests.
36261	ForceSendFields []string `json:"-"`
36262
36263	// NullFields is a list of field names (e.g. "Key") to include in API
36264	// requests with the JSON null value. By default, fields with empty
36265	// values are omitted from API requests. However, any field with an
36266	// empty value appearing in NullFields will be sent to the server as
36267	// null. It is an error if a field in this list has a non-empty value.
36268	// This may be used to include null fields in Patch requests.
36269	NullFields []string `json:"-"`
36270}
36271
36272func (s *RouterAggregatedListWarningData) MarshalJSON() ([]byte, error) {
36273	type NoMethod RouterAggregatedListWarningData
36274	raw := NoMethod(*s)
36275	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36276}
36277
36278type RouterBgp struct {
36279	// AdvertiseMode: User-specified flag to indicate which mode to use for
36280	// advertisement. The options are DEFAULT or CUSTOM.
36281	//
36282	// Possible values:
36283	//   "CUSTOM"
36284	//   "DEFAULT"
36285	AdvertiseMode string `json:"advertiseMode,omitempty"`
36286
36287	// AdvertisedGroups: User-specified list of prefix groups to advertise
36288	// in custom mode. This field can only be populated if advertise_mode is
36289	// CUSTOM and is advertised to all peers of the router. These groups
36290	// will be advertised in addition to any specified prefixes. Leave this
36291	// field blank to advertise no custom groups.
36292	//
36293	// Possible values:
36294	//   "ALL_SUBNETS"
36295	AdvertisedGroups []string `json:"advertisedGroups,omitempty"`
36296
36297	// AdvertisedIpRanges: User-specified list of individual IP ranges to
36298	// advertise in custom mode. This field can only be populated if
36299	// advertise_mode is CUSTOM and is advertised to all peers of the
36300	// router. These IP ranges will be advertised in addition to any
36301	// specified groups. Leave this field blank to advertise no custom IP
36302	// ranges.
36303	AdvertisedIpRanges []*RouterAdvertisedIpRange `json:"advertisedIpRanges,omitempty"`
36304
36305	// Asn: Local BGP Autonomous System Number (ASN). Must be an RFC6996
36306	// private ASN, either 16-bit or 32-bit. The value will be fixed for
36307	// this router resource. All VPN tunnels that link to this router will
36308	// have the same local ASN.
36309	Asn int64 `json:"asn,omitempty"`
36310
36311	// KeepaliveInterval: The interval in seconds between BGP keepalive
36312	// messages that are sent to the peer.
36313	// Not currently available publicly.
36314	// Hold time is three times the interval at which keepalive messages are
36315	// sent, and the hold time is the maximum number of seconds allowed to
36316	// elapse between successive keepalive messages that BGP receives from a
36317	// peer.
36318	// BGP will use the smaller of either the local hold time value or the
36319	// peer's hold time value as the hold time for the BGP connection
36320	// between the two peers.
36321	// If set, this value must be between 20 and 60. The default is 20.
36322	KeepaliveInterval int64 `json:"keepaliveInterval,omitempty"`
36323
36324	// ForceSendFields is a list of field names (e.g. "AdvertiseMode") to
36325	// unconditionally include in API requests. By default, fields with
36326	// empty values are omitted from API requests. However, any non-pointer,
36327	// non-interface field appearing in ForceSendFields will be sent to the
36328	// server regardless of whether the field is empty or not. This may be
36329	// used to include empty fields in Patch requests.
36330	ForceSendFields []string `json:"-"`
36331
36332	// NullFields is a list of field names (e.g. "AdvertiseMode") to include
36333	// in API requests with the JSON null value. By default, fields with
36334	// empty values are omitted from API requests. However, any field with
36335	// an empty value appearing in NullFields will be sent to the server as
36336	// null. It is an error if a field in this list has a non-empty value.
36337	// This may be used to include null fields in Patch requests.
36338	NullFields []string `json:"-"`
36339}
36340
36341func (s *RouterBgp) MarshalJSON() ([]byte, error) {
36342	type NoMethod RouterBgp
36343	raw := NoMethod(*s)
36344	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36345}
36346
36347type RouterBgpPeer struct {
36348	// AdvertiseMode: User-specified flag to indicate which mode to use for
36349	// advertisement.
36350	//
36351	// Possible values:
36352	//   "CUSTOM"
36353	//   "DEFAULT"
36354	AdvertiseMode string `json:"advertiseMode,omitempty"`
36355
36356	// AdvertisedGroups: User-specified list of prefix groups to advertise
36357	// in custom mode, which can take one of the following options:
36358	// - ALL_SUBNETS: Advertises all available subnets, including peer VPC
36359	// subnets.
36360	// - ALL_VPC_SUBNETS: Advertises the router's own VPC subnets. Note that
36361	// this field can only be populated if advertise_mode is CUSTOM and
36362	// overrides the list defined for the router (in the "bgp" message).
36363	// These groups are advertised in addition to any specified prefixes.
36364	// Leave this field blank to advertise no custom groups.
36365	//
36366	// Possible values:
36367	//   "ALL_SUBNETS"
36368	AdvertisedGroups []string `json:"advertisedGroups,omitempty"`
36369
36370	// AdvertisedIpRanges: User-specified list of individual IP ranges to
36371	// advertise in custom mode. This field can only be populated if
36372	// advertise_mode is CUSTOM and overrides the list defined for the
36373	// router (in the "bgp" message). These IP ranges are advertised in
36374	// addition to any specified groups. Leave this field blank to advertise
36375	// no custom IP ranges.
36376	AdvertisedIpRanges []*RouterAdvertisedIpRange `json:"advertisedIpRanges,omitempty"`
36377
36378	// AdvertisedRoutePriority: The priority of routes advertised to this
36379	// BGP peer. Where there is more than one matching route of maximum
36380	// length, the routes with the lowest priority value win.
36381	AdvertisedRoutePriority int64 `json:"advertisedRoutePriority,omitempty"`
36382
36383	// Bfd: BFD configuration for the BGP peering.
36384	// Not currently available publicly.
36385	Bfd *RouterBgpPeerBfd `json:"bfd,omitempty"`
36386
36387	// Enable: The status of the BGP peer connection.
36388	// Not currently available publicly.
36389	// If set to FALSE, any active session with the peer is terminated and
36390	// all associated routing information is removed. If set to TRUE, the
36391	// peer connection can be established with routing information. The
36392	// default is TRUE.
36393	//
36394	// Possible values:
36395	//   "FALSE"
36396	//   "TRUE"
36397	Enable string `json:"enable,omitempty"`
36398
36399	// InterfaceName: Name of the interface the BGP peer is associated with.
36400	InterfaceName string `json:"interfaceName,omitempty"`
36401
36402	// IpAddress: IP address of the interface inside Google Cloud Platform.
36403	// Only IPv4 is supported.
36404	IpAddress string `json:"ipAddress,omitempty"`
36405
36406	// ManagementType: [Output Only] The resource that configures and
36407	// manages this BGP peer.
36408	// - MANAGED_BY_USER is the default value and can be managed by you or
36409	// other users
36410	// - MANAGED_BY_ATTACHMENT is a BGP peer that is configured and managed
36411	// by Cloud Interconnect, specifically by an InterconnectAttachment of
36412	// type PARTNER. Google automatically creates, updates, and deletes this
36413	// type of BGP peer when the PARTNER InterconnectAttachment is created,
36414	// updated, or deleted.
36415	//
36416	// Possible values:
36417	//   "MANAGED_BY_ATTACHMENT"
36418	//   "MANAGED_BY_USER"
36419	ManagementType string `json:"managementType,omitempty"`
36420
36421	// Name: Name of this BGP peer. The name must be 1-63 characters long,
36422	// and comply with RFC1035. Specifically, the name must be 1-63
36423	// characters long and match the regular expression
36424	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
36425	// a lowercase letter, and all following characters must be a dash,
36426	// lowercase letter, or digit, except the last character, which cannot
36427	// be a dash.
36428	Name string `json:"name,omitempty"`
36429
36430	// PeerAsn: Peer BGP Autonomous System Number (ASN). Each BGP interface
36431	// may use a different value.
36432	PeerAsn int64 `json:"peerAsn,omitempty"`
36433
36434	// PeerIpAddress: IP address of the BGP interface outside Google Cloud
36435	// Platform. Only IPv4 is supported.
36436	PeerIpAddress string `json:"peerIpAddress,omitempty"`
36437
36438	// RouterApplianceInstance: URI of the VM instance that is used as
36439	// third-party router appliances such as Next Gen Firewalls, Virtual
36440	// Routers, or Router Appliances. The VM instance must be located in
36441	// zones contained in the same region as this Cloud Router. The VM
36442	// instance is the peer side of the BGP session.
36443	RouterApplianceInstance string `json:"routerApplianceInstance,omitempty"`
36444
36445	// ForceSendFields is a list of field names (e.g. "AdvertiseMode") to
36446	// unconditionally include in API requests. By default, fields with
36447	// empty values are omitted from API requests. However, any non-pointer,
36448	// non-interface field appearing in ForceSendFields will be sent to the
36449	// server regardless of whether the field is empty or not. This may be
36450	// used to include empty fields in Patch requests.
36451	ForceSendFields []string `json:"-"`
36452
36453	// NullFields is a list of field names (e.g. "AdvertiseMode") to include
36454	// in API requests with the JSON null value. By default, fields with
36455	// empty values are omitted from API requests. However, any field with
36456	// an empty value appearing in NullFields will be sent to the server as
36457	// null. It is an error if a field in this list has a non-empty value.
36458	// This may be used to include null fields in Patch requests.
36459	NullFields []string `json:"-"`
36460}
36461
36462func (s *RouterBgpPeer) MarshalJSON() ([]byte, error) {
36463	type NoMethod RouterBgpPeer
36464	raw := NoMethod(*s)
36465	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36466}
36467
36468type RouterBgpPeerBfd struct {
36469	// MinReceiveInterval: The minimum interval, in milliseconds, between
36470	// BFD control packets received from the peer router. The actual value
36471	// is negotiated between the two routers and is equal to the greater of
36472	// this value and the transmit interval of the other router.
36473	// Not currently available publicly.
36474	// If set, this value must be between 100 and 30000.
36475	// The default is 300.
36476	MinReceiveInterval int64 `json:"minReceiveInterval,omitempty"`
36477
36478	// MinTransmitInterval: The minimum interval, in milliseconds, between
36479	// BFD control packets transmitted to the peer router. The actual value
36480	// is negotiated between the two routers and is equal to the greater of
36481	// this value and the corresponding receive interval of the other
36482	// router.
36483	// Not currently available publicly.
36484	// If set, this value must be between 100 and 30000.
36485	// The default is 300.
36486	MinTransmitInterval int64 `json:"minTransmitInterval,omitempty"`
36487
36488	// Multiplier: The number of consecutive BFD packets that must be missed
36489	// before BFD declares that a peer is unavailable.
36490	// Not currently available publicly.
36491	// If set, the value must be a value between 2 and 16.
36492	// The default is 3.
36493	Multiplier int64 `json:"multiplier,omitempty"`
36494
36495	// SessionInitializationMode: The BFD session initialization mode for
36496	// this BGP peer.
36497	// Not currently available publicly.
36498	// If set to ACTIVE, the Cloud Router will initiate the BFD session for
36499	// this BGP peer. If set to PASSIVE, the Cloud Router will wait for the
36500	// peer router to initiate the BFD session for this BGP peer. If set to
36501	// DISABLED, BFD is disabled for this BGP peer. The default is PASSIVE.
36502	//
36503	// Possible values:
36504	//   "ACTIVE"
36505	//   "DISABLED"
36506	//   "PASSIVE"
36507	SessionInitializationMode string `json:"sessionInitializationMode,omitempty"`
36508
36509	// ForceSendFields is a list of field names (e.g. "MinReceiveInterval")
36510	// to unconditionally include in API requests. By default, fields with
36511	// empty values are omitted from API requests. However, any non-pointer,
36512	// non-interface field appearing in ForceSendFields will be sent to the
36513	// server regardless of whether the field is empty or not. This may be
36514	// used to include empty fields in Patch requests.
36515	ForceSendFields []string `json:"-"`
36516
36517	// NullFields is a list of field names (e.g. "MinReceiveInterval") to
36518	// include in API requests with the JSON null value. By default, fields
36519	// with empty values are omitted from API requests. However, any field
36520	// with an empty value appearing in NullFields will be sent to the
36521	// server as null. It is an error if a field in this list has a
36522	// non-empty value. This may be used to include null fields in Patch
36523	// requests.
36524	NullFields []string `json:"-"`
36525}
36526
36527func (s *RouterBgpPeerBfd) MarshalJSON() ([]byte, error) {
36528	type NoMethod RouterBgpPeerBfd
36529	raw := NoMethod(*s)
36530	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36531}
36532
36533type RouterInterface struct {
36534	// IpRange: IP address and range of the interface. The IP range must be
36535	// in the RFC3927 link-local IP address space. The value must be a
36536	// CIDR-formatted string, for example: 169.254.0.1/30. NOTE: Do not
36537	// truncate the address as it represents the IP address of the
36538	// interface.
36539	IpRange string `json:"ipRange,omitempty"`
36540
36541	// LinkedInterconnectAttachment: URI of the linked Interconnect
36542	// attachment. It must be in the same region as the router. Each
36543	// interface can have one linked resource, which can be a VPN tunnel, an
36544	// Interconnect attachment, or a virtual machine instance.
36545	LinkedInterconnectAttachment string `json:"linkedInterconnectAttachment,omitempty"`
36546
36547	// LinkedVpnTunnel: URI of the linked VPN tunnel, which must be in the
36548	// same region as the router. Each interface can have one linked
36549	// resource, which can be a VPN tunnel, an Interconnect attachment, or a
36550	// virtual machine instance.
36551	LinkedVpnTunnel string `json:"linkedVpnTunnel,omitempty"`
36552
36553	// ManagementType: [Output Only] The resource that configures and
36554	// manages this interface.
36555	// - MANAGED_BY_USER is the default value and can be managed directly by
36556	// users.
36557	// - MANAGED_BY_ATTACHMENT is an interface that is configured and
36558	// managed by Cloud Interconnect, specifically, by an
36559	// InterconnectAttachment of type PARTNER. Google automatically creates,
36560	// updates, and deletes this type of interface when the PARTNER
36561	// InterconnectAttachment is created, updated, or deleted.
36562	//
36563	// Possible values:
36564	//   "MANAGED_BY_ATTACHMENT"
36565	//   "MANAGED_BY_USER"
36566	ManagementType string `json:"managementType,omitempty"`
36567
36568	// Name: Name of this interface entry. The name must be 1-63 characters
36569	// long, and comply with RFC1035. Specifically, the name must be 1-63
36570	// characters long and match the regular expression
36571	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
36572	// a lowercase letter, and all following characters must be a dash,
36573	// lowercase letter, or digit, except the last character, which cannot
36574	// be a dash.
36575	Name string `json:"name,omitempty"`
36576
36577	// PrivateIpAddress: The regional private internal IP address that is
36578	// used to establish BGP sessions to a VM instance acting as a
36579	// third-party Router Appliance, such as a Next Gen Firewall, a Virtual
36580	// Router, or an SD-WAN VM.
36581	PrivateIpAddress string `json:"privateIpAddress,omitempty"`
36582
36583	// RedundantInterface: Name of the interface that will be redundant with
36584	// the current interface you are creating. The redundantInterface must
36585	// belong to the same Cloud Router as the interface here. To establish
36586	// the BGP session to a Router Appliance VM, you must create two BGP
36587	// peers. The two BGP peers must be attached to two separate interfaces
36588	// that are redundant with each other. The redundant_interface must be
36589	// 1-63 characters long, and comply with RFC1035. Specifically, the
36590	// redundant_interface must be 1-63 characters long and match the
36591	// regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
36592	// character must be a lowercase letter, and all following characters
36593	// must be a dash, lowercase letter, or digit, except the last
36594	// character, which cannot be a dash.
36595	RedundantInterface string `json:"redundantInterface,omitempty"`
36596
36597	// Subnetwork: The URL of the subnetwork resource that this interface
36598	// belongs to, which must be in the same region as the Cloud Router.
36599	// When you establish a BGP session to a VM instance using this
36600	// interface, the VM instance must belong to the same subnetwork as the
36601	// subnetwork specified here.
36602	Subnetwork string `json:"subnetwork,omitempty"`
36603
36604	// ForceSendFields is a list of field names (e.g. "IpRange") to
36605	// unconditionally include in API requests. By default, fields with
36606	// empty values are omitted from API requests. However, any non-pointer,
36607	// non-interface field appearing in ForceSendFields will be sent to the
36608	// server regardless of whether the field is empty or not. This may be
36609	// used to include empty fields in Patch requests.
36610	ForceSendFields []string `json:"-"`
36611
36612	// NullFields is a list of field names (e.g. "IpRange") to include in
36613	// API requests with the JSON null value. By default, fields with empty
36614	// values are omitted from API requests. However, any field with an
36615	// empty value appearing in NullFields will be sent to the server as
36616	// null. It is an error if a field in this list has a non-empty value.
36617	// This may be used to include null fields in Patch requests.
36618	NullFields []string `json:"-"`
36619}
36620
36621func (s *RouterInterface) MarshalJSON() ([]byte, error) {
36622	type NoMethod RouterInterface
36623	raw := NoMethod(*s)
36624	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36625}
36626
36627// RouterList: Contains a list of Router resources.
36628type RouterList struct {
36629	// Id: [Output Only] Unique identifier for the resource; defined by the
36630	// server.
36631	Id string `json:"id,omitempty"`
36632
36633	// Items: A list of Router resources.
36634	Items []*Router `json:"items,omitempty"`
36635
36636	// Kind: [Output Only] Type of resource. Always compute#router for
36637	// routers.
36638	Kind string `json:"kind,omitempty"`
36639
36640	// NextPageToken: [Output Only] This token allows you to get the next
36641	// page of results for list requests. If the number of results is larger
36642	// than maxResults, use the nextPageToken as a value for the query
36643	// parameter pageToken in the next list request. Subsequent list
36644	// requests will have their own nextPageToken to continue paging through
36645	// the results.
36646	NextPageToken string `json:"nextPageToken,omitempty"`
36647
36648	// SelfLink: [Output Only] Server-defined URL for this resource.
36649	SelfLink string `json:"selfLink,omitempty"`
36650
36651	// Warning: [Output Only] Informational warning message.
36652	Warning *RouterListWarning `json:"warning,omitempty"`
36653
36654	// ServerResponse contains the HTTP response code and headers from the
36655	// server.
36656	googleapi.ServerResponse `json:"-"`
36657
36658	// ForceSendFields is a list of field names (e.g. "Id") to
36659	// unconditionally include in API requests. By default, fields with
36660	// empty values are omitted from API requests. However, any non-pointer,
36661	// non-interface field appearing in ForceSendFields will be sent to the
36662	// server regardless of whether the field is empty or not. This may be
36663	// used to include empty fields in Patch requests.
36664	ForceSendFields []string `json:"-"`
36665
36666	// NullFields is a list of field names (e.g. "Id") to include in API
36667	// requests with the JSON null value. By default, fields with empty
36668	// values are omitted from API requests. However, any field with an
36669	// empty value appearing in NullFields will be sent to the server as
36670	// null. It is an error if a field in this list has a non-empty value.
36671	// This may be used to include null fields in Patch requests.
36672	NullFields []string `json:"-"`
36673}
36674
36675func (s *RouterList) MarshalJSON() ([]byte, error) {
36676	type NoMethod RouterList
36677	raw := NoMethod(*s)
36678	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36679}
36680
36681// RouterListWarning: [Output Only] Informational warning message.
36682type RouterListWarning struct {
36683	// Code: [Output Only] A warning code, if applicable. For example,
36684	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
36685	// the response.
36686	//
36687	// Possible values:
36688	//   "CLEANUP_FAILED"
36689	//   "DEPRECATED_RESOURCE_USED"
36690	//   "DEPRECATED_TYPE_USED"
36691	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
36692	//   "EXPERIMENTAL_TYPE_USED"
36693	//   "EXTERNAL_API_WARNING"
36694	//   "FIELD_VALUE_OVERRIDEN"
36695	//   "INJECTED_KERNELS_DEPRECATED"
36696	//   "LARGE_DEPLOYMENT_WARNING"
36697	//   "MISSING_TYPE_DEPENDENCY"
36698	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
36699	//   "NEXT_HOP_CANNOT_IP_FORWARD"
36700	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
36701	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
36702	//   "NEXT_HOP_NOT_RUNNING"
36703	//   "NOT_CRITICAL_ERROR"
36704	//   "NO_RESULTS_ON_PAGE"
36705	//   "PARTIAL_SUCCESS"
36706	//   "REQUIRED_TOS_AGREEMENT"
36707	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
36708	//   "RESOURCE_NOT_DELETED"
36709	//   "SCHEMA_VALIDATION_IGNORED"
36710	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
36711	//   "UNDECLARED_PROPERTIES"
36712	//   "UNREACHABLE"
36713	Code string `json:"code,omitempty"`
36714
36715	// Data: [Output Only] Metadata about this warning in key: value format.
36716	// For example:
36717	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
36718	Data []*RouterListWarningData `json:"data,omitempty"`
36719
36720	// Message: [Output Only] A human-readable description of the warning
36721	// code.
36722	Message string `json:"message,omitempty"`
36723
36724	// ForceSendFields is a list of field names (e.g. "Code") to
36725	// unconditionally include in API requests. By default, fields with
36726	// empty values are omitted from API requests. However, any non-pointer,
36727	// non-interface field appearing in ForceSendFields will be sent to the
36728	// server regardless of whether the field is empty or not. This may be
36729	// used to include empty fields in Patch requests.
36730	ForceSendFields []string `json:"-"`
36731
36732	// NullFields is a list of field names (e.g. "Code") to include in API
36733	// requests with the JSON null value. By default, fields with empty
36734	// values are omitted from API requests. However, any field with an
36735	// empty value appearing in NullFields will be sent to the server as
36736	// null. It is an error if a field in this list has a non-empty value.
36737	// This may be used to include null fields in Patch requests.
36738	NullFields []string `json:"-"`
36739}
36740
36741func (s *RouterListWarning) MarshalJSON() ([]byte, error) {
36742	type NoMethod RouterListWarning
36743	raw := NoMethod(*s)
36744	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36745}
36746
36747type RouterListWarningData struct {
36748	// Key: [Output Only] A key that provides more detail on the warning
36749	// being returned. For example, for warnings where there are no results
36750	// in a list request for a particular zone, this key might be scope and
36751	// the key value might be the zone name. Other examples might be a key
36752	// indicating a deprecated resource and a suggested replacement, or a
36753	// warning about invalid network settings (for example, if an instance
36754	// attempts to perform IP forwarding but is not enabled for IP
36755	// forwarding).
36756	Key string `json:"key,omitempty"`
36757
36758	// Value: [Output Only] A warning data value corresponding to the key.
36759	Value string `json:"value,omitempty"`
36760
36761	// ForceSendFields is a list of field names (e.g. "Key") to
36762	// unconditionally include in API requests. By default, fields with
36763	// empty values are omitted from API requests. However, any non-pointer,
36764	// non-interface field appearing in ForceSendFields will be sent to the
36765	// server regardless of whether the field is empty or not. This may be
36766	// used to include empty fields in Patch requests.
36767	ForceSendFields []string `json:"-"`
36768
36769	// NullFields is a list of field names (e.g. "Key") to include in API
36770	// requests with the JSON null value. By default, fields with empty
36771	// values are omitted from API requests. However, any field with an
36772	// empty value appearing in NullFields will be sent to the server as
36773	// null. It is an error if a field in this list has a non-empty value.
36774	// This may be used to include null fields in Patch requests.
36775	NullFields []string `json:"-"`
36776}
36777
36778func (s *RouterListWarningData) MarshalJSON() ([]byte, error) {
36779	type NoMethod RouterListWarningData
36780	raw := NoMethod(*s)
36781	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36782}
36783
36784// RouterNat: Represents a Nat resource. It enables the VMs within the
36785// specified subnetworks to access Internet without external IP
36786// addresses. It specifies a list of subnetworks (and the ranges within)
36787// that want to use NAT. Customers can also provide the external IPs
36788// that would be used for NAT. GCP would auto-allocate ephemeral IPs if
36789// no external IPs are provided.
36790type RouterNat struct {
36791	// DrainNatIps: A list of URLs of the IP resources to be drained. These
36792	// IPs must be valid static external IPs that have been assigned to the
36793	// NAT. These IPs should be used for updating/patching a NAT only.
36794	DrainNatIps []string `json:"drainNatIps,omitempty"`
36795
36796	EnableEndpointIndependentMapping bool `json:"enableEndpointIndependentMapping,omitempty"`
36797
36798	// IcmpIdleTimeoutSec: Timeout (in seconds) for ICMP connections.
36799	// Defaults to 30s if not set.
36800	IcmpIdleTimeoutSec int64 `json:"icmpIdleTimeoutSec,omitempty"`
36801
36802	// LogConfig: Configure logging on this NAT.
36803	LogConfig *RouterNatLogConfig `json:"logConfig,omitempty"`
36804
36805	// MinPortsPerVm: Minimum number of ports allocated to a VM from this
36806	// NAT config. If not set, a default number of ports is allocated to a
36807	// VM. This is rounded up to the nearest power of 2. For example, if the
36808	// value of this field is 50, at least 64 ports are allocated to a VM.
36809	MinPortsPerVm int64 `json:"minPortsPerVm,omitempty"`
36810
36811	// Name: Unique name of this Nat service. The name must be 1-63
36812	// characters long and comply with RFC1035.
36813	Name string `json:"name,omitempty"`
36814
36815	// NatIpAllocateOption: Specify the NatIpAllocateOption, which can take
36816	// one of the following values:
36817	// - MANUAL_ONLY: Uses only Nat IP addresses provided by customers. When
36818	// there are not enough specified Nat IPs, the Nat service fails for new
36819	// VMs.
36820	// - AUTO_ONLY: Nat IPs are allocated by Google Cloud Platform;
36821	// customers can't specify any Nat IPs. When choosing AUTO_ONLY, then
36822	// nat_ip should be empty.
36823	//
36824	// Possible values:
36825	//   "AUTO_ONLY"
36826	//   "MANUAL_ONLY"
36827	NatIpAllocateOption string `json:"natIpAllocateOption,omitempty"`
36828
36829	// NatIps: A list of URLs of the IP resources used for this Nat service.
36830	// These IP addresses must be valid static external IP addresses
36831	// assigned to the project.
36832	NatIps []string `json:"natIps,omitempty"`
36833
36834	// SourceSubnetworkIpRangesToNat: Specify the Nat option, which can take
36835	// one of the following values:
36836	// - ALL_SUBNETWORKS_ALL_IP_RANGES: All of the IP ranges in every
36837	// Subnetwork are allowed to Nat.
36838	// - ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES: All of the primary IP ranges
36839	// in every Subnetwork are allowed to Nat.
36840	// - LIST_OF_SUBNETWORKS: A list of Subnetworks are allowed to Nat
36841	// (specified in the field subnetwork below) The default is
36842	// SUBNETWORK_IP_RANGE_TO_NAT_OPTION_UNSPECIFIED. Note that if this
36843	// field contains ALL_SUBNETWORKS_ALL_IP_RANGES or
36844	// ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES, then there should not be any
36845	// other Router.Nat section in any Router for this network in this
36846	// region.
36847	//
36848	// Possible values:
36849	//   "ALL_SUBNETWORKS_ALL_IP_RANGES"
36850	//   "ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES"
36851	//   "LIST_OF_SUBNETWORKS"
36852	SourceSubnetworkIpRangesToNat string `json:"sourceSubnetworkIpRangesToNat,omitempty"`
36853
36854	// Subnetworks: A list of Subnetwork resources whose traffic should be
36855	// translated by NAT Gateway. It is used only when LIST_OF_SUBNETWORKS
36856	// is selected for the SubnetworkIpRangeToNatOption above.
36857	Subnetworks []*RouterNatSubnetworkToNat `json:"subnetworks,omitempty"`
36858
36859	// TcpEstablishedIdleTimeoutSec: Timeout (in seconds) for TCP
36860	// established connections. Defaults to 1200s if not set.
36861	TcpEstablishedIdleTimeoutSec int64 `json:"tcpEstablishedIdleTimeoutSec,omitempty"`
36862
36863	// TcpTransitoryIdleTimeoutSec: Timeout (in seconds) for TCP transitory
36864	// connections. Defaults to 30s if not set.
36865	TcpTransitoryIdleTimeoutSec int64 `json:"tcpTransitoryIdleTimeoutSec,omitempty"`
36866
36867	// UdpIdleTimeoutSec: Timeout (in seconds) for UDP connections. Defaults
36868	// to 30s if not set.
36869	UdpIdleTimeoutSec int64 `json:"udpIdleTimeoutSec,omitempty"`
36870
36871	// ForceSendFields is a list of field names (e.g. "DrainNatIps") to
36872	// unconditionally include in API requests. By default, fields with
36873	// empty values are omitted from API requests. However, any non-pointer,
36874	// non-interface field appearing in ForceSendFields will be sent to the
36875	// server regardless of whether the field is empty or not. This may be
36876	// used to include empty fields in Patch requests.
36877	ForceSendFields []string `json:"-"`
36878
36879	// NullFields is a list of field names (e.g. "DrainNatIps") to include
36880	// in API requests with the JSON null value. By default, fields with
36881	// empty values are omitted from API requests. However, any field with
36882	// an empty value appearing in NullFields will be sent to the server as
36883	// null. It is an error if a field in this list has a non-empty value.
36884	// This may be used to include null fields in Patch requests.
36885	NullFields []string `json:"-"`
36886}
36887
36888func (s *RouterNat) MarshalJSON() ([]byte, error) {
36889	type NoMethod RouterNat
36890	raw := NoMethod(*s)
36891	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36892}
36893
36894// RouterNatLogConfig: Configuration of logging on a NAT.
36895type RouterNatLogConfig struct {
36896	// Enable: Indicates whether or not to export logs. This is false by
36897	// default.
36898	Enable bool `json:"enable,omitempty"`
36899
36900	// Filter: Specify the desired filtering of logs on this NAT. If
36901	// unspecified, logs are exported for all connections handled by this
36902	// NAT. This option can take one of the following values:
36903	// - ERRORS_ONLY: Export logs only for connection failures.
36904	// - TRANSLATIONS_ONLY: Export logs only for successful connections.
36905	// - ALL: Export logs for all connections, successful and unsuccessful.
36906	//
36907	// Possible values:
36908	//   "ALL"
36909	//   "ERRORS_ONLY"
36910	//   "TRANSLATIONS_ONLY"
36911	Filter string `json:"filter,omitempty"`
36912
36913	// ForceSendFields is a list of field names (e.g. "Enable") to
36914	// unconditionally include in API requests. By default, fields with
36915	// empty values are omitted from API requests. However, any non-pointer,
36916	// non-interface field appearing in ForceSendFields will be sent to the
36917	// server regardless of whether the field is empty or not. This may be
36918	// used to include empty fields in Patch requests.
36919	ForceSendFields []string `json:"-"`
36920
36921	// NullFields is a list of field names (e.g. "Enable") to include in API
36922	// requests with the JSON null value. By default, fields with empty
36923	// values are omitted from API requests. However, any field with an
36924	// empty value appearing in NullFields will be sent to the server as
36925	// null. It is an error if a field in this list has a non-empty value.
36926	// This may be used to include null fields in Patch requests.
36927	NullFields []string `json:"-"`
36928}
36929
36930func (s *RouterNatLogConfig) MarshalJSON() ([]byte, error) {
36931	type NoMethod RouterNatLogConfig
36932	raw := NoMethod(*s)
36933	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36934}
36935
36936// RouterNatSubnetworkToNat: Defines the IP ranges that want to use NAT
36937// for a subnetwork.
36938type RouterNatSubnetworkToNat struct {
36939	// Name: URL for the subnetwork resource that will use NAT.
36940	Name string `json:"name,omitempty"`
36941
36942	// SecondaryIpRangeNames: A list of the secondary ranges of the
36943	// Subnetwork that are allowed to use NAT. This can be populated only if
36944	// "LIST_OF_SECONDARY_IP_RANGES" is one of the values in
36945	// source_ip_ranges_to_nat.
36946	SecondaryIpRangeNames []string `json:"secondaryIpRangeNames,omitempty"`
36947
36948	// SourceIpRangesToNat: Specify the options for NAT ranges in the
36949	// Subnetwork. All options of a single value are valid except
36950	// NAT_IP_RANGE_OPTION_UNSPECIFIED. The only valid option with multiple
36951	// values is: ["PRIMARY_IP_RANGE", "LIST_OF_SECONDARY_IP_RANGES"]
36952	// Default: [ALL_IP_RANGES]
36953	//
36954	// Possible values:
36955	//   "ALL_IP_RANGES"
36956	//   "LIST_OF_SECONDARY_IP_RANGES"
36957	//   "PRIMARY_IP_RANGE"
36958	SourceIpRangesToNat []string `json:"sourceIpRangesToNat,omitempty"`
36959
36960	// ForceSendFields is a list of field names (e.g. "Name") to
36961	// unconditionally include in API requests. By default, fields with
36962	// empty values are omitted from API requests. However, any non-pointer,
36963	// non-interface field appearing in ForceSendFields will be sent to the
36964	// server regardless of whether the field is empty or not. This may be
36965	// used to include empty fields in Patch requests.
36966	ForceSendFields []string `json:"-"`
36967
36968	// NullFields is a list of field names (e.g. "Name") to include in API
36969	// requests with the JSON null value. By default, fields with empty
36970	// values are omitted from API requests. However, any field with an
36971	// empty value appearing in NullFields will be sent to the server as
36972	// null. It is an error if a field in this list has a non-empty value.
36973	// This may be used to include null fields in Patch requests.
36974	NullFields []string `json:"-"`
36975}
36976
36977func (s *RouterNatSubnetworkToNat) MarshalJSON() ([]byte, error) {
36978	type NoMethod RouterNatSubnetworkToNat
36979	raw := NoMethod(*s)
36980	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36981}
36982
36983type RouterStatus struct {
36984	// BestRoutes: Best routes for this router's network.
36985	BestRoutes []*Route `json:"bestRoutes,omitempty"`
36986
36987	// BestRoutesForRouter: Best routes learned by this router.
36988	BestRoutesForRouter []*Route `json:"bestRoutesForRouter,omitempty"`
36989
36990	BgpPeerStatus []*RouterStatusBgpPeerStatus `json:"bgpPeerStatus,omitempty"`
36991
36992	NatStatus []*RouterStatusNatStatus `json:"natStatus,omitempty"`
36993
36994	// Network: URI of the network to which this router belongs.
36995	Network string `json:"network,omitempty"`
36996
36997	// ForceSendFields is a list of field names (e.g. "BestRoutes") to
36998	// unconditionally include in API requests. By default, fields with
36999	// empty values are omitted from API requests. However, any non-pointer,
37000	// non-interface field appearing in ForceSendFields will be sent to the
37001	// server regardless of whether the field is empty or not. This may be
37002	// used to include empty fields in Patch requests.
37003	ForceSendFields []string `json:"-"`
37004
37005	// NullFields is a list of field names (e.g. "BestRoutes") to include in
37006	// API requests with the JSON null value. By default, fields with empty
37007	// values are omitted from API requests. However, any field with an
37008	// empty value appearing in NullFields will be sent to the server as
37009	// null. It is an error if a field in this list has a non-empty value.
37010	// This may be used to include null fields in Patch requests.
37011	NullFields []string `json:"-"`
37012}
37013
37014func (s *RouterStatus) MarshalJSON() ([]byte, error) {
37015	type NoMethod RouterStatus
37016	raw := NoMethod(*s)
37017	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37018}
37019
37020type RouterStatusBgpPeerStatus struct {
37021	// AdvertisedRoutes: Routes that were advertised to the remote BGP peer
37022	AdvertisedRoutes []*Route `json:"advertisedRoutes,omitempty"`
37023
37024	BfdStatus *BfdStatus `json:"bfdStatus,omitempty"`
37025
37026	// IpAddress: IP address of the local BGP interface.
37027	IpAddress string `json:"ipAddress,omitempty"`
37028
37029	// LinkedVpnTunnel: URL of the VPN tunnel that this BGP peer controls.
37030	LinkedVpnTunnel string `json:"linkedVpnTunnel,omitempty"`
37031
37032	// Name: Name of this BGP peer. Unique within the Routers resource.
37033	Name string `json:"name,omitempty"`
37034
37035	// NumLearnedRoutes: Number of routes learned from the remote BGP Peer.
37036	NumLearnedRoutes int64 `json:"numLearnedRoutes,omitempty"`
37037
37038	// PeerIpAddress: IP address of the remote BGP interface.
37039	PeerIpAddress string `json:"peerIpAddress,omitempty"`
37040
37041	// RouterApplianceInstance: [Output only] URI of the VM instance that is
37042	// used as third-party router appliances such as Next Gen Firewalls,
37043	// Virtual Routers, or Router Appliances. The VM instance is the peer
37044	// side of the BGP session.
37045	RouterApplianceInstance string `json:"routerApplianceInstance,omitempty"`
37046
37047	// State: BGP state as specified in RFC1771.
37048	State string `json:"state,omitempty"`
37049
37050	// Status: Status of the BGP peer: {UP, DOWN}
37051	//
37052	// Possible values:
37053	//   "DOWN"
37054	//   "UNKNOWN"
37055	//   "UP"
37056	Status string `json:"status,omitempty"`
37057
37058	// Uptime: Time this session has been up. Format: 14 years, 51 weeks, 6
37059	// days, 23 hours, 59 minutes, 59 seconds
37060	Uptime string `json:"uptime,omitempty"`
37061
37062	// UptimeSeconds: Time this session has been up, in seconds. Format: 145
37063	UptimeSeconds string `json:"uptimeSeconds,omitempty"`
37064
37065	// ForceSendFields is a list of field names (e.g. "AdvertisedRoutes") to
37066	// unconditionally include in API requests. By default, fields with
37067	// empty values are omitted from API requests. However, any non-pointer,
37068	// non-interface field appearing in ForceSendFields will be sent to the
37069	// server regardless of whether the field is empty or not. This may be
37070	// used to include empty fields in Patch requests.
37071	ForceSendFields []string `json:"-"`
37072
37073	// NullFields is a list of field names (e.g. "AdvertisedRoutes") to
37074	// include in API requests with the JSON null value. By default, fields
37075	// with empty values are omitted from API requests. However, any field
37076	// with an empty value appearing in NullFields will be sent to the
37077	// server as null. It is an error if a field in this list has a
37078	// non-empty value. This may be used to include null fields in Patch
37079	// requests.
37080	NullFields []string `json:"-"`
37081}
37082
37083func (s *RouterStatusBgpPeerStatus) MarshalJSON() ([]byte, error) {
37084	type NoMethod RouterStatusBgpPeerStatus
37085	raw := NoMethod(*s)
37086	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37087}
37088
37089// RouterStatusNatStatus: Status of a NAT contained in this router.
37090type RouterStatusNatStatus struct {
37091	// AutoAllocatedNatIps: A list of IPs auto-allocated for NAT. Example:
37092	// ["1.1.1.1", "129.2.16.89"]
37093	AutoAllocatedNatIps []string `json:"autoAllocatedNatIps,omitempty"`
37094
37095	// DrainAutoAllocatedNatIps: A list of IPs auto-allocated for NAT that
37096	// are in drain mode. Example: ["1.1.1.1", "179.12.26.133"].
37097	DrainAutoAllocatedNatIps []string `json:"drainAutoAllocatedNatIps,omitempty"`
37098
37099	// DrainUserAllocatedNatIps: A list of IPs user-allocated for NAT that
37100	// are in drain mode. Example: ["1.1.1.1", "179.12.26.133"].
37101	DrainUserAllocatedNatIps []string `json:"drainUserAllocatedNatIps,omitempty"`
37102
37103	// MinExtraNatIpsNeeded: The number of extra IPs to allocate. This will
37104	// be greater than 0 only if user-specified IPs are NOT enough to allow
37105	// all configured VMs to use NAT. This value is meaningful only when
37106	// auto-allocation of NAT IPs is *not* used.
37107	MinExtraNatIpsNeeded int64 `json:"minExtraNatIpsNeeded,omitempty"`
37108
37109	// Name: Unique name of this NAT.
37110	Name string `json:"name,omitempty"`
37111
37112	// NumVmEndpointsWithNatMappings: Number of VM endpoints (i.e., Nics)
37113	// that can use NAT.
37114	NumVmEndpointsWithNatMappings int64 `json:"numVmEndpointsWithNatMappings,omitempty"`
37115
37116	// UserAllocatedNatIpResources: A list of fully qualified URLs of
37117	// reserved IP address resources.
37118	UserAllocatedNatIpResources []string `json:"userAllocatedNatIpResources,omitempty"`
37119
37120	// UserAllocatedNatIps: A list of IPs user-allocated for NAT. They will
37121	// be raw IP strings like "179.12.26.133".
37122	UserAllocatedNatIps []string `json:"userAllocatedNatIps,omitempty"`
37123
37124	// ForceSendFields is a list of field names (e.g. "AutoAllocatedNatIps")
37125	// to unconditionally include in API requests. By default, fields with
37126	// empty values are omitted from API requests. However, any non-pointer,
37127	// non-interface field appearing in ForceSendFields will be sent to the
37128	// server regardless of whether the field is empty or not. This may be
37129	// used to include empty fields in Patch requests.
37130	ForceSendFields []string `json:"-"`
37131
37132	// NullFields is a list of field names (e.g. "AutoAllocatedNatIps") to
37133	// include in API requests with the JSON null value. By default, fields
37134	// with empty values are omitted from API requests. However, any field
37135	// with an empty value appearing in NullFields will be sent to the
37136	// server as null. It is an error if a field in this list has a
37137	// non-empty value. This may be used to include null fields in Patch
37138	// requests.
37139	NullFields []string `json:"-"`
37140}
37141
37142func (s *RouterStatusNatStatus) MarshalJSON() ([]byte, error) {
37143	type NoMethod RouterStatusNatStatus
37144	raw := NoMethod(*s)
37145	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37146}
37147
37148type RouterStatusResponse struct {
37149	// Kind: Type of resource.
37150	Kind string `json:"kind,omitempty"`
37151
37152	Result *RouterStatus `json:"result,omitempty"`
37153
37154	// ServerResponse contains the HTTP response code and headers from the
37155	// server.
37156	googleapi.ServerResponse `json:"-"`
37157
37158	// ForceSendFields is a list of field names (e.g. "Kind") to
37159	// unconditionally include in API requests. By default, fields with
37160	// empty values are omitted from API requests. However, any non-pointer,
37161	// non-interface field appearing in ForceSendFields will be sent to the
37162	// server regardless of whether the field is empty or not. This may be
37163	// used to include empty fields in Patch requests.
37164	ForceSendFields []string `json:"-"`
37165
37166	// NullFields is a list of field names (e.g. "Kind") to include in API
37167	// requests with the JSON null value. By default, fields with empty
37168	// values are omitted from API requests. However, any field with an
37169	// empty value appearing in NullFields will be sent to the server as
37170	// null. It is an error if a field in this list has a non-empty value.
37171	// This may be used to include null fields in Patch requests.
37172	NullFields []string `json:"-"`
37173}
37174
37175func (s *RouterStatusResponse) MarshalJSON() ([]byte, error) {
37176	type NoMethod RouterStatusResponse
37177	raw := NoMethod(*s)
37178	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37179}
37180
37181type RoutersPreviewResponse struct {
37182	// Resource: Preview of given router.
37183	Resource *Router `json:"resource,omitempty"`
37184
37185	// ServerResponse contains the HTTP response code and headers from the
37186	// server.
37187	googleapi.ServerResponse `json:"-"`
37188
37189	// ForceSendFields is a list of field names (e.g. "Resource") to
37190	// unconditionally include in API requests. By default, fields with
37191	// empty values are omitted from API requests. However, any non-pointer,
37192	// non-interface field appearing in ForceSendFields will be sent to the
37193	// server regardless of whether the field is empty or not. This may be
37194	// used to include empty fields in Patch requests.
37195	ForceSendFields []string `json:"-"`
37196
37197	// NullFields is a list of field names (e.g. "Resource") to include in
37198	// API requests with the JSON null value. By default, fields with empty
37199	// values are omitted from API requests. However, any field with an
37200	// empty value appearing in NullFields will be sent to the server as
37201	// null. It is an error if a field in this list has a non-empty value.
37202	// This may be used to include null fields in Patch requests.
37203	NullFields []string `json:"-"`
37204}
37205
37206func (s *RoutersPreviewResponse) MarshalJSON() ([]byte, error) {
37207	type NoMethod RoutersPreviewResponse
37208	raw := NoMethod(*s)
37209	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37210}
37211
37212type RoutersScopedList struct {
37213	// Routers: A list of routers contained in this scope.
37214	Routers []*Router `json:"routers,omitempty"`
37215
37216	// Warning: Informational warning which replaces the list of routers
37217	// when the list is empty.
37218	Warning *RoutersScopedListWarning `json:"warning,omitempty"`
37219
37220	// ForceSendFields is a list of field names (e.g. "Routers") to
37221	// unconditionally include in API requests. By default, fields with
37222	// empty values are omitted from API requests. However, any non-pointer,
37223	// non-interface field appearing in ForceSendFields will be sent to the
37224	// server regardless of whether the field is empty or not. This may be
37225	// used to include empty fields in Patch requests.
37226	ForceSendFields []string `json:"-"`
37227
37228	// NullFields is a list of field names (e.g. "Routers") to include in
37229	// API requests with the JSON null value. By default, fields with empty
37230	// values are omitted from API requests. However, any field with an
37231	// empty value appearing in NullFields will be sent to the server as
37232	// null. It is an error if a field in this list has a non-empty value.
37233	// This may be used to include null fields in Patch requests.
37234	NullFields []string `json:"-"`
37235}
37236
37237func (s *RoutersScopedList) MarshalJSON() ([]byte, error) {
37238	type NoMethod RoutersScopedList
37239	raw := NoMethod(*s)
37240	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37241}
37242
37243// RoutersScopedListWarning: Informational warning which replaces the
37244// list of routers when the list is empty.
37245type RoutersScopedListWarning struct {
37246	// Code: [Output Only] A warning code, if applicable. For example,
37247	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
37248	// the response.
37249	//
37250	// Possible values:
37251	//   "CLEANUP_FAILED"
37252	//   "DEPRECATED_RESOURCE_USED"
37253	//   "DEPRECATED_TYPE_USED"
37254	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
37255	//   "EXPERIMENTAL_TYPE_USED"
37256	//   "EXTERNAL_API_WARNING"
37257	//   "FIELD_VALUE_OVERRIDEN"
37258	//   "INJECTED_KERNELS_DEPRECATED"
37259	//   "LARGE_DEPLOYMENT_WARNING"
37260	//   "MISSING_TYPE_DEPENDENCY"
37261	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
37262	//   "NEXT_HOP_CANNOT_IP_FORWARD"
37263	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
37264	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
37265	//   "NEXT_HOP_NOT_RUNNING"
37266	//   "NOT_CRITICAL_ERROR"
37267	//   "NO_RESULTS_ON_PAGE"
37268	//   "PARTIAL_SUCCESS"
37269	//   "REQUIRED_TOS_AGREEMENT"
37270	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
37271	//   "RESOURCE_NOT_DELETED"
37272	//   "SCHEMA_VALIDATION_IGNORED"
37273	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
37274	//   "UNDECLARED_PROPERTIES"
37275	//   "UNREACHABLE"
37276	Code string `json:"code,omitempty"`
37277
37278	// Data: [Output Only] Metadata about this warning in key: value format.
37279	// For example:
37280	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
37281	Data []*RoutersScopedListWarningData `json:"data,omitempty"`
37282
37283	// Message: [Output Only] A human-readable description of the warning
37284	// code.
37285	Message string `json:"message,omitempty"`
37286
37287	// ForceSendFields is a list of field names (e.g. "Code") to
37288	// unconditionally include in API requests. By default, fields with
37289	// empty values are omitted from API requests. However, any non-pointer,
37290	// non-interface field appearing in ForceSendFields will be sent to the
37291	// server regardless of whether the field is empty or not. This may be
37292	// used to include empty fields in Patch requests.
37293	ForceSendFields []string `json:"-"`
37294
37295	// NullFields is a list of field names (e.g. "Code") to include in API
37296	// requests with the JSON null value. By default, fields with empty
37297	// values are omitted from API requests. However, any field with an
37298	// empty value appearing in NullFields will be sent to the server as
37299	// null. It is an error if a field in this list has a non-empty value.
37300	// This may be used to include null fields in Patch requests.
37301	NullFields []string `json:"-"`
37302}
37303
37304func (s *RoutersScopedListWarning) MarshalJSON() ([]byte, error) {
37305	type NoMethod RoutersScopedListWarning
37306	raw := NoMethod(*s)
37307	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37308}
37309
37310type RoutersScopedListWarningData struct {
37311	// Key: [Output Only] A key that provides more detail on the warning
37312	// being returned. For example, for warnings where there are no results
37313	// in a list request for a particular zone, this key might be scope and
37314	// the key value might be the zone name. Other examples might be a key
37315	// indicating a deprecated resource and a suggested replacement, or a
37316	// warning about invalid network settings (for example, if an instance
37317	// attempts to perform IP forwarding but is not enabled for IP
37318	// forwarding).
37319	Key string `json:"key,omitempty"`
37320
37321	// Value: [Output Only] A warning data value corresponding to the key.
37322	Value string `json:"value,omitempty"`
37323
37324	// ForceSendFields is a list of field names (e.g. "Key") to
37325	// unconditionally include in API requests. By default, fields with
37326	// empty values are omitted from API requests. However, any non-pointer,
37327	// non-interface field appearing in ForceSendFields will be sent to the
37328	// server regardless of whether the field is empty or not. This may be
37329	// used to include empty fields in Patch requests.
37330	ForceSendFields []string `json:"-"`
37331
37332	// NullFields is a list of field names (e.g. "Key") to include in API
37333	// requests with the JSON null value. By default, fields with empty
37334	// values are omitted from API requests. However, any field with an
37335	// empty value appearing in NullFields will be sent to the server as
37336	// null. It is an error if a field in this list has a non-empty value.
37337	// This may be used to include null fields in Patch requests.
37338	NullFields []string `json:"-"`
37339}
37340
37341func (s *RoutersScopedListWarningData) MarshalJSON() ([]byte, error) {
37342	type NoMethod RoutersScopedListWarningData
37343	raw := NoMethod(*s)
37344	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37345}
37346
37347// Rule: A rule to be applied in a Policy.
37348type Rule struct {
37349	// Action: Required
37350	//
37351	// Possible values:
37352	//   "ALLOW"
37353	//   "ALLOW_WITH_LOG"
37354	//   "DENY"
37355	//   "DENY_WITH_LOG"
37356	//   "LOG"
37357	//   "NO_ACTION"
37358	Action string `json:"action,omitempty"`
37359
37360	// Conditions: Additional restrictions that must be met. All conditions
37361	// must pass for the rule to match.
37362	Conditions []*Condition `json:"conditions,omitempty"`
37363
37364	// Description: Human-readable description of the rule.
37365	Description string `json:"description,omitempty"`
37366
37367	// Ins: If one or more 'in' clauses are specified, the rule matches if
37368	// the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
37369	Ins []string `json:"ins,omitempty"`
37370
37371	// LogConfigs: The config returned to callers of
37372	// tech.iam.IAM.CheckPolicy for any entries that match the LOG action.
37373	LogConfigs []*LogConfig `json:"logConfigs,omitempty"`
37374
37375	// NotIns: If one or more 'not_in' clauses are specified, the rule
37376	// matches if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the
37377	// entries.
37378	NotIns []string `json:"notIns,omitempty"`
37379
37380	// Permissions: A permission is a string of form '..' (e.g.,
37381	// 'storage.buckets.list'). A value of '*' matches all permissions, and
37382	// a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
37383	Permissions []string `json:"permissions,omitempty"`
37384
37385	// ForceSendFields is a list of field names (e.g. "Action") to
37386	// unconditionally include in API requests. By default, fields with
37387	// empty values are omitted from API requests. However, any non-pointer,
37388	// non-interface field appearing in ForceSendFields will be sent to the
37389	// server regardless of whether the field is empty or not. This may be
37390	// used to include empty fields in Patch requests.
37391	ForceSendFields []string `json:"-"`
37392
37393	// NullFields is a list of field names (e.g. "Action") to include in API
37394	// requests with the JSON null value. By default, fields with empty
37395	// values are omitted from API requests. However, any field with an
37396	// empty value appearing in NullFields will be sent to the server as
37397	// null. It is an error if a field in this list has a non-empty value.
37398	// This may be used to include null fields in Patch requests.
37399	NullFields []string `json:"-"`
37400}
37401
37402func (s *Rule) MarshalJSON() ([]byte, error) {
37403	type NoMethod Rule
37404	raw := NoMethod(*s)
37405	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37406}
37407
37408type SSLHealthCheck struct {
37409	// Port: The TCP port number for the health check request. The default
37410	// value is 443. Valid values are 1 through 65535.
37411	Port int64 `json:"port,omitempty"`
37412
37413	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
37414	// both port and port_name are defined, port takes precedence.
37415	PortName string `json:"portName,omitempty"`
37416
37417	// PortSpecification: Specifies how port is selected for health
37418	// checking, can be one of following values:
37419	// USE_FIXED_PORT: The port number in port is used for health
37420	// checking.
37421	// USE_NAMED_PORT: The portName is used for health
37422	// checking.
37423	// USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for
37424	// each network endpoint is used for health checking. For other
37425	// backends, the port or named port specified in the Backend Service is
37426	// used for health checking.
37427	//
37428	//
37429	// If not specified, SSL health check follows behavior specified in port
37430	// and portName fields.
37431	//
37432	// Possible values:
37433	//   "USE_FIXED_PORT"
37434	//   "USE_NAMED_PORT"
37435	//   "USE_SERVING_PORT"
37436	PortSpecification string `json:"portSpecification,omitempty"`
37437
37438	// ProxyHeader: Specifies the type of proxy header to append before
37439	// sending data to the backend, either NONE or PROXY_V1. The default is
37440	// NONE.
37441	//
37442	// Possible values:
37443	//   "NONE"
37444	//   "PROXY_V1"
37445	ProxyHeader string `json:"proxyHeader,omitempty"`
37446
37447	// Request: The application data to send once the SSL connection has
37448	// been established (default value is empty). If both request and
37449	// response are empty, the connection establishment alone will indicate
37450	// health. The request data can only be ASCII.
37451	Request string `json:"request,omitempty"`
37452
37453	// Response: The bytes to match against the beginning of the response
37454	// data. If left empty (the default value), any response will indicate
37455	// health. The response data can only be ASCII.
37456	Response string `json:"response,omitempty"`
37457
37458	// ForceSendFields is a list of field names (e.g. "Port") to
37459	// unconditionally include in API requests. By default, fields with
37460	// empty values are omitted from API requests. However, any non-pointer,
37461	// non-interface field appearing in ForceSendFields will be sent to the
37462	// server regardless of whether the field is empty or not. This may be
37463	// used to include empty fields in Patch requests.
37464	ForceSendFields []string `json:"-"`
37465
37466	// NullFields is a list of field names (e.g. "Port") to include in API
37467	// requests with the JSON null value. By default, fields with empty
37468	// values are omitted from API requests. However, any field with an
37469	// empty value appearing in NullFields will be sent to the server as
37470	// null. It is an error if a field in this list has a non-empty value.
37471	// This may be used to include null fields in Patch requests.
37472	NullFields []string `json:"-"`
37473}
37474
37475func (s *SSLHealthCheck) MarshalJSON() ([]byte, error) {
37476	type NoMethod SSLHealthCheck
37477	raw := NoMethod(*s)
37478	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37479}
37480
37481// SavedAttachedDisk: An instance-attached disk resource.
37482type SavedAttachedDisk struct {
37483	// AutoDelete: Specifies whether the disk will be auto-deleted when the
37484	// instance is deleted (but not when the disk is detached from the
37485	// instance).
37486	AutoDelete bool `json:"autoDelete,omitempty"`
37487
37488	// Boot: Indicates that this is a boot disk. The virtual machine will
37489	// use the first partition of the disk for its root filesystem.
37490	Boot bool `json:"boot,omitempty"`
37491
37492	// DeviceName: Specifies the name of the disk attached to the source
37493	// instance.
37494	DeviceName string `json:"deviceName,omitempty"`
37495
37496	// DiskEncryptionKey: The encryption key for the disk.
37497	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
37498
37499	// DiskSizeGb: The size of the disk in base-2 GB.
37500	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
37501
37502	// DiskType: [Output Only] URL of the disk type resource. For example:
37503	// projects/project/zones/zone/diskTypes/pd-standard or pd-ssd
37504	DiskType string `json:"diskType,omitempty"`
37505
37506	// GuestOsFeatures: A list of features to enable on the guest operating
37507	// system. Applicable only for bootable images. Read  Enabling guest
37508	// operating system features to see a list of available options.
37509	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
37510
37511	// Index: Specifies zero-based index of the disk that is attached to the
37512	// source instance.
37513	Index int64 `json:"index,omitempty"`
37514
37515	// Interface: Specifies the disk interface to use for attaching this
37516	// disk, which is either SCSI or NVME.
37517	//
37518	// Possible values:
37519	//   "NVME"
37520	//   "SCSI"
37521	Interface string `json:"interface,omitempty"`
37522
37523	// Kind: [Output Only] Type of the resource. Always compute#attachedDisk
37524	// for attached disks.
37525	Kind string `json:"kind,omitempty"`
37526
37527	// Licenses: [Output Only] Any valid publicly visible licenses.
37528	Licenses []string `json:"licenses,omitempty"`
37529
37530	// Mode: The mode in which this disk is attached to the source instance,
37531	// either READ_WRITE or READ_ONLY.
37532	//
37533	// Possible values:
37534	//   "READ_ONLY"
37535	//   "READ_WRITE"
37536	Mode string `json:"mode,omitempty"`
37537
37538	// Source: Specifies a URL of the disk attached to the source instance.
37539	Source string `json:"source,omitempty"`
37540
37541	// StorageBytes: [Output Only] A size of the storage used by the disk's
37542	// snapshot by this machine image.
37543	StorageBytes int64 `json:"storageBytes,omitempty,string"`
37544
37545	// StorageBytesStatus: [Output Only] An indicator whether storageBytes
37546	// is in a stable state or it is being adjusted as a result of shared
37547	// storage reallocation. This status can either be UPDATING, meaning the
37548	// size of the snapshot is being updated, or UP_TO_DATE, meaning the
37549	// size of the snapshot is up-to-date.
37550	//
37551	// Possible values:
37552	//   "UPDATING"
37553	//   "UP_TO_DATE"
37554	StorageBytesStatus string `json:"storageBytesStatus,omitempty"`
37555
37556	// Type: Specifies the type of the attached disk, either SCRATCH or
37557	// PERSISTENT.
37558	//
37559	// Possible values:
37560	//   "PERSISTENT"
37561	//   "SCRATCH"
37562	Type string `json:"type,omitempty"`
37563
37564	// ForceSendFields is a list of field names (e.g. "AutoDelete") to
37565	// unconditionally include in API requests. By default, fields with
37566	// empty values are omitted from API requests. However, any non-pointer,
37567	// non-interface field appearing in ForceSendFields will be sent to the
37568	// server regardless of whether the field is empty or not. This may be
37569	// used to include empty fields in Patch requests.
37570	ForceSendFields []string `json:"-"`
37571
37572	// NullFields is a list of field names (e.g. "AutoDelete") to include in
37573	// API requests with the JSON null value. By default, fields with empty
37574	// values are omitted from API requests. However, any field with an
37575	// empty value appearing in NullFields will be sent to the server as
37576	// null. It is an error if a field in this list has a non-empty value.
37577	// This may be used to include null fields in Patch requests.
37578	NullFields []string `json:"-"`
37579}
37580
37581func (s *SavedAttachedDisk) MarshalJSON() ([]byte, error) {
37582	type NoMethod SavedAttachedDisk
37583	raw := NoMethod(*s)
37584	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37585}
37586
37587type ScalingScheduleStatus struct {
37588	// LastStartTime: [Output Only] The last time the scaling schedule
37589	// became active. Note: this is a timestamp when a schedule actually
37590	// became active, not when it was planned to do so. The timestamp is in
37591	// RFC3339 text format.
37592	LastStartTime string `json:"lastStartTime,omitempty"`
37593
37594	// NextStartTime: [Output Only] The next time the scaling schedule is to
37595	// become active. Note: this is a timestamp when a schedule is planned
37596	// to run, but the actual time might be slightly different. The
37597	// timestamp is in RFC3339 text format.
37598	NextStartTime string `json:"nextStartTime,omitempty"`
37599
37600	// State: [Output Only] The current state of a scaling schedule.
37601	//
37602	// Possible values:
37603	//   "ACTIVE"
37604	//   "DISABLED"
37605	//   "OBSOLETE"
37606	//   "READY"
37607	State string `json:"state,omitempty"`
37608
37609	// ForceSendFields is a list of field names (e.g. "LastStartTime") to
37610	// unconditionally include in API requests. By default, fields with
37611	// empty values are omitted from API requests. However, any non-pointer,
37612	// non-interface field appearing in ForceSendFields will be sent to the
37613	// server regardless of whether the field is empty or not. This may be
37614	// used to include empty fields in Patch requests.
37615	ForceSendFields []string `json:"-"`
37616
37617	// NullFields is a list of field names (e.g. "LastStartTime") to include
37618	// in API requests with the JSON null value. By default, fields with
37619	// empty values are omitted from API requests. However, any field with
37620	// an empty value appearing in NullFields will be sent to the server as
37621	// null. It is an error if a field in this list has a non-empty value.
37622	// This may be used to include null fields in Patch requests.
37623	NullFields []string `json:"-"`
37624}
37625
37626func (s *ScalingScheduleStatus) MarshalJSON() ([]byte, error) {
37627	type NoMethod ScalingScheduleStatus
37628	raw := NoMethod(*s)
37629	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37630}
37631
37632// Scheduling: Sets the scheduling options for an Instance. NextID: 20
37633type Scheduling struct {
37634	// AutomaticRestart: Specifies whether the instance should be
37635	// automatically restarted if it is terminated by Compute Engine (not
37636	// terminated by a user). You can only set the automatic restart option
37637	// for standard instances. Preemptible instances cannot be automatically
37638	// restarted.
37639	//
37640	// By default, this is set to true so an instance is automatically
37641	// restarted if it is terminated by Compute Engine.
37642	AutomaticRestart *bool `json:"automaticRestart,omitempty"`
37643
37644	// LocationHint: An opaque location hint used to place the instance
37645	// close to other resources. This field is for use by internal tools
37646	// that use the public API.
37647	LocationHint string `json:"locationHint,omitempty"`
37648
37649	// MinNodeCpus: The minimum number of virtual CPUs this instance will
37650	// consume when running on a sole-tenant node.
37651	MinNodeCpus int64 `json:"minNodeCpus,omitempty"`
37652
37653	// NodeAffinities: A set of node affinity and anti-affinity
37654	// configurations. Refer to Configuring node affinity for more
37655	// information. Overrides reservationAffinity.
37656	NodeAffinities []*SchedulingNodeAffinity `json:"nodeAffinities,omitempty"`
37657
37658	// OnHostMaintenance: Defines the maintenance behavior for this
37659	// instance. For standard instances, the default behavior is MIGRATE.
37660	// For preemptible instances, the default and only possible behavior is
37661	// TERMINATE. For more information, see Setting Instance Scheduling
37662	// Options.
37663	//
37664	// Possible values:
37665	//   "MIGRATE"
37666	//   "TERMINATE"
37667	OnHostMaintenance string `json:"onHostMaintenance,omitempty"`
37668
37669	// Preemptible: Defines whether the instance is preemptible. This can
37670	// only be set during instance creation or while the instance is stopped
37671	// and therefore, in a `TERMINATED` state. See Instance Life Cycle for
37672	// more information on the possible instance states.
37673	Preemptible bool `json:"preemptible,omitempty"`
37674
37675	// ForceSendFields is a list of field names (e.g. "AutomaticRestart") to
37676	// unconditionally include in API requests. By default, fields with
37677	// empty values are omitted from API requests. However, any non-pointer,
37678	// non-interface field appearing in ForceSendFields will be sent to the
37679	// server regardless of whether the field is empty or not. This may be
37680	// used to include empty fields in Patch requests.
37681	ForceSendFields []string `json:"-"`
37682
37683	// NullFields is a list of field names (e.g. "AutomaticRestart") to
37684	// include in API requests with the JSON null value. By default, fields
37685	// with empty values are omitted from API requests. However, any field
37686	// with an empty value appearing in NullFields will be sent to the
37687	// server as null. It is an error if a field in this list has a
37688	// non-empty value. This may be used to include null fields in Patch
37689	// requests.
37690	NullFields []string `json:"-"`
37691}
37692
37693func (s *Scheduling) MarshalJSON() ([]byte, error) {
37694	type NoMethod Scheduling
37695	raw := NoMethod(*s)
37696	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37697}
37698
37699// SchedulingNodeAffinity: Node Affinity: the configuration of desired
37700// nodes onto which this Instance could be scheduled.
37701type SchedulingNodeAffinity struct {
37702	// Key: Corresponds to the label key of Node resource.
37703	Key string `json:"key,omitempty"`
37704
37705	// Operator: Defines the operation of node selection. Valid operators
37706	// are IN for affinity and NOT_IN for anti-affinity.
37707	//
37708	// Possible values:
37709	//   "IN"
37710	//   "NOT_IN"
37711	//   "OPERATOR_UNSPECIFIED"
37712	Operator string `json:"operator,omitempty"`
37713
37714	// Values: Corresponds to the label values of Node resource.
37715	Values []string `json:"values,omitempty"`
37716
37717	// ForceSendFields is a list of field names (e.g. "Key") to
37718	// unconditionally include in API requests. By default, fields with
37719	// empty values are omitted from API requests. However, any non-pointer,
37720	// non-interface field appearing in ForceSendFields will be sent to the
37721	// server regardless of whether the field is empty or not. This may be
37722	// used to include empty fields in Patch requests.
37723	ForceSendFields []string `json:"-"`
37724
37725	// NullFields is a list of field names (e.g. "Key") to include in API
37726	// requests with the JSON null value. By default, fields with empty
37727	// values are omitted from API requests. However, any field with an
37728	// empty value appearing in NullFields will be sent to the server as
37729	// null. It is an error if a field in this list has a non-empty value.
37730	// This may be used to include null fields in Patch requests.
37731	NullFields []string `json:"-"`
37732}
37733
37734func (s *SchedulingNodeAffinity) MarshalJSON() ([]byte, error) {
37735	type NoMethod SchedulingNodeAffinity
37736	raw := NoMethod(*s)
37737	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37738}
37739
37740// Screenshot: An instance's screenshot.
37741type Screenshot struct {
37742	// Contents: [Output Only] The Base64-encoded screenshot data.
37743	Contents string `json:"contents,omitempty"`
37744
37745	// Kind: [Output Only] Type of the resource. Always compute#screenshot
37746	// for the screenshots.
37747	Kind string `json:"kind,omitempty"`
37748
37749	// ServerResponse contains the HTTP response code and headers from the
37750	// server.
37751	googleapi.ServerResponse `json:"-"`
37752
37753	// ForceSendFields is a list of field names (e.g. "Contents") to
37754	// unconditionally include in API requests. By default, fields with
37755	// empty values are omitted from API requests. However, any non-pointer,
37756	// non-interface field appearing in ForceSendFields will be sent to the
37757	// server regardless of whether the field is empty or not. This may be
37758	// used to include empty fields in Patch requests.
37759	ForceSendFields []string `json:"-"`
37760
37761	// NullFields is a list of field names (e.g. "Contents") to include in
37762	// API requests with the JSON null value. By default, fields with empty
37763	// values are omitted from API requests. However, any field with an
37764	// empty value appearing in NullFields will be sent to the server as
37765	// null. It is an error if a field in this list has a non-empty value.
37766	// This may be used to include null fields in Patch requests.
37767	NullFields []string `json:"-"`
37768}
37769
37770func (s *Screenshot) MarshalJSON() ([]byte, error) {
37771	type NoMethod Screenshot
37772	raw := NoMethod(*s)
37773	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37774}
37775
37776type SecurityPoliciesListPreconfiguredExpressionSetsResponse struct {
37777	PreconfiguredExpressionSets *SecurityPoliciesWafConfig `json:"preconfiguredExpressionSets,omitempty"`
37778
37779	// ServerResponse contains the HTTP response code and headers from the
37780	// server.
37781	googleapi.ServerResponse `json:"-"`
37782
37783	// ForceSendFields is a list of field names (e.g.
37784	// "PreconfiguredExpressionSets") to unconditionally include in API
37785	// requests. By default, fields with empty values are omitted from API
37786	// requests. However, any non-pointer, non-interface field appearing in
37787	// ForceSendFields will be sent to the server regardless of whether the
37788	// field is empty or not. This may be used to include empty fields in
37789	// Patch requests.
37790	ForceSendFields []string `json:"-"`
37791
37792	// NullFields is a list of field names (e.g.
37793	// "PreconfiguredExpressionSets") to include in API requests with the
37794	// JSON null value. By default, fields with empty values are omitted
37795	// from API requests. However, any field with an empty value appearing
37796	// in NullFields will be sent to the server as null. It is an error if a
37797	// field in this list has a non-empty value. This may be used to include
37798	// null fields in Patch requests.
37799	NullFields []string `json:"-"`
37800}
37801
37802func (s *SecurityPoliciesListPreconfiguredExpressionSetsResponse) MarshalJSON() ([]byte, error) {
37803	type NoMethod SecurityPoliciesListPreconfiguredExpressionSetsResponse
37804	raw := NoMethod(*s)
37805	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37806}
37807
37808type SecurityPoliciesWafConfig struct {
37809	WafRules *PreconfiguredWafSet `json:"wafRules,omitempty"`
37810
37811	// ForceSendFields is a list of field names (e.g. "WafRules") to
37812	// unconditionally include in API requests. By default, fields with
37813	// empty values are omitted from API requests. However, any non-pointer,
37814	// non-interface field appearing in ForceSendFields will be sent to the
37815	// server regardless of whether the field is empty or not. This may be
37816	// used to include empty fields in Patch requests.
37817	ForceSendFields []string `json:"-"`
37818
37819	// NullFields is a list of field names (e.g. "WafRules") to include in
37820	// API requests with the JSON null value. By default, fields with empty
37821	// values are omitted from API requests. However, any field with an
37822	// empty value appearing in NullFields will be sent to the server as
37823	// null. It is an error if a field in this list has a non-empty value.
37824	// This may be used to include null fields in Patch requests.
37825	NullFields []string `json:"-"`
37826}
37827
37828func (s *SecurityPoliciesWafConfig) MarshalJSON() ([]byte, error) {
37829	type NoMethod SecurityPoliciesWafConfig
37830	raw := NoMethod(*s)
37831	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37832}
37833
37834// SecurityPolicy: Represents a Google Cloud Armor security policy
37835// resource.
37836//
37837// Only external backend services that use load balancers can reference
37838// a security policy. For more information, see  Google Cloud Armor
37839// security policy overview. (== resource_for
37840// {$api_version}.securityPolicies ==)
37841type SecurityPolicy struct {
37842	AdaptiveProtectionConfig *SecurityPolicyAdaptiveProtectionConfig `json:"adaptiveProtectionConfig,omitempty"`
37843
37844	// Associations: A list of associations that belong to this policy.
37845	Associations []*SecurityPolicyAssociation `json:"associations,omitempty"`
37846
37847	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
37848	// format.
37849	CreationTimestamp string `json:"creationTimestamp,omitempty"`
37850
37851	// Description: An optional description of this resource. Provide this
37852	// property when you create the resource.
37853	Description string `json:"description,omitempty"`
37854
37855	// DisplayName: User-provided name of the Organization security plicy.
37856	// The name should be unique in the organization in which the security
37857	// policy is created. This should only be used when SecurityPolicyType
37858	// is FIREWALL. The name must be 1-63 characters long, and comply with
37859	// https://www.ietf.org/rfc/rfc1035.txt. Specifically, the name must be
37860	// 1-63 characters long and match the regular expression
37861	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
37862	// a lowercase letter, and all following characters must be a dash,
37863	// lowercase letter, or digit, except the last character, which cannot
37864	// be a dash.
37865	DisplayName string `json:"displayName,omitempty"`
37866
37867	// Fingerprint: Specifies a fingerprint for this resource, which is
37868	// essentially a hash of the metadata's contents and used for optimistic
37869	// locking. The fingerprint is initially generated by Compute Engine and
37870	// changes after every request to modify or update metadata. You must
37871	// always provide an up-to-date fingerprint hash in order to update or
37872	// change metadata, otherwise the request will fail with error 412
37873	// conditionNotMet.
37874	//
37875	// To see the latest fingerprint, make get() request to the security
37876	// policy.
37877	Fingerprint string `json:"fingerprint,omitempty"`
37878
37879	// Id: [Output Only] The unique identifier for the resource. This
37880	// identifier is defined by the server.
37881	Id uint64 `json:"id,omitempty,string"`
37882
37883	// Kind: [Output only] Type of the resource. Always
37884	// compute#securityPolicyfor security policies
37885	Kind string `json:"kind,omitempty"`
37886
37887	// LabelFingerprint: A fingerprint for the labels being applied to this
37888	// security policy, which is essentially a hash of the labels set used
37889	// for optimistic locking. The fingerprint is initially generated by
37890	// Compute Engine and changes after every request to modify or update
37891	// labels. You must always provide an up-to-date fingerprint hash in
37892	// order to update or change labels.
37893	//
37894	// To see the latest fingerprint, make get() request to the security
37895	// policy.
37896	LabelFingerprint string `json:"labelFingerprint,omitempty"`
37897
37898	// Labels: Labels for this resource. These can only be added or modified
37899	// by the setLabels method. Each label key/value pair must comply with
37900	// RFC1035. Label values may be empty.
37901	Labels map[string]string `json:"labels,omitempty"`
37902
37903	// Name: Name of the resource. Provided by the client when the resource
37904	// is created. The name must be 1-63 characters long, and comply with
37905	// RFC1035. Specifically, the name must be 1-63 characters long and
37906	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
37907	// the first character must be a lowercase letter, and all following
37908	// characters must be a dash, lowercase letter, or digit, except the
37909	// last character, which cannot be a dash.
37910	Name string `json:"name,omitempty"`
37911
37912	// Parent: [Output Only] The parent of the security policy.
37913	Parent string `json:"parent,omitempty"`
37914
37915	// RuleTupleCount: [Output Only] Total count of all security policy rule
37916	// tuples. A security policy can not exceed a set number of tuples.
37917	RuleTupleCount int64 `json:"ruleTupleCount,omitempty"`
37918
37919	// Rules: A list of rules that belong to this policy. There must always
37920	// be a default rule (rule with priority 2147483647 and match "*"). If
37921	// no rules are provided when creating a security policy, a default rule
37922	// with action "allow" will be added.
37923	Rules []*SecurityPolicyRule `json:"rules,omitempty"`
37924
37925	// SelfLink: [Output Only] Server-defined URL for the resource.
37926	SelfLink string `json:"selfLink,omitempty"`
37927
37928	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
37929	// with the resource id.
37930	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
37931
37932	// Type: The type indicates the intended use of the security policy.
37933	// CLOUD_ARMOR policies apply to backend services. FIREWALL policies
37934	// apply to organizations.
37935	//
37936	// Possible values:
37937	//   "CLOUD_ARMOR"
37938	//   "FIREWALL"
37939	Type string `json:"type,omitempty"`
37940
37941	// ServerResponse contains the HTTP response code and headers from the
37942	// server.
37943	googleapi.ServerResponse `json:"-"`
37944
37945	// ForceSendFields is a list of field names (e.g.
37946	// "AdaptiveProtectionConfig") to unconditionally include in API
37947	// requests. By default, fields with empty values are omitted from API
37948	// requests. However, any non-pointer, non-interface field appearing in
37949	// ForceSendFields will be sent to the server regardless of whether the
37950	// field is empty or not. This may be used to include empty fields in
37951	// Patch requests.
37952	ForceSendFields []string `json:"-"`
37953
37954	// NullFields is a list of field names (e.g. "AdaptiveProtectionConfig")
37955	// to include in API requests with the JSON null value. By default,
37956	// fields with empty values are omitted from API requests. However, any
37957	// field with an empty value appearing in NullFields will be sent to the
37958	// server as null. It is an error if a field in this list has a
37959	// non-empty value. This may be used to include null fields in Patch
37960	// requests.
37961	NullFields []string `json:"-"`
37962}
37963
37964func (s *SecurityPolicy) MarshalJSON() ([]byte, error) {
37965	type NoMethod SecurityPolicy
37966	raw := NoMethod(*s)
37967	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37968}
37969
37970// SecurityPolicyAdaptiveProtectionConfig: Configuration options for
37971// Cloud Armor Adaptive Protection (CAAP).
37972type SecurityPolicyAdaptiveProtectionConfig struct {
37973	// Layer7DdosDefenseConfig: If set to true, enables Cloud Armor Machine
37974	// Learning.
37975	Layer7DdosDefenseConfig *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig `json:"layer7DdosDefenseConfig,omitempty"`
37976
37977	// ForceSendFields is a list of field names (e.g.
37978	// "Layer7DdosDefenseConfig") to unconditionally include in API
37979	// requests. By default, fields with empty values are omitted from API
37980	// requests. However, any non-pointer, non-interface field appearing in
37981	// ForceSendFields will be sent to the server regardless of whether the
37982	// field is empty or not. This may be used to include empty fields in
37983	// Patch requests.
37984	ForceSendFields []string `json:"-"`
37985
37986	// NullFields is a list of field names (e.g. "Layer7DdosDefenseConfig")
37987	// to include in API requests with the JSON null value. By default,
37988	// fields with empty values are omitted from API requests. However, any
37989	// field with an empty value appearing in NullFields will be sent to the
37990	// server as null. It is an error if a field in this list has a
37991	// non-empty value. This may be used to include null fields in Patch
37992	// requests.
37993	NullFields []string `json:"-"`
37994}
37995
37996func (s *SecurityPolicyAdaptiveProtectionConfig) MarshalJSON() ([]byte, error) {
37997	type NoMethod SecurityPolicyAdaptiveProtectionConfig
37998	raw := NoMethod(*s)
37999	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38000}
38001
38002// SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig:
38003// Configuration options for L7 DDoS detection.
38004type SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig struct {
38005	// Enable: If set to true, enables CAAP for L7 DDoS detection.
38006	Enable bool `json:"enable,omitempty"`
38007
38008	// RuleVisibility: Rule visibility can be one of the following: STANDARD
38009	// - opaque rules. (default) PREMIUM - transparent rules.
38010	//
38011	// Possible values:
38012	//   "PREMIUM"
38013	//   "STANDARD"
38014	RuleVisibility string `json:"ruleVisibility,omitempty"`
38015
38016	// ForceSendFields is a list of field names (e.g. "Enable") to
38017	// unconditionally include in API requests. By default, fields with
38018	// empty values are omitted from API requests. However, any non-pointer,
38019	// non-interface field appearing in ForceSendFields will be sent to the
38020	// server regardless of whether the field is empty or not. This may be
38021	// used to include empty fields in Patch requests.
38022	ForceSendFields []string `json:"-"`
38023
38024	// NullFields is a list of field names (e.g. "Enable") to include in API
38025	// requests with the JSON null value. By default, fields with empty
38026	// values are omitted from API requests. However, any field with an
38027	// empty value appearing in NullFields will be sent to the server as
38028	// null. It is an error if a field in this list has a non-empty value.
38029	// This may be used to include null fields in Patch requests.
38030	NullFields []string `json:"-"`
38031}
38032
38033func (s *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig) MarshalJSON() ([]byte, error) {
38034	type NoMethod SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig
38035	raw := NoMethod(*s)
38036	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38037}
38038
38039type SecurityPolicyAssociation struct {
38040	// AttachmentId: The resource that the security policy is attached to.
38041	AttachmentId string `json:"attachmentId,omitempty"`
38042
38043	// DisplayName: [Output Only] The display name of the security policy of
38044	// the association.
38045	DisplayName string `json:"displayName,omitempty"`
38046
38047	// Name: The name for an association.
38048	Name string `json:"name,omitempty"`
38049
38050	// SecurityPolicyId: [Output Only] The security policy ID of the
38051	// association.
38052	SecurityPolicyId string `json:"securityPolicyId,omitempty"`
38053
38054	// ServerResponse contains the HTTP response code and headers from the
38055	// server.
38056	googleapi.ServerResponse `json:"-"`
38057
38058	// ForceSendFields is a list of field names (e.g. "AttachmentId") to
38059	// unconditionally include in API requests. By default, fields with
38060	// empty values are omitted from API requests. However, any non-pointer,
38061	// non-interface field appearing in ForceSendFields will be sent to the
38062	// server regardless of whether the field is empty or not. This may be
38063	// used to include empty fields in Patch requests.
38064	ForceSendFields []string `json:"-"`
38065
38066	// NullFields is a list of field names (e.g. "AttachmentId") to include
38067	// in API requests with the JSON null value. By default, fields with
38068	// empty values are omitted from API requests. However, any field with
38069	// an empty value appearing in NullFields will be sent to the server as
38070	// null. It is an error if a field in this list has a non-empty value.
38071	// This may be used to include null fields in Patch requests.
38072	NullFields []string `json:"-"`
38073}
38074
38075func (s *SecurityPolicyAssociation) MarshalJSON() ([]byte, error) {
38076	type NoMethod SecurityPolicyAssociation
38077	raw := NoMethod(*s)
38078	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38079}
38080
38081type SecurityPolicyList struct {
38082	// Id: [Output Only] Unique identifier for the resource; defined by the
38083	// server.
38084	Id string `json:"id,omitempty"`
38085
38086	// Items: A list of SecurityPolicy resources.
38087	Items []*SecurityPolicy `json:"items,omitempty"`
38088
38089	// Kind: [Output Only] Type of resource. Always
38090	// compute#securityPolicyList for listsof securityPolicies
38091	Kind string `json:"kind,omitempty"`
38092
38093	// NextPageToken: [Output Only] This token allows you to get the next
38094	// page of results for list requests. If the number of results is larger
38095	// than maxResults, use the nextPageToken as a value for the query
38096	// parameter pageToken in the next list request. Subsequent list
38097	// requests will have their own nextPageToken to continue paging through
38098	// the results.
38099	NextPageToken string `json:"nextPageToken,omitempty"`
38100
38101	// Warning: [Output Only] Informational warning message.
38102	Warning *SecurityPolicyListWarning `json:"warning,omitempty"`
38103
38104	// ServerResponse contains the HTTP response code and headers from the
38105	// server.
38106	googleapi.ServerResponse `json:"-"`
38107
38108	// ForceSendFields is a list of field names (e.g. "Id") to
38109	// unconditionally include in API requests. By default, fields with
38110	// empty values are omitted from API requests. However, any non-pointer,
38111	// non-interface field appearing in ForceSendFields will be sent to the
38112	// server regardless of whether the field is empty or not. This may be
38113	// used to include empty fields in Patch requests.
38114	ForceSendFields []string `json:"-"`
38115
38116	// NullFields is a list of field names (e.g. "Id") to include in API
38117	// requests with the JSON null value. By default, fields with empty
38118	// values are omitted from API requests. However, any field with an
38119	// empty value appearing in NullFields will be sent to the server as
38120	// null. It is an error if a field in this list has a non-empty value.
38121	// This may be used to include null fields in Patch requests.
38122	NullFields []string `json:"-"`
38123}
38124
38125func (s *SecurityPolicyList) MarshalJSON() ([]byte, error) {
38126	type NoMethod SecurityPolicyList
38127	raw := NoMethod(*s)
38128	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38129}
38130
38131// SecurityPolicyListWarning: [Output Only] Informational warning
38132// message.
38133type SecurityPolicyListWarning struct {
38134	// Code: [Output Only] A warning code, if applicable. For example,
38135	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
38136	// the response.
38137	//
38138	// Possible values:
38139	//   "CLEANUP_FAILED"
38140	//   "DEPRECATED_RESOURCE_USED"
38141	//   "DEPRECATED_TYPE_USED"
38142	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
38143	//   "EXPERIMENTAL_TYPE_USED"
38144	//   "EXTERNAL_API_WARNING"
38145	//   "FIELD_VALUE_OVERRIDEN"
38146	//   "INJECTED_KERNELS_DEPRECATED"
38147	//   "LARGE_DEPLOYMENT_WARNING"
38148	//   "MISSING_TYPE_DEPENDENCY"
38149	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
38150	//   "NEXT_HOP_CANNOT_IP_FORWARD"
38151	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
38152	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
38153	//   "NEXT_HOP_NOT_RUNNING"
38154	//   "NOT_CRITICAL_ERROR"
38155	//   "NO_RESULTS_ON_PAGE"
38156	//   "PARTIAL_SUCCESS"
38157	//   "REQUIRED_TOS_AGREEMENT"
38158	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
38159	//   "RESOURCE_NOT_DELETED"
38160	//   "SCHEMA_VALIDATION_IGNORED"
38161	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
38162	//   "UNDECLARED_PROPERTIES"
38163	//   "UNREACHABLE"
38164	Code string `json:"code,omitempty"`
38165
38166	// Data: [Output Only] Metadata about this warning in key: value format.
38167	// For example:
38168	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
38169	Data []*SecurityPolicyListWarningData `json:"data,omitempty"`
38170
38171	// Message: [Output Only] A human-readable description of the warning
38172	// code.
38173	Message string `json:"message,omitempty"`
38174
38175	// ForceSendFields is a list of field names (e.g. "Code") to
38176	// unconditionally include in API requests. By default, fields with
38177	// empty values are omitted from API requests. However, any non-pointer,
38178	// non-interface field appearing in ForceSendFields will be sent to the
38179	// server regardless of whether the field is empty or not. This may be
38180	// used to include empty fields in Patch requests.
38181	ForceSendFields []string `json:"-"`
38182
38183	// NullFields is a list of field names (e.g. "Code") to include in API
38184	// requests with the JSON null value. By default, fields with empty
38185	// values are omitted from API requests. However, any field with an
38186	// empty value appearing in NullFields will be sent to the server as
38187	// null. It is an error if a field in this list has a non-empty value.
38188	// This may be used to include null fields in Patch requests.
38189	NullFields []string `json:"-"`
38190}
38191
38192func (s *SecurityPolicyListWarning) MarshalJSON() ([]byte, error) {
38193	type NoMethod SecurityPolicyListWarning
38194	raw := NoMethod(*s)
38195	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38196}
38197
38198type SecurityPolicyListWarningData struct {
38199	// Key: [Output Only] A key that provides more detail on the warning
38200	// being returned. For example, for warnings where there are no results
38201	// in a list request for a particular zone, this key might be scope and
38202	// the key value might be the zone name. Other examples might be a key
38203	// indicating a deprecated resource and a suggested replacement, or a
38204	// warning about invalid network settings (for example, if an instance
38205	// attempts to perform IP forwarding but is not enabled for IP
38206	// forwarding).
38207	Key string `json:"key,omitempty"`
38208
38209	// Value: [Output Only] A warning data value corresponding to the key.
38210	Value string `json:"value,omitempty"`
38211
38212	// ForceSendFields is a list of field names (e.g. "Key") to
38213	// unconditionally include in API requests. By default, fields with
38214	// empty values are omitted from API requests. However, any non-pointer,
38215	// non-interface field appearing in ForceSendFields will be sent to the
38216	// server regardless of whether the field is empty or not. This may be
38217	// used to include empty fields in Patch requests.
38218	ForceSendFields []string `json:"-"`
38219
38220	// NullFields is a list of field names (e.g. "Key") to include in API
38221	// requests with the JSON null value. By default, fields with empty
38222	// values are omitted from API requests. However, any field with an
38223	// empty value appearing in NullFields will be sent to the server as
38224	// null. It is an error if a field in this list has a non-empty value.
38225	// This may be used to include null fields in Patch requests.
38226	NullFields []string `json:"-"`
38227}
38228
38229func (s *SecurityPolicyListWarningData) MarshalJSON() ([]byte, error) {
38230	type NoMethod SecurityPolicyListWarningData
38231	raw := NoMethod(*s)
38232	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38233}
38234
38235type SecurityPolicyReference struct {
38236	SecurityPolicy string `json:"securityPolicy,omitempty"`
38237
38238	// ForceSendFields is a list of field names (e.g. "SecurityPolicy") to
38239	// unconditionally include in API requests. By default, fields with
38240	// empty values are omitted from API requests. However, any non-pointer,
38241	// non-interface field appearing in ForceSendFields will be sent to the
38242	// server regardless of whether the field is empty or not. This may be
38243	// used to include empty fields in Patch requests.
38244	ForceSendFields []string `json:"-"`
38245
38246	// NullFields is a list of field names (e.g. "SecurityPolicy") to
38247	// include in API requests with the JSON null value. By default, fields
38248	// with empty values are omitted from API requests. However, any field
38249	// with an empty value appearing in NullFields will be sent to the
38250	// server as null. It is an error if a field in this list has a
38251	// non-empty value. This may be used to include null fields in Patch
38252	// requests.
38253	NullFields []string `json:"-"`
38254}
38255
38256func (s *SecurityPolicyReference) MarshalJSON() ([]byte, error) {
38257	type NoMethod SecurityPolicyReference
38258	raw := NoMethod(*s)
38259	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38260}
38261
38262// SecurityPolicyRule: Represents a rule that describes one or more
38263// match conditions along with the action to be taken when traffic
38264// matches this condition (allow or deny).
38265type SecurityPolicyRule struct {
38266	// Action: The Action to preform when the client connection triggers the
38267	// rule. Can currently be either "allow" or "deny()" where valid values
38268	// for status are 403, 404, and 502.
38269	Action string `json:"action,omitempty"`
38270
38271	// Description: An optional description of this resource. Provide this
38272	// property when you create the resource.
38273	Description string `json:"description,omitempty"`
38274
38275	// Direction: The direction in which this rule applies. This field may
38276	// only be specified when versioned_expr is set to FIREWALL.
38277	//
38278	// Possible values:
38279	//   "EGRESS"
38280	//   "INGRESS"
38281	Direction string `json:"direction,omitempty"`
38282
38283	// EnableLogging: Denotes whether to enable logging for a particular
38284	// rule. If logging is enabled, logs will be exported to the configured
38285	// export destination in Stackdriver. Logs may be exported to BigQuery
38286	// or Pub/Sub. Note: you cannot enable logging on "goto_next"
38287	// rules.
38288	//
38289	// This field may only be specified when the versioned_expr is set to
38290	// FIREWALL.
38291	EnableLogging bool `json:"enableLogging,omitempty"`
38292
38293	// Kind: [Output only] Type of the resource. Always
38294	// compute#securityPolicyRule for security policy rules
38295	Kind string `json:"kind,omitempty"`
38296
38297	// Match: A match condition that incoming traffic is evaluated against.
38298	// If it evaluates to true, the corresponding 'action' is enforced.
38299	Match *SecurityPolicyRuleMatcher `json:"match,omitempty"`
38300
38301	// Preview: If set to true, the specified action is not enforced.
38302	Preview bool `json:"preview,omitempty"`
38303
38304	// Priority: An integer indicating the priority of a rule in the list.
38305	// The priority must be a positive value between 0 and 2147483647. Rules
38306	// are evaluated from highest to lowest priority where 0 is the highest
38307	// priority and 2147483647 is the lowest priority.
38308	Priority int64 `json:"priority,omitempty"`
38309
38310	// RuleNumber: Identifier for the rule. This is only unique within the
38311	// given security policy. This can only be set during rule creation, if
38312	// rule number is not specified it will be generated by the server.
38313	RuleNumber int64 `json:"ruleNumber,omitempty,string"`
38314
38315	// RuleTupleCount: [Output Only] Calculation of the complexity of a
38316	// single firewall security policy rule.
38317	RuleTupleCount int64 `json:"ruleTupleCount,omitempty"`
38318
38319	// TargetResources: A list of network resource URLs to which this rule
38320	// applies. This field allows you to control which network's VMs get
38321	// this rule. If this field is left blank, all VMs within the
38322	// organization will receive the rule.
38323	//
38324	// This field may only be specified when versioned_expr is set to
38325	// FIREWALL.
38326	TargetResources []string `json:"targetResources,omitempty"`
38327
38328	// TargetServiceAccounts: A list of service accounts indicating the sets
38329	// of instances that are applied with this rule.
38330	TargetServiceAccounts []string `json:"targetServiceAccounts,omitempty"`
38331
38332	// ServerResponse contains the HTTP response code and headers from the
38333	// server.
38334	googleapi.ServerResponse `json:"-"`
38335
38336	// ForceSendFields is a list of field names (e.g. "Action") to
38337	// unconditionally include in API requests. By default, fields with
38338	// empty values are omitted from API requests. However, any non-pointer,
38339	// non-interface field appearing in ForceSendFields will be sent to the
38340	// server regardless of whether the field is empty or not. This may be
38341	// used to include empty fields in Patch requests.
38342	ForceSendFields []string `json:"-"`
38343
38344	// NullFields is a list of field names (e.g. "Action") to include in API
38345	// requests with the JSON null value. By default, fields with empty
38346	// values are omitted from API requests. However, any field with an
38347	// empty value appearing in NullFields will be sent to the server as
38348	// null. It is an error if a field in this list has a non-empty value.
38349	// This may be used to include null fields in Patch requests.
38350	NullFields []string `json:"-"`
38351}
38352
38353func (s *SecurityPolicyRule) MarshalJSON() ([]byte, error) {
38354	type NoMethod SecurityPolicyRule
38355	raw := NoMethod(*s)
38356	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38357}
38358
38359// SecurityPolicyRuleMatcher: Represents a match condition that incoming
38360// traffic is evaluated against. Exactly one field must be specified.
38361type SecurityPolicyRuleMatcher struct {
38362	// Config: The configuration options available when specifying
38363	// versioned_expr. This field must be specified if versioned_expr is
38364	// specified and cannot be specified if versioned_expr is not specified.
38365	Config *SecurityPolicyRuleMatcherConfig `json:"config,omitempty"`
38366
38367	// Expr: User defined CEVAL expression. A CEVAL expression is used to
38368	// specify match criteria such as origin.ip, source.region_code and
38369	// contents in the request header.
38370	Expr *Expr `json:"expr,omitempty"`
38371
38372	// VersionedExpr: Preconfigured versioned expression. If this field is
38373	// specified, config must also be specified. Available preconfigured
38374	// expressions along with their requirements are: SRC_IPS_V1 - must
38375	// specify the corresponding src_ip_range field in config.
38376	//
38377	// Possible values:
38378	//   "FIREWALL"
38379	//   "SRC_IPS_V1"
38380	VersionedExpr string `json:"versionedExpr,omitempty"`
38381
38382	// ForceSendFields is a list of field names (e.g. "Config") to
38383	// unconditionally include in API requests. By default, fields with
38384	// empty values are omitted from API requests. However, any non-pointer,
38385	// non-interface field appearing in ForceSendFields will be sent to the
38386	// server regardless of whether the field is empty or not. This may be
38387	// used to include empty fields in Patch requests.
38388	ForceSendFields []string `json:"-"`
38389
38390	// NullFields is a list of field names (e.g. "Config") to include in API
38391	// requests with the JSON null value. By default, fields with empty
38392	// values are omitted from API requests. However, any field with an
38393	// empty value appearing in NullFields will be sent to the server as
38394	// null. It is an error if a field in this list has a non-empty value.
38395	// This may be used to include null fields in Patch requests.
38396	NullFields []string `json:"-"`
38397}
38398
38399func (s *SecurityPolicyRuleMatcher) MarshalJSON() ([]byte, error) {
38400	type NoMethod SecurityPolicyRuleMatcher
38401	raw := NoMethod(*s)
38402	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38403}
38404
38405type SecurityPolicyRuleMatcherConfig struct {
38406	// DestIpRanges: CIDR IP address range.
38407	//
38408	// This field may only be specified when versioned_expr is set to
38409	// FIREWALL.
38410	DestIpRanges []string `json:"destIpRanges,omitempty"`
38411
38412	// Layer4Configs: Pairs of IP protocols and ports that the rule should
38413	// match.
38414	//
38415	// This field may only be specified when versioned_expr is set to
38416	// FIREWALL.
38417	Layer4Configs []*SecurityPolicyRuleMatcherConfigLayer4Config `json:"layer4Configs,omitempty"`
38418
38419	// SrcIpRanges: CIDR IP address range. Maximum number of src_ip_ranges
38420	// allowed is 10.
38421	SrcIpRanges []string `json:"srcIpRanges,omitempty"`
38422
38423	// ForceSendFields is a list of field names (e.g. "DestIpRanges") to
38424	// unconditionally include in API requests. By default, fields with
38425	// empty values are omitted from API requests. However, any non-pointer,
38426	// non-interface field appearing in ForceSendFields will be sent to the
38427	// server regardless of whether the field is empty or not. This may be
38428	// used to include empty fields in Patch requests.
38429	ForceSendFields []string `json:"-"`
38430
38431	// NullFields is a list of field names (e.g. "DestIpRanges") to include
38432	// in API requests with the JSON null value. By default, fields with
38433	// empty values are omitted from API requests. However, any field with
38434	// an empty value appearing in NullFields will be sent to the server as
38435	// null. It is an error if a field in this list has a non-empty value.
38436	// This may be used to include null fields in Patch requests.
38437	NullFields []string `json:"-"`
38438}
38439
38440func (s *SecurityPolicyRuleMatcherConfig) MarshalJSON() ([]byte, error) {
38441	type NoMethod SecurityPolicyRuleMatcherConfig
38442	raw := NoMethod(*s)
38443	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38444}
38445
38446type SecurityPolicyRuleMatcherConfigLayer4Config struct {
38447	// IpProtocol: The IP protocol to which this rule applies. The protocol
38448	// type is required when creating a firewall rule. This value can either
38449	// be one of the following well known protocol strings (tcp, udp, icmp,
38450	// esp, ah, ipip, sctp), or the IP protocol number.
38451	IpProtocol string `json:"ipProtocol,omitempty"`
38452
38453	// Ports: An optional list of ports to which this rule applies. This
38454	// field is only applicable for UDP or TCP protocol. Each entry must be
38455	// either an integer or a range. If not specified, this rule applies to
38456	// connections through any port.
38457	//
38458	// Example inputs include: ["22"], ["80","443"], and
38459	// ["12345-12349"].
38460	//
38461	// This field may only be specified when versioned_expr is set to
38462	// FIREWALL.
38463	Ports []string `json:"ports,omitempty"`
38464
38465	// ForceSendFields is a list of field names (e.g. "IpProtocol") to
38466	// unconditionally include in API requests. By default, fields with
38467	// empty values are omitted from API requests. However, any non-pointer,
38468	// non-interface field appearing in ForceSendFields will be sent to the
38469	// server regardless of whether the field is empty or not. This may be
38470	// used to include empty fields in Patch requests.
38471	ForceSendFields []string `json:"-"`
38472
38473	// NullFields is a list of field names (e.g. "IpProtocol") to include in
38474	// API requests with the JSON null value. By default, fields with empty
38475	// values are omitted from API requests. However, any field with an
38476	// empty value appearing in NullFields will be sent to the server as
38477	// null. It is an error if a field in this list has a non-empty value.
38478	// This may be used to include null fields in Patch requests.
38479	NullFields []string `json:"-"`
38480}
38481
38482func (s *SecurityPolicyRuleMatcherConfigLayer4Config) MarshalJSON() ([]byte, error) {
38483	type NoMethod SecurityPolicyRuleMatcherConfigLayer4Config
38484	raw := NoMethod(*s)
38485	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38486}
38487
38488// SecuritySettings: The authentication and authorization settings for a
38489// BackendService.
38490type SecuritySettings struct {
38491	// Authentication: [Deprecated] Use clientTlsPolicy instead.
38492	Authentication string `json:"authentication,omitempty"`
38493
38494	// ClientTlsPolicy: Optional. A URL referring to a
38495	// networksecurity.ClientTlsPolicy resource that describes how clients
38496	// should authenticate with this service's backends.
38497	// clientTlsPolicy only applies to a global BackendService with the
38498	// loadBalancingScheme set to INTERNAL_SELF_MANAGED.
38499	// If left blank, communications are not encrypted.
38500	// Note: This field currently has no impact.
38501	ClientTlsPolicy string `json:"clientTlsPolicy,omitempty"`
38502
38503	// SubjectAltNames: Optional. A list of Subject Alternative Names (SANs)
38504	// that the client verifies during a mutual TLS handshake with an
38505	// server/endpoint for this BackendService. When the server presents its
38506	// X.509 certificate to the client, the client inspects the
38507	// certificate's subjectAltName field. If the field contains one of the
38508	// specified values, the communication continues. Otherwise, it fails.
38509	// This additional check enables the client to verify that the server is
38510	// authorized to run the requested service.
38511	// Note that the contents of the server certificate's subjectAltName
38512	// field are configured by the Public Key Infrastructure which
38513	// provisions server identities.
38514	// Only applies to a global BackendService with loadBalancingScheme set
38515	// to INTERNAL_SELF_MANAGED. Only applies when BackendService has an
38516	// attached clientTlsPolicy with clientCertificate (mTLS mode).
38517	// Note: This field currently has no impact.
38518	SubjectAltNames []string `json:"subjectAltNames,omitempty"`
38519
38520	// ForceSendFields is a list of field names (e.g. "Authentication") to
38521	// unconditionally include in API requests. By default, fields with
38522	// empty values are omitted from API requests. However, any non-pointer,
38523	// non-interface field appearing in ForceSendFields will be sent to the
38524	// server regardless of whether the field is empty or not. This may be
38525	// used to include empty fields in Patch requests.
38526	ForceSendFields []string `json:"-"`
38527
38528	// NullFields is a list of field names (e.g. "Authentication") to
38529	// include in API requests with the JSON null value. By default, fields
38530	// with empty values are omitted from API requests. However, any field
38531	// with an empty value appearing in NullFields will be sent to the
38532	// server as null. It is an error if a field in this list has a
38533	// non-empty value. This may be used to include null fields in Patch
38534	// requests.
38535	NullFields []string `json:"-"`
38536}
38537
38538func (s *SecuritySettings) MarshalJSON() ([]byte, error) {
38539	type NoMethod SecuritySettings
38540	raw := NoMethod(*s)
38541	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38542}
38543
38544// SerialPortOutput: An instance's serial console output.
38545type SerialPortOutput struct {
38546	// Contents: [Output Only] The contents of the console output.
38547	Contents string `json:"contents,omitempty"`
38548
38549	// Kind: [Output Only] Type of the resource. Always
38550	// compute#serialPortOutput for serial port output.
38551	Kind string `json:"kind,omitempty"`
38552
38553	// Next: [Output Only] The position of the next byte of content,
38554	// regardless of whether the content exists, following the output
38555	// returned in the `contents` property. Use this value in the next
38556	// request as the start parameter.
38557	Next int64 `json:"next,omitempty,string"`
38558
38559	// SelfLink: [Output Only] Server-defined URL for this resource.
38560	SelfLink string `json:"selfLink,omitempty"`
38561
38562	// Start: The starting byte position of the output that was returned.
38563	// This should match the start parameter sent with the request. If the
38564	// serial console output exceeds the size of the buffer (1 MB), older
38565	// output is overwritten by newer content. The output start value will
38566	// indicate the byte position of the output that was returned, which
38567	// might be different than the `start` value that was specified in the
38568	// request.
38569	Start int64 `json:"start,omitempty,string"`
38570
38571	// ServerResponse contains the HTTP response code and headers from the
38572	// server.
38573	googleapi.ServerResponse `json:"-"`
38574
38575	// ForceSendFields is a list of field names (e.g. "Contents") to
38576	// unconditionally include in API requests. By default, fields with
38577	// empty values are omitted from API requests. However, any non-pointer,
38578	// non-interface field appearing in ForceSendFields will be sent to the
38579	// server regardless of whether the field is empty or not. This may be
38580	// used to include empty fields in Patch requests.
38581	ForceSendFields []string `json:"-"`
38582
38583	// NullFields is a list of field names (e.g. "Contents") to include in
38584	// API requests with the JSON null value. By default, fields with empty
38585	// values are omitted from API requests. However, any field with an
38586	// empty value appearing in NullFields will be sent to the server as
38587	// null. It is an error if a field in this list has a non-empty value.
38588	// This may be used to include null fields in Patch requests.
38589	NullFields []string `json:"-"`
38590}
38591
38592func (s *SerialPortOutput) MarshalJSON() ([]byte, error) {
38593	type NoMethod SerialPortOutput
38594	raw := NoMethod(*s)
38595	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38596}
38597
38598type ServerBinding struct {
38599	// Possible values:
38600	//   "RESTART_NODE_ON_ANY_SERVER"
38601	//   "RESTART_NODE_ON_MINIMAL_SERVERS"
38602	//   "SERVER_BINDING_TYPE_UNSPECIFIED"
38603	Type string `json:"type,omitempty"`
38604
38605	// ForceSendFields is a list of field names (e.g. "Type") to
38606	// unconditionally include in API requests. By default, fields with
38607	// empty values are omitted from API requests. However, any non-pointer,
38608	// non-interface field appearing in ForceSendFields will be sent to the
38609	// server regardless of whether the field is empty or not. This may be
38610	// used to include empty fields in Patch requests.
38611	ForceSendFields []string `json:"-"`
38612
38613	// NullFields is a list of field names (e.g. "Type") to include in API
38614	// requests with the JSON null value. By default, fields with empty
38615	// values are omitted from API requests. However, any field with an
38616	// empty value appearing in NullFields will be sent to the server as
38617	// null. It is an error if a field in this list has a non-empty value.
38618	// This may be used to include null fields in Patch requests.
38619	NullFields []string `json:"-"`
38620}
38621
38622func (s *ServerBinding) MarshalJSON() ([]byte, error) {
38623	type NoMethod ServerBinding
38624	raw := NoMethod(*s)
38625	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38626}
38627
38628// ServiceAccount: A service account.
38629type ServiceAccount struct {
38630	// Email: Email address of the service account.
38631	Email string `json:"email,omitempty"`
38632
38633	// Scopes: The list of scopes to be made available for this service
38634	// account.
38635	Scopes []string `json:"scopes,omitempty"`
38636
38637	// ForceSendFields is a list of field names (e.g. "Email") to
38638	// unconditionally include in API requests. By default, fields with
38639	// empty values are omitted from API requests. However, any non-pointer,
38640	// non-interface field appearing in ForceSendFields will be sent to the
38641	// server regardless of whether the field is empty or not. This may be
38642	// used to include empty fields in Patch requests.
38643	ForceSendFields []string `json:"-"`
38644
38645	// NullFields is a list of field names (e.g. "Email") to include in API
38646	// requests with the JSON null value. By default, fields with empty
38647	// values are omitted from API requests. However, any field with an
38648	// empty value appearing in NullFields will be sent to the server as
38649	// null. It is an error if a field in this list has a non-empty value.
38650	// This may be used to include null fields in Patch requests.
38651	NullFields []string `json:"-"`
38652}
38653
38654func (s *ServiceAccount) MarshalJSON() ([]byte, error) {
38655	type NoMethod ServiceAccount
38656	raw := NoMethod(*s)
38657	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38658}
38659
38660// ServiceAttachment: Represents a ServiceAttachment resource.
38661//
38662// A service attachment represents a service that a producer has
38663// exposed. It encapsulates the load balancer which fronts the service
38664// runs and a list of NAT IP ranges that the producers uses to represent
38665// the consumers connecting to the service. next tag = 17
38666type ServiceAttachment struct {
38667	// ConnectionPreference: The connection preference of service
38668	// attachment. The value can be set to ACCEPT_AUTOMATIC. An
38669	// ACCEPT_AUTOMATIC service attachment is one that always accepts the
38670	// connection from consumer forwarding rules.
38671	//
38672	// Possible values:
38673	//   "ACCEPT_AUTOMATIC"
38674	//   "CONNECTION_PREFERENCE_UNSPECIFIED"
38675	ConnectionPreference string `json:"connectionPreference,omitempty"`
38676
38677	// ConsumerForwardingRules: [Output Only] An array of forwarding rules
38678	// for all the consumers connected to this service attachment.
38679	ConsumerForwardingRules []*ServiceAttachmentConsumerForwardingRule `json:"consumerForwardingRules,omitempty"`
38680
38681	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
38682	// format.
38683	CreationTimestamp string `json:"creationTimestamp,omitempty"`
38684
38685	// Description: An optional description of this resource. Provide this
38686	// property when you create the resource.
38687	Description string `json:"description,omitempty"`
38688
38689	// EnableProxyProtocol: If true, enable the proxy protocol which is for
38690	// supplying client TCP/IP address data in TCP connections that traverse
38691	// proxies on their way to destination servers.
38692	EnableProxyProtocol bool `json:"enableProxyProtocol,omitempty"`
38693
38694	// Id: [Output Only] The unique identifier for the resource type. The
38695	// server generates this identifier.
38696	Id uint64 `json:"id,omitempty,string"`
38697
38698	// Kind: [Output Only] Type of the resource. Always
38699	// compute#serviceAttachment for service attachments.
38700	Kind string `json:"kind,omitempty"`
38701
38702	// Name: Name of the resource. Provided by the client when the resource
38703	// is created. The name must be 1-63 characters long, and comply with
38704	// RFC1035. Specifically, the name must be 1-63 characters long and
38705	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
38706	// the first character must be a lowercase letter, and all following
38707	// characters must be a dash, lowercase letter, or digit, except the
38708	// last character, which cannot be a dash.
38709	Name string `json:"name,omitempty"`
38710
38711	// NatSubnets: An array of URLs where each entry is the URL of a subnet
38712	// provided by the service producer to use for NAT in this service
38713	// attachment.
38714	NatSubnets []string `json:"natSubnets,omitempty"`
38715
38716	// ProducerForwardingRule: The URL of a forwarding rule with
38717	// loadBalancingScheme INTERNAL* that is serving the endpoint identified
38718	// by this service attachment.
38719	ProducerForwardingRule string `json:"producerForwardingRule,omitempty"`
38720
38721	// Region: [Output Only] URL of the region where the service attachment
38722	// resides. This field applies only to the region resource. You must
38723	// specify this field as part of the HTTP request URL. It is not
38724	// settable as a field in the request body.
38725	Region string `json:"region,omitempty"`
38726
38727	// SelfLink: [Output Only] Server-defined URL for the resource.
38728	SelfLink string `json:"selfLink,omitempty"`
38729
38730	// ServerResponse contains the HTTP response code and headers from the
38731	// server.
38732	googleapi.ServerResponse `json:"-"`
38733
38734	// ForceSendFields is a list of field names (e.g.
38735	// "ConnectionPreference") to unconditionally include in API requests.
38736	// By default, fields with empty values are omitted from API requests.
38737	// However, any non-pointer, non-interface field appearing in
38738	// ForceSendFields will be sent to the server regardless of whether the
38739	// field is empty or not. This may be used to include empty fields in
38740	// Patch requests.
38741	ForceSendFields []string `json:"-"`
38742
38743	// NullFields is a list of field names (e.g. "ConnectionPreference") to
38744	// include in API requests with the JSON null value. By default, fields
38745	// with empty values are omitted from API requests. However, any field
38746	// with an empty value appearing in NullFields will be sent to the
38747	// server as null. It is an error if a field in this list has a
38748	// non-empty value. This may be used to include null fields in Patch
38749	// requests.
38750	NullFields []string `json:"-"`
38751}
38752
38753func (s *ServiceAttachment) MarshalJSON() ([]byte, error) {
38754	type NoMethod ServiceAttachment
38755	raw := NoMethod(*s)
38756	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38757}
38758
38759// ServiceAttachmentAggregatedList: Contains a list of
38760// ServiceAttachmentsScopedList.
38761type ServiceAttachmentAggregatedList struct {
38762	// Id: [Output Only] Unique identifier for the resource; defined by the
38763	// server.
38764	Id string `json:"id,omitempty"`
38765
38766	// Items: A list of ServiceAttachmentsScopedList resources.
38767	Items map[string]ServiceAttachmentsScopedList `json:"items,omitempty"`
38768
38769	// Kind: Type of resource.
38770	Kind string `json:"kind,omitempty"`
38771
38772	// NextPageToken: [Output Only] This token allows you to get the next
38773	// page of results for list requests. If the number of results is larger
38774	// than maxResults, use the nextPageToken as a value for the query
38775	// parameter pageToken in the next list request. Subsequent list
38776	// requests will have their own nextPageToken to continue paging through
38777	// the results.
38778	NextPageToken string `json:"nextPageToken,omitempty"`
38779
38780	// SelfLink: [Output Only] Server-defined URL for this resource.
38781	SelfLink string `json:"selfLink,omitempty"`
38782
38783	// Unreachables: [Output Only] Unreachable resources.
38784	Unreachables []string `json:"unreachables,omitempty"`
38785
38786	// Warning: [Output Only] Informational warning message.
38787	Warning *ServiceAttachmentAggregatedListWarning `json:"warning,omitempty"`
38788
38789	// ServerResponse contains the HTTP response code and headers from the
38790	// server.
38791	googleapi.ServerResponse `json:"-"`
38792
38793	// ForceSendFields is a list of field names (e.g. "Id") to
38794	// unconditionally include in API requests. By default, fields with
38795	// empty values are omitted from API requests. However, any non-pointer,
38796	// non-interface field appearing in ForceSendFields will be sent to the
38797	// server regardless of whether the field is empty or not. This may be
38798	// used to include empty fields in Patch requests.
38799	ForceSendFields []string `json:"-"`
38800
38801	// NullFields is a list of field names (e.g. "Id") to include in API
38802	// requests with the JSON null value. By default, fields with empty
38803	// values are omitted from API requests. However, any field with an
38804	// empty value appearing in NullFields will be sent to the server as
38805	// null. It is an error if a field in this list has a non-empty value.
38806	// This may be used to include null fields in Patch requests.
38807	NullFields []string `json:"-"`
38808}
38809
38810func (s *ServiceAttachmentAggregatedList) MarshalJSON() ([]byte, error) {
38811	type NoMethod ServiceAttachmentAggregatedList
38812	raw := NoMethod(*s)
38813	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38814}
38815
38816// ServiceAttachmentAggregatedListWarning: [Output Only] Informational
38817// warning message.
38818type ServiceAttachmentAggregatedListWarning struct {
38819	// Code: [Output Only] A warning code, if applicable. For example,
38820	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
38821	// the response.
38822	//
38823	// Possible values:
38824	//   "CLEANUP_FAILED"
38825	//   "DEPRECATED_RESOURCE_USED"
38826	//   "DEPRECATED_TYPE_USED"
38827	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
38828	//   "EXPERIMENTAL_TYPE_USED"
38829	//   "EXTERNAL_API_WARNING"
38830	//   "FIELD_VALUE_OVERRIDEN"
38831	//   "INJECTED_KERNELS_DEPRECATED"
38832	//   "LARGE_DEPLOYMENT_WARNING"
38833	//   "MISSING_TYPE_DEPENDENCY"
38834	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
38835	//   "NEXT_HOP_CANNOT_IP_FORWARD"
38836	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
38837	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
38838	//   "NEXT_HOP_NOT_RUNNING"
38839	//   "NOT_CRITICAL_ERROR"
38840	//   "NO_RESULTS_ON_PAGE"
38841	//   "PARTIAL_SUCCESS"
38842	//   "REQUIRED_TOS_AGREEMENT"
38843	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
38844	//   "RESOURCE_NOT_DELETED"
38845	//   "SCHEMA_VALIDATION_IGNORED"
38846	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
38847	//   "UNDECLARED_PROPERTIES"
38848	//   "UNREACHABLE"
38849	Code string `json:"code,omitempty"`
38850
38851	// Data: [Output Only] Metadata about this warning in key: value format.
38852	// For example:
38853	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
38854	Data []*ServiceAttachmentAggregatedListWarningData `json:"data,omitempty"`
38855
38856	// Message: [Output Only] A human-readable description of the warning
38857	// code.
38858	Message string `json:"message,omitempty"`
38859
38860	// ForceSendFields is a list of field names (e.g. "Code") to
38861	// unconditionally include in API requests. By default, fields with
38862	// empty values are omitted from API requests. However, any non-pointer,
38863	// non-interface field appearing in ForceSendFields will be sent to the
38864	// server regardless of whether the field is empty or not. This may be
38865	// used to include empty fields in Patch requests.
38866	ForceSendFields []string `json:"-"`
38867
38868	// NullFields is a list of field names (e.g. "Code") to include in API
38869	// requests with the JSON null value. By default, fields with empty
38870	// values are omitted from API requests. However, any field with an
38871	// empty value appearing in NullFields will be sent to the server as
38872	// null. It is an error if a field in this list has a non-empty value.
38873	// This may be used to include null fields in Patch requests.
38874	NullFields []string `json:"-"`
38875}
38876
38877func (s *ServiceAttachmentAggregatedListWarning) MarshalJSON() ([]byte, error) {
38878	type NoMethod ServiceAttachmentAggregatedListWarning
38879	raw := NoMethod(*s)
38880	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38881}
38882
38883type ServiceAttachmentAggregatedListWarningData struct {
38884	// Key: [Output Only] A key that provides more detail on the warning
38885	// being returned. For example, for warnings where there are no results
38886	// in a list request for a particular zone, this key might be scope and
38887	// the key value might be the zone name. Other examples might be a key
38888	// indicating a deprecated resource and a suggested replacement, or a
38889	// warning about invalid network settings (for example, if an instance
38890	// attempts to perform IP forwarding but is not enabled for IP
38891	// forwarding).
38892	Key string `json:"key,omitempty"`
38893
38894	// Value: [Output Only] A warning data value corresponding to the key.
38895	Value string `json:"value,omitempty"`
38896
38897	// ForceSendFields is a list of field names (e.g. "Key") to
38898	// unconditionally include in API requests. By default, fields with
38899	// empty values are omitted from API requests. However, any non-pointer,
38900	// non-interface field appearing in ForceSendFields will be sent to the
38901	// server regardless of whether the field is empty or not. This may be
38902	// used to include empty fields in Patch requests.
38903	ForceSendFields []string `json:"-"`
38904
38905	// NullFields is a list of field names (e.g. "Key") to include in API
38906	// requests with the JSON null value. By default, fields with empty
38907	// values are omitted from API requests. However, any field with an
38908	// empty value appearing in NullFields will be sent to the server as
38909	// null. It is an error if a field in this list has a non-empty value.
38910	// This may be used to include null fields in Patch requests.
38911	NullFields []string `json:"-"`
38912}
38913
38914func (s *ServiceAttachmentAggregatedListWarningData) MarshalJSON() ([]byte, error) {
38915	type NoMethod ServiceAttachmentAggregatedListWarningData
38916	raw := NoMethod(*s)
38917	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38918}
38919
38920// ServiceAttachmentConsumerForwardingRule: [Output Only] A consumer
38921// forwarding rule connected to this service attachment.
38922type ServiceAttachmentConsumerForwardingRule struct {
38923	// ForwardingRule: The url of a consumer forwarding rule.
38924	ForwardingRule string `json:"forwardingRule,omitempty"`
38925
38926	// Status: The status of the forwarding rule.
38927	//
38928	// Possible values:
38929	//   "ACCEPTED"
38930	//   "PENDING"
38931	//   "REJECTED"
38932	//   "STATUS_UNSPECIFIED"
38933	Status string `json:"status,omitempty"`
38934
38935	// ForceSendFields is a list of field names (e.g. "ForwardingRule") to
38936	// unconditionally include in API requests. By default, fields with
38937	// empty values are omitted from API requests. However, any non-pointer,
38938	// non-interface field appearing in ForceSendFields will be sent to the
38939	// server regardless of whether the field is empty or not. This may be
38940	// used to include empty fields in Patch requests.
38941	ForceSendFields []string `json:"-"`
38942
38943	// NullFields is a list of field names (e.g. "ForwardingRule") to
38944	// include in API requests with the JSON null value. By default, fields
38945	// with empty values are omitted from API requests. However, any field
38946	// with an empty value appearing in NullFields will be sent to the
38947	// server as null. It is an error if a field in this list has a
38948	// non-empty value. This may be used to include null fields in Patch
38949	// requests.
38950	NullFields []string `json:"-"`
38951}
38952
38953func (s *ServiceAttachmentConsumerForwardingRule) MarshalJSON() ([]byte, error) {
38954	type NoMethod ServiceAttachmentConsumerForwardingRule
38955	raw := NoMethod(*s)
38956	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38957}
38958
38959type ServiceAttachmentList struct {
38960	// Id: [Output Only] Unique identifier for the resource; defined by the
38961	// server.
38962	Id string `json:"id,omitempty"`
38963
38964	// Items: A list of ServiceAttachment resources.
38965	Items []*ServiceAttachment `json:"items,omitempty"`
38966
38967	// Kind: [Output Only] Type of the resource. Always
38968	// compute#serviceAttachment for service attachments.
38969	Kind string `json:"kind,omitempty"`
38970
38971	// NextPageToken: [Output Only] This token allows you to get the next
38972	// page of results for list requests. If the number of results is larger
38973	// than maxResults, use the nextPageToken as a value for the query
38974	// parameter pageToken in the next list request. Subsequent list
38975	// requests will have their own nextPageToken to continue paging through
38976	// the results.
38977	NextPageToken string `json:"nextPageToken,omitempty"`
38978
38979	// SelfLink: [Output Only] Server-defined URL for this resource.
38980	SelfLink string `json:"selfLink,omitempty"`
38981
38982	// Warning: [Output Only] Informational warning message.
38983	Warning *ServiceAttachmentListWarning `json:"warning,omitempty"`
38984
38985	// ServerResponse contains the HTTP response code and headers from the
38986	// server.
38987	googleapi.ServerResponse `json:"-"`
38988
38989	// ForceSendFields is a list of field names (e.g. "Id") to
38990	// unconditionally include in API requests. By default, fields with
38991	// empty values are omitted from API requests. However, any non-pointer,
38992	// non-interface field appearing in ForceSendFields will be sent to the
38993	// server regardless of whether the field is empty or not. This may be
38994	// used to include empty fields in Patch requests.
38995	ForceSendFields []string `json:"-"`
38996
38997	// NullFields is a list of field names (e.g. "Id") to include in API
38998	// requests with the JSON null value. By default, fields with empty
38999	// values are omitted from API requests. However, any field with an
39000	// empty value appearing in NullFields will be sent to the server as
39001	// null. It is an error if a field in this list has a non-empty value.
39002	// This may be used to include null fields in Patch requests.
39003	NullFields []string `json:"-"`
39004}
39005
39006func (s *ServiceAttachmentList) MarshalJSON() ([]byte, error) {
39007	type NoMethod ServiceAttachmentList
39008	raw := NoMethod(*s)
39009	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39010}
39011
39012// ServiceAttachmentListWarning: [Output Only] Informational warning
39013// message.
39014type ServiceAttachmentListWarning struct {
39015	// Code: [Output Only] A warning code, if applicable. For example,
39016	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
39017	// the response.
39018	//
39019	// Possible values:
39020	//   "CLEANUP_FAILED"
39021	//   "DEPRECATED_RESOURCE_USED"
39022	//   "DEPRECATED_TYPE_USED"
39023	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
39024	//   "EXPERIMENTAL_TYPE_USED"
39025	//   "EXTERNAL_API_WARNING"
39026	//   "FIELD_VALUE_OVERRIDEN"
39027	//   "INJECTED_KERNELS_DEPRECATED"
39028	//   "LARGE_DEPLOYMENT_WARNING"
39029	//   "MISSING_TYPE_DEPENDENCY"
39030	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
39031	//   "NEXT_HOP_CANNOT_IP_FORWARD"
39032	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
39033	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
39034	//   "NEXT_HOP_NOT_RUNNING"
39035	//   "NOT_CRITICAL_ERROR"
39036	//   "NO_RESULTS_ON_PAGE"
39037	//   "PARTIAL_SUCCESS"
39038	//   "REQUIRED_TOS_AGREEMENT"
39039	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
39040	//   "RESOURCE_NOT_DELETED"
39041	//   "SCHEMA_VALIDATION_IGNORED"
39042	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
39043	//   "UNDECLARED_PROPERTIES"
39044	//   "UNREACHABLE"
39045	Code string `json:"code,omitempty"`
39046
39047	// Data: [Output Only] Metadata about this warning in key: value format.
39048	// For example:
39049	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
39050	Data []*ServiceAttachmentListWarningData `json:"data,omitempty"`
39051
39052	// Message: [Output Only] A human-readable description of the warning
39053	// code.
39054	Message string `json:"message,omitempty"`
39055
39056	// ForceSendFields is a list of field names (e.g. "Code") to
39057	// unconditionally include in API requests. By default, fields with
39058	// empty values are omitted from API requests. However, any non-pointer,
39059	// non-interface field appearing in ForceSendFields will be sent to the
39060	// server regardless of whether the field is empty or not. This may be
39061	// used to include empty fields in Patch requests.
39062	ForceSendFields []string `json:"-"`
39063
39064	// NullFields is a list of field names (e.g. "Code") to include in API
39065	// requests with the JSON null value. By default, fields with empty
39066	// values are omitted from API requests. However, any field with an
39067	// empty value appearing in NullFields will be sent to the server as
39068	// null. It is an error if a field in this list has a non-empty value.
39069	// This may be used to include null fields in Patch requests.
39070	NullFields []string `json:"-"`
39071}
39072
39073func (s *ServiceAttachmentListWarning) MarshalJSON() ([]byte, error) {
39074	type NoMethod ServiceAttachmentListWarning
39075	raw := NoMethod(*s)
39076	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39077}
39078
39079type ServiceAttachmentListWarningData struct {
39080	// Key: [Output Only] A key that provides more detail on the warning
39081	// being returned. For example, for warnings where there are no results
39082	// in a list request for a particular zone, this key might be scope and
39083	// the key value might be the zone name. Other examples might be a key
39084	// indicating a deprecated resource and a suggested replacement, or a
39085	// warning about invalid network settings (for example, if an instance
39086	// attempts to perform IP forwarding but is not enabled for IP
39087	// forwarding).
39088	Key string `json:"key,omitempty"`
39089
39090	// Value: [Output Only] A warning data value corresponding to the key.
39091	Value string `json:"value,omitempty"`
39092
39093	// ForceSendFields is a list of field names (e.g. "Key") to
39094	// unconditionally include in API requests. By default, fields with
39095	// empty values are omitted from API requests. However, any non-pointer,
39096	// non-interface field appearing in ForceSendFields will be sent to the
39097	// server regardless of whether the field is empty or not. This may be
39098	// used to include empty fields in Patch requests.
39099	ForceSendFields []string `json:"-"`
39100
39101	// NullFields is a list of field names (e.g. "Key") to include in API
39102	// requests with the JSON null value. By default, fields with empty
39103	// values are omitted from API requests. However, any field with an
39104	// empty value appearing in NullFields will be sent to the server as
39105	// null. It is an error if a field in this list has a non-empty value.
39106	// This may be used to include null fields in Patch requests.
39107	NullFields []string `json:"-"`
39108}
39109
39110func (s *ServiceAttachmentListWarningData) MarshalJSON() ([]byte, error) {
39111	type NoMethod ServiceAttachmentListWarningData
39112	raw := NoMethod(*s)
39113	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39114}
39115
39116type ServiceAttachmentsScopedList struct {
39117	// Resources: A list of ServiceAttachments contained in this scope.
39118	Resources []*ServiceAttachment `json:"resources,omitempty"`
39119
39120	// Warning: Informational warning which replaces the list of service
39121	// attachments when the list is empty.
39122	Warning *ServiceAttachmentsScopedListWarning `json:"warning,omitempty"`
39123
39124	// ForceSendFields is a list of field names (e.g. "Resources") to
39125	// unconditionally include in API requests. By default, fields with
39126	// empty values are omitted from API requests. However, any non-pointer,
39127	// non-interface field appearing in ForceSendFields will be sent to the
39128	// server regardless of whether the field is empty or not. This may be
39129	// used to include empty fields in Patch requests.
39130	ForceSendFields []string `json:"-"`
39131
39132	// NullFields is a list of field names (e.g. "Resources") to include in
39133	// API requests with the JSON null value. By default, fields with empty
39134	// values are omitted from API requests. However, any field with an
39135	// empty value appearing in NullFields will be sent to the server as
39136	// null. It is an error if a field in this list has a non-empty value.
39137	// This may be used to include null fields in Patch requests.
39138	NullFields []string `json:"-"`
39139}
39140
39141func (s *ServiceAttachmentsScopedList) MarshalJSON() ([]byte, error) {
39142	type NoMethod ServiceAttachmentsScopedList
39143	raw := NoMethod(*s)
39144	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39145}
39146
39147// ServiceAttachmentsScopedListWarning: Informational warning which
39148// replaces the list of service attachments when the list is empty.
39149type ServiceAttachmentsScopedListWarning struct {
39150	// Code: [Output Only] A warning code, if applicable. For example,
39151	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
39152	// the response.
39153	//
39154	// Possible values:
39155	//   "CLEANUP_FAILED"
39156	//   "DEPRECATED_RESOURCE_USED"
39157	//   "DEPRECATED_TYPE_USED"
39158	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
39159	//   "EXPERIMENTAL_TYPE_USED"
39160	//   "EXTERNAL_API_WARNING"
39161	//   "FIELD_VALUE_OVERRIDEN"
39162	//   "INJECTED_KERNELS_DEPRECATED"
39163	//   "LARGE_DEPLOYMENT_WARNING"
39164	//   "MISSING_TYPE_DEPENDENCY"
39165	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
39166	//   "NEXT_HOP_CANNOT_IP_FORWARD"
39167	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
39168	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
39169	//   "NEXT_HOP_NOT_RUNNING"
39170	//   "NOT_CRITICAL_ERROR"
39171	//   "NO_RESULTS_ON_PAGE"
39172	//   "PARTIAL_SUCCESS"
39173	//   "REQUIRED_TOS_AGREEMENT"
39174	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
39175	//   "RESOURCE_NOT_DELETED"
39176	//   "SCHEMA_VALIDATION_IGNORED"
39177	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
39178	//   "UNDECLARED_PROPERTIES"
39179	//   "UNREACHABLE"
39180	Code string `json:"code,omitempty"`
39181
39182	// Data: [Output Only] Metadata about this warning in key: value format.
39183	// For example:
39184	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
39185	Data []*ServiceAttachmentsScopedListWarningData `json:"data,omitempty"`
39186
39187	// Message: [Output Only] A human-readable description of the warning
39188	// code.
39189	Message string `json:"message,omitempty"`
39190
39191	// ForceSendFields is a list of field names (e.g. "Code") to
39192	// unconditionally include in API requests. By default, fields with
39193	// empty values are omitted from API requests. However, any non-pointer,
39194	// non-interface field appearing in ForceSendFields will be sent to the
39195	// server regardless of whether the field is empty or not. This may be
39196	// used to include empty fields in Patch requests.
39197	ForceSendFields []string `json:"-"`
39198
39199	// NullFields is a list of field names (e.g. "Code") to include in API
39200	// requests with the JSON null value. By default, fields with empty
39201	// values are omitted from API requests. However, any field with an
39202	// empty value appearing in NullFields will be sent to the server as
39203	// null. It is an error if a field in this list has a non-empty value.
39204	// This may be used to include null fields in Patch requests.
39205	NullFields []string `json:"-"`
39206}
39207
39208func (s *ServiceAttachmentsScopedListWarning) MarshalJSON() ([]byte, error) {
39209	type NoMethod ServiceAttachmentsScopedListWarning
39210	raw := NoMethod(*s)
39211	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39212}
39213
39214type ServiceAttachmentsScopedListWarningData struct {
39215	// Key: [Output Only] A key that provides more detail on the warning
39216	// being returned. For example, for warnings where there are no results
39217	// in a list request for a particular zone, this key might be scope and
39218	// the key value might be the zone name. Other examples might be a key
39219	// indicating a deprecated resource and a suggested replacement, or a
39220	// warning about invalid network settings (for example, if an instance
39221	// attempts to perform IP forwarding but is not enabled for IP
39222	// forwarding).
39223	Key string `json:"key,omitempty"`
39224
39225	// Value: [Output Only] A warning data value corresponding to the key.
39226	Value string `json:"value,omitempty"`
39227
39228	// ForceSendFields is a list of field names (e.g. "Key") to
39229	// unconditionally include in API requests. By default, fields with
39230	// empty values are omitted from API requests. However, any non-pointer,
39231	// non-interface field appearing in ForceSendFields will be sent to the
39232	// server regardless of whether the field is empty or not. This may be
39233	// used to include empty fields in Patch requests.
39234	ForceSendFields []string `json:"-"`
39235
39236	// NullFields is a list of field names (e.g. "Key") to include in API
39237	// requests with the JSON null value. By default, fields with empty
39238	// values are omitted from API requests. However, any field with an
39239	// empty value appearing in NullFields will be sent to the server as
39240	// null. It is an error if a field in this list has a non-empty value.
39241	// This may be used to include null fields in Patch requests.
39242	NullFields []string `json:"-"`
39243}
39244
39245func (s *ServiceAttachmentsScopedListWarningData) MarshalJSON() ([]byte, error) {
39246	type NoMethod ServiceAttachmentsScopedListWarningData
39247	raw := NoMethod(*s)
39248	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39249}
39250
39251// ShieldedInstanceConfig: A set of Shielded Instance options.
39252type ShieldedInstanceConfig struct {
39253	// EnableIntegrityMonitoring: Defines whether the instance has integrity
39254	// monitoring enabled. Enabled by default.
39255	EnableIntegrityMonitoring bool `json:"enableIntegrityMonitoring,omitempty"`
39256
39257	// EnableSecureBoot: Defines whether the instance has Secure Boot
39258	// enabled. Disabled by default.
39259	EnableSecureBoot bool `json:"enableSecureBoot,omitempty"`
39260
39261	// EnableVtpm: Defines whether the instance has the vTPM enabled.
39262	// Enabled by default.
39263	EnableVtpm bool `json:"enableVtpm,omitempty"`
39264
39265	// ForceSendFields is a list of field names (e.g.
39266	// "EnableIntegrityMonitoring") to unconditionally include in API
39267	// requests. By default, fields with empty values are omitted from API
39268	// requests. However, any non-pointer, non-interface field appearing in
39269	// ForceSendFields will be sent to the server regardless of whether the
39270	// field is empty or not. This may be used to include empty fields in
39271	// Patch requests.
39272	ForceSendFields []string `json:"-"`
39273
39274	// NullFields is a list of field names (e.g.
39275	// "EnableIntegrityMonitoring") to include in API requests with the JSON
39276	// null value. By default, fields with empty values are omitted from API
39277	// requests. However, any field with an empty value appearing in
39278	// NullFields will be sent to the server as null. It is an error if a
39279	// field in this list has a non-empty value. This may be used to include
39280	// null fields in Patch requests.
39281	NullFields []string `json:"-"`
39282}
39283
39284func (s *ShieldedInstanceConfig) MarshalJSON() ([]byte, error) {
39285	type NoMethod ShieldedInstanceConfig
39286	raw := NoMethod(*s)
39287	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39288}
39289
39290// ShieldedInstanceIdentity: A shielded Instance identity entry.
39291type ShieldedInstanceIdentity struct {
39292	// EncryptionKey: An Endorsement Key (EK) made by the RSA 2048 algorithm
39293	// issued to the Shielded Instance's vTPM.
39294	EncryptionKey *ShieldedInstanceIdentityEntry `json:"encryptionKey,omitempty"`
39295
39296	// Kind: [Output Only] Type of the resource. Always
39297	// compute#shieldedInstanceIdentity for shielded Instance identity
39298	// entry.
39299	Kind string `json:"kind,omitempty"`
39300
39301	// SigningKey: An Attestation Key (AK) made by the RSA 2048 algorithm
39302	// issued to the Shielded Instance's vTPM.
39303	SigningKey *ShieldedInstanceIdentityEntry `json:"signingKey,omitempty"`
39304
39305	// ServerResponse contains the HTTP response code and headers from the
39306	// server.
39307	googleapi.ServerResponse `json:"-"`
39308
39309	// ForceSendFields is a list of field names (e.g. "EncryptionKey") to
39310	// unconditionally include in API requests. By default, fields with
39311	// empty values are omitted from API requests. However, any non-pointer,
39312	// non-interface field appearing in ForceSendFields will be sent to the
39313	// server regardless of whether the field is empty or not. This may be
39314	// used to include empty fields in Patch requests.
39315	ForceSendFields []string `json:"-"`
39316
39317	// NullFields is a list of field names (e.g. "EncryptionKey") to include
39318	// in API requests with the JSON null value. By default, fields with
39319	// empty values are omitted from API requests. However, any field with
39320	// an empty value appearing in NullFields will be sent to the server as
39321	// null. It is an error if a field in this list has a non-empty value.
39322	// This may be used to include null fields in Patch requests.
39323	NullFields []string `json:"-"`
39324}
39325
39326func (s *ShieldedInstanceIdentity) MarshalJSON() ([]byte, error) {
39327	type NoMethod ShieldedInstanceIdentity
39328	raw := NoMethod(*s)
39329	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39330}
39331
39332// ShieldedInstanceIdentityEntry: A Shielded Instance Identity Entry.
39333type ShieldedInstanceIdentityEntry struct {
39334	// EkCert: A PEM-encoded X.509 certificate. This field can be empty.
39335	EkCert string `json:"ekCert,omitempty"`
39336
39337	// EkPub: A PEM-encoded public key.
39338	EkPub string `json:"ekPub,omitempty"`
39339
39340	// ForceSendFields is a list of field names (e.g. "EkCert") to
39341	// unconditionally include in API requests. By default, fields with
39342	// empty values are omitted from API requests. However, any non-pointer,
39343	// non-interface field appearing in ForceSendFields will be sent to the
39344	// server regardless of whether the field is empty or not. This may be
39345	// used to include empty fields in Patch requests.
39346	ForceSendFields []string `json:"-"`
39347
39348	// NullFields is a list of field names (e.g. "EkCert") to include in API
39349	// requests with the JSON null value. By default, fields with empty
39350	// values are omitted from API requests. However, any field with an
39351	// empty value appearing in NullFields will be sent to the server as
39352	// null. It is an error if a field in this list has a non-empty value.
39353	// This may be used to include null fields in Patch requests.
39354	NullFields []string `json:"-"`
39355}
39356
39357func (s *ShieldedInstanceIdentityEntry) MarshalJSON() ([]byte, error) {
39358	type NoMethod ShieldedInstanceIdentityEntry
39359	raw := NoMethod(*s)
39360	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39361}
39362
39363// ShieldedInstanceIntegrityPolicy: The policy describes the baseline
39364// against which Instance boot integrity is measured.
39365type ShieldedInstanceIntegrityPolicy struct {
39366	// UpdateAutoLearnPolicy: Updates the integrity policy baseline using
39367	// the measurements from the VM instance's most recent boot.
39368	UpdateAutoLearnPolicy bool `json:"updateAutoLearnPolicy,omitempty"`
39369
39370	// ForceSendFields is a list of field names (e.g.
39371	// "UpdateAutoLearnPolicy") to unconditionally include in API requests.
39372	// By default, fields with empty values are omitted from API requests.
39373	// However, any non-pointer, non-interface field appearing in
39374	// ForceSendFields will be sent to the server regardless of whether the
39375	// field is empty or not. This may be used to include empty fields in
39376	// Patch requests.
39377	ForceSendFields []string `json:"-"`
39378
39379	// NullFields is a list of field names (e.g. "UpdateAutoLearnPolicy") to
39380	// include in API requests with the JSON null value. By default, fields
39381	// with empty values are omitted from API requests. However, any field
39382	// with an empty value appearing in NullFields will be sent to the
39383	// server as null. It is an error if a field in this list has a
39384	// non-empty value. This may be used to include null fields in Patch
39385	// requests.
39386	NullFields []string `json:"-"`
39387}
39388
39389func (s *ShieldedInstanceIntegrityPolicy) MarshalJSON() ([]byte, error) {
39390	type NoMethod ShieldedInstanceIntegrityPolicy
39391	raw := NoMethod(*s)
39392	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39393}
39394
39395// ShieldedVmConfig: A set of Shielded VM options.
39396type ShieldedVmConfig struct {
39397	// EnableIntegrityMonitoring: Defines whether the instance has integrity
39398	// monitoring enabled.
39399	EnableIntegrityMonitoring bool `json:"enableIntegrityMonitoring,omitempty"`
39400
39401	// EnableSecureBoot: Defines whether the instance has Secure Boot
39402	// enabled.
39403	EnableSecureBoot bool `json:"enableSecureBoot,omitempty"`
39404
39405	// EnableVtpm: Defines whether the instance has the vTPM enabled.
39406	EnableVtpm bool `json:"enableVtpm,omitempty"`
39407
39408	// ForceSendFields is a list of field names (e.g.
39409	// "EnableIntegrityMonitoring") to unconditionally include in API
39410	// requests. By default, fields with empty values are omitted from API
39411	// requests. However, any non-pointer, non-interface field appearing in
39412	// ForceSendFields will be sent to the server regardless of whether the
39413	// field is empty or not. This may be used to include empty fields in
39414	// Patch requests.
39415	ForceSendFields []string `json:"-"`
39416
39417	// NullFields is a list of field names (e.g.
39418	// "EnableIntegrityMonitoring") to include in API requests with the JSON
39419	// null value. By default, fields with empty values are omitted from API
39420	// requests. However, any field with an empty value appearing in
39421	// NullFields will be sent to the server as null. It is an error if a
39422	// field in this list has a non-empty value. This may be used to include
39423	// null fields in Patch requests.
39424	NullFields []string `json:"-"`
39425}
39426
39427func (s *ShieldedVmConfig) MarshalJSON() ([]byte, error) {
39428	type NoMethod ShieldedVmConfig
39429	raw := NoMethod(*s)
39430	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39431}
39432
39433// ShieldedVmIdentity: A shielded VM identity entry.
39434type ShieldedVmIdentity struct {
39435	// EncryptionKey: An Endorsement Key (EK) issued to the Shielded VM's
39436	// vTPM.
39437	EncryptionKey *ShieldedVmIdentityEntry `json:"encryptionKey,omitempty"`
39438
39439	// Kind: [Output Only] Type of the resource. Always
39440	// compute#shieldedVmIdentity for shielded VM identity entry.
39441	Kind string `json:"kind,omitempty"`
39442
39443	// SigningKey: An Attestation Key (AK) issued to the Shielded VM's vTPM.
39444	SigningKey *ShieldedVmIdentityEntry `json:"signingKey,omitempty"`
39445
39446	// ServerResponse contains the HTTP response code and headers from the
39447	// server.
39448	googleapi.ServerResponse `json:"-"`
39449
39450	// ForceSendFields is a list of field names (e.g. "EncryptionKey") to
39451	// unconditionally include in API requests. By default, fields with
39452	// empty values are omitted from API requests. However, any non-pointer,
39453	// non-interface field appearing in ForceSendFields will be sent to the
39454	// server regardless of whether the field is empty or not. This may be
39455	// used to include empty fields in Patch requests.
39456	ForceSendFields []string `json:"-"`
39457
39458	// NullFields is a list of field names (e.g. "EncryptionKey") to include
39459	// in API requests with the JSON null value. By default, fields with
39460	// empty values are omitted from API requests. However, any field with
39461	// an empty value appearing in NullFields will be sent to the server as
39462	// null. It is an error if a field in this list has a non-empty value.
39463	// This may be used to include null fields in Patch requests.
39464	NullFields []string `json:"-"`
39465}
39466
39467func (s *ShieldedVmIdentity) MarshalJSON() ([]byte, error) {
39468	type NoMethod ShieldedVmIdentity
39469	raw := NoMethod(*s)
39470	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39471}
39472
39473// ShieldedVmIdentityEntry: A Shielded Instance Identity Entry.
39474type ShieldedVmIdentityEntry struct {
39475	// EkCert: A PEM-encoded X.509 certificate. This field can be empty.
39476	EkCert string `json:"ekCert,omitempty"`
39477
39478	// EkPub: A PEM-encoded public key.
39479	EkPub string `json:"ekPub,omitempty"`
39480
39481	// ForceSendFields is a list of field names (e.g. "EkCert") to
39482	// unconditionally include in API requests. By default, fields with
39483	// empty values are omitted from API requests. However, any non-pointer,
39484	// non-interface field appearing in ForceSendFields will be sent to the
39485	// server regardless of whether the field is empty or not. This may be
39486	// used to include empty fields in Patch requests.
39487	ForceSendFields []string `json:"-"`
39488
39489	// NullFields is a list of field names (e.g. "EkCert") to include in API
39490	// requests with the JSON null value. By default, fields with empty
39491	// values are omitted from API requests. However, any field with an
39492	// empty value appearing in NullFields will be sent to the server as
39493	// null. It is an error if a field in this list has a non-empty value.
39494	// This may be used to include null fields in Patch requests.
39495	NullFields []string `json:"-"`
39496}
39497
39498func (s *ShieldedVmIdentityEntry) MarshalJSON() ([]byte, error) {
39499	type NoMethod ShieldedVmIdentityEntry
39500	raw := NoMethod(*s)
39501	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39502}
39503
39504// ShieldedVmIntegrityPolicy: The policy describes the baseline against
39505// which VM instance boot integrity is measured.
39506type ShieldedVmIntegrityPolicy struct {
39507	// UpdateAutoLearnPolicy: Updates the integrity policy baseline using
39508	// the measurements from the VM instance's most recent boot.
39509	UpdateAutoLearnPolicy bool `json:"updateAutoLearnPolicy,omitempty"`
39510
39511	// ForceSendFields is a list of field names (e.g.
39512	// "UpdateAutoLearnPolicy") to unconditionally include in API requests.
39513	// By default, fields with empty values are omitted from API requests.
39514	// However, any non-pointer, non-interface field appearing in
39515	// ForceSendFields will be sent to the server regardless of whether the
39516	// field is empty or not. This may be used to include empty fields in
39517	// Patch requests.
39518	ForceSendFields []string `json:"-"`
39519
39520	// NullFields is a list of field names (e.g. "UpdateAutoLearnPolicy") to
39521	// include in API requests with the JSON null value. By default, fields
39522	// with empty values are omitted from API requests. However, any field
39523	// with an empty value appearing in NullFields will be sent to the
39524	// server as null. It is an error if a field in this list has a
39525	// non-empty value. This may be used to include null fields in Patch
39526	// requests.
39527	NullFields []string `json:"-"`
39528}
39529
39530func (s *ShieldedVmIntegrityPolicy) MarshalJSON() ([]byte, error) {
39531	type NoMethod ShieldedVmIntegrityPolicy
39532	raw := NoMethod(*s)
39533	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39534}
39535
39536// SignedUrlKey: Represents a customer-supplied Signing Key used by
39537// Cloud CDN Signed URLs
39538type SignedUrlKey struct {
39539	// KeyName: Name of the key. The name must be 1-63 characters long, and
39540	// comply with RFC1035. Specifically, the name must be 1-63 characters
39541	// long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`
39542	// which means the first character must be a lowercase letter, and all
39543	// following characters must be a dash, lowercase letter, or digit,
39544	// except the last character, which cannot be a dash.
39545	KeyName string `json:"keyName,omitempty"`
39546
39547	// KeyValue: 128-bit key value used for signing the URL. The key value
39548	// must be a valid RFC 4648 Section 5 base64url encoded string.
39549	KeyValue string `json:"keyValue,omitempty"`
39550
39551	// ForceSendFields is a list of field names (e.g. "KeyName") to
39552	// unconditionally include in API requests. By default, fields with
39553	// empty values are omitted from API requests. However, any non-pointer,
39554	// non-interface field appearing in ForceSendFields will be sent to the
39555	// server regardless of whether the field is empty or not. This may be
39556	// used to include empty fields in Patch requests.
39557	ForceSendFields []string `json:"-"`
39558
39559	// NullFields is a list of field names (e.g. "KeyName") to include in
39560	// API requests with the JSON null value. By default, fields with empty
39561	// values are omitted from API requests. However, any field with an
39562	// empty value appearing in NullFields will be sent to the server as
39563	// null. It is an error if a field in this list has a non-empty value.
39564	// This may be used to include null fields in Patch requests.
39565	NullFields []string `json:"-"`
39566}
39567
39568func (s *SignedUrlKey) MarshalJSON() ([]byte, error) {
39569	type NoMethod SignedUrlKey
39570	raw := NoMethod(*s)
39571	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39572}
39573
39574// Snapshot: Represents a Persistent Disk Snapshot resource.
39575//
39576// You can use snapshots to back up data on a regular interval. For more
39577// information, read  Creating persistent disk snapshots. (==
39578// resource_for {$api_version}.snapshots ==)
39579type Snapshot struct {
39580	// AutoCreated: [Output Only] Set to true if snapshots are automatically
39581	// created by applying resource policy on the target disk.
39582	AutoCreated bool `json:"autoCreated,omitempty"`
39583
39584	// ChainName: Creates the new snapshot in the snapshot chain labeled
39585	// with the specified name. The chain name must be 1-63 characters long
39586	// and comply with RFC1035. This is an uncommon option only for advanced
39587	// service owners who needs to create separate snapshot chains, for
39588	// example, for chargeback tracking. When you describe your snapshot
39589	// resource, this field is visible only if it has a non-empty value.
39590	ChainName string `json:"chainName,omitempty"`
39591
39592	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
39593	// format.
39594	CreationTimestamp string `json:"creationTimestamp,omitempty"`
39595
39596	// Description: An optional description of this resource. Provide this
39597	// property when you create the resource.
39598	Description string `json:"description,omitempty"`
39599
39600	// DiskSizeGb: [Output Only] Size of the source disk, specified in GB.
39601	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
39602
39603	// DownloadBytes: [Output Only] Number of bytes downloaded to restore a
39604	// snapshot to a disk.
39605	DownloadBytes int64 `json:"downloadBytes,omitempty,string"`
39606
39607	// GuestFlush: [Input Only] Whether to attempt an application consistent
39608	// snapshot by informing the OS to prepare for the snapshot process.
39609	// Currently only supported on Windows instances using the Volume Shadow
39610	// Copy Service (VSS).
39611	GuestFlush bool `json:"guestFlush,omitempty"`
39612
39613	// Id: [Output Only] The unique identifier for the resource. This
39614	// identifier is defined by the server.
39615	Id uint64 `json:"id,omitempty,string"`
39616
39617	// Kind: [Output Only] Type of the resource. Always compute#snapshot for
39618	// Snapshot resources.
39619	Kind string `json:"kind,omitempty"`
39620
39621	// LabelFingerprint: A fingerprint for the labels being applied to this
39622	// snapshot, which is essentially a hash of the labels set used for
39623	// optimistic locking. The fingerprint is initially generated by Compute
39624	// Engine and changes after every request to modify or update labels.
39625	// You must always provide an up-to-date fingerprint hash in order to
39626	// update or change labels, otherwise the request will fail with error
39627	// 412 conditionNotMet.
39628	//
39629	// To see the latest fingerprint, make a get() request to retrieve a
39630	// snapshot.
39631	LabelFingerprint string `json:"labelFingerprint,omitempty"`
39632
39633	// Labels: Labels to apply to this snapshot. These can be later modified
39634	// by the setLabels method. Label values may be empty.
39635	Labels map[string]string `json:"labels,omitempty"`
39636
39637	// LicenseCodes: [Output Only] Integer license codes indicating which
39638	// licenses are attached to this snapshot.
39639	LicenseCodes googleapi.Int64s `json:"licenseCodes,omitempty"`
39640
39641	// Licenses: [Output Only] A list of public visible licenses that apply
39642	// to this snapshot. This can be because the original image had licenses
39643	// attached (such as a Windows image).
39644	Licenses []string `json:"licenses,omitempty"`
39645
39646	// LocationHint: An opaque location hint used to place the snapshot
39647	// close to other resources. This field is for use by internal tools
39648	// that use the public API.
39649	LocationHint string `json:"locationHint,omitempty"`
39650
39651	// Name: Name of the resource; provided by the client when the resource
39652	// is created. The name must be 1-63 characters long, and comply with
39653	// RFC1035. Specifically, the name must be 1-63 characters long and
39654	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
39655	// the first character must be a lowercase letter, and all following
39656	// characters must be a dash, lowercase letter, or digit, except the
39657	// last character, which cannot be a dash.
39658	Name string `json:"name,omitempty"`
39659
39660	// SatisfiesPzs: [Output Only] Reserved for future use.
39661	SatisfiesPzs bool `json:"satisfiesPzs,omitempty"`
39662
39663	// SelfLink: [Output Only] Server-defined URL for the resource.
39664	SelfLink string `json:"selfLink,omitempty"`
39665
39666	// SnapshotEncryptionKey: Encrypts the snapshot using a
39667	// customer-supplied encryption key.
39668	//
39669	// After you encrypt a snapshot using a customer-supplied key, you must
39670	// provide the same key if you use the snapshot later. For example, you
39671	// must provide the encryption key when you create a disk from the
39672	// encrypted snapshot in a future request.
39673	//
39674	// Customer-supplied encryption keys do not protect access to metadata
39675	// of the snapshot.
39676	//
39677	// If you do not provide an encryption key when creating the snapshot,
39678	// then the snapshot will be encrypted using an automatically generated
39679	// key and you do not need to provide a key to use the snapshot later.
39680	SnapshotEncryptionKey *CustomerEncryptionKey `json:"snapshotEncryptionKey,omitempty"`
39681
39682	// SourceDisk: The source disk used to create this snapshot.
39683	SourceDisk string `json:"sourceDisk,omitempty"`
39684
39685	// SourceDiskEncryptionKey: The customer-supplied encryption key of the
39686	// source disk. Required if the source disk is protected by a
39687	// customer-supplied encryption key.
39688	SourceDiskEncryptionKey *CustomerEncryptionKey `json:"sourceDiskEncryptionKey,omitempty"`
39689
39690	// SourceDiskId: [Output Only] The ID value of the disk used to create
39691	// this snapshot. This value may be used to determine whether the
39692	// snapshot was taken from the current or a previous instance of a given
39693	// disk name.
39694	SourceDiskId string `json:"sourceDiskId,omitempty"`
39695
39696	// Status: [Output Only] The status of the snapshot. This can be
39697	// CREATING, DELETING, FAILED, READY, or UPLOADING.
39698	//
39699	// Possible values:
39700	//   "CREATING"
39701	//   "DELETING"
39702	//   "FAILED"
39703	//   "READY"
39704	//   "UPLOADING"
39705	Status string `json:"status,omitempty"`
39706
39707	// StorageBytes: [Output Only] A size of the storage used by the
39708	// snapshot. As snapshots share storage, this number is expected to
39709	// change with snapshot creation/deletion.
39710	StorageBytes int64 `json:"storageBytes,omitempty,string"`
39711
39712	// StorageBytesStatus: [Output Only] An indicator whether storageBytes
39713	// is in a stable state or it is being adjusted as a result of shared
39714	// storage reallocation. This status can either be UPDATING, meaning the
39715	// size of the snapshot is being updated, or UP_TO_DATE, meaning the
39716	// size of the snapshot is up-to-date.
39717	//
39718	// Possible values:
39719	//   "UPDATING"
39720	//   "UP_TO_DATE"
39721	StorageBytesStatus string `json:"storageBytesStatus,omitempty"`
39722
39723	// StorageLocations: Cloud Storage bucket storage location of the
39724	// snapshot (regional or multi-regional).
39725	StorageLocations []string `json:"storageLocations,omitempty"`
39726
39727	// ServerResponse contains the HTTP response code and headers from the
39728	// server.
39729	googleapi.ServerResponse `json:"-"`
39730
39731	// ForceSendFields is a list of field names (e.g. "AutoCreated") to
39732	// unconditionally include in API requests. By default, fields with
39733	// empty values are omitted from API requests. However, any non-pointer,
39734	// non-interface field appearing in ForceSendFields will be sent to the
39735	// server regardless of whether the field is empty or not. This may be
39736	// used to include empty fields in Patch requests.
39737	ForceSendFields []string `json:"-"`
39738
39739	// NullFields is a list of field names (e.g. "AutoCreated") to include
39740	// in API requests with the JSON null value. By default, fields with
39741	// empty values are omitted from API requests. However, any field with
39742	// an empty value appearing in NullFields will be sent to the server as
39743	// null. It is an error if a field in this list has a non-empty value.
39744	// This may be used to include null fields in Patch requests.
39745	NullFields []string `json:"-"`
39746}
39747
39748func (s *Snapshot) MarshalJSON() ([]byte, error) {
39749	type NoMethod Snapshot
39750	raw := NoMethod(*s)
39751	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39752}
39753
39754// SnapshotList: Contains a list of Snapshot resources.
39755type SnapshotList struct {
39756	// Id: [Output Only] Unique identifier for the resource; defined by the
39757	// server.
39758	Id string `json:"id,omitempty"`
39759
39760	// Items: A list of Snapshot resources.
39761	Items []*Snapshot `json:"items,omitempty"`
39762
39763	// Kind: Type of resource.
39764	Kind string `json:"kind,omitempty"`
39765
39766	// NextPageToken: [Output Only] This token allows you to get the next
39767	// page of results for list requests. If the number of results is larger
39768	// than maxResults, use the nextPageToken as a value for the query
39769	// parameter pageToken in the next list request. Subsequent list
39770	// requests will have their own nextPageToken to continue paging through
39771	// the results.
39772	NextPageToken string `json:"nextPageToken,omitempty"`
39773
39774	// SelfLink: [Output Only] Server-defined URL for this resource.
39775	SelfLink string `json:"selfLink,omitempty"`
39776
39777	// Warning: [Output Only] Informational warning message.
39778	Warning *SnapshotListWarning `json:"warning,omitempty"`
39779
39780	// ServerResponse contains the HTTP response code and headers from the
39781	// server.
39782	googleapi.ServerResponse `json:"-"`
39783
39784	// ForceSendFields is a list of field names (e.g. "Id") to
39785	// unconditionally include in API requests. By default, fields with
39786	// empty values are omitted from API requests. However, any non-pointer,
39787	// non-interface field appearing in ForceSendFields will be sent to the
39788	// server regardless of whether the field is empty or not. This may be
39789	// used to include empty fields in Patch requests.
39790	ForceSendFields []string `json:"-"`
39791
39792	// NullFields is a list of field names (e.g. "Id") to include in API
39793	// requests with the JSON null value. By default, fields with empty
39794	// values are omitted from API requests. However, any field with an
39795	// empty value appearing in NullFields will be sent to the server as
39796	// null. It is an error if a field in this list has a non-empty value.
39797	// This may be used to include null fields in Patch requests.
39798	NullFields []string `json:"-"`
39799}
39800
39801func (s *SnapshotList) MarshalJSON() ([]byte, error) {
39802	type NoMethod SnapshotList
39803	raw := NoMethod(*s)
39804	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39805}
39806
39807// SnapshotListWarning: [Output Only] Informational warning message.
39808type SnapshotListWarning struct {
39809	// Code: [Output Only] A warning code, if applicable. For example,
39810	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
39811	// the response.
39812	//
39813	// Possible values:
39814	//   "CLEANUP_FAILED"
39815	//   "DEPRECATED_RESOURCE_USED"
39816	//   "DEPRECATED_TYPE_USED"
39817	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
39818	//   "EXPERIMENTAL_TYPE_USED"
39819	//   "EXTERNAL_API_WARNING"
39820	//   "FIELD_VALUE_OVERRIDEN"
39821	//   "INJECTED_KERNELS_DEPRECATED"
39822	//   "LARGE_DEPLOYMENT_WARNING"
39823	//   "MISSING_TYPE_DEPENDENCY"
39824	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
39825	//   "NEXT_HOP_CANNOT_IP_FORWARD"
39826	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
39827	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
39828	//   "NEXT_HOP_NOT_RUNNING"
39829	//   "NOT_CRITICAL_ERROR"
39830	//   "NO_RESULTS_ON_PAGE"
39831	//   "PARTIAL_SUCCESS"
39832	//   "REQUIRED_TOS_AGREEMENT"
39833	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
39834	//   "RESOURCE_NOT_DELETED"
39835	//   "SCHEMA_VALIDATION_IGNORED"
39836	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
39837	//   "UNDECLARED_PROPERTIES"
39838	//   "UNREACHABLE"
39839	Code string `json:"code,omitempty"`
39840
39841	// Data: [Output Only] Metadata about this warning in key: value format.
39842	// For example:
39843	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
39844	Data []*SnapshotListWarningData `json:"data,omitempty"`
39845
39846	// Message: [Output Only] A human-readable description of the warning
39847	// code.
39848	Message string `json:"message,omitempty"`
39849
39850	// ForceSendFields is a list of field names (e.g. "Code") to
39851	// unconditionally include in API requests. By default, fields with
39852	// empty values are omitted from API requests. However, any non-pointer,
39853	// non-interface field appearing in ForceSendFields will be sent to the
39854	// server regardless of whether the field is empty or not. This may be
39855	// used to include empty fields in Patch requests.
39856	ForceSendFields []string `json:"-"`
39857
39858	// NullFields is a list of field names (e.g. "Code") to include in API
39859	// requests with the JSON null value. By default, fields with empty
39860	// values are omitted from API requests. However, any field with an
39861	// empty value appearing in NullFields will be sent to the server as
39862	// null. It is an error if a field in this list has a non-empty value.
39863	// This may be used to include null fields in Patch requests.
39864	NullFields []string `json:"-"`
39865}
39866
39867func (s *SnapshotListWarning) MarshalJSON() ([]byte, error) {
39868	type NoMethod SnapshotListWarning
39869	raw := NoMethod(*s)
39870	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39871}
39872
39873type SnapshotListWarningData struct {
39874	// Key: [Output Only] A key that provides more detail on the warning
39875	// being returned. For example, for warnings where there are no results
39876	// in a list request for a particular zone, this key might be scope and
39877	// the key value might be the zone name. Other examples might be a key
39878	// indicating a deprecated resource and a suggested replacement, or a
39879	// warning about invalid network settings (for example, if an instance
39880	// attempts to perform IP forwarding but is not enabled for IP
39881	// forwarding).
39882	Key string `json:"key,omitempty"`
39883
39884	// Value: [Output Only] A warning data value corresponding to the key.
39885	Value string `json:"value,omitempty"`
39886
39887	// ForceSendFields is a list of field names (e.g. "Key") to
39888	// unconditionally include in API requests. By default, fields with
39889	// empty values are omitted from API requests. However, any non-pointer,
39890	// non-interface field appearing in ForceSendFields will be sent to the
39891	// server regardless of whether the field is empty or not. This may be
39892	// used to include empty fields in Patch requests.
39893	ForceSendFields []string `json:"-"`
39894
39895	// NullFields is a list of field names (e.g. "Key") to include in API
39896	// requests with the JSON null value. By default, fields with empty
39897	// values are omitted from API requests. However, any field with an
39898	// empty value appearing in NullFields will be sent to the server as
39899	// null. It is an error if a field in this list has a non-empty value.
39900	// This may be used to include null fields in Patch requests.
39901	NullFields []string `json:"-"`
39902}
39903
39904func (s *SnapshotListWarningData) MarshalJSON() ([]byte, error) {
39905	type NoMethod SnapshotListWarningData
39906	raw := NoMethod(*s)
39907	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39908}
39909
39910type SourceDiskEncryptionKey struct {
39911	// DiskEncryptionKey: The customer-supplied encryption key of the source
39912	// disk. Required if the source disk is protected by a customer-supplied
39913	// encryption key.
39914	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
39915
39916	// SourceDisk: URL of the disk attached to the source instance. This can
39917	// be a full or valid partial URL. For example, the following are valid
39918	// values:
39919	// -
39920	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk
39921	//
39922	// - projects/project/zones/zone/disks/disk
39923	// - zones/zone/disks/disk
39924	SourceDisk string `json:"sourceDisk,omitempty"`
39925
39926	// ForceSendFields is a list of field names (e.g. "DiskEncryptionKey")
39927	// to unconditionally include in API requests. By default, fields with
39928	// empty values are omitted from API requests. However, any non-pointer,
39929	// non-interface field appearing in ForceSendFields will be sent to the
39930	// server regardless of whether the field is empty or not. This may be
39931	// used to include empty fields in Patch requests.
39932	ForceSendFields []string `json:"-"`
39933
39934	// NullFields is a list of field names (e.g. "DiskEncryptionKey") to
39935	// include in API requests with the JSON null value. By default, fields
39936	// with empty values are omitted from API requests. However, any field
39937	// with an empty value appearing in NullFields will be sent to the
39938	// server as null. It is an error if a field in this list has a
39939	// non-empty value. This may be used to include null fields in Patch
39940	// requests.
39941	NullFields []string `json:"-"`
39942}
39943
39944func (s *SourceDiskEncryptionKey) MarshalJSON() ([]byte, error) {
39945	type NoMethod SourceDiskEncryptionKey
39946	raw := NoMethod(*s)
39947	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39948}
39949
39950// SourceInstanceParams: A specification of the parameters to use when
39951// creating the instance template from a source instance.
39952type SourceInstanceParams struct {
39953	// DiskConfigs: Attached disks configuration. If not provided, defaults
39954	// are applied: For boot disk and any other R/W disks, new custom images
39955	// will be created from each disk. For read-only disks, they will be
39956	// attached in read-only mode. Local SSD disks will be created as blank
39957	// volumes.
39958	DiskConfigs []*DiskInstantiationConfig `json:"diskConfigs,omitempty"`
39959
39960	// ForceSendFields is a list of field names (e.g. "DiskConfigs") to
39961	// unconditionally include in API requests. By default, fields with
39962	// empty values are omitted from API requests. However, any non-pointer,
39963	// non-interface field appearing in ForceSendFields will be sent to the
39964	// server regardless of whether the field is empty or not. This may be
39965	// used to include empty fields in Patch requests.
39966	ForceSendFields []string `json:"-"`
39967
39968	// NullFields is a list of field names (e.g. "DiskConfigs") to include
39969	// in API requests with the JSON null value. By default, fields with
39970	// empty values are omitted from API requests. However, any field with
39971	// an empty value appearing in NullFields will be sent to the server as
39972	// null. It is an error if a field in this list has a non-empty value.
39973	// This may be used to include null fields in Patch requests.
39974	NullFields []string `json:"-"`
39975}
39976
39977func (s *SourceInstanceParams) MarshalJSON() ([]byte, error) {
39978	type NoMethod SourceInstanceParams
39979	raw := NoMethod(*s)
39980	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39981}
39982
39983type SourceInstanceProperties struct {
39984	// CanIpForward: Enables instances created based on this machine image
39985	// to send packets with source IP addresses other than their own and
39986	// receive packets with destination IP addresses other than their own.
39987	// If these instances will be used as an IP gateway or it will be set as
39988	// the next-hop in a Route resource, specify true. If unsure, leave this
39989	// set to false. See the Enable IP forwarding documentation for more
39990	// information.
39991	CanIpForward bool `json:"canIpForward,omitempty"`
39992
39993	// DeletionProtection: Whether the instance created from this machine
39994	// image should be protected against deletion.
39995	DeletionProtection bool `json:"deletionProtection,omitempty"`
39996
39997	// Description: An optional text description for the instances that are
39998	// created from this machine image.
39999	Description string `json:"description,omitempty"`
40000
40001	// Disks: An array of disks that are associated with the instances that
40002	// are created from this machine image.
40003	Disks []*SavedAttachedDisk `json:"disks,omitempty"`
40004
40005	// GuestAccelerators: A list of guest accelerator cards' type and count
40006	// to use for instances created from this machine image.
40007	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
40008
40009	// Labels: Labels to apply to instances that are created from this
40010	// machine image.
40011	Labels map[string]string `json:"labels,omitempty"`
40012
40013	// MachineType: The machine type to use for instances that are created
40014	// from this machine image.
40015	MachineType string `json:"machineType,omitempty"`
40016
40017	// Metadata: The metadata key/value pairs to assign to instances that
40018	// are created from this machine image. These pairs can consist of
40019	// custom metadata or predefined keys. See Project and instance metadata
40020	// for more information.
40021	Metadata *Metadata `json:"metadata,omitempty"`
40022
40023	// MinCpuPlatform: Minimum cpu/platform to be used by instances created
40024	// from this machine image. The instance may be scheduled on the
40025	// specified or newer cpu/platform. Applicable values are the friendly
40026	// names of CPU platforms, such as minCpuPlatform: "Intel Haswell" or
40027	// minCpuPlatform: "Intel Sandy Bridge". For more information, read
40028	// Specifying a Minimum CPU Platform.
40029	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
40030
40031	// NetworkInterfaces: An array of network access configurations for this
40032	// interface.
40033	NetworkInterfaces []*NetworkInterface `json:"networkInterfaces,omitempty"`
40034
40035	// PostKeyRevocationActionType: PostKeyRevocationActionType of the
40036	// instance.
40037	//
40038	// Possible values:
40039	//   "NOOP"
40040	//   "POST_KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED"
40041	//   "SHUTDOWN"
40042	PostKeyRevocationActionType string `json:"postKeyRevocationActionType,omitempty"`
40043
40044	// Scheduling: Specifies the scheduling options for the instances that
40045	// are created from this machine image.
40046	Scheduling *Scheduling `json:"scheduling,omitempty"`
40047
40048	// ServiceAccounts: A list of service accounts with specified scopes.
40049	// Access tokens for these service accounts are available to the
40050	// instances that are created from this machine image. Use metadata
40051	// queries to obtain the access tokens for these instances.
40052	ServiceAccounts []*ServiceAccount `json:"serviceAccounts,omitempty"`
40053
40054	// Tags: A list of tags to apply to the instances that are created from
40055	// this machine image. The tags identify valid sources or targets for
40056	// network firewalls. The setTags method can modify this list of tags.
40057	// Each tag within the list must comply with RFC1035.
40058	Tags *Tags `json:"tags,omitempty"`
40059
40060	// ForceSendFields is a list of field names (e.g. "CanIpForward") to
40061	// unconditionally include in API requests. By default, fields with
40062	// empty values are omitted from API requests. However, any non-pointer,
40063	// non-interface field appearing in ForceSendFields will be sent to the
40064	// server regardless of whether the field is empty or not. This may be
40065	// used to include empty fields in Patch requests.
40066	ForceSendFields []string `json:"-"`
40067
40068	// NullFields is a list of field names (e.g. "CanIpForward") to include
40069	// in API requests with the JSON null value. By default, fields with
40070	// empty values are omitted from API requests. However, any field with
40071	// an empty value appearing in NullFields will be sent to the server as
40072	// null. It is an error if a field in this list has a non-empty value.
40073	// This may be used to include null fields in Patch requests.
40074	NullFields []string `json:"-"`
40075}
40076
40077func (s *SourceInstanceProperties) MarshalJSON() ([]byte, error) {
40078	type NoMethod SourceInstanceProperties
40079	raw := NoMethod(*s)
40080	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40081}
40082
40083// SslCertificate: Represents an SSL Certificate resource.
40084//
40085// Google Compute Engine has two SSL Certificate resources:
40086//
40087// * Global
40088// (/compute/docs/reference/rest/{$api_version}/sslCertificates) *
40089// Regional
40090// (/compute/docs/reference/rest/{$api_version}/regionSslCertificates)
40091//
40092//
40093//
40094// The sslCertificates are used by:
40095// - external HTTPS load balancers
40096// - SSL proxy load balancers
40097//
40098// The regionSslCertificates are used by internal HTTPS load
40099// balancers.
40100//
40101// Optionally, certificate file contents that you upload can contain a
40102// set of up to five PEM-encoded certificates. The API call creates an
40103// object (sslCertificate) that holds this data. You can use SSL keys
40104// and certificates to secure connections to a load balancer. For more
40105// information, read  Creating and using SSL certificates, SSL
40106// certificates quotas and limits, and  Troubleshooting SSL
40107// certificates. (== resource_for {$api_version}.sslCertificates ==) (==
40108// resource_for {$api_version}.regionSslCertificates ==)
40109type SslCertificate struct {
40110	// Certificate: A value read into memory from a certificate file. The
40111	// certificate file must be in PEM format. The certificate chain must be
40112	// no greater than 5 certs long. The chain must include at least one
40113	// intermediate cert.
40114	Certificate string `json:"certificate,omitempty"`
40115
40116	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
40117	// format.
40118	CreationTimestamp string `json:"creationTimestamp,omitempty"`
40119
40120	// Description: An optional description of this resource. Provide this
40121	// property when you create the resource.
40122	Description string `json:"description,omitempty"`
40123
40124	// ExpireTime: [Output Only] Expire time of the certificate. RFC3339
40125	ExpireTime string `json:"expireTime,omitempty"`
40126
40127	// Id: [Output Only] The unique identifier for the resource. This
40128	// identifier is defined by the server.
40129	Id uint64 `json:"id,omitempty,string"`
40130
40131	// Kind: [Output Only] Type of the resource. Always
40132	// compute#sslCertificate for SSL certificates.
40133	Kind string `json:"kind,omitempty"`
40134
40135	// Managed: Configuration and status of a managed SSL certificate.
40136	Managed *SslCertificateManagedSslCertificate `json:"managed,omitempty"`
40137
40138	// Name: Name of the resource. Provided by the client when the resource
40139	// is created. The name must be 1-63 characters long, and comply with
40140	// RFC1035. Specifically, the name must be 1-63 characters long and
40141	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
40142	// the first character must be a lowercase letter, and all following
40143	// characters must be a dash, lowercase letter, or digit, except the
40144	// last character, which cannot be a dash.
40145	Name string `json:"name,omitempty"`
40146
40147	// PrivateKey: A value read into memory from a write-only private key
40148	// file. The private key file must be in PEM format. For security, only
40149	// insert requests include this field.
40150	PrivateKey string `json:"privateKey,omitempty"`
40151
40152	// Region: [Output Only] URL of the region where the regional SSL
40153	// Certificate resides. This field is not applicable to global SSL
40154	// Certificate.
40155	Region string `json:"region,omitempty"`
40156
40157	// SelfLink: [Output only] Server-defined URL for the resource.
40158	SelfLink string `json:"selfLink,omitempty"`
40159
40160	// SelfManaged: Configuration and status of a self-managed SSL
40161	// certificate.
40162	SelfManaged *SslCertificateSelfManagedSslCertificate `json:"selfManaged,omitempty"`
40163
40164	// SubjectAlternativeNames: [Output Only] Domains associated with the
40165	// certificate via Subject Alternative Name.
40166	SubjectAlternativeNames []string `json:"subjectAlternativeNames,omitempty"`
40167
40168	// Type: (Optional) Specifies the type of SSL certificate, either
40169	// "SELF_MANAGED" or "MANAGED". If not specified, the certificate is
40170	// self-managed and the fields certificate and private_key are used.
40171	//
40172	// Possible values:
40173	//   "MANAGED"
40174	//   "SELF_MANAGED"
40175	//   "TYPE_UNSPECIFIED"
40176	Type string `json:"type,omitempty"`
40177
40178	// ServerResponse contains the HTTP response code and headers from the
40179	// server.
40180	googleapi.ServerResponse `json:"-"`
40181
40182	// ForceSendFields is a list of field names (e.g. "Certificate") to
40183	// unconditionally include in API requests. By default, fields with
40184	// empty values are omitted from API requests. However, any non-pointer,
40185	// non-interface field appearing in ForceSendFields will be sent to the
40186	// server regardless of whether the field is empty or not. This may be
40187	// used to include empty fields in Patch requests.
40188	ForceSendFields []string `json:"-"`
40189
40190	// NullFields is a list of field names (e.g. "Certificate") to include
40191	// in API requests with the JSON null value. By default, fields with
40192	// empty values are omitted from API requests. However, any field with
40193	// an empty value appearing in NullFields will be sent to the server as
40194	// null. It is an error if a field in this list has a non-empty value.
40195	// This may be used to include null fields in Patch requests.
40196	NullFields []string `json:"-"`
40197}
40198
40199func (s *SslCertificate) MarshalJSON() ([]byte, error) {
40200	type NoMethod SslCertificate
40201	raw := NoMethod(*s)
40202	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40203}
40204
40205type SslCertificateAggregatedList struct {
40206	// Id: [Output Only] Unique identifier for the resource; defined by the
40207	// server.
40208	Id string `json:"id,omitempty"`
40209
40210	// Items: A list of SslCertificatesScopedList resources.
40211	Items map[string]SslCertificatesScopedList `json:"items,omitempty"`
40212
40213	// Kind: [Output Only] Type of resource. Always
40214	// compute#sslCertificateAggregatedList for lists of SSL Certificates.
40215	Kind string `json:"kind,omitempty"`
40216
40217	// NextPageToken: [Output Only] This token allows you to get the next
40218	// page of results for list requests. If the number of results is larger
40219	// than maxResults, use the nextPageToken as a value for the query
40220	// parameter pageToken in the next list request. Subsequent list
40221	// requests will have their own nextPageToken to continue paging through
40222	// the results.
40223	NextPageToken string `json:"nextPageToken,omitempty"`
40224
40225	// SelfLink: [Output Only] Server-defined URL for this resource.
40226	SelfLink string `json:"selfLink,omitempty"`
40227
40228	// Unreachables: [Output Only] Unreachable resources.
40229	Unreachables []string `json:"unreachables,omitempty"`
40230
40231	// Warning: [Output Only] Informational warning message.
40232	Warning *SslCertificateAggregatedListWarning `json:"warning,omitempty"`
40233
40234	// ServerResponse contains the HTTP response code and headers from the
40235	// server.
40236	googleapi.ServerResponse `json:"-"`
40237
40238	// ForceSendFields is a list of field names (e.g. "Id") to
40239	// unconditionally include in API requests. By default, fields with
40240	// empty values are omitted from API requests. However, any non-pointer,
40241	// non-interface field appearing in ForceSendFields will be sent to the
40242	// server regardless of whether the field is empty or not. This may be
40243	// used to include empty fields in Patch requests.
40244	ForceSendFields []string `json:"-"`
40245
40246	// NullFields is a list of field names (e.g. "Id") to include in API
40247	// requests with the JSON null value. By default, fields with empty
40248	// values are omitted from API requests. However, any field with an
40249	// empty value appearing in NullFields will be sent to the server as
40250	// null. It is an error if a field in this list has a non-empty value.
40251	// This may be used to include null fields in Patch requests.
40252	NullFields []string `json:"-"`
40253}
40254
40255func (s *SslCertificateAggregatedList) MarshalJSON() ([]byte, error) {
40256	type NoMethod SslCertificateAggregatedList
40257	raw := NoMethod(*s)
40258	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40259}
40260
40261// SslCertificateAggregatedListWarning: [Output Only] Informational
40262// warning message.
40263type SslCertificateAggregatedListWarning struct {
40264	// Code: [Output Only] A warning code, if applicable. For example,
40265	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
40266	// the response.
40267	//
40268	// Possible values:
40269	//   "CLEANUP_FAILED"
40270	//   "DEPRECATED_RESOURCE_USED"
40271	//   "DEPRECATED_TYPE_USED"
40272	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
40273	//   "EXPERIMENTAL_TYPE_USED"
40274	//   "EXTERNAL_API_WARNING"
40275	//   "FIELD_VALUE_OVERRIDEN"
40276	//   "INJECTED_KERNELS_DEPRECATED"
40277	//   "LARGE_DEPLOYMENT_WARNING"
40278	//   "MISSING_TYPE_DEPENDENCY"
40279	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
40280	//   "NEXT_HOP_CANNOT_IP_FORWARD"
40281	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
40282	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
40283	//   "NEXT_HOP_NOT_RUNNING"
40284	//   "NOT_CRITICAL_ERROR"
40285	//   "NO_RESULTS_ON_PAGE"
40286	//   "PARTIAL_SUCCESS"
40287	//   "REQUIRED_TOS_AGREEMENT"
40288	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
40289	//   "RESOURCE_NOT_DELETED"
40290	//   "SCHEMA_VALIDATION_IGNORED"
40291	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
40292	//   "UNDECLARED_PROPERTIES"
40293	//   "UNREACHABLE"
40294	Code string `json:"code,omitempty"`
40295
40296	// Data: [Output Only] Metadata about this warning in key: value format.
40297	// For example:
40298	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
40299	Data []*SslCertificateAggregatedListWarningData `json:"data,omitempty"`
40300
40301	// Message: [Output Only] A human-readable description of the warning
40302	// code.
40303	Message string `json:"message,omitempty"`
40304
40305	// ForceSendFields is a list of field names (e.g. "Code") to
40306	// unconditionally include in API requests. By default, fields with
40307	// empty values are omitted from API requests. However, any non-pointer,
40308	// non-interface field appearing in ForceSendFields will be sent to the
40309	// server regardless of whether the field is empty or not. This may be
40310	// used to include empty fields in Patch requests.
40311	ForceSendFields []string `json:"-"`
40312
40313	// NullFields is a list of field names (e.g. "Code") to include in API
40314	// requests with the JSON null value. By default, fields with empty
40315	// values are omitted from API requests. However, any field with an
40316	// empty value appearing in NullFields will be sent to the server as
40317	// null. It is an error if a field in this list has a non-empty value.
40318	// This may be used to include null fields in Patch requests.
40319	NullFields []string `json:"-"`
40320}
40321
40322func (s *SslCertificateAggregatedListWarning) MarshalJSON() ([]byte, error) {
40323	type NoMethod SslCertificateAggregatedListWarning
40324	raw := NoMethod(*s)
40325	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40326}
40327
40328type SslCertificateAggregatedListWarningData struct {
40329	// Key: [Output Only] A key that provides more detail on the warning
40330	// being returned. For example, for warnings where there are no results
40331	// in a list request for a particular zone, this key might be scope and
40332	// the key value might be the zone name. Other examples might be a key
40333	// indicating a deprecated resource and a suggested replacement, or a
40334	// warning about invalid network settings (for example, if an instance
40335	// attempts to perform IP forwarding but is not enabled for IP
40336	// forwarding).
40337	Key string `json:"key,omitempty"`
40338
40339	// Value: [Output Only] A warning data value corresponding to the key.
40340	Value string `json:"value,omitempty"`
40341
40342	// ForceSendFields is a list of field names (e.g. "Key") to
40343	// unconditionally include in API requests. By default, fields with
40344	// empty values are omitted from API requests. However, any non-pointer,
40345	// non-interface field appearing in ForceSendFields will be sent to the
40346	// server regardless of whether the field is empty or not. This may be
40347	// used to include empty fields in Patch requests.
40348	ForceSendFields []string `json:"-"`
40349
40350	// NullFields is a list of field names (e.g. "Key") to include in API
40351	// requests with the JSON null value. By default, fields with empty
40352	// values are omitted from API requests. However, any field with an
40353	// empty value appearing in NullFields will be sent to the server as
40354	// null. It is an error if a field in this list has a non-empty value.
40355	// This may be used to include null fields in Patch requests.
40356	NullFields []string `json:"-"`
40357}
40358
40359func (s *SslCertificateAggregatedListWarningData) MarshalJSON() ([]byte, error) {
40360	type NoMethod SslCertificateAggregatedListWarningData
40361	raw := NoMethod(*s)
40362	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40363}
40364
40365// SslCertificateList: Contains a list of SslCertificate resources.
40366type SslCertificateList struct {
40367	// Id: [Output Only] Unique identifier for the resource; defined by the
40368	// server.
40369	Id string `json:"id,omitempty"`
40370
40371	// Items: A list of SslCertificate resources.
40372	Items []*SslCertificate `json:"items,omitempty"`
40373
40374	// Kind: Type of resource.
40375	Kind string `json:"kind,omitempty"`
40376
40377	// NextPageToken: [Output Only] This token allows you to get the next
40378	// page of results for list requests. If the number of results is larger
40379	// than maxResults, use the nextPageToken as a value for the query
40380	// parameter pageToken in the next list request. Subsequent list
40381	// requests will have their own nextPageToken to continue paging through
40382	// the results.
40383	NextPageToken string `json:"nextPageToken,omitempty"`
40384
40385	// SelfLink: [Output Only] Server-defined URL for this resource.
40386	SelfLink string `json:"selfLink,omitempty"`
40387
40388	// Warning: [Output Only] Informational warning message.
40389	Warning *SslCertificateListWarning `json:"warning,omitempty"`
40390
40391	// ServerResponse contains the HTTP response code and headers from the
40392	// server.
40393	googleapi.ServerResponse `json:"-"`
40394
40395	// ForceSendFields is a list of field names (e.g. "Id") to
40396	// unconditionally include in API requests. By default, fields with
40397	// empty values are omitted from API requests. However, any non-pointer,
40398	// non-interface field appearing in ForceSendFields will be sent to the
40399	// server regardless of whether the field is empty or not. This may be
40400	// used to include empty fields in Patch requests.
40401	ForceSendFields []string `json:"-"`
40402
40403	// NullFields is a list of field names (e.g. "Id") to include in API
40404	// requests with the JSON null value. By default, fields with empty
40405	// values are omitted from API requests. However, any field with an
40406	// empty value appearing in NullFields will be sent to the server as
40407	// null. It is an error if a field in this list has a non-empty value.
40408	// This may be used to include null fields in Patch requests.
40409	NullFields []string `json:"-"`
40410}
40411
40412func (s *SslCertificateList) MarshalJSON() ([]byte, error) {
40413	type NoMethod SslCertificateList
40414	raw := NoMethod(*s)
40415	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40416}
40417
40418// SslCertificateListWarning: [Output Only] Informational warning
40419// message.
40420type SslCertificateListWarning struct {
40421	// Code: [Output Only] A warning code, if applicable. For example,
40422	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
40423	// the response.
40424	//
40425	// Possible values:
40426	//   "CLEANUP_FAILED"
40427	//   "DEPRECATED_RESOURCE_USED"
40428	//   "DEPRECATED_TYPE_USED"
40429	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
40430	//   "EXPERIMENTAL_TYPE_USED"
40431	//   "EXTERNAL_API_WARNING"
40432	//   "FIELD_VALUE_OVERRIDEN"
40433	//   "INJECTED_KERNELS_DEPRECATED"
40434	//   "LARGE_DEPLOYMENT_WARNING"
40435	//   "MISSING_TYPE_DEPENDENCY"
40436	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
40437	//   "NEXT_HOP_CANNOT_IP_FORWARD"
40438	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
40439	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
40440	//   "NEXT_HOP_NOT_RUNNING"
40441	//   "NOT_CRITICAL_ERROR"
40442	//   "NO_RESULTS_ON_PAGE"
40443	//   "PARTIAL_SUCCESS"
40444	//   "REQUIRED_TOS_AGREEMENT"
40445	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
40446	//   "RESOURCE_NOT_DELETED"
40447	//   "SCHEMA_VALIDATION_IGNORED"
40448	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
40449	//   "UNDECLARED_PROPERTIES"
40450	//   "UNREACHABLE"
40451	Code string `json:"code,omitempty"`
40452
40453	// Data: [Output Only] Metadata about this warning in key: value format.
40454	// For example:
40455	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
40456	Data []*SslCertificateListWarningData `json:"data,omitempty"`
40457
40458	// Message: [Output Only] A human-readable description of the warning
40459	// code.
40460	Message string `json:"message,omitempty"`
40461
40462	// ForceSendFields is a list of field names (e.g. "Code") to
40463	// unconditionally include in API requests. By default, fields with
40464	// empty values are omitted from API requests. However, any non-pointer,
40465	// non-interface field appearing in ForceSendFields will be sent to the
40466	// server regardless of whether the field is empty or not. This may be
40467	// used to include empty fields in Patch requests.
40468	ForceSendFields []string `json:"-"`
40469
40470	// NullFields is a list of field names (e.g. "Code") to include in API
40471	// requests with the JSON null value. By default, fields with empty
40472	// values are omitted from API requests. However, any field with an
40473	// empty value appearing in NullFields will be sent to the server as
40474	// null. It is an error if a field in this list has a non-empty value.
40475	// This may be used to include null fields in Patch requests.
40476	NullFields []string `json:"-"`
40477}
40478
40479func (s *SslCertificateListWarning) MarshalJSON() ([]byte, error) {
40480	type NoMethod SslCertificateListWarning
40481	raw := NoMethod(*s)
40482	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40483}
40484
40485type SslCertificateListWarningData struct {
40486	// Key: [Output Only] A key that provides more detail on the warning
40487	// being returned. For example, for warnings where there are no results
40488	// in a list request for a particular zone, this key might be scope and
40489	// the key value might be the zone name. Other examples might be a key
40490	// indicating a deprecated resource and a suggested replacement, or a
40491	// warning about invalid network settings (for example, if an instance
40492	// attempts to perform IP forwarding but is not enabled for IP
40493	// forwarding).
40494	Key string `json:"key,omitempty"`
40495
40496	// Value: [Output Only] A warning data value corresponding to the key.
40497	Value string `json:"value,omitempty"`
40498
40499	// ForceSendFields is a list of field names (e.g. "Key") to
40500	// unconditionally include in API requests. By default, fields with
40501	// empty values are omitted from API requests. However, any non-pointer,
40502	// non-interface field appearing in ForceSendFields will be sent to the
40503	// server regardless of whether the field is empty or not. This may be
40504	// used to include empty fields in Patch requests.
40505	ForceSendFields []string `json:"-"`
40506
40507	// NullFields is a list of field names (e.g. "Key") to include in API
40508	// requests with the JSON null value. By default, fields with empty
40509	// values are omitted from API requests. However, any field with an
40510	// empty value appearing in NullFields will be sent to the server as
40511	// null. It is an error if a field in this list has a non-empty value.
40512	// This may be used to include null fields in Patch requests.
40513	NullFields []string `json:"-"`
40514}
40515
40516func (s *SslCertificateListWarningData) MarshalJSON() ([]byte, error) {
40517	type NoMethod SslCertificateListWarningData
40518	raw := NoMethod(*s)
40519	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40520}
40521
40522// SslCertificateManagedSslCertificate: Configuration and status of a
40523// managed SSL certificate.
40524type SslCertificateManagedSslCertificate struct {
40525	// DomainStatus: [Output only] Detailed statuses of the domains
40526	// specified for managed certificate resource.
40527	DomainStatus map[string]string `json:"domainStatus,omitempty"`
40528
40529	// Domains: The domains for which a managed SSL certificate will be
40530	// generated. Each Google-managed SSL certificate supports up to the
40531	// maximum number of domains per Google-managed SSL certificate
40532	// (/load-balancing/docs/quotas#ssl_certificates).
40533	Domains []string `json:"domains,omitempty"`
40534
40535	// Status: [Output only] Status of the managed certificate resource.
40536	//
40537	// Possible values:
40538	//   "ACTIVE"
40539	//   "MANAGED_CERTIFICATE_STATUS_UNSPECIFIED"
40540	//   "PROVISIONING"
40541	//   "PROVISIONING_FAILED"
40542	//   "PROVISIONING_FAILED_PERMANENTLY"
40543	//   "RENEWAL_FAILED"
40544	Status string `json:"status,omitempty"`
40545
40546	// ForceSendFields is a list of field names (e.g. "DomainStatus") to
40547	// unconditionally include in API requests. By default, fields with
40548	// empty values are omitted from API requests. However, any non-pointer,
40549	// non-interface field appearing in ForceSendFields will be sent to the
40550	// server regardless of whether the field is empty or not. This may be
40551	// used to include empty fields in Patch requests.
40552	ForceSendFields []string `json:"-"`
40553
40554	// NullFields is a list of field names (e.g. "DomainStatus") to include
40555	// in API requests with the JSON null value. By default, fields with
40556	// empty values are omitted from API requests. However, any field with
40557	// an empty value appearing in NullFields will be sent to the server as
40558	// null. It is an error if a field in this list has a non-empty value.
40559	// This may be used to include null fields in Patch requests.
40560	NullFields []string `json:"-"`
40561}
40562
40563func (s *SslCertificateManagedSslCertificate) MarshalJSON() ([]byte, error) {
40564	type NoMethod SslCertificateManagedSslCertificate
40565	raw := NoMethod(*s)
40566	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40567}
40568
40569// SslCertificateSelfManagedSslCertificate: Configuration and status of
40570// a self-managed SSL certificate.
40571type SslCertificateSelfManagedSslCertificate struct {
40572	// Certificate: A local certificate file. The certificate must be in PEM
40573	// format. The certificate chain must be no greater than 5 certs long.
40574	// The chain must include at least one intermediate cert.
40575	Certificate string `json:"certificate,omitempty"`
40576
40577	// PrivateKey: A write-only private key in PEM format. Only insert
40578	// requests will include this field.
40579	PrivateKey string `json:"privateKey,omitempty"`
40580
40581	// ForceSendFields is a list of field names (e.g. "Certificate") to
40582	// unconditionally include in API requests. By default, fields with
40583	// empty values are omitted from API requests. However, any non-pointer,
40584	// non-interface field appearing in ForceSendFields will be sent to the
40585	// server regardless of whether the field is empty or not. This may be
40586	// used to include empty fields in Patch requests.
40587	ForceSendFields []string `json:"-"`
40588
40589	// NullFields is a list of field names (e.g. "Certificate") to include
40590	// in API requests with the JSON null value. By default, fields with
40591	// empty values are omitted from API requests. However, any field with
40592	// an empty value appearing in NullFields will be sent to the server as
40593	// null. It is an error if a field in this list has a non-empty value.
40594	// This may be used to include null fields in Patch requests.
40595	NullFields []string `json:"-"`
40596}
40597
40598func (s *SslCertificateSelfManagedSslCertificate) MarshalJSON() ([]byte, error) {
40599	type NoMethod SslCertificateSelfManagedSslCertificate
40600	raw := NoMethod(*s)
40601	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40602}
40603
40604type SslCertificatesScopedList struct {
40605	// SslCertificates: List of SslCertificates contained in this scope.
40606	SslCertificates []*SslCertificate `json:"sslCertificates,omitempty"`
40607
40608	// Warning: Informational warning which replaces the list of backend
40609	// services when the list is empty.
40610	Warning *SslCertificatesScopedListWarning `json:"warning,omitempty"`
40611
40612	// ForceSendFields is a list of field names (e.g. "SslCertificates") to
40613	// unconditionally include in API requests. By default, fields with
40614	// empty values are omitted from API requests. However, any non-pointer,
40615	// non-interface field appearing in ForceSendFields will be sent to the
40616	// server regardless of whether the field is empty or not. This may be
40617	// used to include empty fields in Patch requests.
40618	ForceSendFields []string `json:"-"`
40619
40620	// NullFields is a list of field names (e.g. "SslCertificates") to
40621	// include in API requests with the JSON null value. By default, fields
40622	// with empty values are omitted from API requests. However, any field
40623	// with an empty value appearing in NullFields will be sent to the
40624	// server as null. It is an error if a field in this list has a
40625	// non-empty value. This may be used to include null fields in Patch
40626	// requests.
40627	NullFields []string `json:"-"`
40628}
40629
40630func (s *SslCertificatesScopedList) MarshalJSON() ([]byte, error) {
40631	type NoMethod SslCertificatesScopedList
40632	raw := NoMethod(*s)
40633	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40634}
40635
40636// SslCertificatesScopedListWarning: Informational warning which
40637// replaces the list of backend services when the list is empty.
40638type SslCertificatesScopedListWarning struct {
40639	// Code: [Output Only] A warning code, if applicable. For example,
40640	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
40641	// the response.
40642	//
40643	// Possible values:
40644	//   "CLEANUP_FAILED"
40645	//   "DEPRECATED_RESOURCE_USED"
40646	//   "DEPRECATED_TYPE_USED"
40647	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
40648	//   "EXPERIMENTAL_TYPE_USED"
40649	//   "EXTERNAL_API_WARNING"
40650	//   "FIELD_VALUE_OVERRIDEN"
40651	//   "INJECTED_KERNELS_DEPRECATED"
40652	//   "LARGE_DEPLOYMENT_WARNING"
40653	//   "MISSING_TYPE_DEPENDENCY"
40654	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
40655	//   "NEXT_HOP_CANNOT_IP_FORWARD"
40656	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
40657	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
40658	//   "NEXT_HOP_NOT_RUNNING"
40659	//   "NOT_CRITICAL_ERROR"
40660	//   "NO_RESULTS_ON_PAGE"
40661	//   "PARTIAL_SUCCESS"
40662	//   "REQUIRED_TOS_AGREEMENT"
40663	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
40664	//   "RESOURCE_NOT_DELETED"
40665	//   "SCHEMA_VALIDATION_IGNORED"
40666	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
40667	//   "UNDECLARED_PROPERTIES"
40668	//   "UNREACHABLE"
40669	Code string `json:"code,omitempty"`
40670
40671	// Data: [Output Only] Metadata about this warning in key: value format.
40672	// For example:
40673	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
40674	Data []*SslCertificatesScopedListWarningData `json:"data,omitempty"`
40675
40676	// Message: [Output Only] A human-readable description of the warning
40677	// code.
40678	Message string `json:"message,omitempty"`
40679
40680	// ForceSendFields is a list of field names (e.g. "Code") to
40681	// unconditionally include in API requests. By default, fields with
40682	// empty values are omitted from API requests. However, any non-pointer,
40683	// non-interface field appearing in ForceSendFields will be sent to the
40684	// server regardless of whether the field is empty or not. This may be
40685	// used to include empty fields in Patch requests.
40686	ForceSendFields []string `json:"-"`
40687
40688	// NullFields is a list of field names (e.g. "Code") to include in API
40689	// requests with the JSON null value. By default, fields with empty
40690	// values are omitted from API requests. However, any field with an
40691	// empty value appearing in NullFields will be sent to the server as
40692	// null. It is an error if a field in this list has a non-empty value.
40693	// This may be used to include null fields in Patch requests.
40694	NullFields []string `json:"-"`
40695}
40696
40697func (s *SslCertificatesScopedListWarning) MarshalJSON() ([]byte, error) {
40698	type NoMethod SslCertificatesScopedListWarning
40699	raw := NoMethod(*s)
40700	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40701}
40702
40703type SslCertificatesScopedListWarningData struct {
40704	// Key: [Output Only] A key that provides more detail on the warning
40705	// being returned. For example, for warnings where there are no results
40706	// in a list request for a particular zone, this key might be scope and
40707	// the key value might be the zone name. Other examples might be a key
40708	// indicating a deprecated resource and a suggested replacement, or a
40709	// warning about invalid network settings (for example, if an instance
40710	// attempts to perform IP forwarding but is not enabled for IP
40711	// forwarding).
40712	Key string `json:"key,omitempty"`
40713
40714	// Value: [Output Only] A warning data value corresponding to the key.
40715	Value string `json:"value,omitempty"`
40716
40717	// ForceSendFields is a list of field names (e.g. "Key") to
40718	// unconditionally include in API requests. By default, fields with
40719	// empty values are omitted from API requests. However, any non-pointer,
40720	// non-interface field appearing in ForceSendFields will be sent to the
40721	// server regardless of whether the field is empty or not. This may be
40722	// used to include empty fields in Patch requests.
40723	ForceSendFields []string `json:"-"`
40724
40725	// NullFields is a list of field names (e.g. "Key") to include in API
40726	// requests with the JSON null value. By default, fields with empty
40727	// values are omitted from API requests. However, any field with an
40728	// empty value appearing in NullFields will be sent to the server as
40729	// null. It is an error if a field in this list has a non-empty value.
40730	// This may be used to include null fields in Patch requests.
40731	NullFields []string `json:"-"`
40732}
40733
40734func (s *SslCertificatesScopedListWarningData) MarshalJSON() ([]byte, error) {
40735	type NoMethod SslCertificatesScopedListWarningData
40736	raw := NoMethod(*s)
40737	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40738}
40739
40740type SslPoliciesList struct {
40741	// Id: [Output Only] Unique identifier for the resource; defined by the
40742	// server.
40743	Id string `json:"id,omitempty"`
40744
40745	// Items: A list of SslPolicy resources.
40746	Items []*SslPolicy `json:"items,omitempty"`
40747
40748	// Kind: [Output Only] Type of the resource. Always
40749	// compute#sslPoliciesList for lists of sslPolicies.
40750	Kind string `json:"kind,omitempty"`
40751
40752	// NextPageToken: [Output Only] This token allows you to get the next
40753	// page of results for list requests. If the number of results is larger
40754	// than maxResults, use the nextPageToken as a value for the query
40755	// parameter pageToken in the next list request. Subsequent list
40756	// requests will have their own nextPageToken to continue paging through
40757	// the results.
40758	NextPageToken string `json:"nextPageToken,omitempty"`
40759
40760	// SelfLink: [Output Only] Server-defined URL for this resource.
40761	SelfLink string `json:"selfLink,omitempty"`
40762
40763	// Warning: [Output Only] Informational warning message.
40764	Warning *SslPoliciesListWarning `json:"warning,omitempty"`
40765
40766	// ServerResponse contains the HTTP response code and headers from the
40767	// server.
40768	googleapi.ServerResponse `json:"-"`
40769
40770	// ForceSendFields is a list of field names (e.g. "Id") to
40771	// unconditionally include in API requests. By default, fields with
40772	// empty values are omitted from API requests. However, any non-pointer,
40773	// non-interface field appearing in ForceSendFields will be sent to the
40774	// server regardless of whether the field is empty or not. This may be
40775	// used to include empty fields in Patch requests.
40776	ForceSendFields []string `json:"-"`
40777
40778	// NullFields is a list of field names (e.g. "Id") to include in API
40779	// requests with the JSON null value. By default, fields with empty
40780	// values are omitted from API requests. However, any field with an
40781	// empty value appearing in NullFields will be sent to the server as
40782	// null. It is an error if a field in this list has a non-empty value.
40783	// This may be used to include null fields in Patch requests.
40784	NullFields []string `json:"-"`
40785}
40786
40787func (s *SslPoliciesList) MarshalJSON() ([]byte, error) {
40788	type NoMethod SslPoliciesList
40789	raw := NoMethod(*s)
40790	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40791}
40792
40793// SslPoliciesListWarning: [Output Only] Informational warning message.
40794type SslPoliciesListWarning struct {
40795	// Code: [Output Only] A warning code, if applicable. For example,
40796	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
40797	// the response.
40798	//
40799	// Possible values:
40800	//   "CLEANUP_FAILED"
40801	//   "DEPRECATED_RESOURCE_USED"
40802	//   "DEPRECATED_TYPE_USED"
40803	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
40804	//   "EXPERIMENTAL_TYPE_USED"
40805	//   "EXTERNAL_API_WARNING"
40806	//   "FIELD_VALUE_OVERRIDEN"
40807	//   "INJECTED_KERNELS_DEPRECATED"
40808	//   "LARGE_DEPLOYMENT_WARNING"
40809	//   "MISSING_TYPE_DEPENDENCY"
40810	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
40811	//   "NEXT_HOP_CANNOT_IP_FORWARD"
40812	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
40813	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
40814	//   "NEXT_HOP_NOT_RUNNING"
40815	//   "NOT_CRITICAL_ERROR"
40816	//   "NO_RESULTS_ON_PAGE"
40817	//   "PARTIAL_SUCCESS"
40818	//   "REQUIRED_TOS_AGREEMENT"
40819	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
40820	//   "RESOURCE_NOT_DELETED"
40821	//   "SCHEMA_VALIDATION_IGNORED"
40822	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
40823	//   "UNDECLARED_PROPERTIES"
40824	//   "UNREACHABLE"
40825	Code string `json:"code,omitempty"`
40826
40827	// Data: [Output Only] Metadata about this warning in key: value format.
40828	// For example:
40829	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
40830	Data []*SslPoliciesListWarningData `json:"data,omitempty"`
40831
40832	// Message: [Output Only] A human-readable description of the warning
40833	// code.
40834	Message string `json:"message,omitempty"`
40835
40836	// ForceSendFields is a list of field names (e.g. "Code") to
40837	// unconditionally include in API requests. By default, fields with
40838	// empty values are omitted from API requests. However, any non-pointer,
40839	// non-interface field appearing in ForceSendFields will be sent to the
40840	// server regardless of whether the field is empty or not. This may be
40841	// used to include empty fields in Patch requests.
40842	ForceSendFields []string `json:"-"`
40843
40844	// NullFields is a list of field names (e.g. "Code") to include in API
40845	// requests with the JSON null value. By default, fields with empty
40846	// values are omitted from API requests. However, any field with an
40847	// empty value appearing in NullFields will be sent to the server as
40848	// null. It is an error if a field in this list has a non-empty value.
40849	// This may be used to include null fields in Patch requests.
40850	NullFields []string `json:"-"`
40851}
40852
40853func (s *SslPoliciesListWarning) MarshalJSON() ([]byte, error) {
40854	type NoMethod SslPoliciesListWarning
40855	raw := NoMethod(*s)
40856	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40857}
40858
40859type SslPoliciesListWarningData struct {
40860	// Key: [Output Only] A key that provides more detail on the warning
40861	// being returned. For example, for warnings where there are no results
40862	// in a list request for a particular zone, this key might be scope and
40863	// the key value might be the zone name. Other examples might be a key
40864	// indicating a deprecated resource and a suggested replacement, or a
40865	// warning about invalid network settings (for example, if an instance
40866	// attempts to perform IP forwarding but is not enabled for IP
40867	// forwarding).
40868	Key string `json:"key,omitempty"`
40869
40870	// Value: [Output Only] A warning data value corresponding to the key.
40871	Value string `json:"value,omitempty"`
40872
40873	// ForceSendFields is a list of field names (e.g. "Key") to
40874	// unconditionally include in API requests. By default, fields with
40875	// empty values are omitted from API requests. However, any non-pointer,
40876	// non-interface field appearing in ForceSendFields will be sent to the
40877	// server regardless of whether the field is empty or not. This may be
40878	// used to include empty fields in Patch requests.
40879	ForceSendFields []string `json:"-"`
40880
40881	// NullFields is a list of field names (e.g. "Key") to include in API
40882	// requests with the JSON null value. By default, fields with empty
40883	// values are omitted from API requests. However, any field with an
40884	// empty value appearing in NullFields will be sent to the server as
40885	// null. It is an error if a field in this list has a non-empty value.
40886	// This may be used to include null fields in Patch requests.
40887	NullFields []string `json:"-"`
40888}
40889
40890func (s *SslPoliciesListWarningData) MarshalJSON() ([]byte, error) {
40891	type NoMethod SslPoliciesListWarningData
40892	raw := NoMethod(*s)
40893	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40894}
40895
40896type SslPoliciesListAvailableFeaturesResponse struct {
40897	Features []string `json:"features,omitempty"`
40898
40899	// ServerResponse contains the HTTP response code and headers from the
40900	// server.
40901	googleapi.ServerResponse `json:"-"`
40902
40903	// ForceSendFields is a list of field names (e.g. "Features") to
40904	// unconditionally include in API requests. By default, fields with
40905	// empty values are omitted from API requests. However, any non-pointer,
40906	// non-interface field appearing in ForceSendFields will be sent to the
40907	// server regardless of whether the field is empty or not. This may be
40908	// used to include empty fields in Patch requests.
40909	ForceSendFields []string `json:"-"`
40910
40911	// NullFields is a list of field names (e.g. "Features") to include in
40912	// API requests with the JSON null value. By default, fields with empty
40913	// values are omitted from API requests. However, any field with an
40914	// empty value appearing in NullFields will be sent to the server as
40915	// null. It is an error if a field in this list has a non-empty value.
40916	// This may be used to include null fields in Patch requests.
40917	NullFields []string `json:"-"`
40918}
40919
40920func (s *SslPoliciesListAvailableFeaturesResponse) MarshalJSON() ([]byte, error) {
40921	type NoMethod SslPoliciesListAvailableFeaturesResponse
40922	raw := NoMethod(*s)
40923	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40924}
40925
40926// SslPolicy: Represents an SSL Policy resource.
40927//
40928// Use SSL policies to control the SSL features, such as versions and
40929// cipher suites, offered by an HTTPS or SSL Proxy load balancer. For
40930// more information, read  SSL Policy Concepts. (== resource_for
40931// {$api_version}.sslPolicies ==)
40932type SslPolicy struct {
40933	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
40934	// format.
40935	CreationTimestamp string `json:"creationTimestamp,omitempty"`
40936
40937	// CustomFeatures: A list of features enabled when the selected profile
40938	// is CUSTOM. The
40939	// - method returns the set of features that can be specified in this
40940	// list. This field must be empty if the profile is not CUSTOM.
40941	CustomFeatures []string `json:"customFeatures,omitempty"`
40942
40943	// Description: An optional description of this resource. Provide this
40944	// property when you create the resource.
40945	Description string `json:"description,omitempty"`
40946
40947	// EnabledFeatures: [Output Only] The list of features enabled in the
40948	// SSL policy.
40949	EnabledFeatures []string `json:"enabledFeatures,omitempty"`
40950
40951	// Fingerprint: Fingerprint of this resource. A hash of the contents
40952	// stored in this object. This field is used in optimistic locking. This
40953	// field will be ignored when inserting a SslPolicy. An up-to-date
40954	// fingerprint must be provided in order to update the SslPolicy,
40955	// otherwise the request will fail with error 412 conditionNotMet.
40956	//
40957	// To see the latest fingerprint, make a get() request to retrieve an
40958	// SslPolicy.
40959	Fingerprint string `json:"fingerprint,omitempty"`
40960
40961	// Id: [Output Only] The unique identifier for the resource. This
40962	// identifier is defined by the server.
40963	Id uint64 `json:"id,omitempty,string"`
40964
40965	// Kind: [Output only] Type of the resource. Always compute#sslPolicyfor
40966	// SSL policies.
40967	Kind string `json:"kind,omitempty"`
40968
40969	// MinTlsVersion: The minimum version of SSL protocol that can be used
40970	// by the clients to establish a connection with the load balancer. This
40971	// can be one of TLS_1_0, TLS_1_1, TLS_1_2.
40972	//
40973	// Possible values:
40974	//   "TLS_1_0"
40975	//   "TLS_1_1"
40976	//   "TLS_1_2"
40977	MinTlsVersion string `json:"minTlsVersion,omitempty"`
40978
40979	// Name: Name of the resource. The name must be 1-63 characters long,
40980	// and comply with RFC1035. Specifically, the name must be 1-63
40981	// characters long and match the regular expression
40982	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
40983	// a lowercase letter, and all following characters must be a dash,
40984	// lowercase letter, or digit, except the last character, which cannot
40985	// be a dash.
40986	Name string `json:"name,omitempty"`
40987
40988	// Profile: Profile specifies the set of SSL features that can be used
40989	// by the load balancer when negotiating SSL with clients. This can be
40990	// one of COMPATIBLE, MODERN, RESTRICTED, or CUSTOM. If using CUSTOM,
40991	// the set of SSL features to enable must be specified in the
40992	// customFeatures field.
40993	//
40994	// Possible values:
40995	//   "COMPATIBLE"
40996	//   "CUSTOM"
40997	//   "MODERN"
40998	//   "RESTRICTED"
40999	Profile string `json:"profile,omitempty"`
41000
41001	// SelfLink: [Output Only] Server-defined URL for the resource.
41002	SelfLink string `json:"selfLink,omitempty"`
41003
41004	// Warnings: [Output Only] If potential misconfigurations are detected
41005	// for this SSL policy, this field will be populated with warning
41006	// messages.
41007	Warnings []*SslPolicyWarnings `json:"warnings,omitempty"`
41008
41009	// ServerResponse contains the HTTP response code and headers from the
41010	// server.
41011	googleapi.ServerResponse `json:"-"`
41012
41013	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
41014	// to unconditionally include in API requests. By default, fields with
41015	// empty values are omitted from API requests. However, any non-pointer,
41016	// non-interface field appearing in ForceSendFields will be sent to the
41017	// server regardless of whether the field is empty or not. This may be
41018	// used to include empty fields in Patch requests.
41019	ForceSendFields []string `json:"-"`
41020
41021	// NullFields is a list of field names (e.g. "CreationTimestamp") to
41022	// include in API requests with the JSON null value. By default, fields
41023	// with empty values are omitted from API requests. However, any field
41024	// with an empty value appearing in NullFields will be sent to the
41025	// server as null. It is an error if a field in this list has a
41026	// non-empty value. This may be used to include null fields in Patch
41027	// requests.
41028	NullFields []string `json:"-"`
41029}
41030
41031func (s *SslPolicy) MarshalJSON() ([]byte, error) {
41032	type NoMethod SslPolicy
41033	raw := NoMethod(*s)
41034	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41035}
41036
41037type SslPolicyWarnings struct {
41038	// Code: [Output Only] A warning code, if applicable. For example,
41039	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
41040	// the response.
41041	//
41042	// Possible values:
41043	//   "CLEANUP_FAILED"
41044	//   "DEPRECATED_RESOURCE_USED"
41045	//   "DEPRECATED_TYPE_USED"
41046	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
41047	//   "EXPERIMENTAL_TYPE_USED"
41048	//   "EXTERNAL_API_WARNING"
41049	//   "FIELD_VALUE_OVERRIDEN"
41050	//   "INJECTED_KERNELS_DEPRECATED"
41051	//   "LARGE_DEPLOYMENT_WARNING"
41052	//   "MISSING_TYPE_DEPENDENCY"
41053	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
41054	//   "NEXT_HOP_CANNOT_IP_FORWARD"
41055	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
41056	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
41057	//   "NEXT_HOP_NOT_RUNNING"
41058	//   "NOT_CRITICAL_ERROR"
41059	//   "NO_RESULTS_ON_PAGE"
41060	//   "PARTIAL_SUCCESS"
41061	//   "REQUIRED_TOS_AGREEMENT"
41062	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
41063	//   "RESOURCE_NOT_DELETED"
41064	//   "SCHEMA_VALIDATION_IGNORED"
41065	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
41066	//   "UNDECLARED_PROPERTIES"
41067	//   "UNREACHABLE"
41068	Code string `json:"code,omitempty"`
41069
41070	// Data: [Output Only] Metadata about this warning in key: value format.
41071	// For example:
41072	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
41073	Data []*SslPolicyWarningsData `json:"data,omitempty"`
41074
41075	// Message: [Output Only] A human-readable description of the warning
41076	// code.
41077	Message string `json:"message,omitempty"`
41078
41079	// ForceSendFields is a list of field names (e.g. "Code") to
41080	// unconditionally include in API requests. By default, fields with
41081	// empty values are omitted from API requests. However, any non-pointer,
41082	// non-interface field appearing in ForceSendFields will be sent to the
41083	// server regardless of whether the field is empty or not. This may be
41084	// used to include empty fields in Patch requests.
41085	ForceSendFields []string `json:"-"`
41086
41087	// NullFields is a list of field names (e.g. "Code") to include in API
41088	// requests with the JSON null value. By default, fields with empty
41089	// values are omitted from API requests. However, any field with an
41090	// empty value appearing in NullFields will be sent to the server as
41091	// null. It is an error if a field in this list has a non-empty value.
41092	// This may be used to include null fields in Patch requests.
41093	NullFields []string `json:"-"`
41094}
41095
41096func (s *SslPolicyWarnings) MarshalJSON() ([]byte, error) {
41097	type NoMethod SslPolicyWarnings
41098	raw := NoMethod(*s)
41099	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41100}
41101
41102type SslPolicyWarningsData struct {
41103	// Key: [Output Only] A key that provides more detail on the warning
41104	// being returned. For example, for warnings where there are no results
41105	// in a list request for a particular zone, this key might be scope and
41106	// the key value might be the zone name. Other examples might be a key
41107	// indicating a deprecated resource and a suggested replacement, or a
41108	// warning about invalid network settings (for example, if an instance
41109	// attempts to perform IP forwarding but is not enabled for IP
41110	// forwarding).
41111	Key string `json:"key,omitempty"`
41112
41113	// Value: [Output Only] A warning data value corresponding to the key.
41114	Value string `json:"value,omitempty"`
41115
41116	// ForceSendFields is a list of field names (e.g. "Key") to
41117	// unconditionally include in API requests. By default, fields with
41118	// empty values are omitted from API requests. However, any non-pointer,
41119	// non-interface field appearing in ForceSendFields will be sent to the
41120	// server regardless of whether the field is empty or not. This may be
41121	// used to include empty fields in Patch requests.
41122	ForceSendFields []string `json:"-"`
41123
41124	// NullFields is a list of field names (e.g. "Key") to include in API
41125	// requests with the JSON null value. By default, fields with empty
41126	// values are omitted from API requests. However, any field with an
41127	// empty value appearing in NullFields will be sent to the server as
41128	// null. It is an error if a field in this list has a non-empty value.
41129	// This may be used to include null fields in Patch requests.
41130	NullFields []string `json:"-"`
41131}
41132
41133func (s *SslPolicyWarningsData) MarshalJSON() ([]byte, error) {
41134	type NoMethod SslPolicyWarningsData
41135	raw := NoMethod(*s)
41136	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41137}
41138
41139type SslPolicyReference struct {
41140	// SslPolicy: URL of the SSL policy resource. Set this to empty string
41141	// to clear any existing SSL policy associated with the target proxy
41142	// resource.
41143	SslPolicy string `json:"sslPolicy,omitempty"`
41144
41145	// ForceSendFields is a list of field names (e.g. "SslPolicy") to
41146	// unconditionally include in API requests. By default, fields with
41147	// empty values are omitted from API requests. However, any non-pointer,
41148	// non-interface field appearing in ForceSendFields will be sent to the
41149	// server regardless of whether the field is empty or not. This may be
41150	// used to include empty fields in Patch requests.
41151	ForceSendFields []string `json:"-"`
41152
41153	// NullFields is a list of field names (e.g. "SslPolicy") to include in
41154	// API requests with the JSON null value. By default, fields with empty
41155	// values are omitted from API requests. However, any field with an
41156	// empty value appearing in NullFields will be sent to the server as
41157	// null. It is an error if a field in this list has a non-empty value.
41158	// This may be used to include null fields in Patch requests.
41159	NullFields []string `json:"-"`
41160}
41161
41162func (s *SslPolicyReference) MarshalJSON() ([]byte, error) {
41163	type NoMethod SslPolicyReference
41164	raw := NoMethod(*s)
41165	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41166}
41167
41168type StatefulPolicy struct {
41169	PreservedState *StatefulPolicyPreservedState `json:"preservedState,omitempty"`
41170
41171	// ForceSendFields is a list of field names (e.g. "PreservedState") to
41172	// unconditionally include in API requests. By default, fields with
41173	// empty values are omitted from API requests. However, any non-pointer,
41174	// non-interface field appearing in ForceSendFields will be sent to the
41175	// server regardless of whether the field is empty or not. This may be
41176	// used to include empty fields in Patch requests.
41177	ForceSendFields []string `json:"-"`
41178
41179	// NullFields is a list of field names (e.g. "PreservedState") to
41180	// include in API requests with the JSON null value. By default, fields
41181	// with empty values are omitted from API requests. However, any field
41182	// with an empty value appearing in NullFields will be sent to the
41183	// server as null. It is an error if a field in this list has a
41184	// non-empty value. This may be used to include null fields in Patch
41185	// requests.
41186	NullFields []string `json:"-"`
41187}
41188
41189func (s *StatefulPolicy) MarshalJSON() ([]byte, error) {
41190	type NoMethod StatefulPolicy
41191	raw := NoMethod(*s)
41192	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41193}
41194
41195// StatefulPolicyPreservedState: Configuration of preserved resources.
41196type StatefulPolicyPreservedState struct {
41197	// Disks: Disks created on the instances that will be preserved on
41198	// instance delete, update, etc. This map is keyed with the device names
41199	// of the disks.
41200	Disks map[string]StatefulPolicyPreservedStateDiskDevice `json:"disks,omitempty"`
41201
41202	// ForceSendFields is a list of field names (e.g. "Disks") to
41203	// unconditionally include in API requests. By default, fields with
41204	// empty values are omitted from API requests. However, any non-pointer,
41205	// non-interface field appearing in ForceSendFields will be sent to the
41206	// server regardless of whether the field is empty or not. This may be
41207	// used to include empty fields in Patch requests.
41208	ForceSendFields []string `json:"-"`
41209
41210	// NullFields is a list of field names (e.g. "Disks") to include in API
41211	// requests with the JSON null value. By default, fields with empty
41212	// values are omitted from API requests. However, any field with an
41213	// empty value appearing in NullFields will be sent to the server as
41214	// null. It is an error if a field in this list has a non-empty value.
41215	// This may be used to include null fields in Patch requests.
41216	NullFields []string `json:"-"`
41217}
41218
41219func (s *StatefulPolicyPreservedState) MarshalJSON() ([]byte, error) {
41220	type NoMethod StatefulPolicyPreservedState
41221	raw := NoMethod(*s)
41222	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41223}
41224
41225type StatefulPolicyPreservedStateDiskDevice struct {
41226	// AutoDelete: These stateful disks will never be deleted during
41227	// autohealing, update or VM instance recreate operations. This flag is
41228	// used to configure if the disk should be deleted after it is no longer
41229	// used by the group, e.g. when the given instance or the whole group is
41230	// deleted. Note: disks attached in READ_ONLY mode cannot be
41231	// auto-deleted.
41232	//
41233	// Possible values:
41234	//   "NEVER"
41235	//   "ON_PERMANENT_INSTANCE_DELETION"
41236	AutoDelete string `json:"autoDelete,omitempty"`
41237
41238	// ForceSendFields is a list of field names (e.g. "AutoDelete") to
41239	// unconditionally include in API requests. By default, fields with
41240	// empty values are omitted from API requests. However, any non-pointer,
41241	// non-interface field appearing in ForceSendFields will be sent to the
41242	// server regardless of whether the field is empty or not. This may be
41243	// used to include empty fields in Patch requests.
41244	ForceSendFields []string `json:"-"`
41245
41246	// NullFields is a list of field names (e.g. "AutoDelete") to include in
41247	// API requests with the JSON null value. By default, fields with empty
41248	// values are omitted from API requests. However, any field with an
41249	// empty value appearing in NullFields will be sent to the server as
41250	// null. It is an error if a field in this list has a non-empty value.
41251	// This may be used to include null fields in Patch requests.
41252	NullFields []string `json:"-"`
41253}
41254
41255func (s *StatefulPolicyPreservedStateDiskDevice) MarshalJSON() ([]byte, error) {
41256	type NoMethod StatefulPolicyPreservedStateDiskDevice
41257	raw := NoMethod(*s)
41258	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41259}
41260
41261// Subnetwork: Represents a Subnetwork resource.
41262//
41263// A subnetwork (also known as a subnet) is a logical partition of a
41264// Virtual Private Cloud network with one primary IP range and zero or
41265// more secondary IP ranges. For more information, read  Virtual Private
41266// Cloud (VPC) Network. (== resource_for {$api_version}.subnetworks ==)
41267type Subnetwork struct {
41268	// AllowSubnetCidrRoutesOverlap: Whether this subnetwork can conflict
41269	// with static routes. Setting this to true allows this subnetwork's
41270	// primary and secondary ranges to conflict with routes that have
41271	// already been configured on the corresponding network. Static routes
41272	// will take precedence over the subnetwork route if the route prefix
41273	// length is at least as large as the subnetwork prefix length.
41274	//
41275	// Also, packets destined to IPs within subnetwork may contain
41276	// private/sensitive data and are prevented from leaving the virtual
41277	// network. Setting this field to true will disable this feature.
41278	//
41279	// The default value is false and applies to all existing subnetworks
41280	// and automatically created subnetworks.
41281	//
41282	// This field cannot be set to true at resource creation time.
41283	AllowSubnetCidrRoutesOverlap bool `json:"allowSubnetCidrRoutesOverlap,omitempty"`
41284
41285	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
41286	// format.
41287	CreationTimestamp string `json:"creationTimestamp,omitempty"`
41288
41289	// Description: An optional description of this resource. Provide this
41290	// property when you create the resource. This field can be set only at
41291	// resource creation time.
41292	Description string `json:"description,omitempty"`
41293
41294	// EnableFlowLogs: Whether to enable flow logging for this subnetwork.
41295	// If this field is not explicitly set, it will not appear in get
41296	// listings. If not set the default behavior is to disable flow logging.
41297	// This field isn't supported with the purpose field set to
41298	// INTERNAL_HTTPS_LOAD_BALANCER.
41299	EnableFlowLogs bool `json:"enableFlowLogs,omitempty"`
41300
41301	// Fingerprint: Fingerprint of this resource. A hash of the contents
41302	// stored in this object. This field is used in optimistic locking. This
41303	// field will be ignored when inserting a Subnetwork. An up-to-date
41304	// fingerprint must be provided in order to update the Subnetwork,
41305	// otherwise the request will fail with error 412 conditionNotMet.
41306	//
41307	// To see the latest fingerprint, make a get() request to retrieve a
41308	// Subnetwork.
41309	Fingerprint string `json:"fingerprint,omitempty"`
41310
41311	// GatewayAddress: [Output Only] The gateway address for default routes
41312	// to reach destination addresses outside this subnetwork.
41313	GatewayAddress string `json:"gatewayAddress,omitempty"`
41314
41315	// Id: [Output Only] The unique identifier for the resource. This
41316	// identifier is defined by the server.
41317	Id uint64 `json:"id,omitempty,string"`
41318
41319	// IpCidrRange: The range of internal addresses that are owned by this
41320	// subnetwork. Provide this property when you create the subnetwork. For
41321	// example, 10.0.0.0/8 or 100.64.0.0/10. Ranges must be unique and
41322	// non-overlapping within a network. Only IPv4 is supported. This field
41323	// is set at resource creation time. The range can be any range listed
41324	// in the Valid ranges list. The range can be expanded after creation
41325	// using expandIpCidrRange.
41326	IpCidrRange string `json:"ipCidrRange,omitempty"`
41327
41328	// Ipv6CidrRange: [Output Only] The range of internal IPv6 addresses
41329	// that are owned by this subnetwork.
41330	Ipv6CidrRange string `json:"ipv6CidrRange,omitempty"`
41331
41332	// Kind: [Output Only] Type of the resource. Always compute#subnetwork
41333	// for Subnetwork resources.
41334	Kind string `json:"kind,omitempty"`
41335
41336	// LogConfig: This field denotes the VPC flow logging options for this
41337	// subnetwork. If logging is enabled, logs are exported to Cloud
41338	// Logging.
41339	LogConfig *SubnetworkLogConfig `json:"logConfig,omitempty"`
41340
41341	// Name: The name of the resource, provided by the client when initially
41342	// creating the resource. The name must be 1-63 characters long, and
41343	// comply with RFC1035. Specifically, the name must be 1-63 characters
41344	// long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`
41345	// which means the first character must be a lowercase letter, and all
41346	// following characters must be a dash, lowercase letter, or digit,
41347	// except the last character, which cannot be a dash.
41348	Name string `json:"name,omitempty"`
41349
41350	// Network: The URL of the network to which this subnetwork belongs,
41351	// provided by the client when initially creating the subnetwork. Only
41352	// networks that are in the distributed mode can have subnetworks. This
41353	// field can be set only at resource creation time.
41354	Network string `json:"network,omitempty"`
41355
41356	// PrivateIpGoogleAccess: Whether the VMs in this subnet can access
41357	// Google services without assigned external IP addresses. This field
41358	// can be both set at resource creation time and updated using
41359	// setPrivateIpGoogleAccess.
41360	PrivateIpGoogleAccess bool `json:"privateIpGoogleAccess,omitempty"`
41361
41362	// PrivateIpv6GoogleAccess: The private IPv6 google access type for the
41363	// VMs in this subnet. This is an expanded field of
41364	// enablePrivateV6Access. If both fields are set,
41365	// privateIpv6GoogleAccess will take priority.
41366	//
41367	// This field can be both set at resource creation time and updated
41368	// using patch.
41369	//
41370	// Possible values:
41371	//   "DISABLE_GOOGLE_ACCESS"
41372	//   "ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE"
41373	//   "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE"
41374	PrivateIpv6GoogleAccess string `json:"privateIpv6GoogleAccess,omitempty"`
41375
41376	// Purpose: The purpose of the resource. This field can be either
41377	// PRIVATE_RFC_1918 or INTERNAL_HTTPS_LOAD_BALANCER. A subnetwork with
41378	// purpose set to INTERNAL_HTTPS_LOAD_BALANCER is a user-created
41379	// subnetwork that is reserved for Internal HTTP(S) Load Balancing. If
41380	// unspecified, the purpose defaults to PRIVATE_RFC_1918. The
41381	// enableFlowLogs field isn't supported with the purpose field set to
41382	// INTERNAL_HTTPS_LOAD_BALANCER.
41383	//
41384	// Possible values:
41385	//   "INTERNAL_HTTPS_LOAD_BALANCER"
41386	//   "PRIVATE"
41387	//   "PRIVATE_RFC_1918"
41388	//   "PRIVATE_SERVICE_CONNECT"
41389	Purpose string `json:"purpose,omitempty"`
41390
41391	// Region: URL of the region where the Subnetwork resides. This field
41392	// can be set only at resource creation time.
41393	Region string `json:"region,omitempty"`
41394
41395	// Role: The role of subnetwork. Currently, this field is only used when
41396	// purpose = INTERNAL_HTTPS_LOAD_BALANCER. The value can be set to
41397	// ACTIVE or BACKUP. An ACTIVE subnetwork is one that is currently being
41398	// used for Internal HTTP(S) Load Balancing. A BACKUP subnetwork is one
41399	// that is ready to be promoted to ACTIVE or is currently draining. This
41400	// field can be updated with a patch request.
41401	//
41402	// Possible values:
41403	//   "ACTIVE"
41404	//   "BACKUP"
41405	Role string `json:"role,omitempty"`
41406
41407	// SecondaryIpRanges: An array of configurations for secondary IP ranges
41408	// for VM instances contained in this subnetwork. The primary IP of such
41409	// VM must belong to the primary ipCidrRange of the subnetwork. The
41410	// alias IPs may belong to either primary or secondary ranges. This
41411	// field can be updated with a patch request.
41412	SecondaryIpRanges []*SubnetworkSecondaryRange `json:"secondaryIpRanges,omitempty"`
41413
41414	// SelfLink: [Output Only] Server-defined URL for the resource.
41415	SelfLink string `json:"selfLink,omitempty"`
41416
41417	// State: [Output Only] The state of the subnetwork, which can be one of
41418	// the following values: READY: Subnetwork is created and ready to use
41419	// DRAINING: only applicable to subnetworks that have the purpose set to
41420	// INTERNAL_HTTPS_LOAD_BALANCER and indicates that connections to the
41421	// load balancer are being drained. A subnetwork that is draining cannot
41422	// be used or modified until it reaches a status of READY CREATING:
41423	// Subnetwork is provisioning DELETING: Subnetwork is being deleted
41424	// UPDATING: Subnetwork is being updated
41425	//
41426	// Possible values:
41427	//   "DRAINING"
41428	//   "READY"
41429	State string `json:"state,omitempty"`
41430
41431	// ServerResponse contains the HTTP response code and headers from the
41432	// server.
41433	googleapi.ServerResponse `json:"-"`
41434
41435	// ForceSendFields is a list of field names (e.g.
41436	// "AllowSubnetCidrRoutesOverlap") to unconditionally include in API
41437	// requests. By default, fields with empty values are omitted from API
41438	// requests. However, any non-pointer, non-interface field appearing in
41439	// ForceSendFields will be sent to the server regardless of whether the
41440	// field is empty or not. This may be used to include empty fields in
41441	// Patch requests.
41442	ForceSendFields []string `json:"-"`
41443
41444	// NullFields is a list of field names (e.g.
41445	// "AllowSubnetCidrRoutesOverlap") to include in API requests with the
41446	// JSON null value. By default, fields with empty values are omitted
41447	// from API requests. However, any field with an empty value appearing
41448	// in NullFields will be sent to the server as null. It is an error if a
41449	// field in this list has a non-empty value. This may be used to include
41450	// null fields in Patch requests.
41451	NullFields []string `json:"-"`
41452}
41453
41454func (s *Subnetwork) MarshalJSON() ([]byte, error) {
41455	type NoMethod Subnetwork
41456	raw := NoMethod(*s)
41457	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41458}
41459
41460type SubnetworkAggregatedList struct {
41461	// Id: [Output Only] Unique identifier for the resource; defined by the
41462	// server.
41463	Id string `json:"id,omitempty"`
41464
41465	// Items: A list of SubnetworksScopedList resources.
41466	Items map[string]SubnetworksScopedList `json:"items,omitempty"`
41467
41468	// Kind: [Output Only] Type of resource. Always
41469	// compute#subnetworkAggregatedList for aggregated lists of subnetworks.
41470	Kind string `json:"kind,omitempty"`
41471
41472	// NextPageToken: [Output Only] This token allows you to get the next
41473	// page of results for list requests. If the number of results is larger
41474	// than maxResults, use the nextPageToken as a value for the query
41475	// parameter pageToken in the next list request. Subsequent list
41476	// requests will have their own nextPageToken to continue paging through
41477	// the results.
41478	NextPageToken string `json:"nextPageToken,omitempty"`
41479
41480	// SelfLink: [Output Only] Server-defined URL for this resource.
41481	SelfLink string `json:"selfLink,omitempty"`
41482
41483	// Unreachables: [Output Only] Unreachable resources.
41484	Unreachables []string `json:"unreachables,omitempty"`
41485
41486	// Warning: [Output Only] Informational warning message.
41487	Warning *SubnetworkAggregatedListWarning `json:"warning,omitempty"`
41488
41489	// ServerResponse contains the HTTP response code and headers from the
41490	// server.
41491	googleapi.ServerResponse `json:"-"`
41492
41493	// ForceSendFields is a list of field names (e.g. "Id") to
41494	// unconditionally include in API requests. By default, fields with
41495	// empty values are omitted from API requests. However, any non-pointer,
41496	// non-interface field appearing in ForceSendFields will be sent to the
41497	// server regardless of whether the field is empty or not. This may be
41498	// used to include empty fields in Patch requests.
41499	ForceSendFields []string `json:"-"`
41500
41501	// NullFields is a list of field names (e.g. "Id") to include in API
41502	// requests with the JSON null value. By default, fields with empty
41503	// values are omitted from API requests. However, any field with an
41504	// empty value appearing in NullFields will be sent to the server as
41505	// null. It is an error if a field in this list has a non-empty value.
41506	// This may be used to include null fields in Patch requests.
41507	NullFields []string `json:"-"`
41508}
41509
41510func (s *SubnetworkAggregatedList) MarshalJSON() ([]byte, error) {
41511	type NoMethod SubnetworkAggregatedList
41512	raw := NoMethod(*s)
41513	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41514}
41515
41516// SubnetworkAggregatedListWarning: [Output Only] Informational warning
41517// message.
41518type SubnetworkAggregatedListWarning struct {
41519	// Code: [Output Only] A warning code, if applicable. For example,
41520	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
41521	// the response.
41522	//
41523	// Possible values:
41524	//   "CLEANUP_FAILED"
41525	//   "DEPRECATED_RESOURCE_USED"
41526	//   "DEPRECATED_TYPE_USED"
41527	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
41528	//   "EXPERIMENTAL_TYPE_USED"
41529	//   "EXTERNAL_API_WARNING"
41530	//   "FIELD_VALUE_OVERRIDEN"
41531	//   "INJECTED_KERNELS_DEPRECATED"
41532	//   "LARGE_DEPLOYMENT_WARNING"
41533	//   "MISSING_TYPE_DEPENDENCY"
41534	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
41535	//   "NEXT_HOP_CANNOT_IP_FORWARD"
41536	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
41537	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
41538	//   "NEXT_HOP_NOT_RUNNING"
41539	//   "NOT_CRITICAL_ERROR"
41540	//   "NO_RESULTS_ON_PAGE"
41541	//   "PARTIAL_SUCCESS"
41542	//   "REQUIRED_TOS_AGREEMENT"
41543	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
41544	//   "RESOURCE_NOT_DELETED"
41545	//   "SCHEMA_VALIDATION_IGNORED"
41546	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
41547	//   "UNDECLARED_PROPERTIES"
41548	//   "UNREACHABLE"
41549	Code string `json:"code,omitempty"`
41550
41551	// Data: [Output Only] Metadata about this warning in key: value format.
41552	// For example:
41553	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
41554	Data []*SubnetworkAggregatedListWarningData `json:"data,omitempty"`
41555
41556	// Message: [Output Only] A human-readable description of the warning
41557	// code.
41558	Message string `json:"message,omitempty"`
41559
41560	// ForceSendFields is a list of field names (e.g. "Code") to
41561	// unconditionally include in API requests. By default, fields with
41562	// empty values are omitted from API requests. However, any non-pointer,
41563	// non-interface field appearing in ForceSendFields will be sent to the
41564	// server regardless of whether the field is empty or not. This may be
41565	// used to include empty fields in Patch requests.
41566	ForceSendFields []string `json:"-"`
41567
41568	// NullFields is a list of field names (e.g. "Code") to include in API
41569	// requests with the JSON null value. By default, fields with empty
41570	// values are omitted from API requests. However, any field with an
41571	// empty value appearing in NullFields will be sent to the server as
41572	// null. It is an error if a field in this list has a non-empty value.
41573	// This may be used to include null fields in Patch requests.
41574	NullFields []string `json:"-"`
41575}
41576
41577func (s *SubnetworkAggregatedListWarning) MarshalJSON() ([]byte, error) {
41578	type NoMethod SubnetworkAggregatedListWarning
41579	raw := NoMethod(*s)
41580	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41581}
41582
41583type SubnetworkAggregatedListWarningData struct {
41584	// Key: [Output Only] A key that provides more detail on the warning
41585	// being returned. For example, for warnings where there are no results
41586	// in a list request for a particular zone, this key might be scope and
41587	// the key value might be the zone name. Other examples might be a key
41588	// indicating a deprecated resource and a suggested replacement, or a
41589	// warning about invalid network settings (for example, if an instance
41590	// attempts to perform IP forwarding but is not enabled for IP
41591	// forwarding).
41592	Key string `json:"key,omitempty"`
41593
41594	// Value: [Output Only] A warning data value corresponding to the key.
41595	Value string `json:"value,omitempty"`
41596
41597	// ForceSendFields is a list of field names (e.g. "Key") to
41598	// unconditionally include in API requests. By default, fields with
41599	// empty values are omitted from API requests. However, any non-pointer,
41600	// non-interface field appearing in ForceSendFields will be sent to the
41601	// server regardless of whether the field is empty or not. This may be
41602	// used to include empty fields in Patch requests.
41603	ForceSendFields []string `json:"-"`
41604
41605	// NullFields is a list of field names (e.g. "Key") to include in API
41606	// requests with the JSON null value. By default, fields with empty
41607	// values are omitted from API requests. However, any field with an
41608	// empty value appearing in NullFields will be sent to the server as
41609	// null. It is an error if a field in this list has a non-empty value.
41610	// This may be used to include null fields in Patch requests.
41611	NullFields []string `json:"-"`
41612}
41613
41614func (s *SubnetworkAggregatedListWarningData) MarshalJSON() ([]byte, error) {
41615	type NoMethod SubnetworkAggregatedListWarningData
41616	raw := NoMethod(*s)
41617	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41618}
41619
41620// SubnetworkList: Contains a list of Subnetwork resources.
41621type SubnetworkList struct {
41622	// Id: [Output Only] Unique identifier for the resource; defined by the
41623	// server.
41624	Id string `json:"id,omitempty"`
41625
41626	// Items: A list of Subnetwork resources.
41627	Items []*Subnetwork `json:"items,omitempty"`
41628
41629	// Kind: [Output Only] Type of resource. Always compute#subnetworkList
41630	// for lists of subnetworks.
41631	Kind string `json:"kind,omitempty"`
41632
41633	// NextPageToken: [Output Only] This token allows you to get the next
41634	// page of results for list requests. If the number of results is larger
41635	// than maxResults, use the nextPageToken as a value for the query
41636	// parameter pageToken in the next list request. Subsequent list
41637	// requests will have their own nextPageToken to continue paging through
41638	// the results.
41639	NextPageToken string `json:"nextPageToken,omitempty"`
41640
41641	// SelfLink: [Output Only] Server-defined URL for this resource.
41642	SelfLink string `json:"selfLink,omitempty"`
41643
41644	// Warning: [Output Only] Informational warning message.
41645	Warning *SubnetworkListWarning `json:"warning,omitempty"`
41646
41647	// ServerResponse contains the HTTP response code and headers from the
41648	// server.
41649	googleapi.ServerResponse `json:"-"`
41650
41651	// ForceSendFields is a list of field names (e.g. "Id") to
41652	// unconditionally include in API requests. By default, fields with
41653	// empty values are omitted from API requests. However, any non-pointer,
41654	// non-interface field appearing in ForceSendFields will be sent to the
41655	// server regardless of whether the field is empty or not. This may be
41656	// used to include empty fields in Patch requests.
41657	ForceSendFields []string `json:"-"`
41658
41659	// NullFields is a list of field names (e.g. "Id") to include in API
41660	// requests with the JSON null value. By default, fields with empty
41661	// values are omitted from API requests. However, any field with an
41662	// empty value appearing in NullFields will be sent to the server as
41663	// null. It is an error if a field in this list has a non-empty value.
41664	// This may be used to include null fields in Patch requests.
41665	NullFields []string `json:"-"`
41666}
41667
41668func (s *SubnetworkList) MarshalJSON() ([]byte, error) {
41669	type NoMethod SubnetworkList
41670	raw := NoMethod(*s)
41671	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41672}
41673
41674// SubnetworkListWarning: [Output Only] Informational warning message.
41675type SubnetworkListWarning struct {
41676	// Code: [Output Only] A warning code, if applicable. For example,
41677	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
41678	// the response.
41679	//
41680	// Possible values:
41681	//   "CLEANUP_FAILED"
41682	//   "DEPRECATED_RESOURCE_USED"
41683	//   "DEPRECATED_TYPE_USED"
41684	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
41685	//   "EXPERIMENTAL_TYPE_USED"
41686	//   "EXTERNAL_API_WARNING"
41687	//   "FIELD_VALUE_OVERRIDEN"
41688	//   "INJECTED_KERNELS_DEPRECATED"
41689	//   "LARGE_DEPLOYMENT_WARNING"
41690	//   "MISSING_TYPE_DEPENDENCY"
41691	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
41692	//   "NEXT_HOP_CANNOT_IP_FORWARD"
41693	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
41694	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
41695	//   "NEXT_HOP_NOT_RUNNING"
41696	//   "NOT_CRITICAL_ERROR"
41697	//   "NO_RESULTS_ON_PAGE"
41698	//   "PARTIAL_SUCCESS"
41699	//   "REQUIRED_TOS_AGREEMENT"
41700	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
41701	//   "RESOURCE_NOT_DELETED"
41702	//   "SCHEMA_VALIDATION_IGNORED"
41703	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
41704	//   "UNDECLARED_PROPERTIES"
41705	//   "UNREACHABLE"
41706	Code string `json:"code,omitempty"`
41707
41708	// Data: [Output Only] Metadata about this warning in key: value format.
41709	// For example:
41710	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
41711	Data []*SubnetworkListWarningData `json:"data,omitempty"`
41712
41713	// Message: [Output Only] A human-readable description of the warning
41714	// code.
41715	Message string `json:"message,omitempty"`
41716
41717	// ForceSendFields is a list of field names (e.g. "Code") to
41718	// unconditionally include in API requests. By default, fields with
41719	// empty values are omitted from API requests. However, any non-pointer,
41720	// non-interface field appearing in ForceSendFields will be sent to the
41721	// server regardless of whether the field is empty or not. This may be
41722	// used to include empty fields in Patch requests.
41723	ForceSendFields []string `json:"-"`
41724
41725	// NullFields is a list of field names (e.g. "Code") to include in API
41726	// requests with the JSON null value. By default, fields with empty
41727	// values are omitted from API requests. However, any field with an
41728	// empty value appearing in NullFields will be sent to the server as
41729	// null. It is an error if a field in this list has a non-empty value.
41730	// This may be used to include null fields in Patch requests.
41731	NullFields []string `json:"-"`
41732}
41733
41734func (s *SubnetworkListWarning) MarshalJSON() ([]byte, error) {
41735	type NoMethod SubnetworkListWarning
41736	raw := NoMethod(*s)
41737	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41738}
41739
41740type SubnetworkListWarningData struct {
41741	// Key: [Output Only] A key that provides more detail on the warning
41742	// being returned. For example, for warnings where there are no results
41743	// in a list request for a particular zone, this key might be scope and
41744	// the key value might be the zone name. Other examples might be a key
41745	// indicating a deprecated resource and a suggested replacement, or a
41746	// warning about invalid network settings (for example, if an instance
41747	// attempts to perform IP forwarding but is not enabled for IP
41748	// forwarding).
41749	Key string `json:"key,omitempty"`
41750
41751	// Value: [Output Only] A warning data value corresponding to the key.
41752	Value string `json:"value,omitempty"`
41753
41754	// ForceSendFields is a list of field names (e.g. "Key") to
41755	// unconditionally include in API requests. By default, fields with
41756	// empty values are omitted from API requests. However, any non-pointer,
41757	// non-interface field appearing in ForceSendFields will be sent to the
41758	// server regardless of whether the field is empty or not. This may be
41759	// used to include empty fields in Patch requests.
41760	ForceSendFields []string `json:"-"`
41761
41762	// NullFields is a list of field names (e.g. "Key") to include in API
41763	// requests with the JSON null value. By default, fields with empty
41764	// values are omitted from API requests. However, any field with an
41765	// empty value appearing in NullFields will be sent to the server as
41766	// null. It is an error if a field in this list has a non-empty value.
41767	// This may be used to include null fields in Patch requests.
41768	NullFields []string `json:"-"`
41769}
41770
41771func (s *SubnetworkListWarningData) MarshalJSON() ([]byte, error) {
41772	type NoMethod SubnetworkListWarningData
41773	raw := NoMethod(*s)
41774	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41775}
41776
41777// SubnetworkLogConfig: The available logging options for this
41778// subnetwork.
41779type SubnetworkLogConfig struct {
41780	// AggregationInterval: Can only be specified if VPC flow logging for
41781	// this subnetwork is enabled. Toggles the aggregation interval for
41782	// collecting flow logs. Increasing the interval time will reduce the
41783	// amount of generated flow logs for long lasting connections. Default
41784	// is an interval of 5 seconds per connection.
41785	//
41786	// Possible values:
41787	//   "INTERVAL_10_MIN"
41788	//   "INTERVAL_15_MIN"
41789	//   "INTERVAL_1_MIN"
41790	//   "INTERVAL_30_SEC"
41791	//   "INTERVAL_5_MIN"
41792	//   "INTERVAL_5_SEC"
41793	AggregationInterval string `json:"aggregationInterval,omitempty"`
41794
41795	// Enable: Whether to enable flow logging for this subnetwork. If this
41796	// field is not explicitly set, it will not appear in get listings. If
41797	// not set the default behavior is to disable flow logging.
41798	Enable bool `json:"enable,omitempty"`
41799
41800	// FilterExpr: Can only be specified if VPC flow logs for this
41801	// subnetwork is enabled. Export filter used to define which VPC flow
41802	// logs should be logged.
41803	FilterExpr string `json:"filterExpr,omitempty"`
41804
41805	// FlowSampling: Can only be specified if VPC flow logging for this
41806	// subnetwork is enabled. The value of the field must be in [0, 1]. Set
41807	// the sampling rate of VPC flow logs within the subnetwork where 1.0
41808	// means all collected logs are reported and 0.0 means no logs are
41809	// reported. Default is 0.5, which means half of all collected logs are
41810	// reported.
41811	FlowSampling float64 `json:"flowSampling,omitempty"`
41812
41813	// Metadata: Can only be specified if VPC flow logs for this subnetwork
41814	// is enabled. Configures whether all, none or a subset of metadata
41815	// fields should be added to the reported VPC flow logs. Default is
41816	// INCLUDE_ALL_METADATA.
41817	//
41818	// Possible values:
41819	//   "CUSTOM_METADATA"
41820	//   "EXCLUDE_ALL_METADATA"
41821	//   "INCLUDE_ALL_METADATA"
41822	Metadata string `json:"metadata,omitempty"`
41823
41824	// MetadataFields: Can only be specified if VPC flow logs for this
41825	// subnetwork is enabled and "metadata" was set to CUSTOM_METADATA.
41826	MetadataFields []string `json:"metadataFields,omitempty"`
41827
41828	// ForceSendFields is a list of field names (e.g. "AggregationInterval")
41829	// to unconditionally include in API requests. By default, fields with
41830	// empty values are omitted from API requests. However, any non-pointer,
41831	// non-interface field appearing in ForceSendFields will be sent to the
41832	// server regardless of whether the field is empty or not. This may be
41833	// used to include empty fields in Patch requests.
41834	ForceSendFields []string `json:"-"`
41835
41836	// NullFields is a list of field names (e.g. "AggregationInterval") to
41837	// include in API requests with the JSON null value. By default, fields
41838	// with empty values are omitted from API requests. However, any field
41839	// with an empty value appearing in NullFields will be sent to the
41840	// server as null. It is an error if a field in this list has a
41841	// non-empty value. This may be used to include null fields in Patch
41842	// requests.
41843	NullFields []string `json:"-"`
41844}
41845
41846func (s *SubnetworkLogConfig) MarshalJSON() ([]byte, error) {
41847	type NoMethod SubnetworkLogConfig
41848	raw := NoMethod(*s)
41849	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41850}
41851
41852func (s *SubnetworkLogConfig) UnmarshalJSON(data []byte) error {
41853	type NoMethod SubnetworkLogConfig
41854	var s1 struct {
41855		FlowSampling gensupport.JSONFloat64 `json:"flowSampling"`
41856		*NoMethod
41857	}
41858	s1.NoMethod = (*NoMethod)(s)
41859	if err := json.Unmarshal(data, &s1); err != nil {
41860		return err
41861	}
41862	s.FlowSampling = float64(s1.FlowSampling)
41863	return nil
41864}
41865
41866// SubnetworkSecondaryRange: Represents a secondary IP range of a
41867// subnetwork.
41868type SubnetworkSecondaryRange struct {
41869	// IpCidrRange: The range of IP addresses belonging to this subnetwork
41870	// secondary range. Provide this property when you create the
41871	// subnetwork. Ranges must be unique and non-overlapping with all
41872	// primary and secondary IP ranges within a network. Only IPv4 is
41873	// supported. The range can be any range listed in the Valid ranges
41874	// list.
41875	IpCidrRange string `json:"ipCidrRange,omitempty"`
41876
41877	// RangeName: The name associated with this subnetwork secondary range,
41878	// used when adding an alias IP range to a VM instance. The name must be
41879	// 1-63 characters long, and comply with RFC1035. The name must be
41880	// unique within the subnetwork.
41881	RangeName string `json:"rangeName,omitempty"`
41882
41883	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
41884	// unconditionally include in API requests. By default, fields with
41885	// empty values are omitted from API requests. However, any non-pointer,
41886	// non-interface field appearing in ForceSendFields will be sent to the
41887	// server regardless of whether the field is empty or not. This may be
41888	// used to include empty fields in Patch requests.
41889	ForceSendFields []string `json:"-"`
41890
41891	// NullFields is a list of field names (e.g. "IpCidrRange") to include
41892	// in API requests with the JSON null value. By default, fields with
41893	// empty values are omitted from API requests. However, any field with
41894	// an empty value appearing in NullFields will be sent to the server as
41895	// null. It is an error if a field in this list has a non-empty value.
41896	// This may be used to include null fields in Patch requests.
41897	NullFields []string `json:"-"`
41898}
41899
41900func (s *SubnetworkSecondaryRange) MarshalJSON() ([]byte, error) {
41901	type NoMethod SubnetworkSecondaryRange
41902	raw := NoMethod(*s)
41903	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41904}
41905
41906type SubnetworksExpandIpCidrRangeRequest struct {
41907	// IpCidrRange: The IP (in CIDR format or netmask) of internal addresses
41908	// that are legal on this Subnetwork. This range should be disjoint from
41909	// other subnetworks within this network. This range can only be larger
41910	// than (i.e. a superset of) the range previously defined before the
41911	// update.
41912	IpCidrRange string `json:"ipCidrRange,omitempty"`
41913
41914	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
41915	// unconditionally include in API requests. By default, fields with
41916	// empty values are omitted from API requests. However, any non-pointer,
41917	// non-interface field appearing in ForceSendFields will be sent to the
41918	// server regardless of whether the field is empty or not. This may be
41919	// used to include empty fields in Patch requests.
41920	ForceSendFields []string `json:"-"`
41921
41922	// NullFields is a list of field names (e.g. "IpCidrRange") to include
41923	// in API requests with the JSON null value. By default, fields with
41924	// empty values are omitted from API requests. However, any field with
41925	// an empty value appearing in NullFields will be sent to the server as
41926	// null. It is an error if a field in this list has a non-empty value.
41927	// This may be used to include null fields in Patch requests.
41928	NullFields []string `json:"-"`
41929}
41930
41931func (s *SubnetworksExpandIpCidrRangeRequest) MarshalJSON() ([]byte, error) {
41932	type NoMethod SubnetworksExpandIpCidrRangeRequest
41933	raw := NoMethod(*s)
41934	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41935}
41936
41937type SubnetworksScopedList struct {
41938	// Subnetworks: A list of subnetworks contained in this scope.
41939	Subnetworks []*Subnetwork `json:"subnetworks,omitempty"`
41940
41941	// Warning: An informational warning that appears when the list of
41942	// addresses is empty.
41943	Warning *SubnetworksScopedListWarning `json:"warning,omitempty"`
41944
41945	// ForceSendFields is a list of field names (e.g. "Subnetworks") to
41946	// unconditionally include in API requests. By default, fields with
41947	// empty values are omitted from API requests. However, any non-pointer,
41948	// non-interface field appearing in ForceSendFields will be sent to the
41949	// server regardless of whether the field is empty or not. This may be
41950	// used to include empty fields in Patch requests.
41951	ForceSendFields []string `json:"-"`
41952
41953	// NullFields is a list of field names (e.g. "Subnetworks") to include
41954	// in API requests with the JSON null value. By default, fields with
41955	// empty values are omitted from API requests. However, any field with
41956	// an empty value appearing in NullFields will be sent to the server as
41957	// null. It is an error if a field in this list has a non-empty value.
41958	// This may be used to include null fields in Patch requests.
41959	NullFields []string `json:"-"`
41960}
41961
41962func (s *SubnetworksScopedList) MarshalJSON() ([]byte, error) {
41963	type NoMethod SubnetworksScopedList
41964	raw := NoMethod(*s)
41965	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41966}
41967
41968// SubnetworksScopedListWarning: An informational warning that appears
41969// when the list of addresses is empty.
41970type SubnetworksScopedListWarning struct {
41971	// Code: [Output Only] A warning code, if applicable. For example,
41972	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
41973	// the response.
41974	//
41975	// Possible values:
41976	//   "CLEANUP_FAILED"
41977	//   "DEPRECATED_RESOURCE_USED"
41978	//   "DEPRECATED_TYPE_USED"
41979	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
41980	//   "EXPERIMENTAL_TYPE_USED"
41981	//   "EXTERNAL_API_WARNING"
41982	//   "FIELD_VALUE_OVERRIDEN"
41983	//   "INJECTED_KERNELS_DEPRECATED"
41984	//   "LARGE_DEPLOYMENT_WARNING"
41985	//   "MISSING_TYPE_DEPENDENCY"
41986	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
41987	//   "NEXT_HOP_CANNOT_IP_FORWARD"
41988	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
41989	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
41990	//   "NEXT_HOP_NOT_RUNNING"
41991	//   "NOT_CRITICAL_ERROR"
41992	//   "NO_RESULTS_ON_PAGE"
41993	//   "PARTIAL_SUCCESS"
41994	//   "REQUIRED_TOS_AGREEMENT"
41995	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
41996	//   "RESOURCE_NOT_DELETED"
41997	//   "SCHEMA_VALIDATION_IGNORED"
41998	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
41999	//   "UNDECLARED_PROPERTIES"
42000	//   "UNREACHABLE"
42001	Code string `json:"code,omitempty"`
42002
42003	// Data: [Output Only] Metadata about this warning in key: value format.
42004	// For example:
42005	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
42006	Data []*SubnetworksScopedListWarningData `json:"data,omitempty"`
42007
42008	// Message: [Output Only] A human-readable description of the warning
42009	// code.
42010	Message string `json:"message,omitempty"`
42011
42012	// ForceSendFields is a list of field names (e.g. "Code") to
42013	// unconditionally include in API requests. By default, fields with
42014	// empty values are omitted from API requests. However, any non-pointer,
42015	// non-interface field appearing in ForceSendFields will be sent to the
42016	// server regardless of whether the field is empty or not. This may be
42017	// used to include empty fields in Patch requests.
42018	ForceSendFields []string `json:"-"`
42019
42020	// NullFields is a list of field names (e.g. "Code") to include in API
42021	// requests with the JSON null value. By default, fields with empty
42022	// values are omitted from API requests. However, any field with an
42023	// empty value appearing in NullFields will be sent to the server as
42024	// null. It is an error if a field in this list has a non-empty value.
42025	// This may be used to include null fields in Patch requests.
42026	NullFields []string `json:"-"`
42027}
42028
42029func (s *SubnetworksScopedListWarning) MarshalJSON() ([]byte, error) {
42030	type NoMethod SubnetworksScopedListWarning
42031	raw := NoMethod(*s)
42032	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42033}
42034
42035type SubnetworksScopedListWarningData struct {
42036	// Key: [Output Only] A key that provides more detail on the warning
42037	// being returned. For example, for warnings where there are no results
42038	// in a list request for a particular zone, this key might be scope and
42039	// the key value might be the zone name. Other examples might be a key
42040	// indicating a deprecated resource and a suggested replacement, or a
42041	// warning about invalid network settings (for example, if an instance
42042	// attempts to perform IP forwarding but is not enabled for IP
42043	// forwarding).
42044	Key string `json:"key,omitempty"`
42045
42046	// Value: [Output Only] A warning data value corresponding to the key.
42047	Value string `json:"value,omitempty"`
42048
42049	// ForceSendFields is a list of field names (e.g. "Key") to
42050	// unconditionally include in API requests. By default, fields with
42051	// empty values are omitted from API requests. However, any non-pointer,
42052	// non-interface field appearing in ForceSendFields will be sent to the
42053	// server regardless of whether the field is empty or not. This may be
42054	// used to include empty fields in Patch requests.
42055	ForceSendFields []string `json:"-"`
42056
42057	// NullFields is a list of field names (e.g. "Key") to include in API
42058	// requests with the JSON null value. By default, fields with empty
42059	// values are omitted from API requests. However, any field with an
42060	// empty value appearing in NullFields will be sent to the server as
42061	// null. It is an error if a field in this list has a non-empty value.
42062	// This may be used to include null fields in Patch requests.
42063	NullFields []string `json:"-"`
42064}
42065
42066func (s *SubnetworksScopedListWarningData) MarshalJSON() ([]byte, error) {
42067	type NoMethod SubnetworksScopedListWarningData
42068	raw := NoMethod(*s)
42069	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42070}
42071
42072type SubnetworksSetPrivateIpGoogleAccessRequest struct {
42073	PrivateIpGoogleAccess bool `json:"privateIpGoogleAccess,omitempty"`
42074
42075	// ForceSendFields is a list of field names (e.g.
42076	// "PrivateIpGoogleAccess") to unconditionally include in API requests.
42077	// By default, fields with empty values are omitted from API requests.
42078	// However, any non-pointer, non-interface field appearing in
42079	// ForceSendFields will be sent to the server regardless of whether the
42080	// field is empty or not. This may be used to include empty fields in
42081	// Patch requests.
42082	ForceSendFields []string `json:"-"`
42083
42084	// NullFields is a list of field names (e.g. "PrivateIpGoogleAccess") to
42085	// include in API requests with the JSON null value. By default, fields
42086	// with empty values are omitted from API requests. However, any field
42087	// with an empty value appearing in NullFields will be sent to the
42088	// server as null. It is an error if a field in this list has a
42089	// non-empty value. This may be used to include null fields in Patch
42090	// requests.
42091	NullFields []string `json:"-"`
42092}
42093
42094func (s *SubnetworksSetPrivateIpGoogleAccessRequest) MarshalJSON() ([]byte, error) {
42095	type NoMethod SubnetworksSetPrivateIpGoogleAccessRequest
42096	raw := NoMethod(*s)
42097	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42098}
42099
42100// Subsetting: Subsetting options to make L4 ILB support any number of
42101// backend instances
42102type Subsetting struct {
42103	// Possible values:
42104	//   "CONSISTENT_HASH_SUBSETTING"
42105	//   "NONE"
42106	Policy string `json:"policy,omitempty"`
42107
42108	// ForceSendFields is a list of field names (e.g. "Policy") to
42109	// unconditionally include in API requests. By default, fields with
42110	// empty values are omitted from API requests. However, any non-pointer,
42111	// non-interface field appearing in ForceSendFields will be sent to the
42112	// server regardless of whether the field is empty or not. This may be
42113	// used to include empty fields in Patch requests.
42114	ForceSendFields []string `json:"-"`
42115
42116	// NullFields is a list of field names (e.g. "Policy") to include in API
42117	// requests with the JSON null value. By default, fields with empty
42118	// values are omitted from API requests. However, any field with an
42119	// empty value appearing in NullFields will be sent to the server as
42120	// null. It is an error if a field in this list has a non-empty value.
42121	// This may be used to include null fields in Patch requests.
42122	NullFields []string `json:"-"`
42123}
42124
42125func (s *Subsetting) MarshalJSON() ([]byte, error) {
42126	type NoMethod Subsetting
42127	raw := NoMethod(*s)
42128	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42129}
42130
42131type TCPHealthCheck struct {
42132	// Port: The TCP port number for the health check request. The default
42133	// value is 80. Valid values are 1 through 65535.
42134	Port int64 `json:"port,omitempty"`
42135
42136	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
42137	// both port and port_name are defined, port takes precedence.
42138	PortName string `json:"portName,omitempty"`
42139
42140	// PortSpecification: Specifies how port is selected for health
42141	// checking, can be one of following values:
42142	// USE_FIXED_PORT: The port number in port is used for health
42143	// checking.
42144	// USE_NAMED_PORT: The portName is used for health
42145	// checking.
42146	// USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for
42147	// each network endpoint is used for health checking. For other
42148	// backends, the port or named port specified in the Backend Service is
42149	// used for health checking.
42150	//
42151	//
42152	// If not specified, TCP health check follows behavior specified in port
42153	// and portName fields.
42154	//
42155	// Possible values:
42156	//   "USE_FIXED_PORT"
42157	//   "USE_NAMED_PORT"
42158	//   "USE_SERVING_PORT"
42159	PortSpecification string `json:"portSpecification,omitempty"`
42160
42161	// ProxyHeader: Specifies the type of proxy header to append before
42162	// sending data to the backend, either NONE or PROXY_V1. The default is
42163	// NONE.
42164	//
42165	// Possible values:
42166	//   "NONE"
42167	//   "PROXY_V1"
42168	ProxyHeader string `json:"proxyHeader,omitempty"`
42169
42170	// Request: The application data to send once the TCP connection has
42171	// been established (default value is empty). If both request and
42172	// response are empty, the connection establishment alone will indicate
42173	// health. The request data can only be ASCII.
42174	Request string `json:"request,omitempty"`
42175
42176	// Response: The bytes to match against the beginning of the response
42177	// data. If left empty (the default value), any response will indicate
42178	// health. The response data can only be ASCII.
42179	Response string `json:"response,omitempty"`
42180
42181	// ForceSendFields is a list of field names (e.g. "Port") to
42182	// unconditionally include in API requests. By default, fields with
42183	// empty values are omitted from API requests. However, any non-pointer,
42184	// non-interface field appearing in ForceSendFields will be sent to the
42185	// server regardless of whether the field is empty or not. This may be
42186	// used to include empty fields in Patch requests.
42187	ForceSendFields []string `json:"-"`
42188
42189	// NullFields is a list of field names (e.g. "Port") to include in API
42190	// requests with the JSON null value. By default, fields with empty
42191	// values are omitted from API requests. However, any field with an
42192	// empty value appearing in NullFields will be sent to the server as
42193	// null. It is an error if a field in this list has a non-empty value.
42194	// This may be used to include null fields in Patch requests.
42195	NullFields []string `json:"-"`
42196}
42197
42198func (s *TCPHealthCheck) MarshalJSON() ([]byte, error) {
42199	type NoMethod TCPHealthCheck
42200	raw := NoMethod(*s)
42201	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42202}
42203
42204// Tags: A set of instance tags.
42205type Tags struct {
42206	// Fingerprint: Specifies a fingerprint for this request, which is
42207	// essentially a hash of the tags' contents and used for optimistic
42208	// locking. The fingerprint is initially generated by Compute Engine and
42209	// changes after every request to modify or update tags. You must always
42210	// provide an up-to-date fingerprint hash in order to update or change
42211	// tags.
42212	//
42213	// To see the latest fingerprint, make get() request to the instance.
42214	Fingerprint string `json:"fingerprint,omitempty"`
42215
42216	// Items: An array of tags. Each tag must be 1-63 characters long, and
42217	// comply with RFC1035.
42218	Items []string `json:"items,omitempty"`
42219
42220	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
42221	// unconditionally include in API requests. By default, fields with
42222	// empty values are omitted from API requests. However, any non-pointer,
42223	// non-interface field appearing in ForceSendFields will be sent to the
42224	// server regardless of whether the field is empty or not. This may be
42225	// used to include empty fields in Patch requests.
42226	ForceSendFields []string `json:"-"`
42227
42228	// NullFields is a list of field names (e.g. "Fingerprint") to include
42229	// in API requests with the JSON null value. By default, fields with
42230	// empty values are omitted from API requests. However, any field with
42231	// an empty value appearing in NullFields will be sent to the server as
42232	// null. It is an error if a field in this list has a non-empty value.
42233	// This may be used to include null fields in Patch requests.
42234	NullFields []string `json:"-"`
42235}
42236
42237func (s *Tags) MarshalJSON() ([]byte, error) {
42238	type NoMethod Tags
42239	raw := NoMethod(*s)
42240	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42241}
42242
42243// TargetGrpcProxy: Represents a Target gRPC Proxy resource.
42244//
42245// A target gRPC proxy is a component of load balancers intended for
42246// load balancing gRPC traffic. Only global forwarding rules with load
42247// balancing scheme INTERNAL_SELF_MANAGED can reference a target gRPC
42248// proxy. The target gRPC Proxy references a URL map that specifies how
42249// traffic is routed to gRPC backend services. (== resource_for
42250// {$api_version}.targetGrpcProxies ==)
42251type TargetGrpcProxy struct {
42252	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
42253	// format.
42254	CreationTimestamp string `json:"creationTimestamp,omitempty"`
42255
42256	// Description: An optional description of this resource. Provide this
42257	// property when you create the resource.
42258	Description string `json:"description,omitempty"`
42259
42260	// Fingerprint: Fingerprint of this resource. A hash of the contents
42261	// stored in this object. This field is used in optimistic locking. This
42262	// field will be ignored when inserting a TargetGrpcProxy. An up-to-date
42263	// fingerprint must be provided in order to patch/update the
42264	// TargetGrpcProxy; otherwise, the request will fail with error 412
42265	// conditionNotMet. To see the latest fingerprint, make a get() request
42266	// to retrieve the TargetGrpcProxy.
42267	Fingerprint string `json:"fingerprint,omitempty"`
42268
42269	// Id: [Output Only] The unique identifier for the resource type. The
42270	// server generates this identifier.
42271	Id uint64 `json:"id,omitempty,string"`
42272
42273	// Kind: [Output Only] Type of the resource. Always
42274	// compute#targetGrpcProxy for target grpc proxies.
42275	Kind string `json:"kind,omitempty"`
42276
42277	// Name: Name of the resource. Provided by the client when the resource
42278	// is created. The name must be 1-63 characters long, and comply with
42279	// RFC1035. Specifically, the name must be 1-63 characters long and
42280	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
42281	// the first character must be a lowercase letter, and all following
42282	// characters must be a dash, lowercase letter, or digit, except the
42283	// last character, which cannot be a dash.
42284	Name string `json:"name,omitempty"`
42285
42286	// SelfLink: [Output Only] Server-defined URL for the resource.
42287	SelfLink string `json:"selfLink,omitempty"`
42288
42289	// SelfLinkWithId: [Output Only] Server-defined URL with id for the
42290	// resource.
42291	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
42292
42293	// UrlMap: URL to the UrlMap resource that defines the mapping from URL
42294	// to the BackendService. The protocol field in the BackendService must
42295	// be set to GRPC.
42296	UrlMap string `json:"urlMap,omitempty"`
42297
42298	// ValidateForProxyless: If true, indicates that the BackendServices
42299	// referenced by the urlMap may be accessed by gRPC applications without
42300	// using a sidecar proxy. This will enable configuration checks on
42301	// urlMap and its referenced BackendServices to not allow unsupported
42302	// features. A gRPC application must use "xds:///" scheme in the target
42303	// URI of the service it is connecting to. If false, indicates that the
42304	// BackendServices referenced by the urlMap will be accessed by gRPC
42305	// applications via a sidecar proxy. In this case, a gRPC application
42306	// must not use "xds:///" scheme in the target URI of the service it is
42307	// connecting to
42308	ValidateForProxyless bool `json:"validateForProxyless,omitempty"`
42309
42310	// ServerResponse contains the HTTP response code and headers from the
42311	// server.
42312	googleapi.ServerResponse `json:"-"`
42313
42314	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
42315	// to unconditionally include in API requests. By default, fields with
42316	// empty values are omitted from API requests. However, any non-pointer,
42317	// non-interface field appearing in ForceSendFields will be sent to the
42318	// server regardless of whether the field is empty or not. This may be
42319	// used to include empty fields in Patch requests.
42320	ForceSendFields []string `json:"-"`
42321
42322	// NullFields is a list of field names (e.g. "CreationTimestamp") to
42323	// include in API requests with the JSON null value. By default, fields
42324	// with empty values are omitted from API requests. However, any field
42325	// with an empty value appearing in NullFields will be sent to the
42326	// server as null. It is an error if a field in this list has a
42327	// non-empty value. This may be used to include null fields in Patch
42328	// requests.
42329	NullFields []string `json:"-"`
42330}
42331
42332func (s *TargetGrpcProxy) MarshalJSON() ([]byte, error) {
42333	type NoMethod TargetGrpcProxy
42334	raw := NoMethod(*s)
42335	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42336}
42337
42338type TargetGrpcProxyList struct {
42339	// Id: [Output Only] Unique identifier for the resource; defined by the
42340	// server.
42341	Id string `json:"id,omitempty"`
42342
42343	// Items: A list of TargetGrpcProxy resources.
42344	Items []*TargetGrpcProxy `json:"items,omitempty"`
42345
42346	// Kind: [Output Only] Type of the resource. Always
42347	// compute#targetGrpcProxy for target grpc proxies.
42348	Kind string `json:"kind,omitempty"`
42349
42350	// NextPageToken: [Output Only] This token allows you to get the next
42351	// page of results for list requests. If the number of results is larger
42352	// than maxResults, use the nextPageToken as a value for the query
42353	// parameter pageToken in the next list request. Subsequent list
42354	// requests will have their own nextPageToken to continue paging through
42355	// the results.
42356	NextPageToken string `json:"nextPageToken,omitempty"`
42357
42358	// SelfLink: [Output Only] Server-defined URL for this resource.
42359	SelfLink string `json:"selfLink,omitempty"`
42360
42361	// Warning: [Output Only] Informational warning message.
42362	Warning *TargetGrpcProxyListWarning `json:"warning,omitempty"`
42363
42364	// ServerResponse contains the HTTP response code and headers from the
42365	// server.
42366	googleapi.ServerResponse `json:"-"`
42367
42368	// ForceSendFields is a list of field names (e.g. "Id") to
42369	// unconditionally include in API requests. By default, fields with
42370	// empty values are omitted from API requests. However, any non-pointer,
42371	// non-interface field appearing in ForceSendFields will be sent to the
42372	// server regardless of whether the field is empty or not. This may be
42373	// used to include empty fields in Patch requests.
42374	ForceSendFields []string `json:"-"`
42375
42376	// NullFields is a list of field names (e.g. "Id") to include in API
42377	// requests with the JSON null value. By default, fields with empty
42378	// values are omitted from API requests. However, any field with an
42379	// empty value appearing in NullFields will be sent to the server as
42380	// null. It is an error if a field in this list has a non-empty value.
42381	// This may be used to include null fields in Patch requests.
42382	NullFields []string `json:"-"`
42383}
42384
42385func (s *TargetGrpcProxyList) MarshalJSON() ([]byte, error) {
42386	type NoMethod TargetGrpcProxyList
42387	raw := NoMethod(*s)
42388	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42389}
42390
42391// TargetGrpcProxyListWarning: [Output Only] Informational warning
42392// message.
42393type TargetGrpcProxyListWarning struct {
42394	// Code: [Output Only] A warning code, if applicable. For example,
42395	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
42396	// the response.
42397	//
42398	// Possible values:
42399	//   "CLEANUP_FAILED"
42400	//   "DEPRECATED_RESOURCE_USED"
42401	//   "DEPRECATED_TYPE_USED"
42402	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
42403	//   "EXPERIMENTAL_TYPE_USED"
42404	//   "EXTERNAL_API_WARNING"
42405	//   "FIELD_VALUE_OVERRIDEN"
42406	//   "INJECTED_KERNELS_DEPRECATED"
42407	//   "LARGE_DEPLOYMENT_WARNING"
42408	//   "MISSING_TYPE_DEPENDENCY"
42409	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
42410	//   "NEXT_HOP_CANNOT_IP_FORWARD"
42411	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
42412	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
42413	//   "NEXT_HOP_NOT_RUNNING"
42414	//   "NOT_CRITICAL_ERROR"
42415	//   "NO_RESULTS_ON_PAGE"
42416	//   "PARTIAL_SUCCESS"
42417	//   "REQUIRED_TOS_AGREEMENT"
42418	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
42419	//   "RESOURCE_NOT_DELETED"
42420	//   "SCHEMA_VALIDATION_IGNORED"
42421	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
42422	//   "UNDECLARED_PROPERTIES"
42423	//   "UNREACHABLE"
42424	Code string `json:"code,omitempty"`
42425
42426	// Data: [Output Only] Metadata about this warning in key: value format.
42427	// For example:
42428	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
42429	Data []*TargetGrpcProxyListWarningData `json:"data,omitempty"`
42430
42431	// Message: [Output Only] A human-readable description of the warning
42432	// code.
42433	Message string `json:"message,omitempty"`
42434
42435	// ForceSendFields is a list of field names (e.g. "Code") to
42436	// unconditionally include in API requests. By default, fields with
42437	// empty values are omitted from API requests. However, any non-pointer,
42438	// non-interface field appearing in ForceSendFields will be sent to the
42439	// server regardless of whether the field is empty or not. This may be
42440	// used to include empty fields in Patch requests.
42441	ForceSendFields []string `json:"-"`
42442
42443	// NullFields is a list of field names (e.g. "Code") to include in API
42444	// requests with the JSON null value. By default, fields with empty
42445	// values are omitted from API requests. However, any field with an
42446	// empty value appearing in NullFields will be sent to the server as
42447	// null. It is an error if a field in this list has a non-empty value.
42448	// This may be used to include null fields in Patch requests.
42449	NullFields []string `json:"-"`
42450}
42451
42452func (s *TargetGrpcProxyListWarning) MarshalJSON() ([]byte, error) {
42453	type NoMethod TargetGrpcProxyListWarning
42454	raw := NoMethod(*s)
42455	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42456}
42457
42458type TargetGrpcProxyListWarningData struct {
42459	// Key: [Output Only] A key that provides more detail on the warning
42460	// being returned. For example, for warnings where there are no results
42461	// in a list request for a particular zone, this key might be scope and
42462	// the key value might be the zone name. Other examples might be a key
42463	// indicating a deprecated resource and a suggested replacement, or a
42464	// warning about invalid network settings (for example, if an instance
42465	// attempts to perform IP forwarding but is not enabled for IP
42466	// forwarding).
42467	Key string `json:"key,omitempty"`
42468
42469	// Value: [Output Only] A warning data value corresponding to the key.
42470	Value string `json:"value,omitempty"`
42471
42472	// ForceSendFields is a list of field names (e.g. "Key") to
42473	// unconditionally include in API requests. By default, fields with
42474	// empty values are omitted from API requests. However, any non-pointer,
42475	// non-interface field appearing in ForceSendFields will be sent to the
42476	// server regardless of whether the field is empty or not. This may be
42477	// used to include empty fields in Patch requests.
42478	ForceSendFields []string `json:"-"`
42479
42480	// NullFields is a list of field names (e.g. "Key") to include in API
42481	// requests with the JSON null value. By default, fields with empty
42482	// values are omitted from API requests. However, any field with an
42483	// empty value appearing in NullFields will be sent to the server as
42484	// null. It is an error if a field in this list has a non-empty value.
42485	// This may be used to include null fields in Patch requests.
42486	NullFields []string `json:"-"`
42487}
42488
42489func (s *TargetGrpcProxyListWarningData) MarshalJSON() ([]byte, error) {
42490	type NoMethod TargetGrpcProxyListWarningData
42491	raw := NoMethod(*s)
42492	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42493}
42494
42495type TargetHttpProxiesScopedList struct {
42496	// TargetHttpProxies: A list of TargetHttpProxies contained in this
42497	// scope.
42498	TargetHttpProxies []*TargetHttpProxy `json:"targetHttpProxies,omitempty"`
42499
42500	// Warning: Informational warning which replaces the list of backend
42501	// services when the list is empty.
42502	Warning *TargetHttpProxiesScopedListWarning `json:"warning,omitempty"`
42503
42504	// ForceSendFields is a list of field names (e.g. "TargetHttpProxies")
42505	// to unconditionally include in API requests. By default, fields with
42506	// empty values are omitted from API requests. However, any non-pointer,
42507	// non-interface field appearing in ForceSendFields will be sent to the
42508	// server regardless of whether the field is empty or not. This may be
42509	// used to include empty fields in Patch requests.
42510	ForceSendFields []string `json:"-"`
42511
42512	// NullFields is a list of field names (e.g. "TargetHttpProxies") to
42513	// include in API requests with the JSON null value. By default, fields
42514	// with empty values are omitted from API requests. However, any field
42515	// with an empty value appearing in NullFields will be sent to the
42516	// server as null. It is an error if a field in this list has a
42517	// non-empty value. This may be used to include null fields in Patch
42518	// requests.
42519	NullFields []string `json:"-"`
42520}
42521
42522func (s *TargetHttpProxiesScopedList) MarshalJSON() ([]byte, error) {
42523	type NoMethod TargetHttpProxiesScopedList
42524	raw := NoMethod(*s)
42525	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42526}
42527
42528// TargetHttpProxiesScopedListWarning: Informational warning which
42529// replaces the list of backend services when the list is empty.
42530type TargetHttpProxiesScopedListWarning struct {
42531	// Code: [Output Only] A warning code, if applicable. For example,
42532	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
42533	// the response.
42534	//
42535	// Possible values:
42536	//   "CLEANUP_FAILED"
42537	//   "DEPRECATED_RESOURCE_USED"
42538	//   "DEPRECATED_TYPE_USED"
42539	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
42540	//   "EXPERIMENTAL_TYPE_USED"
42541	//   "EXTERNAL_API_WARNING"
42542	//   "FIELD_VALUE_OVERRIDEN"
42543	//   "INJECTED_KERNELS_DEPRECATED"
42544	//   "LARGE_DEPLOYMENT_WARNING"
42545	//   "MISSING_TYPE_DEPENDENCY"
42546	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
42547	//   "NEXT_HOP_CANNOT_IP_FORWARD"
42548	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
42549	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
42550	//   "NEXT_HOP_NOT_RUNNING"
42551	//   "NOT_CRITICAL_ERROR"
42552	//   "NO_RESULTS_ON_PAGE"
42553	//   "PARTIAL_SUCCESS"
42554	//   "REQUIRED_TOS_AGREEMENT"
42555	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
42556	//   "RESOURCE_NOT_DELETED"
42557	//   "SCHEMA_VALIDATION_IGNORED"
42558	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
42559	//   "UNDECLARED_PROPERTIES"
42560	//   "UNREACHABLE"
42561	Code string `json:"code,omitempty"`
42562
42563	// Data: [Output Only] Metadata about this warning in key: value format.
42564	// For example:
42565	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
42566	Data []*TargetHttpProxiesScopedListWarningData `json:"data,omitempty"`
42567
42568	// Message: [Output Only] A human-readable description of the warning
42569	// code.
42570	Message string `json:"message,omitempty"`
42571
42572	// ForceSendFields is a list of field names (e.g. "Code") to
42573	// unconditionally include in API requests. By default, fields with
42574	// empty values are omitted from API requests. However, any non-pointer,
42575	// non-interface field appearing in ForceSendFields will be sent to the
42576	// server regardless of whether the field is empty or not. This may be
42577	// used to include empty fields in Patch requests.
42578	ForceSendFields []string `json:"-"`
42579
42580	// NullFields is a list of field names (e.g. "Code") to include in API
42581	// requests with the JSON null value. By default, fields with empty
42582	// values are omitted from API requests. However, any field with an
42583	// empty value appearing in NullFields will be sent to the server as
42584	// null. It is an error if a field in this list has a non-empty value.
42585	// This may be used to include null fields in Patch requests.
42586	NullFields []string `json:"-"`
42587}
42588
42589func (s *TargetHttpProxiesScopedListWarning) MarshalJSON() ([]byte, error) {
42590	type NoMethod TargetHttpProxiesScopedListWarning
42591	raw := NoMethod(*s)
42592	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42593}
42594
42595type TargetHttpProxiesScopedListWarningData struct {
42596	// Key: [Output Only] A key that provides more detail on the warning
42597	// being returned. For example, for warnings where there are no results
42598	// in a list request for a particular zone, this key might be scope and
42599	// the key value might be the zone name. Other examples might be a key
42600	// indicating a deprecated resource and a suggested replacement, or a
42601	// warning about invalid network settings (for example, if an instance
42602	// attempts to perform IP forwarding but is not enabled for IP
42603	// forwarding).
42604	Key string `json:"key,omitempty"`
42605
42606	// Value: [Output Only] A warning data value corresponding to the key.
42607	Value string `json:"value,omitempty"`
42608
42609	// ForceSendFields is a list of field names (e.g. "Key") to
42610	// unconditionally include in API requests. By default, fields with
42611	// empty values are omitted from API requests. However, any non-pointer,
42612	// non-interface field appearing in ForceSendFields will be sent to the
42613	// server regardless of whether the field is empty or not. This may be
42614	// used to include empty fields in Patch requests.
42615	ForceSendFields []string `json:"-"`
42616
42617	// NullFields is a list of field names (e.g. "Key") to include in API
42618	// requests with the JSON null value. By default, fields with empty
42619	// values are omitted from API requests. However, any field with an
42620	// empty value appearing in NullFields will be sent to the server as
42621	// null. It is an error if a field in this list has a non-empty value.
42622	// This may be used to include null fields in Patch requests.
42623	NullFields []string `json:"-"`
42624}
42625
42626func (s *TargetHttpProxiesScopedListWarningData) MarshalJSON() ([]byte, error) {
42627	type NoMethod TargetHttpProxiesScopedListWarningData
42628	raw := NoMethod(*s)
42629	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42630}
42631
42632// TargetHttpProxy: Represents a Target HTTP Proxy resource.
42633//
42634// Google Compute Engine has two Target HTTP Proxy resources:
42635//
42636// * Global
42637// (/compute/docs/reference/rest/{$api_version}/targetHttpProxies) *
42638// Regional
42639// (/compute/docs/reference/rest/{$api_version}/regionTargetHttpProxies)
42640//
42641// A target HTTP proxy is a component of GCP HTTP load balancers.
42642//
42643// * targetHttpProxies are used by external HTTP load balancers and
42644// Traffic Director. * regionTargetHttpProxies are used by internal HTTP
42645// load balancers.
42646//
42647// Forwarding rules reference a target HTTP proxy, and the target proxy
42648// then references a URL map. For more information, read Using Target
42649// Proxies and  Forwarding rule concepts. (== resource_for
42650// {$api_version}.targetHttpProxies ==) (== resource_for
42651// {$api_version}.regionTargetHttpProxies ==)
42652type TargetHttpProxy struct {
42653	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
42654	// format.
42655	CreationTimestamp string `json:"creationTimestamp,omitempty"`
42656
42657	// Description: An optional description of this resource. Provide this
42658	// property when you create the resource.
42659	Description string `json:"description,omitempty"`
42660
42661	// Fingerprint: Fingerprint of this resource. A hash of the contents
42662	// stored in this object. This field is used in optimistic locking. This
42663	// field will be ignored when inserting a TargetHttpProxy. An up-to-date
42664	// fingerprint must be provided in order to patch/update the
42665	// TargetHttpProxy; otherwise, the request will fail with error 412
42666	// conditionNotMet. To see the latest fingerprint, make a get() request
42667	// to retrieve the TargetHttpProxy.
42668	Fingerprint string `json:"fingerprint,omitempty"`
42669
42670	// HttpFilters: URLs to networkservices.HttpFilter resources enabled for
42671	// xDS clients using this configuration. For example,
42672	// https://networkservices.googleapis.com/v1alpha1/projects/project/locations/locationhttpFilters/httpFilter
42673	// Only filters that handle outbound connection and stream events may be
42674	// specified. These filters work in conjunction with a default set of
42675	// HTTP filters that may already be configured by Traffic Director.
42676	// Traffic Director will determine the final location of these filters
42677	// within xDS configuration based on the name of the HTTP filter. If
42678	// Traffic Director positions multiple filters at the same location,
42679	// those filters will be in the same order as specified in this
42680	// list.
42681	// httpFilters only applies for loadbalancers with loadBalancingScheme
42682	// set to INTERNAL_SELF_MANAGED. See ForwardingRule for more details.
42683	HttpFilters []string `json:"httpFilters,omitempty"`
42684
42685	// Id: [Output Only] The unique identifier for the resource. This
42686	// identifier is defined by the server.
42687	Id uint64 `json:"id,omitempty,string"`
42688
42689	// Kind: [Output Only] Type of resource. Always compute#targetHttpProxy
42690	// for target HTTP proxies.
42691	Kind string `json:"kind,omitempty"`
42692
42693	// Name: Name of the resource. Provided by the client when the resource
42694	// is created. The name must be 1-63 characters long, and comply with
42695	// RFC1035. Specifically, the name must be 1-63 characters long and
42696	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
42697	// the first character must be a lowercase letter, and all following
42698	// characters must be a dash, lowercase letter, or digit, except the
42699	// last character, which cannot be a dash.
42700	Name string `json:"name,omitempty"`
42701
42702	// ProxyBind: This field only applies when the forwarding rule that
42703	// references this target proxy has a loadBalancingScheme set to
42704	// INTERNAL_SELF_MANAGED.
42705	//
42706	// When this field is set to true, Envoy proxies set up inbound traffic
42707	// interception and bind to the IP address and port specified in the
42708	// forwarding rule. This is generally useful when using Traffic Director
42709	// to configure Envoy as a gateway or middle proxy (in other words, not
42710	// a sidecar proxy). The Envoy proxy listens for inbound requests and
42711	// handles requests when it receives them.
42712	//
42713	// The default is false.
42714	ProxyBind bool `json:"proxyBind,omitempty"`
42715
42716	// Region: [Output Only] URL of the region where the regional Target
42717	// HTTP Proxy resides. This field is not applicable to global Target
42718	// HTTP Proxies.
42719	Region string `json:"region,omitempty"`
42720
42721	// SelfLink: [Output Only] Server-defined URL for the resource.
42722	SelfLink string `json:"selfLink,omitempty"`
42723
42724	// UrlMap: URL to the UrlMap resource that defines the mapping from URL
42725	// to the BackendService.
42726	UrlMap string `json:"urlMap,omitempty"`
42727
42728	// ServerResponse contains the HTTP response code and headers from the
42729	// server.
42730	googleapi.ServerResponse `json:"-"`
42731
42732	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
42733	// to unconditionally include in API requests. By default, fields with
42734	// empty values are omitted from API requests. However, any non-pointer,
42735	// non-interface field appearing in ForceSendFields will be sent to the
42736	// server regardless of whether the field is empty or not. This may be
42737	// used to include empty fields in Patch requests.
42738	ForceSendFields []string `json:"-"`
42739
42740	// NullFields is a list of field names (e.g. "CreationTimestamp") to
42741	// include in API requests with the JSON null value. By default, fields
42742	// with empty values are omitted from API requests. However, any field
42743	// with an empty value appearing in NullFields will be sent to the
42744	// server as null. It is an error if a field in this list has a
42745	// non-empty value. This may be used to include null fields in Patch
42746	// requests.
42747	NullFields []string `json:"-"`
42748}
42749
42750func (s *TargetHttpProxy) MarshalJSON() ([]byte, error) {
42751	type NoMethod TargetHttpProxy
42752	raw := NoMethod(*s)
42753	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42754}
42755
42756type TargetHttpProxyAggregatedList struct {
42757	// Id: [Output Only] Unique identifier for the resource; defined by the
42758	// server.
42759	Id string `json:"id,omitempty"`
42760
42761	// Items: A list of TargetHttpProxiesScopedList resources.
42762	Items map[string]TargetHttpProxiesScopedList `json:"items,omitempty"`
42763
42764	// Kind: [Output Only] Type of resource. Always
42765	// compute#targetHttpProxyAggregatedList for lists of Target HTTP
42766	// Proxies.
42767	Kind string `json:"kind,omitempty"`
42768
42769	// NextPageToken: [Output Only] This token allows you to get the next
42770	// page of results for list requests. If the number of results is larger
42771	// than maxResults, use the nextPageToken as a value for the query
42772	// parameter pageToken in the next list request. Subsequent list
42773	// requests will have their own nextPageToken to continue paging through
42774	// the results.
42775	NextPageToken string `json:"nextPageToken,omitempty"`
42776
42777	// SelfLink: [Output Only] Server-defined URL for this resource.
42778	SelfLink string `json:"selfLink,omitempty"`
42779
42780	// Unreachables: [Output Only] Unreachable resources.
42781	Unreachables []string `json:"unreachables,omitempty"`
42782
42783	// Warning: [Output Only] Informational warning message.
42784	Warning *TargetHttpProxyAggregatedListWarning `json:"warning,omitempty"`
42785
42786	// ServerResponse contains the HTTP response code and headers from the
42787	// server.
42788	googleapi.ServerResponse `json:"-"`
42789
42790	// ForceSendFields is a list of field names (e.g. "Id") to
42791	// unconditionally include in API requests. By default, fields with
42792	// empty values are omitted from API requests. However, any non-pointer,
42793	// non-interface field appearing in ForceSendFields will be sent to the
42794	// server regardless of whether the field is empty or not. This may be
42795	// used to include empty fields in Patch requests.
42796	ForceSendFields []string `json:"-"`
42797
42798	// NullFields is a list of field names (e.g. "Id") to include in API
42799	// requests with the JSON null value. By default, fields with empty
42800	// values are omitted from API requests. However, any field with an
42801	// empty value appearing in NullFields will be sent to the server as
42802	// null. It is an error if a field in this list has a non-empty value.
42803	// This may be used to include null fields in Patch requests.
42804	NullFields []string `json:"-"`
42805}
42806
42807func (s *TargetHttpProxyAggregatedList) MarshalJSON() ([]byte, error) {
42808	type NoMethod TargetHttpProxyAggregatedList
42809	raw := NoMethod(*s)
42810	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42811}
42812
42813// TargetHttpProxyAggregatedListWarning: [Output Only] Informational
42814// warning message.
42815type TargetHttpProxyAggregatedListWarning struct {
42816	// Code: [Output Only] A warning code, if applicable. For example,
42817	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
42818	// the response.
42819	//
42820	// Possible values:
42821	//   "CLEANUP_FAILED"
42822	//   "DEPRECATED_RESOURCE_USED"
42823	//   "DEPRECATED_TYPE_USED"
42824	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
42825	//   "EXPERIMENTAL_TYPE_USED"
42826	//   "EXTERNAL_API_WARNING"
42827	//   "FIELD_VALUE_OVERRIDEN"
42828	//   "INJECTED_KERNELS_DEPRECATED"
42829	//   "LARGE_DEPLOYMENT_WARNING"
42830	//   "MISSING_TYPE_DEPENDENCY"
42831	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
42832	//   "NEXT_HOP_CANNOT_IP_FORWARD"
42833	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
42834	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
42835	//   "NEXT_HOP_NOT_RUNNING"
42836	//   "NOT_CRITICAL_ERROR"
42837	//   "NO_RESULTS_ON_PAGE"
42838	//   "PARTIAL_SUCCESS"
42839	//   "REQUIRED_TOS_AGREEMENT"
42840	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
42841	//   "RESOURCE_NOT_DELETED"
42842	//   "SCHEMA_VALIDATION_IGNORED"
42843	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
42844	//   "UNDECLARED_PROPERTIES"
42845	//   "UNREACHABLE"
42846	Code string `json:"code,omitempty"`
42847
42848	// Data: [Output Only] Metadata about this warning in key: value format.
42849	// For example:
42850	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
42851	Data []*TargetHttpProxyAggregatedListWarningData `json:"data,omitempty"`
42852
42853	// Message: [Output Only] A human-readable description of the warning
42854	// code.
42855	Message string `json:"message,omitempty"`
42856
42857	// ForceSendFields is a list of field names (e.g. "Code") to
42858	// unconditionally include in API requests. By default, fields with
42859	// empty values are omitted from API requests. However, any non-pointer,
42860	// non-interface field appearing in ForceSendFields will be sent to the
42861	// server regardless of whether the field is empty or not. This may be
42862	// used to include empty fields in Patch requests.
42863	ForceSendFields []string `json:"-"`
42864
42865	// NullFields is a list of field names (e.g. "Code") to include in API
42866	// requests with the JSON null value. By default, fields with empty
42867	// values are omitted from API requests. However, any field with an
42868	// empty value appearing in NullFields will be sent to the server as
42869	// null. It is an error if a field in this list has a non-empty value.
42870	// This may be used to include null fields in Patch requests.
42871	NullFields []string `json:"-"`
42872}
42873
42874func (s *TargetHttpProxyAggregatedListWarning) MarshalJSON() ([]byte, error) {
42875	type NoMethod TargetHttpProxyAggregatedListWarning
42876	raw := NoMethod(*s)
42877	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42878}
42879
42880type TargetHttpProxyAggregatedListWarningData struct {
42881	// Key: [Output Only] A key that provides more detail on the warning
42882	// being returned. For example, for warnings where there are no results
42883	// in a list request for a particular zone, this key might be scope and
42884	// the key value might be the zone name. Other examples might be a key
42885	// indicating a deprecated resource and a suggested replacement, or a
42886	// warning about invalid network settings (for example, if an instance
42887	// attempts to perform IP forwarding but is not enabled for IP
42888	// forwarding).
42889	Key string `json:"key,omitempty"`
42890
42891	// Value: [Output Only] A warning data value corresponding to the key.
42892	Value string `json:"value,omitempty"`
42893
42894	// ForceSendFields is a list of field names (e.g. "Key") to
42895	// unconditionally include in API requests. By default, fields with
42896	// empty values are omitted from API requests. However, any non-pointer,
42897	// non-interface field appearing in ForceSendFields will be sent to the
42898	// server regardless of whether the field is empty or not. This may be
42899	// used to include empty fields in Patch requests.
42900	ForceSendFields []string `json:"-"`
42901
42902	// NullFields is a list of field names (e.g. "Key") to include in API
42903	// requests with the JSON null value. By default, fields with empty
42904	// values are omitted from API requests. However, any field with an
42905	// empty value appearing in NullFields will be sent to the server as
42906	// null. It is an error if a field in this list has a non-empty value.
42907	// This may be used to include null fields in Patch requests.
42908	NullFields []string `json:"-"`
42909}
42910
42911func (s *TargetHttpProxyAggregatedListWarningData) MarshalJSON() ([]byte, error) {
42912	type NoMethod TargetHttpProxyAggregatedListWarningData
42913	raw := NoMethod(*s)
42914	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42915}
42916
42917// TargetHttpProxyList: A list of TargetHttpProxy resources.
42918type TargetHttpProxyList struct {
42919	// Id: [Output Only] Unique identifier for the resource; defined by the
42920	// server.
42921	Id string `json:"id,omitempty"`
42922
42923	// Items: A list of TargetHttpProxy resources.
42924	Items []*TargetHttpProxy `json:"items,omitempty"`
42925
42926	// Kind: Type of resource. Always compute#targetHttpProxyList for lists
42927	// of target HTTP proxies.
42928	Kind string `json:"kind,omitempty"`
42929
42930	// NextPageToken: [Output Only] This token allows you to get the next
42931	// page of results for list requests. If the number of results is larger
42932	// than maxResults, use the nextPageToken as a value for the query
42933	// parameter pageToken in the next list request. Subsequent list
42934	// requests will have their own nextPageToken to continue paging through
42935	// the results.
42936	NextPageToken string `json:"nextPageToken,omitempty"`
42937
42938	// SelfLink: [Output Only] Server-defined URL for this resource.
42939	SelfLink string `json:"selfLink,omitempty"`
42940
42941	// Warning: [Output Only] Informational warning message.
42942	Warning *TargetHttpProxyListWarning `json:"warning,omitempty"`
42943
42944	// ServerResponse contains the HTTP response code and headers from the
42945	// server.
42946	googleapi.ServerResponse `json:"-"`
42947
42948	// ForceSendFields is a list of field names (e.g. "Id") to
42949	// unconditionally include in API requests. By default, fields with
42950	// empty values are omitted from API requests. However, any non-pointer,
42951	// non-interface field appearing in ForceSendFields will be sent to the
42952	// server regardless of whether the field is empty or not. This may be
42953	// used to include empty fields in Patch requests.
42954	ForceSendFields []string `json:"-"`
42955
42956	// NullFields is a list of field names (e.g. "Id") to include in API
42957	// requests with the JSON null value. By default, fields with empty
42958	// values are omitted from API requests. However, any field with an
42959	// empty value appearing in NullFields will be sent to the server as
42960	// null. It is an error if a field in this list has a non-empty value.
42961	// This may be used to include null fields in Patch requests.
42962	NullFields []string `json:"-"`
42963}
42964
42965func (s *TargetHttpProxyList) MarshalJSON() ([]byte, error) {
42966	type NoMethod TargetHttpProxyList
42967	raw := NoMethod(*s)
42968	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42969}
42970
42971// TargetHttpProxyListWarning: [Output Only] Informational warning
42972// message.
42973type TargetHttpProxyListWarning struct {
42974	// Code: [Output Only] A warning code, if applicable. For example,
42975	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
42976	// the response.
42977	//
42978	// Possible values:
42979	//   "CLEANUP_FAILED"
42980	//   "DEPRECATED_RESOURCE_USED"
42981	//   "DEPRECATED_TYPE_USED"
42982	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
42983	//   "EXPERIMENTAL_TYPE_USED"
42984	//   "EXTERNAL_API_WARNING"
42985	//   "FIELD_VALUE_OVERRIDEN"
42986	//   "INJECTED_KERNELS_DEPRECATED"
42987	//   "LARGE_DEPLOYMENT_WARNING"
42988	//   "MISSING_TYPE_DEPENDENCY"
42989	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
42990	//   "NEXT_HOP_CANNOT_IP_FORWARD"
42991	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
42992	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
42993	//   "NEXT_HOP_NOT_RUNNING"
42994	//   "NOT_CRITICAL_ERROR"
42995	//   "NO_RESULTS_ON_PAGE"
42996	//   "PARTIAL_SUCCESS"
42997	//   "REQUIRED_TOS_AGREEMENT"
42998	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
42999	//   "RESOURCE_NOT_DELETED"
43000	//   "SCHEMA_VALIDATION_IGNORED"
43001	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
43002	//   "UNDECLARED_PROPERTIES"
43003	//   "UNREACHABLE"
43004	Code string `json:"code,omitempty"`
43005
43006	// Data: [Output Only] Metadata about this warning in key: value format.
43007	// For example:
43008	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
43009	Data []*TargetHttpProxyListWarningData `json:"data,omitempty"`
43010
43011	// Message: [Output Only] A human-readable description of the warning
43012	// code.
43013	Message string `json:"message,omitempty"`
43014
43015	// ForceSendFields is a list of field names (e.g. "Code") to
43016	// unconditionally include in API requests. By default, fields with
43017	// empty values are omitted from API requests. However, any non-pointer,
43018	// non-interface field appearing in ForceSendFields will be sent to the
43019	// server regardless of whether the field is empty or not. This may be
43020	// used to include empty fields in Patch requests.
43021	ForceSendFields []string `json:"-"`
43022
43023	// NullFields is a list of field names (e.g. "Code") to include in API
43024	// requests with the JSON null value. By default, fields with empty
43025	// values are omitted from API requests. However, any field with an
43026	// empty value appearing in NullFields will be sent to the server as
43027	// null. It is an error if a field in this list has a non-empty value.
43028	// This may be used to include null fields in Patch requests.
43029	NullFields []string `json:"-"`
43030}
43031
43032func (s *TargetHttpProxyListWarning) MarshalJSON() ([]byte, error) {
43033	type NoMethod TargetHttpProxyListWarning
43034	raw := NoMethod(*s)
43035	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43036}
43037
43038type TargetHttpProxyListWarningData struct {
43039	// Key: [Output Only] A key that provides more detail on the warning
43040	// being returned. For example, for warnings where there are no results
43041	// in a list request for a particular zone, this key might be scope and
43042	// the key value might be the zone name. Other examples might be a key
43043	// indicating a deprecated resource and a suggested replacement, or a
43044	// warning about invalid network settings (for example, if an instance
43045	// attempts to perform IP forwarding but is not enabled for IP
43046	// forwarding).
43047	Key string `json:"key,omitempty"`
43048
43049	// Value: [Output Only] A warning data value corresponding to the key.
43050	Value string `json:"value,omitempty"`
43051
43052	// ForceSendFields is a list of field names (e.g. "Key") to
43053	// unconditionally include in API requests. By default, fields with
43054	// empty values are omitted from API requests. However, any non-pointer,
43055	// non-interface field appearing in ForceSendFields will be sent to the
43056	// server regardless of whether the field is empty or not. This may be
43057	// used to include empty fields in Patch requests.
43058	ForceSendFields []string `json:"-"`
43059
43060	// NullFields is a list of field names (e.g. "Key") to include in API
43061	// requests with the JSON null value. By default, fields with empty
43062	// values are omitted from API requests. However, any field with an
43063	// empty value appearing in NullFields will be sent to the server as
43064	// null. It is an error if a field in this list has a non-empty value.
43065	// This may be used to include null fields in Patch requests.
43066	NullFields []string `json:"-"`
43067}
43068
43069func (s *TargetHttpProxyListWarningData) MarshalJSON() ([]byte, error) {
43070	type NoMethod TargetHttpProxyListWarningData
43071	raw := NoMethod(*s)
43072	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43073}
43074
43075type TargetHttpsProxiesScopedList struct {
43076	// TargetHttpsProxies: A list of TargetHttpsProxies contained in this
43077	// scope.
43078	TargetHttpsProxies []*TargetHttpsProxy `json:"targetHttpsProxies,omitempty"`
43079
43080	// Warning: Informational warning which replaces the list of backend
43081	// services when the list is empty.
43082	Warning *TargetHttpsProxiesScopedListWarning `json:"warning,omitempty"`
43083
43084	// ForceSendFields is a list of field names (e.g. "TargetHttpsProxies")
43085	// to unconditionally include in API requests. By default, fields with
43086	// empty values are omitted from API requests. However, any non-pointer,
43087	// non-interface field appearing in ForceSendFields will be sent to the
43088	// server regardless of whether the field is empty or not. This may be
43089	// used to include empty fields in Patch requests.
43090	ForceSendFields []string `json:"-"`
43091
43092	// NullFields is a list of field names (e.g. "TargetHttpsProxies") to
43093	// include in API requests with the JSON null value. By default, fields
43094	// with empty values are omitted from API requests. However, any field
43095	// with an empty value appearing in NullFields will be sent to the
43096	// server as null. It is an error if a field in this list has a
43097	// non-empty value. This may be used to include null fields in Patch
43098	// requests.
43099	NullFields []string `json:"-"`
43100}
43101
43102func (s *TargetHttpsProxiesScopedList) MarshalJSON() ([]byte, error) {
43103	type NoMethod TargetHttpsProxiesScopedList
43104	raw := NoMethod(*s)
43105	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43106}
43107
43108// TargetHttpsProxiesScopedListWarning: Informational warning which
43109// replaces the list of backend services when the list is empty.
43110type TargetHttpsProxiesScopedListWarning struct {
43111	// Code: [Output Only] A warning code, if applicable. For example,
43112	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
43113	// the response.
43114	//
43115	// Possible values:
43116	//   "CLEANUP_FAILED"
43117	//   "DEPRECATED_RESOURCE_USED"
43118	//   "DEPRECATED_TYPE_USED"
43119	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
43120	//   "EXPERIMENTAL_TYPE_USED"
43121	//   "EXTERNAL_API_WARNING"
43122	//   "FIELD_VALUE_OVERRIDEN"
43123	//   "INJECTED_KERNELS_DEPRECATED"
43124	//   "LARGE_DEPLOYMENT_WARNING"
43125	//   "MISSING_TYPE_DEPENDENCY"
43126	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
43127	//   "NEXT_HOP_CANNOT_IP_FORWARD"
43128	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
43129	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
43130	//   "NEXT_HOP_NOT_RUNNING"
43131	//   "NOT_CRITICAL_ERROR"
43132	//   "NO_RESULTS_ON_PAGE"
43133	//   "PARTIAL_SUCCESS"
43134	//   "REQUIRED_TOS_AGREEMENT"
43135	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
43136	//   "RESOURCE_NOT_DELETED"
43137	//   "SCHEMA_VALIDATION_IGNORED"
43138	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
43139	//   "UNDECLARED_PROPERTIES"
43140	//   "UNREACHABLE"
43141	Code string `json:"code,omitempty"`
43142
43143	// Data: [Output Only] Metadata about this warning in key: value format.
43144	// For example:
43145	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
43146	Data []*TargetHttpsProxiesScopedListWarningData `json:"data,omitempty"`
43147
43148	// Message: [Output Only] A human-readable description of the warning
43149	// code.
43150	Message string `json:"message,omitempty"`
43151
43152	// ForceSendFields is a list of field names (e.g. "Code") to
43153	// unconditionally include in API requests. By default, fields with
43154	// empty values are omitted from API requests. However, any non-pointer,
43155	// non-interface field appearing in ForceSendFields will be sent to the
43156	// server regardless of whether the field is empty or not. This may be
43157	// used to include empty fields in Patch requests.
43158	ForceSendFields []string `json:"-"`
43159
43160	// NullFields is a list of field names (e.g. "Code") to include in API
43161	// requests with the JSON null value. By default, fields with empty
43162	// values are omitted from API requests. However, any field with an
43163	// empty value appearing in NullFields will be sent to the server as
43164	// null. It is an error if a field in this list has a non-empty value.
43165	// This may be used to include null fields in Patch requests.
43166	NullFields []string `json:"-"`
43167}
43168
43169func (s *TargetHttpsProxiesScopedListWarning) MarshalJSON() ([]byte, error) {
43170	type NoMethod TargetHttpsProxiesScopedListWarning
43171	raw := NoMethod(*s)
43172	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43173}
43174
43175type TargetHttpsProxiesScopedListWarningData struct {
43176	// Key: [Output Only] A key that provides more detail on the warning
43177	// being returned. For example, for warnings where there are no results
43178	// in a list request for a particular zone, this key might be scope and
43179	// the key value might be the zone name. Other examples might be a key
43180	// indicating a deprecated resource and a suggested replacement, or a
43181	// warning about invalid network settings (for example, if an instance
43182	// attempts to perform IP forwarding but is not enabled for IP
43183	// forwarding).
43184	Key string `json:"key,omitempty"`
43185
43186	// Value: [Output Only] A warning data value corresponding to the key.
43187	Value string `json:"value,omitempty"`
43188
43189	// ForceSendFields is a list of field names (e.g. "Key") to
43190	// unconditionally include in API requests. By default, fields with
43191	// empty values are omitted from API requests. However, any non-pointer,
43192	// non-interface field appearing in ForceSendFields will be sent to the
43193	// server regardless of whether the field is empty or not. This may be
43194	// used to include empty fields in Patch requests.
43195	ForceSendFields []string `json:"-"`
43196
43197	// NullFields is a list of field names (e.g. "Key") to include in API
43198	// requests with the JSON null value. By default, fields with empty
43199	// values are omitted from API requests. However, any field with an
43200	// empty value appearing in NullFields will be sent to the server as
43201	// null. It is an error if a field in this list has a non-empty value.
43202	// This may be used to include null fields in Patch requests.
43203	NullFields []string `json:"-"`
43204}
43205
43206func (s *TargetHttpsProxiesScopedListWarningData) MarshalJSON() ([]byte, error) {
43207	type NoMethod TargetHttpsProxiesScopedListWarningData
43208	raw := NoMethod(*s)
43209	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43210}
43211
43212type TargetHttpsProxiesSetQuicOverrideRequest struct {
43213	// QuicOverride: QUIC policy for the TargetHttpsProxy resource.
43214	//
43215	// Possible values:
43216	//   "DISABLE"
43217	//   "ENABLE"
43218	//   "NONE"
43219	QuicOverride string `json:"quicOverride,omitempty"`
43220
43221	// ForceSendFields is a list of field names (e.g. "QuicOverride") to
43222	// unconditionally include in API requests. By default, fields with
43223	// empty values are omitted from API requests. However, any non-pointer,
43224	// non-interface field appearing in ForceSendFields will be sent to the
43225	// server regardless of whether the field is empty or not. This may be
43226	// used to include empty fields in Patch requests.
43227	ForceSendFields []string `json:"-"`
43228
43229	// NullFields is a list of field names (e.g. "QuicOverride") to include
43230	// in API requests with the JSON null value. By default, fields with
43231	// empty values are omitted from API requests. However, any field with
43232	// an empty value appearing in NullFields will be sent to the server as
43233	// null. It is an error if a field in this list has a non-empty value.
43234	// This may be used to include null fields in Patch requests.
43235	NullFields []string `json:"-"`
43236}
43237
43238func (s *TargetHttpsProxiesSetQuicOverrideRequest) MarshalJSON() ([]byte, error) {
43239	type NoMethod TargetHttpsProxiesSetQuicOverrideRequest
43240	raw := NoMethod(*s)
43241	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43242}
43243
43244type TargetHttpsProxiesSetSslCertificatesRequest struct {
43245	// SslCertificates: New set of SslCertificate resources to associate
43246	// with this TargetHttpsProxy resource. Currently exactly one
43247	// SslCertificate resource must be specified.
43248	SslCertificates []string `json:"sslCertificates,omitempty"`
43249
43250	// ForceSendFields is a list of field names (e.g. "SslCertificates") to
43251	// unconditionally include in API requests. By default, fields with
43252	// empty values are omitted from API requests. However, any non-pointer,
43253	// non-interface field appearing in ForceSendFields will be sent to the
43254	// server regardless of whether the field is empty or not. This may be
43255	// used to include empty fields in Patch requests.
43256	ForceSendFields []string `json:"-"`
43257
43258	// NullFields is a list of field names (e.g. "SslCertificates") to
43259	// include in API requests with the JSON null value. By default, fields
43260	// with empty values are omitted from API requests. However, any field
43261	// with an empty value appearing in NullFields will be sent to the
43262	// server as null. It is an error if a field in this list has a
43263	// non-empty value. This may be used to include null fields in Patch
43264	// requests.
43265	NullFields []string `json:"-"`
43266}
43267
43268func (s *TargetHttpsProxiesSetSslCertificatesRequest) MarshalJSON() ([]byte, error) {
43269	type NoMethod TargetHttpsProxiesSetSslCertificatesRequest
43270	raw := NoMethod(*s)
43271	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43272}
43273
43274// TargetHttpsProxy: Represents a Target HTTPS Proxy resource.
43275//
43276// Google Compute Engine has two Target HTTPS Proxy resources:
43277//
43278// * Global
43279// (/compute/docs/reference/rest/{$api_version}/targetHttpsProxies) *
43280// Regional
43281// (/compute/docs/reference/rest/{$api_version}/regionTargetHttpsProxies)
43282//
43283//
43284// A target HTTPS proxy is a component of GCP HTTPS load balancers.
43285//
43286// * targetHttpsProxies are used by external HTTPS load balancers. *
43287// regionTargetHttpsProxies are used by internal HTTPS load
43288// balancers.
43289//
43290// Forwarding rules reference a target HTTPS proxy, and the target proxy
43291// then references a URL map. For more information, read Using Target
43292// Proxies and  Forwarding rule concepts. (== resource_for
43293// {$api_version}.targetHttpsProxies ==) (== resource_for
43294// {$api_version}.regionTargetHttpsProxies ==)
43295type TargetHttpsProxy struct {
43296	// Authentication: [Deprecated] Use serverTlsPolicy instead.
43297	Authentication string `json:"authentication,omitempty"`
43298
43299	// Authorization: [Deprecated] Use authorizationPolicy instead.
43300	Authorization string `json:"authorization,omitempty"`
43301
43302	// AuthorizationPolicy: Optional. A URL referring to a
43303	// networksecurity.AuthorizationPolicy resource that describes how the
43304	// proxy should authorize inbound traffic. If left blank, access will
43305	// not be restricted by an authorization policy.
43306	// Refer to the AuthorizationPolicy resource for additional
43307	// details.
43308	// authorizationPolicy only applies to a global TargetHttpsProxy
43309	// attached to globalForwardingRules with the loadBalancingScheme set to
43310	// INTERNAL_SELF_MANAGED.
43311	// Note: This field currently has no impact.
43312	AuthorizationPolicy string `json:"authorizationPolicy,omitempty"`
43313
43314	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
43315	// format.
43316	CreationTimestamp string `json:"creationTimestamp,omitempty"`
43317
43318	// Description: An optional description of this resource. Provide this
43319	// property when you create the resource.
43320	Description string `json:"description,omitempty"`
43321
43322	// Fingerprint: Fingerprint of this resource. A hash of the contents
43323	// stored in this object. This field is used in optimistic locking. This
43324	// field will be ignored when inserting a TargetHttpsProxy. An
43325	// up-to-date fingerprint must be provided in order to patch the
43326	// TargetHttpsProxy; otherwise, the request will fail with error 412
43327	// conditionNotMet. To see the latest fingerprint, make a get() request
43328	// to retrieve the TargetHttpsProxy.
43329	Fingerprint string `json:"fingerprint,omitempty"`
43330
43331	// HttpFilters: URLs to networkservices.HttpFilter resources enabled for
43332	// xDS clients using this configuration. For example,
43333	// https://networkservices.googleapis.com/beta/projects/project/locations/locationhttpFilters/httpFilter
43334	// Only filters that handle outbound connection and stream events may be
43335	// specified. These filters work in conjunction with a default set of
43336	// HTTP filters that may already be configured by Traffic Director.
43337	// Traffic Director will determine the final location of these filters
43338	// within xDS configuration based on the name of the HTTP filter. If
43339	// Traffic Director positions multiple filters at the same location,
43340	// those filters will be in the same order as specified in this
43341	// list.
43342	// httpFilters only applies for loadbalancers with loadBalancingScheme
43343	// set to INTERNAL_SELF_MANAGED. See ForwardingRule for more details.
43344	HttpFilters []string `json:"httpFilters,omitempty"`
43345
43346	// Id: [Output Only] The unique identifier for the resource. This
43347	// identifier is defined by the server.
43348	Id uint64 `json:"id,omitempty,string"`
43349
43350	// Kind: [Output Only] Type of resource. Always compute#targetHttpsProxy
43351	// for target HTTPS proxies.
43352	Kind string `json:"kind,omitempty"`
43353
43354	// Name: Name of the resource. Provided by the client when the resource
43355	// is created. The name must be 1-63 characters long, and comply with
43356	// RFC1035. Specifically, the name must be 1-63 characters long and
43357	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
43358	// the first character must be a lowercase letter, and all following
43359	// characters must be a dash, lowercase letter, or digit, except the
43360	// last character, which cannot be a dash.
43361	Name string `json:"name,omitempty"`
43362
43363	// ProxyBind: This field only applies when the forwarding rule that
43364	// references this target proxy has a loadBalancingScheme set to
43365	// INTERNAL_SELF_MANAGED.
43366	//
43367	// When this field is set to true, Envoy proxies set up inbound traffic
43368	// interception and bind to the IP address and port specified in the
43369	// forwarding rule. This is generally useful when using Traffic Director
43370	// to configure Envoy as a gateway or middle proxy (in other words, not
43371	// a sidecar proxy). The Envoy proxy listens for inbound requests and
43372	// handles requests when it receives them.
43373	//
43374	// The default is false.
43375	ProxyBind bool `json:"proxyBind,omitempty"`
43376
43377	// QuicOverride: Specifies the QUIC override policy for this
43378	// TargetHttpsProxy resource. This setting determines whether the load
43379	// balancer attempts to negotiate QUIC with clients. You can specify
43380	// NONE, ENABLE, or DISABLE.
43381	// - When quic-override is set to NONE, Google manages whether QUIC is
43382	// used.
43383	// - When quic-override is set to ENABLE, the load balancer uses QUIC
43384	// when possible.
43385	// - When quic-override is set to DISABLE, the load balancer doesn't use
43386	// QUIC.
43387	// - If the quic-override flag is not specified, NONE is implied.
43388	//
43389	// Possible values:
43390	//   "DISABLE"
43391	//   "ENABLE"
43392	//   "NONE"
43393	QuicOverride string `json:"quicOverride,omitempty"`
43394
43395	// Region: [Output Only] URL of the region where the regional
43396	// TargetHttpsProxy resides. This field is not applicable to global
43397	// TargetHttpsProxies.
43398	Region string `json:"region,omitempty"`
43399
43400	// SelfLink: [Output Only] Server-defined URL for the resource.
43401	SelfLink string `json:"selfLink,omitempty"`
43402
43403	// ServerTlsPolicy: Optional. A URL referring to a
43404	// networksecurity.ServerTlsPolicy resource that describes how the proxy
43405	// should authenticate inbound traffic.
43406	// serverTlsPolicy only applies to a global TargetHttpsProxy attached to
43407	// globalForwardingRules with the loadBalancingScheme set to
43408	// INTERNAL_SELF_MANAGED.
43409	// If left blank, communications are not encrypted.
43410	// Note: This field currently has no impact.
43411	ServerTlsPolicy string `json:"serverTlsPolicy,omitempty"`
43412
43413	// SslCertificates: URLs to SslCertificate resources that are used to
43414	// authenticate connections between users and the load balancer. At
43415	// least one SSL certificate must be specified. Currently, you may
43416	// specify up to 15 SSL certificates.
43417	SslCertificates []string `json:"sslCertificates,omitempty"`
43418
43419	// SslPolicy: URL of SslPolicy resource that will be associated with the
43420	// TargetHttpsProxy resource. If not set, the TargetHttpsProxy resource
43421	// has no SSL policy configured.
43422	SslPolicy string `json:"sslPolicy,omitempty"`
43423
43424	// UrlMap: A fully-qualified or valid partial URL to the UrlMap resource
43425	// that defines the mapping from URL to the BackendService. For example,
43426	// the following are all valid URLs for specifying a URL map:
43427	// -
43428	// https://www.googleapis.compute/v1/projects/project/global/urlMaps/url-map
43429	//
43430	// - projects/project/global/urlMaps/url-map
43431	// - global/urlMaps/url-map
43432	UrlMap string `json:"urlMap,omitempty"`
43433
43434	// ServerResponse contains the HTTP response code and headers from the
43435	// server.
43436	googleapi.ServerResponse `json:"-"`
43437
43438	// ForceSendFields is a list of field names (e.g. "Authentication") to
43439	// unconditionally include in API requests. By default, fields with
43440	// empty values are omitted from API requests. However, any non-pointer,
43441	// non-interface field appearing in ForceSendFields will be sent to the
43442	// server regardless of whether the field is empty or not. This may be
43443	// used to include empty fields in Patch requests.
43444	ForceSendFields []string `json:"-"`
43445
43446	// NullFields is a list of field names (e.g. "Authentication") to
43447	// include in API requests with the JSON null value. By default, fields
43448	// with empty values are omitted from API requests. However, any field
43449	// with an empty value appearing in NullFields will be sent to the
43450	// server as null. It is an error if a field in this list has a
43451	// non-empty value. This may be used to include null fields in Patch
43452	// requests.
43453	NullFields []string `json:"-"`
43454}
43455
43456func (s *TargetHttpsProxy) MarshalJSON() ([]byte, error) {
43457	type NoMethod TargetHttpsProxy
43458	raw := NoMethod(*s)
43459	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43460}
43461
43462type TargetHttpsProxyAggregatedList struct {
43463	// Id: [Output Only] Unique identifier for the resource; defined by the
43464	// server.
43465	Id string `json:"id,omitempty"`
43466
43467	// Items: A list of TargetHttpsProxiesScopedList resources.
43468	Items map[string]TargetHttpsProxiesScopedList `json:"items,omitempty"`
43469
43470	// Kind: [Output Only] Type of resource. Always
43471	// compute#targetHttpsProxyAggregatedList for lists of Target HTTP
43472	// Proxies.
43473	Kind string `json:"kind,omitempty"`
43474
43475	// NextPageToken: [Output Only] This token allows you to get the next
43476	// page of results for list requests. If the number of results is larger
43477	// than maxResults, use the nextPageToken as a value for the query
43478	// parameter pageToken in the next list request. Subsequent list
43479	// requests will have their own nextPageToken to continue paging through
43480	// the results.
43481	NextPageToken string `json:"nextPageToken,omitempty"`
43482
43483	// SelfLink: [Output Only] Server-defined URL for this resource.
43484	SelfLink string `json:"selfLink,omitempty"`
43485
43486	// Unreachables: [Output Only] Unreachable resources.
43487	Unreachables []string `json:"unreachables,omitempty"`
43488
43489	// Warning: [Output Only] Informational warning message.
43490	Warning *TargetHttpsProxyAggregatedListWarning `json:"warning,omitempty"`
43491
43492	// ServerResponse contains the HTTP response code and headers from the
43493	// server.
43494	googleapi.ServerResponse `json:"-"`
43495
43496	// ForceSendFields is a list of field names (e.g. "Id") to
43497	// unconditionally include in API requests. By default, fields with
43498	// empty values are omitted from API requests. However, any non-pointer,
43499	// non-interface field appearing in ForceSendFields will be sent to the
43500	// server regardless of whether the field is empty or not. This may be
43501	// used to include empty fields in Patch requests.
43502	ForceSendFields []string `json:"-"`
43503
43504	// NullFields is a list of field names (e.g. "Id") to include in API
43505	// requests with the JSON null value. By default, fields with empty
43506	// values are omitted from API requests. However, any field with an
43507	// empty value appearing in NullFields will be sent to the server as
43508	// null. It is an error if a field in this list has a non-empty value.
43509	// This may be used to include null fields in Patch requests.
43510	NullFields []string `json:"-"`
43511}
43512
43513func (s *TargetHttpsProxyAggregatedList) MarshalJSON() ([]byte, error) {
43514	type NoMethod TargetHttpsProxyAggregatedList
43515	raw := NoMethod(*s)
43516	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43517}
43518
43519// TargetHttpsProxyAggregatedListWarning: [Output Only] Informational
43520// warning message.
43521type TargetHttpsProxyAggregatedListWarning struct {
43522	// Code: [Output Only] A warning code, if applicable. For example,
43523	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
43524	// the response.
43525	//
43526	// Possible values:
43527	//   "CLEANUP_FAILED"
43528	//   "DEPRECATED_RESOURCE_USED"
43529	//   "DEPRECATED_TYPE_USED"
43530	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
43531	//   "EXPERIMENTAL_TYPE_USED"
43532	//   "EXTERNAL_API_WARNING"
43533	//   "FIELD_VALUE_OVERRIDEN"
43534	//   "INJECTED_KERNELS_DEPRECATED"
43535	//   "LARGE_DEPLOYMENT_WARNING"
43536	//   "MISSING_TYPE_DEPENDENCY"
43537	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
43538	//   "NEXT_HOP_CANNOT_IP_FORWARD"
43539	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
43540	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
43541	//   "NEXT_HOP_NOT_RUNNING"
43542	//   "NOT_CRITICAL_ERROR"
43543	//   "NO_RESULTS_ON_PAGE"
43544	//   "PARTIAL_SUCCESS"
43545	//   "REQUIRED_TOS_AGREEMENT"
43546	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
43547	//   "RESOURCE_NOT_DELETED"
43548	//   "SCHEMA_VALIDATION_IGNORED"
43549	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
43550	//   "UNDECLARED_PROPERTIES"
43551	//   "UNREACHABLE"
43552	Code string `json:"code,omitempty"`
43553
43554	// Data: [Output Only] Metadata about this warning in key: value format.
43555	// For example:
43556	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
43557	Data []*TargetHttpsProxyAggregatedListWarningData `json:"data,omitempty"`
43558
43559	// Message: [Output Only] A human-readable description of the warning
43560	// code.
43561	Message string `json:"message,omitempty"`
43562
43563	// ForceSendFields is a list of field names (e.g. "Code") to
43564	// unconditionally include in API requests. By default, fields with
43565	// empty values are omitted from API requests. However, any non-pointer,
43566	// non-interface field appearing in ForceSendFields will be sent to the
43567	// server regardless of whether the field is empty or not. This may be
43568	// used to include empty fields in Patch requests.
43569	ForceSendFields []string `json:"-"`
43570
43571	// NullFields is a list of field names (e.g. "Code") to include in API
43572	// requests with the JSON null value. By default, fields with empty
43573	// values are omitted from API requests. However, any field with an
43574	// empty value appearing in NullFields will be sent to the server as
43575	// null. It is an error if a field in this list has a non-empty value.
43576	// This may be used to include null fields in Patch requests.
43577	NullFields []string `json:"-"`
43578}
43579
43580func (s *TargetHttpsProxyAggregatedListWarning) MarshalJSON() ([]byte, error) {
43581	type NoMethod TargetHttpsProxyAggregatedListWarning
43582	raw := NoMethod(*s)
43583	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43584}
43585
43586type TargetHttpsProxyAggregatedListWarningData struct {
43587	// Key: [Output Only] A key that provides more detail on the warning
43588	// being returned. For example, for warnings where there are no results
43589	// in a list request for a particular zone, this key might be scope and
43590	// the key value might be the zone name. Other examples might be a key
43591	// indicating a deprecated resource and a suggested replacement, or a
43592	// warning about invalid network settings (for example, if an instance
43593	// attempts to perform IP forwarding but is not enabled for IP
43594	// forwarding).
43595	Key string `json:"key,omitempty"`
43596
43597	// Value: [Output Only] A warning data value corresponding to the key.
43598	Value string `json:"value,omitempty"`
43599
43600	// ForceSendFields is a list of field names (e.g. "Key") to
43601	// unconditionally include in API requests. By default, fields with
43602	// empty values are omitted from API requests. However, any non-pointer,
43603	// non-interface field appearing in ForceSendFields will be sent to the
43604	// server regardless of whether the field is empty or not. This may be
43605	// used to include empty fields in Patch requests.
43606	ForceSendFields []string `json:"-"`
43607
43608	// NullFields is a list of field names (e.g. "Key") to include in API
43609	// requests with the JSON null value. By default, fields with empty
43610	// values are omitted from API requests. However, any field with an
43611	// empty value appearing in NullFields will be sent to the server as
43612	// null. It is an error if a field in this list has a non-empty value.
43613	// This may be used to include null fields in Patch requests.
43614	NullFields []string `json:"-"`
43615}
43616
43617func (s *TargetHttpsProxyAggregatedListWarningData) MarshalJSON() ([]byte, error) {
43618	type NoMethod TargetHttpsProxyAggregatedListWarningData
43619	raw := NoMethod(*s)
43620	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43621}
43622
43623// TargetHttpsProxyList: Contains a list of TargetHttpsProxy resources.
43624type TargetHttpsProxyList struct {
43625	// Id: [Output Only] Unique identifier for the resource; defined by the
43626	// server.
43627	Id string `json:"id,omitempty"`
43628
43629	// Items: A list of TargetHttpsProxy resources.
43630	Items []*TargetHttpsProxy `json:"items,omitempty"`
43631
43632	// Kind: Type of resource. Always compute#targetHttpsProxyList for lists
43633	// of target HTTPS proxies.
43634	Kind string `json:"kind,omitempty"`
43635
43636	// NextPageToken: [Output Only] This token allows you to get the next
43637	// page of results for list requests. If the number of results is larger
43638	// than maxResults, use the nextPageToken as a value for the query
43639	// parameter pageToken in the next list request. Subsequent list
43640	// requests will have their own nextPageToken to continue paging through
43641	// the results.
43642	NextPageToken string `json:"nextPageToken,omitempty"`
43643
43644	// SelfLink: [Output Only] Server-defined URL for this resource.
43645	SelfLink string `json:"selfLink,omitempty"`
43646
43647	// Warning: [Output Only] Informational warning message.
43648	Warning *TargetHttpsProxyListWarning `json:"warning,omitempty"`
43649
43650	// ServerResponse contains the HTTP response code and headers from the
43651	// server.
43652	googleapi.ServerResponse `json:"-"`
43653
43654	// ForceSendFields is a list of field names (e.g. "Id") to
43655	// unconditionally include in API requests. By default, fields with
43656	// empty values are omitted from API requests. However, any non-pointer,
43657	// non-interface field appearing in ForceSendFields will be sent to the
43658	// server regardless of whether the field is empty or not. This may be
43659	// used to include empty fields in Patch requests.
43660	ForceSendFields []string `json:"-"`
43661
43662	// NullFields is a list of field names (e.g. "Id") to include in API
43663	// requests with the JSON null value. By default, fields with empty
43664	// values are omitted from API requests. However, any field with an
43665	// empty value appearing in NullFields will be sent to the server as
43666	// null. It is an error if a field in this list has a non-empty value.
43667	// This may be used to include null fields in Patch requests.
43668	NullFields []string `json:"-"`
43669}
43670
43671func (s *TargetHttpsProxyList) MarshalJSON() ([]byte, error) {
43672	type NoMethod TargetHttpsProxyList
43673	raw := NoMethod(*s)
43674	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43675}
43676
43677// TargetHttpsProxyListWarning: [Output Only] Informational warning
43678// message.
43679type TargetHttpsProxyListWarning struct {
43680	// Code: [Output Only] A warning code, if applicable. For example,
43681	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
43682	// the response.
43683	//
43684	// Possible values:
43685	//   "CLEANUP_FAILED"
43686	//   "DEPRECATED_RESOURCE_USED"
43687	//   "DEPRECATED_TYPE_USED"
43688	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
43689	//   "EXPERIMENTAL_TYPE_USED"
43690	//   "EXTERNAL_API_WARNING"
43691	//   "FIELD_VALUE_OVERRIDEN"
43692	//   "INJECTED_KERNELS_DEPRECATED"
43693	//   "LARGE_DEPLOYMENT_WARNING"
43694	//   "MISSING_TYPE_DEPENDENCY"
43695	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
43696	//   "NEXT_HOP_CANNOT_IP_FORWARD"
43697	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
43698	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
43699	//   "NEXT_HOP_NOT_RUNNING"
43700	//   "NOT_CRITICAL_ERROR"
43701	//   "NO_RESULTS_ON_PAGE"
43702	//   "PARTIAL_SUCCESS"
43703	//   "REQUIRED_TOS_AGREEMENT"
43704	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
43705	//   "RESOURCE_NOT_DELETED"
43706	//   "SCHEMA_VALIDATION_IGNORED"
43707	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
43708	//   "UNDECLARED_PROPERTIES"
43709	//   "UNREACHABLE"
43710	Code string `json:"code,omitempty"`
43711
43712	// Data: [Output Only] Metadata about this warning in key: value format.
43713	// For example:
43714	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
43715	Data []*TargetHttpsProxyListWarningData `json:"data,omitempty"`
43716
43717	// Message: [Output Only] A human-readable description of the warning
43718	// code.
43719	Message string `json:"message,omitempty"`
43720
43721	// ForceSendFields is a list of field names (e.g. "Code") to
43722	// unconditionally include in API requests. By default, fields with
43723	// empty values are omitted from API requests. However, any non-pointer,
43724	// non-interface field appearing in ForceSendFields will be sent to the
43725	// server regardless of whether the field is empty or not. This may be
43726	// used to include empty fields in Patch requests.
43727	ForceSendFields []string `json:"-"`
43728
43729	// NullFields is a list of field names (e.g. "Code") to include in API
43730	// requests with the JSON null value. By default, fields with empty
43731	// values are omitted from API requests. However, any field with an
43732	// empty value appearing in NullFields will be sent to the server as
43733	// null. It is an error if a field in this list has a non-empty value.
43734	// This may be used to include null fields in Patch requests.
43735	NullFields []string `json:"-"`
43736}
43737
43738func (s *TargetHttpsProxyListWarning) MarshalJSON() ([]byte, error) {
43739	type NoMethod TargetHttpsProxyListWarning
43740	raw := NoMethod(*s)
43741	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43742}
43743
43744type TargetHttpsProxyListWarningData struct {
43745	// Key: [Output Only] A key that provides more detail on the warning
43746	// being returned. For example, for warnings where there are no results
43747	// in a list request for a particular zone, this key might be scope and
43748	// the key value might be the zone name. Other examples might be a key
43749	// indicating a deprecated resource and a suggested replacement, or a
43750	// warning about invalid network settings (for example, if an instance
43751	// attempts to perform IP forwarding but is not enabled for IP
43752	// forwarding).
43753	Key string `json:"key,omitempty"`
43754
43755	// Value: [Output Only] A warning data value corresponding to the key.
43756	Value string `json:"value,omitempty"`
43757
43758	// ForceSendFields is a list of field names (e.g. "Key") to
43759	// unconditionally include in API requests. By default, fields with
43760	// empty values are omitted from API requests. However, any non-pointer,
43761	// non-interface field appearing in ForceSendFields will be sent to the
43762	// server regardless of whether the field is empty or not. This may be
43763	// used to include empty fields in Patch requests.
43764	ForceSendFields []string `json:"-"`
43765
43766	// NullFields is a list of field names (e.g. "Key") to include in API
43767	// requests with the JSON null value. By default, fields with empty
43768	// values are omitted from API requests. However, any field with an
43769	// empty value appearing in NullFields will be sent to the server as
43770	// null. It is an error if a field in this list has a non-empty value.
43771	// This may be used to include null fields in Patch requests.
43772	NullFields []string `json:"-"`
43773}
43774
43775func (s *TargetHttpsProxyListWarningData) MarshalJSON() ([]byte, error) {
43776	type NoMethod TargetHttpsProxyListWarningData
43777	raw := NoMethod(*s)
43778	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43779}
43780
43781// TargetInstance: Represents a Target Instance resource.
43782//
43783// You can use a target instance to handle traffic for one or more
43784// forwarding rules, which is ideal for forwarding protocol traffic that
43785// is managed by a single source. For example, ESP, AH, TCP, or UDP. For
43786// more information, read Target instances. (== resource_for
43787// {$api_version}.targetInstances ==)
43788type TargetInstance struct {
43789	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
43790	// format.
43791	CreationTimestamp string `json:"creationTimestamp,omitempty"`
43792
43793	// Description: An optional description of this resource. Provide this
43794	// property when you create the resource.
43795	Description string `json:"description,omitempty"`
43796
43797	// Id: [Output Only] The unique identifier for the resource. This
43798	// identifier is defined by the server.
43799	Id uint64 `json:"id,omitempty,string"`
43800
43801	// Instance: A URL to the virtual machine instance that handles traffic
43802	// for this target instance. When creating a target instance, you can
43803	// provide the fully-qualified URL or a valid partial URL to the desired
43804	// virtual machine. For example, the following are all valid URLs:
43805	// -
43806	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance
43807	//
43808	// - projects/project/zones/zone/instances/instance
43809	// - zones/zone/instances/instance
43810	Instance string `json:"instance,omitempty"`
43811
43812	// Kind: [Output Only] The type of the resource. Always
43813	// compute#targetInstance for target instances.
43814	Kind string `json:"kind,omitempty"`
43815
43816	// Name: Name of the resource. Provided by the client when the resource
43817	// is created. The name must be 1-63 characters long, and comply with
43818	// RFC1035. Specifically, the name must be 1-63 characters long and
43819	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
43820	// the first character must be a lowercase letter, and all following
43821	// characters must be a dash, lowercase letter, or digit, except the
43822	// last character, which cannot be a dash.
43823	Name string `json:"name,omitempty"`
43824
43825	// NatPolicy: NAT option controlling how IPs are NAT'ed to the instance.
43826	// Currently only NO_NAT (default value) is supported.
43827	//
43828	// Possible values:
43829	//   "NO_NAT"
43830	NatPolicy string `json:"natPolicy,omitempty"`
43831
43832	// Network: The URL of the network this target instance uses to forward
43833	// traffic. If not specified, the traffic will be forwarded to the
43834	// network that the default network interface belongs to.
43835	Network string `json:"network,omitempty"`
43836
43837	// SelfLink: [Output Only] Server-defined URL for the resource.
43838	SelfLink string `json:"selfLink,omitempty"`
43839
43840	// Zone: [Output Only] URL of the zone where the target instance
43841	// resides. You must specify this field as part of the HTTP request URL.
43842	// It is not settable as a field in the request body.
43843	Zone string `json:"zone,omitempty"`
43844
43845	// ServerResponse contains the HTTP response code and headers from the
43846	// server.
43847	googleapi.ServerResponse `json:"-"`
43848
43849	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
43850	// to unconditionally include in API requests. By default, fields with
43851	// empty values are omitted from API requests. However, any non-pointer,
43852	// non-interface field appearing in ForceSendFields will be sent to the
43853	// server regardless of whether the field is empty or not. This may be
43854	// used to include empty fields in Patch requests.
43855	ForceSendFields []string `json:"-"`
43856
43857	// NullFields is a list of field names (e.g. "CreationTimestamp") to
43858	// include in API requests with the JSON null value. By default, fields
43859	// with empty values are omitted from API requests. However, any field
43860	// with an empty value appearing in NullFields will be sent to the
43861	// server as null. It is an error if a field in this list has a
43862	// non-empty value. This may be used to include null fields in Patch
43863	// requests.
43864	NullFields []string `json:"-"`
43865}
43866
43867func (s *TargetInstance) MarshalJSON() ([]byte, error) {
43868	type NoMethod TargetInstance
43869	raw := NoMethod(*s)
43870	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43871}
43872
43873type TargetInstanceAggregatedList struct {
43874	// Id: [Output Only] Unique identifier for the resource; defined by the
43875	// server.
43876	Id string `json:"id,omitempty"`
43877
43878	// Items: A list of TargetInstance resources.
43879	Items map[string]TargetInstancesScopedList `json:"items,omitempty"`
43880
43881	// Kind: Type of resource.
43882	Kind string `json:"kind,omitempty"`
43883
43884	// NextPageToken: [Output Only] This token allows you to get the next
43885	// page of results for list requests. If the number of results is larger
43886	// than maxResults, use the nextPageToken as a value for the query
43887	// parameter pageToken in the next list request. Subsequent list
43888	// requests will have their own nextPageToken to continue paging through
43889	// the results.
43890	NextPageToken string `json:"nextPageToken,omitempty"`
43891
43892	// SelfLink: [Output Only] Server-defined URL for this resource.
43893	SelfLink string `json:"selfLink,omitempty"`
43894
43895	// Unreachables: [Output Only] Unreachable resources.
43896	Unreachables []string `json:"unreachables,omitempty"`
43897
43898	// Warning: [Output Only] Informational warning message.
43899	Warning *TargetInstanceAggregatedListWarning `json:"warning,omitempty"`
43900
43901	// ServerResponse contains the HTTP response code and headers from the
43902	// server.
43903	googleapi.ServerResponse `json:"-"`
43904
43905	// ForceSendFields is a list of field names (e.g. "Id") to
43906	// unconditionally include in API requests. By default, fields with
43907	// empty values are omitted from API requests. However, any non-pointer,
43908	// non-interface field appearing in ForceSendFields will be sent to the
43909	// server regardless of whether the field is empty or not. This may be
43910	// used to include empty fields in Patch requests.
43911	ForceSendFields []string `json:"-"`
43912
43913	// NullFields is a list of field names (e.g. "Id") to include in API
43914	// requests with the JSON null value. By default, fields with empty
43915	// values are omitted from API requests. However, any field with an
43916	// empty value appearing in NullFields will be sent to the server as
43917	// null. It is an error if a field in this list has a non-empty value.
43918	// This may be used to include null fields in Patch requests.
43919	NullFields []string `json:"-"`
43920}
43921
43922func (s *TargetInstanceAggregatedList) MarshalJSON() ([]byte, error) {
43923	type NoMethod TargetInstanceAggregatedList
43924	raw := NoMethod(*s)
43925	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43926}
43927
43928// TargetInstanceAggregatedListWarning: [Output Only] Informational
43929// warning message.
43930type TargetInstanceAggregatedListWarning struct {
43931	// Code: [Output Only] A warning code, if applicable. For example,
43932	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
43933	// the response.
43934	//
43935	// Possible values:
43936	//   "CLEANUP_FAILED"
43937	//   "DEPRECATED_RESOURCE_USED"
43938	//   "DEPRECATED_TYPE_USED"
43939	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
43940	//   "EXPERIMENTAL_TYPE_USED"
43941	//   "EXTERNAL_API_WARNING"
43942	//   "FIELD_VALUE_OVERRIDEN"
43943	//   "INJECTED_KERNELS_DEPRECATED"
43944	//   "LARGE_DEPLOYMENT_WARNING"
43945	//   "MISSING_TYPE_DEPENDENCY"
43946	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
43947	//   "NEXT_HOP_CANNOT_IP_FORWARD"
43948	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
43949	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
43950	//   "NEXT_HOP_NOT_RUNNING"
43951	//   "NOT_CRITICAL_ERROR"
43952	//   "NO_RESULTS_ON_PAGE"
43953	//   "PARTIAL_SUCCESS"
43954	//   "REQUIRED_TOS_AGREEMENT"
43955	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
43956	//   "RESOURCE_NOT_DELETED"
43957	//   "SCHEMA_VALIDATION_IGNORED"
43958	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
43959	//   "UNDECLARED_PROPERTIES"
43960	//   "UNREACHABLE"
43961	Code string `json:"code,omitempty"`
43962
43963	// Data: [Output Only] Metadata about this warning in key: value format.
43964	// For example:
43965	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
43966	Data []*TargetInstanceAggregatedListWarningData `json:"data,omitempty"`
43967
43968	// Message: [Output Only] A human-readable description of the warning
43969	// code.
43970	Message string `json:"message,omitempty"`
43971
43972	// ForceSendFields is a list of field names (e.g. "Code") to
43973	// unconditionally include in API requests. By default, fields with
43974	// empty values are omitted from API requests. However, any non-pointer,
43975	// non-interface field appearing in ForceSendFields will be sent to the
43976	// server regardless of whether the field is empty or not. This may be
43977	// used to include empty fields in Patch requests.
43978	ForceSendFields []string `json:"-"`
43979
43980	// NullFields is a list of field names (e.g. "Code") to include in API
43981	// requests with the JSON null value. By default, fields with empty
43982	// values are omitted from API requests. However, any field with an
43983	// empty value appearing in NullFields will be sent to the server as
43984	// null. It is an error if a field in this list has a non-empty value.
43985	// This may be used to include null fields in Patch requests.
43986	NullFields []string `json:"-"`
43987}
43988
43989func (s *TargetInstanceAggregatedListWarning) MarshalJSON() ([]byte, error) {
43990	type NoMethod TargetInstanceAggregatedListWarning
43991	raw := NoMethod(*s)
43992	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43993}
43994
43995type TargetInstanceAggregatedListWarningData struct {
43996	// Key: [Output Only] A key that provides more detail on the warning
43997	// being returned. For example, for warnings where there are no results
43998	// in a list request for a particular zone, this key might be scope and
43999	// the key value might be the zone name. Other examples might be a key
44000	// indicating a deprecated resource and a suggested replacement, or a
44001	// warning about invalid network settings (for example, if an instance
44002	// attempts to perform IP forwarding but is not enabled for IP
44003	// forwarding).
44004	Key string `json:"key,omitempty"`
44005
44006	// Value: [Output Only] A warning data value corresponding to the key.
44007	Value string `json:"value,omitempty"`
44008
44009	// ForceSendFields is a list of field names (e.g. "Key") to
44010	// unconditionally include in API requests. By default, fields with
44011	// empty values are omitted from API requests. However, any non-pointer,
44012	// non-interface field appearing in ForceSendFields will be sent to the
44013	// server regardless of whether the field is empty or not. This may be
44014	// used to include empty fields in Patch requests.
44015	ForceSendFields []string `json:"-"`
44016
44017	// NullFields is a list of field names (e.g. "Key") to include in API
44018	// requests with the JSON null value. By default, fields with empty
44019	// values are omitted from API requests. However, any field with an
44020	// empty value appearing in NullFields will be sent to the server as
44021	// null. It is an error if a field in this list has a non-empty value.
44022	// This may be used to include null fields in Patch requests.
44023	NullFields []string `json:"-"`
44024}
44025
44026func (s *TargetInstanceAggregatedListWarningData) MarshalJSON() ([]byte, error) {
44027	type NoMethod TargetInstanceAggregatedListWarningData
44028	raw := NoMethod(*s)
44029	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44030}
44031
44032// TargetInstanceList: Contains a list of TargetInstance resources.
44033type TargetInstanceList struct {
44034	// Id: [Output Only] Unique identifier for the resource; defined by the
44035	// server.
44036	Id string `json:"id,omitempty"`
44037
44038	// Items: A list of TargetInstance resources.
44039	Items []*TargetInstance `json:"items,omitempty"`
44040
44041	// Kind: Type of resource.
44042	Kind string `json:"kind,omitempty"`
44043
44044	// NextPageToken: [Output Only] This token allows you to get the next
44045	// page of results for list requests. If the number of results is larger
44046	// than maxResults, use the nextPageToken as a value for the query
44047	// parameter pageToken in the next list request. Subsequent list
44048	// requests will have their own nextPageToken to continue paging through
44049	// the results.
44050	NextPageToken string `json:"nextPageToken,omitempty"`
44051
44052	// SelfLink: [Output Only] Server-defined URL for this resource.
44053	SelfLink string `json:"selfLink,omitempty"`
44054
44055	// Warning: [Output Only] Informational warning message.
44056	Warning *TargetInstanceListWarning `json:"warning,omitempty"`
44057
44058	// ServerResponse contains the HTTP response code and headers from the
44059	// server.
44060	googleapi.ServerResponse `json:"-"`
44061
44062	// ForceSendFields is a list of field names (e.g. "Id") to
44063	// unconditionally include in API requests. By default, fields with
44064	// empty values are omitted from API requests. However, any non-pointer,
44065	// non-interface field appearing in ForceSendFields will be sent to the
44066	// server regardless of whether the field is empty or not. This may be
44067	// used to include empty fields in Patch requests.
44068	ForceSendFields []string `json:"-"`
44069
44070	// NullFields is a list of field names (e.g. "Id") to include in API
44071	// requests with the JSON null value. By default, fields with empty
44072	// values are omitted from API requests. However, any field with an
44073	// empty value appearing in NullFields will be sent to the server as
44074	// null. It is an error if a field in this list has a non-empty value.
44075	// This may be used to include null fields in Patch requests.
44076	NullFields []string `json:"-"`
44077}
44078
44079func (s *TargetInstanceList) MarshalJSON() ([]byte, error) {
44080	type NoMethod TargetInstanceList
44081	raw := NoMethod(*s)
44082	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44083}
44084
44085// TargetInstanceListWarning: [Output Only] Informational warning
44086// message.
44087type TargetInstanceListWarning struct {
44088	// Code: [Output Only] A warning code, if applicable. For example,
44089	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
44090	// the response.
44091	//
44092	// Possible values:
44093	//   "CLEANUP_FAILED"
44094	//   "DEPRECATED_RESOURCE_USED"
44095	//   "DEPRECATED_TYPE_USED"
44096	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
44097	//   "EXPERIMENTAL_TYPE_USED"
44098	//   "EXTERNAL_API_WARNING"
44099	//   "FIELD_VALUE_OVERRIDEN"
44100	//   "INJECTED_KERNELS_DEPRECATED"
44101	//   "LARGE_DEPLOYMENT_WARNING"
44102	//   "MISSING_TYPE_DEPENDENCY"
44103	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
44104	//   "NEXT_HOP_CANNOT_IP_FORWARD"
44105	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
44106	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
44107	//   "NEXT_HOP_NOT_RUNNING"
44108	//   "NOT_CRITICAL_ERROR"
44109	//   "NO_RESULTS_ON_PAGE"
44110	//   "PARTIAL_SUCCESS"
44111	//   "REQUIRED_TOS_AGREEMENT"
44112	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
44113	//   "RESOURCE_NOT_DELETED"
44114	//   "SCHEMA_VALIDATION_IGNORED"
44115	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
44116	//   "UNDECLARED_PROPERTIES"
44117	//   "UNREACHABLE"
44118	Code string `json:"code,omitempty"`
44119
44120	// Data: [Output Only] Metadata about this warning in key: value format.
44121	// For example:
44122	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
44123	Data []*TargetInstanceListWarningData `json:"data,omitempty"`
44124
44125	// Message: [Output Only] A human-readable description of the warning
44126	// code.
44127	Message string `json:"message,omitempty"`
44128
44129	// ForceSendFields is a list of field names (e.g. "Code") to
44130	// unconditionally include in API requests. By default, fields with
44131	// empty values are omitted from API requests. However, any non-pointer,
44132	// non-interface field appearing in ForceSendFields will be sent to the
44133	// server regardless of whether the field is empty or not. This may be
44134	// used to include empty fields in Patch requests.
44135	ForceSendFields []string `json:"-"`
44136
44137	// NullFields is a list of field names (e.g. "Code") to include in API
44138	// requests with the JSON null value. By default, fields with empty
44139	// values are omitted from API requests. However, any field with an
44140	// empty value appearing in NullFields will be sent to the server as
44141	// null. It is an error if a field in this list has a non-empty value.
44142	// This may be used to include null fields in Patch requests.
44143	NullFields []string `json:"-"`
44144}
44145
44146func (s *TargetInstanceListWarning) MarshalJSON() ([]byte, error) {
44147	type NoMethod TargetInstanceListWarning
44148	raw := NoMethod(*s)
44149	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44150}
44151
44152type TargetInstanceListWarningData struct {
44153	// Key: [Output Only] A key that provides more detail on the warning
44154	// being returned. For example, for warnings where there are no results
44155	// in a list request for a particular zone, this key might be scope and
44156	// the key value might be the zone name. Other examples might be a key
44157	// indicating a deprecated resource and a suggested replacement, or a
44158	// warning about invalid network settings (for example, if an instance
44159	// attempts to perform IP forwarding but is not enabled for IP
44160	// forwarding).
44161	Key string `json:"key,omitempty"`
44162
44163	// Value: [Output Only] A warning data value corresponding to the key.
44164	Value string `json:"value,omitempty"`
44165
44166	// ForceSendFields is a list of field names (e.g. "Key") to
44167	// unconditionally include in API requests. By default, fields with
44168	// empty values are omitted from API requests. However, any non-pointer,
44169	// non-interface field appearing in ForceSendFields will be sent to the
44170	// server regardless of whether the field is empty or not. This may be
44171	// used to include empty fields in Patch requests.
44172	ForceSendFields []string `json:"-"`
44173
44174	// NullFields is a list of field names (e.g. "Key") to include in API
44175	// requests with the JSON null value. By default, fields with empty
44176	// values are omitted from API requests. However, any field with an
44177	// empty value appearing in NullFields will be sent to the server as
44178	// null. It is an error if a field in this list has a non-empty value.
44179	// This may be used to include null fields in Patch requests.
44180	NullFields []string `json:"-"`
44181}
44182
44183func (s *TargetInstanceListWarningData) MarshalJSON() ([]byte, error) {
44184	type NoMethod TargetInstanceListWarningData
44185	raw := NoMethod(*s)
44186	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44187}
44188
44189type TargetInstancesScopedList struct {
44190	// TargetInstances: A list of target instances contained in this scope.
44191	TargetInstances []*TargetInstance `json:"targetInstances,omitempty"`
44192
44193	// Warning: Informational warning which replaces the list of addresses
44194	// when the list is empty.
44195	Warning *TargetInstancesScopedListWarning `json:"warning,omitempty"`
44196
44197	// ForceSendFields is a list of field names (e.g. "TargetInstances") to
44198	// unconditionally include in API requests. By default, fields with
44199	// empty values are omitted from API requests. However, any non-pointer,
44200	// non-interface field appearing in ForceSendFields will be sent to the
44201	// server regardless of whether the field is empty or not. This may be
44202	// used to include empty fields in Patch requests.
44203	ForceSendFields []string `json:"-"`
44204
44205	// NullFields is a list of field names (e.g. "TargetInstances") to
44206	// include in API requests with the JSON null value. By default, fields
44207	// with empty values are omitted from API requests. However, any field
44208	// with an empty value appearing in NullFields will be sent to the
44209	// server as null. It is an error if a field in this list has a
44210	// non-empty value. This may be used to include null fields in Patch
44211	// requests.
44212	NullFields []string `json:"-"`
44213}
44214
44215func (s *TargetInstancesScopedList) MarshalJSON() ([]byte, error) {
44216	type NoMethod TargetInstancesScopedList
44217	raw := NoMethod(*s)
44218	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44219}
44220
44221// TargetInstancesScopedListWarning: Informational warning which
44222// replaces the list of addresses when the list is empty.
44223type TargetInstancesScopedListWarning struct {
44224	// Code: [Output Only] A warning code, if applicable. For example,
44225	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
44226	// the response.
44227	//
44228	// Possible values:
44229	//   "CLEANUP_FAILED"
44230	//   "DEPRECATED_RESOURCE_USED"
44231	//   "DEPRECATED_TYPE_USED"
44232	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
44233	//   "EXPERIMENTAL_TYPE_USED"
44234	//   "EXTERNAL_API_WARNING"
44235	//   "FIELD_VALUE_OVERRIDEN"
44236	//   "INJECTED_KERNELS_DEPRECATED"
44237	//   "LARGE_DEPLOYMENT_WARNING"
44238	//   "MISSING_TYPE_DEPENDENCY"
44239	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
44240	//   "NEXT_HOP_CANNOT_IP_FORWARD"
44241	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
44242	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
44243	//   "NEXT_HOP_NOT_RUNNING"
44244	//   "NOT_CRITICAL_ERROR"
44245	//   "NO_RESULTS_ON_PAGE"
44246	//   "PARTIAL_SUCCESS"
44247	//   "REQUIRED_TOS_AGREEMENT"
44248	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
44249	//   "RESOURCE_NOT_DELETED"
44250	//   "SCHEMA_VALIDATION_IGNORED"
44251	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
44252	//   "UNDECLARED_PROPERTIES"
44253	//   "UNREACHABLE"
44254	Code string `json:"code,omitempty"`
44255
44256	// Data: [Output Only] Metadata about this warning in key: value format.
44257	// For example:
44258	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
44259	Data []*TargetInstancesScopedListWarningData `json:"data,omitempty"`
44260
44261	// Message: [Output Only] A human-readable description of the warning
44262	// code.
44263	Message string `json:"message,omitempty"`
44264
44265	// ForceSendFields is a list of field names (e.g. "Code") to
44266	// unconditionally include in API requests. By default, fields with
44267	// empty values are omitted from API requests. However, any non-pointer,
44268	// non-interface field appearing in ForceSendFields will be sent to the
44269	// server regardless of whether the field is empty or not. This may be
44270	// used to include empty fields in Patch requests.
44271	ForceSendFields []string `json:"-"`
44272
44273	// NullFields is a list of field names (e.g. "Code") to include in API
44274	// requests with the JSON null value. By default, fields with empty
44275	// values are omitted from API requests. However, any field with an
44276	// empty value appearing in NullFields will be sent to the server as
44277	// null. It is an error if a field in this list has a non-empty value.
44278	// This may be used to include null fields in Patch requests.
44279	NullFields []string `json:"-"`
44280}
44281
44282func (s *TargetInstancesScopedListWarning) MarshalJSON() ([]byte, error) {
44283	type NoMethod TargetInstancesScopedListWarning
44284	raw := NoMethod(*s)
44285	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44286}
44287
44288type TargetInstancesScopedListWarningData struct {
44289	// Key: [Output Only] A key that provides more detail on the warning
44290	// being returned. For example, for warnings where there are no results
44291	// in a list request for a particular zone, this key might be scope and
44292	// the key value might be the zone name. Other examples might be a key
44293	// indicating a deprecated resource and a suggested replacement, or a
44294	// warning about invalid network settings (for example, if an instance
44295	// attempts to perform IP forwarding but is not enabled for IP
44296	// forwarding).
44297	Key string `json:"key,omitempty"`
44298
44299	// Value: [Output Only] A warning data value corresponding to the key.
44300	Value string `json:"value,omitempty"`
44301
44302	// ForceSendFields is a list of field names (e.g. "Key") to
44303	// unconditionally include in API requests. By default, fields with
44304	// empty values are omitted from API requests. However, any non-pointer,
44305	// non-interface field appearing in ForceSendFields will be sent to the
44306	// server regardless of whether the field is empty or not. This may be
44307	// used to include empty fields in Patch requests.
44308	ForceSendFields []string `json:"-"`
44309
44310	// NullFields is a list of field names (e.g. "Key") to include in API
44311	// requests with the JSON null value. By default, fields with empty
44312	// values are omitted from API requests. However, any field with an
44313	// empty value appearing in NullFields will be sent to the server as
44314	// null. It is an error if a field in this list has a non-empty value.
44315	// This may be used to include null fields in Patch requests.
44316	NullFields []string `json:"-"`
44317}
44318
44319func (s *TargetInstancesScopedListWarningData) MarshalJSON() ([]byte, error) {
44320	type NoMethod TargetInstancesScopedListWarningData
44321	raw := NoMethod(*s)
44322	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44323}
44324
44325// TargetPool: Represents a Target Pool resource.
44326//
44327// Target pools are used for network TCP/UDP load balancing. A target
44328// pool references member instances, an associated legacy
44329// HttpHealthCheck resource, and, optionally, a backup target pool. For
44330// more information, read Using target pools. (== resource_for
44331// {$api_version}.targetPools ==)
44332type TargetPool struct {
44333	// BackupPool: The server-defined URL for the resource. This field is
44334	// applicable only when the containing target pool is serving a
44335	// forwarding rule as the primary pool, and its failoverRatio field is
44336	// properly set to a value between [0, 1].
44337	//
44338	// backupPool and failoverRatio together define the fallback behavior of
44339	// the primary target pool: if the ratio of the healthy instances in the
44340	// primary pool is at or below failoverRatio, traffic arriving at the
44341	// load-balanced IP will be directed to the backup pool.
44342	//
44343	// In case where failoverRatio and backupPool are not set, or all the
44344	// instances in the backup pool are unhealthy, the traffic will be
44345	// directed back to the primary pool in the "force" mode, where traffic
44346	// will be spread to the healthy instances with the best effort, or to
44347	// all instances when no instance is healthy.
44348	BackupPool string `json:"backupPool,omitempty"`
44349
44350	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
44351	// format.
44352	CreationTimestamp string `json:"creationTimestamp,omitempty"`
44353
44354	// Description: An optional description of this resource. Provide this
44355	// property when you create the resource.
44356	Description string `json:"description,omitempty"`
44357
44358	// FailoverRatio: This field is applicable only when the containing
44359	// target pool is serving a forwarding rule as the primary pool (i.e.,
44360	// not as a backup pool to some other target pool). The value of the
44361	// field must be in [0, 1].
44362	//
44363	// If set, backupPool must also be set. They together define the
44364	// fallback behavior of the primary target pool: if the ratio of the
44365	// healthy instances in the primary pool is at or below this number,
44366	// traffic arriving at the load-balanced IP will be directed to the
44367	// backup pool.
44368	//
44369	// In case where failoverRatio is not set or all the instances in the
44370	// backup pool are unhealthy, the traffic will be directed back to the
44371	// primary pool in the "force" mode, where traffic will be spread to the
44372	// healthy instances with the best effort, or to all instances when no
44373	// instance is healthy.
44374	FailoverRatio float64 `json:"failoverRatio,omitempty"`
44375
44376	// HealthChecks: The URL of the HttpHealthCheck resource. A member
44377	// instance in this pool is considered healthy if and only if the health
44378	// checks pass. Only legacy HttpHealthChecks are supported. Only one
44379	// health check may be specified.
44380	HealthChecks []string `json:"healthChecks,omitempty"`
44381
44382	// Id: [Output Only] The unique identifier for the resource. This
44383	// identifier is defined by the server.
44384	Id uint64 `json:"id,omitempty,string"`
44385
44386	// Instances: A list of resource URLs to the virtual machine instances
44387	// serving this pool. They must live in zones contained in the same
44388	// region as this pool.
44389	Instances []string `json:"instances,omitempty"`
44390
44391	// Kind: [Output Only] Type of the resource. Always compute#targetPool
44392	// for target pools.
44393	Kind string `json:"kind,omitempty"`
44394
44395	// Name: Name of the resource. Provided by the client when the resource
44396	// is created. The name must be 1-63 characters long, and comply with
44397	// RFC1035. Specifically, the name must be 1-63 characters long and
44398	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
44399	// the first character must be a lowercase letter, and all following
44400	// characters must be a dash, lowercase letter, or digit, except the
44401	// last character, which cannot be a dash.
44402	Name string `json:"name,omitempty"`
44403
44404	// Region: [Output Only] URL of the region where the target pool
44405	// resides.
44406	Region string `json:"region,omitempty"`
44407
44408	// SelfLink: [Output Only] Server-defined URL for the resource.
44409	SelfLink string `json:"selfLink,omitempty"`
44410
44411	// SessionAffinity: Session affinity option, must be one of the
44412	// following values:
44413	// NONE: Connections from the same client IP may go to any instance in
44414	// the pool.
44415	// CLIENT_IP: Connections from the same client IP will go to the same
44416	// instance in the pool while that instance remains
44417	// healthy.
44418	// CLIENT_IP_PROTO: Connections from the same client IP with the same IP
44419	// protocol will go to the same instance in the pool while that instance
44420	// remains healthy.
44421	//
44422	// Possible values:
44423	//   "CLIENT_IP"
44424	//   "CLIENT_IP_PORT_PROTO"
44425	//   "CLIENT_IP_PROTO"
44426	//   "GENERATED_COOKIE"
44427	//   "HEADER_FIELD"
44428	//   "HTTP_COOKIE"
44429	//   "NONE"
44430	SessionAffinity string `json:"sessionAffinity,omitempty"`
44431
44432	// ServerResponse contains the HTTP response code and headers from the
44433	// server.
44434	googleapi.ServerResponse `json:"-"`
44435
44436	// ForceSendFields is a list of field names (e.g. "BackupPool") to
44437	// unconditionally include in API requests. By default, fields with
44438	// empty values are omitted from API requests. However, any non-pointer,
44439	// non-interface field appearing in ForceSendFields will be sent to the
44440	// server regardless of whether the field is empty or not. This may be
44441	// used to include empty fields in Patch requests.
44442	ForceSendFields []string `json:"-"`
44443
44444	// NullFields is a list of field names (e.g. "BackupPool") to include in
44445	// API requests with the JSON null value. By default, fields with empty
44446	// values are omitted from API requests. However, any field with an
44447	// empty value appearing in NullFields will be sent to the server as
44448	// null. It is an error if a field in this list has a non-empty value.
44449	// This may be used to include null fields in Patch requests.
44450	NullFields []string `json:"-"`
44451}
44452
44453func (s *TargetPool) MarshalJSON() ([]byte, error) {
44454	type NoMethod TargetPool
44455	raw := NoMethod(*s)
44456	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44457}
44458
44459func (s *TargetPool) UnmarshalJSON(data []byte) error {
44460	type NoMethod TargetPool
44461	var s1 struct {
44462		FailoverRatio gensupport.JSONFloat64 `json:"failoverRatio"`
44463		*NoMethod
44464	}
44465	s1.NoMethod = (*NoMethod)(s)
44466	if err := json.Unmarshal(data, &s1); err != nil {
44467		return err
44468	}
44469	s.FailoverRatio = float64(s1.FailoverRatio)
44470	return nil
44471}
44472
44473type TargetPoolAggregatedList struct {
44474	// Id: [Output Only] Unique identifier for the resource; defined by the
44475	// server.
44476	Id string `json:"id,omitempty"`
44477
44478	// Items: A list of TargetPool resources.
44479	Items map[string]TargetPoolsScopedList `json:"items,omitempty"`
44480
44481	// Kind: [Output Only] Type of resource. Always
44482	// compute#targetPoolAggregatedList for aggregated lists of target
44483	// pools.
44484	Kind string `json:"kind,omitempty"`
44485
44486	// NextPageToken: [Output Only] This token allows you to get the next
44487	// page of results for list requests. If the number of results is larger
44488	// than maxResults, use the nextPageToken as a value for the query
44489	// parameter pageToken in the next list request. Subsequent list
44490	// requests will have their own nextPageToken to continue paging through
44491	// the results.
44492	NextPageToken string `json:"nextPageToken,omitempty"`
44493
44494	// SelfLink: [Output Only] Server-defined URL for this resource.
44495	SelfLink string `json:"selfLink,omitempty"`
44496
44497	// Unreachables: [Output Only] Unreachable resources.
44498	Unreachables []string `json:"unreachables,omitempty"`
44499
44500	// Warning: [Output Only] Informational warning message.
44501	Warning *TargetPoolAggregatedListWarning `json:"warning,omitempty"`
44502
44503	// ServerResponse contains the HTTP response code and headers from the
44504	// server.
44505	googleapi.ServerResponse `json:"-"`
44506
44507	// ForceSendFields is a list of field names (e.g. "Id") to
44508	// unconditionally include in API requests. By default, fields with
44509	// empty values are omitted from API requests. However, any non-pointer,
44510	// non-interface field appearing in ForceSendFields will be sent to the
44511	// server regardless of whether the field is empty or not. This may be
44512	// used to include empty fields in Patch requests.
44513	ForceSendFields []string `json:"-"`
44514
44515	// NullFields is a list of field names (e.g. "Id") to include in API
44516	// requests with the JSON null value. By default, fields with empty
44517	// values are omitted from API requests. However, any field with an
44518	// empty value appearing in NullFields will be sent to the server as
44519	// null. It is an error if a field in this list has a non-empty value.
44520	// This may be used to include null fields in Patch requests.
44521	NullFields []string `json:"-"`
44522}
44523
44524func (s *TargetPoolAggregatedList) MarshalJSON() ([]byte, error) {
44525	type NoMethod TargetPoolAggregatedList
44526	raw := NoMethod(*s)
44527	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44528}
44529
44530// TargetPoolAggregatedListWarning: [Output Only] Informational warning
44531// message.
44532type TargetPoolAggregatedListWarning struct {
44533	// Code: [Output Only] A warning code, if applicable. For example,
44534	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
44535	// the response.
44536	//
44537	// Possible values:
44538	//   "CLEANUP_FAILED"
44539	//   "DEPRECATED_RESOURCE_USED"
44540	//   "DEPRECATED_TYPE_USED"
44541	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
44542	//   "EXPERIMENTAL_TYPE_USED"
44543	//   "EXTERNAL_API_WARNING"
44544	//   "FIELD_VALUE_OVERRIDEN"
44545	//   "INJECTED_KERNELS_DEPRECATED"
44546	//   "LARGE_DEPLOYMENT_WARNING"
44547	//   "MISSING_TYPE_DEPENDENCY"
44548	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
44549	//   "NEXT_HOP_CANNOT_IP_FORWARD"
44550	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
44551	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
44552	//   "NEXT_HOP_NOT_RUNNING"
44553	//   "NOT_CRITICAL_ERROR"
44554	//   "NO_RESULTS_ON_PAGE"
44555	//   "PARTIAL_SUCCESS"
44556	//   "REQUIRED_TOS_AGREEMENT"
44557	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
44558	//   "RESOURCE_NOT_DELETED"
44559	//   "SCHEMA_VALIDATION_IGNORED"
44560	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
44561	//   "UNDECLARED_PROPERTIES"
44562	//   "UNREACHABLE"
44563	Code string `json:"code,omitempty"`
44564
44565	// Data: [Output Only] Metadata about this warning in key: value format.
44566	// For example:
44567	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
44568	Data []*TargetPoolAggregatedListWarningData `json:"data,omitempty"`
44569
44570	// Message: [Output Only] A human-readable description of the warning
44571	// code.
44572	Message string `json:"message,omitempty"`
44573
44574	// ForceSendFields is a list of field names (e.g. "Code") to
44575	// unconditionally include in API requests. By default, fields with
44576	// empty values are omitted from API requests. However, any non-pointer,
44577	// non-interface field appearing in ForceSendFields will be sent to the
44578	// server regardless of whether the field is empty or not. This may be
44579	// used to include empty fields in Patch requests.
44580	ForceSendFields []string `json:"-"`
44581
44582	// NullFields is a list of field names (e.g. "Code") to include in API
44583	// requests with the JSON null value. By default, fields with empty
44584	// values are omitted from API requests. However, any field with an
44585	// empty value appearing in NullFields will be sent to the server as
44586	// null. It is an error if a field in this list has a non-empty value.
44587	// This may be used to include null fields in Patch requests.
44588	NullFields []string `json:"-"`
44589}
44590
44591func (s *TargetPoolAggregatedListWarning) MarshalJSON() ([]byte, error) {
44592	type NoMethod TargetPoolAggregatedListWarning
44593	raw := NoMethod(*s)
44594	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44595}
44596
44597type TargetPoolAggregatedListWarningData struct {
44598	// Key: [Output Only] A key that provides more detail on the warning
44599	// being returned. For example, for warnings where there are no results
44600	// in a list request for a particular zone, this key might be scope and
44601	// the key value might be the zone name. Other examples might be a key
44602	// indicating a deprecated resource and a suggested replacement, or a
44603	// warning about invalid network settings (for example, if an instance
44604	// attempts to perform IP forwarding but is not enabled for IP
44605	// forwarding).
44606	Key string `json:"key,omitempty"`
44607
44608	// Value: [Output Only] A warning data value corresponding to the key.
44609	Value string `json:"value,omitempty"`
44610
44611	// ForceSendFields is a list of field names (e.g. "Key") to
44612	// unconditionally include in API requests. By default, fields with
44613	// empty values are omitted from API requests. However, any non-pointer,
44614	// non-interface field appearing in ForceSendFields will be sent to the
44615	// server regardless of whether the field is empty or not. This may be
44616	// used to include empty fields in Patch requests.
44617	ForceSendFields []string `json:"-"`
44618
44619	// NullFields is a list of field names (e.g. "Key") to include in API
44620	// requests with the JSON null value. By default, fields with empty
44621	// values are omitted from API requests. However, any field with an
44622	// empty value appearing in NullFields will be sent to the server as
44623	// null. It is an error if a field in this list has a non-empty value.
44624	// This may be used to include null fields in Patch requests.
44625	NullFields []string `json:"-"`
44626}
44627
44628func (s *TargetPoolAggregatedListWarningData) MarshalJSON() ([]byte, error) {
44629	type NoMethod TargetPoolAggregatedListWarningData
44630	raw := NoMethod(*s)
44631	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44632}
44633
44634type TargetPoolInstanceHealth struct {
44635	HealthStatus []*HealthStatus `json:"healthStatus,omitempty"`
44636
44637	// Kind: [Output Only] Type of resource. Always
44638	// compute#targetPoolInstanceHealth when checking the health of an
44639	// instance.
44640	Kind string `json:"kind,omitempty"`
44641
44642	// ServerResponse contains the HTTP response code and headers from the
44643	// server.
44644	googleapi.ServerResponse `json:"-"`
44645
44646	// ForceSendFields is a list of field names (e.g. "HealthStatus") to
44647	// unconditionally include in API requests. By default, fields with
44648	// empty values are omitted from API requests. However, any non-pointer,
44649	// non-interface field appearing in ForceSendFields will be sent to the
44650	// server regardless of whether the field is empty or not. This may be
44651	// used to include empty fields in Patch requests.
44652	ForceSendFields []string `json:"-"`
44653
44654	// NullFields is a list of field names (e.g. "HealthStatus") to include
44655	// in API requests with the JSON null value. By default, fields with
44656	// empty values are omitted from API requests. However, any field with
44657	// an empty value appearing in NullFields will be sent to the server as
44658	// null. It is an error if a field in this list has a non-empty value.
44659	// This may be used to include null fields in Patch requests.
44660	NullFields []string `json:"-"`
44661}
44662
44663func (s *TargetPoolInstanceHealth) MarshalJSON() ([]byte, error) {
44664	type NoMethod TargetPoolInstanceHealth
44665	raw := NoMethod(*s)
44666	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44667}
44668
44669// TargetPoolList: Contains a list of TargetPool resources.
44670type TargetPoolList struct {
44671	// Id: [Output Only] Unique identifier for the resource; defined by the
44672	// server.
44673	Id string `json:"id,omitempty"`
44674
44675	// Items: A list of TargetPool resources.
44676	Items []*TargetPool `json:"items,omitempty"`
44677
44678	// Kind: [Output Only] Type of resource. Always compute#targetPoolList
44679	// for lists of target pools.
44680	Kind string `json:"kind,omitempty"`
44681
44682	// NextPageToken: [Output Only] This token allows you to get the next
44683	// page of results for list requests. If the number of results is larger
44684	// than maxResults, use the nextPageToken as a value for the query
44685	// parameter pageToken in the next list request. Subsequent list
44686	// requests will have their own nextPageToken to continue paging through
44687	// the results.
44688	NextPageToken string `json:"nextPageToken,omitempty"`
44689
44690	// SelfLink: [Output Only] Server-defined URL for this resource.
44691	SelfLink string `json:"selfLink,omitempty"`
44692
44693	// Warning: [Output Only] Informational warning message.
44694	Warning *TargetPoolListWarning `json:"warning,omitempty"`
44695
44696	// ServerResponse contains the HTTP response code and headers from the
44697	// server.
44698	googleapi.ServerResponse `json:"-"`
44699
44700	// ForceSendFields is a list of field names (e.g. "Id") to
44701	// unconditionally include in API requests. By default, fields with
44702	// empty values are omitted from API requests. However, any non-pointer,
44703	// non-interface field appearing in ForceSendFields will be sent to the
44704	// server regardless of whether the field is empty or not. This may be
44705	// used to include empty fields in Patch requests.
44706	ForceSendFields []string `json:"-"`
44707
44708	// NullFields is a list of field names (e.g. "Id") to include in API
44709	// requests with the JSON null value. By default, fields with empty
44710	// values are omitted from API requests. However, any field with an
44711	// empty value appearing in NullFields will be sent to the server as
44712	// null. It is an error if a field in this list has a non-empty value.
44713	// This may be used to include null fields in Patch requests.
44714	NullFields []string `json:"-"`
44715}
44716
44717func (s *TargetPoolList) MarshalJSON() ([]byte, error) {
44718	type NoMethod TargetPoolList
44719	raw := NoMethod(*s)
44720	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44721}
44722
44723// TargetPoolListWarning: [Output Only] Informational warning message.
44724type TargetPoolListWarning struct {
44725	// Code: [Output Only] A warning code, if applicable. For example,
44726	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
44727	// the response.
44728	//
44729	// Possible values:
44730	//   "CLEANUP_FAILED"
44731	//   "DEPRECATED_RESOURCE_USED"
44732	//   "DEPRECATED_TYPE_USED"
44733	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
44734	//   "EXPERIMENTAL_TYPE_USED"
44735	//   "EXTERNAL_API_WARNING"
44736	//   "FIELD_VALUE_OVERRIDEN"
44737	//   "INJECTED_KERNELS_DEPRECATED"
44738	//   "LARGE_DEPLOYMENT_WARNING"
44739	//   "MISSING_TYPE_DEPENDENCY"
44740	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
44741	//   "NEXT_HOP_CANNOT_IP_FORWARD"
44742	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
44743	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
44744	//   "NEXT_HOP_NOT_RUNNING"
44745	//   "NOT_CRITICAL_ERROR"
44746	//   "NO_RESULTS_ON_PAGE"
44747	//   "PARTIAL_SUCCESS"
44748	//   "REQUIRED_TOS_AGREEMENT"
44749	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
44750	//   "RESOURCE_NOT_DELETED"
44751	//   "SCHEMA_VALIDATION_IGNORED"
44752	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
44753	//   "UNDECLARED_PROPERTIES"
44754	//   "UNREACHABLE"
44755	Code string `json:"code,omitempty"`
44756
44757	// Data: [Output Only] Metadata about this warning in key: value format.
44758	// For example:
44759	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
44760	Data []*TargetPoolListWarningData `json:"data,omitempty"`
44761
44762	// Message: [Output Only] A human-readable description of the warning
44763	// code.
44764	Message string `json:"message,omitempty"`
44765
44766	// ForceSendFields is a list of field names (e.g. "Code") to
44767	// unconditionally include in API requests. By default, fields with
44768	// empty values are omitted from API requests. However, any non-pointer,
44769	// non-interface field appearing in ForceSendFields will be sent to the
44770	// server regardless of whether the field is empty or not. This may be
44771	// used to include empty fields in Patch requests.
44772	ForceSendFields []string `json:"-"`
44773
44774	// NullFields is a list of field names (e.g. "Code") to include in API
44775	// requests with the JSON null value. By default, fields with empty
44776	// values are omitted from API requests. However, any field with an
44777	// empty value appearing in NullFields will be sent to the server as
44778	// null. It is an error if a field in this list has a non-empty value.
44779	// This may be used to include null fields in Patch requests.
44780	NullFields []string `json:"-"`
44781}
44782
44783func (s *TargetPoolListWarning) MarshalJSON() ([]byte, error) {
44784	type NoMethod TargetPoolListWarning
44785	raw := NoMethod(*s)
44786	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44787}
44788
44789type TargetPoolListWarningData struct {
44790	// Key: [Output Only] A key that provides more detail on the warning
44791	// being returned. For example, for warnings where there are no results
44792	// in a list request for a particular zone, this key might be scope and
44793	// the key value might be the zone name. Other examples might be a key
44794	// indicating a deprecated resource and a suggested replacement, or a
44795	// warning about invalid network settings (for example, if an instance
44796	// attempts to perform IP forwarding but is not enabled for IP
44797	// forwarding).
44798	Key string `json:"key,omitempty"`
44799
44800	// Value: [Output Only] A warning data value corresponding to the key.
44801	Value string `json:"value,omitempty"`
44802
44803	// ForceSendFields is a list of field names (e.g. "Key") to
44804	// unconditionally include in API requests. By default, fields with
44805	// empty values are omitted from API requests. However, any non-pointer,
44806	// non-interface field appearing in ForceSendFields will be sent to the
44807	// server regardless of whether the field is empty or not. This may be
44808	// used to include empty fields in Patch requests.
44809	ForceSendFields []string `json:"-"`
44810
44811	// NullFields is a list of field names (e.g. "Key") to include in API
44812	// requests with the JSON null value. By default, fields with empty
44813	// values are omitted from API requests. However, any field with an
44814	// empty value appearing in NullFields will be sent to the server as
44815	// null. It is an error if a field in this list has a non-empty value.
44816	// This may be used to include null fields in Patch requests.
44817	NullFields []string `json:"-"`
44818}
44819
44820func (s *TargetPoolListWarningData) MarshalJSON() ([]byte, error) {
44821	type NoMethod TargetPoolListWarningData
44822	raw := NoMethod(*s)
44823	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44824}
44825
44826type TargetPoolsAddHealthCheckRequest struct {
44827	// HealthChecks: The HttpHealthCheck to add to the target pool.
44828	HealthChecks []*HealthCheckReference `json:"healthChecks,omitempty"`
44829
44830	// ForceSendFields is a list of field names (e.g. "HealthChecks") to
44831	// unconditionally include in API requests. By default, fields with
44832	// empty values are omitted from API requests. However, any non-pointer,
44833	// non-interface field appearing in ForceSendFields will be sent to the
44834	// server regardless of whether the field is empty or not. This may be
44835	// used to include empty fields in Patch requests.
44836	ForceSendFields []string `json:"-"`
44837
44838	// NullFields is a list of field names (e.g. "HealthChecks") to include
44839	// in API requests with the JSON null value. By default, fields with
44840	// empty values are omitted from API requests. However, any field with
44841	// an empty value appearing in NullFields will be sent to the server as
44842	// null. It is an error if a field in this list has a non-empty value.
44843	// This may be used to include null fields in Patch requests.
44844	NullFields []string `json:"-"`
44845}
44846
44847func (s *TargetPoolsAddHealthCheckRequest) MarshalJSON() ([]byte, error) {
44848	type NoMethod TargetPoolsAddHealthCheckRequest
44849	raw := NoMethod(*s)
44850	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44851}
44852
44853type TargetPoolsAddInstanceRequest struct {
44854	// Instances: A full or partial URL to an instance to add to this target
44855	// pool. This can be a full or partial URL. For example, the following
44856	// are valid URLs:
44857	// -
44858	// https://www.googleapis.com/compute/v1/projects/project-id/zones/zone/instances/instance-name
44859	//
44860	// - projects/project-id/zones/zone/instances/instance-name
44861	// - zones/zone/instances/instance-name
44862	Instances []*InstanceReference `json:"instances,omitempty"`
44863
44864	// ForceSendFields is a list of field names (e.g. "Instances") to
44865	// unconditionally include in API requests. By default, fields with
44866	// empty values are omitted from API requests. However, any non-pointer,
44867	// non-interface field appearing in ForceSendFields will be sent to the
44868	// server regardless of whether the field is empty or not. This may be
44869	// used to include empty fields in Patch requests.
44870	ForceSendFields []string `json:"-"`
44871
44872	// NullFields is a list of field names (e.g. "Instances") to include in
44873	// API requests with the JSON null value. By default, fields with empty
44874	// values are omitted from API requests. However, any field with an
44875	// empty value appearing in NullFields will be sent to the server as
44876	// null. It is an error if a field in this list has a non-empty value.
44877	// This may be used to include null fields in Patch requests.
44878	NullFields []string `json:"-"`
44879}
44880
44881func (s *TargetPoolsAddInstanceRequest) MarshalJSON() ([]byte, error) {
44882	type NoMethod TargetPoolsAddInstanceRequest
44883	raw := NoMethod(*s)
44884	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44885}
44886
44887type TargetPoolsRemoveHealthCheckRequest struct {
44888	// HealthChecks: Health check URL to be removed. This can be a full or
44889	// valid partial URL. For example, the following are valid URLs:
44890	// -
44891	// https://www.googleapis.com/compute/beta/projects/project/global/httpHealthChecks/health-check
44892	//
44893	// - projects/project/global/httpHealthChecks/health-check
44894	// - global/httpHealthChecks/health-check
44895	HealthChecks []*HealthCheckReference `json:"healthChecks,omitempty"`
44896
44897	// ForceSendFields is a list of field names (e.g. "HealthChecks") to
44898	// unconditionally include in API requests. By default, fields with
44899	// empty values are omitted from API requests. However, any non-pointer,
44900	// non-interface field appearing in ForceSendFields will be sent to the
44901	// server regardless of whether the field is empty or not. This may be
44902	// used to include empty fields in Patch requests.
44903	ForceSendFields []string `json:"-"`
44904
44905	// NullFields is a list of field names (e.g. "HealthChecks") to include
44906	// in API requests with the JSON null value. By default, fields with
44907	// empty values are omitted from API requests. However, any field with
44908	// an empty value appearing in NullFields will be sent to the server as
44909	// null. It is an error if a field in this list has a non-empty value.
44910	// This may be used to include null fields in Patch requests.
44911	NullFields []string `json:"-"`
44912}
44913
44914func (s *TargetPoolsRemoveHealthCheckRequest) MarshalJSON() ([]byte, error) {
44915	type NoMethod TargetPoolsRemoveHealthCheckRequest
44916	raw := NoMethod(*s)
44917	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44918}
44919
44920type TargetPoolsRemoveInstanceRequest struct {
44921	// Instances: URLs of the instances to be removed from target pool.
44922	Instances []*InstanceReference `json:"instances,omitempty"`
44923
44924	// ForceSendFields is a list of field names (e.g. "Instances") to
44925	// unconditionally include in API requests. By default, fields with
44926	// empty values are omitted from API requests. However, any non-pointer,
44927	// non-interface field appearing in ForceSendFields will be sent to the
44928	// server regardless of whether the field is empty or not. This may be
44929	// used to include empty fields in Patch requests.
44930	ForceSendFields []string `json:"-"`
44931
44932	// NullFields is a list of field names (e.g. "Instances") to include in
44933	// API requests with the JSON null value. By default, fields with empty
44934	// values are omitted from API requests. However, any field with an
44935	// empty value appearing in NullFields will be sent to the server as
44936	// null. It is an error if a field in this list has a non-empty value.
44937	// This may be used to include null fields in Patch requests.
44938	NullFields []string `json:"-"`
44939}
44940
44941func (s *TargetPoolsRemoveInstanceRequest) MarshalJSON() ([]byte, error) {
44942	type NoMethod TargetPoolsRemoveInstanceRequest
44943	raw := NoMethod(*s)
44944	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44945}
44946
44947type TargetPoolsScopedList struct {
44948	// TargetPools: A list of target pools contained in this scope.
44949	TargetPools []*TargetPool `json:"targetPools,omitempty"`
44950
44951	// Warning: Informational warning which replaces the list of addresses
44952	// when the list is empty.
44953	Warning *TargetPoolsScopedListWarning `json:"warning,omitempty"`
44954
44955	// ForceSendFields is a list of field names (e.g. "TargetPools") to
44956	// unconditionally include in API requests. By default, fields with
44957	// empty values are omitted from API requests. However, any non-pointer,
44958	// non-interface field appearing in ForceSendFields will be sent to the
44959	// server regardless of whether the field is empty or not. This may be
44960	// used to include empty fields in Patch requests.
44961	ForceSendFields []string `json:"-"`
44962
44963	// NullFields is a list of field names (e.g. "TargetPools") to include
44964	// in API requests with the JSON null value. By default, fields with
44965	// empty values are omitted from API requests. However, any field with
44966	// an empty value appearing in NullFields will be sent to the server as
44967	// null. It is an error if a field in this list has a non-empty value.
44968	// This may be used to include null fields in Patch requests.
44969	NullFields []string `json:"-"`
44970}
44971
44972func (s *TargetPoolsScopedList) MarshalJSON() ([]byte, error) {
44973	type NoMethod TargetPoolsScopedList
44974	raw := NoMethod(*s)
44975	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44976}
44977
44978// TargetPoolsScopedListWarning: Informational warning which replaces
44979// the list of addresses when the list is empty.
44980type TargetPoolsScopedListWarning struct {
44981	// Code: [Output Only] A warning code, if applicable. For example,
44982	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
44983	// the response.
44984	//
44985	// Possible values:
44986	//   "CLEANUP_FAILED"
44987	//   "DEPRECATED_RESOURCE_USED"
44988	//   "DEPRECATED_TYPE_USED"
44989	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
44990	//   "EXPERIMENTAL_TYPE_USED"
44991	//   "EXTERNAL_API_WARNING"
44992	//   "FIELD_VALUE_OVERRIDEN"
44993	//   "INJECTED_KERNELS_DEPRECATED"
44994	//   "LARGE_DEPLOYMENT_WARNING"
44995	//   "MISSING_TYPE_DEPENDENCY"
44996	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
44997	//   "NEXT_HOP_CANNOT_IP_FORWARD"
44998	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
44999	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
45000	//   "NEXT_HOP_NOT_RUNNING"
45001	//   "NOT_CRITICAL_ERROR"
45002	//   "NO_RESULTS_ON_PAGE"
45003	//   "PARTIAL_SUCCESS"
45004	//   "REQUIRED_TOS_AGREEMENT"
45005	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
45006	//   "RESOURCE_NOT_DELETED"
45007	//   "SCHEMA_VALIDATION_IGNORED"
45008	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
45009	//   "UNDECLARED_PROPERTIES"
45010	//   "UNREACHABLE"
45011	Code string `json:"code,omitempty"`
45012
45013	// Data: [Output Only] Metadata about this warning in key: value format.
45014	// For example:
45015	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
45016	Data []*TargetPoolsScopedListWarningData `json:"data,omitempty"`
45017
45018	// Message: [Output Only] A human-readable description of the warning
45019	// code.
45020	Message string `json:"message,omitempty"`
45021
45022	// ForceSendFields is a list of field names (e.g. "Code") to
45023	// unconditionally include in API requests. By default, fields with
45024	// empty values are omitted from API requests. However, any non-pointer,
45025	// non-interface field appearing in ForceSendFields will be sent to the
45026	// server regardless of whether the field is empty or not. This may be
45027	// used to include empty fields in Patch requests.
45028	ForceSendFields []string `json:"-"`
45029
45030	// NullFields is a list of field names (e.g. "Code") to include in API
45031	// requests with the JSON null value. By default, fields with empty
45032	// values are omitted from API requests. However, any field with an
45033	// empty value appearing in NullFields will be sent to the server as
45034	// null. It is an error if a field in this list has a non-empty value.
45035	// This may be used to include null fields in Patch requests.
45036	NullFields []string `json:"-"`
45037}
45038
45039func (s *TargetPoolsScopedListWarning) MarshalJSON() ([]byte, error) {
45040	type NoMethod TargetPoolsScopedListWarning
45041	raw := NoMethod(*s)
45042	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45043}
45044
45045type TargetPoolsScopedListWarningData struct {
45046	// Key: [Output Only] A key that provides more detail on the warning
45047	// being returned. For example, for warnings where there are no results
45048	// in a list request for a particular zone, this key might be scope and
45049	// the key value might be the zone name. Other examples might be a key
45050	// indicating a deprecated resource and a suggested replacement, or a
45051	// warning about invalid network settings (for example, if an instance
45052	// attempts to perform IP forwarding but is not enabled for IP
45053	// forwarding).
45054	Key string `json:"key,omitempty"`
45055
45056	// Value: [Output Only] A warning data value corresponding to the key.
45057	Value string `json:"value,omitempty"`
45058
45059	// ForceSendFields is a list of field names (e.g. "Key") to
45060	// unconditionally include in API requests. By default, fields with
45061	// empty values are omitted from API requests. However, any non-pointer,
45062	// non-interface field appearing in ForceSendFields will be sent to the
45063	// server regardless of whether the field is empty or not. This may be
45064	// used to include empty fields in Patch requests.
45065	ForceSendFields []string `json:"-"`
45066
45067	// NullFields is a list of field names (e.g. "Key") to include in API
45068	// requests with the JSON null value. By default, fields with empty
45069	// values are omitted from API requests. However, any field with an
45070	// empty value appearing in NullFields will be sent to the server as
45071	// null. It is an error if a field in this list has a non-empty value.
45072	// This may be used to include null fields in Patch requests.
45073	NullFields []string `json:"-"`
45074}
45075
45076func (s *TargetPoolsScopedListWarningData) MarshalJSON() ([]byte, error) {
45077	type NoMethod TargetPoolsScopedListWarningData
45078	raw := NoMethod(*s)
45079	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45080}
45081
45082type TargetReference struct {
45083	Target string `json:"target,omitempty"`
45084
45085	// ForceSendFields is a list of field names (e.g. "Target") to
45086	// unconditionally include in API requests. By default, fields with
45087	// empty values are omitted from API requests. However, any non-pointer,
45088	// non-interface field appearing in ForceSendFields will be sent to the
45089	// server regardless of whether the field is empty or not. This may be
45090	// used to include empty fields in Patch requests.
45091	ForceSendFields []string `json:"-"`
45092
45093	// NullFields is a list of field names (e.g. "Target") to include in API
45094	// requests with the JSON null value. By default, fields with empty
45095	// values are omitted from API requests. However, any field with an
45096	// empty value appearing in NullFields will be sent to the server as
45097	// null. It is an error if a field in this list has a non-empty value.
45098	// This may be used to include null fields in Patch requests.
45099	NullFields []string `json:"-"`
45100}
45101
45102func (s *TargetReference) MarshalJSON() ([]byte, error) {
45103	type NoMethod TargetReference
45104	raw := NoMethod(*s)
45105	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45106}
45107
45108type TargetSslProxiesSetBackendServiceRequest struct {
45109	// Service: The URL of the new BackendService resource for the
45110	// targetSslProxy.
45111	Service string `json:"service,omitempty"`
45112
45113	// ForceSendFields is a list of field names (e.g. "Service") to
45114	// unconditionally include in API requests. By default, fields with
45115	// empty values are omitted from API requests. However, any non-pointer,
45116	// non-interface field appearing in ForceSendFields will be sent to the
45117	// server regardless of whether the field is empty or not. This may be
45118	// used to include empty fields in Patch requests.
45119	ForceSendFields []string `json:"-"`
45120
45121	// NullFields is a list of field names (e.g. "Service") to include in
45122	// API requests with the JSON null value. By default, fields with empty
45123	// values are omitted from API requests. However, any field with an
45124	// empty value appearing in NullFields will be sent to the server as
45125	// null. It is an error if a field in this list has a non-empty value.
45126	// This may be used to include null fields in Patch requests.
45127	NullFields []string `json:"-"`
45128}
45129
45130func (s *TargetSslProxiesSetBackendServiceRequest) MarshalJSON() ([]byte, error) {
45131	type NoMethod TargetSslProxiesSetBackendServiceRequest
45132	raw := NoMethod(*s)
45133	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45134}
45135
45136type TargetSslProxiesSetProxyHeaderRequest struct {
45137	// ProxyHeader: The new type of proxy header to append before sending
45138	// data to the backend. NONE or PROXY_V1 are allowed.
45139	//
45140	// Possible values:
45141	//   "NONE"
45142	//   "PROXY_V1"
45143	ProxyHeader string `json:"proxyHeader,omitempty"`
45144
45145	// ForceSendFields is a list of field names (e.g. "ProxyHeader") to
45146	// unconditionally include in API requests. By default, fields with
45147	// empty values are omitted from API requests. However, any non-pointer,
45148	// non-interface field appearing in ForceSendFields will be sent to the
45149	// server regardless of whether the field is empty or not. This may be
45150	// used to include empty fields in Patch requests.
45151	ForceSendFields []string `json:"-"`
45152
45153	// NullFields is a list of field names (e.g. "ProxyHeader") to include
45154	// in API requests with the JSON null value. By default, fields with
45155	// empty values are omitted from API requests. However, any field with
45156	// an empty value appearing in NullFields will be sent to the server as
45157	// null. It is an error if a field in this list has a non-empty value.
45158	// This may be used to include null fields in Patch requests.
45159	NullFields []string `json:"-"`
45160}
45161
45162func (s *TargetSslProxiesSetProxyHeaderRequest) MarshalJSON() ([]byte, error) {
45163	type NoMethod TargetSslProxiesSetProxyHeaderRequest
45164	raw := NoMethod(*s)
45165	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45166}
45167
45168type TargetSslProxiesSetSslCertificatesRequest struct {
45169	// SslCertificates: New set of URLs to SslCertificate resources to
45170	// associate with this TargetSslProxy. Currently exactly one ssl
45171	// certificate must be specified.
45172	SslCertificates []string `json:"sslCertificates,omitempty"`
45173
45174	// ForceSendFields is a list of field names (e.g. "SslCertificates") to
45175	// unconditionally include in API requests. By default, fields with
45176	// empty values are omitted from API requests. However, any non-pointer,
45177	// non-interface field appearing in ForceSendFields will be sent to the
45178	// server regardless of whether the field is empty or not. This may be
45179	// used to include empty fields in Patch requests.
45180	ForceSendFields []string `json:"-"`
45181
45182	// NullFields is a list of field names (e.g. "SslCertificates") to
45183	// include in API requests with the JSON null value. By default, fields
45184	// with empty values are omitted from API requests. However, any field
45185	// with an empty value appearing in NullFields will be sent to the
45186	// server as null. It is an error if a field in this list has a
45187	// non-empty value. This may be used to include null fields in Patch
45188	// requests.
45189	NullFields []string `json:"-"`
45190}
45191
45192func (s *TargetSslProxiesSetSslCertificatesRequest) MarshalJSON() ([]byte, error) {
45193	type NoMethod TargetSslProxiesSetSslCertificatesRequest
45194	raw := NoMethod(*s)
45195	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45196}
45197
45198// TargetSslProxy: Represents a Target SSL Proxy resource.
45199//
45200// A target SSL proxy is a component of a SSL Proxy load balancer.
45201// Global forwarding rules reference a target SSL proxy, and the target
45202// proxy then references an external backend service. For more
45203// information, read Using Target Proxies. (== resource_for
45204// {$api_version}.targetSslProxies ==)
45205type TargetSslProxy struct {
45206	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
45207	// format.
45208	CreationTimestamp string `json:"creationTimestamp,omitempty"`
45209
45210	// Description: An optional description of this resource. Provide this
45211	// property when you create the resource.
45212	Description string `json:"description,omitempty"`
45213
45214	// Id: [Output Only] The unique identifier for the resource. This
45215	// identifier is defined by the server.
45216	Id uint64 `json:"id,omitempty,string"`
45217
45218	// Kind: [Output Only] Type of the resource. Always
45219	// compute#targetSslProxy for target SSL proxies.
45220	Kind string `json:"kind,omitempty"`
45221
45222	// Name: Name of the resource. Provided by the client when the resource
45223	// is created. The name must be 1-63 characters long, and comply with
45224	// RFC1035. Specifically, the name must be 1-63 characters long and
45225	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
45226	// the first character must be a lowercase letter, and all following
45227	// characters must be a dash, lowercase letter, or digit, except the
45228	// last character, which cannot be a dash.
45229	Name string `json:"name,omitempty"`
45230
45231	// ProxyHeader: Specifies the type of proxy header to append before
45232	// sending data to the backend, either NONE or PROXY_V1. The default is
45233	// NONE.
45234	//
45235	// Possible values:
45236	//   "NONE"
45237	//   "PROXY_V1"
45238	ProxyHeader string `json:"proxyHeader,omitempty"`
45239
45240	// SelfLink: [Output Only] Server-defined URL for the resource.
45241	SelfLink string `json:"selfLink,omitempty"`
45242
45243	// Service: URL to the BackendService resource.
45244	Service string `json:"service,omitempty"`
45245
45246	// SslCertificates: URLs to SslCertificate resources that are used to
45247	// authenticate connections to Backends. At least one SSL certificate
45248	// must be specified. Currently, you may specify up to 15 SSL
45249	// certificates.
45250	SslCertificates []string `json:"sslCertificates,omitempty"`
45251
45252	// SslPolicy: URL of SslPolicy resource that will be associated with the
45253	// TargetSslProxy resource. If not set, the TargetSslProxy resource will
45254	// not have any SSL policy configured.
45255	SslPolicy string `json:"sslPolicy,omitempty"`
45256
45257	// ServerResponse contains the HTTP response code and headers from the
45258	// server.
45259	googleapi.ServerResponse `json:"-"`
45260
45261	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
45262	// to unconditionally include in API requests. By default, fields with
45263	// empty values are omitted from API requests. However, any non-pointer,
45264	// non-interface field appearing in ForceSendFields will be sent to the
45265	// server regardless of whether the field is empty or not. This may be
45266	// used to include empty fields in Patch requests.
45267	ForceSendFields []string `json:"-"`
45268
45269	// NullFields is a list of field names (e.g. "CreationTimestamp") to
45270	// include in API requests with the JSON null value. By default, fields
45271	// with empty values are omitted from API requests. However, any field
45272	// with an empty value appearing in NullFields will be sent to the
45273	// server as null. It is an error if a field in this list has a
45274	// non-empty value. This may be used to include null fields in Patch
45275	// requests.
45276	NullFields []string `json:"-"`
45277}
45278
45279func (s *TargetSslProxy) MarshalJSON() ([]byte, error) {
45280	type NoMethod TargetSslProxy
45281	raw := NoMethod(*s)
45282	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45283}
45284
45285// TargetSslProxyList: Contains a list of TargetSslProxy resources.
45286type TargetSslProxyList struct {
45287	// Id: [Output Only] Unique identifier for the resource; defined by the
45288	// server.
45289	Id string `json:"id,omitempty"`
45290
45291	// Items: A list of TargetSslProxy resources.
45292	Items []*TargetSslProxy `json:"items,omitempty"`
45293
45294	// Kind: Type of resource.
45295	Kind string `json:"kind,omitempty"`
45296
45297	// NextPageToken: [Output Only] This token allows you to get the next
45298	// page of results for list requests. If the number of results is larger
45299	// than maxResults, use the nextPageToken as a value for the query
45300	// parameter pageToken in the next list request. Subsequent list
45301	// requests will have their own nextPageToken to continue paging through
45302	// the results.
45303	NextPageToken string `json:"nextPageToken,omitempty"`
45304
45305	// SelfLink: [Output Only] Server-defined URL for this resource.
45306	SelfLink string `json:"selfLink,omitempty"`
45307
45308	// Warning: [Output Only] Informational warning message.
45309	Warning *TargetSslProxyListWarning `json:"warning,omitempty"`
45310
45311	// ServerResponse contains the HTTP response code and headers from the
45312	// server.
45313	googleapi.ServerResponse `json:"-"`
45314
45315	// ForceSendFields is a list of field names (e.g. "Id") to
45316	// unconditionally include in API requests. By default, fields with
45317	// empty values are omitted from API requests. However, any non-pointer,
45318	// non-interface field appearing in ForceSendFields will be sent to the
45319	// server regardless of whether the field is empty or not. This may be
45320	// used to include empty fields in Patch requests.
45321	ForceSendFields []string `json:"-"`
45322
45323	// NullFields is a list of field names (e.g. "Id") to include in API
45324	// requests with the JSON null value. By default, fields with empty
45325	// values are omitted from API requests. However, any field with an
45326	// empty value appearing in NullFields will be sent to the server as
45327	// null. It is an error if a field in this list has a non-empty value.
45328	// This may be used to include null fields in Patch requests.
45329	NullFields []string `json:"-"`
45330}
45331
45332func (s *TargetSslProxyList) MarshalJSON() ([]byte, error) {
45333	type NoMethod TargetSslProxyList
45334	raw := NoMethod(*s)
45335	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45336}
45337
45338// TargetSslProxyListWarning: [Output Only] Informational warning
45339// message.
45340type TargetSslProxyListWarning struct {
45341	// Code: [Output Only] A warning code, if applicable. For example,
45342	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
45343	// the response.
45344	//
45345	// Possible values:
45346	//   "CLEANUP_FAILED"
45347	//   "DEPRECATED_RESOURCE_USED"
45348	//   "DEPRECATED_TYPE_USED"
45349	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
45350	//   "EXPERIMENTAL_TYPE_USED"
45351	//   "EXTERNAL_API_WARNING"
45352	//   "FIELD_VALUE_OVERRIDEN"
45353	//   "INJECTED_KERNELS_DEPRECATED"
45354	//   "LARGE_DEPLOYMENT_WARNING"
45355	//   "MISSING_TYPE_DEPENDENCY"
45356	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
45357	//   "NEXT_HOP_CANNOT_IP_FORWARD"
45358	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
45359	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
45360	//   "NEXT_HOP_NOT_RUNNING"
45361	//   "NOT_CRITICAL_ERROR"
45362	//   "NO_RESULTS_ON_PAGE"
45363	//   "PARTIAL_SUCCESS"
45364	//   "REQUIRED_TOS_AGREEMENT"
45365	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
45366	//   "RESOURCE_NOT_DELETED"
45367	//   "SCHEMA_VALIDATION_IGNORED"
45368	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
45369	//   "UNDECLARED_PROPERTIES"
45370	//   "UNREACHABLE"
45371	Code string `json:"code,omitempty"`
45372
45373	// Data: [Output Only] Metadata about this warning in key: value format.
45374	// For example:
45375	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
45376	Data []*TargetSslProxyListWarningData `json:"data,omitempty"`
45377
45378	// Message: [Output Only] A human-readable description of the warning
45379	// code.
45380	Message string `json:"message,omitempty"`
45381
45382	// ForceSendFields is a list of field names (e.g. "Code") to
45383	// unconditionally include in API requests. By default, fields with
45384	// empty values are omitted from API requests. However, any non-pointer,
45385	// non-interface field appearing in ForceSendFields will be sent to the
45386	// server regardless of whether the field is empty or not. This may be
45387	// used to include empty fields in Patch requests.
45388	ForceSendFields []string `json:"-"`
45389
45390	// NullFields is a list of field names (e.g. "Code") to include in API
45391	// requests with the JSON null value. By default, fields with empty
45392	// values are omitted from API requests. However, any field with an
45393	// empty value appearing in NullFields will be sent to the server as
45394	// null. It is an error if a field in this list has a non-empty value.
45395	// This may be used to include null fields in Patch requests.
45396	NullFields []string `json:"-"`
45397}
45398
45399func (s *TargetSslProxyListWarning) MarshalJSON() ([]byte, error) {
45400	type NoMethod TargetSslProxyListWarning
45401	raw := NoMethod(*s)
45402	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45403}
45404
45405type TargetSslProxyListWarningData struct {
45406	// Key: [Output Only] A key that provides more detail on the warning
45407	// being returned. For example, for warnings where there are no results
45408	// in a list request for a particular zone, this key might be scope and
45409	// the key value might be the zone name. Other examples might be a key
45410	// indicating a deprecated resource and a suggested replacement, or a
45411	// warning about invalid network settings (for example, if an instance
45412	// attempts to perform IP forwarding but is not enabled for IP
45413	// forwarding).
45414	Key string `json:"key,omitempty"`
45415
45416	// Value: [Output Only] A warning data value corresponding to the key.
45417	Value string `json:"value,omitempty"`
45418
45419	// ForceSendFields is a list of field names (e.g. "Key") to
45420	// unconditionally include in API requests. By default, fields with
45421	// empty values are omitted from API requests. However, any non-pointer,
45422	// non-interface field appearing in ForceSendFields will be sent to the
45423	// server regardless of whether the field is empty or not. This may be
45424	// used to include empty fields in Patch requests.
45425	ForceSendFields []string `json:"-"`
45426
45427	// NullFields is a list of field names (e.g. "Key") to include in API
45428	// requests with the JSON null value. By default, fields with empty
45429	// values are omitted from API requests. However, any field with an
45430	// empty value appearing in NullFields will be sent to the server as
45431	// null. It is an error if a field in this list has a non-empty value.
45432	// This may be used to include null fields in Patch requests.
45433	NullFields []string `json:"-"`
45434}
45435
45436func (s *TargetSslProxyListWarningData) MarshalJSON() ([]byte, error) {
45437	type NoMethod TargetSslProxyListWarningData
45438	raw := NoMethod(*s)
45439	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45440}
45441
45442type TargetTcpProxiesSetBackendServiceRequest struct {
45443	// Service: The URL of the new BackendService resource for the
45444	// targetTcpProxy.
45445	Service string `json:"service,omitempty"`
45446
45447	// ForceSendFields is a list of field names (e.g. "Service") to
45448	// unconditionally include in API requests. By default, fields with
45449	// empty values are omitted from API requests. However, any non-pointer,
45450	// non-interface field appearing in ForceSendFields will be sent to the
45451	// server regardless of whether the field is empty or not. This may be
45452	// used to include empty fields in Patch requests.
45453	ForceSendFields []string `json:"-"`
45454
45455	// NullFields is a list of field names (e.g. "Service") to include in
45456	// API requests with the JSON null value. By default, fields with empty
45457	// values are omitted from API requests. However, any field with an
45458	// empty value appearing in NullFields will be sent to the server as
45459	// null. It is an error if a field in this list has a non-empty value.
45460	// This may be used to include null fields in Patch requests.
45461	NullFields []string `json:"-"`
45462}
45463
45464func (s *TargetTcpProxiesSetBackendServiceRequest) MarshalJSON() ([]byte, error) {
45465	type NoMethod TargetTcpProxiesSetBackendServiceRequest
45466	raw := NoMethod(*s)
45467	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45468}
45469
45470type TargetTcpProxiesSetProxyHeaderRequest struct {
45471	// ProxyHeader: The new type of proxy header to append before sending
45472	// data to the backend. NONE or PROXY_V1 are allowed.
45473	//
45474	// Possible values:
45475	//   "NONE"
45476	//   "PROXY_V1"
45477	ProxyHeader string `json:"proxyHeader,omitempty"`
45478
45479	// ForceSendFields is a list of field names (e.g. "ProxyHeader") to
45480	// unconditionally include in API requests. By default, fields with
45481	// empty values are omitted from API requests. However, any non-pointer,
45482	// non-interface field appearing in ForceSendFields will be sent to the
45483	// server regardless of whether the field is empty or not. This may be
45484	// used to include empty fields in Patch requests.
45485	ForceSendFields []string `json:"-"`
45486
45487	// NullFields is a list of field names (e.g. "ProxyHeader") to include
45488	// in API requests with the JSON null value. By default, fields with
45489	// empty values are omitted from API requests. However, any field with
45490	// an empty value appearing in NullFields will be sent to the server as
45491	// null. It is an error if a field in this list has a non-empty value.
45492	// This may be used to include null fields in Patch requests.
45493	NullFields []string `json:"-"`
45494}
45495
45496func (s *TargetTcpProxiesSetProxyHeaderRequest) MarshalJSON() ([]byte, error) {
45497	type NoMethod TargetTcpProxiesSetProxyHeaderRequest
45498	raw := NoMethod(*s)
45499	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45500}
45501
45502// TargetTcpProxy: Represents a Target TCP Proxy resource.
45503//
45504// A target TCP proxy is a component of a TCP Proxy load balancer.
45505// Global forwarding rules reference target TCP proxy, and the target
45506// proxy then references an external backend service. For more
45507// information, read TCP Proxy Load Balancing overview. (== resource_for
45508// {$api_version}.targetTcpProxies ==)
45509type TargetTcpProxy struct {
45510	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
45511	// format.
45512	CreationTimestamp string `json:"creationTimestamp,omitempty"`
45513
45514	// Description: An optional description of this resource. Provide this
45515	// property when you create the resource.
45516	Description string `json:"description,omitempty"`
45517
45518	// Id: [Output Only] The unique identifier for the resource. This
45519	// identifier is defined by the server.
45520	Id uint64 `json:"id,omitempty,string"`
45521
45522	// Kind: [Output Only] Type of the resource. Always
45523	// compute#targetTcpProxy for target TCP proxies.
45524	Kind string `json:"kind,omitempty"`
45525
45526	// Name: Name of the resource. Provided by the client when the resource
45527	// is created. The name must be 1-63 characters long, and comply with
45528	// RFC1035. Specifically, the name must be 1-63 characters long and
45529	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
45530	// the first character must be a lowercase letter, and all following
45531	// characters must be a dash, lowercase letter, or digit, except the
45532	// last character, which cannot be a dash.
45533	Name string `json:"name,omitempty"`
45534
45535	// ProxyBind: This field only applies when the forwarding rule that
45536	// references this target proxy has a loadBalancingScheme set to
45537	// INTERNAL_SELF_MANAGED.
45538	//
45539	// When this field is set to true, Envoy proxies set up inbound traffic
45540	// interception and bind to the IP address and port specified in the
45541	// forwarding rule. This is generally useful when using Traffic Director
45542	// to configure Envoy as a gateway or middle proxy (in other words, not
45543	// a sidecar proxy). The Envoy proxy listens for inbound requests and
45544	// handles requests when it receives them.
45545	//
45546	// The default is false.
45547	ProxyBind bool `json:"proxyBind,omitempty"`
45548
45549	// ProxyHeader: Specifies the type of proxy header to append before
45550	// sending data to the backend, either NONE or PROXY_V1. The default is
45551	// NONE.
45552	//
45553	// Possible values:
45554	//   "NONE"
45555	//   "PROXY_V1"
45556	ProxyHeader string `json:"proxyHeader,omitempty"`
45557
45558	// SelfLink: [Output Only] Server-defined URL for the resource.
45559	SelfLink string `json:"selfLink,omitempty"`
45560
45561	// Service: URL to the BackendService resource.
45562	Service string `json:"service,omitempty"`
45563
45564	// ServerResponse contains the HTTP response code and headers from the
45565	// server.
45566	googleapi.ServerResponse `json:"-"`
45567
45568	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
45569	// to unconditionally include in API requests. By default, fields with
45570	// empty values are omitted from API requests. However, any non-pointer,
45571	// non-interface field appearing in ForceSendFields will be sent to the
45572	// server regardless of whether the field is empty or not. This may be
45573	// used to include empty fields in Patch requests.
45574	ForceSendFields []string `json:"-"`
45575
45576	// NullFields is a list of field names (e.g. "CreationTimestamp") to
45577	// include in API requests with the JSON null value. By default, fields
45578	// with empty values are omitted from API requests. However, any field
45579	// with an empty value appearing in NullFields will be sent to the
45580	// server as null. It is an error if a field in this list has a
45581	// non-empty value. This may be used to include null fields in Patch
45582	// requests.
45583	NullFields []string `json:"-"`
45584}
45585
45586func (s *TargetTcpProxy) MarshalJSON() ([]byte, error) {
45587	type NoMethod TargetTcpProxy
45588	raw := NoMethod(*s)
45589	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45590}
45591
45592// TargetTcpProxyList: Contains a list of TargetTcpProxy resources.
45593type TargetTcpProxyList struct {
45594	// Id: [Output Only] Unique identifier for the resource; defined by the
45595	// server.
45596	Id string `json:"id,omitempty"`
45597
45598	// Items: A list of TargetTcpProxy resources.
45599	Items []*TargetTcpProxy `json:"items,omitempty"`
45600
45601	// Kind: Type of resource.
45602	Kind string `json:"kind,omitempty"`
45603
45604	// NextPageToken: [Output Only] This token allows you to get the next
45605	// page of results for list requests. If the number of results is larger
45606	// than maxResults, use the nextPageToken as a value for the query
45607	// parameter pageToken in the next list request. Subsequent list
45608	// requests will have their own nextPageToken to continue paging through
45609	// the results.
45610	NextPageToken string `json:"nextPageToken,omitempty"`
45611
45612	// SelfLink: [Output Only] Server-defined URL for this resource.
45613	SelfLink string `json:"selfLink,omitempty"`
45614
45615	// Warning: [Output Only] Informational warning message.
45616	Warning *TargetTcpProxyListWarning `json:"warning,omitempty"`
45617
45618	// ServerResponse contains the HTTP response code and headers from the
45619	// server.
45620	googleapi.ServerResponse `json:"-"`
45621
45622	// ForceSendFields is a list of field names (e.g. "Id") to
45623	// unconditionally include in API requests. By default, fields with
45624	// empty values are omitted from API requests. However, any non-pointer,
45625	// non-interface field appearing in ForceSendFields will be sent to the
45626	// server regardless of whether the field is empty or not. This may be
45627	// used to include empty fields in Patch requests.
45628	ForceSendFields []string `json:"-"`
45629
45630	// NullFields is a list of field names (e.g. "Id") to include in API
45631	// requests with the JSON null value. By default, fields with empty
45632	// values are omitted from API requests. However, any field with an
45633	// empty value appearing in NullFields will be sent to the server as
45634	// null. It is an error if a field in this list has a non-empty value.
45635	// This may be used to include null fields in Patch requests.
45636	NullFields []string `json:"-"`
45637}
45638
45639func (s *TargetTcpProxyList) MarshalJSON() ([]byte, error) {
45640	type NoMethod TargetTcpProxyList
45641	raw := NoMethod(*s)
45642	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45643}
45644
45645// TargetTcpProxyListWarning: [Output Only] Informational warning
45646// message.
45647type TargetTcpProxyListWarning struct {
45648	// Code: [Output Only] A warning code, if applicable. For example,
45649	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
45650	// the response.
45651	//
45652	// Possible values:
45653	//   "CLEANUP_FAILED"
45654	//   "DEPRECATED_RESOURCE_USED"
45655	//   "DEPRECATED_TYPE_USED"
45656	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
45657	//   "EXPERIMENTAL_TYPE_USED"
45658	//   "EXTERNAL_API_WARNING"
45659	//   "FIELD_VALUE_OVERRIDEN"
45660	//   "INJECTED_KERNELS_DEPRECATED"
45661	//   "LARGE_DEPLOYMENT_WARNING"
45662	//   "MISSING_TYPE_DEPENDENCY"
45663	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
45664	//   "NEXT_HOP_CANNOT_IP_FORWARD"
45665	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
45666	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
45667	//   "NEXT_HOP_NOT_RUNNING"
45668	//   "NOT_CRITICAL_ERROR"
45669	//   "NO_RESULTS_ON_PAGE"
45670	//   "PARTIAL_SUCCESS"
45671	//   "REQUIRED_TOS_AGREEMENT"
45672	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
45673	//   "RESOURCE_NOT_DELETED"
45674	//   "SCHEMA_VALIDATION_IGNORED"
45675	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
45676	//   "UNDECLARED_PROPERTIES"
45677	//   "UNREACHABLE"
45678	Code string `json:"code,omitempty"`
45679
45680	// Data: [Output Only] Metadata about this warning in key: value format.
45681	// For example:
45682	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
45683	Data []*TargetTcpProxyListWarningData `json:"data,omitempty"`
45684
45685	// Message: [Output Only] A human-readable description of the warning
45686	// code.
45687	Message string `json:"message,omitempty"`
45688
45689	// ForceSendFields is a list of field names (e.g. "Code") to
45690	// unconditionally include in API requests. By default, fields with
45691	// empty values are omitted from API requests. However, any non-pointer,
45692	// non-interface field appearing in ForceSendFields will be sent to the
45693	// server regardless of whether the field is empty or not. This may be
45694	// used to include empty fields in Patch requests.
45695	ForceSendFields []string `json:"-"`
45696
45697	// NullFields is a list of field names (e.g. "Code") to include in API
45698	// requests with the JSON null value. By default, fields with empty
45699	// values are omitted from API requests. However, any field with an
45700	// empty value appearing in NullFields will be sent to the server as
45701	// null. It is an error if a field in this list has a non-empty value.
45702	// This may be used to include null fields in Patch requests.
45703	NullFields []string `json:"-"`
45704}
45705
45706func (s *TargetTcpProxyListWarning) MarshalJSON() ([]byte, error) {
45707	type NoMethod TargetTcpProxyListWarning
45708	raw := NoMethod(*s)
45709	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45710}
45711
45712type TargetTcpProxyListWarningData struct {
45713	// Key: [Output Only] A key that provides more detail on the warning
45714	// being returned. For example, for warnings where there are no results
45715	// in a list request for a particular zone, this key might be scope and
45716	// the key value might be the zone name. Other examples might be a key
45717	// indicating a deprecated resource and a suggested replacement, or a
45718	// warning about invalid network settings (for example, if an instance
45719	// attempts to perform IP forwarding but is not enabled for IP
45720	// forwarding).
45721	Key string `json:"key,omitempty"`
45722
45723	// Value: [Output Only] A warning data value corresponding to the key.
45724	Value string `json:"value,omitempty"`
45725
45726	// ForceSendFields is a list of field names (e.g. "Key") to
45727	// unconditionally include in API requests. By default, fields with
45728	// empty values are omitted from API requests. However, any non-pointer,
45729	// non-interface field appearing in ForceSendFields will be sent to the
45730	// server regardless of whether the field is empty or not. This may be
45731	// used to include empty fields in Patch requests.
45732	ForceSendFields []string `json:"-"`
45733
45734	// NullFields is a list of field names (e.g. "Key") to include in API
45735	// requests with the JSON null value. By default, fields with empty
45736	// values are omitted from API requests. However, any field with an
45737	// empty value appearing in NullFields will be sent to the server as
45738	// null. It is an error if a field in this list has a non-empty value.
45739	// This may be used to include null fields in Patch requests.
45740	NullFields []string `json:"-"`
45741}
45742
45743func (s *TargetTcpProxyListWarningData) MarshalJSON() ([]byte, error) {
45744	type NoMethod TargetTcpProxyListWarningData
45745	raw := NoMethod(*s)
45746	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45747}
45748
45749// TargetVpnGateway: Represents a Target VPN Gateway resource.
45750//
45751// The target VPN gateway resource represents a Classic Cloud VPN
45752// gateway. For more information, read the the Cloud VPN Overview. (==
45753// resource_for {$api_version}.targetVpnGateways ==)
45754type TargetVpnGateway struct {
45755	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
45756	// format.
45757	CreationTimestamp string `json:"creationTimestamp,omitempty"`
45758
45759	// Description: An optional description of this resource. Provide this
45760	// property when you create the resource.
45761	Description string `json:"description,omitempty"`
45762
45763	// ForwardingRules: [Output Only] A list of URLs to the ForwardingRule
45764	// resources. ForwardingRules are created using
45765	// compute.forwardingRules.insert and associated with a VPN gateway.
45766	ForwardingRules []string `json:"forwardingRules,omitempty"`
45767
45768	// Id: [Output Only] The unique identifier for the resource. This
45769	// identifier is defined by the server.
45770	Id uint64 `json:"id,omitempty,string"`
45771
45772	// Kind: [Output Only] Type of resource. Always compute#targetVpnGateway
45773	// for target VPN gateways.
45774	Kind string `json:"kind,omitempty"`
45775
45776	// LabelFingerprint: A fingerprint for the labels being applied to this
45777	// TargetVpnGateway, which is essentially a hash of the labels set used
45778	// for optimistic locking. The fingerprint is initially generated by
45779	// Compute Engine and changes after every request to modify or update
45780	// labels. You must always provide an up-to-date fingerprint hash in
45781	// order to update or change labels, otherwise the request will fail
45782	// with error 412 conditionNotMet.
45783	//
45784	// To see the latest fingerprint, make a get() request to retrieve a
45785	// TargetVpnGateway.
45786	LabelFingerprint string `json:"labelFingerprint,omitempty"`
45787
45788	// Labels: Labels for this resource. These can only be added or modified
45789	// by the setLabels method. Each label key/value pair must comply with
45790	// RFC1035. Label values may be empty.
45791	Labels map[string]string `json:"labels,omitempty"`
45792
45793	// Name: Name of the resource. Provided by the client when the resource
45794	// is created. The name must be 1-63 characters long, and comply with
45795	// RFC1035. Specifically, the name must be 1-63 characters long and
45796	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
45797	// the first character must be a lowercase letter, and all following
45798	// characters must be a dash, lowercase letter, or digit, except the
45799	// last character, which cannot be a dash.
45800	Name string `json:"name,omitempty"`
45801
45802	// Network: URL of the network to which this VPN gateway is attached.
45803	// Provided by the client when the VPN gateway is created.
45804	Network string `json:"network,omitempty"`
45805
45806	// Region: [Output Only] URL of the region where the target VPN gateway
45807	// resides. You must specify this field as part of the HTTP request URL.
45808	// It is not settable as a field in the request body.
45809	Region string `json:"region,omitempty"`
45810
45811	// SelfLink: [Output Only] Server-defined URL for the resource.
45812	SelfLink string `json:"selfLink,omitempty"`
45813
45814	// Status: [Output Only] The status of the VPN gateway, which can be one
45815	// of the following: CREATING, READY, FAILED, or DELETING.
45816	//
45817	// Possible values:
45818	//   "CREATING"
45819	//   "DELETING"
45820	//   "FAILED"
45821	//   "READY"
45822	Status string `json:"status,omitempty"`
45823
45824	// Tunnels: [Output Only] A list of URLs to VpnTunnel resources.
45825	// VpnTunnels are created using the compute.vpntunnels.insert method and
45826	// associated with a VPN gateway.
45827	Tunnels []string `json:"tunnels,omitempty"`
45828
45829	// ServerResponse contains the HTTP response code and headers from the
45830	// server.
45831	googleapi.ServerResponse `json:"-"`
45832
45833	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
45834	// to unconditionally include in API requests. By default, fields with
45835	// empty values are omitted from API requests. However, any non-pointer,
45836	// non-interface field appearing in ForceSendFields will be sent to the
45837	// server regardless of whether the field is empty or not. This may be
45838	// used to include empty fields in Patch requests.
45839	ForceSendFields []string `json:"-"`
45840
45841	// NullFields is a list of field names (e.g. "CreationTimestamp") to
45842	// include in API requests with the JSON null value. By default, fields
45843	// with empty values are omitted from API requests. However, any field
45844	// with an empty value appearing in NullFields will be sent to the
45845	// server as null. It is an error if a field in this list has a
45846	// non-empty value. This may be used to include null fields in Patch
45847	// requests.
45848	NullFields []string `json:"-"`
45849}
45850
45851func (s *TargetVpnGateway) MarshalJSON() ([]byte, error) {
45852	type NoMethod TargetVpnGateway
45853	raw := NoMethod(*s)
45854	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45855}
45856
45857type TargetVpnGatewayAggregatedList struct {
45858	// Id: [Output Only] Unique identifier for the resource; defined by the
45859	// server.
45860	Id string `json:"id,omitempty"`
45861
45862	// Items: A list of TargetVpnGateway resources.
45863	Items map[string]TargetVpnGatewaysScopedList `json:"items,omitempty"`
45864
45865	// Kind: [Output Only] Type of resource. Always compute#targetVpnGateway
45866	// for target VPN gateways.
45867	Kind string `json:"kind,omitempty"`
45868
45869	// NextPageToken: [Output Only] This token allows you to get the next
45870	// page of results for list requests. If the number of results is larger
45871	// than maxResults, use the nextPageToken as a value for the query
45872	// parameter pageToken in the next list request. Subsequent list
45873	// requests will have their own nextPageToken to continue paging through
45874	// the results.
45875	NextPageToken string `json:"nextPageToken,omitempty"`
45876
45877	// SelfLink: [Output Only] Server-defined URL for this resource.
45878	SelfLink string `json:"selfLink,omitempty"`
45879
45880	// Unreachables: [Output Only] Unreachable resources.
45881	Unreachables []string `json:"unreachables,omitempty"`
45882
45883	// Warning: [Output Only] Informational warning message.
45884	Warning *TargetVpnGatewayAggregatedListWarning `json:"warning,omitempty"`
45885
45886	// ServerResponse contains the HTTP response code and headers from the
45887	// server.
45888	googleapi.ServerResponse `json:"-"`
45889
45890	// ForceSendFields is a list of field names (e.g. "Id") to
45891	// unconditionally include in API requests. By default, fields with
45892	// empty values are omitted from API requests. However, any non-pointer,
45893	// non-interface field appearing in ForceSendFields will be sent to the
45894	// server regardless of whether the field is empty or not. This may be
45895	// used to include empty fields in Patch requests.
45896	ForceSendFields []string `json:"-"`
45897
45898	// NullFields is a list of field names (e.g. "Id") to include in API
45899	// requests with the JSON null value. By default, fields with empty
45900	// values are omitted from API requests. However, any field with an
45901	// empty value appearing in NullFields will be sent to the server as
45902	// null. It is an error if a field in this list has a non-empty value.
45903	// This may be used to include null fields in Patch requests.
45904	NullFields []string `json:"-"`
45905}
45906
45907func (s *TargetVpnGatewayAggregatedList) MarshalJSON() ([]byte, error) {
45908	type NoMethod TargetVpnGatewayAggregatedList
45909	raw := NoMethod(*s)
45910	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45911}
45912
45913// TargetVpnGatewayAggregatedListWarning: [Output Only] Informational
45914// warning message.
45915type TargetVpnGatewayAggregatedListWarning struct {
45916	// Code: [Output Only] A warning code, if applicable. For example,
45917	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
45918	// the response.
45919	//
45920	// Possible values:
45921	//   "CLEANUP_FAILED"
45922	//   "DEPRECATED_RESOURCE_USED"
45923	//   "DEPRECATED_TYPE_USED"
45924	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
45925	//   "EXPERIMENTAL_TYPE_USED"
45926	//   "EXTERNAL_API_WARNING"
45927	//   "FIELD_VALUE_OVERRIDEN"
45928	//   "INJECTED_KERNELS_DEPRECATED"
45929	//   "LARGE_DEPLOYMENT_WARNING"
45930	//   "MISSING_TYPE_DEPENDENCY"
45931	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
45932	//   "NEXT_HOP_CANNOT_IP_FORWARD"
45933	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
45934	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
45935	//   "NEXT_HOP_NOT_RUNNING"
45936	//   "NOT_CRITICAL_ERROR"
45937	//   "NO_RESULTS_ON_PAGE"
45938	//   "PARTIAL_SUCCESS"
45939	//   "REQUIRED_TOS_AGREEMENT"
45940	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
45941	//   "RESOURCE_NOT_DELETED"
45942	//   "SCHEMA_VALIDATION_IGNORED"
45943	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
45944	//   "UNDECLARED_PROPERTIES"
45945	//   "UNREACHABLE"
45946	Code string `json:"code,omitempty"`
45947
45948	// Data: [Output Only] Metadata about this warning in key: value format.
45949	// For example:
45950	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
45951	Data []*TargetVpnGatewayAggregatedListWarningData `json:"data,omitempty"`
45952
45953	// Message: [Output Only] A human-readable description of the warning
45954	// code.
45955	Message string `json:"message,omitempty"`
45956
45957	// ForceSendFields is a list of field names (e.g. "Code") to
45958	// unconditionally include in API requests. By default, fields with
45959	// empty values are omitted from API requests. However, any non-pointer,
45960	// non-interface field appearing in ForceSendFields will be sent to the
45961	// server regardless of whether the field is empty or not. This may be
45962	// used to include empty fields in Patch requests.
45963	ForceSendFields []string `json:"-"`
45964
45965	// NullFields is a list of field names (e.g. "Code") to include in API
45966	// requests with the JSON null value. By default, fields with empty
45967	// values are omitted from API requests. However, any field with an
45968	// empty value appearing in NullFields will be sent to the server as
45969	// null. It is an error if a field in this list has a non-empty value.
45970	// This may be used to include null fields in Patch requests.
45971	NullFields []string `json:"-"`
45972}
45973
45974func (s *TargetVpnGatewayAggregatedListWarning) MarshalJSON() ([]byte, error) {
45975	type NoMethod TargetVpnGatewayAggregatedListWarning
45976	raw := NoMethod(*s)
45977	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45978}
45979
45980type TargetVpnGatewayAggregatedListWarningData struct {
45981	// Key: [Output Only] A key that provides more detail on the warning
45982	// being returned. For example, for warnings where there are no results
45983	// in a list request for a particular zone, this key might be scope and
45984	// the key value might be the zone name. Other examples might be a key
45985	// indicating a deprecated resource and a suggested replacement, or a
45986	// warning about invalid network settings (for example, if an instance
45987	// attempts to perform IP forwarding but is not enabled for IP
45988	// forwarding).
45989	Key string `json:"key,omitempty"`
45990
45991	// Value: [Output Only] A warning data value corresponding to the key.
45992	Value string `json:"value,omitempty"`
45993
45994	// ForceSendFields is a list of field names (e.g. "Key") to
45995	// unconditionally include in API requests. By default, fields with
45996	// empty values are omitted from API requests. However, any non-pointer,
45997	// non-interface field appearing in ForceSendFields will be sent to the
45998	// server regardless of whether the field is empty or not. This may be
45999	// used to include empty fields in Patch requests.
46000	ForceSendFields []string `json:"-"`
46001
46002	// NullFields is a list of field names (e.g. "Key") to include in API
46003	// requests with the JSON null value. By default, fields with empty
46004	// values are omitted from API requests. However, any field with an
46005	// empty value appearing in NullFields will be sent to the server as
46006	// null. It is an error if a field in this list has a non-empty value.
46007	// This may be used to include null fields in Patch requests.
46008	NullFields []string `json:"-"`
46009}
46010
46011func (s *TargetVpnGatewayAggregatedListWarningData) MarshalJSON() ([]byte, error) {
46012	type NoMethod TargetVpnGatewayAggregatedListWarningData
46013	raw := NoMethod(*s)
46014	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46015}
46016
46017// TargetVpnGatewayList: Contains a list of TargetVpnGateway resources.
46018type TargetVpnGatewayList struct {
46019	// Id: [Output Only] Unique identifier for the resource; defined by the
46020	// server.
46021	Id string `json:"id,omitempty"`
46022
46023	// Items: A list of TargetVpnGateway resources.
46024	Items []*TargetVpnGateway `json:"items,omitempty"`
46025
46026	// Kind: [Output Only] Type of resource. Always compute#targetVpnGateway
46027	// for target VPN gateways.
46028	Kind string `json:"kind,omitempty"`
46029
46030	// NextPageToken: [Output Only] This token allows you to get the next
46031	// page of results for list requests. If the number of results is larger
46032	// than maxResults, use the nextPageToken as a value for the query
46033	// parameter pageToken in the next list request. Subsequent list
46034	// requests will have their own nextPageToken to continue paging through
46035	// the results.
46036	NextPageToken string `json:"nextPageToken,omitempty"`
46037
46038	// SelfLink: [Output Only] Server-defined URL for this resource.
46039	SelfLink string `json:"selfLink,omitempty"`
46040
46041	// Warning: [Output Only] Informational warning message.
46042	Warning *TargetVpnGatewayListWarning `json:"warning,omitempty"`
46043
46044	// ServerResponse contains the HTTP response code and headers from the
46045	// server.
46046	googleapi.ServerResponse `json:"-"`
46047
46048	// ForceSendFields is a list of field names (e.g. "Id") to
46049	// unconditionally include in API requests. By default, fields with
46050	// empty values are omitted from API requests. However, any non-pointer,
46051	// non-interface field appearing in ForceSendFields will be sent to the
46052	// server regardless of whether the field is empty or not. This may be
46053	// used to include empty fields in Patch requests.
46054	ForceSendFields []string `json:"-"`
46055
46056	// NullFields is a list of field names (e.g. "Id") to include in API
46057	// requests with the JSON null value. By default, fields with empty
46058	// values are omitted from API requests. However, any field with an
46059	// empty value appearing in NullFields will be sent to the server as
46060	// null. It is an error if a field in this list has a non-empty value.
46061	// This may be used to include null fields in Patch requests.
46062	NullFields []string `json:"-"`
46063}
46064
46065func (s *TargetVpnGatewayList) MarshalJSON() ([]byte, error) {
46066	type NoMethod TargetVpnGatewayList
46067	raw := NoMethod(*s)
46068	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46069}
46070
46071// TargetVpnGatewayListWarning: [Output Only] Informational warning
46072// message.
46073type TargetVpnGatewayListWarning struct {
46074	// Code: [Output Only] A warning code, if applicable. For example,
46075	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
46076	// the response.
46077	//
46078	// Possible values:
46079	//   "CLEANUP_FAILED"
46080	//   "DEPRECATED_RESOURCE_USED"
46081	//   "DEPRECATED_TYPE_USED"
46082	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
46083	//   "EXPERIMENTAL_TYPE_USED"
46084	//   "EXTERNAL_API_WARNING"
46085	//   "FIELD_VALUE_OVERRIDEN"
46086	//   "INJECTED_KERNELS_DEPRECATED"
46087	//   "LARGE_DEPLOYMENT_WARNING"
46088	//   "MISSING_TYPE_DEPENDENCY"
46089	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
46090	//   "NEXT_HOP_CANNOT_IP_FORWARD"
46091	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
46092	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
46093	//   "NEXT_HOP_NOT_RUNNING"
46094	//   "NOT_CRITICAL_ERROR"
46095	//   "NO_RESULTS_ON_PAGE"
46096	//   "PARTIAL_SUCCESS"
46097	//   "REQUIRED_TOS_AGREEMENT"
46098	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
46099	//   "RESOURCE_NOT_DELETED"
46100	//   "SCHEMA_VALIDATION_IGNORED"
46101	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
46102	//   "UNDECLARED_PROPERTIES"
46103	//   "UNREACHABLE"
46104	Code string `json:"code,omitempty"`
46105
46106	// Data: [Output Only] Metadata about this warning in key: value format.
46107	// For example:
46108	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
46109	Data []*TargetVpnGatewayListWarningData `json:"data,omitempty"`
46110
46111	// Message: [Output Only] A human-readable description of the warning
46112	// code.
46113	Message string `json:"message,omitempty"`
46114
46115	// ForceSendFields is a list of field names (e.g. "Code") to
46116	// unconditionally include in API requests. By default, fields with
46117	// empty values are omitted from API requests. However, any non-pointer,
46118	// non-interface field appearing in ForceSendFields will be sent to the
46119	// server regardless of whether the field is empty or not. This may be
46120	// used to include empty fields in Patch requests.
46121	ForceSendFields []string `json:"-"`
46122
46123	// NullFields is a list of field names (e.g. "Code") to include in API
46124	// requests with the JSON null value. By default, fields with empty
46125	// values are omitted from API requests. However, any field with an
46126	// empty value appearing in NullFields will be sent to the server as
46127	// null. It is an error if a field in this list has a non-empty value.
46128	// This may be used to include null fields in Patch requests.
46129	NullFields []string `json:"-"`
46130}
46131
46132func (s *TargetVpnGatewayListWarning) MarshalJSON() ([]byte, error) {
46133	type NoMethod TargetVpnGatewayListWarning
46134	raw := NoMethod(*s)
46135	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46136}
46137
46138type TargetVpnGatewayListWarningData struct {
46139	// Key: [Output Only] A key that provides more detail on the warning
46140	// being returned. For example, for warnings where there are no results
46141	// in a list request for a particular zone, this key might be scope and
46142	// the key value might be the zone name. Other examples might be a key
46143	// indicating a deprecated resource and a suggested replacement, or a
46144	// warning about invalid network settings (for example, if an instance
46145	// attempts to perform IP forwarding but is not enabled for IP
46146	// forwarding).
46147	Key string `json:"key,omitempty"`
46148
46149	// Value: [Output Only] A warning data value corresponding to the key.
46150	Value string `json:"value,omitempty"`
46151
46152	// ForceSendFields is a list of field names (e.g. "Key") to
46153	// unconditionally include in API requests. By default, fields with
46154	// empty values are omitted from API requests. However, any non-pointer,
46155	// non-interface field appearing in ForceSendFields will be sent to the
46156	// server regardless of whether the field is empty or not. This may be
46157	// used to include empty fields in Patch requests.
46158	ForceSendFields []string `json:"-"`
46159
46160	// NullFields is a list of field names (e.g. "Key") to include in API
46161	// requests with the JSON null value. By default, fields with empty
46162	// values are omitted from API requests. However, any field with an
46163	// empty value appearing in NullFields will be sent to the server as
46164	// null. It is an error if a field in this list has a non-empty value.
46165	// This may be used to include null fields in Patch requests.
46166	NullFields []string `json:"-"`
46167}
46168
46169func (s *TargetVpnGatewayListWarningData) MarshalJSON() ([]byte, error) {
46170	type NoMethod TargetVpnGatewayListWarningData
46171	raw := NoMethod(*s)
46172	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46173}
46174
46175type TargetVpnGatewaysScopedList struct {
46176	// TargetVpnGateways: [Output Only] A list of target VPN gateways
46177	// contained in this scope.
46178	TargetVpnGateways []*TargetVpnGateway `json:"targetVpnGateways,omitempty"`
46179
46180	// Warning: [Output Only] Informational warning which replaces the list
46181	// of addresses when the list is empty.
46182	Warning *TargetVpnGatewaysScopedListWarning `json:"warning,omitempty"`
46183
46184	// ForceSendFields is a list of field names (e.g. "TargetVpnGateways")
46185	// to unconditionally include in API requests. By default, fields with
46186	// empty values are omitted from API requests. However, any non-pointer,
46187	// non-interface field appearing in ForceSendFields will be sent to the
46188	// server regardless of whether the field is empty or not. This may be
46189	// used to include empty fields in Patch requests.
46190	ForceSendFields []string `json:"-"`
46191
46192	// NullFields is a list of field names (e.g. "TargetVpnGateways") to
46193	// include in API requests with the JSON null value. By default, fields
46194	// with empty values are omitted from API requests. However, any field
46195	// with an empty value appearing in NullFields will be sent to the
46196	// server as null. It is an error if a field in this list has a
46197	// non-empty value. This may be used to include null fields in Patch
46198	// requests.
46199	NullFields []string `json:"-"`
46200}
46201
46202func (s *TargetVpnGatewaysScopedList) MarshalJSON() ([]byte, error) {
46203	type NoMethod TargetVpnGatewaysScopedList
46204	raw := NoMethod(*s)
46205	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46206}
46207
46208// TargetVpnGatewaysScopedListWarning: [Output Only] Informational
46209// warning which replaces the list of addresses when the list is empty.
46210type TargetVpnGatewaysScopedListWarning struct {
46211	// Code: [Output Only] A warning code, if applicable. For example,
46212	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
46213	// the response.
46214	//
46215	// Possible values:
46216	//   "CLEANUP_FAILED"
46217	//   "DEPRECATED_RESOURCE_USED"
46218	//   "DEPRECATED_TYPE_USED"
46219	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
46220	//   "EXPERIMENTAL_TYPE_USED"
46221	//   "EXTERNAL_API_WARNING"
46222	//   "FIELD_VALUE_OVERRIDEN"
46223	//   "INJECTED_KERNELS_DEPRECATED"
46224	//   "LARGE_DEPLOYMENT_WARNING"
46225	//   "MISSING_TYPE_DEPENDENCY"
46226	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
46227	//   "NEXT_HOP_CANNOT_IP_FORWARD"
46228	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
46229	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
46230	//   "NEXT_HOP_NOT_RUNNING"
46231	//   "NOT_CRITICAL_ERROR"
46232	//   "NO_RESULTS_ON_PAGE"
46233	//   "PARTIAL_SUCCESS"
46234	//   "REQUIRED_TOS_AGREEMENT"
46235	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
46236	//   "RESOURCE_NOT_DELETED"
46237	//   "SCHEMA_VALIDATION_IGNORED"
46238	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
46239	//   "UNDECLARED_PROPERTIES"
46240	//   "UNREACHABLE"
46241	Code string `json:"code,omitempty"`
46242
46243	// Data: [Output Only] Metadata about this warning in key: value format.
46244	// For example:
46245	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
46246	Data []*TargetVpnGatewaysScopedListWarningData `json:"data,omitempty"`
46247
46248	// Message: [Output Only] A human-readable description of the warning
46249	// code.
46250	Message string `json:"message,omitempty"`
46251
46252	// ForceSendFields is a list of field names (e.g. "Code") to
46253	// unconditionally include in API requests. By default, fields with
46254	// empty values are omitted from API requests. However, any non-pointer,
46255	// non-interface field appearing in ForceSendFields will be sent to the
46256	// server regardless of whether the field is empty or not. This may be
46257	// used to include empty fields in Patch requests.
46258	ForceSendFields []string `json:"-"`
46259
46260	// NullFields is a list of field names (e.g. "Code") to include in API
46261	// requests with the JSON null value. By default, fields with empty
46262	// values are omitted from API requests. However, any field with an
46263	// empty value appearing in NullFields will be sent to the server as
46264	// null. It is an error if a field in this list has a non-empty value.
46265	// This may be used to include null fields in Patch requests.
46266	NullFields []string `json:"-"`
46267}
46268
46269func (s *TargetVpnGatewaysScopedListWarning) MarshalJSON() ([]byte, error) {
46270	type NoMethod TargetVpnGatewaysScopedListWarning
46271	raw := NoMethod(*s)
46272	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46273}
46274
46275type TargetVpnGatewaysScopedListWarningData struct {
46276	// Key: [Output Only] A key that provides more detail on the warning
46277	// being returned. For example, for warnings where there are no results
46278	// in a list request for a particular zone, this key might be scope and
46279	// the key value might be the zone name. Other examples might be a key
46280	// indicating a deprecated resource and a suggested replacement, or a
46281	// warning about invalid network settings (for example, if an instance
46282	// attempts to perform IP forwarding but is not enabled for IP
46283	// forwarding).
46284	Key string `json:"key,omitempty"`
46285
46286	// Value: [Output Only] A warning data value corresponding to the key.
46287	Value string `json:"value,omitempty"`
46288
46289	// ForceSendFields is a list of field names (e.g. "Key") to
46290	// unconditionally include in API requests. By default, fields with
46291	// empty values are omitted from API requests. However, any non-pointer,
46292	// non-interface field appearing in ForceSendFields will be sent to the
46293	// server regardless of whether the field is empty or not. This may be
46294	// used to include empty fields in Patch requests.
46295	ForceSendFields []string `json:"-"`
46296
46297	// NullFields is a list of field names (e.g. "Key") to include in API
46298	// requests with the JSON null value. By default, fields with empty
46299	// values are omitted from API requests. However, any field with an
46300	// empty value appearing in NullFields will be sent to the server as
46301	// null. It is an error if a field in this list has a non-empty value.
46302	// This may be used to include null fields in Patch requests.
46303	NullFields []string `json:"-"`
46304}
46305
46306func (s *TargetVpnGatewaysScopedListWarningData) MarshalJSON() ([]byte, error) {
46307	type NoMethod TargetVpnGatewaysScopedListWarningData
46308	raw := NoMethod(*s)
46309	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46310}
46311
46312type TestFailure struct {
46313	// ActualOutputUrl: The actual output URL evaluated by load balancer
46314	// containing the scheme, host, path and query parameters.
46315	ActualOutputUrl string `json:"actualOutputUrl,omitempty"`
46316
46317	// ActualRedirectResponseCode: Actual HTTP status code for rule with
46318	// `urlRedirect` calculated by load balancer
46319	ActualRedirectResponseCode int64 `json:"actualRedirectResponseCode,omitempty"`
46320
46321	// ActualService: BackendService or BackendBucket returned by load
46322	// balancer.
46323	ActualService string `json:"actualService,omitempty"`
46324
46325	// ExpectedOutputUrl: The expected output URL evaluated by load balancer
46326	// containing the scheme, host, path and query parameters.
46327	ExpectedOutputUrl string `json:"expectedOutputUrl,omitempty"`
46328
46329	// ExpectedRedirectResponseCode: Expected HTTP status code for rule with
46330	// `urlRedirect` calculated by load balancer
46331	ExpectedRedirectResponseCode int64 `json:"expectedRedirectResponseCode,omitempty"`
46332
46333	// ExpectedService: Expected BackendService or BackendBucket resource
46334	// the given URL should be mapped to.
46335	ExpectedService string `json:"expectedService,omitempty"`
46336
46337	// Headers: HTTP headers of the request.
46338	Headers []*UrlMapTestHeader `json:"headers,omitempty"`
46339
46340	// Host: Host portion of the URL.
46341	Host string `json:"host,omitempty"`
46342
46343	// Path: Path portion including query parameters in the URL.
46344	Path string `json:"path,omitempty"`
46345
46346	// ForceSendFields is a list of field names (e.g. "ActualOutputUrl") to
46347	// unconditionally include in API requests. By default, fields with
46348	// empty values are omitted from API requests. However, any non-pointer,
46349	// non-interface field appearing in ForceSendFields will be sent to the
46350	// server regardless of whether the field is empty or not. This may be
46351	// used to include empty fields in Patch requests.
46352	ForceSendFields []string `json:"-"`
46353
46354	// NullFields is a list of field names (e.g. "ActualOutputUrl") to
46355	// include in API requests with the JSON null value. By default, fields
46356	// with empty values are omitted from API requests. However, any field
46357	// with an empty value appearing in NullFields will be sent to the
46358	// server as null. It is an error if a field in this list has a
46359	// non-empty value. This may be used to include null fields in Patch
46360	// requests.
46361	NullFields []string `json:"-"`
46362}
46363
46364func (s *TestFailure) MarshalJSON() ([]byte, error) {
46365	type NoMethod TestFailure
46366	raw := NoMethod(*s)
46367	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46368}
46369
46370type TestPermissionsRequest struct {
46371	// Permissions: The set of permissions to check for the 'resource'.
46372	// Permissions with wildcards (such as '*' or 'storage.*') are not
46373	// allowed.
46374	Permissions []string `json:"permissions,omitempty"`
46375
46376	// ForceSendFields is a list of field names (e.g. "Permissions") to
46377	// unconditionally include in API requests. By default, fields with
46378	// empty values are omitted from API requests. However, any non-pointer,
46379	// non-interface field appearing in ForceSendFields will be sent to the
46380	// server regardless of whether the field is empty or not. This may be
46381	// used to include empty fields in Patch requests.
46382	ForceSendFields []string `json:"-"`
46383
46384	// NullFields is a list of field names (e.g. "Permissions") to include
46385	// in API requests with the JSON null value. By default, fields with
46386	// empty values are omitted from API requests. However, any field with
46387	// an empty value appearing in NullFields will be sent to the server as
46388	// null. It is an error if a field in this list has a non-empty value.
46389	// This may be used to include null fields in Patch requests.
46390	NullFields []string `json:"-"`
46391}
46392
46393func (s *TestPermissionsRequest) MarshalJSON() ([]byte, error) {
46394	type NoMethod TestPermissionsRequest
46395	raw := NoMethod(*s)
46396	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46397}
46398
46399type TestPermissionsResponse struct {
46400	// Permissions: A subset of `TestPermissionsRequest.permissions` that
46401	// the caller is allowed.
46402	Permissions []string `json:"permissions,omitempty"`
46403
46404	// ServerResponse contains the HTTP response code and headers from the
46405	// server.
46406	googleapi.ServerResponse `json:"-"`
46407
46408	// ForceSendFields is a list of field names (e.g. "Permissions") to
46409	// unconditionally include in API requests. By default, fields with
46410	// empty values are omitted from API requests. However, any non-pointer,
46411	// non-interface field appearing in ForceSendFields will be sent to the
46412	// server regardless of whether the field is empty or not. This may be
46413	// used to include empty fields in Patch requests.
46414	ForceSendFields []string `json:"-"`
46415
46416	// NullFields is a list of field names (e.g. "Permissions") to include
46417	// in API requests with the JSON null value. By default, fields with
46418	// empty values are omitted from API requests. However, any field with
46419	// an empty value appearing in NullFields will be sent to the server as
46420	// null. It is an error if a field in this list has a non-empty value.
46421	// This may be used to include null fields in Patch requests.
46422	NullFields []string `json:"-"`
46423}
46424
46425func (s *TestPermissionsResponse) MarshalJSON() ([]byte, error) {
46426	type NoMethod TestPermissionsResponse
46427	raw := NoMethod(*s)
46428	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46429}
46430
46431// UrlMap: Represents a URL Map resource.
46432//
46433// Google Compute Engine has two URL Map resources:
46434//
46435// * Global (/compute/docs/reference/rest/{$api_version}/urlMaps) *
46436// Regional
46437// (/compute/docs/reference/rest/{$api_version}/regionUrlMaps)
46438//
46439// A URL map resource is a component of certain types of GCP load
46440// balancers and Traffic Director.
46441//
46442// * urlMaps are used by external HTTP(S) load balancers and Traffic
46443// Director. * regionUrlMaps are used by internal HTTP(S) load
46444// balancers.
46445//
46446// For a list of supported URL map features by load balancer type, see
46447// the  Load balancing features: Routing and traffic management
46448// table.
46449//
46450// For a list of supported URL map features for Traffic Director, see
46451// the  Traffic Director features: Routing and traffic management
46452// table.
46453//
46454// This resource defines mappings from host names and URL paths to
46455// either a backend service or a backend bucket.
46456//
46457// To use the global urlMaps resource, the backend service must have a
46458// loadBalancingScheme of either EXTERNAL or INTERNAL_SELF_MANAGED. To
46459// use the regionUrlMaps resource, the backend service must have a
46460// loadBalancingScheme of INTERNAL_MANAGED. For more information, read
46461// URL Map Concepts.
46462type UrlMap struct {
46463	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
46464	// format.
46465	CreationTimestamp string `json:"creationTimestamp,omitempty"`
46466
46467	// DefaultRouteAction: defaultRouteAction takes effect when none of the
46468	// hostRules match. The load balancer performs advanced routing actions
46469	// like URL rewrites, header transformations, etc. prior to forwarding
46470	// the request to the selected backend. If defaultRouteAction specifies
46471	// any weightedBackendServices, defaultService must not be set.
46472	// Conversely if defaultService is set, defaultRouteAction cannot
46473	// contain any  weightedBackendServices.
46474	// Only one of defaultRouteAction or defaultUrlRedirect must be
46475	// set.
46476	// UrlMaps for external HTTP(S) load balancers support only the
46477	// urlRewrite action within defaultRouteAction.
46478	// defaultRouteAction has no effect when the URL map is bound to target
46479	// gRPC proxy that has validateForProxyless field set to true.
46480	DefaultRouteAction *HttpRouteAction `json:"defaultRouteAction,omitempty"`
46481
46482	// DefaultService: The full or partial URL of the defaultService
46483	// resource to which traffic is directed if none of the hostRules match.
46484	// If defaultRouteAction is additionally specified, advanced routing
46485	// actions like URL Rewrites, etc. take effect prior to sending the
46486	// request to the backend. However, if defaultService is specified,
46487	// defaultRouteAction cannot contain any weightedBackendServices.
46488	// Conversely, if routeAction specifies any weightedBackendServices,
46489	// service must not be specified.
46490	// Only one of defaultService, defaultUrlRedirect  or
46491	// defaultRouteAction.weightedBackendService must be set.
46492	// defaultService has no effect when the URL map is bound to target gRPC
46493	// proxy that has validateForProxyless field set to true.
46494	DefaultService string `json:"defaultService,omitempty"`
46495
46496	// DefaultUrlRedirect: When none of the specified hostRules match, the
46497	// request is redirected to a URL specified by defaultUrlRedirect.
46498	// If defaultUrlRedirect is specified, defaultService or
46499	// defaultRouteAction must not be set.
46500	// Not supported when the URL map is bound to target gRPC proxy.
46501	DefaultUrlRedirect *HttpRedirectAction `json:"defaultUrlRedirect,omitempty"`
46502
46503	// Description: An optional description of this resource. Provide this
46504	// property when you create the resource.
46505	Description string `json:"description,omitempty"`
46506
46507	// Fingerprint: Fingerprint of this resource. A hash of the contents
46508	// stored in this object. This field is used in optimistic locking. This
46509	// field will be ignored when inserting a UrlMap. An up-to-date
46510	// fingerprint must be provided in order to update the UrlMap, otherwise
46511	// the request will fail with error 412 conditionNotMet.
46512	//
46513	// To see the latest fingerprint, make a get() request to retrieve a
46514	// UrlMap.
46515	Fingerprint string `json:"fingerprint,omitempty"`
46516
46517	// HeaderAction: Specifies changes to request and response headers that
46518	// need to take effect for the selected backendService.
46519	// The headerAction specified here take effect after headerAction
46520	// specified under pathMatcher.
46521	// Note that headerAction is not supported for Loadbalancers that have
46522	// their loadBalancingScheme set to EXTERNAL.
46523	// Not supported when the URL map is bound to target gRPC proxy that has
46524	// validateForProxyless field set to true.
46525	HeaderAction *HttpHeaderAction `json:"headerAction,omitempty"`
46526
46527	// HostRules: The list of HostRules to use against the URL.
46528	HostRules []*HostRule `json:"hostRules,omitempty"`
46529
46530	// Id: [Output Only] The unique identifier for the resource. This
46531	// identifier is defined by the server.
46532	Id uint64 `json:"id,omitempty,string"`
46533
46534	// Kind: [Output Only] Type of the resource. Always compute#urlMaps for
46535	// url maps.
46536	Kind string `json:"kind,omitempty"`
46537
46538	// Name: Name of the resource. Provided by the client when the resource
46539	// is created. The name must be 1-63 characters long, and comply with
46540	// RFC1035. Specifically, the name must be 1-63 characters long and
46541	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
46542	// the first character must be a lowercase letter, and all following
46543	// characters must be a dash, lowercase letter, or digit, except the
46544	// last character, which cannot be a dash.
46545	Name string `json:"name,omitempty"`
46546
46547	// PathMatchers: The list of named PathMatchers to use against the URL.
46548	PathMatchers []*PathMatcher `json:"pathMatchers,omitempty"`
46549
46550	// Region: [Output Only] URL of the region where the regional URL map
46551	// resides. This field is not applicable to global URL maps. You must
46552	// specify this field as part of the HTTP request URL. It is not
46553	// settable as a field in the request body.
46554	Region string `json:"region,omitempty"`
46555
46556	// SelfLink: [Output Only] Server-defined URL for the resource.
46557	SelfLink string `json:"selfLink,omitempty"`
46558
46559	// Tests: The list of expected URL mapping tests. Request to update this
46560	// UrlMap will succeed only if all of the test cases pass. You can
46561	// specify a maximum of 100 tests per UrlMap.
46562	// Not supported when the URL map is bound to target gRPC proxy that has
46563	// validateForProxyless field set to true.
46564	Tests []*UrlMapTest `json:"tests,omitempty"`
46565
46566	// ServerResponse contains the HTTP response code and headers from the
46567	// server.
46568	googleapi.ServerResponse `json:"-"`
46569
46570	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
46571	// to unconditionally include in API requests. By default, fields with
46572	// empty values are omitted from API requests. However, any non-pointer,
46573	// non-interface field appearing in ForceSendFields will be sent to the
46574	// server regardless of whether the field is empty or not. This may be
46575	// used to include empty fields in Patch requests.
46576	ForceSendFields []string `json:"-"`
46577
46578	// NullFields is a list of field names (e.g. "CreationTimestamp") to
46579	// include in API requests with the JSON null value. By default, fields
46580	// with empty values are omitted from API requests. However, any field
46581	// with an empty value appearing in NullFields will be sent to the
46582	// server as null. It is an error if a field in this list has a
46583	// non-empty value. This may be used to include null fields in Patch
46584	// requests.
46585	NullFields []string `json:"-"`
46586}
46587
46588func (s *UrlMap) MarshalJSON() ([]byte, error) {
46589	type NoMethod UrlMap
46590	raw := NoMethod(*s)
46591	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46592}
46593
46594// UrlMapList: Contains a list of UrlMap resources.
46595type UrlMapList struct {
46596	// Id: [Output Only] Unique identifier for the resource; defined by the
46597	// server.
46598	Id string `json:"id,omitempty"`
46599
46600	// Items: A list of UrlMap resources.
46601	Items []*UrlMap `json:"items,omitempty"`
46602
46603	// Kind: Type of resource.
46604	Kind string `json:"kind,omitempty"`
46605
46606	// NextPageToken: [Output Only] This token allows you to get the next
46607	// page of results for list requests. If the number of results is larger
46608	// than maxResults, use the nextPageToken as a value for the query
46609	// parameter pageToken in the next list request. Subsequent list
46610	// requests will have their own nextPageToken to continue paging through
46611	// the results.
46612	NextPageToken string `json:"nextPageToken,omitempty"`
46613
46614	// SelfLink: [Output Only] Server-defined URL for this resource.
46615	SelfLink string `json:"selfLink,omitempty"`
46616
46617	// Warning: [Output Only] Informational warning message.
46618	Warning *UrlMapListWarning `json:"warning,omitempty"`
46619
46620	// ServerResponse contains the HTTP response code and headers from the
46621	// server.
46622	googleapi.ServerResponse `json:"-"`
46623
46624	// ForceSendFields is a list of field names (e.g. "Id") to
46625	// unconditionally include in API requests. By default, fields with
46626	// empty values are omitted from API requests. However, any non-pointer,
46627	// non-interface field appearing in ForceSendFields will be sent to the
46628	// server regardless of whether the field is empty or not. This may be
46629	// used to include empty fields in Patch requests.
46630	ForceSendFields []string `json:"-"`
46631
46632	// NullFields is a list of field names (e.g. "Id") to include in API
46633	// requests with the JSON null value. By default, fields with empty
46634	// values are omitted from API requests. However, any field with an
46635	// empty value appearing in NullFields will be sent to the server as
46636	// null. It is an error if a field in this list has a non-empty value.
46637	// This may be used to include null fields in Patch requests.
46638	NullFields []string `json:"-"`
46639}
46640
46641func (s *UrlMapList) MarshalJSON() ([]byte, error) {
46642	type NoMethod UrlMapList
46643	raw := NoMethod(*s)
46644	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46645}
46646
46647// UrlMapListWarning: [Output Only] Informational warning message.
46648type UrlMapListWarning struct {
46649	// Code: [Output Only] A warning code, if applicable. For example,
46650	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
46651	// the response.
46652	//
46653	// Possible values:
46654	//   "CLEANUP_FAILED"
46655	//   "DEPRECATED_RESOURCE_USED"
46656	//   "DEPRECATED_TYPE_USED"
46657	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
46658	//   "EXPERIMENTAL_TYPE_USED"
46659	//   "EXTERNAL_API_WARNING"
46660	//   "FIELD_VALUE_OVERRIDEN"
46661	//   "INJECTED_KERNELS_DEPRECATED"
46662	//   "LARGE_DEPLOYMENT_WARNING"
46663	//   "MISSING_TYPE_DEPENDENCY"
46664	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
46665	//   "NEXT_HOP_CANNOT_IP_FORWARD"
46666	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
46667	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
46668	//   "NEXT_HOP_NOT_RUNNING"
46669	//   "NOT_CRITICAL_ERROR"
46670	//   "NO_RESULTS_ON_PAGE"
46671	//   "PARTIAL_SUCCESS"
46672	//   "REQUIRED_TOS_AGREEMENT"
46673	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
46674	//   "RESOURCE_NOT_DELETED"
46675	//   "SCHEMA_VALIDATION_IGNORED"
46676	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
46677	//   "UNDECLARED_PROPERTIES"
46678	//   "UNREACHABLE"
46679	Code string `json:"code,omitempty"`
46680
46681	// Data: [Output Only] Metadata about this warning in key: value format.
46682	// For example:
46683	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
46684	Data []*UrlMapListWarningData `json:"data,omitempty"`
46685
46686	// Message: [Output Only] A human-readable description of the warning
46687	// code.
46688	Message string `json:"message,omitempty"`
46689
46690	// ForceSendFields is a list of field names (e.g. "Code") to
46691	// unconditionally include in API requests. By default, fields with
46692	// empty values are omitted from API requests. However, any non-pointer,
46693	// non-interface field appearing in ForceSendFields will be sent to the
46694	// server regardless of whether the field is empty or not. This may be
46695	// used to include empty fields in Patch requests.
46696	ForceSendFields []string `json:"-"`
46697
46698	// NullFields is a list of field names (e.g. "Code") to include in API
46699	// requests with the JSON null value. By default, fields with empty
46700	// values are omitted from API requests. However, any field with an
46701	// empty value appearing in NullFields will be sent to the server as
46702	// null. It is an error if a field in this list has a non-empty value.
46703	// This may be used to include null fields in Patch requests.
46704	NullFields []string `json:"-"`
46705}
46706
46707func (s *UrlMapListWarning) MarshalJSON() ([]byte, error) {
46708	type NoMethod UrlMapListWarning
46709	raw := NoMethod(*s)
46710	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46711}
46712
46713type UrlMapListWarningData struct {
46714	// Key: [Output Only] A key that provides more detail on the warning
46715	// being returned. For example, for warnings where there are no results
46716	// in a list request for a particular zone, this key might be scope and
46717	// the key value might be the zone name. Other examples might be a key
46718	// indicating a deprecated resource and a suggested replacement, or a
46719	// warning about invalid network settings (for example, if an instance
46720	// attempts to perform IP forwarding but is not enabled for IP
46721	// forwarding).
46722	Key string `json:"key,omitempty"`
46723
46724	// Value: [Output Only] A warning data value corresponding to the key.
46725	Value string `json:"value,omitempty"`
46726
46727	// ForceSendFields is a list of field names (e.g. "Key") to
46728	// unconditionally include in API requests. By default, fields with
46729	// empty values are omitted from API requests. However, any non-pointer,
46730	// non-interface field appearing in ForceSendFields will be sent to the
46731	// server regardless of whether the field is empty or not. This may be
46732	// used to include empty fields in Patch requests.
46733	ForceSendFields []string `json:"-"`
46734
46735	// NullFields is a list of field names (e.g. "Key") to include in API
46736	// requests with the JSON null value. By default, fields with empty
46737	// values are omitted from API requests. However, any field with an
46738	// empty value appearing in NullFields will be sent to the server as
46739	// null. It is an error if a field in this list has a non-empty value.
46740	// This may be used to include null fields in Patch requests.
46741	NullFields []string `json:"-"`
46742}
46743
46744func (s *UrlMapListWarningData) MarshalJSON() ([]byte, error) {
46745	type NoMethod UrlMapListWarningData
46746	raw := NoMethod(*s)
46747	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46748}
46749
46750type UrlMapReference struct {
46751	UrlMap string `json:"urlMap,omitempty"`
46752
46753	// ForceSendFields is a list of field names (e.g. "UrlMap") to
46754	// unconditionally include in API requests. By default, fields with
46755	// empty values are omitted from API requests. However, any non-pointer,
46756	// non-interface field appearing in ForceSendFields will be sent to the
46757	// server regardless of whether the field is empty or not. This may be
46758	// used to include empty fields in Patch requests.
46759	ForceSendFields []string `json:"-"`
46760
46761	// NullFields is a list of field names (e.g. "UrlMap") to include in API
46762	// requests with the JSON null value. By default, fields with empty
46763	// values are omitted from API requests. However, any field with an
46764	// empty value appearing in NullFields will be sent to the server as
46765	// null. It is an error if a field in this list has a non-empty value.
46766	// This may be used to include null fields in Patch requests.
46767	NullFields []string `json:"-"`
46768}
46769
46770func (s *UrlMapReference) MarshalJSON() ([]byte, error) {
46771	type NoMethod UrlMapReference
46772	raw := NoMethod(*s)
46773	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46774}
46775
46776// UrlMapTest: Message for the expected URL mappings.
46777type UrlMapTest struct {
46778	// Description: Description of this test case.
46779	Description string `json:"description,omitempty"`
46780
46781	// ExpectedOutputUrl: The expected output URL evaluated by load balancer
46782	// containing the scheme, host, path and query parameters.
46783	// For rules that forward requests to backends, the test passes only
46784	// when expectedOutputUrl matches the request forwarded by load balancer
46785	// to backends. For rules with urlRewrite, the test verifies that the
46786	// forwarded request matches hostRewrite and pathPrefixRewrite in the
46787	// urlRewrite action. When service is specified, expectedOutputUrl`s
46788	// scheme is ignored.
46789	// For rules with urlRedirect, the test passes only if expectedOutputUrl
46790	// matches the URL in the load balancer's redirect response. If
46791	// urlRedirect specifies https_redirect, the test passes only if the
46792	// scheme in expectedOutputUrl is also set to https. If urlRedirect
46793	// specifies strip_query, the test passes only if expectedOutputUrl does
46794	// not contain any query parameters.
46795	// expectedOutputUrl is optional when service is specified.
46796	ExpectedOutputUrl string `json:"expectedOutputUrl,omitempty"`
46797
46798	// ExpectedRedirectResponseCode: For rules with urlRedirect, the test
46799	// passes only if expectedRedirectResponseCode matches the HTTP status
46800	// code in load balancer's redirect
46801	// response.
46802	// expectedRedirectResponseCode cannot be set when service is set.
46803	ExpectedRedirectResponseCode int64 `json:"expectedRedirectResponseCode,omitempty"`
46804
46805	// Headers: HTTP headers for this request. If headers contains a host
46806	// header, then host must also match the header value.
46807	Headers []*UrlMapTestHeader `json:"headers,omitempty"`
46808
46809	// Host: Host portion of the URL. If headers contains a host header,
46810	// then host must also match the header value.
46811	Host string `json:"host,omitempty"`
46812
46813	// Path: Path portion of the URL.
46814	Path string `json:"path,omitempty"`
46815
46816	// Service: Expected BackendService or BackendBucket resource the given
46817	// URL should be mapped to.
46818	// service cannot be set if expectedRedirectResponseCode is set.
46819	Service string `json:"service,omitempty"`
46820
46821	// ForceSendFields is a list of field names (e.g. "Description") to
46822	// unconditionally include in API requests. By default, fields with
46823	// empty values are omitted from API requests. However, any non-pointer,
46824	// non-interface field appearing in ForceSendFields will be sent to the
46825	// server regardless of whether the field is empty or not. This may be
46826	// used to include empty fields in Patch requests.
46827	ForceSendFields []string `json:"-"`
46828
46829	// NullFields is a list of field names (e.g. "Description") to include
46830	// in API requests with the JSON null value. By default, fields with
46831	// empty values are omitted from API requests. However, any field with
46832	// an empty value appearing in NullFields will be sent to the server as
46833	// null. It is an error if a field in this list has a non-empty value.
46834	// This may be used to include null fields in Patch requests.
46835	NullFields []string `json:"-"`
46836}
46837
46838func (s *UrlMapTest) MarshalJSON() ([]byte, error) {
46839	type NoMethod UrlMapTest
46840	raw := NoMethod(*s)
46841	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46842}
46843
46844// UrlMapTestHeader: HTTP headers used in UrlMapTests.
46845type UrlMapTestHeader struct {
46846	// Name: Header name.
46847	Name string `json:"name,omitempty"`
46848
46849	// Value: Header value.
46850	Value string `json:"value,omitempty"`
46851
46852	// ForceSendFields is a list of field names (e.g. "Name") to
46853	// unconditionally include in API requests. By default, fields with
46854	// empty values are omitted from API requests. However, any non-pointer,
46855	// non-interface field appearing in ForceSendFields will be sent to the
46856	// server regardless of whether the field is empty or not. This may be
46857	// used to include empty fields in Patch requests.
46858	ForceSendFields []string `json:"-"`
46859
46860	// NullFields is a list of field names (e.g. "Name") to include in API
46861	// requests with the JSON null value. By default, fields with empty
46862	// values are omitted from API requests. However, any field with an
46863	// empty value appearing in NullFields will be sent to the server as
46864	// null. It is an error if a field in this list has a non-empty value.
46865	// This may be used to include null fields in Patch requests.
46866	NullFields []string `json:"-"`
46867}
46868
46869func (s *UrlMapTestHeader) MarshalJSON() ([]byte, error) {
46870	type NoMethod UrlMapTestHeader
46871	raw := NoMethod(*s)
46872	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46873}
46874
46875// UrlMapValidationResult: Message representing the validation result
46876// for a UrlMap.
46877type UrlMapValidationResult struct {
46878	LoadErrors []string `json:"loadErrors,omitempty"`
46879
46880	// LoadSucceeded: Whether the given UrlMap can be successfully loaded.
46881	// If false, 'loadErrors' indicates the reasons.
46882	LoadSucceeded bool `json:"loadSucceeded,omitempty"`
46883
46884	TestFailures []*TestFailure `json:"testFailures,omitempty"`
46885
46886	// TestPassed: If successfully loaded, this field indicates whether the
46887	// test passed. If false, 'testFailures's indicate the reason of
46888	// failure.
46889	TestPassed bool `json:"testPassed,omitempty"`
46890
46891	// ForceSendFields is a list of field names (e.g. "LoadErrors") to
46892	// unconditionally include in API requests. By default, fields with
46893	// empty values are omitted from API requests. However, any non-pointer,
46894	// non-interface field appearing in ForceSendFields will be sent to the
46895	// server regardless of whether the field is empty or not. This may be
46896	// used to include empty fields in Patch requests.
46897	ForceSendFields []string `json:"-"`
46898
46899	// NullFields is a list of field names (e.g. "LoadErrors") to include in
46900	// API requests with the JSON null value. By default, fields with empty
46901	// values are omitted from API requests. However, any field with an
46902	// empty value appearing in NullFields will be sent to the server as
46903	// null. It is an error if a field in this list has a non-empty value.
46904	// This may be used to include null fields in Patch requests.
46905	NullFields []string `json:"-"`
46906}
46907
46908func (s *UrlMapValidationResult) MarshalJSON() ([]byte, error) {
46909	type NoMethod UrlMapValidationResult
46910	raw := NoMethod(*s)
46911	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46912}
46913
46914type UrlMapsAggregatedList struct {
46915	// Id: [Output Only] Unique identifier for the resource; defined by the
46916	// server.
46917	Id string `json:"id,omitempty"`
46918
46919	// Items: A list of UrlMapsScopedList resources.
46920	Items map[string]UrlMapsScopedList `json:"items,omitempty"`
46921
46922	// Kind: Type of resource.
46923	Kind string `json:"kind,omitempty"`
46924
46925	// NextPageToken: [Output Only] This token allows you to get the next
46926	// page of results for list requests. If the number of results is larger
46927	// than maxResults, use the nextPageToken as a value for the query
46928	// parameter pageToken in the next list request. Subsequent list
46929	// requests will have their own nextPageToken to continue paging through
46930	// the results.
46931	NextPageToken string `json:"nextPageToken,omitempty"`
46932
46933	// SelfLink: [Output Only] Server-defined URL for this resource.
46934	SelfLink string `json:"selfLink,omitempty"`
46935
46936	// Unreachables: [Output Only] Unreachable resources.
46937	Unreachables []string `json:"unreachables,omitempty"`
46938
46939	// Warning: [Output Only] Informational warning message.
46940	Warning *UrlMapsAggregatedListWarning `json:"warning,omitempty"`
46941
46942	// ServerResponse contains the HTTP response code and headers from the
46943	// server.
46944	googleapi.ServerResponse `json:"-"`
46945
46946	// ForceSendFields is a list of field names (e.g. "Id") to
46947	// unconditionally include in API requests. By default, fields with
46948	// empty values are omitted from API requests. However, any non-pointer,
46949	// non-interface field appearing in ForceSendFields will be sent to the
46950	// server regardless of whether the field is empty or not. This may be
46951	// used to include empty fields in Patch requests.
46952	ForceSendFields []string `json:"-"`
46953
46954	// NullFields is a list of field names (e.g. "Id") to include in API
46955	// requests with the JSON null value. By default, fields with empty
46956	// values are omitted from API requests. However, any field with an
46957	// empty value appearing in NullFields will be sent to the server as
46958	// null. It is an error if a field in this list has a non-empty value.
46959	// This may be used to include null fields in Patch requests.
46960	NullFields []string `json:"-"`
46961}
46962
46963func (s *UrlMapsAggregatedList) MarshalJSON() ([]byte, error) {
46964	type NoMethod UrlMapsAggregatedList
46965	raw := NoMethod(*s)
46966	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46967}
46968
46969// UrlMapsAggregatedListWarning: [Output Only] Informational warning
46970// message.
46971type UrlMapsAggregatedListWarning struct {
46972	// Code: [Output Only] A warning code, if applicable. For example,
46973	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
46974	// the response.
46975	//
46976	// Possible values:
46977	//   "CLEANUP_FAILED"
46978	//   "DEPRECATED_RESOURCE_USED"
46979	//   "DEPRECATED_TYPE_USED"
46980	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
46981	//   "EXPERIMENTAL_TYPE_USED"
46982	//   "EXTERNAL_API_WARNING"
46983	//   "FIELD_VALUE_OVERRIDEN"
46984	//   "INJECTED_KERNELS_DEPRECATED"
46985	//   "LARGE_DEPLOYMENT_WARNING"
46986	//   "MISSING_TYPE_DEPENDENCY"
46987	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
46988	//   "NEXT_HOP_CANNOT_IP_FORWARD"
46989	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
46990	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
46991	//   "NEXT_HOP_NOT_RUNNING"
46992	//   "NOT_CRITICAL_ERROR"
46993	//   "NO_RESULTS_ON_PAGE"
46994	//   "PARTIAL_SUCCESS"
46995	//   "REQUIRED_TOS_AGREEMENT"
46996	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
46997	//   "RESOURCE_NOT_DELETED"
46998	//   "SCHEMA_VALIDATION_IGNORED"
46999	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
47000	//   "UNDECLARED_PROPERTIES"
47001	//   "UNREACHABLE"
47002	Code string `json:"code,omitempty"`
47003
47004	// Data: [Output Only] Metadata about this warning in key: value format.
47005	// For example:
47006	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
47007	Data []*UrlMapsAggregatedListWarningData `json:"data,omitempty"`
47008
47009	// Message: [Output Only] A human-readable description of the warning
47010	// code.
47011	Message string `json:"message,omitempty"`
47012
47013	// ForceSendFields is a list of field names (e.g. "Code") to
47014	// unconditionally include in API requests. By default, fields with
47015	// empty values are omitted from API requests. However, any non-pointer,
47016	// non-interface field appearing in ForceSendFields will be sent to the
47017	// server regardless of whether the field is empty or not. This may be
47018	// used to include empty fields in Patch requests.
47019	ForceSendFields []string `json:"-"`
47020
47021	// NullFields is a list of field names (e.g. "Code") to include in API
47022	// requests with the JSON null value. By default, fields with empty
47023	// values are omitted from API requests. However, any field with an
47024	// empty value appearing in NullFields will be sent to the server as
47025	// null. It is an error if a field in this list has a non-empty value.
47026	// This may be used to include null fields in Patch requests.
47027	NullFields []string `json:"-"`
47028}
47029
47030func (s *UrlMapsAggregatedListWarning) MarshalJSON() ([]byte, error) {
47031	type NoMethod UrlMapsAggregatedListWarning
47032	raw := NoMethod(*s)
47033	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47034}
47035
47036type UrlMapsAggregatedListWarningData struct {
47037	// Key: [Output Only] A key that provides more detail on the warning
47038	// being returned. For example, for warnings where there are no results
47039	// in a list request for a particular zone, this key might be scope and
47040	// the key value might be the zone name. Other examples might be a key
47041	// indicating a deprecated resource and a suggested replacement, or a
47042	// warning about invalid network settings (for example, if an instance
47043	// attempts to perform IP forwarding but is not enabled for IP
47044	// forwarding).
47045	Key string `json:"key,omitempty"`
47046
47047	// Value: [Output Only] A warning data value corresponding to the key.
47048	Value string `json:"value,omitempty"`
47049
47050	// ForceSendFields is a list of field names (e.g. "Key") to
47051	// unconditionally include in API requests. By default, fields with
47052	// empty values are omitted from API requests. However, any non-pointer,
47053	// non-interface field appearing in ForceSendFields will be sent to the
47054	// server regardless of whether the field is empty or not. This may be
47055	// used to include empty fields in Patch requests.
47056	ForceSendFields []string `json:"-"`
47057
47058	// NullFields is a list of field names (e.g. "Key") to include in API
47059	// requests with the JSON null value. By default, fields with empty
47060	// values are omitted from API requests. However, any field with an
47061	// empty value appearing in NullFields will be sent to the server as
47062	// null. It is an error if a field in this list has a non-empty value.
47063	// This may be used to include null fields in Patch requests.
47064	NullFields []string `json:"-"`
47065}
47066
47067func (s *UrlMapsAggregatedListWarningData) MarshalJSON() ([]byte, error) {
47068	type NoMethod UrlMapsAggregatedListWarningData
47069	raw := NoMethod(*s)
47070	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47071}
47072
47073type UrlMapsScopedList struct {
47074	// UrlMaps: A list of UrlMaps contained in this scope.
47075	UrlMaps []*UrlMap `json:"urlMaps,omitempty"`
47076
47077	// Warning: Informational warning which replaces the list of backend
47078	// services when the list is empty.
47079	Warning *UrlMapsScopedListWarning `json:"warning,omitempty"`
47080
47081	// ForceSendFields is a list of field names (e.g. "UrlMaps") to
47082	// unconditionally include in API requests. By default, fields with
47083	// empty values are omitted from API requests. However, any non-pointer,
47084	// non-interface field appearing in ForceSendFields will be sent to the
47085	// server regardless of whether the field is empty or not. This may be
47086	// used to include empty fields in Patch requests.
47087	ForceSendFields []string `json:"-"`
47088
47089	// NullFields is a list of field names (e.g. "UrlMaps") to include in
47090	// API requests with the JSON null value. By default, fields with empty
47091	// values are omitted from API requests. However, any field with an
47092	// empty value appearing in NullFields will be sent to the server as
47093	// null. It is an error if a field in this list has a non-empty value.
47094	// This may be used to include null fields in Patch requests.
47095	NullFields []string `json:"-"`
47096}
47097
47098func (s *UrlMapsScopedList) MarshalJSON() ([]byte, error) {
47099	type NoMethod UrlMapsScopedList
47100	raw := NoMethod(*s)
47101	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47102}
47103
47104// UrlMapsScopedListWarning: Informational warning which replaces the
47105// list of backend services when the list is empty.
47106type UrlMapsScopedListWarning struct {
47107	// Code: [Output Only] A warning code, if applicable. For example,
47108	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
47109	// the response.
47110	//
47111	// Possible values:
47112	//   "CLEANUP_FAILED"
47113	//   "DEPRECATED_RESOURCE_USED"
47114	//   "DEPRECATED_TYPE_USED"
47115	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
47116	//   "EXPERIMENTAL_TYPE_USED"
47117	//   "EXTERNAL_API_WARNING"
47118	//   "FIELD_VALUE_OVERRIDEN"
47119	//   "INJECTED_KERNELS_DEPRECATED"
47120	//   "LARGE_DEPLOYMENT_WARNING"
47121	//   "MISSING_TYPE_DEPENDENCY"
47122	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
47123	//   "NEXT_HOP_CANNOT_IP_FORWARD"
47124	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
47125	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
47126	//   "NEXT_HOP_NOT_RUNNING"
47127	//   "NOT_CRITICAL_ERROR"
47128	//   "NO_RESULTS_ON_PAGE"
47129	//   "PARTIAL_SUCCESS"
47130	//   "REQUIRED_TOS_AGREEMENT"
47131	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
47132	//   "RESOURCE_NOT_DELETED"
47133	//   "SCHEMA_VALIDATION_IGNORED"
47134	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
47135	//   "UNDECLARED_PROPERTIES"
47136	//   "UNREACHABLE"
47137	Code string `json:"code,omitempty"`
47138
47139	// Data: [Output Only] Metadata about this warning in key: value format.
47140	// For example:
47141	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
47142	Data []*UrlMapsScopedListWarningData `json:"data,omitempty"`
47143
47144	// Message: [Output Only] A human-readable description of the warning
47145	// code.
47146	Message string `json:"message,omitempty"`
47147
47148	// ForceSendFields is a list of field names (e.g. "Code") to
47149	// unconditionally include in API requests. By default, fields with
47150	// empty values are omitted from API requests. However, any non-pointer,
47151	// non-interface field appearing in ForceSendFields will be sent to the
47152	// server regardless of whether the field is empty or not. This may be
47153	// used to include empty fields in Patch requests.
47154	ForceSendFields []string `json:"-"`
47155
47156	// NullFields is a list of field names (e.g. "Code") to include in API
47157	// requests with the JSON null value. By default, fields with empty
47158	// values are omitted from API requests. However, any field with an
47159	// empty value appearing in NullFields will be sent to the server as
47160	// null. It is an error if a field in this list has a non-empty value.
47161	// This may be used to include null fields in Patch requests.
47162	NullFields []string `json:"-"`
47163}
47164
47165func (s *UrlMapsScopedListWarning) MarshalJSON() ([]byte, error) {
47166	type NoMethod UrlMapsScopedListWarning
47167	raw := NoMethod(*s)
47168	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47169}
47170
47171type UrlMapsScopedListWarningData struct {
47172	// Key: [Output Only] A key that provides more detail on the warning
47173	// being returned. For example, for warnings where there are no results
47174	// in a list request for a particular zone, this key might be scope and
47175	// the key value might be the zone name. Other examples might be a key
47176	// indicating a deprecated resource and a suggested replacement, or a
47177	// warning about invalid network settings (for example, if an instance
47178	// attempts to perform IP forwarding but is not enabled for IP
47179	// forwarding).
47180	Key string `json:"key,omitempty"`
47181
47182	// Value: [Output Only] A warning data value corresponding to the key.
47183	Value string `json:"value,omitempty"`
47184
47185	// ForceSendFields is a list of field names (e.g. "Key") to
47186	// unconditionally include in API requests. By default, fields with
47187	// empty values are omitted from API requests. However, any non-pointer,
47188	// non-interface field appearing in ForceSendFields will be sent to the
47189	// server regardless of whether the field is empty or not. This may be
47190	// used to include empty fields in Patch requests.
47191	ForceSendFields []string `json:"-"`
47192
47193	// NullFields is a list of field names (e.g. "Key") to include in API
47194	// requests with the JSON null value. By default, fields with empty
47195	// values are omitted from API requests. However, any field with an
47196	// empty value appearing in NullFields will be sent to the server as
47197	// null. It is an error if a field in this list has a non-empty value.
47198	// This may be used to include null fields in Patch requests.
47199	NullFields []string `json:"-"`
47200}
47201
47202func (s *UrlMapsScopedListWarningData) MarshalJSON() ([]byte, error) {
47203	type NoMethod UrlMapsScopedListWarningData
47204	raw := NoMethod(*s)
47205	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47206}
47207
47208type UrlMapsValidateRequest struct {
47209	// Resource: Content of the UrlMap to be validated.
47210	Resource *UrlMap `json:"resource,omitempty"`
47211
47212	// ForceSendFields is a list of field names (e.g. "Resource") to
47213	// unconditionally include in API requests. By default, fields with
47214	// empty values are omitted from API requests. However, any non-pointer,
47215	// non-interface field appearing in ForceSendFields will be sent to the
47216	// server regardless of whether the field is empty or not. This may be
47217	// used to include empty fields in Patch requests.
47218	ForceSendFields []string `json:"-"`
47219
47220	// NullFields is a list of field names (e.g. "Resource") to include in
47221	// API requests with the JSON null value. By default, fields with empty
47222	// values are omitted from API requests. However, any field with an
47223	// empty value appearing in NullFields will be sent to the server as
47224	// null. It is an error if a field in this list has a non-empty value.
47225	// This may be used to include null fields in Patch requests.
47226	NullFields []string `json:"-"`
47227}
47228
47229func (s *UrlMapsValidateRequest) MarshalJSON() ([]byte, error) {
47230	type NoMethod UrlMapsValidateRequest
47231	raw := NoMethod(*s)
47232	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47233}
47234
47235type UrlMapsValidateResponse struct {
47236	Result *UrlMapValidationResult `json:"result,omitempty"`
47237
47238	// ServerResponse contains the HTTP response code and headers from the
47239	// server.
47240	googleapi.ServerResponse `json:"-"`
47241
47242	// ForceSendFields is a list of field names (e.g. "Result") to
47243	// unconditionally include in API requests. By default, fields with
47244	// empty values are omitted from API requests. However, any non-pointer,
47245	// non-interface field appearing in ForceSendFields will be sent to the
47246	// server regardless of whether the field is empty or not. This may be
47247	// used to include empty fields in Patch requests.
47248	ForceSendFields []string `json:"-"`
47249
47250	// NullFields is a list of field names (e.g. "Result") to include in API
47251	// requests with the JSON null value. By default, fields with empty
47252	// values are omitted from API requests. However, any field with an
47253	// empty value appearing in NullFields will be sent to the server as
47254	// null. It is an error if a field in this list has a non-empty value.
47255	// This may be used to include null fields in Patch requests.
47256	NullFields []string `json:"-"`
47257}
47258
47259func (s *UrlMapsValidateResponse) MarshalJSON() ([]byte, error) {
47260	type NoMethod UrlMapsValidateResponse
47261	raw := NoMethod(*s)
47262	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47263}
47264
47265// UrlRewrite: The spec for modifying the path before sending the
47266// request to the matched backend service.
47267type UrlRewrite struct {
47268	// HostRewrite: Prior to forwarding the request to the selected service,
47269	// the request's host header is replaced with contents of
47270	// hostRewrite.
47271	// The value must be between 1 and 255 characters.
47272	HostRewrite string `json:"hostRewrite,omitempty"`
47273
47274	// PathPrefixRewrite: Prior to forwarding the request to the selected
47275	// backend service, the matching portion of the request's path is
47276	// replaced by pathPrefixRewrite.
47277	// The value must be between 1 and 1024 characters.
47278	PathPrefixRewrite string `json:"pathPrefixRewrite,omitempty"`
47279
47280	// ForceSendFields is a list of field names (e.g. "HostRewrite") to
47281	// unconditionally include in API requests. By default, fields with
47282	// empty values are omitted from API requests. However, any non-pointer,
47283	// non-interface field appearing in ForceSendFields will be sent to the
47284	// server regardless of whether the field is empty or not. This may be
47285	// used to include empty fields in Patch requests.
47286	ForceSendFields []string `json:"-"`
47287
47288	// NullFields is a list of field names (e.g. "HostRewrite") to include
47289	// in API requests with the JSON null value. By default, fields with
47290	// empty values are omitted from API requests. However, any field with
47291	// an empty value appearing in NullFields will be sent to the server as
47292	// null. It is an error if a field in this list has a non-empty value.
47293	// This may be used to include null fields in Patch requests.
47294	NullFields []string `json:"-"`
47295}
47296
47297func (s *UrlRewrite) MarshalJSON() ([]byte, error) {
47298	type NoMethod UrlRewrite
47299	raw := NoMethod(*s)
47300	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47301}
47302
47303// UsableSubnetwork: Subnetwork which the current user has
47304// compute.subnetworks.use permission on.
47305type UsableSubnetwork struct {
47306	// IpCidrRange: The range of internal addresses that are owned by this
47307	// subnetwork.
47308	IpCidrRange string `json:"ipCidrRange,omitempty"`
47309
47310	// Network: Network URL.
47311	Network string `json:"network,omitempty"`
47312
47313	// SecondaryIpRanges: Secondary IP ranges.
47314	SecondaryIpRanges []*UsableSubnetworkSecondaryRange `json:"secondaryIpRanges,omitempty"`
47315
47316	// Subnetwork: Subnetwork URL.
47317	Subnetwork string `json:"subnetwork,omitempty"`
47318
47319	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
47320	// unconditionally include in API requests. By default, fields with
47321	// empty values are omitted from API requests. However, any non-pointer,
47322	// non-interface field appearing in ForceSendFields will be sent to the
47323	// server regardless of whether the field is empty or not. This may be
47324	// used to include empty fields in Patch requests.
47325	ForceSendFields []string `json:"-"`
47326
47327	// NullFields is a list of field names (e.g. "IpCidrRange") to include
47328	// in API requests with the JSON null value. By default, fields with
47329	// empty values are omitted from API requests. However, any field with
47330	// an empty value appearing in NullFields will be sent to the server as
47331	// null. It is an error if a field in this list has a non-empty value.
47332	// This may be used to include null fields in Patch requests.
47333	NullFields []string `json:"-"`
47334}
47335
47336func (s *UsableSubnetwork) MarshalJSON() ([]byte, error) {
47337	type NoMethod UsableSubnetwork
47338	raw := NoMethod(*s)
47339	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47340}
47341
47342// UsableSubnetworkSecondaryRange: Secondary IP range of a usable
47343// subnetwork.
47344type UsableSubnetworkSecondaryRange struct {
47345	// IpCidrRange: The range of IP addresses belonging to this subnetwork
47346	// secondary range.
47347	IpCidrRange string `json:"ipCidrRange,omitempty"`
47348
47349	// RangeName: The name associated with this subnetwork secondary range,
47350	// used when adding an alias IP range to a VM instance. The name must be
47351	// 1-63 characters long, and comply with RFC1035. The name must be
47352	// unique within the subnetwork.
47353	RangeName string `json:"rangeName,omitempty"`
47354
47355	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
47356	// unconditionally include in API requests. By default, fields with
47357	// empty values are omitted from API requests. However, any non-pointer,
47358	// non-interface field appearing in ForceSendFields will be sent to the
47359	// server regardless of whether the field is empty or not. This may be
47360	// used to include empty fields in Patch requests.
47361	ForceSendFields []string `json:"-"`
47362
47363	// NullFields is a list of field names (e.g. "IpCidrRange") to include
47364	// in API requests with the JSON null value. By default, fields with
47365	// empty values are omitted from API requests. However, any field with
47366	// an empty value appearing in NullFields will be sent to the server as
47367	// null. It is an error if a field in this list has a non-empty value.
47368	// This may be used to include null fields in Patch requests.
47369	NullFields []string `json:"-"`
47370}
47371
47372func (s *UsableSubnetworkSecondaryRange) MarshalJSON() ([]byte, error) {
47373	type NoMethod UsableSubnetworkSecondaryRange
47374	raw := NoMethod(*s)
47375	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47376}
47377
47378type UsableSubnetworksAggregatedList struct {
47379	// Id: [Output Only] The unique identifier for the resource. This
47380	// identifier is defined by the server.
47381	Id string `json:"id,omitempty"`
47382
47383	// Items: [Output] A list of usable subnetwork URLs.
47384	Items []*UsableSubnetwork `json:"items,omitempty"`
47385
47386	// Kind: [Output Only] Type of resource. Always
47387	// compute#usableSubnetworksAggregatedList for aggregated lists of
47388	// usable subnetworks.
47389	Kind string `json:"kind,omitempty"`
47390
47391	// NextPageToken: [Output Only] This token allows you to get the next
47392	// page of results for list requests. If the number of results is larger
47393	// than maxResults, use the nextPageToken as a value for the query
47394	// parameter pageToken in the next list request. Subsequent list
47395	// requests will have their own nextPageToken to continue paging through
47396	// the results.
47397	NextPageToken string `json:"nextPageToken,omitempty"`
47398
47399	// SelfLink: [Output Only] Server-defined URL for this resource.
47400	SelfLink string `json:"selfLink,omitempty"`
47401
47402	// Warning: [Output Only] Informational warning message.
47403	Warning *UsableSubnetworksAggregatedListWarning `json:"warning,omitempty"`
47404
47405	// ServerResponse contains the HTTP response code and headers from the
47406	// server.
47407	googleapi.ServerResponse `json:"-"`
47408
47409	// ForceSendFields is a list of field names (e.g. "Id") to
47410	// unconditionally include in API requests. By default, fields with
47411	// empty values are omitted from API requests. However, any non-pointer,
47412	// non-interface field appearing in ForceSendFields will be sent to the
47413	// server regardless of whether the field is empty or not. This may be
47414	// used to include empty fields in Patch requests.
47415	ForceSendFields []string `json:"-"`
47416
47417	// NullFields is a list of field names (e.g. "Id") to include in API
47418	// requests with the JSON null value. By default, fields with empty
47419	// values are omitted from API requests. However, any field with an
47420	// empty value appearing in NullFields will be sent to the server as
47421	// null. It is an error if a field in this list has a non-empty value.
47422	// This may be used to include null fields in Patch requests.
47423	NullFields []string `json:"-"`
47424}
47425
47426func (s *UsableSubnetworksAggregatedList) MarshalJSON() ([]byte, error) {
47427	type NoMethod UsableSubnetworksAggregatedList
47428	raw := NoMethod(*s)
47429	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47430}
47431
47432// UsableSubnetworksAggregatedListWarning: [Output Only] Informational
47433// warning message.
47434type UsableSubnetworksAggregatedListWarning struct {
47435	// Code: [Output Only] A warning code, if applicable. For example,
47436	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
47437	// the response.
47438	//
47439	// Possible values:
47440	//   "CLEANUP_FAILED"
47441	//   "DEPRECATED_RESOURCE_USED"
47442	//   "DEPRECATED_TYPE_USED"
47443	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
47444	//   "EXPERIMENTAL_TYPE_USED"
47445	//   "EXTERNAL_API_WARNING"
47446	//   "FIELD_VALUE_OVERRIDEN"
47447	//   "INJECTED_KERNELS_DEPRECATED"
47448	//   "LARGE_DEPLOYMENT_WARNING"
47449	//   "MISSING_TYPE_DEPENDENCY"
47450	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
47451	//   "NEXT_HOP_CANNOT_IP_FORWARD"
47452	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
47453	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
47454	//   "NEXT_HOP_NOT_RUNNING"
47455	//   "NOT_CRITICAL_ERROR"
47456	//   "NO_RESULTS_ON_PAGE"
47457	//   "PARTIAL_SUCCESS"
47458	//   "REQUIRED_TOS_AGREEMENT"
47459	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
47460	//   "RESOURCE_NOT_DELETED"
47461	//   "SCHEMA_VALIDATION_IGNORED"
47462	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
47463	//   "UNDECLARED_PROPERTIES"
47464	//   "UNREACHABLE"
47465	Code string `json:"code,omitempty"`
47466
47467	// Data: [Output Only] Metadata about this warning in key: value format.
47468	// For example:
47469	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
47470	Data []*UsableSubnetworksAggregatedListWarningData `json:"data,omitempty"`
47471
47472	// Message: [Output Only] A human-readable description of the warning
47473	// code.
47474	Message string `json:"message,omitempty"`
47475
47476	// ForceSendFields is a list of field names (e.g. "Code") to
47477	// unconditionally include in API requests. By default, fields with
47478	// empty values are omitted from API requests. However, any non-pointer,
47479	// non-interface field appearing in ForceSendFields will be sent to the
47480	// server regardless of whether the field is empty or not. This may be
47481	// used to include empty fields in Patch requests.
47482	ForceSendFields []string `json:"-"`
47483
47484	// NullFields is a list of field names (e.g. "Code") to include in API
47485	// requests with the JSON null value. By default, fields with empty
47486	// values are omitted from API requests. However, any field with an
47487	// empty value appearing in NullFields will be sent to the server as
47488	// null. It is an error if a field in this list has a non-empty value.
47489	// This may be used to include null fields in Patch requests.
47490	NullFields []string `json:"-"`
47491}
47492
47493func (s *UsableSubnetworksAggregatedListWarning) MarshalJSON() ([]byte, error) {
47494	type NoMethod UsableSubnetworksAggregatedListWarning
47495	raw := NoMethod(*s)
47496	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47497}
47498
47499type UsableSubnetworksAggregatedListWarningData struct {
47500	// Key: [Output Only] A key that provides more detail on the warning
47501	// being returned. For example, for warnings where there are no results
47502	// in a list request for a particular zone, this key might be scope and
47503	// the key value might be the zone name. Other examples might be a key
47504	// indicating a deprecated resource and a suggested replacement, or a
47505	// warning about invalid network settings (for example, if an instance
47506	// attempts to perform IP forwarding but is not enabled for IP
47507	// forwarding).
47508	Key string `json:"key,omitempty"`
47509
47510	// Value: [Output Only] A warning data value corresponding to the key.
47511	Value string `json:"value,omitempty"`
47512
47513	// ForceSendFields is a list of field names (e.g. "Key") to
47514	// unconditionally include in API requests. By default, fields with
47515	// empty values are omitted from API requests. However, any non-pointer,
47516	// non-interface field appearing in ForceSendFields will be sent to the
47517	// server regardless of whether the field is empty or not. This may be
47518	// used to include empty fields in Patch requests.
47519	ForceSendFields []string `json:"-"`
47520
47521	// NullFields is a list of field names (e.g. "Key") to include in API
47522	// requests with the JSON null value. By default, fields with empty
47523	// values are omitted from API requests. However, any field with an
47524	// empty value appearing in NullFields will be sent to the server as
47525	// null. It is an error if a field in this list has a non-empty value.
47526	// This may be used to include null fields in Patch requests.
47527	NullFields []string `json:"-"`
47528}
47529
47530func (s *UsableSubnetworksAggregatedListWarningData) MarshalJSON() ([]byte, error) {
47531	type NoMethod UsableSubnetworksAggregatedListWarningData
47532	raw := NoMethod(*s)
47533	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47534}
47535
47536// UsageExportLocation: The location in Cloud Storage and naming method
47537// of the daily usage report. Contains bucket_name and report_name
47538// prefix.
47539type UsageExportLocation struct {
47540	// BucketName: The name of an existing bucket in Cloud Storage where the
47541	// usage report object is stored. The Google Service Account is granted
47542	// write access to this bucket. This can either be the bucket name by
47543	// itself, such as example-bucket, or the bucket name with gs:// or
47544	// https://storage.googleapis.com/ in front of it, such as
47545	// gs://example-bucket.
47546	BucketName string `json:"bucketName,omitempty"`
47547
47548	// ReportNamePrefix: An optional prefix for the name of the usage report
47549	// object stored in bucketName. If not supplied, defaults to usage. The
47550	// report is stored as a CSV file named
47551	// report_name_prefix_gce_YYYYMMDD.csv where YYYYMMDD is the day of the
47552	// usage according to Pacific Time. If you supply a prefix, it should
47553	// conform to Cloud Storage object naming conventions.
47554	ReportNamePrefix string `json:"reportNamePrefix,omitempty"`
47555
47556	// ForceSendFields is a list of field names (e.g. "BucketName") to
47557	// unconditionally include in API requests. By default, fields with
47558	// empty values are omitted from API requests. However, any non-pointer,
47559	// non-interface field appearing in ForceSendFields will be sent to the
47560	// server regardless of whether the field is empty or not. This may be
47561	// used to include empty fields in Patch requests.
47562	ForceSendFields []string `json:"-"`
47563
47564	// NullFields is a list of field names (e.g. "BucketName") to include in
47565	// API requests with the JSON null value. By default, fields with empty
47566	// values are omitted from API requests. However, any field with an
47567	// empty value appearing in NullFields will be sent to the server as
47568	// null. It is an error if a field in this list has a non-empty value.
47569	// This may be used to include null fields in Patch requests.
47570	NullFields []string `json:"-"`
47571}
47572
47573func (s *UsageExportLocation) MarshalJSON() ([]byte, error) {
47574	type NoMethod UsageExportLocation
47575	raw := NoMethod(*s)
47576	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47577}
47578
47579// VmEndpointNatMappings: Contain information of Nat mapping for a VM
47580// endpoint (i.e., NIC).
47581type VmEndpointNatMappings struct {
47582	// InstanceName: Name of the VM instance which the endpoint belongs to
47583	InstanceName string `json:"instanceName,omitempty"`
47584
47585	InterfaceNatMappings []*VmEndpointNatMappingsInterfaceNatMappings `json:"interfaceNatMappings,omitempty"`
47586
47587	// ForceSendFields is a list of field names (e.g. "InstanceName") to
47588	// unconditionally include in API requests. By default, fields with
47589	// empty values are omitted from API requests. However, any non-pointer,
47590	// non-interface field appearing in ForceSendFields will be sent to the
47591	// server regardless of whether the field is empty or not. This may be
47592	// used to include empty fields in Patch requests.
47593	ForceSendFields []string `json:"-"`
47594
47595	// NullFields is a list of field names (e.g. "InstanceName") to include
47596	// in API requests with the JSON null value. By default, fields with
47597	// empty values are omitted from API requests. However, any field with
47598	// an empty value appearing in NullFields will be sent to the server as
47599	// null. It is an error if a field in this list has a non-empty value.
47600	// This may be used to include null fields in Patch requests.
47601	NullFields []string `json:"-"`
47602}
47603
47604func (s *VmEndpointNatMappings) MarshalJSON() ([]byte, error) {
47605	type NoMethod VmEndpointNatMappings
47606	raw := NoMethod(*s)
47607	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47608}
47609
47610// VmEndpointNatMappingsInterfaceNatMappings: Contain information of Nat
47611// mapping for an interface of this endpoint.
47612type VmEndpointNatMappingsInterfaceNatMappings struct {
47613	// DrainNatIpPortRanges: List of all drain IP:port-range mappings
47614	// assigned to this interface. These ranges are inclusive, that is, both
47615	// the first and the last ports can be used for NAT. Example:
47616	// ["2.2.2.2:12345-12355", "1.1.1.1:2234-2234"].
47617	DrainNatIpPortRanges []string `json:"drainNatIpPortRanges,omitempty"`
47618
47619	// NatIpPortRanges: A list of all IP:port-range mappings assigned to
47620	// this interface. These ranges are inclusive, that is, both the first
47621	// and the last ports can be used for NAT. Example:
47622	// ["2.2.2.2:12345-12355", "1.1.1.1:2234-2234"].
47623	NatIpPortRanges []string `json:"natIpPortRanges,omitempty"`
47624
47625	// NumTotalDrainNatPorts: Total number of drain ports across all NAT IPs
47626	// allocated to this interface. It equals to the aggregated port number
47627	// in the field drain_nat_ip_port_ranges.
47628	NumTotalDrainNatPorts int64 `json:"numTotalDrainNatPorts,omitempty"`
47629
47630	// NumTotalNatPorts: Total number of ports across all NAT IPs allocated
47631	// to this interface. It equals to the aggregated port number in the
47632	// field nat_ip_port_ranges.
47633	NumTotalNatPorts int64 `json:"numTotalNatPorts,omitempty"`
47634
47635	// SourceAliasIpRange: Alias IP range for this interface endpoint. It
47636	// will be a private (RFC 1918) IP range. Examples: "10.33.4.55/32", or
47637	// "192.168.5.0/24".
47638	SourceAliasIpRange string `json:"sourceAliasIpRange,omitempty"`
47639
47640	// SourceVirtualIp: Primary IP of the VM for this NIC.
47641	SourceVirtualIp string `json:"sourceVirtualIp,omitempty"`
47642
47643	// ForceSendFields is a list of field names (e.g.
47644	// "DrainNatIpPortRanges") to unconditionally include in API requests.
47645	// By default, fields with empty values are omitted from API requests.
47646	// However, any non-pointer, non-interface field appearing in
47647	// ForceSendFields will be sent to the server regardless of whether the
47648	// field is empty or not. This may be used to include empty fields in
47649	// Patch requests.
47650	ForceSendFields []string `json:"-"`
47651
47652	// NullFields is a list of field names (e.g. "DrainNatIpPortRanges") to
47653	// include in API requests with the JSON null value. By default, fields
47654	// with empty values are omitted from API requests. However, any field
47655	// with an empty value appearing in NullFields will be sent to the
47656	// server as null. It is an error if a field in this list has a
47657	// non-empty value. This may be used to include null fields in Patch
47658	// requests.
47659	NullFields []string `json:"-"`
47660}
47661
47662func (s *VmEndpointNatMappingsInterfaceNatMappings) MarshalJSON() ([]byte, error) {
47663	type NoMethod VmEndpointNatMappingsInterfaceNatMappings
47664	raw := NoMethod(*s)
47665	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47666}
47667
47668// VmEndpointNatMappingsList: Contains a list of VmEndpointNatMappings.
47669type VmEndpointNatMappingsList struct {
47670	// Id: [Output Only] The unique identifier for the resource. This
47671	// identifier is defined by the server.
47672	Id string `json:"id,omitempty"`
47673
47674	// Kind: [Output Only] Type of resource. Always
47675	// compute#vmEndpointNatMappingsList for lists of Nat mappings of VM
47676	// endpoints.
47677	Kind string `json:"kind,omitempty"`
47678
47679	// NextPageToken: [Output Only] This token allows you to get the next
47680	// page of results for list requests. If the number of results is larger
47681	// than maxResults, use the nextPageToken as a value for the query
47682	// parameter pageToken in the next list request. Subsequent list
47683	// requests will have their own nextPageToken to continue paging through
47684	// the results.
47685	NextPageToken string `json:"nextPageToken,omitempty"`
47686
47687	// Result: [Output Only] A list of Nat mapping information of VM
47688	// endpoints.
47689	Result []*VmEndpointNatMappings `json:"result,omitempty"`
47690
47691	// SelfLink: [Output Only] Server-defined URL for this resource.
47692	SelfLink string `json:"selfLink,omitempty"`
47693
47694	// Warning: [Output Only] Informational warning message.
47695	Warning *VmEndpointNatMappingsListWarning `json:"warning,omitempty"`
47696
47697	// ServerResponse contains the HTTP response code and headers from the
47698	// server.
47699	googleapi.ServerResponse `json:"-"`
47700
47701	// ForceSendFields is a list of field names (e.g. "Id") to
47702	// unconditionally include in API requests. By default, fields with
47703	// empty values are omitted from API requests. However, any non-pointer,
47704	// non-interface field appearing in ForceSendFields will be sent to the
47705	// server regardless of whether the field is empty or not. This may be
47706	// used to include empty fields in Patch requests.
47707	ForceSendFields []string `json:"-"`
47708
47709	// NullFields is a list of field names (e.g. "Id") to include in API
47710	// requests with the JSON null value. By default, fields with empty
47711	// values are omitted from API requests. However, any field with an
47712	// empty value appearing in NullFields will be sent to the server as
47713	// null. It is an error if a field in this list has a non-empty value.
47714	// This may be used to include null fields in Patch requests.
47715	NullFields []string `json:"-"`
47716}
47717
47718func (s *VmEndpointNatMappingsList) MarshalJSON() ([]byte, error) {
47719	type NoMethod VmEndpointNatMappingsList
47720	raw := NoMethod(*s)
47721	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47722}
47723
47724// VmEndpointNatMappingsListWarning: [Output Only] Informational warning
47725// message.
47726type VmEndpointNatMappingsListWarning struct {
47727	// Code: [Output Only] A warning code, if applicable. For example,
47728	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
47729	// the response.
47730	//
47731	// Possible values:
47732	//   "CLEANUP_FAILED"
47733	//   "DEPRECATED_RESOURCE_USED"
47734	//   "DEPRECATED_TYPE_USED"
47735	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
47736	//   "EXPERIMENTAL_TYPE_USED"
47737	//   "EXTERNAL_API_WARNING"
47738	//   "FIELD_VALUE_OVERRIDEN"
47739	//   "INJECTED_KERNELS_DEPRECATED"
47740	//   "LARGE_DEPLOYMENT_WARNING"
47741	//   "MISSING_TYPE_DEPENDENCY"
47742	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
47743	//   "NEXT_HOP_CANNOT_IP_FORWARD"
47744	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
47745	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
47746	//   "NEXT_HOP_NOT_RUNNING"
47747	//   "NOT_CRITICAL_ERROR"
47748	//   "NO_RESULTS_ON_PAGE"
47749	//   "PARTIAL_SUCCESS"
47750	//   "REQUIRED_TOS_AGREEMENT"
47751	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
47752	//   "RESOURCE_NOT_DELETED"
47753	//   "SCHEMA_VALIDATION_IGNORED"
47754	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
47755	//   "UNDECLARED_PROPERTIES"
47756	//   "UNREACHABLE"
47757	Code string `json:"code,omitempty"`
47758
47759	// Data: [Output Only] Metadata about this warning in key: value format.
47760	// For example:
47761	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
47762	Data []*VmEndpointNatMappingsListWarningData `json:"data,omitempty"`
47763
47764	// Message: [Output Only] A human-readable description of the warning
47765	// code.
47766	Message string `json:"message,omitempty"`
47767
47768	// ForceSendFields is a list of field names (e.g. "Code") to
47769	// unconditionally include in API requests. By default, fields with
47770	// empty values are omitted from API requests. However, any non-pointer,
47771	// non-interface field appearing in ForceSendFields will be sent to the
47772	// server regardless of whether the field is empty or not. This may be
47773	// used to include empty fields in Patch requests.
47774	ForceSendFields []string `json:"-"`
47775
47776	// NullFields is a list of field names (e.g. "Code") to include in API
47777	// requests with the JSON null value. By default, fields with empty
47778	// values are omitted from API requests. However, any field with an
47779	// empty value appearing in NullFields will be sent to the server as
47780	// null. It is an error if a field in this list has a non-empty value.
47781	// This may be used to include null fields in Patch requests.
47782	NullFields []string `json:"-"`
47783}
47784
47785func (s *VmEndpointNatMappingsListWarning) MarshalJSON() ([]byte, error) {
47786	type NoMethod VmEndpointNatMappingsListWarning
47787	raw := NoMethod(*s)
47788	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47789}
47790
47791type VmEndpointNatMappingsListWarningData struct {
47792	// Key: [Output Only] A key that provides more detail on the warning
47793	// being returned. For example, for warnings where there are no results
47794	// in a list request for a particular zone, this key might be scope and
47795	// the key value might be the zone name. Other examples might be a key
47796	// indicating a deprecated resource and a suggested replacement, or a
47797	// warning about invalid network settings (for example, if an instance
47798	// attempts to perform IP forwarding but is not enabled for IP
47799	// forwarding).
47800	Key string `json:"key,omitempty"`
47801
47802	// Value: [Output Only] A warning data value corresponding to the key.
47803	Value string `json:"value,omitempty"`
47804
47805	// ForceSendFields is a list of field names (e.g. "Key") to
47806	// unconditionally include in API requests. By default, fields with
47807	// empty values are omitted from API requests. However, any non-pointer,
47808	// non-interface field appearing in ForceSendFields will be sent to the
47809	// server regardless of whether the field is empty or not. This may be
47810	// used to include empty fields in Patch requests.
47811	ForceSendFields []string `json:"-"`
47812
47813	// NullFields is a list of field names (e.g. "Key") to include in API
47814	// requests with the JSON null value. By default, fields with empty
47815	// values are omitted from API requests. However, any field with an
47816	// empty value appearing in NullFields will be sent to the server as
47817	// null. It is an error if a field in this list has a non-empty value.
47818	// This may be used to include null fields in Patch requests.
47819	NullFields []string `json:"-"`
47820}
47821
47822func (s *VmEndpointNatMappingsListWarningData) MarshalJSON() ([]byte, error) {
47823	type NoMethod VmEndpointNatMappingsListWarningData
47824	raw := NoMethod(*s)
47825	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47826}
47827
47828// VpnGateway: Represents a HA VPN gateway.
47829//
47830// HA VPN is a high-availability (HA) Cloud VPN solution that lets you
47831// securely connect your on-premises network to your Google Cloud
47832// Virtual Private Cloud network through an IPsec VPN connection in a
47833// single region. For more information about Cloud HA VPN solutions, see
47834//  Cloud VPN topologies . (== resource_for {$api_version}.vpnGateways
47835// ==)
47836type VpnGateway struct {
47837	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
47838	// format.
47839	CreationTimestamp string `json:"creationTimestamp,omitempty"`
47840
47841	// Description: An optional description of this resource. Provide this
47842	// property when you create the resource.
47843	Description string `json:"description,omitempty"`
47844
47845	// Id: [Output Only] The unique identifier for the resource. This
47846	// identifier is defined by the server.
47847	Id uint64 `json:"id,omitempty,string"`
47848
47849	// Kind: [Output Only] Type of resource. Always compute#vpnGateway for
47850	// VPN gateways.
47851	Kind string `json:"kind,omitempty"`
47852
47853	// LabelFingerprint: A fingerprint for the labels being applied to this
47854	// VpnGateway, which is essentially a hash of the labels set used for
47855	// optimistic locking. The fingerprint is initially generated by Compute
47856	// Engine and changes after every request to modify or update labels.
47857	// You must always provide an up-to-date fingerprint hash in order to
47858	// update or change labels, otherwise the request will fail with error
47859	// 412 conditionNotMet.
47860	//
47861	// To see the latest fingerprint, make a get() request to retrieve an
47862	// VpnGateway.
47863	LabelFingerprint string `json:"labelFingerprint,omitempty"`
47864
47865	// Labels: Labels for this resource. These can only be added or modified
47866	// by the setLabels method. Each label key/value pair must comply with
47867	// RFC1035. Label values may be empty.
47868	Labels map[string]string `json:"labels,omitempty"`
47869
47870	// Name: Name of the resource. Provided by the client when the resource
47871	// is created. The name must be 1-63 characters long, and comply with
47872	// RFC1035. Specifically, the name must be 1-63 characters long and
47873	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
47874	// the first character must be a lowercase letter, and all following
47875	// characters must be a dash, lowercase letter, or digit, except the
47876	// last character, which cannot be a dash.
47877	Name string `json:"name,omitempty"`
47878
47879	// Network: URL of the network to which this VPN gateway is attached.
47880	// Provided by the client when the VPN gateway is created.
47881	Network string `json:"network,omitempty"`
47882
47883	// Region: [Output Only] URL of the region where the VPN gateway
47884	// resides.
47885	Region string `json:"region,omitempty"`
47886
47887	// SelfLink: [Output Only] Server-defined URL for the resource.
47888	SelfLink string `json:"selfLink,omitempty"`
47889
47890	// VpnInterfaces: A list of interfaces on this VPN gateway.
47891	VpnInterfaces []*VpnGatewayVpnGatewayInterface `json:"vpnInterfaces,omitempty"`
47892
47893	// ServerResponse contains the HTTP response code and headers from the
47894	// server.
47895	googleapi.ServerResponse `json:"-"`
47896
47897	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
47898	// to unconditionally include in API requests. By default, fields with
47899	// empty values are omitted from API requests. However, any non-pointer,
47900	// non-interface field appearing in ForceSendFields will be sent to the
47901	// server regardless of whether the field is empty or not. This may be
47902	// used to include empty fields in Patch requests.
47903	ForceSendFields []string `json:"-"`
47904
47905	// NullFields is a list of field names (e.g. "CreationTimestamp") to
47906	// include in API requests with the JSON null value. By default, fields
47907	// with empty values are omitted from API requests. However, any field
47908	// with an empty value appearing in NullFields will be sent to the
47909	// server as null. It is an error if a field in this list has a
47910	// non-empty value. This may be used to include null fields in Patch
47911	// requests.
47912	NullFields []string `json:"-"`
47913}
47914
47915func (s *VpnGateway) MarshalJSON() ([]byte, error) {
47916	type NoMethod VpnGateway
47917	raw := NoMethod(*s)
47918	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47919}
47920
47921type VpnGatewayAggregatedList struct {
47922	// Id: [Output Only] Unique identifier for the resource; defined by the
47923	// server.
47924	Id string `json:"id,omitempty"`
47925
47926	// Items: A list of VpnGateway resources.
47927	Items map[string]VpnGatewaysScopedList `json:"items,omitempty"`
47928
47929	// Kind: [Output Only] Type of resource. Always compute#vpnGateway for
47930	// VPN gateways.
47931	Kind string `json:"kind,omitempty"`
47932
47933	// NextPageToken: [Output Only] This token allows you to get the next
47934	// page of results for list requests. If the number of results is larger
47935	// than maxResults, use the nextPageToken as a value for the query
47936	// parameter pageToken in the next list request. Subsequent list
47937	// requests will have their own nextPageToken to continue paging through
47938	// the results.
47939	NextPageToken string `json:"nextPageToken,omitempty"`
47940
47941	// SelfLink: [Output Only] Server-defined URL for this resource.
47942	SelfLink string `json:"selfLink,omitempty"`
47943
47944	// Unreachables: [Output Only] Unreachable resources.
47945	Unreachables []string `json:"unreachables,omitempty"`
47946
47947	// Warning: [Output Only] Informational warning message.
47948	Warning *VpnGatewayAggregatedListWarning `json:"warning,omitempty"`
47949
47950	// ServerResponse contains the HTTP response code and headers from the
47951	// server.
47952	googleapi.ServerResponse `json:"-"`
47953
47954	// ForceSendFields is a list of field names (e.g. "Id") to
47955	// unconditionally include in API requests. By default, fields with
47956	// empty values are omitted from API requests. However, any non-pointer,
47957	// non-interface field appearing in ForceSendFields will be sent to the
47958	// server regardless of whether the field is empty or not. This may be
47959	// used to include empty fields in Patch requests.
47960	ForceSendFields []string `json:"-"`
47961
47962	// NullFields is a list of field names (e.g. "Id") to include in API
47963	// requests with the JSON null value. By default, fields with empty
47964	// values are omitted from API requests. However, any field with an
47965	// empty value appearing in NullFields will be sent to the server as
47966	// null. It is an error if a field in this list has a non-empty value.
47967	// This may be used to include null fields in Patch requests.
47968	NullFields []string `json:"-"`
47969}
47970
47971func (s *VpnGatewayAggregatedList) MarshalJSON() ([]byte, error) {
47972	type NoMethod VpnGatewayAggregatedList
47973	raw := NoMethod(*s)
47974	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47975}
47976
47977// VpnGatewayAggregatedListWarning: [Output Only] Informational warning
47978// message.
47979type VpnGatewayAggregatedListWarning struct {
47980	// Code: [Output Only] A warning code, if applicable. For example,
47981	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
47982	// the response.
47983	//
47984	// Possible values:
47985	//   "CLEANUP_FAILED"
47986	//   "DEPRECATED_RESOURCE_USED"
47987	//   "DEPRECATED_TYPE_USED"
47988	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
47989	//   "EXPERIMENTAL_TYPE_USED"
47990	//   "EXTERNAL_API_WARNING"
47991	//   "FIELD_VALUE_OVERRIDEN"
47992	//   "INJECTED_KERNELS_DEPRECATED"
47993	//   "LARGE_DEPLOYMENT_WARNING"
47994	//   "MISSING_TYPE_DEPENDENCY"
47995	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
47996	//   "NEXT_HOP_CANNOT_IP_FORWARD"
47997	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
47998	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
47999	//   "NEXT_HOP_NOT_RUNNING"
48000	//   "NOT_CRITICAL_ERROR"
48001	//   "NO_RESULTS_ON_PAGE"
48002	//   "PARTIAL_SUCCESS"
48003	//   "REQUIRED_TOS_AGREEMENT"
48004	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
48005	//   "RESOURCE_NOT_DELETED"
48006	//   "SCHEMA_VALIDATION_IGNORED"
48007	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
48008	//   "UNDECLARED_PROPERTIES"
48009	//   "UNREACHABLE"
48010	Code string `json:"code,omitempty"`
48011
48012	// Data: [Output Only] Metadata about this warning in key: value format.
48013	// For example:
48014	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
48015	Data []*VpnGatewayAggregatedListWarningData `json:"data,omitempty"`
48016
48017	// Message: [Output Only] A human-readable description of the warning
48018	// code.
48019	Message string `json:"message,omitempty"`
48020
48021	// ForceSendFields is a list of field names (e.g. "Code") to
48022	// unconditionally include in API requests. By default, fields with
48023	// empty values are omitted from API requests. However, any non-pointer,
48024	// non-interface field appearing in ForceSendFields will be sent to the
48025	// server regardless of whether the field is empty or not. This may be
48026	// used to include empty fields in Patch requests.
48027	ForceSendFields []string `json:"-"`
48028
48029	// NullFields is a list of field names (e.g. "Code") to include in API
48030	// requests with the JSON null value. By default, fields with empty
48031	// values are omitted from API requests. However, any field with an
48032	// empty value appearing in NullFields will be sent to the server as
48033	// null. It is an error if a field in this list has a non-empty value.
48034	// This may be used to include null fields in Patch requests.
48035	NullFields []string `json:"-"`
48036}
48037
48038func (s *VpnGatewayAggregatedListWarning) MarshalJSON() ([]byte, error) {
48039	type NoMethod VpnGatewayAggregatedListWarning
48040	raw := NoMethod(*s)
48041	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48042}
48043
48044type VpnGatewayAggregatedListWarningData struct {
48045	// Key: [Output Only] A key that provides more detail on the warning
48046	// being returned. For example, for warnings where there are no results
48047	// in a list request for a particular zone, this key might be scope and
48048	// the key value might be the zone name. Other examples might be a key
48049	// indicating a deprecated resource and a suggested replacement, or a
48050	// warning about invalid network settings (for example, if an instance
48051	// attempts to perform IP forwarding but is not enabled for IP
48052	// forwarding).
48053	Key string `json:"key,omitempty"`
48054
48055	// Value: [Output Only] A warning data value corresponding to the key.
48056	Value string `json:"value,omitempty"`
48057
48058	// ForceSendFields is a list of field names (e.g. "Key") to
48059	// unconditionally include in API requests. By default, fields with
48060	// empty values are omitted from API requests. However, any non-pointer,
48061	// non-interface field appearing in ForceSendFields will be sent to the
48062	// server regardless of whether the field is empty or not. This may be
48063	// used to include empty fields in Patch requests.
48064	ForceSendFields []string `json:"-"`
48065
48066	// NullFields is a list of field names (e.g. "Key") to include in API
48067	// requests with the JSON null value. By default, fields with empty
48068	// values are omitted from API requests. However, any field with an
48069	// empty value appearing in NullFields will be sent to the server as
48070	// null. It is an error if a field in this list has a non-empty value.
48071	// This may be used to include null fields in Patch requests.
48072	NullFields []string `json:"-"`
48073}
48074
48075func (s *VpnGatewayAggregatedListWarningData) MarshalJSON() ([]byte, error) {
48076	type NoMethod VpnGatewayAggregatedListWarningData
48077	raw := NoMethod(*s)
48078	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48079}
48080
48081// VpnGatewayList: Contains a list of VpnGateway resources.
48082type VpnGatewayList struct {
48083	// Id: [Output Only] Unique identifier for the resource; defined by the
48084	// server.
48085	Id string `json:"id,omitempty"`
48086
48087	// Items: A list of VpnGateway resources.
48088	Items []*VpnGateway `json:"items,omitempty"`
48089
48090	// Kind: [Output Only] Type of resource. Always compute#vpnGateway for
48091	// VPN gateways.
48092	Kind string `json:"kind,omitempty"`
48093
48094	// NextPageToken: [Output Only] This token allows you to get the next
48095	// page of results for list requests. If the number of results is larger
48096	// than maxResults, use the nextPageToken as a value for the query
48097	// parameter pageToken in the next list request. Subsequent list
48098	// requests will have their own nextPageToken to continue paging through
48099	// the results.
48100	NextPageToken string `json:"nextPageToken,omitempty"`
48101
48102	// SelfLink: [Output Only] Server-defined URL for this resource.
48103	SelfLink string `json:"selfLink,omitempty"`
48104
48105	// Warning: [Output Only] Informational warning message.
48106	Warning *VpnGatewayListWarning `json:"warning,omitempty"`
48107
48108	// ServerResponse contains the HTTP response code and headers from the
48109	// server.
48110	googleapi.ServerResponse `json:"-"`
48111
48112	// ForceSendFields is a list of field names (e.g. "Id") to
48113	// unconditionally include in API requests. By default, fields with
48114	// empty values are omitted from API requests. However, any non-pointer,
48115	// non-interface field appearing in ForceSendFields will be sent to the
48116	// server regardless of whether the field is empty or not. This may be
48117	// used to include empty fields in Patch requests.
48118	ForceSendFields []string `json:"-"`
48119
48120	// NullFields is a list of field names (e.g. "Id") to include in API
48121	// requests with the JSON null value. By default, fields with empty
48122	// values are omitted from API requests. However, any field with an
48123	// empty value appearing in NullFields will be sent to the server as
48124	// null. It is an error if a field in this list has a non-empty value.
48125	// This may be used to include null fields in Patch requests.
48126	NullFields []string `json:"-"`
48127}
48128
48129func (s *VpnGatewayList) MarshalJSON() ([]byte, error) {
48130	type NoMethod VpnGatewayList
48131	raw := NoMethod(*s)
48132	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48133}
48134
48135// VpnGatewayListWarning: [Output Only] Informational warning message.
48136type VpnGatewayListWarning struct {
48137	// Code: [Output Only] A warning code, if applicable. For example,
48138	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
48139	// the response.
48140	//
48141	// Possible values:
48142	//   "CLEANUP_FAILED"
48143	//   "DEPRECATED_RESOURCE_USED"
48144	//   "DEPRECATED_TYPE_USED"
48145	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
48146	//   "EXPERIMENTAL_TYPE_USED"
48147	//   "EXTERNAL_API_WARNING"
48148	//   "FIELD_VALUE_OVERRIDEN"
48149	//   "INJECTED_KERNELS_DEPRECATED"
48150	//   "LARGE_DEPLOYMENT_WARNING"
48151	//   "MISSING_TYPE_DEPENDENCY"
48152	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
48153	//   "NEXT_HOP_CANNOT_IP_FORWARD"
48154	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
48155	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
48156	//   "NEXT_HOP_NOT_RUNNING"
48157	//   "NOT_CRITICAL_ERROR"
48158	//   "NO_RESULTS_ON_PAGE"
48159	//   "PARTIAL_SUCCESS"
48160	//   "REQUIRED_TOS_AGREEMENT"
48161	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
48162	//   "RESOURCE_NOT_DELETED"
48163	//   "SCHEMA_VALIDATION_IGNORED"
48164	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
48165	//   "UNDECLARED_PROPERTIES"
48166	//   "UNREACHABLE"
48167	Code string `json:"code,omitempty"`
48168
48169	// Data: [Output Only] Metadata about this warning in key: value format.
48170	// For example:
48171	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
48172	Data []*VpnGatewayListWarningData `json:"data,omitempty"`
48173
48174	// Message: [Output Only] A human-readable description of the warning
48175	// code.
48176	Message string `json:"message,omitempty"`
48177
48178	// ForceSendFields is a list of field names (e.g. "Code") to
48179	// unconditionally include in API requests. By default, fields with
48180	// empty values are omitted from API requests. However, any non-pointer,
48181	// non-interface field appearing in ForceSendFields will be sent to the
48182	// server regardless of whether the field is empty or not. This may be
48183	// used to include empty fields in Patch requests.
48184	ForceSendFields []string `json:"-"`
48185
48186	// NullFields is a list of field names (e.g. "Code") to include in API
48187	// requests with the JSON null value. By default, fields with empty
48188	// values are omitted from API requests. However, any field with an
48189	// empty value appearing in NullFields will be sent to the server as
48190	// null. It is an error if a field in this list has a non-empty value.
48191	// This may be used to include null fields in Patch requests.
48192	NullFields []string `json:"-"`
48193}
48194
48195func (s *VpnGatewayListWarning) MarshalJSON() ([]byte, error) {
48196	type NoMethod VpnGatewayListWarning
48197	raw := NoMethod(*s)
48198	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48199}
48200
48201type VpnGatewayListWarningData struct {
48202	// Key: [Output Only] A key that provides more detail on the warning
48203	// being returned. For example, for warnings where there are no results
48204	// in a list request for a particular zone, this key might be scope and
48205	// the key value might be the zone name. Other examples might be a key
48206	// indicating a deprecated resource and a suggested replacement, or a
48207	// warning about invalid network settings (for example, if an instance
48208	// attempts to perform IP forwarding but is not enabled for IP
48209	// forwarding).
48210	Key string `json:"key,omitempty"`
48211
48212	// Value: [Output Only] A warning data value corresponding to the key.
48213	Value string `json:"value,omitempty"`
48214
48215	// ForceSendFields is a list of field names (e.g. "Key") to
48216	// unconditionally include in API requests. By default, fields with
48217	// empty values are omitted from API requests. However, any non-pointer,
48218	// non-interface field appearing in ForceSendFields will be sent to the
48219	// server regardless of whether the field is empty or not. This may be
48220	// used to include empty fields in Patch requests.
48221	ForceSendFields []string `json:"-"`
48222
48223	// NullFields is a list of field names (e.g. "Key") to include in API
48224	// requests with the JSON null value. By default, fields with empty
48225	// values are omitted from API requests. However, any field with an
48226	// empty value appearing in NullFields will be sent to the server as
48227	// null. It is an error if a field in this list has a non-empty value.
48228	// This may be used to include null fields in Patch requests.
48229	NullFields []string `json:"-"`
48230}
48231
48232func (s *VpnGatewayListWarningData) MarshalJSON() ([]byte, error) {
48233	type NoMethod VpnGatewayListWarningData
48234	raw := NoMethod(*s)
48235	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48236}
48237
48238type VpnGatewayStatus struct {
48239	// VpnConnections: List of VPN connection for this VpnGateway.
48240	VpnConnections []*VpnGatewayStatusVpnConnection `json:"vpnConnections,omitempty"`
48241
48242	// ForceSendFields is a list of field names (e.g. "VpnConnections") to
48243	// unconditionally include in API requests. By default, fields with
48244	// empty values are omitted from API requests. However, any non-pointer,
48245	// non-interface field appearing in ForceSendFields will be sent to the
48246	// server regardless of whether the field is empty or not. This may be
48247	// used to include empty fields in Patch requests.
48248	ForceSendFields []string `json:"-"`
48249
48250	// NullFields is a list of field names (e.g. "VpnConnections") to
48251	// include in API requests with the JSON null value. By default, fields
48252	// with empty values are omitted from API requests. However, any field
48253	// with an empty value appearing in NullFields will be sent to the
48254	// server as null. It is an error if a field in this list has a
48255	// non-empty value. This may be used to include null fields in Patch
48256	// requests.
48257	NullFields []string `json:"-"`
48258}
48259
48260func (s *VpnGatewayStatus) MarshalJSON() ([]byte, error) {
48261	type NoMethod VpnGatewayStatus
48262	raw := NoMethod(*s)
48263	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48264}
48265
48266// VpnGatewayStatusHighAvailabilityRequirementState: Describes the high
48267// availability requirement state for the VPN connection between this
48268// Cloud VPN gateway and a peer gateway.
48269type VpnGatewayStatusHighAvailabilityRequirementState struct {
48270	// State: Indicates the high availability requirement state for the VPN
48271	// connection. Valid values are CONNECTION_REDUNDANCY_MET,
48272	// CONNECTION_REDUNDANCY_NOT_MET.
48273	//
48274	// Possible values:
48275	//   "CONNECTION_REDUNDANCY_MET"
48276	//   "CONNECTION_REDUNDANCY_NOT_MET"
48277	State string `json:"state,omitempty"`
48278
48279	// UnsatisfiedReason: Indicates the reason why the VPN connection does
48280	// not meet the high availability redundancy criteria/requirement. Valid
48281	// values is INCOMPLETE_TUNNELS_COVERAGE.
48282	//
48283	// Possible values:
48284	//   "INCOMPLETE_TUNNELS_COVERAGE"
48285	UnsatisfiedReason string `json:"unsatisfiedReason,omitempty"`
48286
48287	// ForceSendFields is a list of field names (e.g. "State") to
48288	// unconditionally include in API requests. By default, fields with
48289	// empty values are omitted from API requests. However, any non-pointer,
48290	// non-interface field appearing in ForceSendFields will be sent to the
48291	// server regardless of whether the field is empty or not. This may be
48292	// used to include empty fields in Patch requests.
48293	ForceSendFields []string `json:"-"`
48294
48295	// NullFields is a list of field names (e.g. "State") to include in API
48296	// requests with the JSON null value. By default, fields with empty
48297	// values are omitted from API requests. However, any field with an
48298	// empty value appearing in NullFields will be sent to the server as
48299	// null. It is an error if a field in this list has a non-empty value.
48300	// This may be used to include null fields in Patch requests.
48301	NullFields []string `json:"-"`
48302}
48303
48304func (s *VpnGatewayStatusHighAvailabilityRequirementState) MarshalJSON() ([]byte, error) {
48305	type NoMethod VpnGatewayStatusHighAvailabilityRequirementState
48306	raw := NoMethod(*s)
48307	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48308}
48309
48310// VpnGatewayStatusTunnel: Contains some information about a VPN tunnel.
48311type VpnGatewayStatusTunnel struct {
48312	// LocalGatewayInterface: The VPN gateway interface this VPN tunnel is
48313	// associated with.
48314	LocalGatewayInterface int64 `json:"localGatewayInterface,omitempty"`
48315
48316	// PeerGatewayInterface: The peer gateway interface this VPN tunnel is
48317	// connected to, the peer gateway could either be an external VPN
48318	// gateway or GCP VPN gateway.
48319	PeerGatewayInterface int64 `json:"peerGatewayInterface,omitempty"`
48320
48321	// TunnelUrl: URL reference to the VPN tunnel.
48322	TunnelUrl string `json:"tunnelUrl,omitempty"`
48323
48324	// ForceSendFields is a list of field names (e.g.
48325	// "LocalGatewayInterface") to unconditionally include in API requests.
48326	// By default, fields with empty values are omitted from API requests.
48327	// However, any non-pointer, non-interface field appearing in
48328	// ForceSendFields will be sent to the server regardless of whether the
48329	// field is empty or not. This may be used to include empty fields in
48330	// Patch requests.
48331	ForceSendFields []string `json:"-"`
48332
48333	// NullFields is a list of field names (e.g. "LocalGatewayInterface") to
48334	// include in API requests with the JSON null value. By default, fields
48335	// with empty values are omitted from API requests. However, any field
48336	// with an empty value appearing in NullFields will be sent to the
48337	// server as null. It is an error if a field in this list has a
48338	// non-empty value. This may be used to include null fields in Patch
48339	// requests.
48340	NullFields []string `json:"-"`
48341}
48342
48343func (s *VpnGatewayStatusTunnel) MarshalJSON() ([]byte, error) {
48344	type NoMethod VpnGatewayStatusTunnel
48345	raw := NoMethod(*s)
48346	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48347}
48348
48349// VpnGatewayStatusVpnConnection: A VPN connection contains all VPN
48350// tunnels connected from this VpnGateway to the same peer gateway. The
48351// peer gateway could either be a external VPN gateway or GCP VPN
48352// gateway.
48353type VpnGatewayStatusVpnConnection struct {
48354	// PeerExternalGateway: URL reference to the peer external VPN gateways
48355	// to which the VPN tunnels in this VPN connection are connected. This
48356	// field is mutually exclusive with peer_gcp_gateway.
48357	PeerExternalGateway string `json:"peerExternalGateway,omitempty"`
48358
48359	// PeerGcpGateway: URL reference to the peer side VPN gateways to which
48360	// the VPN tunnels in this VPN connection are connected. This field is
48361	// mutually exclusive with peer_gcp_gateway.
48362	PeerGcpGateway string `json:"peerGcpGateway,omitempty"`
48363
48364	// State: HighAvailabilityRequirementState for the VPN connection.
48365	State *VpnGatewayStatusHighAvailabilityRequirementState `json:"state,omitempty"`
48366
48367	// Tunnels: List of VPN tunnels that are in this VPN connection.
48368	Tunnels []*VpnGatewayStatusTunnel `json:"tunnels,omitempty"`
48369
48370	// ForceSendFields is a list of field names (e.g. "PeerExternalGateway")
48371	// to unconditionally include in API requests. By default, fields with
48372	// empty values are omitted from API requests. However, any non-pointer,
48373	// non-interface field appearing in ForceSendFields will be sent to the
48374	// server regardless of whether the field is empty or not. This may be
48375	// used to include empty fields in Patch requests.
48376	ForceSendFields []string `json:"-"`
48377
48378	// NullFields is a list of field names (e.g. "PeerExternalGateway") to
48379	// include in API requests with the JSON null value. By default, fields
48380	// with empty values are omitted from API requests. However, any field
48381	// with an empty value appearing in NullFields will be sent to the
48382	// server as null. It is an error if a field in this list has a
48383	// non-empty value. This may be used to include null fields in Patch
48384	// requests.
48385	NullFields []string `json:"-"`
48386}
48387
48388func (s *VpnGatewayStatusVpnConnection) MarshalJSON() ([]byte, error) {
48389	type NoMethod VpnGatewayStatusVpnConnection
48390	raw := NoMethod(*s)
48391	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48392}
48393
48394// VpnGatewayVpnGatewayInterface: A VPN gateway interface.
48395type VpnGatewayVpnGatewayInterface struct {
48396	// Id: The numeric ID of this VPN gateway interface.
48397	Id int64 `json:"id,omitempty"`
48398
48399	// InterconnectAttachment: URL of the interconnect attachment resource.
48400	// When the value of this field is present, the VPN Gateway will be used
48401	// for IPsec-encrypted Cloud Interconnect; all Egress or Ingress traffic
48402	// for this VPN Gateway interface will go through the specified
48403	// interconnect attachment resource.
48404	InterconnectAttachment string `json:"interconnectAttachment,omitempty"`
48405
48406	// IpAddress: [Output Only] The external IP address for this VPN gateway
48407	// interface.
48408	IpAddress string `json:"ipAddress,omitempty"`
48409
48410	// ForceSendFields is a list of field names (e.g. "Id") to
48411	// unconditionally include in API requests. By default, fields with
48412	// empty values are omitted from API requests. However, any non-pointer,
48413	// non-interface field appearing in ForceSendFields will be sent to the
48414	// server regardless of whether the field is empty or not. This may be
48415	// used to include empty fields in Patch requests.
48416	ForceSendFields []string `json:"-"`
48417
48418	// NullFields is a list of field names (e.g. "Id") to include in API
48419	// requests with the JSON null value. By default, fields with empty
48420	// values are omitted from API requests. However, any field with an
48421	// empty value appearing in NullFields will be sent to the server as
48422	// null. It is an error if a field in this list has a non-empty value.
48423	// This may be used to include null fields in Patch requests.
48424	NullFields []string `json:"-"`
48425}
48426
48427func (s *VpnGatewayVpnGatewayInterface) MarshalJSON() ([]byte, error) {
48428	type NoMethod VpnGatewayVpnGatewayInterface
48429	raw := NoMethod(*s)
48430	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48431}
48432
48433type VpnGatewaysGetStatusResponse struct {
48434	Result *VpnGatewayStatus `json:"result,omitempty"`
48435
48436	// ServerResponse contains the HTTP response code and headers from the
48437	// server.
48438	googleapi.ServerResponse `json:"-"`
48439
48440	// ForceSendFields is a list of field names (e.g. "Result") to
48441	// unconditionally include in API requests. By default, fields with
48442	// empty values are omitted from API requests. However, any non-pointer,
48443	// non-interface field appearing in ForceSendFields will be sent to the
48444	// server regardless of whether the field is empty or not. This may be
48445	// used to include empty fields in Patch requests.
48446	ForceSendFields []string `json:"-"`
48447
48448	// NullFields is a list of field names (e.g. "Result") to include in API
48449	// requests with the JSON null value. By default, fields with empty
48450	// values are omitted from API requests. However, any field with an
48451	// empty value appearing in NullFields will be sent to the server as
48452	// null. It is an error if a field in this list has a non-empty value.
48453	// This may be used to include null fields in Patch requests.
48454	NullFields []string `json:"-"`
48455}
48456
48457func (s *VpnGatewaysGetStatusResponse) MarshalJSON() ([]byte, error) {
48458	type NoMethod VpnGatewaysGetStatusResponse
48459	raw := NoMethod(*s)
48460	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48461}
48462
48463type VpnGatewaysScopedList struct {
48464	// VpnGateways: [Output Only] A list of VPN gateways contained in this
48465	// scope.
48466	VpnGateways []*VpnGateway `json:"vpnGateways,omitempty"`
48467
48468	// Warning: [Output Only] Informational warning which replaces the list
48469	// of addresses when the list is empty.
48470	Warning *VpnGatewaysScopedListWarning `json:"warning,omitempty"`
48471
48472	// ForceSendFields is a list of field names (e.g. "VpnGateways") to
48473	// unconditionally include in API requests. By default, fields with
48474	// empty values are omitted from API requests. However, any non-pointer,
48475	// non-interface field appearing in ForceSendFields will be sent to the
48476	// server regardless of whether the field is empty or not. This may be
48477	// used to include empty fields in Patch requests.
48478	ForceSendFields []string `json:"-"`
48479
48480	// NullFields is a list of field names (e.g. "VpnGateways") to include
48481	// in API requests with the JSON null value. By default, fields with
48482	// empty values are omitted from API requests. However, any field with
48483	// an empty value appearing in NullFields will be sent to the server as
48484	// null. It is an error if a field in this list has a non-empty value.
48485	// This may be used to include null fields in Patch requests.
48486	NullFields []string `json:"-"`
48487}
48488
48489func (s *VpnGatewaysScopedList) MarshalJSON() ([]byte, error) {
48490	type NoMethod VpnGatewaysScopedList
48491	raw := NoMethod(*s)
48492	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48493}
48494
48495// VpnGatewaysScopedListWarning: [Output Only] Informational warning
48496// which replaces the list of addresses when the list is empty.
48497type VpnGatewaysScopedListWarning struct {
48498	// Code: [Output Only] A warning code, if applicable. For example,
48499	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
48500	// the response.
48501	//
48502	// Possible values:
48503	//   "CLEANUP_FAILED"
48504	//   "DEPRECATED_RESOURCE_USED"
48505	//   "DEPRECATED_TYPE_USED"
48506	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
48507	//   "EXPERIMENTAL_TYPE_USED"
48508	//   "EXTERNAL_API_WARNING"
48509	//   "FIELD_VALUE_OVERRIDEN"
48510	//   "INJECTED_KERNELS_DEPRECATED"
48511	//   "LARGE_DEPLOYMENT_WARNING"
48512	//   "MISSING_TYPE_DEPENDENCY"
48513	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
48514	//   "NEXT_HOP_CANNOT_IP_FORWARD"
48515	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
48516	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
48517	//   "NEXT_HOP_NOT_RUNNING"
48518	//   "NOT_CRITICAL_ERROR"
48519	//   "NO_RESULTS_ON_PAGE"
48520	//   "PARTIAL_SUCCESS"
48521	//   "REQUIRED_TOS_AGREEMENT"
48522	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
48523	//   "RESOURCE_NOT_DELETED"
48524	//   "SCHEMA_VALIDATION_IGNORED"
48525	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
48526	//   "UNDECLARED_PROPERTIES"
48527	//   "UNREACHABLE"
48528	Code string `json:"code,omitempty"`
48529
48530	// Data: [Output Only] Metadata about this warning in key: value format.
48531	// For example:
48532	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
48533	Data []*VpnGatewaysScopedListWarningData `json:"data,omitempty"`
48534
48535	// Message: [Output Only] A human-readable description of the warning
48536	// code.
48537	Message string `json:"message,omitempty"`
48538
48539	// ForceSendFields is a list of field names (e.g. "Code") to
48540	// unconditionally include in API requests. By default, fields with
48541	// empty values are omitted from API requests. However, any non-pointer,
48542	// non-interface field appearing in ForceSendFields will be sent to the
48543	// server regardless of whether the field is empty or not. This may be
48544	// used to include empty fields in Patch requests.
48545	ForceSendFields []string `json:"-"`
48546
48547	// NullFields is a list of field names (e.g. "Code") to include in API
48548	// requests with the JSON null value. By default, fields with empty
48549	// values are omitted from API requests. However, any field with an
48550	// empty value appearing in NullFields will be sent to the server as
48551	// null. It is an error if a field in this list has a non-empty value.
48552	// This may be used to include null fields in Patch requests.
48553	NullFields []string `json:"-"`
48554}
48555
48556func (s *VpnGatewaysScopedListWarning) MarshalJSON() ([]byte, error) {
48557	type NoMethod VpnGatewaysScopedListWarning
48558	raw := NoMethod(*s)
48559	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48560}
48561
48562type VpnGatewaysScopedListWarningData struct {
48563	// Key: [Output Only] A key that provides more detail on the warning
48564	// being returned. For example, for warnings where there are no results
48565	// in a list request for a particular zone, this key might be scope and
48566	// the key value might be the zone name. Other examples might be a key
48567	// indicating a deprecated resource and a suggested replacement, or a
48568	// warning about invalid network settings (for example, if an instance
48569	// attempts to perform IP forwarding but is not enabled for IP
48570	// forwarding).
48571	Key string `json:"key,omitempty"`
48572
48573	// Value: [Output Only] A warning data value corresponding to the key.
48574	Value string `json:"value,omitempty"`
48575
48576	// ForceSendFields is a list of field names (e.g. "Key") to
48577	// unconditionally include in API requests. By default, fields with
48578	// empty values are omitted from API requests. However, any non-pointer,
48579	// non-interface field appearing in ForceSendFields will be sent to the
48580	// server regardless of whether the field is empty or not. This may be
48581	// used to include empty fields in Patch requests.
48582	ForceSendFields []string `json:"-"`
48583
48584	// NullFields is a list of field names (e.g. "Key") to include in API
48585	// requests with the JSON null value. By default, fields with empty
48586	// values are omitted from API requests. However, any field with an
48587	// empty value appearing in NullFields will be sent to the server as
48588	// null. It is an error if a field in this list has a non-empty value.
48589	// This may be used to include null fields in Patch requests.
48590	NullFields []string `json:"-"`
48591}
48592
48593func (s *VpnGatewaysScopedListWarningData) MarshalJSON() ([]byte, error) {
48594	type NoMethod VpnGatewaysScopedListWarningData
48595	raw := NoMethod(*s)
48596	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48597}
48598
48599// VpnTunnel: Represents a Cloud VPN Tunnel resource.
48600//
48601// For more information about VPN, read the  the Cloud VPN Overview. (==
48602// resource_for {$api_version}.vpnTunnels ==)
48603type VpnTunnel struct {
48604	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
48605	// format.
48606	CreationTimestamp string `json:"creationTimestamp,omitempty"`
48607
48608	// Description: An optional description of this resource. Provide this
48609	// property when you create the resource.
48610	Description string `json:"description,omitempty"`
48611
48612	// DetailedStatus: [Output Only] Detailed status message for the VPN
48613	// tunnel.
48614	DetailedStatus string `json:"detailedStatus,omitempty"`
48615
48616	// Id: [Output Only] The unique identifier for the resource. This
48617	// identifier is defined by the server.
48618	Id uint64 `json:"id,omitempty,string"`
48619
48620	// IkeVersion: IKE protocol version to use when establishing the VPN
48621	// tunnel with the peer VPN gateway. Acceptable IKE versions are 1 or 2.
48622	// The default version is 2.
48623	IkeVersion int64 `json:"ikeVersion,omitempty"`
48624
48625	// Kind: [Output Only] Type of resource. Always compute#vpnTunnel for
48626	// VPN tunnels.
48627	Kind string `json:"kind,omitempty"`
48628
48629	// LabelFingerprint: A fingerprint for the labels being applied to this
48630	// VpnTunnel, which is essentially a hash of the labels set used for
48631	// optimistic locking. The fingerprint is initially generated by Compute
48632	// Engine and changes after every request to modify or update labels.
48633	// You must always provide an up-to-date fingerprint hash in order to
48634	// update or change labels, otherwise the request will fail with error
48635	// 412 conditionNotMet.
48636	//
48637	// To see the latest fingerprint, make a get() request to retrieve a
48638	// VpnTunnel.
48639	LabelFingerprint string `json:"labelFingerprint,omitempty"`
48640
48641	// Labels: Labels for this resource. These can only be added or modified
48642	// by the setLabels method. Each label key/value pair must comply with
48643	// RFC1035. Label values may be empty.
48644	Labels map[string]string `json:"labels,omitempty"`
48645
48646	// LocalTrafficSelector: Local traffic selector to use when establishing
48647	// the VPN tunnel with the peer VPN gateway. The value should be a CIDR
48648	// formatted string, for example: 192.168.0.0/16. The ranges must be
48649	// disjoint. Only IPv4 is supported.
48650	LocalTrafficSelector []string `json:"localTrafficSelector,omitempty"`
48651
48652	// Name: Name of the resource. Provided by the client when the resource
48653	// is created. The name must be 1-63 characters long, and comply with
48654	// RFC1035. Specifically, the name must be 1-63 characters long and
48655	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
48656	// the first character must be a lowercase letter, and all following
48657	// characters must be a dash, lowercase letter, or digit, except the
48658	// last character, which cannot be a dash.
48659	Name string `json:"name,omitempty"`
48660
48661	// PeerExternalGateway: URL of the peer side external VPN gateway to
48662	// which this VPN tunnel is connected. Provided by the client when the
48663	// VPN tunnel is created. This field is exclusive with the field
48664	// peerGcpGateway.
48665	PeerExternalGateway string `json:"peerExternalGateway,omitempty"`
48666
48667	// PeerExternalGatewayInterface: The interface ID of the external VPN
48668	// gateway to which this VPN tunnel is connected. Provided by the client
48669	// when the VPN tunnel is created.
48670	PeerExternalGatewayInterface int64 `json:"peerExternalGatewayInterface,omitempty"`
48671
48672	// PeerGcpGateway: URL of the peer side HA GCP VPN gateway to which this
48673	// VPN tunnel is connected. Provided by the client when the VPN tunnel
48674	// is created. This field can be used when creating highly available VPN
48675	// from VPC network to VPC network, the field is exclusive with the
48676	// field peerExternalGateway. If provided, the VPN tunnel will
48677	// automatically use the same vpnGatewayInterface ID in the peer GCP VPN
48678	// gateway.
48679	PeerGcpGateway string `json:"peerGcpGateway,omitempty"`
48680
48681	// PeerIp: IP address of the peer VPN gateway. Only IPv4 is supported.
48682	PeerIp string `json:"peerIp,omitempty"`
48683
48684	// Region: [Output Only] URL of the region where the VPN tunnel resides.
48685	// You must specify this field as part of the HTTP request URL. It is
48686	// not settable as a field in the request body.
48687	Region string `json:"region,omitempty"`
48688
48689	// RemoteTrafficSelector: Remote traffic selectors to use when
48690	// establishing the VPN tunnel with the peer VPN gateway. The value
48691	// should be a CIDR formatted string, for example: 192.168.0.0/16. The
48692	// ranges should be disjoint. Only IPv4 is supported.
48693	RemoteTrafficSelector []string `json:"remoteTrafficSelector,omitempty"`
48694
48695	// Router: URL of the router resource to be used for dynamic routing.
48696	Router string `json:"router,omitempty"`
48697
48698	// SelfLink: [Output Only] Server-defined URL for the resource.
48699	SelfLink string `json:"selfLink,omitempty"`
48700
48701	// SharedSecret: Shared secret used to set the secure session between
48702	// the Cloud VPN gateway and the peer VPN gateway.
48703	SharedSecret string `json:"sharedSecret,omitempty"`
48704
48705	// SharedSecretHash: Hash of the shared secret.
48706	SharedSecretHash string `json:"sharedSecretHash,omitempty"`
48707
48708	// Status: [Output Only] The status of the VPN tunnel, which can be one
48709	// of the following:
48710	// - PROVISIONING: Resource is being allocated for the VPN tunnel.
48711	// - WAITING_FOR_FULL_CONFIG: Waiting to receive all VPN-related configs
48712	// from the user. Network, TargetVpnGateway, VpnTunnel, ForwardingRule,
48713	// and Route resources are needed to setup the VPN tunnel.
48714	// - FIRST_HANDSHAKE: Successful first handshake with the peer VPN.
48715	// - ESTABLISHED: Secure session is successfully established with the
48716	// peer VPN.
48717	// - NETWORK_ERROR: Deprecated, replaced by NO_INCOMING_PACKETS
48718	// - AUTHORIZATION_ERROR: Auth error (for example, bad shared secret).
48719	//
48720	// - NEGOTIATION_FAILURE: Handshake failed.
48721	// - DEPROVISIONING: Resources are being deallocated for the VPN tunnel.
48722	//
48723	// - FAILED: Tunnel creation has failed and the tunnel is not ready to
48724	// be used.
48725	// - NO_INCOMING_PACKETS: No incoming packets from peer.
48726	// - REJECTED: Tunnel configuration was rejected, can be result of being
48727	// blacklisted.
48728	// - ALLOCATING_RESOURCES: Cloud VPN is in the process of allocating all
48729	// required resources.
48730	// - STOPPED: Tunnel is stopped due to its Forwarding Rules being
48731	// deleted for Classic VPN tunnels or the project is in frozen state.
48732	// - PEER_IDENTITY_MISMATCH: Peer identity does not match peer IP,
48733	// probably behind NAT.
48734	// - TS_NARROWING_NOT_ALLOWED: Traffic selector narrowing not allowed
48735	// for an HA-VPN tunnel.
48736	//
48737	// Possible values:
48738	//   "ALLOCATING_RESOURCES"
48739	//   "AUTHORIZATION_ERROR"
48740	//   "DEPROVISIONING"
48741	//   "ESTABLISHED"
48742	//   "FAILED"
48743	//   "FIRST_HANDSHAKE"
48744	//   "NEGOTIATION_FAILURE"
48745	//   "NETWORK_ERROR"
48746	//   "NO_INCOMING_PACKETS"
48747	//   "PROVISIONING"
48748	//   "REJECTED"
48749	//   "STOPPED"
48750	//   "WAITING_FOR_FULL_CONFIG"
48751	Status string `json:"status,omitempty"`
48752
48753	// TargetVpnGateway: URL of the Target VPN gateway with which this VPN
48754	// tunnel is associated. Provided by the client when the VPN tunnel is
48755	// created.
48756	TargetVpnGateway string `json:"targetVpnGateway,omitempty"`
48757
48758	// VpnGateway: URL of the VPN gateway with which this VPN tunnel is
48759	// associated. Provided by the client when the VPN tunnel is created.
48760	// This must be used (instead of target_vpn_gateway) if a High
48761	// Availability VPN gateway resource is created.
48762	VpnGateway string `json:"vpnGateway,omitempty"`
48763
48764	// VpnGatewayInterface: The interface ID of the VPN gateway with which
48765	// this VPN tunnel is associated.
48766	VpnGatewayInterface int64 `json:"vpnGatewayInterface,omitempty"`
48767
48768	// ServerResponse contains the HTTP response code and headers from the
48769	// server.
48770	googleapi.ServerResponse `json:"-"`
48771
48772	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
48773	// to unconditionally include in API requests. By default, fields with
48774	// empty values are omitted from API requests. However, any non-pointer,
48775	// non-interface field appearing in ForceSendFields will be sent to the
48776	// server regardless of whether the field is empty or not. This may be
48777	// used to include empty fields in Patch requests.
48778	ForceSendFields []string `json:"-"`
48779
48780	// NullFields is a list of field names (e.g. "CreationTimestamp") to
48781	// include in API requests with the JSON null value. By default, fields
48782	// with empty values are omitted from API requests. However, any field
48783	// with an empty value appearing in NullFields will be sent to the
48784	// server as null. It is an error if a field in this list has a
48785	// non-empty value. This may be used to include null fields in Patch
48786	// requests.
48787	NullFields []string `json:"-"`
48788}
48789
48790func (s *VpnTunnel) MarshalJSON() ([]byte, error) {
48791	type NoMethod VpnTunnel
48792	raw := NoMethod(*s)
48793	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48794}
48795
48796type VpnTunnelAggregatedList struct {
48797	// Id: [Output Only] Unique identifier for the resource; defined by the
48798	// server.
48799	Id string `json:"id,omitempty"`
48800
48801	// Items: A list of VpnTunnelsScopedList resources.
48802	Items map[string]VpnTunnelsScopedList `json:"items,omitempty"`
48803
48804	// Kind: [Output Only] Type of resource. Always compute#vpnTunnel for
48805	// VPN tunnels.
48806	Kind string `json:"kind,omitempty"`
48807
48808	// NextPageToken: [Output Only] This token allows you to get the next
48809	// page of results for list requests. If the number of results is larger
48810	// than maxResults, use the nextPageToken as a value for the query
48811	// parameter pageToken in the next list request. Subsequent list
48812	// requests will have their own nextPageToken to continue paging through
48813	// the results.
48814	NextPageToken string `json:"nextPageToken,omitempty"`
48815
48816	// SelfLink: [Output Only] Server-defined URL for this resource.
48817	SelfLink string `json:"selfLink,omitempty"`
48818
48819	// Unreachables: [Output Only] Unreachable resources.
48820	Unreachables []string `json:"unreachables,omitempty"`
48821
48822	// Warning: [Output Only] Informational warning message.
48823	Warning *VpnTunnelAggregatedListWarning `json:"warning,omitempty"`
48824
48825	// ServerResponse contains the HTTP response code and headers from the
48826	// server.
48827	googleapi.ServerResponse `json:"-"`
48828
48829	// ForceSendFields is a list of field names (e.g. "Id") to
48830	// unconditionally include in API requests. By default, fields with
48831	// empty values are omitted from API requests. However, any non-pointer,
48832	// non-interface field appearing in ForceSendFields will be sent to the
48833	// server regardless of whether the field is empty or not. This may be
48834	// used to include empty fields in Patch requests.
48835	ForceSendFields []string `json:"-"`
48836
48837	// NullFields is a list of field names (e.g. "Id") to include in API
48838	// requests with the JSON null value. By default, fields with empty
48839	// values are omitted from API requests. However, any field with an
48840	// empty value appearing in NullFields will be sent to the server as
48841	// null. It is an error if a field in this list has a non-empty value.
48842	// This may be used to include null fields in Patch requests.
48843	NullFields []string `json:"-"`
48844}
48845
48846func (s *VpnTunnelAggregatedList) MarshalJSON() ([]byte, error) {
48847	type NoMethod VpnTunnelAggregatedList
48848	raw := NoMethod(*s)
48849	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48850}
48851
48852// VpnTunnelAggregatedListWarning: [Output Only] Informational warning
48853// message.
48854type VpnTunnelAggregatedListWarning struct {
48855	// Code: [Output Only] A warning code, if applicable. For example,
48856	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
48857	// the response.
48858	//
48859	// Possible values:
48860	//   "CLEANUP_FAILED"
48861	//   "DEPRECATED_RESOURCE_USED"
48862	//   "DEPRECATED_TYPE_USED"
48863	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
48864	//   "EXPERIMENTAL_TYPE_USED"
48865	//   "EXTERNAL_API_WARNING"
48866	//   "FIELD_VALUE_OVERRIDEN"
48867	//   "INJECTED_KERNELS_DEPRECATED"
48868	//   "LARGE_DEPLOYMENT_WARNING"
48869	//   "MISSING_TYPE_DEPENDENCY"
48870	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
48871	//   "NEXT_HOP_CANNOT_IP_FORWARD"
48872	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
48873	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
48874	//   "NEXT_HOP_NOT_RUNNING"
48875	//   "NOT_CRITICAL_ERROR"
48876	//   "NO_RESULTS_ON_PAGE"
48877	//   "PARTIAL_SUCCESS"
48878	//   "REQUIRED_TOS_AGREEMENT"
48879	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
48880	//   "RESOURCE_NOT_DELETED"
48881	//   "SCHEMA_VALIDATION_IGNORED"
48882	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
48883	//   "UNDECLARED_PROPERTIES"
48884	//   "UNREACHABLE"
48885	Code string `json:"code,omitempty"`
48886
48887	// Data: [Output Only] Metadata about this warning in key: value format.
48888	// For example:
48889	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
48890	Data []*VpnTunnelAggregatedListWarningData `json:"data,omitempty"`
48891
48892	// Message: [Output Only] A human-readable description of the warning
48893	// code.
48894	Message string `json:"message,omitempty"`
48895
48896	// ForceSendFields is a list of field names (e.g. "Code") to
48897	// unconditionally include in API requests. By default, fields with
48898	// empty values are omitted from API requests. However, any non-pointer,
48899	// non-interface field appearing in ForceSendFields will be sent to the
48900	// server regardless of whether the field is empty or not. This may be
48901	// used to include empty fields in Patch requests.
48902	ForceSendFields []string `json:"-"`
48903
48904	// NullFields is a list of field names (e.g. "Code") to include in API
48905	// requests with the JSON null value. By default, fields with empty
48906	// values are omitted from API requests. However, any field with an
48907	// empty value appearing in NullFields will be sent to the server as
48908	// null. It is an error if a field in this list has a non-empty value.
48909	// This may be used to include null fields in Patch requests.
48910	NullFields []string `json:"-"`
48911}
48912
48913func (s *VpnTunnelAggregatedListWarning) MarshalJSON() ([]byte, error) {
48914	type NoMethod VpnTunnelAggregatedListWarning
48915	raw := NoMethod(*s)
48916	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48917}
48918
48919type VpnTunnelAggregatedListWarningData struct {
48920	// Key: [Output Only] A key that provides more detail on the warning
48921	// being returned. For example, for warnings where there are no results
48922	// in a list request for a particular zone, this key might be scope and
48923	// the key value might be the zone name. Other examples might be a key
48924	// indicating a deprecated resource and a suggested replacement, or a
48925	// warning about invalid network settings (for example, if an instance
48926	// attempts to perform IP forwarding but is not enabled for IP
48927	// forwarding).
48928	Key string `json:"key,omitempty"`
48929
48930	// Value: [Output Only] A warning data value corresponding to the key.
48931	Value string `json:"value,omitempty"`
48932
48933	// ForceSendFields is a list of field names (e.g. "Key") to
48934	// unconditionally include in API requests. By default, fields with
48935	// empty values are omitted from API requests. However, any non-pointer,
48936	// non-interface field appearing in ForceSendFields will be sent to the
48937	// server regardless of whether the field is empty or not. This may be
48938	// used to include empty fields in Patch requests.
48939	ForceSendFields []string `json:"-"`
48940
48941	// NullFields is a list of field names (e.g. "Key") to include in API
48942	// requests with the JSON null value. By default, fields with empty
48943	// values are omitted from API requests. However, any field with an
48944	// empty value appearing in NullFields will be sent to the server as
48945	// null. It is an error if a field in this list has a non-empty value.
48946	// This may be used to include null fields in Patch requests.
48947	NullFields []string `json:"-"`
48948}
48949
48950func (s *VpnTunnelAggregatedListWarningData) MarshalJSON() ([]byte, error) {
48951	type NoMethod VpnTunnelAggregatedListWarningData
48952	raw := NoMethod(*s)
48953	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48954}
48955
48956// VpnTunnelList: Contains a list of VpnTunnel resources.
48957type VpnTunnelList struct {
48958	// Id: [Output Only] Unique identifier for the resource; defined by the
48959	// server.
48960	Id string `json:"id,omitempty"`
48961
48962	// Items: A list of VpnTunnel resources.
48963	Items []*VpnTunnel `json:"items,omitempty"`
48964
48965	// Kind: [Output Only] Type of resource. Always compute#vpnTunnel for
48966	// VPN tunnels.
48967	Kind string `json:"kind,omitempty"`
48968
48969	// NextPageToken: [Output Only] This token allows you to get the next
48970	// page of results for list requests. If the number of results is larger
48971	// than maxResults, use the nextPageToken as a value for the query
48972	// parameter pageToken in the next list request. Subsequent list
48973	// requests will have their own nextPageToken to continue paging through
48974	// the results.
48975	NextPageToken string `json:"nextPageToken,omitempty"`
48976
48977	// SelfLink: [Output Only] Server-defined URL for this resource.
48978	SelfLink string `json:"selfLink,omitempty"`
48979
48980	// Warning: [Output Only] Informational warning message.
48981	Warning *VpnTunnelListWarning `json:"warning,omitempty"`
48982
48983	// ServerResponse contains the HTTP response code and headers from the
48984	// server.
48985	googleapi.ServerResponse `json:"-"`
48986
48987	// ForceSendFields is a list of field names (e.g. "Id") to
48988	// unconditionally include in API requests. By default, fields with
48989	// empty values are omitted from API requests. However, any non-pointer,
48990	// non-interface field appearing in ForceSendFields will be sent to the
48991	// server regardless of whether the field is empty or not. This may be
48992	// used to include empty fields in Patch requests.
48993	ForceSendFields []string `json:"-"`
48994
48995	// NullFields is a list of field names (e.g. "Id") to include in API
48996	// requests with the JSON null value. By default, fields with empty
48997	// values are omitted from API requests. However, any field with an
48998	// empty value appearing in NullFields will be sent to the server as
48999	// null. It is an error if a field in this list has a non-empty value.
49000	// This may be used to include null fields in Patch requests.
49001	NullFields []string `json:"-"`
49002}
49003
49004func (s *VpnTunnelList) MarshalJSON() ([]byte, error) {
49005	type NoMethod VpnTunnelList
49006	raw := NoMethod(*s)
49007	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49008}
49009
49010// VpnTunnelListWarning: [Output Only] Informational warning message.
49011type VpnTunnelListWarning struct {
49012	// Code: [Output Only] A warning code, if applicable. For example,
49013	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
49014	// the response.
49015	//
49016	// Possible values:
49017	//   "CLEANUP_FAILED"
49018	//   "DEPRECATED_RESOURCE_USED"
49019	//   "DEPRECATED_TYPE_USED"
49020	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
49021	//   "EXPERIMENTAL_TYPE_USED"
49022	//   "EXTERNAL_API_WARNING"
49023	//   "FIELD_VALUE_OVERRIDEN"
49024	//   "INJECTED_KERNELS_DEPRECATED"
49025	//   "LARGE_DEPLOYMENT_WARNING"
49026	//   "MISSING_TYPE_DEPENDENCY"
49027	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
49028	//   "NEXT_HOP_CANNOT_IP_FORWARD"
49029	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
49030	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
49031	//   "NEXT_HOP_NOT_RUNNING"
49032	//   "NOT_CRITICAL_ERROR"
49033	//   "NO_RESULTS_ON_PAGE"
49034	//   "PARTIAL_SUCCESS"
49035	//   "REQUIRED_TOS_AGREEMENT"
49036	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
49037	//   "RESOURCE_NOT_DELETED"
49038	//   "SCHEMA_VALIDATION_IGNORED"
49039	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
49040	//   "UNDECLARED_PROPERTIES"
49041	//   "UNREACHABLE"
49042	Code string `json:"code,omitempty"`
49043
49044	// Data: [Output Only] Metadata about this warning in key: value format.
49045	// For example:
49046	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
49047	Data []*VpnTunnelListWarningData `json:"data,omitempty"`
49048
49049	// Message: [Output Only] A human-readable description of the warning
49050	// code.
49051	Message string `json:"message,omitempty"`
49052
49053	// ForceSendFields is a list of field names (e.g. "Code") to
49054	// unconditionally include in API requests. By default, fields with
49055	// empty values are omitted from API requests. However, any non-pointer,
49056	// non-interface field appearing in ForceSendFields will be sent to the
49057	// server regardless of whether the field is empty or not. This may be
49058	// used to include empty fields in Patch requests.
49059	ForceSendFields []string `json:"-"`
49060
49061	// NullFields is a list of field names (e.g. "Code") to include in API
49062	// requests with the JSON null value. By default, fields with empty
49063	// values are omitted from API requests. However, any field with an
49064	// empty value appearing in NullFields will be sent to the server as
49065	// null. It is an error if a field in this list has a non-empty value.
49066	// This may be used to include null fields in Patch requests.
49067	NullFields []string `json:"-"`
49068}
49069
49070func (s *VpnTunnelListWarning) MarshalJSON() ([]byte, error) {
49071	type NoMethod VpnTunnelListWarning
49072	raw := NoMethod(*s)
49073	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49074}
49075
49076type VpnTunnelListWarningData struct {
49077	// Key: [Output Only] A key that provides more detail on the warning
49078	// being returned. For example, for warnings where there are no results
49079	// in a list request for a particular zone, this key might be scope and
49080	// the key value might be the zone name. Other examples might be a key
49081	// indicating a deprecated resource and a suggested replacement, or a
49082	// warning about invalid network settings (for example, if an instance
49083	// attempts to perform IP forwarding but is not enabled for IP
49084	// forwarding).
49085	Key string `json:"key,omitempty"`
49086
49087	// Value: [Output Only] A warning data value corresponding to the key.
49088	Value string `json:"value,omitempty"`
49089
49090	// ForceSendFields is a list of field names (e.g. "Key") to
49091	// unconditionally include in API requests. By default, fields with
49092	// empty values are omitted from API requests. However, any non-pointer,
49093	// non-interface field appearing in ForceSendFields will be sent to the
49094	// server regardless of whether the field is empty or not. This may be
49095	// used to include empty fields in Patch requests.
49096	ForceSendFields []string `json:"-"`
49097
49098	// NullFields is a list of field names (e.g. "Key") to include in API
49099	// requests with the JSON null value. By default, fields with empty
49100	// values are omitted from API requests. However, any field with an
49101	// empty value appearing in NullFields will be sent to the server as
49102	// null. It is an error if a field in this list has a non-empty value.
49103	// This may be used to include null fields in Patch requests.
49104	NullFields []string `json:"-"`
49105}
49106
49107func (s *VpnTunnelListWarningData) MarshalJSON() ([]byte, error) {
49108	type NoMethod VpnTunnelListWarningData
49109	raw := NoMethod(*s)
49110	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49111}
49112
49113type VpnTunnelsScopedList struct {
49114	// VpnTunnels: A list of VPN tunnels contained in this scope.
49115	VpnTunnels []*VpnTunnel `json:"vpnTunnels,omitempty"`
49116
49117	// Warning: Informational warning which replaces the list of addresses
49118	// when the list is empty.
49119	Warning *VpnTunnelsScopedListWarning `json:"warning,omitempty"`
49120
49121	// ForceSendFields is a list of field names (e.g. "VpnTunnels") to
49122	// unconditionally include in API requests. By default, fields with
49123	// empty values are omitted from API requests. However, any non-pointer,
49124	// non-interface field appearing in ForceSendFields will be sent to the
49125	// server regardless of whether the field is empty or not. This may be
49126	// used to include empty fields in Patch requests.
49127	ForceSendFields []string `json:"-"`
49128
49129	// NullFields is a list of field names (e.g. "VpnTunnels") to include in
49130	// API requests with the JSON null value. By default, fields with empty
49131	// values are omitted from API requests. However, any field with an
49132	// empty value appearing in NullFields will be sent to the server as
49133	// null. It is an error if a field in this list has a non-empty value.
49134	// This may be used to include null fields in Patch requests.
49135	NullFields []string `json:"-"`
49136}
49137
49138func (s *VpnTunnelsScopedList) MarshalJSON() ([]byte, error) {
49139	type NoMethod VpnTunnelsScopedList
49140	raw := NoMethod(*s)
49141	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49142}
49143
49144// VpnTunnelsScopedListWarning: Informational warning which replaces the
49145// list of addresses when the list is empty.
49146type VpnTunnelsScopedListWarning struct {
49147	// Code: [Output Only] A warning code, if applicable. For example,
49148	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
49149	// the response.
49150	//
49151	// Possible values:
49152	//   "CLEANUP_FAILED"
49153	//   "DEPRECATED_RESOURCE_USED"
49154	//   "DEPRECATED_TYPE_USED"
49155	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
49156	//   "EXPERIMENTAL_TYPE_USED"
49157	//   "EXTERNAL_API_WARNING"
49158	//   "FIELD_VALUE_OVERRIDEN"
49159	//   "INJECTED_KERNELS_DEPRECATED"
49160	//   "LARGE_DEPLOYMENT_WARNING"
49161	//   "MISSING_TYPE_DEPENDENCY"
49162	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
49163	//   "NEXT_HOP_CANNOT_IP_FORWARD"
49164	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
49165	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
49166	//   "NEXT_HOP_NOT_RUNNING"
49167	//   "NOT_CRITICAL_ERROR"
49168	//   "NO_RESULTS_ON_PAGE"
49169	//   "PARTIAL_SUCCESS"
49170	//   "REQUIRED_TOS_AGREEMENT"
49171	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
49172	//   "RESOURCE_NOT_DELETED"
49173	//   "SCHEMA_VALIDATION_IGNORED"
49174	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
49175	//   "UNDECLARED_PROPERTIES"
49176	//   "UNREACHABLE"
49177	Code string `json:"code,omitempty"`
49178
49179	// Data: [Output Only] Metadata about this warning in key: value format.
49180	// For example:
49181	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
49182	Data []*VpnTunnelsScopedListWarningData `json:"data,omitempty"`
49183
49184	// Message: [Output Only] A human-readable description of the warning
49185	// code.
49186	Message string `json:"message,omitempty"`
49187
49188	// ForceSendFields is a list of field names (e.g. "Code") to
49189	// unconditionally include in API requests. By default, fields with
49190	// empty values are omitted from API requests. However, any non-pointer,
49191	// non-interface field appearing in ForceSendFields will be sent to the
49192	// server regardless of whether the field is empty or not. This may be
49193	// used to include empty fields in Patch requests.
49194	ForceSendFields []string `json:"-"`
49195
49196	// NullFields is a list of field names (e.g. "Code") to include in API
49197	// requests with the JSON null value. By default, fields with empty
49198	// values are omitted from API requests. However, any field with an
49199	// empty value appearing in NullFields will be sent to the server as
49200	// null. It is an error if a field in this list has a non-empty value.
49201	// This may be used to include null fields in Patch requests.
49202	NullFields []string `json:"-"`
49203}
49204
49205func (s *VpnTunnelsScopedListWarning) MarshalJSON() ([]byte, error) {
49206	type NoMethod VpnTunnelsScopedListWarning
49207	raw := NoMethod(*s)
49208	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49209}
49210
49211type VpnTunnelsScopedListWarningData struct {
49212	// Key: [Output Only] A key that provides more detail on the warning
49213	// being returned. For example, for warnings where there are no results
49214	// in a list request for a particular zone, this key might be scope and
49215	// the key value might be the zone name. Other examples might be a key
49216	// indicating a deprecated resource and a suggested replacement, or a
49217	// warning about invalid network settings (for example, if an instance
49218	// attempts to perform IP forwarding but is not enabled for IP
49219	// forwarding).
49220	Key string `json:"key,omitempty"`
49221
49222	// Value: [Output Only] A warning data value corresponding to the key.
49223	Value string `json:"value,omitempty"`
49224
49225	// ForceSendFields is a list of field names (e.g. "Key") to
49226	// unconditionally include in API requests. By default, fields with
49227	// empty values are omitted from API requests. However, any non-pointer,
49228	// non-interface field appearing in ForceSendFields will be sent to the
49229	// server regardless of whether the field is empty or not. This may be
49230	// used to include empty fields in Patch requests.
49231	ForceSendFields []string `json:"-"`
49232
49233	// NullFields is a list of field names (e.g. "Key") to include in API
49234	// requests with the JSON null value. By default, fields with empty
49235	// values are omitted from API requests. However, any field with an
49236	// empty value appearing in NullFields will be sent to the server as
49237	// null. It is an error if a field in this list has a non-empty value.
49238	// This may be used to include null fields in Patch requests.
49239	NullFields []string `json:"-"`
49240}
49241
49242func (s *VpnTunnelsScopedListWarningData) MarshalJSON() ([]byte, error) {
49243	type NoMethod VpnTunnelsScopedListWarningData
49244	raw := NoMethod(*s)
49245	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49246}
49247
49248type WafExpressionSet struct {
49249	// Aliases: A list of alternate IDs. The format should be: - E.g.
49250	// XSS-stable Generic suffix like "stable" is particularly useful if a
49251	// policy likes to avail newer set of expressions without having to
49252	// change the policy. A given alias name can't be used for more than one
49253	// entity set.
49254	Aliases []string `json:"aliases,omitempty"`
49255
49256	// Expressions: List of available expressions.
49257	Expressions []*WafExpressionSetExpression `json:"expressions,omitempty"`
49258
49259	// Id: Google specified expression set ID. The format should be: - E.g.
49260	// XSS-20170329
49261	Id string `json:"id,omitempty"`
49262
49263	// ForceSendFields is a list of field names (e.g. "Aliases") to
49264	// unconditionally include in API requests. By default, fields with
49265	// empty values are omitted from API requests. However, any non-pointer,
49266	// non-interface field appearing in ForceSendFields will be sent to the
49267	// server regardless of whether the field is empty or not. This may be
49268	// used to include empty fields in Patch requests.
49269	ForceSendFields []string `json:"-"`
49270
49271	// NullFields is a list of field names (e.g. "Aliases") to include in
49272	// API requests with the JSON null value. By default, fields with empty
49273	// values are omitted from API requests. However, any field with an
49274	// empty value appearing in NullFields will be sent to the server as
49275	// null. It is an error if a field in this list has a non-empty value.
49276	// This may be used to include null fields in Patch requests.
49277	NullFields []string `json:"-"`
49278}
49279
49280func (s *WafExpressionSet) MarshalJSON() ([]byte, error) {
49281	type NoMethod WafExpressionSet
49282	raw := NoMethod(*s)
49283	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49284}
49285
49286type WafExpressionSetExpression struct {
49287	// Id: Expression ID should uniquely identify the origin of the
49288	// expression. E.g. owasp-crs-v020901-id973337 identifies Owasp core
49289	// rule set version 2.9.1 rule id 973337. The ID could be used to
49290	// determine the individual attack definition that has been detected. It
49291	// could also be used to exclude it from the policy in case of false
49292	// positive.
49293	Id string `json:"id,omitempty"`
49294
49295	// ForceSendFields is a list of field names (e.g. "Id") to
49296	// unconditionally include in API requests. By default, fields with
49297	// empty values are omitted from API requests. However, any non-pointer,
49298	// non-interface field appearing in ForceSendFields will be sent to the
49299	// server regardless of whether the field is empty or not. This may be
49300	// used to include empty fields in Patch requests.
49301	ForceSendFields []string `json:"-"`
49302
49303	// NullFields is a list of field names (e.g. "Id") to include in API
49304	// requests with the JSON null value. By default, fields with empty
49305	// values are omitted from API requests. However, any field with an
49306	// empty value appearing in NullFields will be sent to the server as
49307	// null. It is an error if a field in this list has a non-empty value.
49308	// This may be used to include null fields in Patch requests.
49309	NullFields []string `json:"-"`
49310}
49311
49312func (s *WafExpressionSetExpression) MarshalJSON() ([]byte, error) {
49313	type NoMethod WafExpressionSetExpression
49314	raw := NoMethod(*s)
49315	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49316}
49317
49318// WeightedBackendService: In contrast to a single BackendService in
49319// HttpRouteAction to which all matching traffic is directed to,
49320// WeightedBackendService allows traffic to be split across multiple
49321// BackendServices. The volume of traffic for each BackendService is
49322// proportional to the weight specified in each WeightedBackendService
49323type WeightedBackendService struct {
49324	// BackendService: The full or partial URL to the default BackendService
49325	// resource. Before forwarding the request to backendService, the
49326	// loadbalancer applies any relevant headerActions specified as part of
49327	// this backendServiceWeight.
49328	BackendService string `json:"backendService,omitempty"`
49329
49330	// HeaderAction: Specifies changes to request and response headers that
49331	// need to take effect for the selected backendService.
49332	// headerAction specified here take effect before headerAction in the
49333	// enclosing HttpRouteRule, PathMatcher and UrlMap.
49334	// Note that headerAction is not supported for Loadbalancers that have
49335	// their loadBalancingScheme set to EXTERNAL.
49336	// Not supported when the URL map is bound to target gRPC proxy that has
49337	// validateForProxyless field set to true.
49338	HeaderAction *HttpHeaderAction `json:"headerAction,omitempty"`
49339
49340	// Weight: Specifies the fraction of traffic sent to backendService,
49341	// computed as weight / (sum of all weightedBackendService weights in
49342	// routeAction) .
49343	// The selection of a backend service is determined only for new
49344	// traffic. Once a user's request has been directed to a backendService,
49345	// subsequent requests will be sent to the same backendService as
49346	// determined by the BackendService's session affinity policy.
49347	// The value must be between 0 and 1000
49348	Weight int64 `json:"weight,omitempty"`
49349
49350	// ForceSendFields is a list of field names (e.g. "BackendService") to
49351	// unconditionally include in API requests. By default, fields with
49352	// empty values are omitted from API requests. However, any non-pointer,
49353	// non-interface field appearing in ForceSendFields will be sent to the
49354	// server regardless of whether the field is empty or not. This may be
49355	// used to include empty fields in Patch requests.
49356	ForceSendFields []string `json:"-"`
49357
49358	// NullFields is a list of field names (e.g. "BackendService") to
49359	// include in API requests with the JSON null value. By default, fields
49360	// with empty values are omitted from API requests. However, any field
49361	// with an empty value appearing in NullFields will be sent to the
49362	// server as null. It is an error if a field in this list has a
49363	// non-empty value. This may be used to include null fields in Patch
49364	// requests.
49365	NullFields []string `json:"-"`
49366}
49367
49368func (s *WeightedBackendService) MarshalJSON() ([]byte, error) {
49369	type NoMethod WeightedBackendService
49370	raw := NoMethod(*s)
49371	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49372}
49373
49374type XpnHostList struct {
49375	// Id: [Output Only] Unique identifier for the resource; defined by the
49376	// server.
49377	Id string `json:"id,omitempty"`
49378
49379	// Items: [Output Only] A list of shared VPC host project URLs.
49380	Items []*Project `json:"items,omitempty"`
49381
49382	// Kind: [Output Only] Type of resource. Always compute#xpnHostList for
49383	// lists of shared VPC hosts.
49384	Kind string `json:"kind,omitempty"`
49385
49386	// NextPageToken: [Output Only] This token allows you to get the next
49387	// page of results for list requests. If the number of results is larger
49388	// than maxResults, use the nextPageToken as a value for the query
49389	// parameter pageToken in the next list request. Subsequent list
49390	// requests will have their own nextPageToken to continue paging through
49391	// the results.
49392	NextPageToken string `json:"nextPageToken,omitempty"`
49393
49394	// SelfLink: [Output Only] Server-defined URL for this resource.
49395	SelfLink string `json:"selfLink,omitempty"`
49396
49397	// Warning: [Output Only] Informational warning message.
49398	Warning *XpnHostListWarning `json:"warning,omitempty"`
49399
49400	// ServerResponse contains the HTTP response code and headers from the
49401	// server.
49402	googleapi.ServerResponse `json:"-"`
49403
49404	// ForceSendFields is a list of field names (e.g. "Id") to
49405	// unconditionally include in API requests. By default, fields with
49406	// empty values are omitted from API requests. However, any non-pointer,
49407	// non-interface field appearing in ForceSendFields will be sent to the
49408	// server regardless of whether the field is empty or not. This may be
49409	// used to include empty fields in Patch requests.
49410	ForceSendFields []string `json:"-"`
49411
49412	// NullFields is a list of field names (e.g. "Id") to include in API
49413	// requests with the JSON null value. By default, fields with empty
49414	// values are omitted from API requests. However, any field with an
49415	// empty value appearing in NullFields will be sent to the server as
49416	// null. It is an error if a field in this list has a non-empty value.
49417	// This may be used to include null fields in Patch requests.
49418	NullFields []string `json:"-"`
49419}
49420
49421func (s *XpnHostList) MarshalJSON() ([]byte, error) {
49422	type NoMethod XpnHostList
49423	raw := NoMethod(*s)
49424	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49425}
49426
49427// XpnHostListWarning: [Output Only] Informational warning message.
49428type XpnHostListWarning struct {
49429	// Code: [Output Only] A warning code, if applicable. For example,
49430	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
49431	// the response.
49432	//
49433	// Possible values:
49434	//   "CLEANUP_FAILED"
49435	//   "DEPRECATED_RESOURCE_USED"
49436	//   "DEPRECATED_TYPE_USED"
49437	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
49438	//   "EXPERIMENTAL_TYPE_USED"
49439	//   "EXTERNAL_API_WARNING"
49440	//   "FIELD_VALUE_OVERRIDEN"
49441	//   "INJECTED_KERNELS_DEPRECATED"
49442	//   "LARGE_DEPLOYMENT_WARNING"
49443	//   "MISSING_TYPE_DEPENDENCY"
49444	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
49445	//   "NEXT_HOP_CANNOT_IP_FORWARD"
49446	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
49447	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
49448	//   "NEXT_HOP_NOT_RUNNING"
49449	//   "NOT_CRITICAL_ERROR"
49450	//   "NO_RESULTS_ON_PAGE"
49451	//   "PARTIAL_SUCCESS"
49452	//   "REQUIRED_TOS_AGREEMENT"
49453	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
49454	//   "RESOURCE_NOT_DELETED"
49455	//   "SCHEMA_VALIDATION_IGNORED"
49456	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
49457	//   "UNDECLARED_PROPERTIES"
49458	//   "UNREACHABLE"
49459	Code string `json:"code,omitempty"`
49460
49461	// Data: [Output Only] Metadata about this warning in key: value format.
49462	// For example:
49463	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
49464	Data []*XpnHostListWarningData `json:"data,omitempty"`
49465
49466	// Message: [Output Only] A human-readable description of the warning
49467	// code.
49468	Message string `json:"message,omitempty"`
49469
49470	// ForceSendFields is a list of field names (e.g. "Code") to
49471	// unconditionally include in API requests. By default, fields with
49472	// empty values are omitted from API requests. However, any non-pointer,
49473	// non-interface field appearing in ForceSendFields will be sent to the
49474	// server regardless of whether the field is empty or not. This may be
49475	// used to include empty fields in Patch requests.
49476	ForceSendFields []string `json:"-"`
49477
49478	// NullFields is a list of field names (e.g. "Code") to include in API
49479	// requests with the JSON null value. By default, fields with empty
49480	// values are omitted from API requests. However, any field with an
49481	// empty value appearing in NullFields will be sent to the server as
49482	// null. It is an error if a field in this list has a non-empty value.
49483	// This may be used to include null fields in Patch requests.
49484	NullFields []string `json:"-"`
49485}
49486
49487func (s *XpnHostListWarning) MarshalJSON() ([]byte, error) {
49488	type NoMethod XpnHostListWarning
49489	raw := NoMethod(*s)
49490	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49491}
49492
49493type XpnHostListWarningData struct {
49494	// Key: [Output Only] A key that provides more detail on the warning
49495	// being returned. For example, for warnings where there are no results
49496	// in a list request for a particular zone, this key might be scope and
49497	// the key value might be the zone name. Other examples might be a key
49498	// indicating a deprecated resource and a suggested replacement, or a
49499	// warning about invalid network settings (for example, if an instance
49500	// attempts to perform IP forwarding but is not enabled for IP
49501	// forwarding).
49502	Key string `json:"key,omitempty"`
49503
49504	// Value: [Output Only] A warning data value corresponding to the key.
49505	Value string `json:"value,omitempty"`
49506
49507	// ForceSendFields is a list of field names (e.g. "Key") to
49508	// unconditionally include in API requests. By default, fields with
49509	// empty values are omitted from API requests. However, any non-pointer,
49510	// non-interface field appearing in ForceSendFields will be sent to the
49511	// server regardless of whether the field is empty or not. This may be
49512	// used to include empty fields in Patch requests.
49513	ForceSendFields []string `json:"-"`
49514
49515	// NullFields is a list of field names (e.g. "Key") to include in API
49516	// requests with the JSON null value. By default, fields with empty
49517	// values are omitted from API requests. However, any field with an
49518	// empty value appearing in NullFields will be sent to the server as
49519	// null. It is an error if a field in this list has a non-empty value.
49520	// This may be used to include null fields in Patch requests.
49521	NullFields []string `json:"-"`
49522}
49523
49524func (s *XpnHostListWarningData) MarshalJSON() ([]byte, error) {
49525	type NoMethod XpnHostListWarningData
49526	raw := NoMethod(*s)
49527	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49528}
49529
49530// XpnResourceId: Service resource (a.k.a service project) ID.
49531type XpnResourceId struct {
49532	// Id: The ID of the service resource. In the case of projects, this
49533	// field supports project id (e.g., my-project-123) and project number
49534	// (e.g. 12345678).
49535	Id string `json:"id,omitempty"`
49536
49537	// Type: The type of the service resource.
49538	//
49539	// Possible values:
49540	//   "PROJECT"
49541	//   "XPN_RESOURCE_TYPE_UNSPECIFIED"
49542	Type string `json:"type,omitempty"`
49543
49544	// ForceSendFields is a list of field names (e.g. "Id") to
49545	// unconditionally include in API requests. By default, fields with
49546	// empty values are omitted from API requests. However, any non-pointer,
49547	// non-interface field appearing in ForceSendFields will be sent to the
49548	// server regardless of whether the field is empty or not. This may be
49549	// used to include empty fields in Patch requests.
49550	ForceSendFields []string `json:"-"`
49551
49552	// NullFields is a list of field names (e.g. "Id") to include in API
49553	// requests with the JSON null value. By default, fields with empty
49554	// values are omitted from API requests. However, any field with an
49555	// empty value appearing in NullFields will be sent to the server as
49556	// null. It is an error if a field in this list has a non-empty value.
49557	// This may be used to include null fields in Patch requests.
49558	NullFields []string `json:"-"`
49559}
49560
49561func (s *XpnResourceId) MarshalJSON() ([]byte, error) {
49562	type NoMethod XpnResourceId
49563	raw := NoMethod(*s)
49564	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49565}
49566
49567// Zone: Represents a Zone resource.
49568//
49569// A zone is a deployment area. These deployment areas are subsets of a
49570// region. For example the zone us-east1-a is located in the us-east1
49571// region. For more information, read Regions and Zones. (==
49572// resource_for {$api_version}.zones ==)
49573type Zone struct {
49574	// AvailableCpuPlatforms: [Output Only] Available cpu/platform
49575	// selections for the zone.
49576	AvailableCpuPlatforms []string `json:"availableCpuPlatforms,omitempty"`
49577
49578	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
49579	// format.
49580	CreationTimestamp string `json:"creationTimestamp,omitempty"`
49581
49582	// Deprecated -- [Output Only] The deprecation status associated with
49583	// this zone.
49584	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
49585
49586	// Description: [Output Only] Textual description of the resource.
49587	Description string `json:"description,omitempty"`
49588
49589	// Id: [Output Only] The unique identifier for the resource. This
49590	// identifier is defined by the server.
49591	Id uint64 `json:"id,omitempty,string"`
49592
49593	// Kind: [Output Only] Type of the resource. Always compute#zone for
49594	// zones.
49595	Kind string `json:"kind,omitempty"`
49596
49597	// Name: [Output Only] Name of the resource.
49598	Name string `json:"name,omitempty"`
49599
49600	// Region: [Output Only] Full URL reference to the region which hosts
49601	// the zone.
49602	Region string `json:"region,omitempty"`
49603
49604	// SelfLink: [Output Only] Server-defined URL for the resource.
49605	SelfLink string `json:"selfLink,omitempty"`
49606
49607	// Status: [Output Only] Status of the zone, either UP or DOWN.
49608	//
49609	// Possible values:
49610	//   "DOWN"
49611	//   "UP"
49612	Status string `json:"status,omitempty"`
49613
49614	// SupportsPzs: [Output Only] Reserved for future use.
49615	SupportsPzs bool `json:"supportsPzs,omitempty"`
49616
49617	// ServerResponse contains the HTTP response code and headers from the
49618	// server.
49619	googleapi.ServerResponse `json:"-"`
49620
49621	// ForceSendFields is a list of field names (e.g.
49622	// "AvailableCpuPlatforms") to unconditionally include in API requests.
49623	// By default, fields with empty values are omitted from API requests.
49624	// However, any non-pointer, non-interface field appearing in
49625	// ForceSendFields will be sent to the server regardless of whether the
49626	// field is empty or not. This may be used to include empty fields in
49627	// Patch requests.
49628	ForceSendFields []string `json:"-"`
49629
49630	// NullFields is a list of field names (e.g. "AvailableCpuPlatforms") to
49631	// include in API requests with the JSON null value. By default, fields
49632	// with empty values are omitted from API requests. However, any field
49633	// with an empty value appearing in NullFields will be sent to the
49634	// server as null. It is an error if a field in this list has a
49635	// non-empty value. This may be used to include null fields in Patch
49636	// requests.
49637	NullFields []string `json:"-"`
49638}
49639
49640func (s *Zone) MarshalJSON() ([]byte, error) {
49641	type NoMethod Zone
49642	raw := NoMethod(*s)
49643	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49644}
49645
49646// ZoneList: Contains a list of zone resources.
49647type ZoneList struct {
49648	// Id: [Output Only] Unique identifier for the resource; defined by the
49649	// server.
49650	Id string `json:"id,omitempty"`
49651
49652	// Items: A list of Zone resources.
49653	Items []*Zone `json:"items,omitempty"`
49654
49655	// Kind: Type of resource.
49656	Kind string `json:"kind,omitempty"`
49657
49658	// NextPageToken: [Output Only] This token allows you to get the next
49659	// page of results for list requests. If the number of results is larger
49660	// than maxResults, use the nextPageToken as a value for the query
49661	// parameter pageToken in the next list request. Subsequent list
49662	// requests will have their own nextPageToken to continue paging through
49663	// the results.
49664	NextPageToken string `json:"nextPageToken,omitempty"`
49665
49666	// SelfLink: [Output Only] Server-defined URL for this resource.
49667	SelfLink string `json:"selfLink,omitempty"`
49668
49669	// Warning: [Output Only] Informational warning message.
49670	Warning *ZoneListWarning `json:"warning,omitempty"`
49671
49672	// ServerResponse contains the HTTP response code and headers from the
49673	// server.
49674	googleapi.ServerResponse `json:"-"`
49675
49676	// ForceSendFields is a list of field names (e.g. "Id") to
49677	// unconditionally include in API requests. By default, fields with
49678	// empty values are omitted from API requests. However, any non-pointer,
49679	// non-interface field appearing in ForceSendFields will be sent to the
49680	// server regardless of whether the field is empty or not. This may be
49681	// used to include empty fields in Patch requests.
49682	ForceSendFields []string `json:"-"`
49683
49684	// NullFields is a list of field names (e.g. "Id") to include in API
49685	// requests with the JSON null value. By default, fields with empty
49686	// values are omitted from API requests. However, any field with an
49687	// empty value appearing in NullFields will be sent to the server as
49688	// null. It is an error if a field in this list has a non-empty value.
49689	// This may be used to include null fields in Patch requests.
49690	NullFields []string `json:"-"`
49691}
49692
49693func (s *ZoneList) MarshalJSON() ([]byte, error) {
49694	type NoMethod ZoneList
49695	raw := NoMethod(*s)
49696	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49697}
49698
49699// ZoneListWarning: [Output Only] Informational warning message.
49700type ZoneListWarning struct {
49701	// Code: [Output Only] A warning code, if applicable. For example,
49702	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
49703	// the response.
49704	//
49705	// Possible values:
49706	//   "CLEANUP_FAILED"
49707	//   "DEPRECATED_RESOURCE_USED"
49708	//   "DEPRECATED_TYPE_USED"
49709	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
49710	//   "EXPERIMENTAL_TYPE_USED"
49711	//   "EXTERNAL_API_WARNING"
49712	//   "FIELD_VALUE_OVERRIDEN"
49713	//   "INJECTED_KERNELS_DEPRECATED"
49714	//   "LARGE_DEPLOYMENT_WARNING"
49715	//   "MISSING_TYPE_DEPENDENCY"
49716	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
49717	//   "NEXT_HOP_CANNOT_IP_FORWARD"
49718	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
49719	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
49720	//   "NEXT_HOP_NOT_RUNNING"
49721	//   "NOT_CRITICAL_ERROR"
49722	//   "NO_RESULTS_ON_PAGE"
49723	//   "PARTIAL_SUCCESS"
49724	//   "REQUIRED_TOS_AGREEMENT"
49725	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
49726	//   "RESOURCE_NOT_DELETED"
49727	//   "SCHEMA_VALIDATION_IGNORED"
49728	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
49729	//   "UNDECLARED_PROPERTIES"
49730	//   "UNREACHABLE"
49731	Code string `json:"code,omitempty"`
49732
49733	// Data: [Output Only] Metadata about this warning in key: value format.
49734	// For example:
49735	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
49736	Data []*ZoneListWarningData `json:"data,omitempty"`
49737
49738	// Message: [Output Only] A human-readable description of the warning
49739	// code.
49740	Message string `json:"message,omitempty"`
49741
49742	// ForceSendFields is a list of field names (e.g. "Code") to
49743	// unconditionally include in API requests. By default, fields with
49744	// empty values are omitted from API requests. However, any non-pointer,
49745	// non-interface field appearing in ForceSendFields will be sent to the
49746	// server regardless of whether the field is empty or not. This may be
49747	// used to include empty fields in Patch requests.
49748	ForceSendFields []string `json:"-"`
49749
49750	// NullFields is a list of field names (e.g. "Code") to include in API
49751	// requests with the JSON null value. By default, fields with empty
49752	// values are omitted from API requests. However, any field with an
49753	// empty value appearing in NullFields will be sent to the server as
49754	// null. It is an error if a field in this list has a non-empty value.
49755	// This may be used to include null fields in Patch requests.
49756	NullFields []string `json:"-"`
49757}
49758
49759func (s *ZoneListWarning) MarshalJSON() ([]byte, error) {
49760	type NoMethod ZoneListWarning
49761	raw := NoMethod(*s)
49762	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49763}
49764
49765type ZoneListWarningData struct {
49766	// Key: [Output Only] A key that provides more detail on the warning
49767	// being returned. For example, for warnings where there are no results
49768	// in a list request for a particular zone, this key might be scope and
49769	// the key value might be the zone name. Other examples might be a key
49770	// indicating a deprecated resource and a suggested replacement, or a
49771	// warning about invalid network settings (for example, if an instance
49772	// attempts to perform IP forwarding but is not enabled for IP
49773	// forwarding).
49774	Key string `json:"key,omitempty"`
49775
49776	// Value: [Output Only] A warning data value corresponding to the key.
49777	Value string `json:"value,omitempty"`
49778
49779	// ForceSendFields is a list of field names (e.g. "Key") to
49780	// unconditionally include in API requests. By default, fields with
49781	// empty values are omitted from API requests. However, any non-pointer,
49782	// non-interface field appearing in ForceSendFields will be sent to the
49783	// server regardless of whether the field is empty or not. This may be
49784	// used to include empty fields in Patch requests.
49785	ForceSendFields []string `json:"-"`
49786
49787	// NullFields is a list of field names (e.g. "Key") to include in API
49788	// requests with the JSON null value. By default, fields with empty
49789	// values are omitted from API requests. However, any field with an
49790	// empty value appearing in NullFields will be sent to the server as
49791	// null. It is an error if a field in this list has a non-empty value.
49792	// This may be used to include null fields in Patch requests.
49793	NullFields []string `json:"-"`
49794}
49795
49796func (s *ZoneListWarningData) MarshalJSON() ([]byte, error) {
49797	type NoMethod ZoneListWarningData
49798	raw := NoMethod(*s)
49799	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49800}
49801
49802type ZoneSetLabelsRequest struct {
49803	// LabelFingerprint: The fingerprint of the previous set of labels for
49804	// this resource, used to detect conflicts. The fingerprint is initially
49805	// generated by Compute Engine and changes after every request to modify
49806	// or update labels. You must always provide an up-to-date fingerprint
49807	// hash in order to update or change labels. Make a get() request to the
49808	// resource to get the latest fingerprint.
49809	LabelFingerprint string `json:"labelFingerprint,omitempty"`
49810
49811	// Labels: The labels to set for this resource.
49812	Labels map[string]string `json:"labels,omitempty"`
49813
49814	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") to
49815	// unconditionally include in API requests. By default, fields with
49816	// empty values are omitted from API requests. However, any non-pointer,
49817	// non-interface field appearing in ForceSendFields will be sent to the
49818	// server regardless of whether the field is empty or not. This may be
49819	// used to include empty fields in Patch requests.
49820	ForceSendFields []string `json:"-"`
49821
49822	// NullFields is a list of field names (e.g. "LabelFingerprint") to
49823	// include in API requests with the JSON null value. By default, fields
49824	// with empty values are omitted from API requests. However, any field
49825	// with an empty value appearing in NullFields will be sent to the
49826	// server as null. It is an error if a field in this list has a
49827	// non-empty value. This may be used to include null fields in Patch
49828	// requests.
49829	NullFields []string `json:"-"`
49830}
49831
49832func (s *ZoneSetLabelsRequest) MarshalJSON() ([]byte, error) {
49833	type NoMethod ZoneSetLabelsRequest
49834	raw := NoMethod(*s)
49835	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49836}
49837
49838type ZoneSetPolicyRequest struct {
49839	// Bindings: Flatten Policy to create a backwacd compatible wire-format.
49840	// Deprecated. Use 'policy' to specify bindings.
49841	Bindings []*Binding `json:"bindings,omitempty"`
49842
49843	// Etag: Flatten Policy to create a backward compatible wire-format.
49844	// Deprecated. Use 'policy' to specify the etag.
49845	Etag string `json:"etag,omitempty"`
49846
49847	// Policy: REQUIRED: The complete policy to be applied to the
49848	// 'resource'. The size of the policy is limited to a few 10s of KB. An
49849	// empty policy is in general a valid policy but certain services (like
49850	// Projects) might reject them.
49851	Policy *Policy `json:"policy,omitempty"`
49852
49853	// ForceSendFields is a list of field names (e.g. "Bindings") to
49854	// unconditionally include in API requests. By default, fields with
49855	// empty values are omitted from API requests. However, any non-pointer,
49856	// non-interface field appearing in ForceSendFields will be sent to the
49857	// server regardless of whether the field is empty or not. This may be
49858	// used to include empty fields in Patch requests.
49859	ForceSendFields []string `json:"-"`
49860
49861	// NullFields is a list of field names (e.g. "Bindings") to include in
49862	// API requests with the JSON null value. By default, fields with empty
49863	// values are omitted from API requests. However, any field with an
49864	// empty value appearing in NullFields will be sent to the server as
49865	// null. It is an error if a field in this list has a non-empty value.
49866	// This may be used to include null fields in Patch requests.
49867	NullFields []string `json:"-"`
49868}
49869
49870func (s *ZoneSetPolicyRequest) MarshalJSON() ([]byte, error) {
49871	type NoMethod ZoneSetPolicyRequest
49872	raw := NoMethod(*s)
49873	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49874}
49875
49876// method id "compute.acceleratorTypes.aggregatedList":
49877
49878type AcceleratorTypesAggregatedListCall struct {
49879	s            *Service
49880	project      string
49881	urlParams_   gensupport.URLParams
49882	ifNoneMatch_ string
49883	ctx_         context.Context
49884	header_      http.Header
49885}
49886
49887// AggregatedList: Retrieves an aggregated list of accelerator types.
49888func (r *AcceleratorTypesService) AggregatedList(project string) *AcceleratorTypesAggregatedListCall {
49889	c := &AcceleratorTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
49890	c.project = project
49891	return c
49892}
49893
49894// Filter sets the optional parameter "filter": A filter expression that
49895// filters resources listed in the response. The expression must specify
49896// the field name, a comparison operator, and the value that you want to
49897// use for filtering. The value must be a string, a number, or a
49898// boolean. The comparison operator must be either `=`, `!=`, `>`, or
49899// `<`.
49900//
49901// For example, if you are filtering Compute Engine instances, you can
49902// exclude instances named `example-instance` by specifying `name !=
49903// example-instance`.
49904//
49905// You can also filter nested fields. For example, you could specify
49906// `scheduling.automaticRestart = false` to include instances only if
49907// they are not scheduled for automatic restarts. You can use filtering
49908// on nested fields to filter based on resource labels.
49909//
49910// To filter on multiple expressions, provide each separate expression
49911// within parentheses. For example: ``` (scheduling.automaticRestart =
49912// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
49913// is an `AND` expression. However, you can include `AND` and `OR`
49914// expressions explicitly. For example: ``` (cpuPlatform = "Intel
49915// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
49916// (scheduling.automaticRestart = true) ```
49917func (c *AcceleratorTypesAggregatedListCall) Filter(filter string) *AcceleratorTypesAggregatedListCall {
49918	c.urlParams_.Set("filter", filter)
49919	return c
49920}
49921
49922// IncludeAllScopes sets the optional parameter "includeAllScopes":
49923// Indicates whether every visible scope for each scope type (zone,
49924// region, global) should be included in the response. For new resource
49925// types added after this field, the flag has no effect as new resource
49926// types will always include every visible scope for each scope type in
49927// response. For resource types which predate this field, if this flag
49928// is omitted or false, only scopes of the scope types where the
49929// resource type is expected to be found will be included.
49930func (c *AcceleratorTypesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *AcceleratorTypesAggregatedListCall {
49931	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
49932	return c
49933}
49934
49935// MaxResults sets the optional parameter "maxResults": The maximum
49936// number of results per page that should be returned. If the number of
49937// available results is larger than `maxResults`, Compute Engine returns
49938// a `nextPageToken` that can be used to get the next page of results in
49939// subsequent list requests. Acceptable values are `0` to `500`,
49940// inclusive. (Default: `500`)
49941func (c *AcceleratorTypesAggregatedListCall) MaxResults(maxResults int64) *AcceleratorTypesAggregatedListCall {
49942	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
49943	return c
49944}
49945
49946// OrderBy sets the optional parameter "orderBy": Sorts list results by
49947// a certain order. By default, results are returned in alphanumerical
49948// order based on the resource name.
49949//
49950// You can also sort results in descending order based on the creation
49951// timestamp using `orderBy="creationTimestamp desc". This sorts
49952// results based on the `creationTimestamp` field in reverse
49953// chronological order (newest result first). Use this to sort resources
49954// like operations so that the newest operation is returned
49955// first.
49956//
49957// Currently, only sorting by `name` or `creationTimestamp desc` is
49958// supported.
49959func (c *AcceleratorTypesAggregatedListCall) OrderBy(orderBy string) *AcceleratorTypesAggregatedListCall {
49960	c.urlParams_.Set("orderBy", orderBy)
49961	return c
49962}
49963
49964// PageToken sets the optional parameter "pageToken": Specifies a page
49965// token to use. Set `pageToken` to the `nextPageToken` returned by a
49966// previous list request to get the next page of results.
49967func (c *AcceleratorTypesAggregatedListCall) PageToken(pageToken string) *AcceleratorTypesAggregatedListCall {
49968	c.urlParams_.Set("pageToken", pageToken)
49969	return c
49970}
49971
49972// ReturnPartialSuccess sets the optional parameter
49973// "returnPartialSuccess": Opt-in for partial success behavior which
49974// provides partial results in case of failure. The default value is
49975// false.
49976func (c *AcceleratorTypesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *AcceleratorTypesAggregatedListCall {
49977	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
49978	return c
49979}
49980
49981// Fields allows partial responses to be retrieved. See
49982// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
49983// for more information.
49984func (c *AcceleratorTypesAggregatedListCall) Fields(s ...googleapi.Field) *AcceleratorTypesAggregatedListCall {
49985	c.urlParams_.Set("fields", googleapi.CombineFields(s))
49986	return c
49987}
49988
49989// IfNoneMatch sets the optional parameter which makes the operation
49990// fail if the object's ETag matches the given value. This is useful for
49991// getting updates only after the object has changed since the last
49992// request. Use googleapi.IsNotModified to check whether the response
49993// error from Do is the result of In-None-Match.
49994func (c *AcceleratorTypesAggregatedListCall) IfNoneMatch(entityTag string) *AcceleratorTypesAggregatedListCall {
49995	c.ifNoneMatch_ = entityTag
49996	return c
49997}
49998
49999// Context sets the context to be used in this call's Do method. Any
50000// pending HTTP request will be aborted if the provided context is
50001// canceled.
50002func (c *AcceleratorTypesAggregatedListCall) Context(ctx context.Context) *AcceleratorTypesAggregatedListCall {
50003	c.ctx_ = ctx
50004	return c
50005}
50006
50007// Header returns an http.Header that can be modified by the caller to
50008// add HTTP headers to the request.
50009func (c *AcceleratorTypesAggregatedListCall) Header() http.Header {
50010	if c.header_ == nil {
50011		c.header_ = make(http.Header)
50012	}
50013	return c.header_
50014}
50015
50016func (c *AcceleratorTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
50017	reqHeaders := make(http.Header)
50018	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
50019	for k, v := range c.header_ {
50020		reqHeaders[k] = v
50021	}
50022	reqHeaders.Set("User-Agent", c.s.userAgent())
50023	if c.ifNoneMatch_ != "" {
50024		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
50025	}
50026	var body io.Reader = nil
50027	c.urlParams_.Set("alt", alt)
50028	c.urlParams_.Set("prettyPrint", "false")
50029	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/acceleratorTypes")
50030	urls += "?" + c.urlParams_.Encode()
50031	req, err := http.NewRequest("GET", urls, body)
50032	if err != nil {
50033		return nil, err
50034	}
50035	req.Header = reqHeaders
50036	googleapi.Expand(req.URL, map[string]string{
50037		"project": c.project,
50038	})
50039	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50040}
50041
50042// Do executes the "compute.acceleratorTypes.aggregatedList" call.
50043// Exactly one of *AcceleratorTypeAggregatedList or error will be
50044// non-nil. Any non-2xx status code is an error. Response headers are in
50045// either *AcceleratorTypeAggregatedList.ServerResponse.Header or (if a
50046// response was returned at all) in error.(*googleapi.Error).Header. Use
50047// googleapi.IsNotModified to check whether the returned error was
50048// because http.StatusNotModified was returned.
50049func (c *AcceleratorTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*AcceleratorTypeAggregatedList, error) {
50050	gensupport.SetOptions(c.urlParams_, opts...)
50051	res, err := c.doRequest("json")
50052	if res != nil && res.StatusCode == http.StatusNotModified {
50053		if res.Body != nil {
50054			res.Body.Close()
50055		}
50056		return nil, &googleapi.Error{
50057			Code:   res.StatusCode,
50058			Header: res.Header,
50059		}
50060	}
50061	if err != nil {
50062		return nil, err
50063	}
50064	defer googleapi.CloseBody(res)
50065	if err := googleapi.CheckResponse(res); err != nil {
50066		return nil, err
50067	}
50068	ret := &AcceleratorTypeAggregatedList{
50069		ServerResponse: googleapi.ServerResponse{
50070			Header:         res.Header,
50071			HTTPStatusCode: res.StatusCode,
50072		},
50073	}
50074	target := &ret
50075	if err := gensupport.DecodeResponse(target, res); err != nil {
50076		return nil, err
50077	}
50078	return ret, nil
50079	// {
50080	//   "description": "Retrieves an aggregated list of accelerator types.",
50081	//   "httpMethod": "GET",
50082	//   "id": "compute.acceleratorTypes.aggregatedList",
50083	//   "parameterOrder": [
50084	//     "project"
50085	//   ],
50086	//   "parameters": {
50087	//     "filter": {
50088	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
50089	//       "location": "query",
50090	//       "type": "string"
50091	//     },
50092	//     "includeAllScopes": {
50093	//       "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.",
50094	//       "location": "query",
50095	//       "type": "boolean"
50096	//     },
50097	//     "maxResults": {
50098	//       "default": "500",
50099	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
50100	//       "format": "uint32",
50101	//       "location": "query",
50102	//       "minimum": "0",
50103	//       "type": "integer"
50104	//     },
50105	//     "orderBy": {
50106	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
50107	//       "location": "query",
50108	//       "type": "string"
50109	//     },
50110	//     "pageToken": {
50111	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
50112	//       "location": "query",
50113	//       "type": "string"
50114	//     },
50115	//     "project": {
50116	//       "description": "Project ID for this request.",
50117	//       "location": "path",
50118	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
50119	//       "required": true,
50120	//       "type": "string"
50121	//     },
50122	//     "returnPartialSuccess": {
50123	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
50124	//       "location": "query",
50125	//       "type": "boolean"
50126	//     }
50127	//   },
50128	//   "path": "projects/{project}/aggregated/acceleratorTypes",
50129	//   "response": {
50130	//     "$ref": "AcceleratorTypeAggregatedList"
50131	//   },
50132	//   "scopes": [
50133	//     "https://www.googleapis.com/auth/cloud-platform",
50134	//     "https://www.googleapis.com/auth/compute",
50135	//     "https://www.googleapis.com/auth/compute.readonly"
50136	//   ]
50137	// }
50138
50139}
50140
50141// Pages invokes f for each page of results.
50142// A non-nil error returned from f will halt the iteration.
50143// The provided context supersedes any context provided to the Context method.
50144func (c *AcceleratorTypesAggregatedListCall) Pages(ctx context.Context, f func(*AcceleratorTypeAggregatedList) error) error {
50145	c.ctx_ = ctx
50146	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
50147	for {
50148		x, err := c.Do()
50149		if err != nil {
50150			return err
50151		}
50152		if err := f(x); err != nil {
50153			return err
50154		}
50155		if x.NextPageToken == "" {
50156			return nil
50157		}
50158		c.PageToken(x.NextPageToken)
50159	}
50160}
50161
50162// method id "compute.acceleratorTypes.get":
50163
50164type AcceleratorTypesGetCall struct {
50165	s               *Service
50166	project         string
50167	zone            string
50168	acceleratorType string
50169	urlParams_      gensupport.URLParams
50170	ifNoneMatch_    string
50171	ctx_            context.Context
50172	header_         http.Header
50173}
50174
50175// Get: Returns the specified accelerator type.
50176func (r *AcceleratorTypesService) Get(project string, zone string, acceleratorType string) *AcceleratorTypesGetCall {
50177	c := &AcceleratorTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50178	c.project = project
50179	c.zone = zone
50180	c.acceleratorType = acceleratorType
50181	return c
50182}
50183
50184// Fields allows partial responses to be retrieved. See
50185// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50186// for more information.
50187func (c *AcceleratorTypesGetCall) Fields(s ...googleapi.Field) *AcceleratorTypesGetCall {
50188	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50189	return c
50190}
50191
50192// IfNoneMatch sets the optional parameter which makes the operation
50193// fail if the object's ETag matches the given value. This is useful for
50194// getting updates only after the object has changed since the last
50195// request. Use googleapi.IsNotModified to check whether the response
50196// error from Do is the result of In-None-Match.
50197func (c *AcceleratorTypesGetCall) IfNoneMatch(entityTag string) *AcceleratorTypesGetCall {
50198	c.ifNoneMatch_ = entityTag
50199	return c
50200}
50201
50202// Context sets the context to be used in this call's Do method. Any
50203// pending HTTP request will be aborted if the provided context is
50204// canceled.
50205func (c *AcceleratorTypesGetCall) Context(ctx context.Context) *AcceleratorTypesGetCall {
50206	c.ctx_ = ctx
50207	return c
50208}
50209
50210// Header returns an http.Header that can be modified by the caller to
50211// add HTTP headers to the request.
50212func (c *AcceleratorTypesGetCall) Header() http.Header {
50213	if c.header_ == nil {
50214		c.header_ = make(http.Header)
50215	}
50216	return c.header_
50217}
50218
50219func (c *AcceleratorTypesGetCall) doRequest(alt string) (*http.Response, error) {
50220	reqHeaders := make(http.Header)
50221	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
50222	for k, v := range c.header_ {
50223		reqHeaders[k] = v
50224	}
50225	reqHeaders.Set("User-Agent", c.s.userAgent())
50226	if c.ifNoneMatch_ != "" {
50227		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
50228	}
50229	var body io.Reader = nil
50230	c.urlParams_.Set("alt", alt)
50231	c.urlParams_.Set("prettyPrint", "false")
50232	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/acceleratorTypes/{acceleratorType}")
50233	urls += "?" + c.urlParams_.Encode()
50234	req, err := http.NewRequest("GET", urls, body)
50235	if err != nil {
50236		return nil, err
50237	}
50238	req.Header = reqHeaders
50239	googleapi.Expand(req.URL, map[string]string{
50240		"project":         c.project,
50241		"zone":            c.zone,
50242		"acceleratorType": c.acceleratorType,
50243	})
50244	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50245}
50246
50247// Do executes the "compute.acceleratorTypes.get" call.
50248// Exactly one of *AcceleratorType or error will be non-nil. Any non-2xx
50249// status code is an error. Response headers are in either
50250// *AcceleratorType.ServerResponse.Header or (if a response was returned
50251// at all) in error.(*googleapi.Error).Header. Use
50252// googleapi.IsNotModified to check whether the returned error was
50253// because http.StatusNotModified was returned.
50254func (c *AcceleratorTypesGetCall) Do(opts ...googleapi.CallOption) (*AcceleratorType, error) {
50255	gensupport.SetOptions(c.urlParams_, opts...)
50256	res, err := c.doRequest("json")
50257	if res != nil && res.StatusCode == http.StatusNotModified {
50258		if res.Body != nil {
50259			res.Body.Close()
50260		}
50261		return nil, &googleapi.Error{
50262			Code:   res.StatusCode,
50263			Header: res.Header,
50264		}
50265	}
50266	if err != nil {
50267		return nil, err
50268	}
50269	defer googleapi.CloseBody(res)
50270	if err := googleapi.CheckResponse(res); err != nil {
50271		return nil, err
50272	}
50273	ret := &AcceleratorType{
50274		ServerResponse: googleapi.ServerResponse{
50275			Header:         res.Header,
50276			HTTPStatusCode: res.StatusCode,
50277		},
50278	}
50279	target := &ret
50280	if err := gensupport.DecodeResponse(target, res); err != nil {
50281		return nil, err
50282	}
50283	return ret, nil
50284	// {
50285	//   "description": "Returns the specified accelerator type.",
50286	//   "httpMethod": "GET",
50287	//   "id": "compute.acceleratorTypes.get",
50288	//   "parameterOrder": [
50289	//     "project",
50290	//     "zone",
50291	//     "acceleratorType"
50292	//   ],
50293	//   "parameters": {
50294	//     "acceleratorType": {
50295	//       "description": "Name of the accelerator type to return.",
50296	//       "location": "path",
50297	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
50298	//       "required": true,
50299	//       "type": "string"
50300	//     },
50301	//     "project": {
50302	//       "description": "Project ID for this request.",
50303	//       "location": "path",
50304	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
50305	//       "required": true,
50306	//       "type": "string"
50307	//     },
50308	//     "zone": {
50309	//       "description": "The name of the zone for this request.",
50310	//       "location": "path",
50311	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
50312	//       "required": true,
50313	//       "type": "string"
50314	//     }
50315	//   },
50316	//   "path": "projects/{project}/zones/{zone}/acceleratorTypes/{acceleratorType}",
50317	//   "response": {
50318	//     "$ref": "AcceleratorType"
50319	//   },
50320	//   "scopes": [
50321	//     "https://www.googleapis.com/auth/cloud-platform",
50322	//     "https://www.googleapis.com/auth/compute",
50323	//     "https://www.googleapis.com/auth/compute.readonly"
50324	//   ]
50325	// }
50326
50327}
50328
50329// method id "compute.acceleratorTypes.list":
50330
50331type AcceleratorTypesListCall struct {
50332	s            *Service
50333	project      string
50334	zone         string
50335	urlParams_   gensupport.URLParams
50336	ifNoneMatch_ string
50337	ctx_         context.Context
50338	header_      http.Header
50339}
50340
50341// List: Retrieves a list of accelerator types that are available to the
50342// specified project.
50343func (r *AcceleratorTypesService) List(project string, zone string) *AcceleratorTypesListCall {
50344	c := &AcceleratorTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50345	c.project = project
50346	c.zone = zone
50347	return c
50348}
50349
50350// Filter sets the optional parameter "filter": A filter expression that
50351// filters resources listed in the response. The expression must specify
50352// the field name, a comparison operator, and the value that you want to
50353// use for filtering. The value must be a string, a number, or a
50354// boolean. The comparison operator must be either `=`, `!=`, `>`, or
50355// `<`.
50356//
50357// For example, if you are filtering Compute Engine instances, you can
50358// exclude instances named `example-instance` by specifying `name !=
50359// example-instance`.
50360//
50361// You can also filter nested fields. For example, you could specify
50362// `scheduling.automaticRestart = false` to include instances only if
50363// they are not scheduled for automatic restarts. You can use filtering
50364// on nested fields to filter based on resource labels.
50365//
50366// To filter on multiple expressions, provide each separate expression
50367// within parentheses. For example: ``` (scheduling.automaticRestart =
50368// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
50369// is an `AND` expression. However, you can include `AND` and `OR`
50370// expressions explicitly. For example: ``` (cpuPlatform = "Intel
50371// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
50372// (scheduling.automaticRestart = true) ```
50373func (c *AcceleratorTypesListCall) Filter(filter string) *AcceleratorTypesListCall {
50374	c.urlParams_.Set("filter", filter)
50375	return c
50376}
50377
50378// MaxResults sets the optional parameter "maxResults": The maximum
50379// number of results per page that should be returned. If the number of
50380// available results is larger than `maxResults`, Compute Engine returns
50381// a `nextPageToken` that can be used to get the next page of results in
50382// subsequent list requests. Acceptable values are `0` to `500`,
50383// inclusive. (Default: `500`)
50384func (c *AcceleratorTypesListCall) MaxResults(maxResults int64) *AcceleratorTypesListCall {
50385	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
50386	return c
50387}
50388
50389// OrderBy sets the optional parameter "orderBy": Sorts list results by
50390// a certain order. By default, results are returned in alphanumerical
50391// order based on the resource name.
50392//
50393// You can also sort results in descending order based on the creation
50394// timestamp using `orderBy="creationTimestamp desc". This sorts
50395// results based on the `creationTimestamp` field in reverse
50396// chronological order (newest result first). Use this to sort resources
50397// like operations so that the newest operation is returned
50398// first.
50399//
50400// Currently, only sorting by `name` or `creationTimestamp desc` is
50401// supported.
50402func (c *AcceleratorTypesListCall) OrderBy(orderBy string) *AcceleratorTypesListCall {
50403	c.urlParams_.Set("orderBy", orderBy)
50404	return c
50405}
50406
50407// PageToken sets the optional parameter "pageToken": Specifies a page
50408// token to use. Set `pageToken` to the `nextPageToken` returned by a
50409// previous list request to get the next page of results.
50410func (c *AcceleratorTypesListCall) PageToken(pageToken string) *AcceleratorTypesListCall {
50411	c.urlParams_.Set("pageToken", pageToken)
50412	return c
50413}
50414
50415// ReturnPartialSuccess sets the optional parameter
50416// "returnPartialSuccess": Opt-in for partial success behavior which
50417// provides partial results in case of failure. The default value is
50418// false.
50419func (c *AcceleratorTypesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *AcceleratorTypesListCall {
50420	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
50421	return c
50422}
50423
50424// Fields allows partial responses to be retrieved. See
50425// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50426// for more information.
50427func (c *AcceleratorTypesListCall) Fields(s ...googleapi.Field) *AcceleratorTypesListCall {
50428	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50429	return c
50430}
50431
50432// IfNoneMatch sets the optional parameter which makes the operation
50433// fail if the object's ETag matches the given value. This is useful for
50434// getting updates only after the object has changed since the last
50435// request. Use googleapi.IsNotModified to check whether the response
50436// error from Do is the result of In-None-Match.
50437func (c *AcceleratorTypesListCall) IfNoneMatch(entityTag string) *AcceleratorTypesListCall {
50438	c.ifNoneMatch_ = entityTag
50439	return c
50440}
50441
50442// Context sets the context to be used in this call's Do method. Any
50443// pending HTTP request will be aborted if the provided context is
50444// canceled.
50445func (c *AcceleratorTypesListCall) Context(ctx context.Context) *AcceleratorTypesListCall {
50446	c.ctx_ = ctx
50447	return c
50448}
50449
50450// Header returns an http.Header that can be modified by the caller to
50451// add HTTP headers to the request.
50452func (c *AcceleratorTypesListCall) Header() http.Header {
50453	if c.header_ == nil {
50454		c.header_ = make(http.Header)
50455	}
50456	return c.header_
50457}
50458
50459func (c *AcceleratorTypesListCall) doRequest(alt string) (*http.Response, error) {
50460	reqHeaders := make(http.Header)
50461	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
50462	for k, v := range c.header_ {
50463		reqHeaders[k] = v
50464	}
50465	reqHeaders.Set("User-Agent", c.s.userAgent())
50466	if c.ifNoneMatch_ != "" {
50467		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
50468	}
50469	var body io.Reader = nil
50470	c.urlParams_.Set("alt", alt)
50471	c.urlParams_.Set("prettyPrint", "false")
50472	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/acceleratorTypes")
50473	urls += "?" + c.urlParams_.Encode()
50474	req, err := http.NewRequest("GET", urls, body)
50475	if err != nil {
50476		return nil, err
50477	}
50478	req.Header = reqHeaders
50479	googleapi.Expand(req.URL, map[string]string{
50480		"project": c.project,
50481		"zone":    c.zone,
50482	})
50483	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50484}
50485
50486// Do executes the "compute.acceleratorTypes.list" call.
50487// Exactly one of *AcceleratorTypeList or error will be non-nil. Any
50488// non-2xx status code is an error. Response headers are in either
50489// *AcceleratorTypeList.ServerResponse.Header or (if a response was
50490// returned at all) in error.(*googleapi.Error).Header. Use
50491// googleapi.IsNotModified to check whether the returned error was
50492// because http.StatusNotModified was returned.
50493func (c *AcceleratorTypesListCall) Do(opts ...googleapi.CallOption) (*AcceleratorTypeList, error) {
50494	gensupport.SetOptions(c.urlParams_, opts...)
50495	res, err := c.doRequest("json")
50496	if res != nil && res.StatusCode == http.StatusNotModified {
50497		if res.Body != nil {
50498			res.Body.Close()
50499		}
50500		return nil, &googleapi.Error{
50501			Code:   res.StatusCode,
50502			Header: res.Header,
50503		}
50504	}
50505	if err != nil {
50506		return nil, err
50507	}
50508	defer googleapi.CloseBody(res)
50509	if err := googleapi.CheckResponse(res); err != nil {
50510		return nil, err
50511	}
50512	ret := &AcceleratorTypeList{
50513		ServerResponse: googleapi.ServerResponse{
50514			Header:         res.Header,
50515			HTTPStatusCode: res.StatusCode,
50516		},
50517	}
50518	target := &ret
50519	if err := gensupport.DecodeResponse(target, res); err != nil {
50520		return nil, err
50521	}
50522	return ret, nil
50523	// {
50524	//   "description": "Retrieves a list of accelerator types that are available to the specified project.",
50525	//   "httpMethod": "GET",
50526	//   "id": "compute.acceleratorTypes.list",
50527	//   "parameterOrder": [
50528	//     "project",
50529	//     "zone"
50530	//   ],
50531	//   "parameters": {
50532	//     "filter": {
50533	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
50534	//       "location": "query",
50535	//       "type": "string"
50536	//     },
50537	//     "maxResults": {
50538	//       "default": "500",
50539	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
50540	//       "format": "uint32",
50541	//       "location": "query",
50542	//       "minimum": "0",
50543	//       "type": "integer"
50544	//     },
50545	//     "orderBy": {
50546	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
50547	//       "location": "query",
50548	//       "type": "string"
50549	//     },
50550	//     "pageToken": {
50551	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
50552	//       "location": "query",
50553	//       "type": "string"
50554	//     },
50555	//     "project": {
50556	//       "description": "Project ID for this request.",
50557	//       "location": "path",
50558	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
50559	//       "required": true,
50560	//       "type": "string"
50561	//     },
50562	//     "returnPartialSuccess": {
50563	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
50564	//       "location": "query",
50565	//       "type": "boolean"
50566	//     },
50567	//     "zone": {
50568	//       "description": "The name of the zone for this request.",
50569	//       "location": "path",
50570	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
50571	//       "required": true,
50572	//       "type": "string"
50573	//     }
50574	//   },
50575	//   "path": "projects/{project}/zones/{zone}/acceleratorTypes",
50576	//   "response": {
50577	//     "$ref": "AcceleratorTypeList"
50578	//   },
50579	//   "scopes": [
50580	//     "https://www.googleapis.com/auth/cloud-platform",
50581	//     "https://www.googleapis.com/auth/compute",
50582	//     "https://www.googleapis.com/auth/compute.readonly"
50583	//   ]
50584	// }
50585
50586}
50587
50588// Pages invokes f for each page of results.
50589// A non-nil error returned from f will halt the iteration.
50590// The provided context supersedes any context provided to the Context method.
50591func (c *AcceleratorTypesListCall) Pages(ctx context.Context, f func(*AcceleratorTypeList) error) error {
50592	c.ctx_ = ctx
50593	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
50594	for {
50595		x, err := c.Do()
50596		if err != nil {
50597			return err
50598		}
50599		if err := f(x); err != nil {
50600			return err
50601		}
50602		if x.NextPageToken == "" {
50603			return nil
50604		}
50605		c.PageToken(x.NextPageToken)
50606	}
50607}
50608
50609// method id "compute.addresses.aggregatedList":
50610
50611type AddressesAggregatedListCall struct {
50612	s            *Service
50613	project      string
50614	urlParams_   gensupport.URLParams
50615	ifNoneMatch_ string
50616	ctx_         context.Context
50617	header_      http.Header
50618}
50619
50620// AggregatedList: Retrieves an aggregated list of addresses.
50621// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/aggregatedList
50622func (r *AddressesService) AggregatedList(project string) *AddressesAggregatedListCall {
50623	c := &AddressesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50624	c.project = project
50625	return c
50626}
50627
50628// Filter sets the optional parameter "filter": A filter expression that
50629// filters resources listed in the response. The expression must specify
50630// the field name, a comparison operator, and the value that you want to
50631// use for filtering. The value must be a string, a number, or a
50632// boolean. The comparison operator must be either `=`, `!=`, `>`, or
50633// `<`.
50634//
50635// For example, if you are filtering Compute Engine instances, you can
50636// exclude instances named `example-instance` by specifying `name !=
50637// example-instance`.
50638//
50639// You can also filter nested fields. For example, you could specify
50640// `scheduling.automaticRestart = false` to include instances only if
50641// they are not scheduled for automatic restarts. You can use filtering
50642// on nested fields to filter based on resource labels.
50643//
50644// To filter on multiple expressions, provide each separate expression
50645// within parentheses. For example: ``` (scheduling.automaticRestart =
50646// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
50647// is an `AND` expression. However, you can include `AND` and `OR`
50648// expressions explicitly. For example: ``` (cpuPlatform = "Intel
50649// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
50650// (scheduling.automaticRestart = true) ```
50651func (c *AddressesAggregatedListCall) Filter(filter string) *AddressesAggregatedListCall {
50652	c.urlParams_.Set("filter", filter)
50653	return c
50654}
50655
50656// IncludeAllScopes sets the optional parameter "includeAllScopes":
50657// Indicates whether every visible scope for each scope type (zone,
50658// region, global) should be included in the response. For new resource
50659// types added after this field, the flag has no effect as new resource
50660// types will always include every visible scope for each scope type in
50661// response. For resource types which predate this field, if this flag
50662// is omitted or false, only scopes of the scope types where the
50663// resource type is expected to be found will be included.
50664func (c *AddressesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *AddressesAggregatedListCall {
50665	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
50666	return c
50667}
50668
50669// MaxResults sets the optional parameter "maxResults": The maximum
50670// number of results per page that should be returned. If the number of
50671// available results is larger than `maxResults`, Compute Engine returns
50672// a `nextPageToken` that can be used to get the next page of results in
50673// subsequent list requests. Acceptable values are `0` to `500`,
50674// inclusive. (Default: `500`)
50675func (c *AddressesAggregatedListCall) MaxResults(maxResults int64) *AddressesAggregatedListCall {
50676	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
50677	return c
50678}
50679
50680// OrderBy sets the optional parameter "orderBy": Sorts list results by
50681// a certain order. By default, results are returned in alphanumerical
50682// order based on the resource name.
50683//
50684// You can also sort results in descending order based on the creation
50685// timestamp using `orderBy="creationTimestamp desc". This sorts
50686// results based on the `creationTimestamp` field in reverse
50687// chronological order (newest result first). Use this to sort resources
50688// like operations so that the newest operation is returned
50689// first.
50690//
50691// Currently, only sorting by `name` or `creationTimestamp desc` is
50692// supported.
50693func (c *AddressesAggregatedListCall) OrderBy(orderBy string) *AddressesAggregatedListCall {
50694	c.urlParams_.Set("orderBy", orderBy)
50695	return c
50696}
50697
50698// PageToken sets the optional parameter "pageToken": Specifies a page
50699// token to use. Set `pageToken` to the `nextPageToken` returned by a
50700// previous list request to get the next page of results.
50701func (c *AddressesAggregatedListCall) PageToken(pageToken string) *AddressesAggregatedListCall {
50702	c.urlParams_.Set("pageToken", pageToken)
50703	return c
50704}
50705
50706// ReturnPartialSuccess sets the optional parameter
50707// "returnPartialSuccess": Opt-in for partial success behavior which
50708// provides partial results in case of failure. The default value is
50709// false.
50710func (c *AddressesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *AddressesAggregatedListCall {
50711	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
50712	return c
50713}
50714
50715// Fields allows partial responses to be retrieved. See
50716// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50717// for more information.
50718func (c *AddressesAggregatedListCall) Fields(s ...googleapi.Field) *AddressesAggregatedListCall {
50719	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50720	return c
50721}
50722
50723// IfNoneMatch sets the optional parameter which makes the operation
50724// fail if the object's ETag matches the given value. This is useful for
50725// getting updates only after the object has changed since the last
50726// request. Use googleapi.IsNotModified to check whether the response
50727// error from Do is the result of In-None-Match.
50728func (c *AddressesAggregatedListCall) IfNoneMatch(entityTag string) *AddressesAggregatedListCall {
50729	c.ifNoneMatch_ = entityTag
50730	return c
50731}
50732
50733// Context sets the context to be used in this call's Do method. Any
50734// pending HTTP request will be aborted if the provided context is
50735// canceled.
50736func (c *AddressesAggregatedListCall) Context(ctx context.Context) *AddressesAggregatedListCall {
50737	c.ctx_ = ctx
50738	return c
50739}
50740
50741// Header returns an http.Header that can be modified by the caller to
50742// add HTTP headers to the request.
50743func (c *AddressesAggregatedListCall) Header() http.Header {
50744	if c.header_ == nil {
50745		c.header_ = make(http.Header)
50746	}
50747	return c.header_
50748}
50749
50750func (c *AddressesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
50751	reqHeaders := make(http.Header)
50752	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
50753	for k, v := range c.header_ {
50754		reqHeaders[k] = v
50755	}
50756	reqHeaders.Set("User-Agent", c.s.userAgent())
50757	if c.ifNoneMatch_ != "" {
50758		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
50759	}
50760	var body io.Reader = nil
50761	c.urlParams_.Set("alt", alt)
50762	c.urlParams_.Set("prettyPrint", "false")
50763	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/addresses")
50764	urls += "?" + c.urlParams_.Encode()
50765	req, err := http.NewRequest("GET", urls, body)
50766	if err != nil {
50767		return nil, err
50768	}
50769	req.Header = reqHeaders
50770	googleapi.Expand(req.URL, map[string]string{
50771		"project": c.project,
50772	})
50773	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50774}
50775
50776// Do executes the "compute.addresses.aggregatedList" call.
50777// Exactly one of *AddressAggregatedList or error will be non-nil. Any
50778// non-2xx status code is an error. Response headers are in either
50779// *AddressAggregatedList.ServerResponse.Header or (if a response was
50780// returned at all) in error.(*googleapi.Error).Header. Use
50781// googleapi.IsNotModified to check whether the returned error was
50782// because http.StatusNotModified was returned.
50783func (c *AddressesAggregatedListCall) Do(opts ...googleapi.CallOption) (*AddressAggregatedList, error) {
50784	gensupport.SetOptions(c.urlParams_, opts...)
50785	res, err := c.doRequest("json")
50786	if res != nil && res.StatusCode == http.StatusNotModified {
50787		if res.Body != nil {
50788			res.Body.Close()
50789		}
50790		return nil, &googleapi.Error{
50791			Code:   res.StatusCode,
50792			Header: res.Header,
50793		}
50794	}
50795	if err != nil {
50796		return nil, err
50797	}
50798	defer googleapi.CloseBody(res)
50799	if err := googleapi.CheckResponse(res); err != nil {
50800		return nil, err
50801	}
50802	ret := &AddressAggregatedList{
50803		ServerResponse: googleapi.ServerResponse{
50804			Header:         res.Header,
50805			HTTPStatusCode: res.StatusCode,
50806		},
50807	}
50808	target := &ret
50809	if err := gensupport.DecodeResponse(target, res); err != nil {
50810		return nil, err
50811	}
50812	return ret, nil
50813	// {
50814	//   "description": "Retrieves an aggregated list of addresses.",
50815	//   "httpMethod": "GET",
50816	//   "id": "compute.addresses.aggregatedList",
50817	//   "parameterOrder": [
50818	//     "project"
50819	//   ],
50820	//   "parameters": {
50821	//     "filter": {
50822	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
50823	//       "location": "query",
50824	//       "type": "string"
50825	//     },
50826	//     "includeAllScopes": {
50827	//       "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.",
50828	//       "location": "query",
50829	//       "type": "boolean"
50830	//     },
50831	//     "maxResults": {
50832	//       "default": "500",
50833	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
50834	//       "format": "uint32",
50835	//       "location": "query",
50836	//       "minimum": "0",
50837	//       "type": "integer"
50838	//     },
50839	//     "orderBy": {
50840	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
50841	//       "location": "query",
50842	//       "type": "string"
50843	//     },
50844	//     "pageToken": {
50845	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
50846	//       "location": "query",
50847	//       "type": "string"
50848	//     },
50849	//     "project": {
50850	//       "description": "Project ID for this request.",
50851	//       "location": "path",
50852	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
50853	//       "required": true,
50854	//       "type": "string"
50855	//     },
50856	//     "returnPartialSuccess": {
50857	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
50858	//       "location": "query",
50859	//       "type": "boolean"
50860	//     }
50861	//   },
50862	//   "path": "projects/{project}/aggregated/addresses",
50863	//   "response": {
50864	//     "$ref": "AddressAggregatedList"
50865	//   },
50866	//   "scopes": [
50867	//     "https://www.googleapis.com/auth/cloud-platform",
50868	//     "https://www.googleapis.com/auth/compute",
50869	//     "https://www.googleapis.com/auth/compute.readonly"
50870	//   ]
50871	// }
50872
50873}
50874
50875// Pages invokes f for each page of results.
50876// A non-nil error returned from f will halt the iteration.
50877// The provided context supersedes any context provided to the Context method.
50878func (c *AddressesAggregatedListCall) Pages(ctx context.Context, f func(*AddressAggregatedList) error) error {
50879	c.ctx_ = ctx
50880	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
50881	for {
50882		x, err := c.Do()
50883		if err != nil {
50884			return err
50885		}
50886		if err := f(x); err != nil {
50887			return err
50888		}
50889		if x.NextPageToken == "" {
50890			return nil
50891		}
50892		c.PageToken(x.NextPageToken)
50893	}
50894}
50895
50896// method id "compute.addresses.delete":
50897
50898type AddressesDeleteCall struct {
50899	s          *Service
50900	project    string
50901	region     string
50902	address    string
50903	urlParams_ gensupport.URLParams
50904	ctx_       context.Context
50905	header_    http.Header
50906}
50907
50908// Delete: Deletes the specified address resource.
50909// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/delete
50910func (r *AddressesService) Delete(project string, region string, address string) *AddressesDeleteCall {
50911	c := &AddressesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50912	c.project = project
50913	c.region = region
50914	c.address = address
50915	return c
50916}
50917
50918// RequestId sets the optional parameter "requestId": An optional
50919// request ID to identify requests. Specify a unique request ID so that
50920// if you must retry your request, the server will know to ignore the
50921// request if it has already been completed.
50922//
50923// For example, consider a situation where you make an initial request
50924// and the request times out. If you make the request again with the
50925// same request ID, the server can check if original operation with the
50926// same request ID was received, and if so, will ignore the second
50927// request. This prevents clients from accidentally creating duplicate
50928// commitments.
50929//
50930// The request ID must be a valid UUID with the exception that zero UUID
50931// is not supported (00000000-0000-0000-0000-000000000000).
50932func (c *AddressesDeleteCall) RequestId(requestId string) *AddressesDeleteCall {
50933	c.urlParams_.Set("requestId", requestId)
50934	return c
50935}
50936
50937// Fields allows partial responses to be retrieved. See
50938// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50939// for more information.
50940func (c *AddressesDeleteCall) Fields(s ...googleapi.Field) *AddressesDeleteCall {
50941	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50942	return c
50943}
50944
50945// Context sets the context to be used in this call's Do method. Any
50946// pending HTTP request will be aborted if the provided context is
50947// canceled.
50948func (c *AddressesDeleteCall) Context(ctx context.Context) *AddressesDeleteCall {
50949	c.ctx_ = ctx
50950	return c
50951}
50952
50953// Header returns an http.Header that can be modified by the caller to
50954// add HTTP headers to the request.
50955func (c *AddressesDeleteCall) Header() http.Header {
50956	if c.header_ == nil {
50957		c.header_ = make(http.Header)
50958	}
50959	return c.header_
50960}
50961
50962func (c *AddressesDeleteCall) doRequest(alt string) (*http.Response, error) {
50963	reqHeaders := make(http.Header)
50964	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
50965	for k, v := range c.header_ {
50966		reqHeaders[k] = v
50967	}
50968	reqHeaders.Set("User-Agent", c.s.userAgent())
50969	var body io.Reader = nil
50970	c.urlParams_.Set("alt", alt)
50971	c.urlParams_.Set("prettyPrint", "false")
50972	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/addresses/{address}")
50973	urls += "?" + c.urlParams_.Encode()
50974	req, err := http.NewRequest("DELETE", urls, body)
50975	if err != nil {
50976		return nil, err
50977	}
50978	req.Header = reqHeaders
50979	googleapi.Expand(req.URL, map[string]string{
50980		"project": c.project,
50981		"region":  c.region,
50982		"address": c.address,
50983	})
50984	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50985}
50986
50987// Do executes the "compute.addresses.delete" call.
50988// Exactly one of *Operation or error will be non-nil. Any non-2xx
50989// status code is an error. Response headers are in either
50990// *Operation.ServerResponse.Header or (if a response was returned at
50991// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
50992// to check whether the returned error was because
50993// http.StatusNotModified was returned.
50994func (c *AddressesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
50995	gensupport.SetOptions(c.urlParams_, opts...)
50996	res, err := c.doRequest("json")
50997	if res != nil && res.StatusCode == http.StatusNotModified {
50998		if res.Body != nil {
50999			res.Body.Close()
51000		}
51001		return nil, &googleapi.Error{
51002			Code:   res.StatusCode,
51003			Header: res.Header,
51004		}
51005	}
51006	if err != nil {
51007		return nil, err
51008	}
51009	defer googleapi.CloseBody(res)
51010	if err := googleapi.CheckResponse(res); err != nil {
51011		return nil, err
51012	}
51013	ret := &Operation{
51014		ServerResponse: googleapi.ServerResponse{
51015			Header:         res.Header,
51016			HTTPStatusCode: res.StatusCode,
51017		},
51018	}
51019	target := &ret
51020	if err := gensupport.DecodeResponse(target, res); err != nil {
51021		return nil, err
51022	}
51023	return ret, nil
51024	// {
51025	//   "description": "Deletes the specified address resource.",
51026	//   "httpMethod": "DELETE",
51027	//   "id": "compute.addresses.delete",
51028	//   "parameterOrder": [
51029	//     "project",
51030	//     "region",
51031	//     "address"
51032	//   ],
51033	//   "parameters": {
51034	//     "address": {
51035	//       "description": "Name of the address resource to delete.",
51036	//       "location": "path",
51037	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
51038	//       "required": true,
51039	//       "type": "string"
51040	//     },
51041	//     "project": {
51042	//       "description": "Project ID for this request.",
51043	//       "location": "path",
51044	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51045	//       "required": true,
51046	//       "type": "string"
51047	//     },
51048	//     "region": {
51049	//       "description": "Name of the region for this request.",
51050	//       "location": "path",
51051	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
51052	//       "required": true,
51053	//       "type": "string"
51054	//     },
51055	//     "requestId": {
51056	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
51057	//       "location": "query",
51058	//       "type": "string"
51059	//     }
51060	//   },
51061	//   "path": "projects/{project}/regions/{region}/addresses/{address}",
51062	//   "response": {
51063	//     "$ref": "Operation"
51064	//   },
51065	//   "scopes": [
51066	//     "https://www.googleapis.com/auth/cloud-platform",
51067	//     "https://www.googleapis.com/auth/compute"
51068	//   ]
51069	// }
51070
51071}
51072
51073// method id "compute.addresses.get":
51074
51075type AddressesGetCall struct {
51076	s            *Service
51077	project      string
51078	region       string
51079	address      string
51080	urlParams_   gensupport.URLParams
51081	ifNoneMatch_ string
51082	ctx_         context.Context
51083	header_      http.Header
51084}
51085
51086// Get: Returns the specified address resource.
51087// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/get
51088func (r *AddressesService) Get(project string, region string, address string) *AddressesGetCall {
51089	c := &AddressesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51090	c.project = project
51091	c.region = region
51092	c.address = address
51093	return c
51094}
51095
51096// Fields allows partial responses to be retrieved. See
51097// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51098// for more information.
51099func (c *AddressesGetCall) Fields(s ...googleapi.Field) *AddressesGetCall {
51100	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51101	return c
51102}
51103
51104// IfNoneMatch sets the optional parameter which makes the operation
51105// fail if the object's ETag matches the given value. This is useful for
51106// getting updates only after the object has changed since the last
51107// request. Use googleapi.IsNotModified to check whether the response
51108// error from Do is the result of In-None-Match.
51109func (c *AddressesGetCall) IfNoneMatch(entityTag string) *AddressesGetCall {
51110	c.ifNoneMatch_ = entityTag
51111	return c
51112}
51113
51114// Context sets the context to be used in this call's Do method. Any
51115// pending HTTP request will be aborted if the provided context is
51116// canceled.
51117func (c *AddressesGetCall) Context(ctx context.Context) *AddressesGetCall {
51118	c.ctx_ = ctx
51119	return c
51120}
51121
51122// Header returns an http.Header that can be modified by the caller to
51123// add HTTP headers to the request.
51124func (c *AddressesGetCall) Header() http.Header {
51125	if c.header_ == nil {
51126		c.header_ = make(http.Header)
51127	}
51128	return c.header_
51129}
51130
51131func (c *AddressesGetCall) doRequest(alt string) (*http.Response, error) {
51132	reqHeaders := make(http.Header)
51133	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
51134	for k, v := range c.header_ {
51135		reqHeaders[k] = v
51136	}
51137	reqHeaders.Set("User-Agent", c.s.userAgent())
51138	if c.ifNoneMatch_ != "" {
51139		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
51140	}
51141	var body io.Reader = nil
51142	c.urlParams_.Set("alt", alt)
51143	c.urlParams_.Set("prettyPrint", "false")
51144	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/addresses/{address}")
51145	urls += "?" + c.urlParams_.Encode()
51146	req, err := http.NewRequest("GET", urls, body)
51147	if err != nil {
51148		return nil, err
51149	}
51150	req.Header = reqHeaders
51151	googleapi.Expand(req.URL, map[string]string{
51152		"project": c.project,
51153		"region":  c.region,
51154		"address": c.address,
51155	})
51156	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51157}
51158
51159// Do executes the "compute.addresses.get" call.
51160// Exactly one of *Address or error will be non-nil. Any non-2xx status
51161// code is an error. Response headers are in either
51162// *Address.ServerResponse.Header or (if a response was returned at all)
51163// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
51164// check whether the returned error was because http.StatusNotModified
51165// was returned.
51166func (c *AddressesGetCall) Do(opts ...googleapi.CallOption) (*Address, error) {
51167	gensupport.SetOptions(c.urlParams_, opts...)
51168	res, err := c.doRequest("json")
51169	if res != nil && res.StatusCode == http.StatusNotModified {
51170		if res.Body != nil {
51171			res.Body.Close()
51172		}
51173		return nil, &googleapi.Error{
51174			Code:   res.StatusCode,
51175			Header: res.Header,
51176		}
51177	}
51178	if err != nil {
51179		return nil, err
51180	}
51181	defer googleapi.CloseBody(res)
51182	if err := googleapi.CheckResponse(res); err != nil {
51183		return nil, err
51184	}
51185	ret := &Address{
51186		ServerResponse: googleapi.ServerResponse{
51187			Header:         res.Header,
51188			HTTPStatusCode: res.StatusCode,
51189		},
51190	}
51191	target := &ret
51192	if err := gensupport.DecodeResponse(target, res); err != nil {
51193		return nil, err
51194	}
51195	return ret, nil
51196	// {
51197	//   "description": "Returns the specified address resource.",
51198	//   "httpMethod": "GET",
51199	//   "id": "compute.addresses.get",
51200	//   "parameterOrder": [
51201	//     "project",
51202	//     "region",
51203	//     "address"
51204	//   ],
51205	//   "parameters": {
51206	//     "address": {
51207	//       "description": "Name of the address resource to return.",
51208	//       "location": "path",
51209	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
51210	//       "required": true,
51211	//       "type": "string"
51212	//     },
51213	//     "project": {
51214	//       "description": "Project ID for this request.",
51215	//       "location": "path",
51216	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51217	//       "required": true,
51218	//       "type": "string"
51219	//     },
51220	//     "region": {
51221	//       "description": "Name of the region for this request.",
51222	//       "location": "path",
51223	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
51224	//       "required": true,
51225	//       "type": "string"
51226	//     }
51227	//   },
51228	//   "path": "projects/{project}/regions/{region}/addresses/{address}",
51229	//   "response": {
51230	//     "$ref": "Address"
51231	//   },
51232	//   "scopes": [
51233	//     "https://www.googleapis.com/auth/cloud-platform",
51234	//     "https://www.googleapis.com/auth/compute",
51235	//     "https://www.googleapis.com/auth/compute.readonly"
51236	//   ]
51237	// }
51238
51239}
51240
51241// method id "compute.addresses.insert":
51242
51243type AddressesInsertCall struct {
51244	s          *Service
51245	project    string
51246	region     string
51247	address    *Address
51248	urlParams_ gensupport.URLParams
51249	ctx_       context.Context
51250	header_    http.Header
51251}
51252
51253// Insert: Creates an address resource in the specified project by using
51254// the data included in the request.
51255// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/insert
51256func (r *AddressesService) Insert(project string, region string, address *Address) *AddressesInsertCall {
51257	c := &AddressesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51258	c.project = project
51259	c.region = region
51260	c.address = address
51261	return c
51262}
51263
51264// RequestId sets the optional parameter "requestId": An optional
51265// request ID to identify requests. Specify a unique request ID so that
51266// if you must retry your request, the server will know to ignore the
51267// request if it has already been completed.
51268//
51269// For example, consider a situation where you make an initial request
51270// and the request times out. If you make the request again with the
51271// same request ID, the server can check if original operation with the
51272// same request ID was received, and if so, will ignore the second
51273// request. This prevents clients from accidentally creating duplicate
51274// commitments.
51275//
51276// The request ID must be a valid UUID with the exception that zero UUID
51277// is not supported (00000000-0000-0000-0000-000000000000).
51278func (c *AddressesInsertCall) RequestId(requestId string) *AddressesInsertCall {
51279	c.urlParams_.Set("requestId", requestId)
51280	return c
51281}
51282
51283// Fields allows partial responses to be retrieved. See
51284// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51285// for more information.
51286func (c *AddressesInsertCall) Fields(s ...googleapi.Field) *AddressesInsertCall {
51287	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51288	return c
51289}
51290
51291// Context sets the context to be used in this call's Do method. Any
51292// pending HTTP request will be aborted if the provided context is
51293// canceled.
51294func (c *AddressesInsertCall) Context(ctx context.Context) *AddressesInsertCall {
51295	c.ctx_ = ctx
51296	return c
51297}
51298
51299// Header returns an http.Header that can be modified by the caller to
51300// add HTTP headers to the request.
51301func (c *AddressesInsertCall) Header() http.Header {
51302	if c.header_ == nil {
51303		c.header_ = make(http.Header)
51304	}
51305	return c.header_
51306}
51307
51308func (c *AddressesInsertCall) doRequest(alt string) (*http.Response, error) {
51309	reqHeaders := make(http.Header)
51310	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
51311	for k, v := range c.header_ {
51312		reqHeaders[k] = v
51313	}
51314	reqHeaders.Set("User-Agent", c.s.userAgent())
51315	var body io.Reader = nil
51316	body, err := googleapi.WithoutDataWrapper.JSONReader(c.address)
51317	if err != nil {
51318		return nil, err
51319	}
51320	reqHeaders.Set("Content-Type", "application/json")
51321	c.urlParams_.Set("alt", alt)
51322	c.urlParams_.Set("prettyPrint", "false")
51323	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/addresses")
51324	urls += "?" + c.urlParams_.Encode()
51325	req, err := http.NewRequest("POST", urls, body)
51326	if err != nil {
51327		return nil, err
51328	}
51329	req.Header = reqHeaders
51330	googleapi.Expand(req.URL, map[string]string{
51331		"project": c.project,
51332		"region":  c.region,
51333	})
51334	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51335}
51336
51337// Do executes the "compute.addresses.insert" call.
51338// Exactly one of *Operation or error will be non-nil. Any non-2xx
51339// status code is an error. Response headers are in either
51340// *Operation.ServerResponse.Header or (if a response was returned at
51341// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
51342// to check whether the returned error was because
51343// http.StatusNotModified was returned.
51344func (c *AddressesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
51345	gensupport.SetOptions(c.urlParams_, opts...)
51346	res, err := c.doRequest("json")
51347	if res != nil && res.StatusCode == http.StatusNotModified {
51348		if res.Body != nil {
51349			res.Body.Close()
51350		}
51351		return nil, &googleapi.Error{
51352			Code:   res.StatusCode,
51353			Header: res.Header,
51354		}
51355	}
51356	if err != nil {
51357		return nil, err
51358	}
51359	defer googleapi.CloseBody(res)
51360	if err := googleapi.CheckResponse(res); err != nil {
51361		return nil, err
51362	}
51363	ret := &Operation{
51364		ServerResponse: googleapi.ServerResponse{
51365			Header:         res.Header,
51366			HTTPStatusCode: res.StatusCode,
51367		},
51368	}
51369	target := &ret
51370	if err := gensupport.DecodeResponse(target, res); err != nil {
51371		return nil, err
51372	}
51373	return ret, nil
51374	// {
51375	//   "description": "Creates an address resource in the specified project by using the data included in the request.",
51376	//   "httpMethod": "POST",
51377	//   "id": "compute.addresses.insert",
51378	//   "parameterOrder": [
51379	//     "project",
51380	//     "region"
51381	//   ],
51382	//   "parameters": {
51383	//     "project": {
51384	//       "description": "Project ID for this request.",
51385	//       "location": "path",
51386	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51387	//       "required": true,
51388	//       "type": "string"
51389	//     },
51390	//     "region": {
51391	//       "description": "Name of the region for this request.",
51392	//       "location": "path",
51393	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
51394	//       "required": true,
51395	//       "type": "string"
51396	//     },
51397	//     "requestId": {
51398	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
51399	//       "location": "query",
51400	//       "type": "string"
51401	//     }
51402	//   },
51403	//   "path": "projects/{project}/regions/{region}/addresses",
51404	//   "request": {
51405	//     "$ref": "Address"
51406	//   },
51407	//   "response": {
51408	//     "$ref": "Operation"
51409	//   },
51410	//   "scopes": [
51411	//     "https://www.googleapis.com/auth/cloud-platform",
51412	//     "https://www.googleapis.com/auth/compute"
51413	//   ]
51414	// }
51415
51416}
51417
51418// method id "compute.addresses.list":
51419
51420type AddressesListCall struct {
51421	s            *Service
51422	project      string
51423	region       string
51424	urlParams_   gensupport.URLParams
51425	ifNoneMatch_ string
51426	ctx_         context.Context
51427	header_      http.Header
51428}
51429
51430// List: Retrieves a list of addresses contained within the specified
51431// region.
51432// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/list
51433func (r *AddressesService) List(project string, region string) *AddressesListCall {
51434	c := &AddressesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51435	c.project = project
51436	c.region = region
51437	return c
51438}
51439
51440// Filter sets the optional parameter "filter": A filter expression that
51441// filters resources listed in the response. The expression must specify
51442// the field name, a comparison operator, and the value that you want to
51443// use for filtering. The value must be a string, a number, or a
51444// boolean. The comparison operator must be either `=`, `!=`, `>`, or
51445// `<`.
51446//
51447// For example, if you are filtering Compute Engine instances, you can
51448// exclude instances named `example-instance` by specifying `name !=
51449// example-instance`.
51450//
51451// You can also filter nested fields. For example, you could specify
51452// `scheduling.automaticRestart = false` to include instances only if
51453// they are not scheduled for automatic restarts. You can use filtering
51454// on nested fields to filter based on resource labels.
51455//
51456// To filter on multiple expressions, provide each separate expression
51457// within parentheses. For example: ``` (scheduling.automaticRestart =
51458// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
51459// is an `AND` expression. However, you can include `AND` and `OR`
51460// expressions explicitly. For example: ``` (cpuPlatform = "Intel
51461// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
51462// (scheduling.automaticRestart = true) ```
51463func (c *AddressesListCall) Filter(filter string) *AddressesListCall {
51464	c.urlParams_.Set("filter", filter)
51465	return c
51466}
51467
51468// MaxResults sets the optional parameter "maxResults": The maximum
51469// number of results per page that should be returned. If the number of
51470// available results is larger than `maxResults`, Compute Engine returns
51471// a `nextPageToken` that can be used to get the next page of results in
51472// subsequent list requests. Acceptable values are `0` to `500`,
51473// inclusive. (Default: `500`)
51474func (c *AddressesListCall) MaxResults(maxResults int64) *AddressesListCall {
51475	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
51476	return c
51477}
51478
51479// OrderBy sets the optional parameter "orderBy": Sorts list results by
51480// a certain order. By default, results are returned in alphanumerical
51481// order based on the resource name.
51482//
51483// You can also sort results in descending order based on the creation
51484// timestamp using `orderBy="creationTimestamp desc". This sorts
51485// results based on the `creationTimestamp` field in reverse
51486// chronological order (newest result first). Use this to sort resources
51487// like operations so that the newest operation is returned
51488// first.
51489//
51490// Currently, only sorting by `name` or `creationTimestamp desc` is
51491// supported.
51492func (c *AddressesListCall) OrderBy(orderBy string) *AddressesListCall {
51493	c.urlParams_.Set("orderBy", orderBy)
51494	return c
51495}
51496
51497// PageToken sets the optional parameter "pageToken": Specifies a page
51498// token to use. Set `pageToken` to the `nextPageToken` returned by a
51499// previous list request to get the next page of results.
51500func (c *AddressesListCall) PageToken(pageToken string) *AddressesListCall {
51501	c.urlParams_.Set("pageToken", pageToken)
51502	return c
51503}
51504
51505// ReturnPartialSuccess sets the optional parameter
51506// "returnPartialSuccess": Opt-in for partial success behavior which
51507// provides partial results in case of failure. The default value is
51508// false.
51509func (c *AddressesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *AddressesListCall {
51510	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
51511	return c
51512}
51513
51514// Fields allows partial responses to be retrieved. See
51515// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51516// for more information.
51517func (c *AddressesListCall) Fields(s ...googleapi.Field) *AddressesListCall {
51518	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51519	return c
51520}
51521
51522// IfNoneMatch sets the optional parameter which makes the operation
51523// fail if the object's ETag matches the given value. This is useful for
51524// getting updates only after the object has changed since the last
51525// request. Use googleapi.IsNotModified to check whether the response
51526// error from Do is the result of In-None-Match.
51527func (c *AddressesListCall) IfNoneMatch(entityTag string) *AddressesListCall {
51528	c.ifNoneMatch_ = entityTag
51529	return c
51530}
51531
51532// Context sets the context to be used in this call's Do method. Any
51533// pending HTTP request will be aborted if the provided context is
51534// canceled.
51535func (c *AddressesListCall) Context(ctx context.Context) *AddressesListCall {
51536	c.ctx_ = ctx
51537	return c
51538}
51539
51540// Header returns an http.Header that can be modified by the caller to
51541// add HTTP headers to the request.
51542func (c *AddressesListCall) Header() http.Header {
51543	if c.header_ == nil {
51544		c.header_ = make(http.Header)
51545	}
51546	return c.header_
51547}
51548
51549func (c *AddressesListCall) doRequest(alt string) (*http.Response, error) {
51550	reqHeaders := make(http.Header)
51551	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
51552	for k, v := range c.header_ {
51553		reqHeaders[k] = v
51554	}
51555	reqHeaders.Set("User-Agent", c.s.userAgent())
51556	if c.ifNoneMatch_ != "" {
51557		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
51558	}
51559	var body io.Reader = nil
51560	c.urlParams_.Set("alt", alt)
51561	c.urlParams_.Set("prettyPrint", "false")
51562	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/addresses")
51563	urls += "?" + c.urlParams_.Encode()
51564	req, err := http.NewRequest("GET", urls, body)
51565	if err != nil {
51566		return nil, err
51567	}
51568	req.Header = reqHeaders
51569	googleapi.Expand(req.URL, map[string]string{
51570		"project": c.project,
51571		"region":  c.region,
51572	})
51573	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51574}
51575
51576// Do executes the "compute.addresses.list" call.
51577// Exactly one of *AddressList or error will be non-nil. Any non-2xx
51578// status code is an error. Response headers are in either
51579// *AddressList.ServerResponse.Header or (if a response was returned at
51580// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
51581// to check whether the returned error was because
51582// http.StatusNotModified was returned.
51583func (c *AddressesListCall) Do(opts ...googleapi.CallOption) (*AddressList, error) {
51584	gensupport.SetOptions(c.urlParams_, opts...)
51585	res, err := c.doRequest("json")
51586	if res != nil && res.StatusCode == http.StatusNotModified {
51587		if res.Body != nil {
51588			res.Body.Close()
51589		}
51590		return nil, &googleapi.Error{
51591			Code:   res.StatusCode,
51592			Header: res.Header,
51593		}
51594	}
51595	if err != nil {
51596		return nil, err
51597	}
51598	defer googleapi.CloseBody(res)
51599	if err := googleapi.CheckResponse(res); err != nil {
51600		return nil, err
51601	}
51602	ret := &AddressList{
51603		ServerResponse: googleapi.ServerResponse{
51604			Header:         res.Header,
51605			HTTPStatusCode: res.StatusCode,
51606		},
51607	}
51608	target := &ret
51609	if err := gensupport.DecodeResponse(target, res); err != nil {
51610		return nil, err
51611	}
51612	return ret, nil
51613	// {
51614	//   "description": "Retrieves a list of addresses contained within the specified region.",
51615	//   "httpMethod": "GET",
51616	//   "id": "compute.addresses.list",
51617	//   "parameterOrder": [
51618	//     "project",
51619	//     "region"
51620	//   ],
51621	//   "parameters": {
51622	//     "filter": {
51623	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
51624	//       "location": "query",
51625	//       "type": "string"
51626	//     },
51627	//     "maxResults": {
51628	//       "default": "500",
51629	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
51630	//       "format": "uint32",
51631	//       "location": "query",
51632	//       "minimum": "0",
51633	//       "type": "integer"
51634	//     },
51635	//     "orderBy": {
51636	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
51637	//       "location": "query",
51638	//       "type": "string"
51639	//     },
51640	//     "pageToken": {
51641	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
51642	//       "location": "query",
51643	//       "type": "string"
51644	//     },
51645	//     "project": {
51646	//       "description": "Project ID for this request.",
51647	//       "location": "path",
51648	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51649	//       "required": true,
51650	//       "type": "string"
51651	//     },
51652	//     "region": {
51653	//       "description": "Name of the region for this request.",
51654	//       "location": "path",
51655	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
51656	//       "required": true,
51657	//       "type": "string"
51658	//     },
51659	//     "returnPartialSuccess": {
51660	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
51661	//       "location": "query",
51662	//       "type": "boolean"
51663	//     }
51664	//   },
51665	//   "path": "projects/{project}/regions/{region}/addresses",
51666	//   "response": {
51667	//     "$ref": "AddressList"
51668	//   },
51669	//   "scopes": [
51670	//     "https://www.googleapis.com/auth/cloud-platform",
51671	//     "https://www.googleapis.com/auth/compute",
51672	//     "https://www.googleapis.com/auth/compute.readonly"
51673	//   ]
51674	// }
51675
51676}
51677
51678// Pages invokes f for each page of results.
51679// A non-nil error returned from f will halt the iteration.
51680// The provided context supersedes any context provided to the Context method.
51681func (c *AddressesListCall) Pages(ctx context.Context, f func(*AddressList) error) error {
51682	c.ctx_ = ctx
51683	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
51684	for {
51685		x, err := c.Do()
51686		if err != nil {
51687			return err
51688		}
51689		if err := f(x); err != nil {
51690			return err
51691		}
51692		if x.NextPageToken == "" {
51693			return nil
51694		}
51695		c.PageToken(x.NextPageToken)
51696	}
51697}
51698
51699// method id "compute.addresses.setLabels":
51700
51701type AddressesSetLabelsCall struct {
51702	s                      *Service
51703	project                string
51704	region                 string
51705	resource               string
51706	regionsetlabelsrequest *RegionSetLabelsRequest
51707	urlParams_             gensupport.URLParams
51708	ctx_                   context.Context
51709	header_                http.Header
51710}
51711
51712// SetLabels: Sets the labels on an Address. To learn more about labels,
51713// read the Labeling Resources documentation.
51714func (r *AddressesService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *AddressesSetLabelsCall {
51715	c := &AddressesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51716	c.project = project
51717	c.region = region
51718	c.resource = resource
51719	c.regionsetlabelsrequest = regionsetlabelsrequest
51720	return c
51721}
51722
51723// RequestId sets the optional parameter "requestId": An optional
51724// request ID to identify requests. Specify a unique request ID so that
51725// if you must retry your request, the server will know to ignore the
51726// request if it has already been completed.
51727//
51728// For example, consider a situation where you make an initial request
51729// and the request times out. If you make the request again with the
51730// same request ID, the server can check if original operation with the
51731// same request ID was received, and if so, will ignore the second
51732// request. This prevents clients from accidentally creating duplicate
51733// commitments.
51734//
51735// The request ID must be a valid UUID with the exception that zero UUID
51736// is not supported (00000000-0000-0000-0000-000000000000).
51737func (c *AddressesSetLabelsCall) RequestId(requestId string) *AddressesSetLabelsCall {
51738	c.urlParams_.Set("requestId", requestId)
51739	return c
51740}
51741
51742// Fields allows partial responses to be retrieved. See
51743// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51744// for more information.
51745func (c *AddressesSetLabelsCall) Fields(s ...googleapi.Field) *AddressesSetLabelsCall {
51746	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51747	return c
51748}
51749
51750// Context sets the context to be used in this call's Do method. Any
51751// pending HTTP request will be aborted if the provided context is
51752// canceled.
51753func (c *AddressesSetLabelsCall) Context(ctx context.Context) *AddressesSetLabelsCall {
51754	c.ctx_ = ctx
51755	return c
51756}
51757
51758// Header returns an http.Header that can be modified by the caller to
51759// add HTTP headers to the request.
51760func (c *AddressesSetLabelsCall) Header() http.Header {
51761	if c.header_ == nil {
51762		c.header_ = make(http.Header)
51763	}
51764	return c.header_
51765}
51766
51767func (c *AddressesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
51768	reqHeaders := make(http.Header)
51769	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
51770	for k, v := range c.header_ {
51771		reqHeaders[k] = v
51772	}
51773	reqHeaders.Set("User-Agent", c.s.userAgent())
51774	var body io.Reader = nil
51775	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
51776	if err != nil {
51777		return nil, err
51778	}
51779	reqHeaders.Set("Content-Type", "application/json")
51780	c.urlParams_.Set("alt", alt)
51781	c.urlParams_.Set("prettyPrint", "false")
51782	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/addresses/{resource}/setLabels")
51783	urls += "?" + c.urlParams_.Encode()
51784	req, err := http.NewRequest("POST", urls, body)
51785	if err != nil {
51786		return nil, err
51787	}
51788	req.Header = reqHeaders
51789	googleapi.Expand(req.URL, map[string]string{
51790		"project":  c.project,
51791		"region":   c.region,
51792		"resource": c.resource,
51793	})
51794	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51795}
51796
51797// Do executes the "compute.addresses.setLabels" call.
51798// Exactly one of *Operation or error will be non-nil. Any non-2xx
51799// status code is an error. Response headers are in either
51800// *Operation.ServerResponse.Header or (if a response was returned at
51801// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
51802// to check whether the returned error was because
51803// http.StatusNotModified was returned.
51804func (c *AddressesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
51805	gensupport.SetOptions(c.urlParams_, opts...)
51806	res, err := c.doRequest("json")
51807	if res != nil && res.StatusCode == http.StatusNotModified {
51808		if res.Body != nil {
51809			res.Body.Close()
51810		}
51811		return nil, &googleapi.Error{
51812			Code:   res.StatusCode,
51813			Header: res.Header,
51814		}
51815	}
51816	if err != nil {
51817		return nil, err
51818	}
51819	defer googleapi.CloseBody(res)
51820	if err := googleapi.CheckResponse(res); err != nil {
51821		return nil, err
51822	}
51823	ret := &Operation{
51824		ServerResponse: googleapi.ServerResponse{
51825			Header:         res.Header,
51826			HTTPStatusCode: res.StatusCode,
51827		},
51828	}
51829	target := &ret
51830	if err := gensupport.DecodeResponse(target, res); err != nil {
51831		return nil, err
51832	}
51833	return ret, nil
51834	// {
51835	//   "description": "Sets the labels on an Address. To learn more about labels, read the Labeling Resources documentation.",
51836	//   "httpMethod": "POST",
51837	//   "id": "compute.addresses.setLabels",
51838	//   "parameterOrder": [
51839	//     "project",
51840	//     "region",
51841	//     "resource"
51842	//   ],
51843	//   "parameters": {
51844	//     "project": {
51845	//       "description": "Project ID for this request.",
51846	//       "location": "path",
51847	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51848	//       "required": true,
51849	//       "type": "string"
51850	//     },
51851	//     "region": {
51852	//       "description": "The region for this request.",
51853	//       "location": "path",
51854	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
51855	//       "required": true,
51856	//       "type": "string"
51857	//     },
51858	//     "requestId": {
51859	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
51860	//       "location": "query",
51861	//       "type": "string"
51862	//     },
51863	//     "resource": {
51864	//       "description": "Name or id of the resource for this request.",
51865	//       "location": "path",
51866	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
51867	//       "required": true,
51868	//       "type": "string"
51869	//     }
51870	//   },
51871	//   "path": "projects/{project}/regions/{region}/addresses/{resource}/setLabels",
51872	//   "request": {
51873	//     "$ref": "RegionSetLabelsRequest"
51874	//   },
51875	//   "response": {
51876	//     "$ref": "Operation"
51877	//   },
51878	//   "scopes": [
51879	//     "https://www.googleapis.com/auth/cloud-platform",
51880	//     "https://www.googleapis.com/auth/compute"
51881	//   ]
51882	// }
51883
51884}
51885
51886// method id "compute.addresses.testIamPermissions":
51887
51888type AddressesTestIamPermissionsCall struct {
51889	s                      *Service
51890	project                string
51891	region                 string
51892	resource               string
51893	testpermissionsrequest *TestPermissionsRequest
51894	urlParams_             gensupport.URLParams
51895	ctx_                   context.Context
51896	header_                http.Header
51897}
51898
51899// TestIamPermissions: Returns permissions that a caller has on the
51900// specified resource.
51901func (r *AddressesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *AddressesTestIamPermissionsCall {
51902	c := &AddressesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51903	c.project = project
51904	c.region = region
51905	c.resource = resource
51906	c.testpermissionsrequest = testpermissionsrequest
51907	return c
51908}
51909
51910// Fields allows partial responses to be retrieved. See
51911// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51912// for more information.
51913func (c *AddressesTestIamPermissionsCall) Fields(s ...googleapi.Field) *AddressesTestIamPermissionsCall {
51914	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51915	return c
51916}
51917
51918// Context sets the context to be used in this call's Do method. Any
51919// pending HTTP request will be aborted if the provided context is
51920// canceled.
51921func (c *AddressesTestIamPermissionsCall) Context(ctx context.Context) *AddressesTestIamPermissionsCall {
51922	c.ctx_ = ctx
51923	return c
51924}
51925
51926// Header returns an http.Header that can be modified by the caller to
51927// add HTTP headers to the request.
51928func (c *AddressesTestIamPermissionsCall) Header() http.Header {
51929	if c.header_ == nil {
51930		c.header_ = make(http.Header)
51931	}
51932	return c.header_
51933}
51934
51935func (c *AddressesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
51936	reqHeaders := make(http.Header)
51937	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
51938	for k, v := range c.header_ {
51939		reqHeaders[k] = v
51940	}
51941	reqHeaders.Set("User-Agent", c.s.userAgent())
51942	var body io.Reader = nil
51943	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
51944	if err != nil {
51945		return nil, err
51946	}
51947	reqHeaders.Set("Content-Type", "application/json")
51948	c.urlParams_.Set("alt", alt)
51949	c.urlParams_.Set("prettyPrint", "false")
51950	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/addresses/{resource}/testIamPermissions")
51951	urls += "?" + c.urlParams_.Encode()
51952	req, err := http.NewRequest("POST", urls, body)
51953	if err != nil {
51954		return nil, err
51955	}
51956	req.Header = reqHeaders
51957	googleapi.Expand(req.URL, map[string]string{
51958		"project":  c.project,
51959		"region":   c.region,
51960		"resource": c.resource,
51961	})
51962	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51963}
51964
51965// Do executes the "compute.addresses.testIamPermissions" call.
51966// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
51967// non-2xx status code is an error. Response headers are in either
51968// *TestPermissionsResponse.ServerResponse.Header or (if a response was
51969// returned at all) in error.(*googleapi.Error).Header. Use
51970// googleapi.IsNotModified to check whether the returned error was
51971// because http.StatusNotModified was returned.
51972func (c *AddressesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
51973	gensupport.SetOptions(c.urlParams_, opts...)
51974	res, err := c.doRequest("json")
51975	if res != nil && res.StatusCode == http.StatusNotModified {
51976		if res.Body != nil {
51977			res.Body.Close()
51978		}
51979		return nil, &googleapi.Error{
51980			Code:   res.StatusCode,
51981			Header: res.Header,
51982		}
51983	}
51984	if err != nil {
51985		return nil, err
51986	}
51987	defer googleapi.CloseBody(res)
51988	if err := googleapi.CheckResponse(res); err != nil {
51989		return nil, err
51990	}
51991	ret := &TestPermissionsResponse{
51992		ServerResponse: googleapi.ServerResponse{
51993			Header:         res.Header,
51994			HTTPStatusCode: res.StatusCode,
51995		},
51996	}
51997	target := &ret
51998	if err := gensupport.DecodeResponse(target, res); err != nil {
51999		return nil, err
52000	}
52001	return ret, nil
52002	// {
52003	//   "description": "Returns permissions that a caller has on the specified resource.",
52004	//   "httpMethod": "POST",
52005	//   "id": "compute.addresses.testIamPermissions",
52006	//   "parameterOrder": [
52007	//     "project",
52008	//     "region",
52009	//     "resource"
52010	//   ],
52011	//   "parameters": {
52012	//     "project": {
52013	//       "description": "Project ID for this request.",
52014	//       "location": "path",
52015	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52016	//       "required": true,
52017	//       "type": "string"
52018	//     },
52019	//     "region": {
52020	//       "description": "The name of the region for this request.",
52021	//       "location": "path",
52022	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
52023	//       "required": true,
52024	//       "type": "string"
52025	//     },
52026	//     "resource": {
52027	//       "description": "Name or id of the resource for this request.",
52028	//       "location": "path",
52029	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
52030	//       "required": true,
52031	//       "type": "string"
52032	//     }
52033	//   },
52034	//   "path": "projects/{project}/regions/{region}/addresses/{resource}/testIamPermissions",
52035	//   "request": {
52036	//     "$ref": "TestPermissionsRequest"
52037	//   },
52038	//   "response": {
52039	//     "$ref": "TestPermissionsResponse"
52040	//   },
52041	//   "scopes": [
52042	//     "https://www.googleapis.com/auth/cloud-platform",
52043	//     "https://www.googleapis.com/auth/compute",
52044	//     "https://www.googleapis.com/auth/compute.readonly"
52045	//   ]
52046	// }
52047
52048}
52049
52050// method id "compute.autoscalers.aggregatedList":
52051
52052type AutoscalersAggregatedListCall struct {
52053	s            *Service
52054	project      string
52055	urlParams_   gensupport.URLParams
52056	ifNoneMatch_ string
52057	ctx_         context.Context
52058	header_      http.Header
52059}
52060
52061// AggregatedList: Retrieves an aggregated list of autoscalers.
52062func (r *AutoscalersService) AggregatedList(project string) *AutoscalersAggregatedListCall {
52063	c := &AutoscalersAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52064	c.project = project
52065	return c
52066}
52067
52068// Filter sets the optional parameter "filter": A filter expression that
52069// filters resources listed in the response. The expression must specify
52070// the field name, a comparison operator, and the value that you want to
52071// use for filtering. The value must be a string, a number, or a
52072// boolean. The comparison operator must be either `=`, `!=`, `>`, or
52073// `<`.
52074//
52075// For example, if you are filtering Compute Engine instances, you can
52076// exclude instances named `example-instance` by specifying `name !=
52077// example-instance`.
52078//
52079// You can also filter nested fields. For example, you could specify
52080// `scheduling.automaticRestart = false` to include instances only if
52081// they are not scheduled for automatic restarts. You can use filtering
52082// on nested fields to filter based on resource labels.
52083//
52084// To filter on multiple expressions, provide each separate expression
52085// within parentheses. For example: ``` (scheduling.automaticRestart =
52086// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
52087// is an `AND` expression. However, you can include `AND` and `OR`
52088// expressions explicitly. For example: ``` (cpuPlatform = "Intel
52089// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
52090// (scheduling.automaticRestart = true) ```
52091func (c *AutoscalersAggregatedListCall) Filter(filter string) *AutoscalersAggregatedListCall {
52092	c.urlParams_.Set("filter", filter)
52093	return c
52094}
52095
52096// IncludeAllScopes sets the optional parameter "includeAllScopes":
52097// Indicates whether every visible scope for each scope type (zone,
52098// region, global) should be included in the response. For new resource
52099// types added after this field, the flag has no effect as new resource
52100// types will always include every visible scope for each scope type in
52101// response. For resource types which predate this field, if this flag
52102// is omitted or false, only scopes of the scope types where the
52103// resource type is expected to be found will be included.
52104func (c *AutoscalersAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *AutoscalersAggregatedListCall {
52105	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
52106	return c
52107}
52108
52109// MaxResults sets the optional parameter "maxResults": The maximum
52110// number of results per page that should be returned. If the number of
52111// available results is larger than `maxResults`, Compute Engine returns
52112// a `nextPageToken` that can be used to get the next page of results in
52113// subsequent list requests. Acceptable values are `0` to `500`,
52114// inclusive. (Default: `500`)
52115func (c *AutoscalersAggregatedListCall) MaxResults(maxResults int64) *AutoscalersAggregatedListCall {
52116	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
52117	return c
52118}
52119
52120// OrderBy sets the optional parameter "orderBy": Sorts list results by
52121// a certain order. By default, results are returned in alphanumerical
52122// order based on the resource name.
52123//
52124// You can also sort results in descending order based on the creation
52125// timestamp using `orderBy="creationTimestamp desc". This sorts
52126// results based on the `creationTimestamp` field in reverse
52127// chronological order (newest result first). Use this to sort resources
52128// like operations so that the newest operation is returned
52129// first.
52130//
52131// Currently, only sorting by `name` or `creationTimestamp desc` is
52132// supported.
52133func (c *AutoscalersAggregatedListCall) OrderBy(orderBy string) *AutoscalersAggregatedListCall {
52134	c.urlParams_.Set("orderBy", orderBy)
52135	return c
52136}
52137
52138// PageToken sets the optional parameter "pageToken": Specifies a page
52139// token to use. Set `pageToken` to the `nextPageToken` returned by a
52140// previous list request to get the next page of results.
52141func (c *AutoscalersAggregatedListCall) PageToken(pageToken string) *AutoscalersAggregatedListCall {
52142	c.urlParams_.Set("pageToken", pageToken)
52143	return c
52144}
52145
52146// ReturnPartialSuccess sets the optional parameter
52147// "returnPartialSuccess": Opt-in for partial success behavior which
52148// provides partial results in case of failure. The default value is
52149// false.
52150func (c *AutoscalersAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *AutoscalersAggregatedListCall {
52151	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
52152	return c
52153}
52154
52155// Fields allows partial responses to be retrieved. See
52156// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52157// for more information.
52158func (c *AutoscalersAggregatedListCall) Fields(s ...googleapi.Field) *AutoscalersAggregatedListCall {
52159	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52160	return c
52161}
52162
52163// IfNoneMatch sets the optional parameter which makes the operation
52164// fail if the object's ETag matches the given value. This is useful for
52165// getting updates only after the object has changed since the last
52166// request. Use googleapi.IsNotModified to check whether the response
52167// error from Do is the result of In-None-Match.
52168func (c *AutoscalersAggregatedListCall) IfNoneMatch(entityTag string) *AutoscalersAggregatedListCall {
52169	c.ifNoneMatch_ = entityTag
52170	return c
52171}
52172
52173// Context sets the context to be used in this call's Do method. Any
52174// pending HTTP request will be aborted if the provided context is
52175// canceled.
52176func (c *AutoscalersAggregatedListCall) Context(ctx context.Context) *AutoscalersAggregatedListCall {
52177	c.ctx_ = ctx
52178	return c
52179}
52180
52181// Header returns an http.Header that can be modified by the caller to
52182// add HTTP headers to the request.
52183func (c *AutoscalersAggregatedListCall) Header() http.Header {
52184	if c.header_ == nil {
52185		c.header_ = make(http.Header)
52186	}
52187	return c.header_
52188}
52189
52190func (c *AutoscalersAggregatedListCall) doRequest(alt string) (*http.Response, error) {
52191	reqHeaders := make(http.Header)
52192	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
52193	for k, v := range c.header_ {
52194		reqHeaders[k] = v
52195	}
52196	reqHeaders.Set("User-Agent", c.s.userAgent())
52197	if c.ifNoneMatch_ != "" {
52198		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
52199	}
52200	var body io.Reader = nil
52201	c.urlParams_.Set("alt", alt)
52202	c.urlParams_.Set("prettyPrint", "false")
52203	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/autoscalers")
52204	urls += "?" + c.urlParams_.Encode()
52205	req, err := http.NewRequest("GET", urls, body)
52206	if err != nil {
52207		return nil, err
52208	}
52209	req.Header = reqHeaders
52210	googleapi.Expand(req.URL, map[string]string{
52211		"project": c.project,
52212	})
52213	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52214}
52215
52216// Do executes the "compute.autoscalers.aggregatedList" call.
52217// Exactly one of *AutoscalerAggregatedList or error will be non-nil.
52218// Any non-2xx status code is an error. Response headers are in either
52219// *AutoscalerAggregatedList.ServerResponse.Header or (if a response was
52220// returned at all) in error.(*googleapi.Error).Header. Use
52221// googleapi.IsNotModified to check whether the returned error was
52222// because http.StatusNotModified was returned.
52223func (c *AutoscalersAggregatedListCall) Do(opts ...googleapi.CallOption) (*AutoscalerAggregatedList, error) {
52224	gensupport.SetOptions(c.urlParams_, opts...)
52225	res, err := c.doRequest("json")
52226	if res != nil && res.StatusCode == http.StatusNotModified {
52227		if res.Body != nil {
52228			res.Body.Close()
52229		}
52230		return nil, &googleapi.Error{
52231			Code:   res.StatusCode,
52232			Header: res.Header,
52233		}
52234	}
52235	if err != nil {
52236		return nil, err
52237	}
52238	defer googleapi.CloseBody(res)
52239	if err := googleapi.CheckResponse(res); err != nil {
52240		return nil, err
52241	}
52242	ret := &AutoscalerAggregatedList{
52243		ServerResponse: googleapi.ServerResponse{
52244			Header:         res.Header,
52245			HTTPStatusCode: res.StatusCode,
52246		},
52247	}
52248	target := &ret
52249	if err := gensupport.DecodeResponse(target, res); err != nil {
52250		return nil, err
52251	}
52252	return ret, nil
52253	// {
52254	//   "description": "Retrieves an aggregated list of autoscalers.",
52255	//   "httpMethod": "GET",
52256	//   "id": "compute.autoscalers.aggregatedList",
52257	//   "parameterOrder": [
52258	//     "project"
52259	//   ],
52260	//   "parameters": {
52261	//     "filter": {
52262	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
52263	//       "location": "query",
52264	//       "type": "string"
52265	//     },
52266	//     "includeAllScopes": {
52267	//       "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.",
52268	//       "location": "query",
52269	//       "type": "boolean"
52270	//     },
52271	//     "maxResults": {
52272	//       "default": "500",
52273	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
52274	//       "format": "uint32",
52275	//       "location": "query",
52276	//       "minimum": "0",
52277	//       "type": "integer"
52278	//     },
52279	//     "orderBy": {
52280	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
52281	//       "location": "query",
52282	//       "type": "string"
52283	//     },
52284	//     "pageToken": {
52285	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
52286	//       "location": "query",
52287	//       "type": "string"
52288	//     },
52289	//     "project": {
52290	//       "description": "Project ID for this request.",
52291	//       "location": "path",
52292	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52293	//       "required": true,
52294	//       "type": "string"
52295	//     },
52296	//     "returnPartialSuccess": {
52297	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
52298	//       "location": "query",
52299	//       "type": "boolean"
52300	//     }
52301	//   },
52302	//   "path": "projects/{project}/aggregated/autoscalers",
52303	//   "response": {
52304	//     "$ref": "AutoscalerAggregatedList"
52305	//   },
52306	//   "scopes": [
52307	//     "https://www.googleapis.com/auth/cloud-platform",
52308	//     "https://www.googleapis.com/auth/compute",
52309	//     "https://www.googleapis.com/auth/compute.readonly"
52310	//   ]
52311	// }
52312
52313}
52314
52315// Pages invokes f for each page of results.
52316// A non-nil error returned from f will halt the iteration.
52317// The provided context supersedes any context provided to the Context method.
52318func (c *AutoscalersAggregatedListCall) Pages(ctx context.Context, f func(*AutoscalerAggregatedList) error) error {
52319	c.ctx_ = ctx
52320	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
52321	for {
52322		x, err := c.Do()
52323		if err != nil {
52324			return err
52325		}
52326		if err := f(x); err != nil {
52327			return err
52328		}
52329		if x.NextPageToken == "" {
52330			return nil
52331		}
52332		c.PageToken(x.NextPageToken)
52333	}
52334}
52335
52336// method id "compute.autoscalers.delete":
52337
52338type AutoscalersDeleteCall struct {
52339	s          *Service
52340	project    string
52341	zone       string
52342	autoscaler string
52343	urlParams_ gensupport.URLParams
52344	ctx_       context.Context
52345	header_    http.Header
52346}
52347
52348// Delete: Deletes the specified autoscaler.
52349func (r *AutoscalersService) Delete(project string, zone string, autoscaler string) *AutoscalersDeleteCall {
52350	c := &AutoscalersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52351	c.project = project
52352	c.zone = zone
52353	c.autoscaler = autoscaler
52354	return c
52355}
52356
52357// RequestId sets the optional parameter "requestId": An optional
52358// request ID to identify requests. Specify a unique request ID so that
52359// if you must retry your request, the server will know to ignore the
52360// request if it has already been completed.
52361//
52362// For example, consider a situation where you make an initial request
52363// and the request times out. If you make the request again with the
52364// same request ID, the server can check if original operation with the
52365// same request ID was received, and if so, will ignore the second
52366// request. This prevents clients from accidentally creating duplicate
52367// commitments.
52368//
52369// The request ID must be a valid UUID with the exception that zero UUID
52370// is not supported (00000000-0000-0000-0000-000000000000).
52371func (c *AutoscalersDeleteCall) RequestId(requestId string) *AutoscalersDeleteCall {
52372	c.urlParams_.Set("requestId", requestId)
52373	return c
52374}
52375
52376// Fields allows partial responses to be retrieved. See
52377// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52378// for more information.
52379func (c *AutoscalersDeleteCall) Fields(s ...googleapi.Field) *AutoscalersDeleteCall {
52380	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52381	return c
52382}
52383
52384// Context sets the context to be used in this call's Do method. Any
52385// pending HTTP request will be aborted if the provided context is
52386// canceled.
52387func (c *AutoscalersDeleteCall) Context(ctx context.Context) *AutoscalersDeleteCall {
52388	c.ctx_ = ctx
52389	return c
52390}
52391
52392// Header returns an http.Header that can be modified by the caller to
52393// add HTTP headers to the request.
52394func (c *AutoscalersDeleteCall) Header() http.Header {
52395	if c.header_ == nil {
52396		c.header_ = make(http.Header)
52397	}
52398	return c.header_
52399}
52400
52401func (c *AutoscalersDeleteCall) doRequest(alt string) (*http.Response, error) {
52402	reqHeaders := make(http.Header)
52403	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
52404	for k, v := range c.header_ {
52405		reqHeaders[k] = v
52406	}
52407	reqHeaders.Set("User-Agent", c.s.userAgent())
52408	var body io.Reader = nil
52409	c.urlParams_.Set("alt", alt)
52410	c.urlParams_.Set("prettyPrint", "false")
52411	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/autoscalers/{autoscaler}")
52412	urls += "?" + c.urlParams_.Encode()
52413	req, err := http.NewRequest("DELETE", urls, body)
52414	if err != nil {
52415		return nil, err
52416	}
52417	req.Header = reqHeaders
52418	googleapi.Expand(req.URL, map[string]string{
52419		"project":    c.project,
52420		"zone":       c.zone,
52421		"autoscaler": c.autoscaler,
52422	})
52423	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52424}
52425
52426// Do executes the "compute.autoscalers.delete" call.
52427// Exactly one of *Operation or error will be non-nil. Any non-2xx
52428// status code is an error. Response headers are in either
52429// *Operation.ServerResponse.Header or (if a response was returned at
52430// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
52431// to check whether the returned error was because
52432// http.StatusNotModified was returned.
52433func (c *AutoscalersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
52434	gensupport.SetOptions(c.urlParams_, opts...)
52435	res, err := c.doRequest("json")
52436	if res != nil && res.StatusCode == http.StatusNotModified {
52437		if res.Body != nil {
52438			res.Body.Close()
52439		}
52440		return nil, &googleapi.Error{
52441			Code:   res.StatusCode,
52442			Header: res.Header,
52443		}
52444	}
52445	if err != nil {
52446		return nil, err
52447	}
52448	defer googleapi.CloseBody(res)
52449	if err := googleapi.CheckResponse(res); err != nil {
52450		return nil, err
52451	}
52452	ret := &Operation{
52453		ServerResponse: googleapi.ServerResponse{
52454			Header:         res.Header,
52455			HTTPStatusCode: res.StatusCode,
52456		},
52457	}
52458	target := &ret
52459	if err := gensupport.DecodeResponse(target, res); err != nil {
52460		return nil, err
52461	}
52462	return ret, nil
52463	// {
52464	//   "description": "Deletes the specified autoscaler.",
52465	//   "httpMethod": "DELETE",
52466	//   "id": "compute.autoscalers.delete",
52467	//   "parameterOrder": [
52468	//     "project",
52469	//     "zone",
52470	//     "autoscaler"
52471	//   ],
52472	//   "parameters": {
52473	//     "autoscaler": {
52474	//       "description": "Name of the autoscaler to delete.",
52475	//       "location": "path",
52476	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
52477	//       "required": true,
52478	//       "type": "string"
52479	//     },
52480	//     "project": {
52481	//       "description": "Project ID for this request.",
52482	//       "location": "path",
52483	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52484	//       "required": true,
52485	//       "type": "string"
52486	//     },
52487	//     "requestId": {
52488	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
52489	//       "location": "query",
52490	//       "type": "string"
52491	//     },
52492	//     "zone": {
52493	//       "description": "Name of the zone for this request.",
52494	//       "location": "path",
52495	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
52496	//       "required": true,
52497	//       "type": "string"
52498	//     }
52499	//   },
52500	//   "path": "projects/{project}/zones/{zone}/autoscalers/{autoscaler}",
52501	//   "response": {
52502	//     "$ref": "Operation"
52503	//   },
52504	//   "scopes": [
52505	//     "https://www.googleapis.com/auth/cloud-platform",
52506	//     "https://www.googleapis.com/auth/compute"
52507	//   ]
52508	// }
52509
52510}
52511
52512// method id "compute.autoscalers.get":
52513
52514type AutoscalersGetCall struct {
52515	s            *Service
52516	project      string
52517	zone         string
52518	autoscaler   string
52519	urlParams_   gensupport.URLParams
52520	ifNoneMatch_ string
52521	ctx_         context.Context
52522	header_      http.Header
52523}
52524
52525// Get: Returns the specified autoscaler resource. Gets a list of
52526// available autoscalers by making a list() request.
52527func (r *AutoscalersService) Get(project string, zone string, autoscaler string) *AutoscalersGetCall {
52528	c := &AutoscalersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52529	c.project = project
52530	c.zone = zone
52531	c.autoscaler = autoscaler
52532	return c
52533}
52534
52535// Fields allows partial responses to be retrieved. See
52536// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52537// for more information.
52538func (c *AutoscalersGetCall) Fields(s ...googleapi.Field) *AutoscalersGetCall {
52539	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52540	return c
52541}
52542
52543// IfNoneMatch sets the optional parameter which makes the operation
52544// fail if the object's ETag matches the given value. This is useful for
52545// getting updates only after the object has changed since the last
52546// request. Use googleapi.IsNotModified to check whether the response
52547// error from Do is the result of In-None-Match.
52548func (c *AutoscalersGetCall) IfNoneMatch(entityTag string) *AutoscalersGetCall {
52549	c.ifNoneMatch_ = entityTag
52550	return c
52551}
52552
52553// Context sets the context to be used in this call's Do method. Any
52554// pending HTTP request will be aborted if the provided context is
52555// canceled.
52556func (c *AutoscalersGetCall) Context(ctx context.Context) *AutoscalersGetCall {
52557	c.ctx_ = ctx
52558	return c
52559}
52560
52561// Header returns an http.Header that can be modified by the caller to
52562// add HTTP headers to the request.
52563func (c *AutoscalersGetCall) Header() http.Header {
52564	if c.header_ == nil {
52565		c.header_ = make(http.Header)
52566	}
52567	return c.header_
52568}
52569
52570func (c *AutoscalersGetCall) doRequest(alt string) (*http.Response, error) {
52571	reqHeaders := make(http.Header)
52572	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
52573	for k, v := range c.header_ {
52574		reqHeaders[k] = v
52575	}
52576	reqHeaders.Set("User-Agent", c.s.userAgent())
52577	if c.ifNoneMatch_ != "" {
52578		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
52579	}
52580	var body io.Reader = nil
52581	c.urlParams_.Set("alt", alt)
52582	c.urlParams_.Set("prettyPrint", "false")
52583	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/autoscalers/{autoscaler}")
52584	urls += "?" + c.urlParams_.Encode()
52585	req, err := http.NewRequest("GET", urls, body)
52586	if err != nil {
52587		return nil, err
52588	}
52589	req.Header = reqHeaders
52590	googleapi.Expand(req.URL, map[string]string{
52591		"project":    c.project,
52592		"zone":       c.zone,
52593		"autoscaler": c.autoscaler,
52594	})
52595	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52596}
52597
52598// Do executes the "compute.autoscalers.get" call.
52599// Exactly one of *Autoscaler or error will be non-nil. Any non-2xx
52600// status code is an error. Response headers are in either
52601// *Autoscaler.ServerResponse.Header or (if a response was returned at
52602// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
52603// to check whether the returned error was because
52604// http.StatusNotModified was returned.
52605func (c *AutoscalersGetCall) Do(opts ...googleapi.CallOption) (*Autoscaler, error) {
52606	gensupport.SetOptions(c.urlParams_, opts...)
52607	res, err := c.doRequest("json")
52608	if res != nil && res.StatusCode == http.StatusNotModified {
52609		if res.Body != nil {
52610			res.Body.Close()
52611		}
52612		return nil, &googleapi.Error{
52613			Code:   res.StatusCode,
52614			Header: res.Header,
52615		}
52616	}
52617	if err != nil {
52618		return nil, err
52619	}
52620	defer googleapi.CloseBody(res)
52621	if err := googleapi.CheckResponse(res); err != nil {
52622		return nil, err
52623	}
52624	ret := &Autoscaler{
52625		ServerResponse: googleapi.ServerResponse{
52626			Header:         res.Header,
52627			HTTPStatusCode: res.StatusCode,
52628		},
52629	}
52630	target := &ret
52631	if err := gensupport.DecodeResponse(target, res); err != nil {
52632		return nil, err
52633	}
52634	return ret, nil
52635	// {
52636	//   "description": "Returns the specified autoscaler resource. Gets a list of available autoscalers by making a list() request.",
52637	//   "httpMethod": "GET",
52638	//   "id": "compute.autoscalers.get",
52639	//   "parameterOrder": [
52640	//     "project",
52641	//     "zone",
52642	//     "autoscaler"
52643	//   ],
52644	//   "parameters": {
52645	//     "autoscaler": {
52646	//       "description": "Name of the autoscaler to return.",
52647	//       "location": "path",
52648	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
52649	//       "required": true,
52650	//       "type": "string"
52651	//     },
52652	//     "project": {
52653	//       "description": "Project ID for this request.",
52654	//       "location": "path",
52655	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52656	//       "required": true,
52657	//       "type": "string"
52658	//     },
52659	//     "zone": {
52660	//       "description": "Name of the zone for this request.",
52661	//       "location": "path",
52662	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
52663	//       "required": true,
52664	//       "type": "string"
52665	//     }
52666	//   },
52667	//   "path": "projects/{project}/zones/{zone}/autoscalers/{autoscaler}",
52668	//   "response": {
52669	//     "$ref": "Autoscaler"
52670	//   },
52671	//   "scopes": [
52672	//     "https://www.googleapis.com/auth/cloud-platform",
52673	//     "https://www.googleapis.com/auth/compute",
52674	//     "https://www.googleapis.com/auth/compute.readonly"
52675	//   ]
52676	// }
52677
52678}
52679
52680// method id "compute.autoscalers.insert":
52681
52682type AutoscalersInsertCall struct {
52683	s          *Service
52684	project    string
52685	zone       string
52686	autoscaler *Autoscaler
52687	urlParams_ gensupport.URLParams
52688	ctx_       context.Context
52689	header_    http.Header
52690}
52691
52692// Insert: Creates an autoscaler in the specified project using the data
52693// included in the request.
52694func (r *AutoscalersService) Insert(project string, zone string, autoscaler *Autoscaler) *AutoscalersInsertCall {
52695	c := &AutoscalersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52696	c.project = project
52697	c.zone = zone
52698	c.autoscaler = autoscaler
52699	return c
52700}
52701
52702// RequestId sets the optional parameter "requestId": An optional
52703// request ID to identify requests. Specify a unique request ID so that
52704// if you must retry your request, the server will know to ignore the
52705// request if it has already been completed.
52706//
52707// For example, consider a situation where you make an initial request
52708// and the request times out. If you make the request again with the
52709// same request ID, the server can check if original operation with the
52710// same request ID was received, and if so, will ignore the second
52711// request. This prevents clients from accidentally creating duplicate
52712// commitments.
52713//
52714// The request ID must be a valid UUID with the exception that zero UUID
52715// is not supported (00000000-0000-0000-0000-000000000000).
52716func (c *AutoscalersInsertCall) RequestId(requestId string) *AutoscalersInsertCall {
52717	c.urlParams_.Set("requestId", requestId)
52718	return c
52719}
52720
52721// Fields allows partial responses to be retrieved. See
52722// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52723// for more information.
52724func (c *AutoscalersInsertCall) Fields(s ...googleapi.Field) *AutoscalersInsertCall {
52725	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52726	return c
52727}
52728
52729// Context sets the context to be used in this call's Do method. Any
52730// pending HTTP request will be aborted if the provided context is
52731// canceled.
52732func (c *AutoscalersInsertCall) Context(ctx context.Context) *AutoscalersInsertCall {
52733	c.ctx_ = ctx
52734	return c
52735}
52736
52737// Header returns an http.Header that can be modified by the caller to
52738// add HTTP headers to the request.
52739func (c *AutoscalersInsertCall) Header() http.Header {
52740	if c.header_ == nil {
52741		c.header_ = make(http.Header)
52742	}
52743	return c.header_
52744}
52745
52746func (c *AutoscalersInsertCall) doRequest(alt string) (*http.Response, error) {
52747	reqHeaders := make(http.Header)
52748	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
52749	for k, v := range c.header_ {
52750		reqHeaders[k] = v
52751	}
52752	reqHeaders.Set("User-Agent", c.s.userAgent())
52753	var body io.Reader = nil
52754	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
52755	if err != nil {
52756		return nil, err
52757	}
52758	reqHeaders.Set("Content-Type", "application/json")
52759	c.urlParams_.Set("alt", alt)
52760	c.urlParams_.Set("prettyPrint", "false")
52761	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/autoscalers")
52762	urls += "?" + c.urlParams_.Encode()
52763	req, err := http.NewRequest("POST", urls, body)
52764	if err != nil {
52765		return nil, err
52766	}
52767	req.Header = reqHeaders
52768	googleapi.Expand(req.URL, map[string]string{
52769		"project": c.project,
52770		"zone":    c.zone,
52771	})
52772	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52773}
52774
52775// Do executes the "compute.autoscalers.insert" call.
52776// Exactly one of *Operation or error will be non-nil. Any non-2xx
52777// status code is an error. Response headers are in either
52778// *Operation.ServerResponse.Header or (if a response was returned at
52779// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
52780// to check whether the returned error was because
52781// http.StatusNotModified was returned.
52782func (c *AutoscalersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
52783	gensupport.SetOptions(c.urlParams_, opts...)
52784	res, err := c.doRequest("json")
52785	if res != nil && res.StatusCode == http.StatusNotModified {
52786		if res.Body != nil {
52787			res.Body.Close()
52788		}
52789		return nil, &googleapi.Error{
52790			Code:   res.StatusCode,
52791			Header: res.Header,
52792		}
52793	}
52794	if err != nil {
52795		return nil, err
52796	}
52797	defer googleapi.CloseBody(res)
52798	if err := googleapi.CheckResponse(res); err != nil {
52799		return nil, err
52800	}
52801	ret := &Operation{
52802		ServerResponse: googleapi.ServerResponse{
52803			Header:         res.Header,
52804			HTTPStatusCode: res.StatusCode,
52805		},
52806	}
52807	target := &ret
52808	if err := gensupport.DecodeResponse(target, res); err != nil {
52809		return nil, err
52810	}
52811	return ret, nil
52812	// {
52813	//   "description": "Creates an autoscaler in the specified project using the data included in the request.",
52814	//   "httpMethod": "POST",
52815	//   "id": "compute.autoscalers.insert",
52816	//   "parameterOrder": [
52817	//     "project",
52818	//     "zone"
52819	//   ],
52820	//   "parameters": {
52821	//     "project": {
52822	//       "description": "Project ID for this request.",
52823	//       "location": "path",
52824	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52825	//       "required": true,
52826	//       "type": "string"
52827	//     },
52828	//     "requestId": {
52829	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
52830	//       "location": "query",
52831	//       "type": "string"
52832	//     },
52833	//     "zone": {
52834	//       "description": "Name of the zone for this request.",
52835	//       "location": "path",
52836	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
52837	//       "required": true,
52838	//       "type": "string"
52839	//     }
52840	//   },
52841	//   "path": "projects/{project}/zones/{zone}/autoscalers",
52842	//   "request": {
52843	//     "$ref": "Autoscaler"
52844	//   },
52845	//   "response": {
52846	//     "$ref": "Operation"
52847	//   },
52848	//   "scopes": [
52849	//     "https://www.googleapis.com/auth/cloud-platform",
52850	//     "https://www.googleapis.com/auth/compute"
52851	//   ]
52852	// }
52853
52854}
52855
52856// method id "compute.autoscalers.list":
52857
52858type AutoscalersListCall struct {
52859	s            *Service
52860	project      string
52861	zone         string
52862	urlParams_   gensupport.URLParams
52863	ifNoneMatch_ string
52864	ctx_         context.Context
52865	header_      http.Header
52866}
52867
52868// List: Retrieves a list of autoscalers contained within the specified
52869// zone.
52870func (r *AutoscalersService) List(project string, zone string) *AutoscalersListCall {
52871	c := &AutoscalersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52872	c.project = project
52873	c.zone = zone
52874	return c
52875}
52876
52877// Filter sets the optional parameter "filter": A filter expression that
52878// filters resources listed in the response. The expression must specify
52879// the field name, a comparison operator, and the value that you want to
52880// use for filtering. The value must be a string, a number, or a
52881// boolean. The comparison operator must be either `=`, `!=`, `>`, or
52882// `<`.
52883//
52884// For example, if you are filtering Compute Engine instances, you can
52885// exclude instances named `example-instance` by specifying `name !=
52886// example-instance`.
52887//
52888// You can also filter nested fields. For example, you could specify
52889// `scheduling.automaticRestart = false` to include instances only if
52890// they are not scheduled for automatic restarts. You can use filtering
52891// on nested fields to filter based on resource labels.
52892//
52893// To filter on multiple expressions, provide each separate expression
52894// within parentheses. For example: ``` (scheduling.automaticRestart =
52895// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
52896// is an `AND` expression. However, you can include `AND` and `OR`
52897// expressions explicitly. For example: ``` (cpuPlatform = "Intel
52898// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
52899// (scheduling.automaticRestart = true) ```
52900func (c *AutoscalersListCall) Filter(filter string) *AutoscalersListCall {
52901	c.urlParams_.Set("filter", filter)
52902	return c
52903}
52904
52905// MaxResults sets the optional parameter "maxResults": The maximum
52906// number of results per page that should be returned. If the number of
52907// available results is larger than `maxResults`, Compute Engine returns
52908// a `nextPageToken` that can be used to get the next page of results in
52909// subsequent list requests. Acceptable values are `0` to `500`,
52910// inclusive. (Default: `500`)
52911func (c *AutoscalersListCall) MaxResults(maxResults int64) *AutoscalersListCall {
52912	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
52913	return c
52914}
52915
52916// OrderBy sets the optional parameter "orderBy": Sorts list results by
52917// a certain order. By default, results are returned in alphanumerical
52918// order based on the resource name.
52919//
52920// You can also sort results in descending order based on the creation
52921// timestamp using `orderBy="creationTimestamp desc". This sorts
52922// results based on the `creationTimestamp` field in reverse
52923// chronological order (newest result first). Use this to sort resources
52924// like operations so that the newest operation is returned
52925// first.
52926//
52927// Currently, only sorting by `name` or `creationTimestamp desc` is
52928// supported.
52929func (c *AutoscalersListCall) OrderBy(orderBy string) *AutoscalersListCall {
52930	c.urlParams_.Set("orderBy", orderBy)
52931	return c
52932}
52933
52934// PageToken sets the optional parameter "pageToken": Specifies a page
52935// token to use. Set `pageToken` to the `nextPageToken` returned by a
52936// previous list request to get the next page of results.
52937func (c *AutoscalersListCall) PageToken(pageToken string) *AutoscalersListCall {
52938	c.urlParams_.Set("pageToken", pageToken)
52939	return c
52940}
52941
52942// ReturnPartialSuccess sets the optional parameter
52943// "returnPartialSuccess": Opt-in for partial success behavior which
52944// provides partial results in case of failure. The default value is
52945// false.
52946func (c *AutoscalersListCall) ReturnPartialSuccess(returnPartialSuccess bool) *AutoscalersListCall {
52947	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
52948	return c
52949}
52950
52951// Fields allows partial responses to be retrieved. See
52952// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52953// for more information.
52954func (c *AutoscalersListCall) Fields(s ...googleapi.Field) *AutoscalersListCall {
52955	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52956	return c
52957}
52958
52959// IfNoneMatch sets the optional parameter which makes the operation
52960// fail if the object's ETag matches the given value. This is useful for
52961// getting updates only after the object has changed since the last
52962// request. Use googleapi.IsNotModified to check whether the response
52963// error from Do is the result of In-None-Match.
52964func (c *AutoscalersListCall) IfNoneMatch(entityTag string) *AutoscalersListCall {
52965	c.ifNoneMatch_ = entityTag
52966	return c
52967}
52968
52969// Context sets the context to be used in this call's Do method. Any
52970// pending HTTP request will be aborted if the provided context is
52971// canceled.
52972func (c *AutoscalersListCall) Context(ctx context.Context) *AutoscalersListCall {
52973	c.ctx_ = ctx
52974	return c
52975}
52976
52977// Header returns an http.Header that can be modified by the caller to
52978// add HTTP headers to the request.
52979func (c *AutoscalersListCall) Header() http.Header {
52980	if c.header_ == nil {
52981		c.header_ = make(http.Header)
52982	}
52983	return c.header_
52984}
52985
52986func (c *AutoscalersListCall) doRequest(alt string) (*http.Response, error) {
52987	reqHeaders := make(http.Header)
52988	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
52989	for k, v := range c.header_ {
52990		reqHeaders[k] = v
52991	}
52992	reqHeaders.Set("User-Agent", c.s.userAgent())
52993	if c.ifNoneMatch_ != "" {
52994		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
52995	}
52996	var body io.Reader = nil
52997	c.urlParams_.Set("alt", alt)
52998	c.urlParams_.Set("prettyPrint", "false")
52999	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/autoscalers")
53000	urls += "?" + c.urlParams_.Encode()
53001	req, err := http.NewRequest("GET", urls, body)
53002	if err != nil {
53003		return nil, err
53004	}
53005	req.Header = reqHeaders
53006	googleapi.Expand(req.URL, map[string]string{
53007		"project": c.project,
53008		"zone":    c.zone,
53009	})
53010	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53011}
53012
53013// Do executes the "compute.autoscalers.list" call.
53014// Exactly one of *AutoscalerList or error will be non-nil. Any non-2xx
53015// status code is an error. Response headers are in either
53016// *AutoscalerList.ServerResponse.Header or (if a response was returned
53017// at all) in error.(*googleapi.Error).Header. Use
53018// googleapi.IsNotModified to check whether the returned error was
53019// because http.StatusNotModified was returned.
53020func (c *AutoscalersListCall) Do(opts ...googleapi.CallOption) (*AutoscalerList, error) {
53021	gensupport.SetOptions(c.urlParams_, opts...)
53022	res, err := c.doRequest("json")
53023	if res != nil && res.StatusCode == http.StatusNotModified {
53024		if res.Body != nil {
53025			res.Body.Close()
53026		}
53027		return nil, &googleapi.Error{
53028			Code:   res.StatusCode,
53029			Header: res.Header,
53030		}
53031	}
53032	if err != nil {
53033		return nil, err
53034	}
53035	defer googleapi.CloseBody(res)
53036	if err := googleapi.CheckResponse(res); err != nil {
53037		return nil, err
53038	}
53039	ret := &AutoscalerList{
53040		ServerResponse: googleapi.ServerResponse{
53041			Header:         res.Header,
53042			HTTPStatusCode: res.StatusCode,
53043		},
53044	}
53045	target := &ret
53046	if err := gensupport.DecodeResponse(target, res); err != nil {
53047		return nil, err
53048	}
53049	return ret, nil
53050	// {
53051	//   "description": "Retrieves a list of autoscalers contained within the specified zone.",
53052	//   "httpMethod": "GET",
53053	//   "id": "compute.autoscalers.list",
53054	//   "parameterOrder": [
53055	//     "project",
53056	//     "zone"
53057	//   ],
53058	//   "parameters": {
53059	//     "filter": {
53060	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
53061	//       "location": "query",
53062	//       "type": "string"
53063	//     },
53064	//     "maxResults": {
53065	//       "default": "500",
53066	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
53067	//       "format": "uint32",
53068	//       "location": "query",
53069	//       "minimum": "0",
53070	//       "type": "integer"
53071	//     },
53072	//     "orderBy": {
53073	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
53074	//       "location": "query",
53075	//       "type": "string"
53076	//     },
53077	//     "pageToken": {
53078	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
53079	//       "location": "query",
53080	//       "type": "string"
53081	//     },
53082	//     "project": {
53083	//       "description": "Project ID for this request.",
53084	//       "location": "path",
53085	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53086	//       "required": true,
53087	//       "type": "string"
53088	//     },
53089	//     "returnPartialSuccess": {
53090	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
53091	//       "location": "query",
53092	//       "type": "boolean"
53093	//     },
53094	//     "zone": {
53095	//       "description": "Name of the zone for this request.",
53096	//       "location": "path",
53097	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
53098	//       "required": true,
53099	//       "type": "string"
53100	//     }
53101	//   },
53102	//   "path": "projects/{project}/zones/{zone}/autoscalers",
53103	//   "response": {
53104	//     "$ref": "AutoscalerList"
53105	//   },
53106	//   "scopes": [
53107	//     "https://www.googleapis.com/auth/cloud-platform",
53108	//     "https://www.googleapis.com/auth/compute",
53109	//     "https://www.googleapis.com/auth/compute.readonly"
53110	//   ]
53111	// }
53112
53113}
53114
53115// Pages invokes f for each page of results.
53116// A non-nil error returned from f will halt the iteration.
53117// The provided context supersedes any context provided to the Context method.
53118func (c *AutoscalersListCall) Pages(ctx context.Context, f func(*AutoscalerList) error) error {
53119	c.ctx_ = ctx
53120	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
53121	for {
53122		x, err := c.Do()
53123		if err != nil {
53124			return err
53125		}
53126		if err := f(x); err != nil {
53127			return err
53128		}
53129		if x.NextPageToken == "" {
53130			return nil
53131		}
53132		c.PageToken(x.NextPageToken)
53133	}
53134}
53135
53136// method id "compute.autoscalers.patch":
53137
53138type AutoscalersPatchCall struct {
53139	s          *Service
53140	project    string
53141	zone       string
53142	autoscaler *Autoscaler
53143	urlParams_ gensupport.URLParams
53144	ctx_       context.Context
53145	header_    http.Header
53146}
53147
53148// Patch: Updates an autoscaler in the specified project using the data
53149// included in the request. This method supports PATCH semantics and
53150// uses the JSON merge patch format and processing rules.
53151func (r *AutoscalersService) Patch(project string, zone string, autoscaler *Autoscaler) *AutoscalersPatchCall {
53152	c := &AutoscalersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53153	c.project = project
53154	c.zone = zone
53155	c.autoscaler = autoscaler
53156	return c
53157}
53158
53159// Autoscaler sets the optional parameter "autoscaler": Name of the
53160// autoscaler to patch.
53161func (c *AutoscalersPatchCall) Autoscaler(autoscaler string) *AutoscalersPatchCall {
53162	c.urlParams_.Set("autoscaler", autoscaler)
53163	return c
53164}
53165
53166// RequestId sets the optional parameter "requestId": An optional
53167// request ID to identify requests. Specify a unique request ID so that
53168// if you must retry your request, the server will know to ignore the
53169// request if it has already been completed.
53170//
53171// For example, consider a situation where you make an initial request
53172// and the request times out. If you make the request again with the
53173// same request ID, the server can check if original operation with the
53174// same request ID was received, and if so, will ignore the second
53175// request. This prevents clients from accidentally creating duplicate
53176// commitments.
53177//
53178// The request ID must be a valid UUID with the exception that zero UUID
53179// is not supported (00000000-0000-0000-0000-000000000000).
53180func (c *AutoscalersPatchCall) RequestId(requestId string) *AutoscalersPatchCall {
53181	c.urlParams_.Set("requestId", requestId)
53182	return c
53183}
53184
53185// Fields allows partial responses to be retrieved. See
53186// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53187// for more information.
53188func (c *AutoscalersPatchCall) Fields(s ...googleapi.Field) *AutoscalersPatchCall {
53189	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53190	return c
53191}
53192
53193// Context sets the context to be used in this call's Do method. Any
53194// pending HTTP request will be aborted if the provided context is
53195// canceled.
53196func (c *AutoscalersPatchCall) Context(ctx context.Context) *AutoscalersPatchCall {
53197	c.ctx_ = ctx
53198	return c
53199}
53200
53201// Header returns an http.Header that can be modified by the caller to
53202// add HTTP headers to the request.
53203func (c *AutoscalersPatchCall) Header() http.Header {
53204	if c.header_ == nil {
53205		c.header_ = make(http.Header)
53206	}
53207	return c.header_
53208}
53209
53210func (c *AutoscalersPatchCall) doRequest(alt string) (*http.Response, error) {
53211	reqHeaders := make(http.Header)
53212	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
53213	for k, v := range c.header_ {
53214		reqHeaders[k] = v
53215	}
53216	reqHeaders.Set("User-Agent", c.s.userAgent())
53217	var body io.Reader = nil
53218	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
53219	if err != nil {
53220		return nil, err
53221	}
53222	reqHeaders.Set("Content-Type", "application/json")
53223	c.urlParams_.Set("alt", alt)
53224	c.urlParams_.Set("prettyPrint", "false")
53225	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/autoscalers")
53226	urls += "?" + c.urlParams_.Encode()
53227	req, err := http.NewRequest("PATCH", urls, body)
53228	if err != nil {
53229		return nil, err
53230	}
53231	req.Header = reqHeaders
53232	googleapi.Expand(req.URL, map[string]string{
53233		"project": c.project,
53234		"zone":    c.zone,
53235	})
53236	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53237}
53238
53239// Do executes the "compute.autoscalers.patch" call.
53240// Exactly one of *Operation or error will be non-nil. Any non-2xx
53241// status code is an error. Response headers are in either
53242// *Operation.ServerResponse.Header or (if a response was returned at
53243// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
53244// to check whether the returned error was because
53245// http.StatusNotModified was returned.
53246func (c *AutoscalersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
53247	gensupport.SetOptions(c.urlParams_, opts...)
53248	res, err := c.doRequest("json")
53249	if res != nil && res.StatusCode == http.StatusNotModified {
53250		if res.Body != nil {
53251			res.Body.Close()
53252		}
53253		return nil, &googleapi.Error{
53254			Code:   res.StatusCode,
53255			Header: res.Header,
53256		}
53257	}
53258	if err != nil {
53259		return nil, err
53260	}
53261	defer googleapi.CloseBody(res)
53262	if err := googleapi.CheckResponse(res); err != nil {
53263		return nil, err
53264	}
53265	ret := &Operation{
53266		ServerResponse: googleapi.ServerResponse{
53267			Header:         res.Header,
53268			HTTPStatusCode: res.StatusCode,
53269		},
53270	}
53271	target := &ret
53272	if err := gensupport.DecodeResponse(target, res); err != nil {
53273		return nil, err
53274	}
53275	return ret, nil
53276	// {
53277	//   "description": "Updates an autoscaler in the specified project using the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.",
53278	//   "httpMethod": "PATCH",
53279	//   "id": "compute.autoscalers.patch",
53280	//   "parameterOrder": [
53281	//     "project",
53282	//     "zone"
53283	//   ],
53284	//   "parameters": {
53285	//     "autoscaler": {
53286	//       "description": "Name of the autoscaler to patch.",
53287	//       "location": "query",
53288	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
53289	//       "type": "string"
53290	//     },
53291	//     "project": {
53292	//       "description": "Project ID for this request.",
53293	//       "location": "path",
53294	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53295	//       "required": true,
53296	//       "type": "string"
53297	//     },
53298	//     "requestId": {
53299	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
53300	//       "location": "query",
53301	//       "type": "string"
53302	//     },
53303	//     "zone": {
53304	//       "description": "Name of the zone for this request.",
53305	//       "location": "path",
53306	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
53307	//       "required": true,
53308	//       "type": "string"
53309	//     }
53310	//   },
53311	//   "path": "projects/{project}/zones/{zone}/autoscalers",
53312	//   "request": {
53313	//     "$ref": "Autoscaler"
53314	//   },
53315	//   "response": {
53316	//     "$ref": "Operation"
53317	//   },
53318	//   "scopes": [
53319	//     "https://www.googleapis.com/auth/cloud-platform",
53320	//     "https://www.googleapis.com/auth/compute"
53321	//   ]
53322	// }
53323
53324}
53325
53326// method id "compute.autoscalers.testIamPermissions":
53327
53328type AutoscalersTestIamPermissionsCall struct {
53329	s                      *Service
53330	project                string
53331	zone                   string
53332	resource               string
53333	testpermissionsrequest *TestPermissionsRequest
53334	urlParams_             gensupport.URLParams
53335	ctx_                   context.Context
53336	header_                http.Header
53337}
53338
53339// TestIamPermissions: Returns permissions that a caller has on the
53340// specified resource.
53341func (r *AutoscalersService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *AutoscalersTestIamPermissionsCall {
53342	c := &AutoscalersTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53343	c.project = project
53344	c.zone = zone
53345	c.resource = resource
53346	c.testpermissionsrequest = testpermissionsrequest
53347	return c
53348}
53349
53350// Fields allows partial responses to be retrieved. See
53351// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53352// for more information.
53353func (c *AutoscalersTestIamPermissionsCall) Fields(s ...googleapi.Field) *AutoscalersTestIamPermissionsCall {
53354	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53355	return c
53356}
53357
53358// Context sets the context to be used in this call's Do method. Any
53359// pending HTTP request will be aborted if the provided context is
53360// canceled.
53361func (c *AutoscalersTestIamPermissionsCall) Context(ctx context.Context) *AutoscalersTestIamPermissionsCall {
53362	c.ctx_ = ctx
53363	return c
53364}
53365
53366// Header returns an http.Header that can be modified by the caller to
53367// add HTTP headers to the request.
53368func (c *AutoscalersTestIamPermissionsCall) Header() http.Header {
53369	if c.header_ == nil {
53370		c.header_ = make(http.Header)
53371	}
53372	return c.header_
53373}
53374
53375func (c *AutoscalersTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
53376	reqHeaders := make(http.Header)
53377	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
53378	for k, v := range c.header_ {
53379		reqHeaders[k] = v
53380	}
53381	reqHeaders.Set("User-Agent", c.s.userAgent())
53382	var body io.Reader = nil
53383	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
53384	if err != nil {
53385		return nil, err
53386	}
53387	reqHeaders.Set("Content-Type", "application/json")
53388	c.urlParams_.Set("alt", alt)
53389	c.urlParams_.Set("prettyPrint", "false")
53390	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/autoscalers/{resource}/testIamPermissions")
53391	urls += "?" + c.urlParams_.Encode()
53392	req, err := http.NewRequest("POST", urls, body)
53393	if err != nil {
53394		return nil, err
53395	}
53396	req.Header = reqHeaders
53397	googleapi.Expand(req.URL, map[string]string{
53398		"project":  c.project,
53399		"zone":     c.zone,
53400		"resource": c.resource,
53401	})
53402	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53403}
53404
53405// Do executes the "compute.autoscalers.testIamPermissions" call.
53406// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
53407// non-2xx status code is an error. Response headers are in either
53408// *TestPermissionsResponse.ServerResponse.Header or (if a response was
53409// returned at all) in error.(*googleapi.Error).Header. Use
53410// googleapi.IsNotModified to check whether the returned error was
53411// because http.StatusNotModified was returned.
53412func (c *AutoscalersTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
53413	gensupport.SetOptions(c.urlParams_, opts...)
53414	res, err := c.doRequest("json")
53415	if res != nil && res.StatusCode == http.StatusNotModified {
53416		if res.Body != nil {
53417			res.Body.Close()
53418		}
53419		return nil, &googleapi.Error{
53420			Code:   res.StatusCode,
53421			Header: res.Header,
53422		}
53423	}
53424	if err != nil {
53425		return nil, err
53426	}
53427	defer googleapi.CloseBody(res)
53428	if err := googleapi.CheckResponse(res); err != nil {
53429		return nil, err
53430	}
53431	ret := &TestPermissionsResponse{
53432		ServerResponse: googleapi.ServerResponse{
53433			Header:         res.Header,
53434			HTTPStatusCode: res.StatusCode,
53435		},
53436	}
53437	target := &ret
53438	if err := gensupport.DecodeResponse(target, res); err != nil {
53439		return nil, err
53440	}
53441	return ret, nil
53442	// {
53443	//   "description": "Returns permissions that a caller has on the specified resource.",
53444	//   "httpMethod": "POST",
53445	//   "id": "compute.autoscalers.testIamPermissions",
53446	//   "parameterOrder": [
53447	//     "project",
53448	//     "zone",
53449	//     "resource"
53450	//   ],
53451	//   "parameters": {
53452	//     "project": {
53453	//       "description": "Project ID for this request.",
53454	//       "location": "path",
53455	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53456	//       "required": true,
53457	//       "type": "string"
53458	//     },
53459	//     "resource": {
53460	//       "description": "Name or id of the resource for this request.",
53461	//       "location": "path",
53462	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
53463	//       "required": true,
53464	//       "type": "string"
53465	//     },
53466	//     "zone": {
53467	//       "description": "The name of the zone for this request.",
53468	//       "location": "path",
53469	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
53470	//       "required": true,
53471	//       "type": "string"
53472	//     }
53473	//   },
53474	//   "path": "projects/{project}/zones/{zone}/autoscalers/{resource}/testIamPermissions",
53475	//   "request": {
53476	//     "$ref": "TestPermissionsRequest"
53477	//   },
53478	//   "response": {
53479	//     "$ref": "TestPermissionsResponse"
53480	//   },
53481	//   "scopes": [
53482	//     "https://www.googleapis.com/auth/cloud-platform",
53483	//     "https://www.googleapis.com/auth/compute",
53484	//     "https://www.googleapis.com/auth/compute.readonly"
53485	//   ]
53486	// }
53487
53488}
53489
53490// method id "compute.autoscalers.update":
53491
53492type AutoscalersUpdateCall struct {
53493	s          *Service
53494	project    string
53495	zone       string
53496	autoscaler *Autoscaler
53497	urlParams_ gensupport.URLParams
53498	ctx_       context.Context
53499	header_    http.Header
53500}
53501
53502// Update: Updates an autoscaler in the specified project using the data
53503// included in the request.
53504func (r *AutoscalersService) Update(project string, zone string, autoscaler *Autoscaler) *AutoscalersUpdateCall {
53505	c := &AutoscalersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53506	c.project = project
53507	c.zone = zone
53508	c.autoscaler = autoscaler
53509	return c
53510}
53511
53512// Autoscaler sets the optional parameter "autoscaler": Name of the
53513// autoscaler to update.
53514func (c *AutoscalersUpdateCall) Autoscaler(autoscaler string) *AutoscalersUpdateCall {
53515	c.urlParams_.Set("autoscaler", autoscaler)
53516	return c
53517}
53518
53519// RequestId sets the optional parameter "requestId": An optional
53520// request ID to identify requests. Specify a unique request ID so that
53521// if you must retry your request, the server will know to ignore the
53522// request if it has already been completed.
53523//
53524// For example, consider a situation where you make an initial request
53525// and the request times out. If you make the request again with the
53526// same request ID, the server can check if original operation with the
53527// same request ID was received, and if so, will ignore the second
53528// request. This prevents clients from accidentally creating duplicate
53529// commitments.
53530//
53531// The request ID must be a valid UUID with the exception that zero UUID
53532// is not supported (00000000-0000-0000-0000-000000000000).
53533func (c *AutoscalersUpdateCall) RequestId(requestId string) *AutoscalersUpdateCall {
53534	c.urlParams_.Set("requestId", requestId)
53535	return c
53536}
53537
53538// Fields allows partial responses to be retrieved. See
53539// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53540// for more information.
53541func (c *AutoscalersUpdateCall) Fields(s ...googleapi.Field) *AutoscalersUpdateCall {
53542	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53543	return c
53544}
53545
53546// Context sets the context to be used in this call's Do method. Any
53547// pending HTTP request will be aborted if the provided context is
53548// canceled.
53549func (c *AutoscalersUpdateCall) Context(ctx context.Context) *AutoscalersUpdateCall {
53550	c.ctx_ = ctx
53551	return c
53552}
53553
53554// Header returns an http.Header that can be modified by the caller to
53555// add HTTP headers to the request.
53556func (c *AutoscalersUpdateCall) Header() http.Header {
53557	if c.header_ == nil {
53558		c.header_ = make(http.Header)
53559	}
53560	return c.header_
53561}
53562
53563func (c *AutoscalersUpdateCall) doRequest(alt string) (*http.Response, error) {
53564	reqHeaders := make(http.Header)
53565	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
53566	for k, v := range c.header_ {
53567		reqHeaders[k] = v
53568	}
53569	reqHeaders.Set("User-Agent", c.s.userAgent())
53570	var body io.Reader = nil
53571	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
53572	if err != nil {
53573		return nil, err
53574	}
53575	reqHeaders.Set("Content-Type", "application/json")
53576	c.urlParams_.Set("alt", alt)
53577	c.urlParams_.Set("prettyPrint", "false")
53578	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/autoscalers")
53579	urls += "?" + c.urlParams_.Encode()
53580	req, err := http.NewRequest("PUT", urls, body)
53581	if err != nil {
53582		return nil, err
53583	}
53584	req.Header = reqHeaders
53585	googleapi.Expand(req.URL, map[string]string{
53586		"project": c.project,
53587		"zone":    c.zone,
53588	})
53589	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53590}
53591
53592// Do executes the "compute.autoscalers.update" call.
53593// Exactly one of *Operation or error will be non-nil. Any non-2xx
53594// status code is an error. Response headers are in either
53595// *Operation.ServerResponse.Header or (if a response was returned at
53596// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
53597// to check whether the returned error was because
53598// http.StatusNotModified was returned.
53599func (c *AutoscalersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
53600	gensupport.SetOptions(c.urlParams_, opts...)
53601	res, err := c.doRequest("json")
53602	if res != nil && res.StatusCode == http.StatusNotModified {
53603		if res.Body != nil {
53604			res.Body.Close()
53605		}
53606		return nil, &googleapi.Error{
53607			Code:   res.StatusCode,
53608			Header: res.Header,
53609		}
53610	}
53611	if err != nil {
53612		return nil, err
53613	}
53614	defer googleapi.CloseBody(res)
53615	if err := googleapi.CheckResponse(res); err != nil {
53616		return nil, err
53617	}
53618	ret := &Operation{
53619		ServerResponse: googleapi.ServerResponse{
53620			Header:         res.Header,
53621			HTTPStatusCode: res.StatusCode,
53622		},
53623	}
53624	target := &ret
53625	if err := gensupport.DecodeResponse(target, res); err != nil {
53626		return nil, err
53627	}
53628	return ret, nil
53629	// {
53630	//   "description": "Updates an autoscaler in the specified project using the data included in the request.",
53631	//   "httpMethod": "PUT",
53632	//   "id": "compute.autoscalers.update",
53633	//   "parameterOrder": [
53634	//     "project",
53635	//     "zone"
53636	//   ],
53637	//   "parameters": {
53638	//     "autoscaler": {
53639	//       "description": "Name of the autoscaler to update.",
53640	//       "location": "query",
53641	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
53642	//       "type": "string"
53643	//     },
53644	//     "project": {
53645	//       "description": "Project ID for this request.",
53646	//       "location": "path",
53647	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53648	//       "required": true,
53649	//       "type": "string"
53650	//     },
53651	//     "requestId": {
53652	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
53653	//       "location": "query",
53654	//       "type": "string"
53655	//     },
53656	//     "zone": {
53657	//       "description": "Name of the zone for this request.",
53658	//       "location": "path",
53659	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
53660	//       "required": true,
53661	//       "type": "string"
53662	//     }
53663	//   },
53664	//   "path": "projects/{project}/zones/{zone}/autoscalers",
53665	//   "request": {
53666	//     "$ref": "Autoscaler"
53667	//   },
53668	//   "response": {
53669	//     "$ref": "Operation"
53670	//   },
53671	//   "scopes": [
53672	//     "https://www.googleapis.com/auth/cloud-platform",
53673	//     "https://www.googleapis.com/auth/compute"
53674	//   ]
53675	// }
53676
53677}
53678
53679// method id "compute.backendBuckets.addSignedUrlKey":
53680
53681type BackendBucketsAddSignedUrlKeyCall struct {
53682	s             *Service
53683	project       string
53684	backendBucket string
53685	signedurlkey  *SignedUrlKey
53686	urlParams_    gensupport.URLParams
53687	ctx_          context.Context
53688	header_       http.Header
53689}
53690
53691// AddSignedUrlKey: Adds a key for validating requests with signed URLs
53692// for this backend bucket.
53693func (r *BackendBucketsService) AddSignedUrlKey(project string, backendBucket string, signedurlkey *SignedUrlKey) *BackendBucketsAddSignedUrlKeyCall {
53694	c := &BackendBucketsAddSignedUrlKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53695	c.project = project
53696	c.backendBucket = backendBucket
53697	c.signedurlkey = signedurlkey
53698	return c
53699}
53700
53701// RequestId sets the optional parameter "requestId": An optional
53702// request ID to identify requests. Specify a unique request ID so that
53703// if you must retry your request, the server will know to ignore the
53704// request if it has already been completed.
53705//
53706// For example, consider a situation where you make an initial request
53707// and the request times out. If you make the request again with the
53708// same request ID, the server can check if original operation with the
53709// same request ID was received, and if so, will ignore the second
53710// request. This prevents clients from accidentally creating duplicate
53711// commitments.
53712//
53713// The request ID must be a valid UUID with the exception that zero UUID
53714// is not supported (00000000-0000-0000-0000-000000000000).
53715func (c *BackendBucketsAddSignedUrlKeyCall) RequestId(requestId string) *BackendBucketsAddSignedUrlKeyCall {
53716	c.urlParams_.Set("requestId", requestId)
53717	return c
53718}
53719
53720// Fields allows partial responses to be retrieved. See
53721// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53722// for more information.
53723func (c *BackendBucketsAddSignedUrlKeyCall) Fields(s ...googleapi.Field) *BackendBucketsAddSignedUrlKeyCall {
53724	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53725	return c
53726}
53727
53728// Context sets the context to be used in this call's Do method. Any
53729// pending HTTP request will be aborted if the provided context is
53730// canceled.
53731func (c *BackendBucketsAddSignedUrlKeyCall) Context(ctx context.Context) *BackendBucketsAddSignedUrlKeyCall {
53732	c.ctx_ = ctx
53733	return c
53734}
53735
53736// Header returns an http.Header that can be modified by the caller to
53737// add HTTP headers to the request.
53738func (c *BackendBucketsAddSignedUrlKeyCall) Header() http.Header {
53739	if c.header_ == nil {
53740		c.header_ = make(http.Header)
53741	}
53742	return c.header_
53743}
53744
53745func (c *BackendBucketsAddSignedUrlKeyCall) doRequest(alt string) (*http.Response, error) {
53746	reqHeaders := make(http.Header)
53747	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
53748	for k, v := range c.header_ {
53749		reqHeaders[k] = v
53750	}
53751	reqHeaders.Set("User-Agent", c.s.userAgent())
53752	var body io.Reader = nil
53753	body, err := googleapi.WithoutDataWrapper.JSONReader(c.signedurlkey)
53754	if err != nil {
53755		return nil, err
53756	}
53757	reqHeaders.Set("Content-Type", "application/json")
53758	c.urlParams_.Set("alt", alt)
53759	c.urlParams_.Set("prettyPrint", "false")
53760	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendBuckets/{backendBucket}/addSignedUrlKey")
53761	urls += "?" + c.urlParams_.Encode()
53762	req, err := http.NewRequest("POST", urls, body)
53763	if err != nil {
53764		return nil, err
53765	}
53766	req.Header = reqHeaders
53767	googleapi.Expand(req.URL, map[string]string{
53768		"project":       c.project,
53769		"backendBucket": c.backendBucket,
53770	})
53771	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53772}
53773
53774// Do executes the "compute.backendBuckets.addSignedUrlKey" call.
53775// Exactly one of *Operation or error will be non-nil. Any non-2xx
53776// status code is an error. Response headers are in either
53777// *Operation.ServerResponse.Header or (if a response was returned at
53778// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
53779// to check whether the returned error was because
53780// http.StatusNotModified was returned.
53781func (c *BackendBucketsAddSignedUrlKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
53782	gensupport.SetOptions(c.urlParams_, opts...)
53783	res, err := c.doRequest("json")
53784	if res != nil && res.StatusCode == http.StatusNotModified {
53785		if res.Body != nil {
53786			res.Body.Close()
53787		}
53788		return nil, &googleapi.Error{
53789			Code:   res.StatusCode,
53790			Header: res.Header,
53791		}
53792	}
53793	if err != nil {
53794		return nil, err
53795	}
53796	defer googleapi.CloseBody(res)
53797	if err := googleapi.CheckResponse(res); err != nil {
53798		return nil, err
53799	}
53800	ret := &Operation{
53801		ServerResponse: googleapi.ServerResponse{
53802			Header:         res.Header,
53803			HTTPStatusCode: res.StatusCode,
53804		},
53805	}
53806	target := &ret
53807	if err := gensupport.DecodeResponse(target, res); err != nil {
53808		return nil, err
53809	}
53810	return ret, nil
53811	// {
53812	//   "description": "Adds a key for validating requests with signed URLs for this backend bucket.",
53813	//   "httpMethod": "POST",
53814	//   "id": "compute.backendBuckets.addSignedUrlKey",
53815	//   "parameterOrder": [
53816	//     "project",
53817	//     "backendBucket"
53818	//   ],
53819	//   "parameters": {
53820	//     "backendBucket": {
53821	//       "description": "Name of the BackendBucket resource to which the Signed URL Key should be added. The name should conform to RFC1035.",
53822	//       "location": "path",
53823	//       "required": true,
53824	//       "type": "string"
53825	//     },
53826	//     "project": {
53827	//       "description": "Project ID for this request.",
53828	//       "location": "path",
53829	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53830	//       "required": true,
53831	//       "type": "string"
53832	//     },
53833	//     "requestId": {
53834	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
53835	//       "location": "query",
53836	//       "type": "string"
53837	//     }
53838	//   },
53839	//   "path": "projects/{project}/global/backendBuckets/{backendBucket}/addSignedUrlKey",
53840	//   "request": {
53841	//     "$ref": "SignedUrlKey"
53842	//   },
53843	//   "response": {
53844	//     "$ref": "Operation"
53845	//   },
53846	//   "scopes": [
53847	//     "https://www.googleapis.com/auth/cloud-platform",
53848	//     "https://www.googleapis.com/auth/compute"
53849	//   ]
53850	// }
53851
53852}
53853
53854// method id "compute.backendBuckets.delete":
53855
53856type BackendBucketsDeleteCall struct {
53857	s             *Service
53858	project       string
53859	backendBucket string
53860	urlParams_    gensupport.URLParams
53861	ctx_          context.Context
53862	header_       http.Header
53863}
53864
53865// Delete: Deletes the specified BackendBucket resource.
53866func (r *BackendBucketsService) Delete(project string, backendBucket string) *BackendBucketsDeleteCall {
53867	c := &BackendBucketsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53868	c.project = project
53869	c.backendBucket = backendBucket
53870	return c
53871}
53872
53873// RequestId sets the optional parameter "requestId": An optional
53874// request ID to identify requests. Specify a unique request ID so that
53875// if you must retry your request, the server will know to ignore the
53876// request if it has already been completed.
53877//
53878// For example, consider a situation where you make an initial request
53879// and the request times out. If you make the request again with the
53880// same request ID, the server can check if original operation with the
53881// same request ID was received, and if so, will ignore the second
53882// request. This prevents clients from accidentally creating duplicate
53883// commitments.
53884//
53885// The request ID must be a valid UUID with the exception that zero UUID
53886// is not supported (00000000-0000-0000-0000-000000000000).
53887func (c *BackendBucketsDeleteCall) RequestId(requestId string) *BackendBucketsDeleteCall {
53888	c.urlParams_.Set("requestId", requestId)
53889	return c
53890}
53891
53892// Fields allows partial responses to be retrieved. See
53893// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53894// for more information.
53895func (c *BackendBucketsDeleteCall) Fields(s ...googleapi.Field) *BackendBucketsDeleteCall {
53896	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53897	return c
53898}
53899
53900// Context sets the context to be used in this call's Do method. Any
53901// pending HTTP request will be aborted if the provided context is
53902// canceled.
53903func (c *BackendBucketsDeleteCall) Context(ctx context.Context) *BackendBucketsDeleteCall {
53904	c.ctx_ = ctx
53905	return c
53906}
53907
53908// Header returns an http.Header that can be modified by the caller to
53909// add HTTP headers to the request.
53910func (c *BackendBucketsDeleteCall) Header() http.Header {
53911	if c.header_ == nil {
53912		c.header_ = make(http.Header)
53913	}
53914	return c.header_
53915}
53916
53917func (c *BackendBucketsDeleteCall) doRequest(alt string) (*http.Response, error) {
53918	reqHeaders := make(http.Header)
53919	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
53920	for k, v := range c.header_ {
53921		reqHeaders[k] = v
53922	}
53923	reqHeaders.Set("User-Agent", c.s.userAgent())
53924	var body io.Reader = nil
53925	c.urlParams_.Set("alt", alt)
53926	c.urlParams_.Set("prettyPrint", "false")
53927	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendBuckets/{backendBucket}")
53928	urls += "?" + c.urlParams_.Encode()
53929	req, err := http.NewRequest("DELETE", urls, body)
53930	if err != nil {
53931		return nil, err
53932	}
53933	req.Header = reqHeaders
53934	googleapi.Expand(req.URL, map[string]string{
53935		"project":       c.project,
53936		"backendBucket": c.backendBucket,
53937	})
53938	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53939}
53940
53941// Do executes the "compute.backendBuckets.delete" call.
53942// Exactly one of *Operation or error will be non-nil. Any non-2xx
53943// status code is an error. Response headers are in either
53944// *Operation.ServerResponse.Header or (if a response was returned at
53945// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
53946// to check whether the returned error was because
53947// http.StatusNotModified was returned.
53948func (c *BackendBucketsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
53949	gensupport.SetOptions(c.urlParams_, opts...)
53950	res, err := c.doRequest("json")
53951	if res != nil && res.StatusCode == http.StatusNotModified {
53952		if res.Body != nil {
53953			res.Body.Close()
53954		}
53955		return nil, &googleapi.Error{
53956			Code:   res.StatusCode,
53957			Header: res.Header,
53958		}
53959	}
53960	if err != nil {
53961		return nil, err
53962	}
53963	defer googleapi.CloseBody(res)
53964	if err := googleapi.CheckResponse(res); err != nil {
53965		return nil, err
53966	}
53967	ret := &Operation{
53968		ServerResponse: googleapi.ServerResponse{
53969			Header:         res.Header,
53970			HTTPStatusCode: res.StatusCode,
53971		},
53972	}
53973	target := &ret
53974	if err := gensupport.DecodeResponse(target, res); err != nil {
53975		return nil, err
53976	}
53977	return ret, nil
53978	// {
53979	//   "description": "Deletes the specified BackendBucket resource.",
53980	//   "httpMethod": "DELETE",
53981	//   "id": "compute.backendBuckets.delete",
53982	//   "parameterOrder": [
53983	//     "project",
53984	//     "backendBucket"
53985	//   ],
53986	//   "parameters": {
53987	//     "backendBucket": {
53988	//       "description": "Name of the BackendBucket resource to delete.",
53989	//       "location": "path",
53990	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
53991	//       "required": true,
53992	//       "type": "string"
53993	//     },
53994	//     "project": {
53995	//       "description": "Project ID for this request.",
53996	//       "location": "path",
53997	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53998	//       "required": true,
53999	//       "type": "string"
54000	//     },
54001	//     "requestId": {
54002	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
54003	//       "location": "query",
54004	//       "type": "string"
54005	//     }
54006	//   },
54007	//   "path": "projects/{project}/global/backendBuckets/{backendBucket}",
54008	//   "response": {
54009	//     "$ref": "Operation"
54010	//   },
54011	//   "scopes": [
54012	//     "https://www.googleapis.com/auth/cloud-platform",
54013	//     "https://www.googleapis.com/auth/compute"
54014	//   ]
54015	// }
54016
54017}
54018
54019// method id "compute.backendBuckets.deleteSignedUrlKey":
54020
54021type BackendBucketsDeleteSignedUrlKeyCall struct {
54022	s             *Service
54023	project       string
54024	backendBucket string
54025	urlParams_    gensupport.URLParams
54026	ctx_          context.Context
54027	header_       http.Header
54028}
54029
54030// DeleteSignedUrlKey: Deletes a key for validating requests with signed
54031// URLs for this backend bucket.
54032func (r *BackendBucketsService) DeleteSignedUrlKey(project string, backendBucket string, keyName string) *BackendBucketsDeleteSignedUrlKeyCall {
54033	c := &BackendBucketsDeleteSignedUrlKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54034	c.project = project
54035	c.backendBucket = backendBucket
54036	c.urlParams_.Set("keyName", keyName)
54037	return c
54038}
54039
54040// RequestId sets the optional parameter "requestId": An optional
54041// request ID to identify requests. Specify a unique request ID so that
54042// if you must retry your request, the server will know to ignore the
54043// request if it has already been completed.
54044//
54045// For example, consider a situation where you make an initial request
54046// and the request times out. If you make the request again with the
54047// same request ID, the server can check if original operation with the
54048// same request ID was received, and if so, will ignore the second
54049// request. This prevents clients from accidentally creating duplicate
54050// commitments.
54051//
54052// The request ID must be a valid UUID with the exception that zero UUID
54053// is not supported (00000000-0000-0000-0000-000000000000).
54054func (c *BackendBucketsDeleteSignedUrlKeyCall) RequestId(requestId string) *BackendBucketsDeleteSignedUrlKeyCall {
54055	c.urlParams_.Set("requestId", requestId)
54056	return c
54057}
54058
54059// Fields allows partial responses to be retrieved. See
54060// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54061// for more information.
54062func (c *BackendBucketsDeleteSignedUrlKeyCall) Fields(s ...googleapi.Field) *BackendBucketsDeleteSignedUrlKeyCall {
54063	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54064	return c
54065}
54066
54067// Context sets the context to be used in this call's Do method. Any
54068// pending HTTP request will be aborted if the provided context is
54069// canceled.
54070func (c *BackendBucketsDeleteSignedUrlKeyCall) Context(ctx context.Context) *BackendBucketsDeleteSignedUrlKeyCall {
54071	c.ctx_ = ctx
54072	return c
54073}
54074
54075// Header returns an http.Header that can be modified by the caller to
54076// add HTTP headers to the request.
54077func (c *BackendBucketsDeleteSignedUrlKeyCall) Header() http.Header {
54078	if c.header_ == nil {
54079		c.header_ = make(http.Header)
54080	}
54081	return c.header_
54082}
54083
54084func (c *BackendBucketsDeleteSignedUrlKeyCall) doRequest(alt string) (*http.Response, error) {
54085	reqHeaders := make(http.Header)
54086	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
54087	for k, v := range c.header_ {
54088		reqHeaders[k] = v
54089	}
54090	reqHeaders.Set("User-Agent", c.s.userAgent())
54091	var body io.Reader = nil
54092	c.urlParams_.Set("alt", alt)
54093	c.urlParams_.Set("prettyPrint", "false")
54094	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendBuckets/{backendBucket}/deleteSignedUrlKey")
54095	urls += "?" + c.urlParams_.Encode()
54096	req, err := http.NewRequest("POST", urls, body)
54097	if err != nil {
54098		return nil, err
54099	}
54100	req.Header = reqHeaders
54101	googleapi.Expand(req.URL, map[string]string{
54102		"project":       c.project,
54103		"backendBucket": c.backendBucket,
54104	})
54105	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54106}
54107
54108// Do executes the "compute.backendBuckets.deleteSignedUrlKey" call.
54109// Exactly one of *Operation or error will be non-nil. Any non-2xx
54110// status code is an error. Response headers are in either
54111// *Operation.ServerResponse.Header or (if a response was returned at
54112// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
54113// to check whether the returned error was because
54114// http.StatusNotModified was returned.
54115func (c *BackendBucketsDeleteSignedUrlKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
54116	gensupport.SetOptions(c.urlParams_, opts...)
54117	res, err := c.doRequest("json")
54118	if res != nil && res.StatusCode == http.StatusNotModified {
54119		if res.Body != nil {
54120			res.Body.Close()
54121		}
54122		return nil, &googleapi.Error{
54123			Code:   res.StatusCode,
54124			Header: res.Header,
54125		}
54126	}
54127	if err != nil {
54128		return nil, err
54129	}
54130	defer googleapi.CloseBody(res)
54131	if err := googleapi.CheckResponse(res); err != nil {
54132		return nil, err
54133	}
54134	ret := &Operation{
54135		ServerResponse: googleapi.ServerResponse{
54136			Header:         res.Header,
54137			HTTPStatusCode: res.StatusCode,
54138		},
54139	}
54140	target := &ret
54141	if err := gensupport.DecodeResponse(target, res); err != nil {
54142		return nil, err
54143	}
54144	return ret, nil
54145	// {
54146	//   "description": "Deletes a key for validating requests with signed URLs for this backend bucket.",
54147	//   "httpMethod": "POST",
54148	//   "id": "compute.backendBuckets.deleteSignedUrlKey",
54149	//   "parameterOrder": [
54150	//     "project",
54151	//     "backendBucket",
54152	//     "keyName"
54153	//   ],
54154	//   "parameters": {
54155	//     "backendBucket": {
54156	//       "description": "Name of the BackendBucket resource to which the Signed URL Key should be added. The name should conform to RFC1035.",
54157	//       "location": "path",
54158	//       "required": true,
54159	//       "type": "string"
54160	//     },
54161	//     "keyName": {
54162	//       "description": "The name of the Signed URL Key to delete.",
54163	//       "location": "query",
54164	//       "required": true,
54165	//       "type": "string"
54166	//     },
54167	//     "project": {
54168	//       "description": "Project ID for this request.",
54169	//       "location": "path",
54170	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54171	//       "required": true,
54172	//       "type": "string"
54173	//     },
54174	//     "requestId": {
54175	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
54176	//       "location": "query",
54177	//       "type": "string"
54178	//     }
54179	//   },
54180	//   "path": "projects/{project}/global/backendBuckets/{backendBucket}/deleteSignedUrlKey",
54181	//   "response": {
54182	//     "$ref": "Operation"
54183	//   },
54184	//   "scopes": [
54185	//     "https://www.googleapis.com/auth/cloud-platform",
54186	//     "https://www.googleapis.com/auth/compute"
54187	//   ]
54188	// }
54189
54190}
54191
54192// method id "compute.backendBuckets.get":
54193
54194type BackendBucketsGetCall struct {
54195	s             *Service
54196	project       string
54197	backendBucket string
54198	urlParams_    gensupport.URLParams
54199	ifNoneMatch_  string
54200	ctx_          context.Context
54201	header_       http.Header
54202}
54203
54204// Get: Returns the specified BackendBucket resource. Gets a list of
54205// available backend buckets by making a list() request.
54206func (r *BackendBucketsService) Get(project string, backendBucket string) *BackendBucketsGetCall {
54207	c := &BackendBucketsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54208	c.project = project
54209	c.backendBucket = backendBucket
54210	return c
54211}
54212
54213// Fields allows partial responses to be retrieved. See
54214// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54215// for more information.
54216func (c *BackendBucketsGetCall) Fields(s ...googleapi.Field) *BackendBucketsGetCall {
54217	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54218	return c
54219}
54220
54221// IfNoneMatch sets the optional parameter which makes the operation
54222// fail if the object's ETag matches the given value. This is useful for
54223// getting updates only after the object has changed since the last
54224// request. Use googleapi.IsNotModified to check whether the response
54225// error from Do is the result of In-None-Match.
54226func (c *BackendBucketsGetCall) IfNoneMatch(entityTag string) *BackendBucketsGetCall {
54227	c.ifNoneMatch_ = entityTag
54228	return c
54229}
54230
54231// Context sets the context to be used in this call's Do method. Any
54232// pending HTTP request will be aborted if the provided context is
54233// canceled.
54234func (c *BackendBucketsGetCall) Context(ctx context.Context) *BackendBucketsGetCall {
54235	c.ctx_ = ctx
54236	return c
54237}
54238
54239// Header returns an http.Header that can be modified by the caller to
54240// add HTTP headers to the request.
54241func (c *BackendBucketsGetCall) Header() http.Header {
54242	if c.header_ == nil {
54243		c.header_ = make(http.Header)
54244	}
54245	return c.header_
54246}
54247
54248func (c *BackendBucketsGetCall) doRequest(alt string) (*http.Response, error) {
54249	reqHeaders := make(http.Header)
54250	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
54251	for k, v := range c.header_ {
54252		reqHeaders[k] = v
54253	}
54254	reqHeaders.Set("User-Agent", c.s.userAgent())
54255	if c.ifNoneMatch_ != "" {
54256		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
54257	}
54258	var body io.Reader = nil
54259	c.urlParams_.Set("alt", alt)
54260	c.urlParams_.Set("prettyPrint", "false")
54261	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendBuckets/{backendBucket}")
54262	urls += "?" + c.urlParams_.Encode()
54263	req, err := http.NewRequest("GET", urls, body)
54264	if err != nil {
54265		return nil, err
54266	}
54267	req.Header = reqHeaders
54268	googleapi.Expand(req.URL, map[string]string{
54269		"project":       c.project,
54270		"backendBucket": c.backendBucket,
54271	})
54272	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54273}
54274
54275// Do executes the "compute.backendBuckets.get" call.
54276// Exactly one of *BackendBucket or error will be non-nil. Any non-2xx
54277// status code is an error. Response headers are in either
54278// *BackendBucket.ServerResponse.Header or (if a response was returned
54279// at all) in error.(*googleapi.Error).Header. Use
54280// googleapi.IsNotModified to check whether the returned error was
54281// because http.StatusNotModified was returned.
54282func (c *BackendBucketsGetCall) Do(opts ...googleapi.CallOption) (*BackendBucket, error) {
54283	gensupport.SetOptions(c.urlParams_, opts...)
54284	res, err := c.doRequest("json")
54285	if res != nil && res.StatusCode == http.StatusNotModified {
54286		if res.Body != nil {
54287			res.Body.Close()
54288		}
54289		return nil, &googleapi.Error{
54290			Code:   res.StatusCode,
54291			Header: res.Header,
54292		}
54293	}
54294	if err != nil {
54295		return nil, err
54296	}
54297	defer googleapi.CloseBody(res)
54298	if err := googleapi.CheckResponse(res); err != nil {
54299		return nil, err
54300	}
54301	ret := &BackendBucket{
54302		ServerResponse: googleapi.ServerResponse{
54303			Header:         res.Header,
54304			HTTPStatusCode: res.StatusCode,
54305		},
54306	}
54307	target := &ret
54308	if err := gensupport.DecodeResponse(target, res); err != nil {
54309		return nil, err
54310	}
54311	return ret, nil
54312	// {
54313	//   "description": "Returns the specified BackendBucket resource. Gets a list of available backend buckets by making a list() request.",
54314	//   "httpMethod": "GET",
54315	//   "id": "compute.backendBuckets.get",
54316	//   "parameterOrder": [
54317	//     "project",
54318	//     "backendBucket"
54319	//   ],
54320	//   "parameters": {
54321	//     "backendBucket": {
54322	//       "description": "Name of the BackendBucket resource to return.",
54323	//       "location": "path",
54324	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
54325	//       "required": true,
54326	//       "type": "string"
54327	//     },
54328	//     "project": {
54329	//       "description": "Project ID for this request.",
54330	//       "location": "path",
54331	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54332	//       "required": true,
54333	//       "type": "string"
54334	//     }
54335	//   },
54336	//   "path": "projects/{project}/global/backendBuckets/{backendBucket}",
54337	//   "response": {
54338	//     "$ref": "BackendBucket"
54339	//   },
54340	//   "scopes": [
54341	//     "https://www.googleapis.com/auth/cloud-platform",
54342	//     "https://www.googleapis.com/auth/compute",
54343	//     "https://www.googleapis.com/auth/compute.readonly"
54344	//   ]
54345	// }
54346
54347}
54348
54349// method id "compute.backendBuckets.getIamPolicy":
54350
54351type BackendBucketsGetIamPolicyCall struct {
54352	s            *Service
54353	project      string
54354	resource     string
54355	urlParams_   gensupport.URLParams
54356	ifNoneMatch_ string
54357	ctx_         context.Context
54358	header_      http.Header
54359}
54360
54361// GetIamPolicy: Gets the access control policy for a resource. May be
54362// empty if no such policy or resource exists.
54363func (r *BackendBucketsService) GetIamPolicy(project string, resource string) *BackendBucketsGetIamPolicyCall {
54364	c := &BackendBucketsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54365	c.project = project
54366	c.resource = resource
54367	return c
54368}
54369
54370// OptionsRequestedPolicyVersion sets the optional parameter
54371// "optionsRequestedPolicyVersion": Requested IAM Policy version.
54372func (c *BackendBucketsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *BackendBucketsGetIamPolicyCall {
54373	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
54374	return c
54375}
54376
54377// Fields allows partial responses to be retrieved. See
54378// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54379// for more information.
54380func (c *BackendBucketsGetIamPolicyCall) Fields(s ...googleapi.Field) *BackendBucketsGetIamPolicyCall {
54381	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54382	return c
54383}
54384
54385// IfNoneMatch sets the optional parameter which makes the operation
54386// fail if the object's ETag matches the given value. This is useful for
54387// getting updates only after the object has changed since the last
54388// request. Use googleapi.IsNotModified to check whether the response
54389// error from Do is the result of In-None-Match.
54390func (c *BackendBucketsGetIamPolicyCall) IfNoneMatch(entityTag string) *BackendBucketsGetIamPolicyCall {
54391	c.ifNoneMatch_ = entityTag
54392	return c
54393}
54394
54395// Context sets the context to be used in this call's Do method. Any
54396// pending HTTP request will be aborted if the provided context is
54397// canceled.
54398func (c *BackendBucketsGetIamPolicyCall) Context(ctx context.Context) *BackendBucketsGetIamPolicyCall {
54399	c.ctx_ = ctx
54400	return c
54401}
54402
54403// Header returns an http.Header that can be modified by the caller to
54404// add HTTP headers to the request.
54405func (c *BackendBucketsGetIamPolicyCall) Header() http.Header {
54406	if c.header_ == nil {
54407		c.header_ = make(http.Header)
54408	}
54409	return c.header_
54410}
54411
54412func (c *BackendBucketsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
54413	reqHeaders := make(http.Header)
54414	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
54415	for k, v := range c.header_ {
54416		reqHeaders[k] = v
54417	}
54418	reqHeaders.Set("User-Agent", c.s.userAgent())
54419	if c.ifNoneMatch_ != "" {
54420		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
54421	}
54422	var body io.Reader = nil
54423	c.urlParams_.Set("alt", alt)
54424	c.urlParams_.Set("prettyPrint", "false")
54425	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendBuckets/{resource}/getIamPolicy")
54426	urls += "?" + c.urlParams_.Encode()
54427	req, err := http.NewRequest("GET", urls, body)
54428	if err != nil {
54429		return nil, err
54430	}
54431	req.Header = reqHeaders
54432	googleapi.Expand(req.URL, map[string]string{
54433		"project":  c.project,
54434		"resource": c.resource,
54435	})
54436	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54437}
54438
54439// Do executes the "compute.backendBuckets.getIamPolicy" call.
54440// Exactly one of *Policy or error will be non-nil. Any non-2xx status
54441// code is an error. Response headers are in either
54442// *Policy.ServerResponse.Header or (if a response was returned at all)
54443// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
54444// check whether the returned error was because http.StatusNotModified
54445// was returned.
54446func (c *BackendBucketsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
54447	gensupport.SetOptions(c.urlParams_, opts...)
54448	res, err := c.doRequest("json")
54449	if res != nil && res.StatusCode == http.StatusNotModified {
54450		if res.Body != nil {
54451			res.Body.Close()
54452		}
54453		return nil, &googleapi.Error{
54454			Code:   res.StatusCode,
54455			Header: res.Header,
54456		}
54457	}
54458	if err != nil {
54459		return nil, err
54460	}
54461	defer googleapi.CloseBody(res)
54462	if err := googleapi.CheckResponse(res); err != nil {
54463		return nil, err
54464	}
54465	ret := &Policy{
54466		ServerResponse: googleapi.ServerResponse{
54467			Header:         res.Header,
54468			HTTPStatusCode: res.StatusCode,
54469		},
54470	}
54471	target := &ret
54472	if err := gensupport.DecodeResponse(target, res); err != nil {
54473		return nil, err
54474	}
54475	return ret, nil
54476	// {
54477	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
54478	//   "httpMethod": "GET",
54479	//   "id": "compute.backendBuckets.getIamPolicy",
54480	//   "parameterOrder": [
54481	//     "project",
54482	//     "resource"
54483	//   ],
54484	//   "parameters": {
54485	//     "optionsRequestedPolicyVersion": {
54486	//       "description": "Requested IAM Policy version.",
54487	//       "format": "int32",
54488	//       "location": "query",
54489	//       "type": "integer"
54490	//     },
54491	//     "project": {
54492	//       "description": "Project ID for this request.",
54493	//       "location": "path",
54494	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54495	//       "required": true,
54496	//       "type": "string"
54497	//     },
54498	//     "resource": {
54499	//       "description": "Name or id of the resource for this request.",
54500	//       "location": "path",
54501	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
54502	//       "required": true,
54503	//       "type": "string"
54504	//     }
54505	//   },
54506	//   "path": "projects/{project}/global/backendBuckets/{resource}/getIamPolicy",
54507	//   "response": {
54508	//     "$ref": "Policy"
54509	//   },
54510	//   "scopes": [
54511	//     "https://www.googleapis.com/auth/cloud-platform",
54512	//     "https://www.googleapis.com/auth/compute",
54513	//     "https://www.googleapis.com/auth/compute.readonly"
54514	//   ]
54515	// }
54516
54517}
54518
54519// method id "compute.backendBuckets.insert":
54520
54521type BackendBucketsInsertCall struct {
54522	s             *Service
54523	project       string
54524	backendbucket *BackendBucket
54525	urlParams_    gensupport.URLParams
54526	ctx_          context.Context
54527	header_       http.Header
54528}
54529
54530// Insert: Creates a BackendBucket resource in the specified project
54531// using the data included in the request.
54532func (r *BackendBucketsService) Insert(project string, backendbucket *BackendBucket) *BackendBucketsInsertCall {
54533	c := &BackendBucketsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54534	c.project = project
54535	c.backendbucket = backendbucket
54536	return c
54537}
54538
54539// RequestId sets the optional parameter "requestId": An optional
54540// request ID to identify requests. Specify a unique request ID so that
54541// if you must retry your request, the server will know to ignore the
54542// request if it has already been completed.
54543//
54544// For example, consider a situation where you make an initial request
54545// and the request times out. If you make the request again with the
54546// same request ID, the server can check if original operation with the
54547// same request ID was received, and if so, will ignore the second
54548// request. This prevents clients from accidentally creating duplicate
54549// commitments.
54550//
54551// The request ID must be a valid UUID with the exception that zero UUID
54552// is not supported (00000000-0000-0000-0000-000000000000).
54553func (c *BackendBucketsInsertCall) RequestId(requestId string) *BackendBucketsInsertCall {
54554	c.urlParams_.Set("requestId", requestId)
54555	return c
54556}
54557
54558// Fields allows partial responses to be retrieved. See
54559// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54560// for more information.
54561func (c *BackendBucketsInsertCall) Fields(s ...googleapi.Field) *BackendBucketsInsertCall {
54562	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54563	return c
54564}
54565
54566// Context sets the context to be used in this call's Do method. Any
54567// pending HTTP request will be aborted if the provided context is
54568// canceled.
54569func (c *BackendBucketsInsertCall) Context(ctx context.Context) *BackendBucketsInsertCall {
54570	c.ctx_ = ctx
54571	return c
54572}
54573
54574// Header returns an http.Header that can be modified by the caller to
54575// add HTTP headers to the request.
54576func (c *BackendBucketsInsertCall) Header() http.Header {
54577	if c.header_ == nil {
54578		c.header_ = make(http.Header)
54579	}
54580	return c.header_
54581}
54582
54583func (c *BackendBucketsInsertCall) doRequest(alt string) (*http.Response, error) {
54584	reqHeaders := make(http.Header)
54585	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
54586	for k, v := range c.header_ {
54587		reqHeaders[k] = v
54588	}
54589	reqHeaders.Set("User-Agent", c.s.userAgent())
54590	var body io.Reader = nil
54591	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendbucket)
54592	if err != nil {
54593		return nil, err
54594	}
54595	reqHeaders.Set("Content-Type", "application/json")
54596	c.urlParams_.Set("alt", alt)
54597	c.urlParams_.Set("prettyPrint", "false")
54598	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendBuckets")
54599	urls += "?" + c.urlParams_.Encode()
54600	req, err := http.NewRequest("POST", urls, body)
54601	if err != nil {
54602		return nil, err
54603	}
54604	req.Header = reqHeaders
54605	googleapi.Expand(req.URL, map[string]string{
54606		"project": c.project,
54607	})
54608	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54609}
54610
54611// Do executes the "compute.backendBuckets.insert" call.
54612// Exactly one of *Operation or error will be non-nil. Any non-2xx
54613// status code is an error. Response headers are in either
54614// *Operation.ServerResponse.Header or (if a response was returned at
54615// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
54616// to check whether the returned error was because
54617// http.StatusNotModified was returned.
54618func (c *BackendBucketsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
54619	gensupport.SetOptions(c.urlParams_, opts...)
54620	res, err := c.doRequest("json")
54621	if res != nil && res.StatusCode == http.StatusNotModified {
54622		if res.Body != nil {
54623			res.Body.Close()
54624		}
54625		return nil, &googleapi.Error{
54626			Code:   res.StatusCode,
54627			Header: res.Header,
54628		}
54629	}
54630	if err != nil {
54631		return nil, err
54632	}
54633	defer googleapi.CloseBody(res)
54634	if err := googleapi.CheckResponse(res); err != nil {
54635		return nil, err
54636	}
54637	ret := &Operation{
54638		ServerResponse: googleapi.ServerResponse{
54639			Header:         res.Header,
54640			HTTPStatusCode: res.StatusCode,
54641		},
54642	}
54643	target := &ret
54644	if err := gensupport.DecodeResponse(target, res); err != nil {
54645		return nil, err
54646	}
54647	return ret, nil
54648	// {
54649	//   "description": "Creates a BackendBucket resource in the specified project using the data included in the request.",
54650	//   "httpMethod": "POST",
54651	//   "id": "compute.backendBuckets.insert",
54652	//   "parameterOrder": [
54653	//     "project"
54654	//   ],
54655	//   "parameters": {
54656	//     "project": {
54657	//       "description": "Project ID for this request.",
54658	//       "location": "path",
54659	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54660	//       "required": true,
54661	//       "type": "string"
54662	//     },
54663	//     "requestId": {
54664	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
54665	//       "location": "query",
54666	//       "type": "string"
54667	//     }
54668	//   },
54669	//   "path": "projects/{project}/global/backendBuckets",
54670	//   "request": {
54671	//     "$ref": "BackendBucket"
54672	//   },
54673	//   "response": {
54674	//     "$ref": "Operation"
54675	//   },
54676	//   "scopes": [
54677	//     "https://www.googleapis.com/auth/cloud-platform",
54678	//     "https://www.googleapis.com/auth/compute"
54679	//   ]
54680	// }
54681
54682}
54683
54684// method id "compute.backendBuckets.list":
54685
54686type BackendBucketsListCall struct {
54687	s            *Service
54688	project      string
54689	urlParams_   gensupport.URLParams
54690	ifNoneMatch_ string
54691	ctx_         context.Context
54692	header_      http.Header
54693}
54694
54695// List: Retrieves the list of BackendBucket resources available to the
54696// specified project.
54697func (r *BackendBucketsService) List(project string) *BackendBucketsListCall {
54698	c := &BackendBucketsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54699	c.project = project
54700	return c
54701}
54702
54703// Filter sets the optional parameter "filter": A filter expression that
54704// filters resources listed in the response. The expression must specify
54705// the field name, a comparison operator, and the value that you want to
54706// use for filtering. The value must be a string, a number, or a
54707// boolean. The comparison operator must be either `=`, `!=`, `>`, or
54708// `<`.
54709//
54710// For example, if you are filtering Compute Engine instances, you can
54711// exclude instances named `example-instance` by specifying `name !=
54712// example-instance`.
54713//
54714// You can also filter nested fields. For example, you could specify
54715// `scheduling.automaticRestart = false` to include instances only if
54716// they are not scheduled for automatic restarts. You can use filtering
54717// on nested fields to filter based on resource labels.
54718//
54719// To filter on multiple expressions, provide each separate expression
54720// within parentheses. For example: ``` (scheduling.automaticRestart =
54721// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
54722// is an `AND` expression. However, you can include `AND` and `OR`
54723// expressions explicitly. For example: ``` (cpuPlatform = "Intel
54724// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
54725// (scheduling.automaticRestart = true) ```
54726func (c *BackendBucketsListCall) Filter(filter string) *BackendBucketsListCall {
54727	c.urlParams_.Set("filter", filter)
54728	return c
54729}
54730
54731// MaxResults sets the optional parameter "maxResults": The maximum
54732// number of results per page that should be returned. If the number of
54733// available results is larger than `maxResults`, Compute Engine returns
54734// a `nextPageToken` that can be used to get the next page of results in
54735// subsequent list requests. Acceptable values are `0` to `500`,
54736// inclusive. (Default: `500`)
54737func (c *BackendBucketsListCall) MaxResults(maxResults int64) *BackendBucketsListCall {
54738	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
54739	return c
54740}
54741
54742// OrderBy sets the optional parameter "orderBy": Sorts list results by
54743// a certain order. By default, results are returned in alphanumerical
54744// order based on the resource name.
54745//
54746// You can also sort results in descending order based on the creation
54747// timestamp using `orderBy="creationTimestamp desc". This sorts
54748// results based on the `creationTimestamp` field in reverse
54749// chronological order (newest result first). Use this to sort resources
54750// like operations so that the newest operation is returned
54751// first.
54752//
54753// Currently, only sorting by `name` or `creationTimestamp desc` is
54754// supported.
54755func (c *BackendBucketsListCall) OrderBy(orderBy string) *BackendBucketsListCall {
54756	c.urlParams_.Set("orderBy", orderBy)
54757	return c
54758}
54759
54760// PageToken sets the optional parameter "pageToken": Specifies a page
54761// token to use. Set `pageToken` to the `nextPageToken` returned by a
54762// previous list request to get the next page of results.
54763func (c *BackendBucketsListCall) PageToken(pageToken string) *BackendBucketsListCall {
54764	c.urlParams_.Set("pageToken", pageToken)
54765	return c
54766}
54767
54768// ReturnPartialSuccess sets the optional parameter
54769// "returnPartialSuccess": Opt-in for partial success behavior which
54770// provides partial results in case of failure. The default value is
54771// false.
54772func (c *BackendBucketsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *BackendBucketsListCall {
54773	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
54774	return c
54775}
54776
54777// Fields allows partial responses to be retrieved. See
54778// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54779// for more information.
54780func (c *BackendBucketsListCall) Fields(s ...googleapi.Field) *BackendBucketsListCall {
54781	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54782	return c
54783}
54784
54785// IfNoneMatch sets the optional parameter which makes the operation
54786// fail if the object's ETag matches the given value. This is useful for
54787// getting updates only after the object has changed since the last
54788// request. Use googleapi.IsNotModified to check whether the response
54789// error from Do is the result of In-None-Match.
54790func (c *BackendBucketsListCall) IfNoneMatch(entityTag string) *BackendBucketsListCall {
54791	c.ifNoneMatch_ = entityTag
54792	return c
54793}
54794
54795// Context sets the context to be used in this call's Do method. Any
54796// pending HTTP request will be aborted if the provided context is
54797// canceled.
54798func (c *BackendBucketsListCall) Context(ctx context.Context) *BackendBucketsListCall {
54799	c.ctx_ = ctx
54800	return c
54801}
54802
54803// Header returns an http.Header that can be modified by the caller to
54804// add HTTP headers to the request.
54805func (c *BackendBucketsListCall) Header() http.Header {
54806	if c.header_ == nil {
54807		c.header_ = make(http.Header)
54808	}
54809	return c.header_
54810}
54811
54812func (c *BackendBucketsListCall) doRequest(alt string) (*http.Response, error) {
54813	reqHeaders := make(http.Header)
54814	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
54815	for k, v := range c.header_ {
54816		reqHeaders[k] = v
54817	}
54818	reqHeaders.Set("User-Agent", c.s.userAgent())
54819	if c.ifNoneMatch_ != "" {
54820		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
54821	}
54822	var body io.Reader = nil
54823	c.urlParams_.Set("alt", alt)
54824	c.urlParams_.Set("prettyPrint", "false")
54825	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendBuckets")
54826	urls += "?" + c.urlParams_.Encode()
54827	req, err := http.NewRequest("GET", urls, body)
54828	if err != nil {
54829		return nil, err
54830	}
54831	req.Header = reqHeaders
54832	googleapi.Expand(req.URL, map[string]string{
54833		"project": c.project,
54834	})
54835	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54836}
54837
54838// Do executes the "compute.backendBuckets.list" call.
54839// Exactly one of *BackendBucketList or error will be non-nil. Any
54840// non-2xx status code is an error. Response headers are in either
54841// *BackendBucketList.ServerResponse.Header or (if a response was
54842// returned at all) in error.(*googleapi.Error).Header. Use
54843// googleapi.IsNotModified to check whether the returned error was
54844// because http.StatusNotModified was returned.
54845func (c *BackendBucketsListCall) Do(opts ...googleapi.CallOption) (*BackendBucketList, error) {
54846	gensupport.SetOptions(c.urlParams_, opts...)
54847	res, err := c.doRequest("json")
54848	if res != nil && res.StatusCode == http.StatusNotModified {
54849		if res.Body != nil {
54850			res.Body.Close()
54851		}
54852		return nil, &googleapi.Error{
54853			Code:   res.StatusCode,
54854			Header: res.Header,
54855		}
54856	}
54857	if err != nil {
54858		return nil, err
54859	}
54860	defer googleapi.CloseBody(res)
54861	if err := googleapi.CheckResponse(res); err != nil {
54862		return nil, err
54863	}
54864	ret := &BackendBucketList{
54865		ServerResponse: googleapi.ServerResponse{
54866			Header:         res.Header,
54867			HTTPStatusCode: res.StatusCode,
54868		},
54869	}
54870	target := &ret
54871	if err := gensupport.DecodeResponse(target, res); err != nil {
54872		return nil, err
54873	}
54874	return ret, nil
54875	// {
54876	//   "description": "Retrieves the list of BackendBucket resources available to the specified project.",
54877	//   "httpMethod": "GET",
54878	//   "id": "compute.backendBuckets.list",
54879	//   "parameterOrder": [
54880	//     "project"
54881	//   ],
54882	//   "parameters": {
54883	//     "filter": {
54884	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
54885	//       "location": "query",
54886	//       "type": "string"
54887	//     },
54888	//     "maxResults": {
54889	//       "default": "500",
54890	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
54891	//       "format": "uint32",
54892	//       "location": "query",
54893	//       "minimum": "0",
54894	//       "type": "integer"
54895	//     },
54896	//     "orderBy": {
54897	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
54898	//       "location": "query",
54899	//       "type": "string"
54900	//     },
54901	//     "pageToken": {
54902	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
54903	//       "location": "query",
54904	//       "type": "string"
54905	//     },
54906	//     "project": {
54907	//       "description": "Project ID for this request.",
54908	//       "location": "path",
54909	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54910	//       "required": true,
54911	//       "type": "string"
54912	//     },
54913	//     "returnPartialSuccess": {
54914	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
54915	//       "location": "query",
54916	//       "type": "boolean"
54917	//     }
54918	//   },
54919	//   "path": "projects/{project}/global/backendBuckets",
54920	//   "response": {
54921	//     "$ref": "BackendBucketList"
54922	//   },
54923	//   "scopes": [
54924	//     "https://www.googleapis.com/auth/cloud-platform",
54925	//     "https://www.googleapis.com/auth/compute",
54926	//     "https://www.googleapis.com/auth/compute.readonly"
54927	//   ]
54928	// }
54929
54930}
54931
54932// Pages invokes f for each page of results.
54933// A non-nil error returned from f will halt the iteration.
54934// The provided context supersedes any context provided to the Context method.
54935func (c *BackendBucketsListCall) Pages(ctx context.Context, f func(*BackendBucketList) error) error {
54936	c.ctx_ = ctx
54937	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
54938	for {
54939		x, err := c.Do()
54940		if err != nil {
54941			return err
54942		}
54943		if err := f(x); err != nil {
54944			return err
54945		}
54946		if x.NextPageToken == "" {
54947			return nil
54948		}
54949		c.PageToken(x.NextPageToken)
54950	}
54951}
54952
54953// method id "compute.backendBuckets.patch":
54954
54955type BackendBucketsPatchCall struct {
54956	s             *Service
54957	project       string
54958	backendBucket string
54959	backendbucket *BackendBucket
54960	urlParams_    gensupport.URLParams
54961	ctx_          context.Context
54962	header_       http.Header
54963}
54964
54965// Patch: Updates the specified BackendBucket resource with the data
54966// included in the request. This method supports PATCH semantics and
54967// uses the JSON merge patch format and processing rules.
54968func (r *BackendBucketsService) Patch(project string, backendBucket string, backendbucket *BackendBucket) *BackendBucketsPatchCall {
54969	c := &BackendBucketsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54970	c.project = project
54971	c.backendBucket = backendBucket
54972	c.backendbucket = backendbucket
54973	return c
54974}
54975
54976// RequestId sets the optional parameter "requestId": An optional
54977// request ID to identify requests. Specify a unique request ID so that
54978// if you must retry your request, the server will know to ignore the
54979// request if it has already been completed.
54980//
54981// For example, consider a situation where you make an initial request
54982// and the request times out. If you make the request again with the
54983// same request ID, the server can check if original operation with the
54984// same request ID was received, and if so, will ignore the second
54985// request. This prevents clients from accidentally creating duplicate
54986// commitments.
54987//
54988// The request ID must be a valid UUID with the exception that zero UUID
54989// is not supported (00000000-0000-0000-0000-000000000000).
54990func (c *BackendBucketsPatchCall) RequestId(requestId string) *BackendBucketsPatchCall {
54991	c.urlParams_.Set("requestId", requestId)
54992	return c
54993}
54994
54995// Fields allows partial responses to be retrieved. See
54996// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54997// for more information.
54998func (c *BackendBucketsPatchCall) Fields(s ...googleapi.Field) *BackendBucketsPatchCall {
54999	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55000	return c
55001}
55002
55003// Context sets the context to be used in this call's Do method. Any
55004// pending HTTP request will be aborted if the provided context is
55005// canceled.
55006func (c *BackendBucketsPatchCall) Context(ctx context.Context) *BackendBucketsPatchCall {
55007	c.ctx_ = ctx
55008	return c
55009}
55010
55011// Header returns an http.Header that can be modified by the caller to
55012// add HTTP headers to the request.
55013func (c *BackendBucketsPatchCall) Header() http.Header {
55014	if c.header_ == nil {
55015		c.header_ = make(http.Header)
55016	}
55017	return c.header_
55018}
55019
55020func (c *BackendBucketsPatchCall) doRequest(alt string) (*http.Response, error) {
55021	reqHeaders := make(http.Header)
55022	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
55023	for k, v := range c.header_ {
55024		reqHeaders[k] = v
55025	}
55026	reqHeaders.Set("User-Agent", c.s.userAgent())
55027	var body io.Reader = nil
55028	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendbucket)
55029	if err != nil {
55030		return nil, err
55031	}
55032	reqHeaders.Set("Content-Type", "application/json")
55033	c.urlParams_.Set("alt", alt)
55034	c.urlParams_.Set("prettyPrint", "false")
55035	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendBuckets/{backendBucket}")
55036	urls += "?" + c.urlParams_.Encode()
55037	req, err := http.NewRequest("PATCH", urls, body)
55038	if err != nil {
55039		return nil, err
55040	}
55041	req.Header = reqHeaders
55042	googleapi.Expand(req.URL, map[string]string{
55043		"project":       c.project,
55044		"backendBucket": c.backendBucket,
55045	})
55046	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55047}
55048
55049// Do executes the "compute.backendBuckets.patch" call.
55050// Exactly one of *Operation or error will be non-nil. Any non-2xx
55051// status code is an error. Response headers are in either
55052// *Operation.ServerResponse.Header or (if a response was returned at
55053// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
55054// to check whether the returned error was because
55055// http.StatusNotModified was returned.
55056func (c *BackendBucketsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
55057	gensupport.SetOptions(c.urlParams_, opts...)
55058	res, err := c.doRequest("json")
55059	if res != nil && res.StatusCode == http.StatusNotModified {
55060		if res.Body != nil {
55061			res.Body.Close()
55062		}
55063		return nil, &googleapi.Error{
55064			Code:   res.StatusCode,
55065			Header: res.Header,
55066		}
55067	}
55068	if err != nil {
55069		return nil, err
55070	}
55071	defer googleapi.CloseBody(res)
55072	if err := googleapi.CheckResponse(res); err != nil {
55073		return nil, err
55074	}
55075	ret := &Operation{
55076		ServerResponse: googleapi.ServerResponse{
55077			Header:         res.Header,
55078			HTTPStatusCode: res.StatusCode,
55079		},
55080	}
55081	target := &ret
55082	if err := gensupport.DecodeResponse(target, res); err != nil {
55083		return nil, err
55084	}
55085	return ret, nil
55086	// {
55087	//   "description": "Updates the specified BackendBucket resource with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.",
55088	//   "httpMethod": "PATCH",
55089	//   "id": "compute.backendBuckets.patch",
55090	//   "parameterOrder": [
55091	//     "project",
55092	//     "backendBucket"
55093	//   ],
55094	//   "parameters": {
55095	//     "backendBucket": {
55096	//       "description": "Name of the BackendBucket resource to patch.",
55097	//       "location": "path",
55098	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
55099	//       "required": true,
55100	//       "type": "string"
55101	//     },
55102	//     "project": {
55103	//       "description": "Project ID for this request.",
55104	//       "location": "path",
55105	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55106	//       "required": true,
55107	//       "type": "string"
55108	//     },
55109	//     "requestId": {
55110	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
55111	//       "location": "query",
55112	//       "type": "string"
55113	//     }
55114	//   },
55115	//   "path": "projects/{project}/global/backendBuckets/{backendBucket}",
55116	//   "request": {
55117	//     "$ref": "BackendBucket"
55118	//   },
55119	//   "response": {
55120	//     "$ref": "Operation"
55121	//   },
55122	//   "scopes": [
55123	//     "https://www.googleapis.com/auth/cloud-platform",
55124	//     "https://www.googleapis.com/auth/compute"
55125	//   ]
55126	// }
55127
55128}
55129
55130// method id "compute.backendBuckets.setIamPolicy":
55131
55132type BackendBucketsSetIamPolicyCall struct {
55133	s                      *Service
55134	project                string
55135	resource               string
55136	globalsetpolicyrequest *GlobalSetPolicyRequest
55137	urlParams_             gensupport.URLParams
55138	ctx_                   context.Context
55139	header_                http.Header
55140}
55141
55142// SetIamPolicy: Sets the access control policy on the specified
55143// resource. Replaces any existing policy.
55144func (r *BackendBucketsService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *BackendBucketsSetIamPolicyCall {
55145	c := &BackendBucketsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55146	c.project = project
55147	c.resource = resource
55148	c.globalsetpolicyrequest = globalsetpolicyrequest
55149	return c
55150}
55151
55152// Fields allows partial responses to be retrieved. See
55153// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55154// for more information.
55155func (c *BackendBucketsSetIamPolicyCall) Fields(s ...googleapi.Field) *BackendBucketsSetIamPolicyCall {
55156	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55157	return c
55158}
55159
55160// Context sets the context to be used in this call's Do method. Any
55161// pending HTTP request will be aborted if the provided context is
55162// canceled.
55163func (c *BackendBucketsSetIamPolicyCall) Context(ctx context.Context) *BackendBucketsSetIamPolicyCall {
55164	c.ctx_ = ctx
55165	return c
55166}
55167
55168// Header returns an http.Header that can be modified by the caller to
55169// add HTTP headers to the request.
55170func (c *BackendBucketsSetIamPolicyCall) Header() http.Header {
55171	if c.header_ == nil {
55172		c.header_ = make(http.Header)
55173	}
55174	return c.header_
55175}
55176
55177func (c *BackendBucketsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
55178	reqHeaders := make(http.Header)
55179	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
55180	for k, v := range c.header_ {
55181		reqHeaders[k] = v
55182	}
55183	reqHeaders.Set("User-Agent", c.s.userAgent())
55184	var body io.Reader = nil
55185	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
55186	if err != nil {
55187		return nil, err
55188	}
55189	reqHeaders.Set("Content-Type", "application/json")
55190	c.urlParams_.Set("alt", alt)
55191	c.urlParams_.Set("prettyPrint", "false")
55192	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendBuckets/{resource}/setIamPolicy")
55193	urls += "?" + c.urlParams_.Encode()
55194	req, err := http.NewRequest("POST", urls, body)
55195	if err != nil {
55196		return nil, err
55197	}
55198	req.Header = reqHeaders
55199	googleapi.Expand(req.URL, map[string]string{
55200		"project":  c.project,
55201		"resource": c.resource,
55202	})
55203	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55204}
55205
55206// Do executes the "compute.backendBuckets.setIamPolicy" call.
55207// Exactly one of *Policy or error will be non-nil. Any non-2xx status
55208// code is an error. Response headers are in either
55209// *Policy.ServerResponse.Header or (if a response was returned at all)
55210// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
55211// check whether the returned error was because http.StatusNotModified
55212// was returned.
55213func (c *BackendBucketsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
55214	gensupport.SetOptions(c.urlParams_, opts...)
55215	res, err := c.doRequest("json")
55216	if res != nil && res.StatusCode == http.StatusNotModified {
55217		if res.Body != nil {
55218			res.Body.Close()
55219		}
55220		return nil, &googleapi.Error{
55221			Code:   res.StatusCode,
55222			Header: res.Header,
55223		}
55224	}
55225	if err != nil {
55226		return nil, err
55227	}
55228	defer googleapi.CloseBody(res)
55229	if err := googleapi.CheckResponse(res); err != nil {
55230		return nil, err
55231	}
55232	ret := &Policy{
55233		ServerResponse: googleapi.ServerResponse{
55234			Header:         res.Header,
55235			HTTPStatusCode: res.StatusCode,
55236		},
55237	}
55238	target := &ret
55239	if err := gensupport.DecodeResponse(target, res); err != nil {
55240		return nil, err
55241	}
55242	return ret, nil
55243	// {
55244	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
55245	//   "httpMethod": "POST",
55246	//   "id": "compute.backendBuckets.setIamPolicy",
55247	//   "parameterOrder": [
55248	//     "project",
55249	//     "resource"
55250	//   ],
55251	//   "parameters": {
55252	//     "project": {
55253	//       "description": "Project ID for this request.",
55254	//       "location": "path",
55255	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55256	//       "required": true,
55257	//       "type": "string"
55258	//     },
55259	//     "resource": {
55260	//       "description": "Name or id of the resource for this request.",
55261	//       "location": "path",
55262	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
55263	//       "required": true,
55264	//       "type": "string"
55265	//     }
55266	//   },
55267	//   "path": "projects/{project}/global/backendBuckets/{resource}/setIamPolicy",
55268	//   "request": {
55269	//     "$ref": "GlobalSetPolicyRequest"
55270	//   },
55271	//   "response": {
55272	//     "$ref": "Policy"
55273	//   },
55274	//   "scopes": [
55275	//     "https://www.googleapis.com/auth/cloud-platform",
55276	//     "https://www.googleapis.com/auth/compute"
55277	//   ]
55278	// }
55279
55280}
55281
55282// method id "compute.backendBuckets.testIamPermissions":
55283
55284type BackendBucketsTestIamPermissionsCall struct {
55285	s                      *Service
55286	project                string
55287	resource               string
55288	testpermissionsrequest *TestPermissionsRequest
55289	urlParams_             gensupport.URLParams
55290	ctx_                   context.Context
55291	header_                http.Header
55292}
55293
55294// TestIamPermissions: Returns permissions that a caller has on the
55295// specified resource.
55296func (r *BackendBucketsService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *BackendBucketsTestIamPermissionsCall {
55297	c := &BackendBucketsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55298	c.project = project
55299	c.resource = resource
55300	c.testpermissionsrequest = testpermissionsrequest
55301	return c
55302}
55303
55304// Fields allows partial responses to be retrieved. See
55305// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55306// for more information.
55307func (c *BackendBucketsTestIamPermissionsCall) Fields(s ...googleapi.Field) *BackendBucketsTestIamPermissionsCall {
55308	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55309	return c
55310}
55311
55312// Context sets the context to be used in this call's Do method. Any
55313// pending HTTP request will be aborted if the provided context is
55314// canceled.
55315func (c *BackendBucketsTestIamPermissionsCall) Context(ctx context.Context) *BackendBucketsTestIamPermissionsCall {
55316	c.ctx_ = ctx
55317	return c
55318}
55319
55320// Header returns an http.Header that can be modified by the caller to
55321// add HTTP headers to the request.
55322func (c *BackendBucketsTestIamPermissionsCall) Header() http.Header {
55323	if c.header_ == nil {
55324		c.header_ = make(http.Header)
55325	}
55326	return c.header_
55327}
55328
55329func (c *BackendBucketsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
55330	reqHeaders := make(http.Header)
55331	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
55332	for k, v := range c.header_ {
55333		reqHeaders[k] = v
55334	}
55335	reqHeaders.Set("User-Agent", c.s.userAgent())
55336	var body io.Reader = nil
55337	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
55338	if err != nil {
55339		return nil, err
55340	}
55341	reqHeaders.Set("Content-Type", "application/json")
55342	c.urlParams_.Set("alt", alt)
55343	c.urlParams_.Set("prettyPrint", "false")
55344	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendBuckets/{resource}/testIamPermissions")
55345	urls += "?" + c.urlParams_.Encode()
55346	req, err := http.NewRequest("POST", urls, body)
55347	if err != nil {
55348		return nil, err
55349	}
55350	req.Header = reqHeaders
55351	googleapi.Expand(req.URL, map[string]string{
55352		"project":  c.project,
55353		"resource": c.resource,
55354	})
55355	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55356}
55357
55358// Do executes the "compute.backendBuckets.testIamPermissions" call.
55359// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
55360// non-2xx status code is an error. Response headers are in either
55361// *TestPermissionsResponse.ServerResponse.Header or (if a response was
55362// returned at all) in error.(*googleapi.Error).Header. Use
55363// googleapi.IsNotModified to check whether the returned error was
55364// because http.StatusNotModified was returned.
55365func (c *BackendBucketsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
55366	gensupport.SetOptions(c.urlParams_, opts...)
55367	res, err := c.doRequest("json")
55368	if res != nil && res.StatusCode == http.StatusNotModified {
55369		if res.Body != nil {
55370			res.Body.Close()
55371		}
55372		return nil, &googleapi.Error{
55373			Code:   res.StatusCode,
55374			Header: res.Header,
55375		}
55376	}
55377	if err != nil {
55378		return nil, err
55379	}
55380	defer googleapi.CloseBody(res)
55381	if err := googleapi.CheckResponse(res); err != nil {
55382		return nil, err
55383	}
55384	ret := &TestPermissionsResponse{
55385		ServerResponse: googleapi.ServerResponse{
55386			Header:         res.Header,
55387			HTTPStatusCode: res.StatusCode,
55388		},
55389	}
55390	target := &ret
55391	if err := gensupport.DecodeResponse(target, res); err != nil {
55392		return nil, err
55393	}
55394	return ret, nil
55395	// {
55396	//   "description": "Returns permissions that a caller has on the specified resource.",
55397	//   "httpMethod": "POST",
55398	//   "id": "compute.backendBuckets.testIamPermissions",
55399	//   "parameterOrder": [
55400	//     "project",
55401	//     "resource"
55402	//   ],
55403	//   "parameters": {
55404	//     "project": {
55405	//       "description": "Project ID for this request.",
55406	//       "location": "path",
55407	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55408	//       "required": true,
55409	//       "type": "string"
55410	//     },
55411	//     "resource": {
55412	//       "description": "Name or id of the resource for this request.",
55413	//       "location": "path",
55414	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
55415	//       "required": true,
55416	//       "type": "string"
55417	//     }
55418	//   },
55419	//   "path": "projects/{project}/global/backendBuckets/{resource}/testIamPermissions",
55420	//   "request": {
55421	//     "$ref": "TestPermissionsRequest"
55422	//   },
55423	//   "response": {
55424	//     "$ref": "TestPermissionsResponse"
55425	//   },
55426	//   "scopes": [
55427	//     "https://www.googleapis.com/auth/cloud-platform",
55428	//     "https://www.googleapis.com/auth/compute",
55429	//     "https://www.googleapis.com/auth/compute.readonly"
55430	//   ]
55431	// }
55432
55433}
55434
55435// method id "compute.backendBuckets.update":
55436
55437type BackendBucketsUpdateCall struct {
55438	s             *Service
55439	project       string
55440	backendBucket string
55441	backendbucket *BackendBucket
55442	urlParams_    gensupport.URLParams
55443	ctx_          context.Context
55444	header_       http.Header
55445}
55446
55447// Update: Updates the specified BackendBucket resource with the data
55448// included in the request.
55449func (r *BackendBucketsService) Update(project string, backendBucket string, backendbucket *BackendBucket) *BackendBucketsUpdateCall {
55450	c := &BackendBucketsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55451	c.project = project
55452	c.backendBucket = backendBucket
55453	c.backendbucket = backendbucket
55454	return c
55455}
55456
55457// RequestId sets the optional parameter "requestId": An optional
55458// request ID to identify requests. Specify a unique request ID so that
55459// if you must retry your request, the server will know to ignore the
55460// request if it has already been completed.
55461//
55462// For example, consider a situation where you make an initial request
55463// and the request times out. If you make the request again with the
55464// same request ID, the server can check if original operation with the
55465// same request ID was received, and if so, will ignore the second
55466// request. This prevents clients from accidentally creating duplicate
55467// commitments.
55468//
55469// The request ID must be a valid UUID with the exception that zero UUID
55470// is not supported (00000000-0000-0000-0000-000000000000).
55471func (c *BackendBucketsUpdateCall) RequestId(requestId string) *BackendBucketsUpdateCall {
55472	c.urlParams_.Set("requestId", requestId)
55473	return c
55474}
55475
55476// Fields allows partial responses to be retrieved. See
55477// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55478// for more information.
55479func (c *BackendBucketsUpdateCall) Fields(s ...googleapi.Field) *BackendBucketsUpdateCall {
55480	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55481	return c
55482}
55483
55484// Context sets the context to be used in this call's Do method. Any
55485// pending HTTP request will be aborted if the provided context is
55486// canceled.
55487func (c *BackendBucketsUpdateCall) Context(ctx context.Context) *BackendBucketsUpdateCall {
55488	c.ctx_ = ctx
55489	return c
55490}
55491
55492// Header returns an http.Header that can be modified by the caller to
55493// add HTTP headers to the request.
55494func (c *BackendBucketsUpdateCall) Header() http.Header {
55495	if c.header_ == nil {
55496		c.header_ = make(http.Header)
55497	}
55498	return c.header_
55499}
55500
55501func (c *BackendBucketsUpdateCall) doRequest(alt string) (*http.Response, error) {
55502	reqHeaders := make(http.Header)
55503	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
55504	for k, v := range c.header_ {
55505		reqHeaders[k] = v
55506	}
55507	reqHeaders.Set("User-Agent", c.s.userAgent())
55508	var body io.Reader = nil
55509	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendbucket)
55510	if err != nil {
55511		return nil, err
55512	}
55513	reqHeaders.Set("Content-Type", "application/json")
55514	c.urlParams_.Set("alt", alt)
55515	c.urlParams_.Set("prettyPrint", "false")
55516	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendBuckets/{backendBucket}")
55517	urls += "?" + c.urlParams_.Encode()
55518	req, err := http.NewRequest("PUT", urls, body)
55519	if err != nil {
55520		return nil, err
55521	}
55522	req.Header = reqHeaders
55523	googleapi.Expand(req.URL, map[string]string{
55524		"project":       c.project,
55525		"backendBucket": c.backendBucket,
55526	})
55527	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55528}
55529
55530// Do executes the "compute.backendBuckets.update" call.
55531// Exactly one of *Operation or error will be non-nil. Any non-2xx
55532// status code is an error. Response headers are in either
55533// *Operation.ServerResponse.Header or (if a response was returned at
55534// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
55535// to check whether the returned error was because
55536// http.StatusNotModified was returned.
55537func (c *BackendBucketsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
55538	gensupport.SetOptions(c.urlParams_, opts...)
55539	res, err := c.doRequest("json")
55540	if res != nil && res.StatusCode == http.StatusNotModified {
55541		if res.Body != nil {
55542			res.Body.Close()
55543		}
55544		return nil, &googleapi.Error{
55545			Code:   res.StatusCode,
55546			Header: res.Header,
55547		}
55548	}
55549	if err != nil {
55550		return nil, err
55551	}
55552	defer googleapi.CloseBody(res)
55553	if err := googleapi.CheckResponse(res); err != nil {
55554		return nil, err
55555	}
55556	ret := &Operation{
55557		ServerResponse: googleapi.ServerResponse{
55558			Header:         res.Header,
55559			HTTPStatusCode: res.StatusCode,
55560		},
55561	}
55562	target := &ret
55563	if err := gensupport.DecodeResponse(target, res); err != nil {
55564		return nil, err
55565	}
55566	return ret, nil
55567	// {
55568	//   "description": "Updates the specified BackendBucket resource with the data included in the request.",
55569	//   "httpMethod": "PUT",
55570	//   "id": "compute.backendBuckets.update",
55571	//   "parameterOrder": [
55572	//     "project",
55573	//     "backendBucket"
55574	//   ],
55575	//   "parameters": {
55576	//     "backendBucket": {
55577	//       "description": "Name of the BackendBucket resource to update.",
55578	//       "location": "path",
55579	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
55580	//       "required": true,
55581	//       "type": "string"
55582	//     },
55583	//     "project": {
55584	//       "description": "Project ID for this request.",
55585	//       "location": "path",
55586	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55587	//       "required": true,
55588	//       "type": "string"
55589	//     },
55590	//     "requestId": {
55591	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
55592	//       "location": "query",
55593	//       "type": "string"
55594	//     }
55595	//   },
55596	//   "path": "projects/{project}/global/backendBuckets/{backendBucket}",
55597	//   "request": {
55598	//     "$ref": "BackendBucket"
55599	//   },
55600	//   "response": {
55601	//     "$ref": "Operation"
55602	//   },
55603	//   "scopes": [
55604	//     "https://www.googleapis.com/auth/cloud-platform",
55605	//     "https://www.googleapis.com/auth/compute"
55606	//   ]
55607	// }
55608
55609}
55610
55611// method id "compute.backendServices.addSignedUrlKey":
55612
55613type BackendServicesAddSignedUrlKeyCall struct {
55614	s              *Service
55615	project        string
55616	backendService string
55617	signedurlkey   *SignedUrlKey
55618	urlParams_     gensupport.URLParams
55619	ctx_           context.Context
55620	header_        http.Header
55621}
55622
55623// AddSignedUrlKey: Adds a key for validating requests with signed URLs
55624// for this backend service.
55625func (r *BackendServicesService) AddSignedUrlKey(project string, backendService string, signedurlkey *SignedUrlKey) *BackendServicesAddSignedUrlKeyCall {
55626	c := &BackendServicesAddSignedUrlKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55627	c.project = project
55628	c.backendService = backendService
55629	c.signedurlkey = signedurlkey
55630	return c
55631}
55632
55633// RequestId sets the optional parameter "requestId": An optional
55634// request ID to identify requests. Specify a unique request ID so that
55635// if you must retry your request, the server will know to ignore the
55636// request if it has already been completed.
55637//
55638// For example, consider a situation where you make an initial request
55639// and the request times out. If you make the request again with the
55640// same request ID, the server can check if original operation with the
55641// same request ID was received, and if so, will ignore the second
55642// request. This prevents clients from accidentally creating duplicate
55643// commitments.
55644//
55645// The request ID must be a valid UUID with the exception that zero UUID
55646// is not supported (00000000-0000-0000-0000-000000000000).
55647func (c *BackendServicesAddSignedUrlKeyCall) RequestId(requestId string) *BackendServicesAddSignedUrlKeyCall {
55648	c.urlParams_.Set("requestId", requestId)
55649	return c
55650}
55651
55652// Fields allows partial responses to be retrieved. See
55653// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55654// for more information.
55655func (c *BackendServicesAddSignedUrlKeyCall) Fields(s ...googleapi.Field) *BackendServicesAddSignedUrlKeyCall {
55656	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55657	return c
55658}
55659
55660// Context sets the context to be used in this call's Do method. Any
55661// pending HTTP request will be aborted if the provided context is
55662// canceled.
55663func (c *BackendServicesAddSignedUrlKeyCall) Context(ctx context.Context) *BackendServicesAddSignedUrlKeyCall {
55664	c.ctx_ = ctx
55665	return c
55666}
55667
55668// Header returns an http.Header that can be modified by the caller to
55669// add HTTP headers to the request.
55670func (c *BackendServicesAddSignedUrlKeyCall) Header() http.Header {
55671	if c.header_ == nil {
55672		c.header_ = make(http.Header)
55673	}
55674	return c.header_
55675}
55676
55677func (c *BackendServicesAddSignedUrlKeyCall) doRequest(alt string) (*http.Response, error) {
55678	reqHeaders := make(http.Header)
55679	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
55680	for k, v := range c.header_ {
55681		reqHeaders[k] = v
55682	}
55683	reqHeaders.Set("User-Agent", c.s.userAgent())
55684	var body io.Reader = nil
55685	body, err := googleapi.WithoutDataWrapper.JSONReader(c.signedurlkey)
55686	if err != nil {
55687		return nil, err
55688	}
55689	reqHeaders.Set("Content-Type", "application/json")
55690	c.urlParams_.Set("alt", alt)
55691	c.urlParams_.Set("prettyPrint", "false")
55692	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices/{backendService}/addSignedUrlKey")
55693	urls += "?" + c.urlParams_.Encode()
55694	req, err := http.NewRequest("POST", urls, body)
55695	if err != nil {
55696		return nil, err
55697	}
55698	req.Header = reqHeaders
55699	googleapi.Expand(req.URL, map[string]string{
55700		"project":        c.project,
55701		"backendService": c.backendService,
55702	})
55703	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55704}
55705
55706// Do executes the "compute.backendServices.addSignedUrlKey" call.
55707// Exactly one of *Operation or error will be non-nil. Any non-2xx
55708// status code is an error. Response headers are in either
55709// *Operation.ServerResponse.Header or (if a response was returned at
55710// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
55711// to check whether the returned error was because
55712// http.StatusNotModified was returned.
55713func (c *BackendServicesAddSignedUrlKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
55714	gensupport.SetOptions(c.urlParams_, opts...)
55715	res, err := c.doRequest("json")
55716	if res != nil && res.StatusCode == http.StatusNotModified {
55717		if res.Body != nil {
55718			res.Body.Close()
55719		}
55720		return nil, &googleapi.Error{
55721			Code:   res.StatusCode,
55722			Header: res.Header,
55723		}
55724	}
55725	if err != nil {
55726		return nil, err
55727	}
55728	defer googleapi.CloseBody(res)
55729	if err := googleapi.CheckResponse(res); err != nil {
55730		return nil, err
55731	}
55732	ret := &Operation{
55733		ServerResponse: googleapi.ServerResponse{
55734			Header:         res.Header,
55735			HTTPStatusCode: res.StatusCode,
55736		},
55737	}
55738	target := &ret
55739	if err := gensupport.DecodeResponse(target, res); err != nil {
55740		return nil, err
55741	}
55742	return ret, nil
55743	// {
55744	//   "description": "Adds a key for validating requests with signed URLs for this backend service.",
55745	//   "httpMethod": "POST",
55746	//   "id": "compute.backendServices.addSignedUrlKey",
55747	//   "parameterOrder": [
55748	//     "project",
55749	//     "backendService"
55750	//   ],
55751	//   "parameters": {
55752	//     "backendService": {
55753	//       "description": "Name of the BackendService resource to which the Signed URL Key should be added. The name should conform to RFC1035.",
55754	//       "location": "path",
55755	//       "required": true,
55756	//       "type": "string"
55757	//     },
55758	//     "project": {
55759	//       "description": "Project ID for this request.",
55760	//       "location": "path",
55761	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55762	//       "required": true,
55763	//       "type": "string"
55764	//     },
55765	//     "requestId": {
55766	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
55767	//       "location": "query",
55768	//       "type": "string"
55769	//     }
55770	//   },
55771	//   "path": "projects/{project}/global/backendServices/{backendService}/addSignedUrlKey",
55772	//   "request": {
55773	//     "$ref": "SignedUrlKey"
55774	//   },
55775	//   "response": {
55776	//     "$ref": "Operation"
55777	//   },
55778	//   "scopes": [
55779	//     "https://www.googleapis.com/auth/cloud-platform",
55780	//     "https://www.googleapis.com/auth/compute"
55781	//   ]
55782	// }
55783
55784}
55785
55786// method id "compute.backendServices.aggregatedList":
55787
55788type BackendServicesAggregatedListCall struct {
55789	s            *Service
55790	project      string
55791	urlParams_   gensupport.URLParams
55792	ifNoneMatch_ string
55793	ctx_         context.Context
55794	header_      http.Header
55795}
55796
55797// AggregatedList: Retrieves the list of all BackendService resources,
55798// regional and global, available to the specified project.
55799func (r *BackendServicesService) AggregatedList(project string) *BackendServicesAggregatedListCall {
55800	c := &BackendServicesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55801	c.project = project
55802	return c
55803}
55804
55805// Filter sets the optional parameter "filter": A filter expression that
55806// filters resources listed in the response. The expression must specify
55807// the field name, a comparison operator, and the value that you want to
55808// use for filtering. The value must be a string, a number, or a
55809// boolean. The comparison operator must be either `=`, `!=`, `>`, or
55810// `<`.
55811//
55812// For example, if you are filtering Compute Engine instances, you can
55813// exclude instances named `example-instance` by specifying `name !=
55814// example-instance`.
55815//
55816// You can also filter nested fields. For example, you could specify
55817// `scheduling.automaticRestart = false` to include instances only if
55818// they are not scheduled for automatic restarts. You can use filtering
55819// on nested fields to filter based on resource labels.
55820//
55821// To filter on multiple expressions, provide each separate expression
55822// within parentheses. For example: ``` (scheduling.automaticRestart =
55823// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
55824// is an `AND` expression. However, you can include `AND` and `OR`
55825// expressions explicitly. For example: ``` (cpuPlatform = "Intel
55826// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
55827// (scheduling.automaticRestart = true) ```
55828func (c *BackendServicesAggregatedListCall) Filter(filter string) *BackendServicesAggregatedListCall {
55829	c.urlParams_.Set("filter", filter)
55830	return c
55831}
55832
55833// IncludeAllScopes sets the optional parameter "includeAllScopes":
55834// Indicates whether every visible scope for each scope type (zone,
55835// region, global) should be included in the response. For new resource
55836// types added after this field, the flag has no effect as new resource
55837// types will always include every visible scope for each scope type in
55838// response. For resource types which predate this field, if this flag
55839// is omitted or false, only scopes of the scope types where the
55840// resource type is expected to be found will be included.
55841func (c *BackendServicesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *BackendServicesAggregatedListCall {
55842	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
55843	return c
55844}
55845
55846// MaxResults sets the optional parameter "maxResults": The maximum
55847// number of results per page that should be returned. If the number of
55848// available results is larger than `maxResults`, Compute Engine returns
55849// a `nextPageToken` that can be used to get the next page of results in
55850// subsequent list requests. Acceptable values are `0` to `500`,
55851// inclusive. (Default: `500`)
55852func (c *BackendServicesAggregatedListCall) MaxResults(maxResults int64) *BackendServicesAggregatedListCall {
55853	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
55854	return c
55855}
55856
55857// OrderBy sets the optional parameter "orderBy": Sorts list results by
55858// a certain order. By default, results are returned in alphanumerical
55859// order based on the resource name.
55860//
55861// You can also sort results in descending order based on the creation
55862// timestamp using `orderBy="creationTimestamp desc". This sorts
55863// results based on the `creationTimestamp` field in reverse
55864// chronological order (newest result first). Use this to sort resources
55865// like operations so that the newest operation is returned
55866// first.
55867//
55868// Currently, only sorting by `name` or `creationTimestamp desc` is
55869// supported.
55870func (c *BackendServicesAggregatedListCall) OrderBy(orderBy string) *BackendServicesAggregatedListCall {
55871	c.urlParams_.Set("orderBy", orderBy)
55872	return c
55873}
55874
55875// PageToken sets the optional parameter "pageToken": Specifies a page
55876// token to use. Set `pageToken` to the `nextPageToken` returned by a
55877// previous list request to get the next page of results.
55878func (c *BackendServicesAggregatedListCall) PageToken(pageToken string) *BackendServicesAggregatedListCall {
55879	c.urlParams_.Set("pageToken", pageToken)
55880	return c
55881}
55882
55883// ReturnPartialSuccess sets the optional parameter
55884// "returnPartialSuccess": Opt-in for partial success behavior which
55885// provides partial results in case of failure. The default value is
55886// false.
55887func (c *BackendServicesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *BackendServicesAggregatedListCall {
55888	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
55889	return c
55890}
55891
55892// Fields allows partial responses to be retrieved. See
55893// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55894// for more information.
55895func (c *BackendServicesAggregatedListCall) Fields(s ...googleapi.Field) *BackendServicesAggregatedListCall {
55896	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55897	return c
55898}
55899
55900// IfNoneMatch sets the optional parameter which makes the operation
55901// fail if the object's ETag matches the given value. This is useful for
55902// getting updates only after the object has changed since the last
55903// request. Use googleapi.IsNotModified to check whether the response
55904// error from Do is the result of In-None-Match.
55905func (c *BackendServicesAggregatedListCall) IfNoneMatch(entityTag string) *BackendServicesAggregatedListCall {
55906	c.ifNoneMatch_ = entityTag
55907	return c
55908}
55909
55910// Context sets the context to be used in this call's Do method. Any
55911// pending HTTP request will be aborted if the provided context is
55912// canceled.
55913func (c *BackendServicesAggregatedListCall) Context(ctx context.Context) *BackendServicesAggregatedListCall {
55914	c.ctx_ = ctx
55915	return c
55916}
55917
55918// Header returns an http.Header that can be modified by the caller to
55919// add HTTP headers to the request.
55920func (c *BackendServicesAggregatedListCall) Header() http.Header {
55921	if c.header_ == nil {
55922		c.header_ = make(http.Header)
55923	}
55924	return c.header_
55925}
55926
55927func (c *BackendServicesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
55928	reqHeaders := make(http.Header)
55929	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
55930	for k, v := range c.header_ {
55931		reqHeaders[k] = v
55932	}
55933	reqHeaders.Set("User-Agent", c.s.userAgent())
55934	if c.ifNoneMatch_ != "" {
55935		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
55936	}
55937	var body io.Reader = nil
55938	c.urlParams_.Set("alt", alt)
55939	c.urlParams_.Set("prettyPrint", "false")
55940	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/backendServices")
55941	urls += "?" + c.urlParams_.Encode()
55942	req, err := http.NewRequest("GET", urls, body)
55943	if err != nil {
55944		return nil, err
55945	}
55946	req.Header = reqHeaders
55947	googleapi.Expand(req.URL, map[string]string{
55948		"project": c.project,
55949	})
55950	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55951}
55952
55953// Do executes the "compute.backendServices.aggregatedList" call.
55954// Exactly one of *BackendServiceAggregatedList or error will be
55955// non-nil. Any non-2xx status code is an error. Response headers are in
55956// either *BackendServiceAggregatedList.ServerResponse.Header or (if a
55957// response was returned at all) in error.(*googleapi.Error).Header. Use
55958// googleapi.IsNotModified to check whether the returned error was
55959// because http.StatusNotModified was returned.
55960func (c *BackendServicesAggregatedListCall) Do(opts ...googleapi.CallOption) (*BackendServiceAggregatedList, error) {
55961	gensupport.SetOptions(c.urlParams_, opts...)
55962	res, err := c.doRequest("json")
55963	if res != nil && res.StatusCode == http.StatusNotModified {
55964		if res.Body != nil {
55965			res.Body.Close()
55966		}
55967		return nil, &googleapi.Error{
55968			Code:   res.StatusCode,
55969			Header: res.Header,
55970		}
55971	}
55972	if err != nil {
55973		return nil, err
55974	}
55975	defer googleapi.CloseBody(res)
55976	if err := googleapi.CheckResponse(res); err != nil {
55977		return nil, err
55978	}
55979	ret := &BackendServiceAggregatedList{
55980		ServerResponse: googleapi.ServerResponse{
55981			Header:         res.Header,
55982			HTTPStatusCode: res.StatusCode,
55983		},
55984	}
55985	target := &ret
55986	if err := gensupport.DecodeResponse(target, res); err != nil {
55987		return nil, err
55988	}
55989	return ret, nil
55990	// {
55991	//   "description": "Retrieves the list of all BackendService resources, regional and global, available to the specified project.",
55992	//   "httpMethod": "GET",
55993	//   "id": "compute.backendServices.aggregatedList",
55994	//   "parameterOrder": [
55995	//     "project"
55996	//   ],
55997	//   "parameters": {
55998	//     "filter": {
55999	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
56000	//       "location": "query",
56001	//       "type": "string"
56002	//     },
56003	//     "includeAllScopes": {
56004	//       "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.",
56005	//       "location": "query",
56006	//       "type": "boolean"
56007	//     },
56008	//     "maxResults": {
56009	//       "default": "500",
56010	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
56011	//       "format": "uint32",
56012	//       "location": "query",
56013	//       "minimum": "0",
56014	//       "type": "integer"
56015	//     },
56016	//     "orderBy": {
56017	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
56018	//       "location": "query",
56019	//       "type": "string"
56020	//     },
56021	//     "pageToken": {
56022	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
56023	//       "location": "query",
56024	//       "type": "string"
56025	//     },
56026	//     "project": {
56027	//       "description": "Name of the project scoping this request.",
56028	//       "location": "path",
56029	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56030	//       "required": true,
56031	//       "type": "string"
56032	//     },
56033	//     "returnPartialSuccess": {
56034	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
56035	//       "location": "query",
56036	//       "type": "boolean"
56037	//     }
56038	//   },
56039	//   "path": "projects/{project}/aggregated/backendServices",
56040	//   "response": {
56041	//     "$ref": "BackendServiceAggregatedList"
56042	//   },
56043	//   "scopes": [
56044	//     "https://www.googleapis.com/auth/cloud-platform",
56045	//     "https://www.googleapis.com/auth/compute",
56046	//     "https://www.googleapis.com/auth/compute.readonly"
56047	//   ]
56048	// }
56049
56050}
56051
56052// Pages invokes f for each page of results.
56053// A non-nil error returned from f will halt the iteration.
56054// The provided context supersedes any context provided to the Context method.
56055func (c *BackendServicesAggregatedListCall) Pages(ctx context.Context, f func(*BackendServiceAggregatedList) error) error {
56056	c.ctx_ = ctx
56057	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
56058	for {
56059		x, err := c.Do()
56060		if err != nil {
56061			return err
56062		}
56063		if err := f(x); err != nil {
56064			return err
56065		}
56066		if x.NextPageToken == "" {
56067			return nil
56068		}
56069		c.PageToken(x.NextPageToken)
56070	}
56071}
56072
56073// method id "compute.backendServices.delete":
56074
56075type BackendServicesDeleteCall struct {
56076	s              *Service
56077	project        string
56078	backendService string
56079	urlParams_     gensupport.URLParams
56080	ctx_           context.Context
56081	header_        http.Header
56082}
56083
56084// Delete: Deletes the specified BackendService resource.
56085// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/delete
56086func (r *BackendServicesService) Delete(project string, backendService string) *BackendServicesDeleteCall {
56087	c := &BackendServicesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56088	c.project = project
56089	c.backendService = backendService
56090	return c
56091}
56092
56093// RequestId sets the optional parameter "requestId": An optional
56094// request ID to identify requests. Specify a unique request ID so that
56095// if you must retry your request, the server will know to ignore the
56096// request if it has already been completed.
56097//
56098// For example, consider a situation where you make an initial request
56099// and the request times out. If you make the request again with the
56100// same request ID, the server can check if original operation with the
56101// same request ID was received, and if so, will ignore the second
56102// request. This prevents clients from accidentally creating duplicate
56103// commitments.
56104//
56105// The request ID must be a valid UUID with the exception that zero UUID
56106// is not supported (00000000-0000-0000-0000-000000000000).
56107func (c *BackendServicesDeleteCall) RequestId(requestId string) *BackendServicesDeleteCall {
56108	c.urlParams_.Set("requestId", requestId)
56109	return c
56110}
56111
56112// Fields allows partial responses to be retrieved. See
56113// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56114// for more information.
56115func (c *BackendServicesDeleteCall) Fields(s ...googleapi.Field) *BackendServicesDeleteCall {
56116	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56117	return c
56118}
56119
56120// Context sets the context to be used in this call's Do method. Any
56121// pending HTTP request will be aborted if the provided context is
56122// canceled.
56123func (c *BackendServicesDeleteCall) Context(ctx context.Context) *BackendServicesDeleteCall {
56124	c.ctx_ = ctx
56125	return c
56126}
56127
56128// Header returns an http.Header that can be modified by the caller to
56129// add HTTP headers to the request.
56130func (c *BackendServicesDeleteCall) Header() http.Header {
56131	if c.header_ == nil {
56132		c.header_ = make(http.Header)
56133	}
56134	return c.header_
56135}
56136
56137func (c *BackendServicesDeleteCall) doRequest(alt string) (*http.Response, error) {
56138	reqHeaders := make(http.Header)
56139	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
56140	for k, v := range c.header_ {
56141		reqHeaders[k] = v
56142	}
56143	reqHeaders.Set("User-Agent", c.s.userAgent())
56144	var body io.Reader = nil
56145	c.urlParams_.Set("alt", alt)
56146	c.urlParams_.Set("prettyPrint", "false")
56147	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices/{backendService}")
56148	urls += "?" + c.urlParams_.Encode()
56149	req, err := http.NewRequest("DELETE", urls, body)
56150	if err != nil {
56151		return nil, err
56152	}
56153	req.Header = reqHeaders
56154	googleapi.Expand(req.URL, map[string]string{
56155		"project":        c.project,
56156		"backendService": c.backendService,
56157	})
56158	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56159}
56160
56161// Do executes the "compute.backendServices.delete" call.
56162// Exactly one of *Operation or error will be non-nil. Any non-2xx
56163// status code is an error. Response headers are in either
56164// *Operation.ServerResponse.Header or (if a response was returned at
56165// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
56166// to check whether the returned error was because
56167// http.StatusNotModified was returned.
56168func (c *BackendServicesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
56169	gensupport.SetOptions(c.urlParams_, opts...)
56170	res, err := c.doRequest("json")
56171	if res != nil && res.StatusCode == http.StatusNotModified {
56172		if res.Body != nil {
56173			res.Body.Close()
56174		}
56175		return nil, &googleapi.Error{
56176			Code:   res.StatusCode,
56177			Header: res.Header,
56178		}
56179	}
56180	if err != nil {
56181		return nil, err
56182	}
56183	defer googleapi.CloseBody(res)
56184	if err := googleapi.CheckResponse(res); err != nil {
56185		return nil, err
56186	}
56187	ret := &Operation{
56188		ServerResponse: googleapi.ServerResponse{
56189			Header:         res.Header,
56190			HTTPStatusCode: res.StatusCode,
56191		},
56192	}
56193	target := &ret
56194	if err := gensupport.DecodeResponse(target, res); err != nil {
56195		return nil, err
56196	}
56197	return ret, nil
56198	// {
56199	//   "description": "Deletes the specified BackendService resource.",
56200	//   "httpMethod": "DELETE",
56201	//   "id": "compute.backendServices.delete",
56202	//   "parameterOrder": [
56203	//     "project",
56204	//     "backendService"
56205	//   ],
56206	//   "parameters": {
56207	//     "backendService": {
56208	//       "description": "Name of the BackendService resource to delete.",
56209	//       "location": "path",
56210	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
56211	//       "required": true,
56212	//       "type": "string"
56213	//     },
56214	//     "project": {
56215	//       "description": "Project ID for this request.",
56216	//       "location": "path",
56217	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56218	//       "required": true,
56219	//       "type": "string"
56220	//     },
56221	//     "requestId": {
56222	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
56223	//       "location": "query",
56224	//       "type": "string"
56225	//     }
56226	//   },
56227	//   "path": "projects/{project}/global/backendServices/{backendService}",
56228	//   "response": {
56229	//     "$ref": "Operation"
56230	//   },
56231	//   "scopes": [
56232	//     "https://www.googleapis.com/auth/cloud-platform",
56233	//     "https://www.googleapis.com/auth/compute"
56234	//   ]
56235	// }
56236
56237}
56238
56239// method id "compute.backendServices.deleteSignedUrlKey":
56240
56241type BackendServicesDeleteSignedUrlKeyCall struct {
56242	s              *Service
56243	project        string
56244	backendService string
56245	urlParams_     gensupport.URLParams
56246	ctx_           context.Context
56247	header_        http.Header
56248}
56249
56250// DeleteSignedUrlKey: Deletes a key for validating requests with signed
56251// URLs for this backend service.
56252func (r *BackendServicesService) DeleteSignedUrlKey(project string, backendService string, keyName string) *BackendServicesDeleteSignedUrlKeyCall {
56253	c := &BackendServicesDeleteSignedUrlKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56254	c.project = project
56255	c.backendService = backendService
56256	c.urlParams_.Set("keyName", keyName)
56257	return c
56258}
56259
56260// RequestId sets the optional parameter "requestId": An optional
56261// request ID to identify requests. Specify a unique request ID so that
56262// if you must retry your request, the server will know to ignore the
56263// request if it has already been completed.
56264//
56265// For example, consider a situation where you make an initial request
56266// and the request times out. If you make the request again with the
56267// same request ID, the server can check if original operation with the
56268// same request ID was received, and if so, will ignore the second
56269// request. This prevents clients from accidentally creating duplicate
56270// commitments.
56271//
56272// The request ID must be a valid UUID with the exception that zero UUID
56273// is not supported (00000000-0000-0000-0000-000000000000).
56274func (c *BackendServicesDeleteSignedUrlKeyCall) RequestId(requestId string) *BackendServicesDeleteSignedUrlKeyCall {
56275	c.urlParams_.Set("requestId", requestId)
56276	return c
56277}
56278
56279// Fields allows partial responses to be retrieved. See
56280// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56281// for more information.
56282func (c *BackendServicesDeleteSignedUrlKeyCall) Fields(s ...googleapi.Field) *BackendServicesDeleteSignedUrlKeyCall {
56283	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56284	return c
56285}
56286
56287// Context sets the context to be used in this call's Do method. Any
56288// pending HTTP request will be aborted if the provided context is
56289// canceled.
56290func (c *BackendServicesDeleteSignedUrlKeyCall) Context(ctx context.Context) *BackendServicesDeleteSignedUrlKeyCall {
56291	c.ctx_ = ctx
56292	return c
56293}
56294
56295// Header returns an http.Header that can be modified by the caller to
56296// add HTTP headers to the request.
56297func (c *BackendServicesDeleteSignedUrlKeyCall) Header() http.Header {
56298	if c.header_ == nil {
56299		c.header_ = make(http.Header)
56300	}
56301	return c.header_
56302}
56303
56304func (c *BackendServicesDeleteSignedUrlKeyCall) doRequest(alt string) (*http.Response, error) {
56305	reqHeaders := make(http.Header)
56306	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
56307	for k, v := range c.header_ {
56308		reqHeaders[k] = v
56309	}
56310	reqHeaders.Set("User-Agent", c.s.userAgent())
56311	var body io.Reader = nil
56312	c.urlParams_.Set("alt", alt)
56313	c.urlParams_.Set("prettyPrint", "false")
56314	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices/{backendService}/deleteSignedUrlKey")
56315	urls += "?" + c.urlParams_.Encode()
56316	req, err := http.NewRequest("POST", urls, body)
56317	if err != nil {
56318		return nil, err
56319	}
56320	req.Header = reqHeaders
56321	googleapi.Expand(req.URL, map[string]string{
56322		"project":        c.project,
56323		"backendService": c.backendService,
56324	})
56325	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56326}
56327
56328// Do executes the "compute.backendServices.deleteSignedUrlKey" call.
56329// Exactly one of *Operation or error will be non-nil. Any non-2xx
56330// status code is an error. Response headers are in either
56331// *Operation.ServerResponse.Header or (if a response was returned at
56332// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
56333// to check whether the returned error was because
56334// http.StatusNotModified was returned.
56335func (c *BackendServicesDeleteSignedUrlKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
56336	gensupport.SetOptions(c.urlParams_, opts...)
56337	res, err := c.doRequest("json")
56338	if res != nil && res.StatusCode == http.StatusNotModified {
56339		if res.Body != nil {
56340			res.Body.Close()
56341		}
56342		return nil, &googleapi.Error{
56343			Code:   res.StatusCode,
56344			Header: res.Header,
56345		}
56346	}
56347	if err != nil {
56348		return nil, err
56349	}
56350	defer googleapi.CloseBody(res)
56351	if err := googleapi.CheckResponse(res); err != nil {
56352		return nil, err
56353	}
56354	ret := &Operation{
56355		ServerResponse: googleapi.ServerResponse{
56356			Header:         res.Header,
56357			HTTPStatusCode: res.StatusCode,
56358		},
56359	}
56360	target := &ret
56361	if err := gensupport.DecodeResponse(target, res); err != nil {
56362		return nil, err
56363	}
56364	return ret, nil
56365	// {
56366	//   "description": "Deletes a key for validating requests with signed URLs for this backend service.",
56367	//   "httpMethod": "POST",
56368	//   "id": "compute.backendServices.deleteSignedUrlKey",
56369	//   "parameterOrder": [
56370	//     "project",
56371	//     "backendService",
56372	//     "keyName"
56373	//   ],
56374	//   "parameters": {
56375	//     "backendService": {
56376	//       "description": "Name of the BackendService resource to which the Signed URL Key should be added. The name should conform to RFC1035.",
56377	//       "location": "path",
56378	//       "required": true,
56379	//       "type": "string"
56380	//     },
56381	//     "keyName": {
56382	//       "description": "The name of the Signed URL Key to delete.",
56383	//       "location": "query",
56384	//       "required": true,
56385	//       "type": "string"
56386	//     },
56387	//     "project": {
56388	//       "description": "Project ID for this request.",
56389	//       "location": "path",
56390	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56391	//       "required": true,
56392	//       "type": "string"
56393	//     },
56394	//     "requestId": {
56395	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
56396	//       "location": "query",
56397	//       "type": "string"
56398	//     }
56399	//   },
56400	//   "path": "projects/{project}/global/backendServices/{backendService}/deleteSignedUrlKey",
56401	//   "response": {
56402	//     "$ref": "Operation"
56403	//   },
56404	//   "scopes": [
56405	//     "https://www.googleapis.com/auth/cloud-platform",
56406	//     "https://www.googleapis.com/auth/compute"
56407	//   ]
56408	// }
56409
56410}
56411
56412// method id "compute.backendServices.get":
56413
56414type BackendServicesGetCall struct {
56415	s              *Service
56416	project        string
56417	backendService string
56418	urlParams_     gensupport.URLParams
56419	ifNoneMatch_   string
56420	ctx_           context.Context
56421	header_        http.Header
56422}
56423
56424// Get: Returns the specified BackendService resource. Gets a list of
56425// available backend services.
56426// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/get
56427func (r *BackendServicesService) Get(project string, backendService string) *BackendServicesGetCall {
56428	c := &BackendServicesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56429	c.project = project
56430	c.backendService = backendService
56431	return c
56432}
56433
56434// Fields allows partial responses to be retrieved. See
56435// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56436// for more information.
56437func (c *BackendServicesGetCall) Fields(s ...googleapi.Field) *BackendServicesGetCall {
56438	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56439	return c
56440}
56441
56442// IfNoneMatch sets the optional parameter which makes the operation
56443// fail if the object's ETag matches the given value. This is useful for
56444// getting updates only after the object has changed since the last
56445// request. Use googleapi.IsNotModified to check whether the response
56446// error from Do is the result of In-None-Match.
56447func (c *BackendServicesGetCall) IfNoneMatch(entityTag string) *BackendServicesGetCall {
56448	c.ifNoneMatch_ = entityTag
56449	return c
56450}
56451
56452// Context sets the context to be used in this call's Do method. Any
56453// pending HTTP request will be aborted if the provided context is
56454// canceled.
56455func (c *BackendServicesGetCall) Context(ctx context.Context) *BackendServicesGetCall {
56456	c.ctx_ = ctx
56457	return c
56458}
56459
56460// Header returns an http.Header that can be modified by the caller to
56461// add HTTP headers to the request.
56462func (c *BackendServicesGetCall) Header() http.Header {
56463	if c.header_ == nil {
56464		c.header_ = make(http.Header)
56465	}
56466	return c.header_
56467}
56468
56469func (c *BackendServicesGetCall) doRequest(alt string) (*http.Response, error) {
56470	reqHeaders := make(http.Header)
56471	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
56472	for k, v := range c.header_ {
56473		reqHeaders[k] = v
56474	}
56475	reqHeaders.Set("User-Agent", c.s.userAgent())
56476	if c.ifNoneMatch_ != "" {
56477		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
56478	}
56479	var body io.Reader = nil
56480	c.urlParams_.Set("alt", alt)
56481	c.urlParams_.Set("prettyPrint", "false")
56482	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices/{backendService}")
56483	urls += "?" + c.urlParams_.Encode()
56484	req, err := http.NewRequest("GET", urls, body)
56485	if err != nil {
56486		return nil, err
56487	}
56488	req.Header = reqHeaders
56489	googleapi.Expand(req.URL, map[string]string{
56490		"project":        c.project,
56491		"backendService": c.backendService,
56492	})
56493	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56494}
56495
56496// Do executes the "compute.backendServices.get" call.
56497// Exactly one of *BackendService or error will be non-nil. Any non-2xx
56498// status code is an error. Response headers are in either
56499// *BackendService.ServerResponse.Header or (if a response was returned
56500// at all) in error.(*googleapi.Error).Header. Use
56501// googleapi.IsNotModified to check whether the returned error was
56502// because http.StatusNotModified was returned.
56503func (c *BackendServicesGetCall) Do(opts ...googleapi.CallOption) (*BackendService, error) {
56504	gensupport.SetOptions(c.urlParams_, opts...)
56505	res, err := c.doRequest("json")
56506	if res != nil && res.StatusCode == http.StatusNotModified {
56507		if res.Body != nil {
56508			res.Body.Close()
56509		}
56510		return nil, &googleapi.Error{
56511			Code:   res.StatusCode,
56512			Header: res.Header,
56513		}
56514	}
56515	if err != nil {
56516		return nil, err
56517	}
56518	defer googleapi.CloseBody(res)
56519	if err := googleapi.CheckResponse(res); err != nil {
56520		return nil, err
56521	}
56522	ret := &BackendService{
56523		ServerResponse: googleapi.ServerResponse{
56524			Header:         res.Header,
56525			HTTPStatusCode: res.StatusCode,
56526		},
56527	}
56528	target := &ret
56529	if err := gensupport.DecodeResponse(target, res); err != nil {
56530		return nil, err
56531	}
56532	return ret, nil
56533	// {
56534	//   "description": "Returns the specified BackendService resource. Gets a list of available backend services.",
56535	//   "httpMethod": "GET",
56536	//   "id": "compute.backendServices.get",
56537	//   "parameterOrder": [
56538	//     "project",
56539	//     "backendService"
56540	//   ],
56541	//   "parameters": {
56542	//     "backendService": {
56543	//       "description": "Name of the BackendService resource to return.",
56544	//       "location": "path",
56545	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
56546	//       "required": true,
56547	//       "type": "string"
56548	//     },
56549	//     "project": {
56550	//       "description": "Project ID for this request.",
56551	//       "location": "path",
56552	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56553	//       "required": true,
56554	//       "type": "string"
56555	//     }
56556	//   },
56557	//   "path": "projects/{project}/global/backendServices/{backendService}",
56558	//   "response": {
56559	//     "$ref": "BackendService"
56560	//   },
56561	//   "scopes": [
56562	//     "https://www.googleapis.com/auth/cloud-platform",
56563	//     "https://www.googleapis.com/auth/compute",
56564	//     "https://www.googleapis.com/auth/compute.readonly"
56565	//   ]
56566	// }
56567
56568}
56569
56570// method id "compute.backendServices.getHealth":
56571
56572type BackendServicesGetHealthCall struct {
56573	s                      *Service
56574	project                string
56575	backendService         string
56576	resourcegroupreference *ResourceGroupReference
56577	urlParams_             gensupport.URLParams
56578	ctx_                   context.Context
56579	header_                http.Header
56580}
56581
56582// GetHealth: Gets the most recent health check results for this
56583// BackendService.
56584//
56585// Example request body:
56586//
56587// { "group": "/zones/us-east1-b/instanceGroups/lb-backend-example" }
56588// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/getHealth
56589func (r *BackendServicesService) GetHealth(project string, backendService string, resourcegroupreference *ResourceGroupReference) *BackendServicesGetHealthCall {
56590	c := &BackendServicesGetHealthCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56591	c.project = project
56592	c.backendService = backendService
56593	c.resourcegroupreference = resourcegroupreference
56594	return c
56595}
56596
56597// Fields allows partial responses to be retrieved. See
56598// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56599// for more information.
56600func (c *BackendServicesGetHealthCall) Fields(s ...googleapi.Field) *BackendServicesGetHealthCall {
56601	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56602	return c
56603}
56604
56605// Context sets the context to be used in this call's Do method. Any
56606// pending HTTP request will be aborted if the provided context is
56607// canceled.
56608func (c *BackendServicesGetHealthCall) Context(ctx context.Context) *BackendServicesGetHealthCall {
56609	c.ctx_ = ctx
56610	return c
56611}
56612
56613// Header returns an http.Header that can be modified by the caller to
56614// add HTTP headers to the request.
56615func (c *BackendServicesGetHealthCall) Header() http.Header {
56616	if c.header_ == nil {
56617		c.header_ = make(http.Header)
56618	}
56619	return c.header_
56620}
56621
56622func (c *BackendServicesGetHealthCall) doRequest(alt string) (*http.Response, error) {
56623	reqHeaders := make(http.Header)
56624	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
56625	for k, v := range c.header_ {
56626		reqHeaders[k] = v
56627	}
56628	reqHeaders.Set("User-Agent", c.s.userAgent())
56629	var body io.Reader = nil
56630	body, err := googleapi.WithoutDataWrapper.JSONReader(c.resourcegroupreference)
56631	if err != nil {
56632		return nil, err
56633	}
56634	reqHeaders.Set("Content-Type", "application/json")
56635	c.urlParams_.Set("alt", alt)
56636	c.urlParams_.Set("prettyPrint", "false")
56637	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices/{backendService}/getHealth")
56638	urls += "?" + c.urlParams_.Encode()
56639	req, err := http.NewRequest("POST", urls, body)
56640	if err != nil {
56641		return nil, err
56642	}
56643	req.Header = reqHeaders
56644	googleapi.Expand(req.URL, map[string]string{
56645		"project":        c.project,
56646		"backendService": c.backendService,
56647	})
56648	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56649}
56650
56651// Do executes the "compute.backendServices.getHealth" call.
56652// Exactly one of *BackendServiceGroupHealth or error will be non-nil.
56653// Any non-2xx status code is an error. Response headers are in either
56654// *BackendServiceGroupHealth.ServerResponse.Header or (if a response
56655// was returned at all) in error.(*googleapi.Error).Header. Use
56656// googleapi.IsNotModified to check whether the returned error was
56657// because http.StatusNotModified was returned.
56658func (c *BackendServicesGetHealthCall) Do(opts ...googleapi.CallOption) (*BackendServiceGroupHealth, error) {
56659	gensupport.SetOptions(c.urlParams_, opts...)
56660	res, err := c.doRequest("json")
56661	if res != nil && res.StatusCode == http.StatusNotModified {
56662		if res.Body != nil {
56663			res.Body.Close()
56664		}
56665		return nil, &googleapi.Error{
56666			Code:   res.StatusCode,
56667			Header: res.Header,
56668		}
56669	}
56670	if err != nil {
56671		return nil, err
56672	}
56673	defer googleapi.CloseBody(res)
56674	if err := googleapi.CheckResponse(res); err != nil {
56675		return nil, err
56676	}
56677	ret := &BackendServiceGroupHealth{
56678		ServerResponse: googleapi.ServerResponse{
56679			Header:         res.Header,
56680			HTTPStatusCode: res.StatusCode,
56681		},
56682	}
56683	target := &ret
56684	if err := gensupport.DecodeResponse(target, res); err != nil {
56685		return nil, err
56686	}
56687	return ret, nil
56688	// {
56689	//   "description": "Gets the most recent health check results for this BackendService.\n\nExample request body:\n\n{ \"group\": \"/zones/us-east1-b/instanceGroups/lb-backend-example\" }",
56690	//   "httpMethod": "POST",
56691	//   "id": "compute.backendServices.getHealth",
56692	//   "parameterOrder": [
56693	//     "project",
56694	//     "backendService"
56695	//   ],
56696	//   "parameters": {
56697	//     "backendService": {
56698	//       "description": "Name of the BackendService resource to which the queried instance belongs.",
56699	//       "location": "path",
56700	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
56701	//       "required": true,
56702	//       "type": "string"
56703	//     },
56704	//     "project": {
56705	//       "location": "path",
56706	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56707	//       "required": true,
56708	//       "type": "string"
56709	//     }
56710	//   },
56711	//   "path": "projects/{project}/global/backendServices/{backendService}/getHealth",
56712	//   "request": {
56713	//     "$ref": "ResourceGroupReference"
56714	//   },
56715	//   "response": {
56716	//     "$ref": "BackendServiceGroupHealth"
56717	//   },
56718	//   "scopes": [
56719	//     "https://www.googleapis.com/auth/cloud-platform",
56720	//     "https://www.googleapis.com/auth/compute",
56721	//     "https://www.googleapis.com/auth/compute.readonly"
56722	//   ]
56723	// }
56724
56725}
56726
56727// method id "compute.backendServices.insert":
56728
56729type BackendServicesInsertCall struct {
56730	s              *Service
56731	project        string
56732	backendservice *BackendService
56733	urlParams_     gensupport.URLParams
56734	ctx_           context.Context
56735	header_        http.Header
56736}
56737
56738// Insert: Creates a BackendService resource in the specified project
56739// using the data included in the request. For more information, see
56740// Backend services overview.
56741// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/insert
56742func (r *BackendServicesService) Insert(project string, backendservice *BackendService) *BackendServicesInsertCall {
56743	c := &BackendServicesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56744	c.project = project
56745	c.backendservice = backendservice
56746	return c
56747}
56748
56749// RequestId sets the optional parameter "requestId": An optional
56750// request ID to identify requests. Specify a unique request ID so that
56751// if you must retry your request, the server will know to ignore the
56752// request if it has already been completed.
56753//
56754// For example, consider a situation where you make an initial request
56755// and the request times out. If you make the request again with the
56756// same request ID, the server can check if original operation with the
56757// same request ID was received, and if so, will ignore the second
56758// request. This prevents clients from accidentally creating duplicate
56759// commitments.
56760//
56761// The request ID must be a valid UUID with the exception that zero UUID
56762// is not supported (00000000-0000-0000-0000-000000000000).
56763func (c *BackendServicesInsertCall) RequestId(requestId string) *BackendServicesInsertCall {
56764	c.urlParams_.Set("requestId", requestId)
56765	return c
56766}
56767
56768// Fields allows partial responses to be retrieved. See
56769// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56770// for more information.
56771func (c *BackendServicesInsertCall) Fields(s ...googleapi.Field) *BackendServicesInsertCall {
56772	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56773	return c
56774}
56775
56776// Context sets the context to be used in this call's Do method. Any
56777// pending HTTP request will be aborted if the provided context is
56778// canceled.
56779func (c *BackendServicesInsertCall) Context(ctx context.Context) *BackendServicesInsertCall {
56780	c.ctx_ = ctx
56781	return c
56782}
56783
56784// Header returns an http.Header that can be modified by the caller to
56785// add HTTP headers to the request.
56786func (c *BackendServicesInsertCall) Header() http.Header {
56787	if c.header_ == nil {
56788		c.header_ = make(http.Header)
56789	}
56790	return c.header_
56791}
56792
56793func (c *BackendServicesInsertCall) doRequest(alt string) (*http.Response, error) {
56794	reqHeaders := make(http.Header)
56795	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
56796	for k, v := range c.header_ {
56797		reqHeaders[k] = v
56798	}
56799	reqHeaders.Set("User-Agent", c.s.userAgent())
56800	var body io.Reader = nil
56801	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
56802	if err != nil {
56803		return nil, err
56804	}
56805	reqHeaders.Set("Content-Type", "application/json")
56806	c.urlParams_.Set("alt", alt)
56807	c.urlParams_.Set("prettyPrint", "false")
56808	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices")
56809	urls += "?" + c.urlParams_.Encode()
56810	req, err := http.NewRequest("POST", urls, body)
56811	if err != nil {
56812		return nil, err
56813	}
56814	req.Header = reqHeaders
56815	googleapi.Expand(req.URL, map[string]string{
56816		"project": c.project,
56817	})
56818	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56819}
56820
56821// Do executes the "compute.backendServices.insert" call.
56822// Exactly one of *Operation or error will be non-nil. Any non-2xx
56823// status code is an error. Response headers are in either
56824// *Operation.ServerResponse.Header or (if a response was returned at
56825// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
56826// to check whether the returned error was because
56827// http.StatusNotModified was returned.
56828func (c *BackendServicesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
56829	gensupport.SetOptions(c.urlParams_, opts...)
56830	res, err := c.doRequest("json")
56831	if res != nil && res.StatusCode == http.StatusNotModified {
56832		if res.Body != nil {
56833			res.Body.Close()
56834		}
56835		return nil, &googleapi.Error{
56836			Code:   res.StatusCode,
56837			Header: res.Header,
56838		}
56839	}
56840	if err != nil {
56841		return nil, err
56842	}
56843	defer googleapi.CloseBody(res)
56844	if err := googleapi.CheckResponse(res); err != nil {
56845		return nil, err
56846	}
56847	ret := &Operation{
56848		ServerResponse: googleapi.ServerResponse{
56849			Header:         res.Header,
56850			HTTPStatusCode: res.StatusCode,
56851		},
56852	}
56853	target := &ret
56854	if err := gensupport.DecodeResponse(target, res); err != nil {
56855		return nil, err
56856	}
56857	return ret, nil
56858	// {
56859	//   "description": "Creates a BackendService resource in the specified project using the data included in the request. For more information, see  Backend services overview.",
56860	//   "httpMethod": "POST",
56861	//   "id": "compute.backendServices.insert",
56862	//   "parameterOrder": [
56863	//     "project"
56864	//   ],
56865	//   "parameters": {
56866	//     "project": {
56867	//       "description": "Project ID for this request.",
56868	//       "location": "path",
56869	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56870	//       "required": true,
56871	//       "type": "string"
56872	//     },
56873	//     "requestId": {
56874	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
56875	//       "location": "query",
56876	//       "type": "string"
56877	//     }
56878	//   },
56879	//   "path": "projects/{project}/global/backendServices",
56880	//   "request": {
56881	//     "$ref": "BackendService"
56882	//   },
56883	//   "response": {
56884	//     "$ref": "Operation"
56885	//   },
56886	//   "scopes": [
56887	//     "https://www.googleapis.com/auth/cloud-platform",
56888	//     "https://www.googleapis.com/auth/compute"
56889	//   ]
56890	// }
56891
56892}
56893
56894// method id "compute.backendServices.list":
56895
56896type BackendServicesListCall struct {
56897	s            *Service
56898	project      string
56899	urlParams_   gensupport.URLParams
56900	ifNoneMatch_ string
56901	ctx_         context.Context
56902	header_      http.Header
56903}
56904
56905// List: Retrieves the list of BackendService resources available to the
56906// specified project.
56907// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/list
56908func (r *BackendServicesService) List(project string) *BackendServicesListCall {
56909	c := &BackendServicesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56910	c.project = project
56911	return c
56912}
56913
56914// Filter sets the optional parameter "filter": A filter expression that
56915// filters resources listed in the response. The expression must specify
56916// the field name, a comparison operator, and the value that you want to
56917// use for filtering. The value must be a string, a number, or a
56918// boolean. The comparison operator must be either `=`, `!=`, `>`, or
56919// `<`.
56920//
56921// For example, if you are filtering Compute Engine instances, you can
56922// exclude instances named `example-instance` by specifying `name !=
56923// example-instance`.
56924//
56925// You can also filter nested fields. For example, you could specify
56926// `scheduling.automaticRestart = false` to include instances only if
56927// they are not scheduled for automatic restarts. You can use filtering
56928// on nested fields to filter based on resource labels.
56929//
56930// To filter on multiple expressions, provide each separate expression
56931// within parentheses. For example: ``` (scheduling.automaticRestart =
56932// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
56933// is an `AND` expression. However, you can include `AND` and `OR`
56934// expressions explicitly. For example: ``` (cpuPlatform = "Intel
56935// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
56936// (scheduling.automaticRestart = true) ```
56937func (c *BackendServicesListCall) Filter(filter string) *BackendServicesListCall {
56938	c.urlParams_.Set("filter", filter)
56939	return c
56940}
56941
56942// MaxResults sets the optional parameter "maxResults": The maximum
56943// number of results per page that should be returned. If the number of
56944// available results is larger than `maxResults`, Compute Engine returns
56945// a `nextPageToken` that can be used to get the next page of results in
56946// subsequent list requests. Acceptable values are `0` to `500`,
56947// inclusive. (Default: `500`)
56948func (c *BackendServicesListCall) MaxResults(maxResults int64) *BackendServicesListCall {
56949	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
56950	return c
56951}
56952
56953// OrderBy sets the optional parameter "orderBy": Sorts list results by
56954// a certain order. By default, results are returned in alphanumerical
56955// order based on the resource name.
56956//
56957// You can also sort results in descending order based on the creation
56958// timestamp using `orderBy="creationTimestamp desc". This sorts
56959// results based on the `creationTimestamp` field in reverse
56960// chronological order (newest result first). Use this to sort resources
56961// like operations so that the newest operation is returned
56962// first.
56963//
56964// Currently, only sorting by `name` or `creationTimestamp desc` is
56965// supported.
56966func (c *BackendServicesListCall) OrderBy(orderBy string) *BackendServicesListCall {
56967	c.urlParams_.Set("orderBy", orderBy)
56968	return c
56969}
56970
56971// PageToken sets the optional parameter "pageToken": Specifies a page
56972// token to use. Set `pageToken` to the `nextPageToken` returned by a
56973// previous list request to get the next page of results.
56974func (c *BackendServicesListCall) PageToken(pageToken string) *BackendServicesListCall {
56975	c.urlParams_.Set("pageToken", pageToken)
56976	return c
56977}
56978
56979// ReturnPartialSuccess sets the optional parameter
56980// "returnPartialSuccess": Opt-in for partial success behavior which
56981// provides partial results in case of failure. The default value is
56982// false.
56983func (c *BackendServicesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *BackendServicesListCall {
56984	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
56985	return c
56986}
56987
56988// Fields allows partial responses to be retrieved. See
56989// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56990// for more information.
56991func (c *BackendServicesListCall) Fields(s ...googleapi.Field) *BackendServicesListCall {
56992	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56993	return c
56994}
56995
56996// IfNoneMatch sets the optional parameter which makes the operation
56997// fail if the object's ETag matches the given value. This is useful for
56998// getting updates only after the object has changed since the last
56999// request. Use googleapi.IsNotModified to check whether the response
57000// error from Do is the result of In-None-Match.
57001func (c *BackendServicesListCall) IfNoneMatch(entityTag string) *BackendServicesListCall {
57002	c.ifNoneMatch_ = entityTag
57003	return c
57004}
57005
57006// Context sets the context to be used in this call's Do method. Any
57007// pending HTTP request will be aborted if the provided context is
57008// canceled.
57009func (c *BackendServicesListCall) Context(ctx context.Context) *BackendServicesListCall {
57010	c.ctx_ = ctx
57011	return c
57012}
57013
57014// Header returns an http.Header that can be modified by the caller to
57015// add HTTP headers to the request.
57016func (c *BackendServicesListCall) Header() http.Header {
57017	if c.header_ == nil {
57018		c.header_ = make(http.Header)
57019	}
57020	return c.header_
57021}
57022
57023func (c *BackendServicesListCall) doRequest(alt string) (*http.Response, error) {
57024	reqHeaders := make(http.Header)
57025	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
57026	for k, v := range c.header_ {
57027		reqHeaders[k] = v
57028	}
57029	reqHeaders.Set("User-Agent", c.s.userAgent())
57030	if c.ifNoneMatch_ != "" {
57031		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
57032	}
57033	var body io.Reader = nil
57034	c.urlParams_.Set("alt", alt)
57035	c.urlParams_.Set("prettyPrint", "false")
57036	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices")
57037	urls += "?" + c.urlParams_.Encode()
57038	req, err := http.NewRequest("GET", urls, body)
57039	if err != nil {
57040		return nil, err
57041	}
57042	req.Header = reqHeaders
57043	googleapi.Expand(req.URL, map[string]string{
57044		"project": c.project,
57045	})
57046	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57047}
57048
57049// Do executes the "compute.backendServices.list" call.
57050// Exactly one of *BackendServiceList or error will be non-nil. Any
57051// non-2xx status code is an error. Response headers are in either
57052// *BackendServiceList.ServerResponse.Header or (if a response was
57053// returned at all) in error.(*googleapi.Error).Header. Use
57054// googleapi.IsNotModified to check whether the returned error was
57055// because http.StatusNotModified was returned.
57056func (c *BackendServicesListCall) Do(opts ...googleapi.CallOption) (*BackendServiceList, error) {
57057	gensupport.SetOptions(c.urlParams_, opts...)
57058	res, err := c.doRequest("json")
57059	if res != nil && res.StatusCode == http.StatusNotModified {
57060		if res.Body != nil {
57061			res.Body.Close()
57062		}
57063		return nil, &googleapi.Error{
57064			Code:   res.StatusCode,
57065			Header: res.Header,
57066		}
57067	}
57068	if err != nil {
57069		return nil, err
57070	}
57071	defer googleapi.CloseBody(res)
57072	if err := googleapi.CheckResponse(res); err != nil {
57073		return nil, err
57074	}
57075	ret := &BackendServiceList{
57076		ServerResponse: googleapi.ServerResponse{
57077			Header:         res.Header,
57078			HTTPStatusCode: res.StatusCode,
57079		},
57080	}
57081	target := &ret
57082	if err := gensupport.DecodeResponse(target, res); err != nil {
57083		return nil, err
57084	}
57085	return ret, nil
57086	// {
57087	//   "description": "Retrieves the list of BackendService resources available to the specified project.",
57088	//   "httpMethod": "GET",
57089	//   "id": "compute.backendServices.list",
57090	//   "parameterOrder": [
57091	//     "project"
57092	//   ],
57093	//   "parameters": {
57094	//     "filter": {
57095	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
57096	//       "location": "query",
57097	//       "type": "string"
57098	//     },
57099	//     "maxResults": {
57100	//       "default": "500",
57101	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
57102	//       "format": "uint32",
57103	//       "location": "query",
57104	//       "minimum": "0",
57105	//       "type": "integer"
57106	//     },
57107	//     "orderBy": {
57108	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
57109	//       "location": "query",
57110	//       "type": "string"
57111	//     },
57112	//     "pageToken": {
57113	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
57114	//       "location": "query",
57115	//       "type": "string"
57116	//     },
57117	//     "project": {
57118	//       "description": "Project ID for this request.",
57119	//       "location": "path",
57120	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57121	//       "required": true,
57122	//       "type": "string"
57123	//     },
57124	//     "returnPartialSuccess": {
57125	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
57126	//       "location": "query",
57127	//       "type": "boolean"
57128	//     }
57129	//   },
57130	//   "path": "projects/{project}/global/backendServices",
57131	//   "response": {
57132	//     "$ref": "BackendServiceList"
57133	//   },
57134	//   "scopes": [
57135	//     "https://www.googleapis.com/auth/cloud-platform",
57136	//     "https://www.googleapis.com/auth/compute",
57137	//     "https://www.googleapis.com/auth/compute.readonly"
57138	//   ]
57139	// }
57140
57141}
57142
57143// Pages invokes f for each page of results.
57144// A non-nil error returned from f will halt the iteration.
57145// The provided context supersedes any context provided to the Context method.
57146func (c *BackendServicesListCall) Pages(ctx context.Context, f func(*BackendServiceList) error) error {
57147	c.ctx_ = ctx
57148	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
57149	for {
57150		x, err := c.Do()
57151		if err != nil {
57152			return err
57153		}
57154		if err := f(x); err != nil {
57155			return err
57156		}
57157		if x.NextPageToken == "" {
57158			return nil
57159		}
57160		c.PageToken(x.NextPageToken)
57161	}
57162}
57163
57164// method id "compute.backendServices.patch":
57165
57166type BackendServicesPatchCall struct {
57167	s              *Service
57168	project        string
57169	backendService string
57170	backendservice *BackendService
57171	urlParams_     gensupport.URLParams
57172	ctx_           context.Context
57173	header_        http.Header
57174}
57175
57176// Patch: Patches the specified BackendService resource with the data
57177// included in the request. For more information, see  Backend services
57178// overview. This method supports PATCH semantics and uses the JSON
57179// merge patch format and processing rules.
57180// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/patch
57181func (r *BackendServicesService) Patch(project string, backendService string, backendservice *BackendService) *BackendServicesPatchCall {
57182	c := &BackendServicesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57183	c.project = project
57184	c.backendService = backendService
57185	c.backendservice = backendservice
57186	return c
57187}
57188
57189// RequestId sets the optional parameter "requestId": An optional
57190// request ID to identify requests. Specify a unique request ID so that
57191// if you must retry your request, the server will know to ignore the
57192// request if it has already been completed.
57193//
57194// For example, consider a situation where you make an initial request
57195// and the request times out. If you make the request again with the
57196// same request ID, the server can check if original operation with the
57197// same request ID was received, and if so, will ignore the second
57198// request. This prevents clients from accidentally creating duplicate
57199// commitments.
57200//
57201// The request ID must be a valid UUID with the exception that zero UUID
57202// is not supported (00000000-0000-0000-0000-000000000000).
57203func (c *BackendServicesPatchCall) RequestId(requestId string) *BackendServicesPatchCall {
57204	c.urlParams_.Set("requestId", requestId)
57205	return c
57206}
57207
57208// Fields allows partial responses to be retrieved. See
57209// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57210// for more information.
57211func (c *BackendServicesPatchCall) Fields(s ...googleapi.Field) *BackendServicesPatchCall {
57212	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57213	return c
57214}
57215
57216// Context sets the context to be used in this call's Do method. Any
57217// pending HTTP request will be aborted if the provided context is
57218// canceled.
57219func (c *BackendServicesPatchCall) Context(ctx context.Context) *BackendServicesPatchCall {
57220	c.ctx_ = ctx
57221	return c
57222}
57223
57224// Header returns an http.Header that can be modified by the caller to
57225// add HTTP headers to the request.
57226func (c *BackendServicesPatchCall) Header() http.Header {
57227	if c.header_ == nil {
57228		c.header_ = make(http.Header)
57229	}
57230	return c.header_
57231}
57232
57233func (c *BackendServicesPatchCall) doRequest(alt string) (*http.Response, error) {
57234	reqHeaders := make(http.Header)
57235	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
57236	for k, v := range c.header_ {
57237		reqHeaders[k] = v
57238	}
57239	reqHeaders.Set("User-Agent", c.s.userAgent())
57240	var body io.Reader = nil
57241	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
57242	if err != nil {
57243		return nil, err
57244	}
57245	reqHeaders.Set("Content-Type", "application/json")
57246	c.urlParams_.Set("alt", alt)
57247	c.urlParams_.Set("prettyPrint", "false")
57248	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices/{backendService}")
57249	urls += "?" + c.urlParams_.Encode()
57250	req, err := http.NewRequest("PATCH", urls, body)
57251	if err != nil {
57252		return nil, err
57253	}
57254	req.Header = reqHeaders
57255	googleapi.Expand(req.URL, map[string]string{
57256		"project":        c.project,
57257		"backendService": c.backendService,
57258	})
57259	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57260}
57261
57262// Do executes the "compute.backendServices.patch" call.
57263// Exactly one of *Operation or error will be non-nil. Any non-2xx
57264// status code is an error. Response headers are in either
57265// *Operation.ServerResponse.Header or (if a response was returned at
57266// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
57267// to check whether the returned error was because
57268// http.StatusNotModified was returned.
57269func (c *BackendServicesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
57270	gensupport.SetOptions(c.urlParams_, opts...)
57271	res, err := c.doRequest("json")
57272	if res != nil && res.StatusCode == http.StatusNotModified {
57273		if res.Body != nil {
57274			res.Body.Close()
57275		}
57276		return nil, &googleapi.Error{
57277			Code:   res.StatusCode,
57278			Header: res.Header,
57279		}
57280	}
57281	if err != nil {
57282		return nil, err
57283	}
57284	defer googleapi.CloseBody(res)
57285	if err := googleapi.CheckResponse(res); err != nil {
57286		return nil, err
57287	}
57288	ret := &Operation{
57289		ServerResponse: googleapi.ServerResponse{
57290			Header:         res.Header,
57291			HTTPStatusCode: res.StatusCode,
57292		},
57293	}
57294	target := &ret
57295	if err := gensupport.DecodeResponse(target, res); err != nil {
57296		return nil, err
57297	}
57298	return ret, nil
57299	// {
57300	//   "description": "Patches the specified BackendService resource with the data included in the request. For more information, see  Backend services overview. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.",
57301	//   "httpMethod": "PATCH",
57302	//   "id": "compute.backendServices.patch",
57303	//   "parameterOrder": [
57304	//     "project",
57305	//     "backendService"
57306	//   ],
57307	//   "parameters": {
57308	//     "backendService": {
57309	//       "description": "Name of the BackendService resource to patch.",
57310	//       "location": "path",
57311	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
57312	//       "required": true,
57313	//       "type": "string"
57314	//     },
57315	//     "project": {
57316	//       "description": "Project ID for this request.",
57317	//       "location": "path",
57318	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57319	//       "required": true,
57320	//       "type": "string"
57321	//     },
57322	//     "requestId": {
57323	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
57324	//       "location": "query",
57325	//       "type": "string"
57326	//     }
57327	//   },
57328	//   "path": "projects/{project}/global/backendServices/{backendService}",
57329	//   "request": {
57330	//     "$ref": "BackendService"
57331	//   },
57332	//   "response": {
57333	//     "$ref": "Operation"
57334	//   },
57335	//   "scopes": [
57336	//     "https://www.googleapis.com/auth/cloud-platform",
57337	//     "https://www.googleapis.com/auth/compute"
57338	//   ]
57339	// }
57340
57341}
57342
57343// method id "compute.backendServices.setSecurityPolicy":
57344
57345type BackendServicesSetSecurityPolicyCall struct {
57346	s                       *Service
57347	project                 string
57348	backendService          string
57349	securitypolicyreference *SecurityPolicyReference
57350	urlParams_              gensupport.URLParams
57351	ctx_                    context.Context
57352	header_                 http.Header
57353}
57354
57355// SetSecurityPolicy: Sets the Google Cloud Armor security policy for
57356// the specified backend service. For more information, see Google Cloud
57357// Armor Overview
57358func (r *BackendServicesService) SetSecurityPolicy(project string, backendService string, securitypolicyreference *SecurityPolicyReference) *BackendServicesSetSecurityPolicyCall {
57359	c := &BackendServicesSetSecurityPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57360	c.project = project
57361	c.backendService = backendService
57362	c.securitypolicyreference = securitypolicyreference
57363	return c
57364}
57365
57366// RequestId sets the optional parameter "requestId": An optional
57367// request ID to identify requests. Specify a unique request ID so that
57368// if you must retry your request, the server will know to ignore the
57369// request if it has already been completed.
57370//
57371// For example, consider a situation where you make an initial request
57372// and the request times out. If you make the request again with the
57373// same request ID, the server can check if original operation with the
57374// same request ID was received, and if so, will ignore the second
57375// request. This prevents clients from accidentally creating duplicate
57376// commitments.
57377//
57378// The request ID must be a valid UUID with the exception that zero UUID
57379// is not supported (00000000-0000-0000-0000-000000000000).
57380func (c *BackendServicesSetSecurityPolicyCall) RequestId(requestId string) *BackendServicesSetSecurityPolicyCall {
57381	c.urlParams_.Set("requestId", requestId)
57382	return c
57383}
57384
57385// Fields allows partial responses to be retrieved. See
57386// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57387// for more information.
57388func (c *BackendServicesSetSecurityPolicyCall) Fields(s ...googleapi.Field) *BackendServicesSetSecurityPolicyCall {
57389	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57390	return c
57391}
57392
57393// Context sets the context to be used in this call's Do method. Any
57394// pending HTTP request will be aborted if the provided context is
57395// canceled.
57396func (c *BackendServicesSetSecurityPolicyCall) Context(ctx context.Context) *BackendServicesSetSecurityPolicyCall {
57397	c.ctx_ = ctx
57398	return c
57399}
57400
57401// Header returns an http.Header that can be modified by the caller to
57402// add HTTP headers to the request.
57403func (c *BackendServicesSetSecurityPolicyCall) Header() http.Header {
57404	if c.header_ == nil {
57405		c.header_ = make(http.Header)
57406	}
57407	return c.header_
57408}
57409
57410func (c *BackendServicesSetSecurityPolicyCall) doRequest(alt string) (*http.Response, error) {
57411	reqHeaders := make(http.Header)
57412	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
57413	for k, v := range c.header_ {
57414		reqHeaders[k] = v
57415	}
57416	reqHeaders.Set("User-Agent", c.s.userAgent())
57417	var body io.Reader = nil
57418	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyreference)
57419	if err != nil {
57420		return nil, err
57421	}
57422	reqHeaders.Set("Content-Type", "application/json")
57423	c.urlParams_.Set("alt", alt)
57424	c.urlParams_.Set("prettyPrint", "false")
57425	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices/{backendService}/setSecurityPolicy")
57426	urls += "?" + c.urlParams_.Encode()
57427	req, err := http.NewRequest("POST", urls, body)
57428	if err != nil {
57429		return nil, err
57430	}
57431	req.Header = reqHeaders
57432	googleapi.Expand(req.URL, map[string]string{
57433		"project":        c.project,
57434		"backendService": c.backendService,
57435	})
57436	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57437}
57438
57439// Do executes the "compute.backendServices.setSecurityPolicy" call.
57440// Exactly one of *Operation or error will be non-nil. Any non-2xx
57441// status code is an error. Response headers are in either
57442// *Operation.ServerResponse.Header or (if a response was returned at
57443// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
57444// to check whether the returned error was because
57445// http.StatusNotModified was returned.
57446func (c *BackendServicesSetSecurityPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
57447	gensupport.SetOptions(c.urlParams_, opts...)
57448	res, err := c.doRequest("json")
57449	if res != nil && res.StatusCode == http.StatusNotModified {
57450		if res.Body != nil {
57451			res.Body.Close()
57452		}
57453		return nil, &googleapi.Error{
57454			Code:   res.StatusCode,
57455			Header: res.Header,
57456		}
57457	}
57458	if err != nil {
57459		return nil, err
57460	}
57461	defer googleapi.CloseBody(res)
57462	if err := googleapi.CheckResponse(res); err != nil {
57463		return nil, err
57464	}
57465	ret := &Operation{
57466		ServerResponse: googleapi.ServerResponse{
57467			Header:         res.Header,
57468			HTTPStatusCode: res.StatusCode,
57469		},
57470	}
57471	target := &ret
57472	if err := gensupport.DecodeResponse(target, res); err != nil {
57473		return nil, err
57474	}
57475	return ret, nil
57476	// {
57477	//   "description": "Sets the Google Cloud Armor security policy for the specified backend service. For more information, see Google Cloud Armor Overview",
57478	//   "httpMethod": "POST",
57479	//   "id": "compute.backendServices.setSecurityPolicy",
57480	//   "parameterOrder": [
57481	//     "project",
57482	//     "backendService"
57483	//   ],
57484	//   "parameters": {
57485	//     "backendService": {
57486	//       "description": "Name of the BackendService resource to which the security policy should be set. The name should conform to RFC1035.",
57487	//       "location": "path",
57488	//       "required": true,
57489	//       "type": "string"
57490	//     },
57491	//     "project": {
57492	//       "description": "Project ID for this request.",
57493	//       "location": "path",
57494	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57495	//       "required": true,
57496	//       "type": "string"
57497	//     },
57498	//     "requestId": {
57499	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
57500	//       "location": "query",
57501	//       "type": "string"
57502	//     }
57503	//   },
57504	//   "path": "projects/{project}/global/backendServices/{backendService}/setSecurityPolicy",
57505	//   "request": {
57506	//     "$ref": "SecurityPolicyReference"
57507	//   },
57508	//   "response": {
57509	//     "$ref": "Operation"
57510	//   },
57511	//   "scopes": [
57512	//     "https://www.googleapis.com/auth/cloud-platform",
57513	//     "https://www.googleapis.com/auth/compute"
57514	//   ]
57515	// }
57516
57517}
57518
57519// method id "compute.backendServices.testIamPermissions":
57520
57521type BackendServicesTestIamPermissionsCall struct {
57522	s                      *Service
57523	project                string
57524	resource               string
57525	testpermissionsrequest *TestPermissionsRequest
57526	urlParams_             gensupport.URLParams
57527	ctx_                   context.Context
57528	header_                http.Header
57529}
57530
57531// TestIamPermissions: Returns permissions that a caller has on the
57532// specified resource.
57533func (r *BackendServicesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *BackendServicesTestIamPermissionsCall {
57534	c := &BackendServicesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57535	c.project = project
57536	c.resource = resource
57537	c.testpermissionsrequest = testpermissionsrequest
57538	return c
57539}
57540
57541// Fields allows partial responses to be retrieved. See
57542// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57543// for more information.
57544func (c *BackendServicesTestIamPermissionsCall) Fields(s ...googleapi.Field) *BackendServicesTestIamPermissionsCall {
57545	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57546	return c
57547}
57548
57549// Context sets the context to be used in this call's Do method. Any
57550// pending HTTP request will be aborted if the provided context is
57551// canceled.
57552func (c *BackendServicesTestIamPermissionsCall) Context(ctx context.Context) *BackendServicesTestIamPermissionsCall {
57553	c.ctx_ = ctx
57554	return c
57555}
57556
57557// Header returns an http.Header that can be modified by the caller to
57558// add HTTP headers to the request.
57559func (c *BackendServicesTestIamPermissionsCall) Header() http.Header {
57560	if c.header_ == nil {
57561		c.header_ = make(http.Header)
57562	}
57563	return c.header_
57564}
57565
57566func (c *BackendServicesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
57567	reqHeaders := make(http.Header)
57568	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
57569	for k, v := range c.header_ {
57570		reqHeaders[k] = v
57571	}
57572	reqHeaders.Set("User-Agent", c.s.userAgent())
57573	var body io.Reader = nil
57574	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
57575	if err != nil {
57576		return nil, err
57577	}
57578	reqHeaders.Set("Content-Type", "application/json")
57579	c.urlParams_.Set("alt", alt)
57580	c.urlParams_.Set("prettyPrint", "false")
57581	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices/{resource}/testIamPermissions")
57582	urls += "?" + c.urlParams_.Encode()
57583	req, err := http.NewRequest("POST", urls, body)
57584	if err != nil {
57585		return nil, err
57586	}
57587	req.Header = reqHeaders
57588	googleapi.Expand(req.URL, map[string]string{
57589		"project":  c.project,
57590		"resource": c.resource,
57591	})
57592	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57593}
57594
57595// Do executes the "compute.backendServices.testIamPermissions" call.
57596// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
57597// non-2xx status code is an error. Response headers are in either
57598// *TestPermissionsResponse.ServerResponse.Header or (if a response was
57599// returned at all) in error.(*googleapi.Error).Header. Use
57600// googleapi.IsNotModified to check whether the returned error was
57601// because http.StatusNotModified was returned.
57602func (c *BackendServicesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
57603	gensupport.SetOptions(c.urlParams_, opts...)
57604	res, err := c.doRequest("json")
57605	if res != nil && res.StatusCode == http.StatusNotModified {
57606		if res.Body != nil {
57607			res.Body.Close()
57608		}
57609		return nil, &googleapi.Error{
57610			Code:   res.StatusCode,
57611			Header: res.Header,
57612		}
57613	}
57614	if err != nil {
57615		return nil, err
57616	}
57617	defer googleapi.CloseBody(res)
57618	if err := googleapi.CheckResponse(res); err != nil {
57619		return nil, err
57620	}
57621	ret := &TestPermissionsResponse{
57622		ServerResponse: googleapi.ServerResponse{
57623			Header:         res.Header,
57624			HTTPStatusCode: res.StatusCode,
57625		},
57626	}
57627	target := &ret
57628	if err := gensupport.DecodeResponse(target, res); err != nil {
57629		return nil, err
57630	}
57631	return ret, nil
57632	// {
57633	//   "description": "Returns permissions that a caller has on the specified resource.",
57634	//   "httpMethod": "POST",
57635	//   "id": "compute.backendServices.testIamPermissions",
57636	//   "parameterOrder": [
57637	//     "project",
57638	//     "resource"
57639	//   ],
57640	//   "parameters": {
57641	//     "project": {
57642	//       "description": "Project ID for this request.",
57643	//       "location": "path",
57644	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57645	//       "required": true,
57646	//       "type": "string"
57647	//     },
57648	//     "resource": {
57649	//       "description": "Name or id of the resource for this request.",
57650	//       "location": "path",
57651	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
57652	//       "required": true,
57653	//       "type": "string"
57654	//     }
57655	//   },
57656	//   "path": "projects/{project}/global/backendServices/{resource}/testIamPermissions",
57657	//   "request": {
57658	//     "$ref": "TestPermissionsRequest"
57659	//   },
57660	//   "response": {
57661	//     "$ref": "TestPermissionsResponse"
57662	//   },
57663	//   "scopes": [
57664	//     "https://www.googleapis.com/auth/cloud-platform",
57665	//     "https://www.googleapis.com/auth/compute",
57666	//     "https://www.googleapis.com/auth/compute.readonly"
57667	//   ]
57668	// }
57669
57670}
57671
57672// method id "compute.backendServices.update":
57673
57674type BackendServicesUpdateCall struct {
57675	s              *Service
57676	project        string
57677	backendService string
57678	backendservice *BackendService
57679	urlParams_     gensupport.URLParams
57680	ctx_           context.Context
57681	header_        http.Header
57682}
57683
57684// Update: Updates the specified BackendService resource with the data
57685// included in the request. For more information, see Backend services
57686// overview.
57687// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/update
57688func (r *BackendServicesService) Update(project string, backendService string, backendservice *BackendService) *BackendServicesUpdateCall {
57689	c := &BackendServicesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57690	c.project = project
57691	c.backendService = backendService
57692	c.backendservice = backendservice
57693	return c
57694}
57695
57696// RequestId sets the optional parameter "requestId": An optional
57697// request ID to identify requests. Specify a unique request ID so that
57698// if you must retry your request, the server will know to ignore the
57699// request if it has already been completed.
57700//
57701// For example, consider a situation where you make an initial request
57702// and the request times out. If you make the request again with the
57703// same request ID, the server can check if original operation with the
57704// same request ID was received, and if so, will ignore the second
57705// request. This prevents clients from accidentally creating duplicate
57706// commitments.
57707//
57708// The request ID must be a valid UUID with the exception that zero UUID
57709// is not supported (00000000-0000-0000-0000-000000000000).
57710func (c *BackendServicesUpdateCall) RequestId(requestId string) *BackendServicesUpdateCall {
57711	c.urlParams_.Set("requestId", requestId)
57712	return c
57713}
57714
57715// Fields allows partial responses to be retrieved. See
57716// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57717// for more information.
57718func (c *BackendServicesUpdateCall) Fields(s ...googleapi.Field) *BackendServicesUpdateCall {
57719	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57720	return c
57721}
57722
57723// Context sets the context to be used in this call's Do method. Any
57724// pending HTTP request will be aborted if the provided context is
57725// canceled.
57726func (c *BackendServicesUpdateCall) Context(ctx context.Context) *BackendServicesUpdateCall {
57727	c.ctx_ = ctx
57728	return c
57729}
57730
57731// Header returns an http.Header that can be modified by the caller to
57732// add HTTP headers to the request.
57733func (c *BackendServicesUpdateCall) Header() http.Header {
57734	if c.header_ == nil {
57735		c.header_ = make(http.Header)
57736	}
57737	return c.header_
57738}
57739
57740func (c *BackendServicesUpdateCall) doRequest(alt string) (*http.Response, error) {
57741	reqHeaders := make(http.Header)
57742	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
57743	for k, v := range c.header_ {
57744		reqHeaders[k] = v
57745	}
57746	reqHeaders.Set("User-Agent", c.s.userAgent())
57747	var body io.Reader = nil
57748	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
57749	if err != nil {
57750		return nil, err
57751	}
57752	reqHeaders.Set("Content-Type", "application/json")
57753	c.urlParams_.Set("alt", alt)
57754	c.urlParams_.Set("prettyPrint", "false")
57755	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices/{backendService}")
57756	urls += "?" + c.urlParams_.Encode()
57757	req, err := http.NewRequest("PUT", urls, body)
57758	if err != nil {
57759		return nil, err
57760	}
57761	req.Header = reqHeaders
57762	googleapi.Expand(req.URL, map[string]string{
57763		"project":        c.project,
57764		"backendService": c.backendService,
57765	})
57766	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57767}
57768
57769// Do executes the "compute.backendServices.update" call.
57770// Exactly one of *Operation or error will be non-nil. Any non-2xx
57771// status code is an error. Response headers are in either
57772// *Operation.ServerResponse.Header or (if a response was returned at
57773// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
57774// to check whether the returned error was because
57775// http.StatusNotModified was returned.
57776func (c *BackendServicesUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
57777	gensupport.SetOptions(c.urlParams_, opts...)
57778	res, err := c.doRequest("json")
57779	if res != nil && res.StatusCode == http.StatusNotModified {
57780		if res.Body != nil {
57781			res.Body.Close()
57782		}
57783		return nil, &googleapi.Error{
57784			Code:   res.StatusCode,
57785			Header: res.Header,
57786		}
57787	}
57788	if err != nil {
57789		return nil, err
57790	}
57791	defer googleapi.CloseBody(res)
57792	if err := googleapi.CheckResponse(res); err != nil {
57793		return nil, err
57794	}
57795	ret := &Operation{
57796		ServerResponse: googleapi.ServerResponse{
57797			Header:         res.Header,
57798			HTTPStatusCode: res.StatusCode,
57799		},
57800	}
57801	target := &ret
57802	if err := gensupport.DecodeResponse(target, res); err != nil {
57803		return nil, err
57804	}
57805	return ret, nil
57806	// {
57807	//   "description": "Updates the specified BackendService resource with the data included in the request. For more information, see Backend services overview.",
57808	//   "httpMethod": "PUT",
57809	//   "id": "compute.backendServices.update",
57810	//   "parameterOrder": [
57811	//     "project",
57812	//     "backendService"
57813	//   ],
57814	//   "parameters": {
57815	//     "backendService": {
57816	//       "description": "Name of the BackendService resource to update.",
57817	//       "location": "path",
57818	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
57819	//       "required": true,
57820	//       "type": "string"
57821	//     },
57822	//     "project": {
57823	//       "description": "Project ID for this request.",
57824	//       "location": "path",
57825	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57826	//       "required": true,
57827	//       "type": "string"
57828	//     },
57829	//     "requestId": {
57830	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
57831	//       "location": "query",
57832	//       "type": "string"
57833	//     }
57834	//   },
57835	//   "path": "projects/{project}/global/backendServices/{backendService}",
57836	//   "request": {
57837	//     "$ref": "BackendService"
57838	//   },
57839	//   "response": {
57840	//     "$ref": "Operation"
57841	//   },
57842	//   "scopes": [
57843	//     "https://www.googleapis.com/auth/cloud-platform",
57844	//     "https://www.googleapis.com/auth/compute"
57845	//   ]
57846	// }
57847
57848}
57849
57850// method id "compute.diskTypes.aggregatedList":
57851
57852type DiskTypesAggregatedListCall struct {
57853	s            *Service
57854	project      string
57855	urlParams_   gensupport.URLParams
57856	ifNoneMatch_ string
57857	ctx_         context.Context
57858	header_      http.Header
57859}
57860
57861// AggregatedList: Retrieves an aggregated list of disk types.
57862// For details, see https://cloud.google.com/compute/docs/reference/latest/diskTypes/aggregatedList
57863func (r *DiskTypesService) AggregatedList(project string) *DiskTypesAggregatedListCall {
57864	c := &DiskTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57865	c.project = project
57866	return c
57867}
57868
57869// Filter sets the optional parameter "filter": A filter expression that
57870// filters resources listed in the response. The expression must specify
57871// the field name, a comparison operator, and the value that you want to
57872// use for filtering. The value must be a string, a number, or a
57873// boolean. The comparison operator must be either `=`, `!=`, `>`, or
57874// `<`.
57875//
57876// For example, if you are filtering Compute Engine instances, you can
57877// exclude instances named `example-instance` by specifying `name !=
57878// example-instance`.
57879//
57880// You can also filter nested fields. For example, you could specify
57881// `scheduling.automaticRestart = false` to include instances only if
57882// they are not scheduled for automatic restarts. You can use filtering
57883// on nested fields to filter based on resource labels.
57884//
57885// To filter on multiple expressions, provide each separate expression
57886// within parentheses. For example: ``` (scheduling.automaticRestart =
57887// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
57888// is an `AND` expression. However, you can include `AND` and `OR`
57889// expressions explicitly. For example: ``` (cpuPlatform = "Intel
57890// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
57891// (scheduling.automaticRestart = true) ```
57892func (c *DiskTypesAggregatedListCall) Filter(filter string) *DiskTypesAggregatedListCall {
57893	c.urlParams_.Set("filter", filter)
57894	return c
57895}
57896
57897// IncludeAllScopes sets the optional parameter "includeAllScopes":
57898// Indicates whether every visible scope for each scope type (zone,
57899// region, global) should be included in the response. For new resource
57900// types added after this field, the flag has no effect as new resource
57901// types will always include every visible scope for each scope type in
57902// response. For resource types which predate this field, if this flag
57903// is omitted or false, only scopes of the scope types where the
57904// resource type is expected to be found will be included.
57905func (c *DiskTypesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *DiskTypesAggregatedListCall {
57906	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
57907	return c
57908}
57909
57910// MaxResults sets the optional parameter "maxResults": The maximum
57911// number of results per page that should be returned. If the number of
57912// available results is larger than `maxResults`, Compute Engine returns
57913// a `nextPageToken` that can be used to get the next page of results in
57914// subsequent list requests. Acceptable values are `0` to `500`,
57915// inclusive. (Default: `500`)
57916func (c *DiskTypesAggregatedListCall) MaxResults(maxResults int64) *DiskTypesAggregatedListCall {
57917	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
57918	return c
57919}
57920
57921// OrderBy sets the optional parameter "orderBy": Sorts list results by
57922// a certain order. By default, results are returned in alphanumerical
57923// order based on the resource name.
57924//
57925// You can also sort results in descending order based on the creation
57926// timestamp using `orderBy="creationTimestamp desc". This sorts
57927// results based on the `creationTimestamp` field in reverse
57928// chronological order (newest result first). Use this to sort resources
57929// like operations so that the newest operation is returned
57930// first.
57931//
57932// Currently, only sorting by `name` or `creationTimestamp desc` is
57933// supported.
57934func (c *DiskTypesAggregatedListCall) OrderBy(orderBy string) *DiskTypesAggregatedListCall {
57935	c.urlParams_.Set("orderBy", orderBy)
57936	return c
57937}
57938
57939// PageToken sets the optional parameter "pageToken": Specifies a page
57940// token to use. Set `pageToken` to the `nextPageToken` returned by a
57941// previous list request to get the next page of results.
57942func (c *DiskTypesAggregatedListCall) PageToken(pageToken string) *DiskTypesAggregatedListCall {
57943	c.urlParams_.Set("pageToken", pageToken)
57944	return c
57945}
57946
57947// ReturnPartialSuccess sets the optional parameter
57948// "returnPartialSuccess": Opt-in for partial success behavior which
57949// provides partial results in case of failure. The default value is
57950// false.
57951func (c *DiskTypesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *DiskTypesAggregatedListCall {
57952	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
57953	return c
57954}
57955
57956// Fields allows partial responses to be retrieved. See
57957// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57958// for more information.
57959func (c *DiskTypesAggregatedListCall) Fields(s ...googleapi.Field) *DiskTypesAggregatedListCall {
57960	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57961	return c
57962}
57963
57964// IfNoneMatch sets the optional parameter which makes the operation
57965// fail if the object's ETag matches the given value. This is useful for
57966// getting updates only after the object has changed since the last
57967// request. Use googleapi.IsNotModified to check whether the response
57968// error from Do is the result of In-None-Match.
57969func (c *DiskTypesAggregatedListCall) IfNoneMatch(entityTag string) *DiskTypesAggregatedListCall {
57970	c.ifNoneMatch_ = entityTag
57971	return c
57972}
57973
57974// Context sets the context to be used in this call's Do method. Any
57975// pending HTTP request will be aborted if the provided context is
57976// canceled.
57977func (c *DiskTypesAggregatedListCall) Context(ctx context.Context) *DiskTypesAggregatedListCall {
57978	c.ctx_ = ctx
57979	return c
57980}
57981
57982// Header returns an http.Header that can be modified by the caller to
57983// add HTTP headers to the request.
57984func (c *DiskTypesAggregatedListCall) Header() http.Header {
57985	if c.header_ == nil {
57986		c.header_ = make(http.Header)
57987	}
57988	return c.header_
57989}
57990
57991func (c *DiskTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
57992	reqHeaders := make(http.Header)
57993	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
57994	for k, v := range c.header_ {
57995		reqHeaders[k] = v
57996	}
57997	reqHeaders.Set("User-Agent", c.s.userAgent())
57998	if c.ifNoneMatch_ != "" {
57999		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
58000	}
58001	var body io.Reader = nil
58002	c.urlParams_.Set("alt", alt)
58003	c.urlParams_.Set("prettyPrint", "false")
58004	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/diskTypes")
58005	urls += "?" + c.urlParams_.Encode()
58006	req, err := http.NewRequest("GET", urls, body)
58007	if err != nil {
58008		return nil, err
58009	}
58010	req.Header = reqHeaders
58011	googleapi.Expand(req.URL, map[string]string{
58012		"project": c.project,
58013	})
58014	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58015}
58016
58017// Do executes the "compute.diskTypes.aggregatedList" call.
58018// Exactly one of *DiskTypeAggregatedList or error will be non-nil. Any
58019// non-2xx status code is an error. Response headers are in either
58020// *DiskTypeAggregatedList.ServerResponse.Header or (if a response was
58021// returned at all) in error.(*googleapi.Error).Header. Use
58022// googleapi.IsNotModified to check whether the returned error was
58023// because http.StatusNotModified was returned.
58024func (c *DiskTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*DiskTypeAggregatedList, error) {
58025	gensupport.SetOptions(c.urlParams_, opts...)
58026	res, err := c.doRequest("json")
58027	if res != nil && res.StatusCode == http.StatusNotModified {
58028		if res.Body != nil {
58029			res.Body.Close()
58030		}
58031		return nil, &googleapi.Error{
58032			Code:   res.StatusCode,
58033			Header: res.Header,
58034		}
58035	}
58036	if err != nil {
58037		return nil, err
58038	}
58039	defer googleapi.CloseBody(res)
58040	if err := googleapi.CheckResponse(res); err != nil {
58041		return nil, err
58042	}
58043	ret := &DiskTypeAggregatedList{
58044		ServerResponse: googleapi.ServerResponse{
58045			Header:         res.Header,
58046			HTTPStatusCode: res.StatusCode,
58047		},
58048	}
58049	target := &ret
58050	if err := gensupport.DecodeResponse(target, res); err != nil {
58051		return nil, err
58052	}
58053	return ret, nil
58054	// {
58055	//   "description": "Retrieves an aggregated list of disk types.",
58056	//   "httpMethod": "GET",
58057	//   "id": "compute.diskTypes.aggregatedList",
58058	//   "parameterOrder": [
58059	//     "project"
58060	//   ],
58061	//   "parameters": {
58062	//     "filter": {
58063	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
58064	//       "location": "query",
58065	//       "type": "string"
58066	//     },
58067	//     "includeAllScopes": {
58068	//       "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.",
58069	//       "location": "query",
58070	//       "type": "boolean"
58071	//     },
58072	//     "maxResults": {
58073	//       "default": "500",
58074	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
58075	//       "format": "uint32",
58076	//       "location": "query",
58077	//       "minimum": "0",
58078	//       "type": "integer"
58079	//     },
58080	//     "orderBy": {
58081	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
58082	//       "location": "query",
58083	//       "type": "string"
58084	//     },
58085	//     "pageToken": {
58086	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
58087	//       "location": "query",
58088	//       "type": "string"
58089	//     },
58090	//     "project": {
58091	//       "description": "Project ID for this request.",
58092	//       "location": "path",
58093	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58094	//       "required": true,
58095	//       "type": "string"
58096	//     },
58097	//     "returnPartialSuccess": {
58098	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
58099	//       "location": "query",
58100	//       "type": "boolean"
58101	//     }
58102	//   },
58103	//   "path": "projects/{project}/aggregated/diskTypes",
58104	//   "response": {
58105	//     "$ref": "DiskTypeAggregatedList"
58106	//   },
58107	//   "scopes": [
58108	//     "https://www.googleapis.com/auth/cloud-platform",
58109	//     "https://www.googleapis.com/auth/compute",
58110	//     "https://www.googleapis.com/auth/compute.readonly"
58111	//   ]
58112	// }
58113
58114}
58115
58116// Pages invokes f for each page of results.
58117// A non-nil error returned from f will halt the iteration.
58118// The provided context supersedes any context provided to the Context method.
58119func (c *DiskTypesAggregatedListCall) Pages(ctx context.Context, f func(*DiskTypeAggregatedList) error) error {
58120	c.ctx_ = ctx
58121	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
58122	for {
58123		x, err := c.Do()
58124		if err != nil {
58125			return err
58126		}
58127		if err := f(x); err != nil {
58128			return err
58129		}
58130		if x.NextPageToken == "" {
58131			return nil
58132		}
58133		c.PageToken(x.NextPageToken)
58134	}
58135}
58136
58137// method id "compute.diskTypes.get":
58138
58139type DiskTypesGetCall struct {
58140	s            *Service
58141	project      string
58142	zone         string
58143	diskType     string
58144	urlParams_   gensupport.URLParams
58145	ifNoneMatch_ string
58146	ctx_         context.Context
58147	header_      http.Header
58148}
58149
58150// Get: Returns the specified disk type. Gets a list of available disk
58151// types by making a list() request.
58152// For details, see https://cloud.google.com/compute/docs/reference/latest/diskTypes/get
58153func (r *DiskTypesService) Get(project string, zone string, diskType string) *DiskTypesGetCall {
58154	c := &DiskTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58155	c.project = project
58156	c.zone = zone
58157	c.diskType = diskType
58158	return c
58159}
58160
58161// Fields allows partial responses to be retrieved. See
58162// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58163// for more information.
58164func (c *DiskTypesGetCall) Fields(s ...googleapi.Field) *DiskTypesGetCall {
58165	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58166	return c
58167}
58168
58169// IfNoneMatch sets the optional parameter which makes the operation
58170// fail if the object's ETag matches the given value. This is useful for
58171// getting updates only after the object has changed since the last
58172// request. Use googleapi.IsNotModified to check whether the response
58173// error from Do is the result of In-None-Match.
58174func (c *DiskTypesGetCall) IfNoneMatch(entityTag string) *DiskTypesGetCall {
58175	c.ifNoneMatch_ = entityTag
58176	return c
58177}
58178
58179// Context sets the context to be used in this call's Do method. Any
58180// pending HTTP request will be aborted if the provided context is
58181// canceled.
58182func (c *DiskTypesGetCall) Context(ctx context.Context) *DiskTypesGetCall {
58183	c.ctx_ = ctx
58184	return c
58185}
58186
58187// Header returns an http.Header that can be modified by the caller to
58188// add HTTP headers to the request.
58189func (c *DiskTypesGetCall) Header() http.Header {
58190	if c.header_ == nil {
58191		c.header_ = make(http.Header)
58192	}
58193	return c.header_
58194}
58195
58196func (c *DiskTypesGetCall) doRequest(alt string) (*http.Response, error) {
58197	reqHeaders := make(http.Header)
58198	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
58199	for k, v := range c.header_ {
58200		reqHeaders[k] = v
58201	}
58202	reqHeaders.Set("User-Agent", c.s.userAgent())
58203	if c.ifNoneMatch_ != "" {
58204		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
58205	}
58206	var body io.Reader = nil
58207	c.urlParams_.Set("alt", alt)
58208	c.urlParams_.Set("prettyPrint", "false")
58209	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/diskTypes/{diskType}")
58210	urls += "?" + c.urlParams_.Encode()
58211	req, err := http.NewRequest("GET", urls, body)
58212	if err != nil {
58213		return nil, err
58214	}
58215	req.Header = reqHeaders
58216	googleapi.Expand(req.URL, map[string]string{
58217		"project":  c.project,
58218		"zone":     c.zone,
58219		"diskType": c.diskType,
58220	})
58221	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58222}
58223
58224// Do executes the "compute.diskTypes.get" call.
58225// Exactly one of *DiskType or error will be non-nil. Any non-2xx status
58226// code is an error. Response headers are in either
58227// *DiskType.ServerResponse.Header or (if a response was returned at
58228// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
58229// to check whether the returned error was because
58230// http.StatusNotModified was returned.
58231func (c *DiskTypesGetCall) Do(opts ...googleapi.CallOption) (*DiskType, error) {
58232	gensupport.SetOptions(c.urlParams_, opts...)
58233	res, err := c.doRequest("json")
58234	if res != nil && res.StatusCode == http.StatusNotModified {
58235		if res.Body != nil {
58236			res.Body.Close()
58237		}
58238		return nil, &googleapi.Error{
58239			Code:   res.StatusCode,
58240			Header: res.Header,
58241		}
58242	}
58243	if err != nil {
58244		return nil, err
58245	}
58246	defer googleapi.CloseBody(res)
58247	if err := googleapi.CheckResponse(res); err != nil {
58248		return nil, err
58249	}
58250	ret := &DiskType{
58251		ServerResponse: googleapi.ServerResponse{
58252			Header:         res.Header,
58253			HTTPStatusCode: res.StatusCode,
58254		},
58255	}
58256	target := &ret
58257	if err := gensupport.DecodeResponse(target, res); err != nil {
58258		return nil, err
58259	}
58260	return ret, nil
58261	// {
58262	//   "description": "Returns the specified disk type. Gets a list of available disk types by making a list() request.",
58263	//   "httpMethod": "GET",
58264	//   "id": "compute.diskTypes.get",
58265	//   "parameterOrder": [
58266	//     "project",
58267	//     "zone",
58268	//     "diskType"
58269	//   ],
58270	//   "parameters": {
58271	//     "diskType": {
58272	//       "description": "Name of the disk type to return.",
58273	//       "location": "path",
58274	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
58275	//       "required": true,
58276	//       "type": "string"
58277	//     },
58278	//     "project": {
58279	//       "description": "Project ID for this request.",
58280	//       "location": "path",
58281	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58282	//       "required": true,
58283	//       "type": "string"
58284	//     },
58285	//     "zone": {
58286	//       "description": "The name of the zone for this request.",
58287	//       "location": "path",
58288	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
58289	//       "required": true,
58290	//       "type": "string"
58291	//     }
58292	//   },
58293	//   "path": "projects/{project}/zones/{zone}/diskTypes/{diskType}",
58294	//   "response": {
58295	//     "$ref": "DiskType"
58296	//   },
58297	//   "scopes": [
58298	//     "https://www.googleapis.com/auth/cloud-platform",
58299	//     "https://www.googleapis.com/auth/compute",
58300	//     "https://www.googleapis.com/auth/compute.readonly"
58301	//   ]
58302	// }
58303
58304}
58305
58306// method id "compute.diskTypes.list":
58307
58308type DiskTypesListCall struct {
58309	s            *Service
58310	project      string
58311	zone         string
58312	urlParams_   gensupport.URLParams
58313	ifNoneMatch_ string
58314	ctx_         context.Context
58315	header_      http.Header
58316}
58317
58318// List: Retrieves a list of disk types available to the specified
58319// project.
58320// For details, see https://cloud.google.com/compute/docs/reference/latest/diskTypes/list
58321func (r *DiskTypesService) List(project string, zone string) *DiskTypesListCall {
58322	c := &DiskTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58323	c.project = project
58324	c.zone = zone
58325	return c
58326}
58327
58328// Filter sets the optional parameter "filter": A filter expression that
58329// filters resources listed in the response. The expression must specify
58330// the field name, a comparison operator, and the value that you want to
58331// use for filtering. The value must be a string, a number, or a
58332// boolean. The comparison operator must be either `=`, `!=`, `>`, or
58333// `<`.
58334//
58335// For example, if you are filtering Compute Engine instances, you can
58336// exclude instances named `example-instance` by specifying `name !=
58337// example-instance`.
58338//
58339// You can also filter nested fields. For example, you could specify
58340// `scheduling.automaticRestart = false` to include instances only if
58341// they are not scheduled for automatic restarts. You can use filtering
58342// on nested fields to filter based on resource labels.
58343//
58344// To filter on multiple expressions, provide each separate expression
58345// within parentheses. For example: ``` (scheduling.automaticRestart =
58346// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
58347// is an `AND` expression. However, you can include `AND` and `OR`
58348// expressions explicitly. For example: ``` (cpuPlatform = "Intel
58349// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
58350// (scheduling.automaticRestart = true) ```
58351func (c *DiskTypesListCall) Filter(filter string) *DiskTypesListCall {
58352	c.urlParams_.Set("filter", filter)
58353	return c
58354}
58355
58356// MaxResults sets the optional parameter "maxResults": The maximum
58357// number of results per page that should be returned. If the number of
58358// available results is larger than `maxResults`, Compute Engine returns
58359// a `nextPageToken` that can be used to get the next page of results in
58360// subsequent list requests. Acceptable values are `0` to `500`,
58361// inclusive. (Default: `500`)
58362func (c *DiskTypesListCall) MaxResults(maxResults int64) *DiskTypesListCall {
58363	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
58364	return c
58365}
58366
58367// OrderBy sets the optional parameter "orderBy": Sorts list results by
58368// a certain order. By default, results are returned in alphanumerical
58369// order based on the resource name.
58370//
58371// You can also sort results in descending order based on the creation
58372// timestamp using `orderBy="creationTimestamp desc". This sorts
58373// results based on the `creationTimestamp` field in reverse
58374// chronological order (newest result first). Use this to sort resources
58375// like operations so that the newest operation is returned
58376// first.
58377//
58378// Currently, only sorting by `name` or `creationTimestamp desc` is
58379// supported.
58380func (c *DiskTypesListCall) OrderBy(orderBy string) *DiskTypesListCall {
58381	c.urlParams_.Set("orderBy", orderBy)
58382	return c
58383}
58384
58385// PageToken sets the optional parameter "pageToken": Specifies a page
58386// token to use. Set `pageToken` to the `nextPageToken` returned by a
58387// previous list request to get the next page of results.
58388func (c *DiskTypesListCall) PageToken(pageToken string) *DiskTypesListCall {
58389	c.urlParams_.Set("pageToken", pageToken)
58390	return c
58391}
58392
58393// ReturnPartialSuccess sets the optional parameter
58394// "returnPartialSuccess": Opt-in for partial success behavior which
58395// provides partial results in case of failure. The default value is
58396// false.
58397func (c *DiskTypesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *DiskTypesListCall {
58398	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
58399	return c
58400}
58401
58402// Fields allows partial responses to be retrieved. See
58403// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58404// for more information.
58405func (c *DiskTypesListCall) Fields(s ...googleapi.Field) *DiskTypesListCall {
58406	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58407	return c
58408}
58409
58410// IfNoneMatch sets the optional parameter which makes the operation
58411// fail if the object's ETag matches the given value. This is useful for
58412// getting updates only after the object has changed since the last
58413// request. Use googleapi.IsNotModified to check whether the response
58414// error from Do is the result of In-None-Match.
58415func (c *DiskTypesListCall) IfNoneMatch(entityTag string) *DiskTypesListCall {
58416	c.ifNoneMatch_ = entityTag
58417	return c
58418}
58419
58420// Context sets the context to be used in this call's Do method. Any
58421// pending HTTP request will be aborted if the provided context is
58422// canceled.
58423func (c *DiskTypesListCall) Context(ctx context.Context) *DiskTypesListCall {
58424	c.ctx_ = ctx
58425	return c
58426}
58427
58428// Header returns an http.Header that can be modified by the caller to
58429// add HTTP headers to the request.
58430func (c *DiskTypesListCall) Header() http.Header {
58431	if c.header_ == nil {
58432		c.header_ = make(http.Header)
58433	}
58434	return c.header_
58435}
58436
58437func (c *DiskTypesListCall) doRequest(alt string) (*http.Response, error) {
58438	reqHeaders := make(http.Header)
58439	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
58440	for k, v := range c.header_ {
58441		reqHeaders[k] = v
58442	}
58443	reqHeaders.Set("User-Agent", c.s.userAgent())
58444	if c.ifNoneMatch_ != "" {
58445		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
58446	}
58447	var body io.Reader = nil
58448	c.urlParams_.Set("alt", alt)
58449	c.urlParams_.Set("prettyPrint", "false")
58450	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/diskTypes")
58451	urls += "?" + c.urlParams_.Encode()
58452	req, err := http.NewRequest("GET", urls, body)
58453	if err != nil {
58454		return nil, err
58455	}
58456	req.Header = reqHeaders
58457	googleapi.Expand(req.URL, map[string]string{
58458		"project": c.project,
58459		"zone":    c.zone,
58460	})
58461	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58462}
58463
58464// Do executes the "compute.diskTypes.list" call.
58465// Exactly one of *DiskTypeList or error will be non-nil. Any non-2xx
58466// status code is an error. Response headers are in either
58467// *DiskTypeList.ServerResponse.Header or (if a response was returned at
58468// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
58469// to check whether the returned error was because
58470// http.StatusNotModified was returned.
58471func (c *DiskTypesListCall) Do(opts ...googleapi.CallOption) (*DiskTypeList, error) {
58472	gensupport.SetOptions(c.urlParams_, opts...)
58473	res, err := c.doRequest("json")
58474	if res != nil && res.StatusCode == http.StatusNotModified {
58475		if res.Body != nil {
58476			res.Body.Close()
58477		}
58478		return nil, &googleapi.Error{
58479			Code:   res.StatusCode,
58480			Header: res.Header,
58481		}
58482	}
58483	if err != nil {
58484		return nil, err
58485	}
58486	defer googleapi.CloseBody(res)
58487	if err := googleapi.CheckResponse(res); err != nil {
58488		return nil, err
58489	}
58490	ret := &DiskTypeList{
58491		ServerResponse: googleapi.ServerResponse{
58492			Header:         res.Header,
58493			HTTPStatusCode: res.StatusCode,
58494		},
58495	}
58496	target := &ret
58497	if err := gensupport.DecodeResponse(target, res); err != nil {
58498		return nil, err
58499	}
58500	return ret, nil
58501	// {
58502	//   "description": "Retrieves a list of disk types available to the specified project.",
58503	//   "httpMethod": "GET",
58504	//   "id": "compute.diskTypes.list",
58505	//   "parameterOrder": [
58506	//     "project",
58507	//     "zone"
58508	//   ],
58509	//   "parameters": {
58510	//     "filter": {
58511	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
58512	//       "location": "query",
58513	//       "type": "string"
58514	//     },
58515	//     "maxResults": {
58516	//       "default": "500",
58517	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
58518	//       "format": "uint32",
58519	//       "location": "query",
58520	//       "minimum": "0",
58521	//       "type": "integer"
58522	//     },
58523	//     "orderBy": {
58524	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
58525	//       "location": "query",
58526	//       "type": "string"
58527	//     },
58528	//     "pageToken": {
58529	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
58530	//       "location": "query",
58531	//       "type": "string"
58532	//     },
58533	//     "project": {
58534	//       "description": "Project ID for this request.",
58535	//       "location": "path",
58536	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58537	//       "required": true,
58538	//       "type": "string"
58539	//     },
58540	//     "returnPartialSuccess": {
58541	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
58542	//       "location": "query",
58543	//       "type": "boolean"
58544	//     },
58545	//     "zone": {
58546	//       "description": "The name of the zone for this request.",
58547	//       "location": "path",
58548	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
58549	//       "required": true,
58550	//       "type": "string"
58551	//     }
58552	//   },
58553	//   "path": "projects/{project}/zones/{zone}/diskTypes",
58554	//   "response": {
58555	//     "$ref": "DiskTypeList"
58556	//   },
58557	//   "scopes": [
58558	//     "https://www.googleapis.com/auth/cloud-platform",
58559	//     "https://www.googleapis.com/auth/compute",
58560	//     "https://www.googleapis.com/auth/compute.readonly"
58561	//   ]
58562	// }
58563
58564}
58565
58566// Pages invokes f for each page of results.
58567// A non-nil error returned from f will halt the iteration.
58568// The provided context supersedes any context provided to the Context method.
58569func (c *DiskTypesListCall) Pages(ctx context.Context, f func(*DiskTypeList) error) error {
58570	c.ctx_ = ctx
58571	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
58572	for {
58573		x, err := c.Do()
58574		if err != nil {
58575			return err
58576		}
58577		if err := f(x); err != nil {
58578			return err
58579		}
58580		if x.NextPageToken == "" {
58581			return nil
58582		}
58583		c.PageToken(x.NextPageToken)
58584	}
58585}
58586
58587// method id "compute.disks.addResourcePolicies":
58588
58589type DisksAddResourcePoliciesCall struct {
58590	s                               *Service
58591	project                         string
58592	zone                            string
58593	disk                            string
58594	disksaddresourcepoliciesrequest *DisksAddResourcePoliciesRequest
58595	urlParams_                      gensupport.URLParams
58596	ctx_                            context.Context
58597	header_                         http.Header
58598}
58599
58600// AddResourcePolicies: Adds existing resource policies to a disk. You
58601// can only add one policy which will be applied to this disk for
58602// scheduling snapshot creation.
58603func (r *DisksService) AddResourcePolicies(project string, zone string, disk string, disksaddresourcepoliciesrequest *DisksAddResourcePoliciesRequest) *DisksAddResourcePoliciesCall {
58604	c := &DisksAddResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58605	c.project = project
58606	c.zone = zone
58607	c.disk = disk
58608	c.disksaddresourcepoliciesrequest = disksaddresourcepoliciesrequest
58609	return c
58610}
58611
58612// RequestId sets the optional parameter "requestId": An optional
58613// request ID to identify requests. Specify a unique request ID so that
58614// if you must retry your request, the server will know to ignore the
58615// request if it has already been completed.
58616//
58617// For example, consider a situation where you make an initial request
58618// and the request times out. If you make the request again with the
58619// same request ID, the server can check if original operation with the
58620// same request ID was received, and if so, will ignore the second
58621// request. This prevents clients from accidentally creating duplicate
58622// commitments.
58623//
58624// The request ID must be a valid UUID with the exception that zero UUID
58625// is not supported (00000000-0000-0000-0000-000000000000).
58626func (c *DisksAddResourcePoliciesCall) RequestId(requestId string) *DisksAddResourcePoliciesCall {
58627	c.urlParams_.Set("requestId", requestId)
58628	return c
58629}
58630
58631// Fields allows partial responses to be retrieved. See
58632// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58633// for more information.
58634func (c *DisksAddResourcePoliciesCall) Fields(s ...googleapi.Field) *DisksAddResourcePoliciesCall {
58635	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58636	return c
58637}
58638
58639// Context sets the context to be used in this call's Do method. Any
58640// pending HTTP request will be aborted if the provided context is
58641// canceled.
58642func (c *DisksAddResourcePoliciesCall) Context(ctx context.Context) *DisksAddResourcePoliciesCall {
58643	c.ctx_ = ctx
58644	return c
58645}
58646
58647// Header returns an http.Header that can be modified by the caller to
58648// add HTTP headers to the request.
58649func (c *DisksAddResourcePoliciesCall) Header() http.Header {
58650	if c.header_ == nil {
58651		c.header_ = make(http.Header)
58652	}
58653	return c.header_
58654}
58655
58656func (c *DisksAddResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
58657	reqHeaders := make(http.Header)
58658	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
58659	for k, v := range c.header_ {
58660		reqHeaders[k] = v
58661	}
58662	reqHeaders.Set("User-Agent", c.s.userAgent())
58663	var body io.Reader = nil
58664	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disksaddresourcepoliciesrequest)
58665	if err != nil {
58666		return nil, err
58667	}
58668	reqHeaders.Set("Content-Type", "application/json")
58669	c.urlParams_.Set("alt", alt)
58670	c.urlParams_.Set("prettyPrint", "false")
58671	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{disk}/addResourcePolicies")
58672	urls += "?" + c.urlParams_.Encode()
58673	req, err := http.NewRequest("POST", urls, body)
58674	if err != nil {
58675		return nil, err
58676	}
58677	req.Header = reqHeaders
58678	googleapi.Expand(req.URL, map[string]string{
58679		"project": c.project,
58680		"zone":    c.zone,
58681		"disk":    c.disk,
58682	})
58683	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58684}
58685
58686// Do executes the "compute.disks.addResourcePolicies" call.
58687// Exactly one of *Operation or error will be non-nil. Any non-2xx
58688// status code is an error. Response headers are in either
58689// *Operation.ServerResponse.Header or (if a response was returned at
58690// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
58691// to check whether the returned error was because
58692// http.StatusNotModified was returned.
58693func (c *DisksAddResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
58694	gensupport.SetOptions(c.urlParams_, opts...)
58695	res, err := c.doRequest("json")
58696	if res != nil && res.StatusCode == http.StatusNotModified {
58697		if res.Body != nil {
58698			res.Body.Close()
58699		}
58700		return nil, &googleapi.Error{
58701			Code:   res.StatusCode,
58702			Header: res.Header,
58703		}
58704	}
58705	if err != nil {
58706		return nil, err
58707	}
58708	defer googleapi.CloseBody(res)
58709	if err := googleapi.CheckResponse(res); err != nil {
58710		return nil, err
58711	}
58712	ret := &Operation{
58713		ServerResponse: googleapi.ServerResponse{
58714			Header:         res.Header,
58715			HTTPStatusCode: res.StatusCode,
58716		},
58717	}
58718	target := &ret
58719	if err := gensupport.DecodeResponse(target, res); err != nil {
58720		return nil, err
58721	}
58722	return ret, nil
58723	// {
58724	//   "description": "Adds existing resource policies to a disk. You can only add one policy which will be applied to this disk for scheduling snapshot creation.",
58725	//   "httpMethod": "POST",
58726	//   "id": "compute.disks.addResourcePolicies",
58727	//   "parameterOrder": [
58728	//     "project",
58729	//     "zone",
58730	//     "disk"
58731	//   ],
58732	//   "parameters": {
58733	//     "disk": {
58734	//       "description": "The disk name for this request.",
58735	//       "location": "path",
58736	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
58737	//       "required": true,
58738	//       "type": "string"
58739	//     },
58740	//     "project": {
58741	//       "description": "Project ID for this request.",
58742	//       "location": "path",
58743	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58744	//       "required": true,
58745	//       "type": "string"
58746	//     },
58747	//     "requestId": {
58748	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
58749	//       "location": "query",
58750	//       "type": "string"
58751	//     },
58752	//     "zone": {
58753	//       "description": "The name of the zone for this request.",
58754	//       "location": "path",
58755	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
58756	//       "required": true,
58757	//       "type": "string"
58758	//     }
58759	//   },
58760	//   "path": "projects/{project}/zones/{zone}/disks/{disk}/addResourcePolicies",
58761	//   "request": {
58762	//     "$ref": "DisksAddResourcePoliciesRequest"
58763	//   },
58764	//   "response": {
58765	//     "$ref": "Operation"
58766	//   },
58767	//   "scopes": [
58768	//     "https://www.googleapis.com/auth/cloud-platform",
58769	//     "https://www.googleapis.com/auth/compute"
58770	//   ]
58771	// }
58772
58773}
58774
58775// method id "compute.disks.aggregatedList":
58776
58777type DisksAggregatedListCall struct {
58778	s            *Service
58779	project      string
58780	urlParams_   gensupport.URLParams
58781	ifNoneMatch_ string
58782	ctx_         context.Context
58783	header_      http.Header
58784}
58785
58786// AggregatedList: Retrieves an aggregated list of persistent disks.
58787// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/aggregatedList
58788func (r *DisksService) AggregatedList(project string) *DisksAggregatedListCall {
58789	c := &DisksAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58790	c.project = project
58791	return c
58792}
58793
58794// Filter sets the optional parameter "filter": A filter expression that
58795// filters resources listed in the response. The expression must specify
58796// the field name, a comparison operator, and the value that you want to
58797// use for filtering. The value must be a string, a number, or a
58798// boolean. The comparison operator must be either `=`, `!=`, `>`, or
58799// `<`.
58800//
58801// For example, if you are filtering Compute Engine instances, you can
58802// exclude instances named `example-instance` by specifying `name !=
58803// example-instance`.
58804//
58805// You can also filter nested fields. For example, you could specify
58806// `scheduling.automaticRestart = false` to include instances only if
58807// they are not scheduled for automatic restarts. You can use filtering
58808// on nested fields to filter based on resource labels.
58809//
58810// To filter on multiple expressions, provide each separate expression
58811// within parentheses. For example: ``` (scheduling.automaticRestart =
58812// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
58813// is an `AND` expression. However, you can include `AND` and `OR`
58814// expressions explicitly. For example: ``` (cpuPlatform = "Intel
58815// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
58816// (scheduling.automaticRestart = true) ```
58817func (c *DisksAggregatedListCall) Filter(filter string) *DisksAggregatedListCall {
58818	c.urlParams_.Set("filter", filter)
58819	return c
58820}
58821
58822// IncludeAllScopes sets the optional parameter "includeAllScopes":
58823// Indicates whether every visible scope for each scope type (zone,
58824// region, global) should be included in the response. For new resource
58825// types added after this field, the flag has no effect as new resource
58826// types will always include every visible scope for each scope type in
58827// response. For resource types which predate this field, if this flag
58828// is omitted or false, only scopes of the scope types where the
58829// resource type is expected to be found will be included.
58830func (c *DisksAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *DisksAggregatedListCall {
58831	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
58832	return c
58833}
58834
58835// MaxResults sets the optional parameter "maxResults": The maximum
58836// number of results per page that should be returned. If the number of
58837// available results is larger than `maxResults`, Compute Engine returns
58838// a `nextPageToken` that can be used to get the next page of results in
58839// subsequent list requests. Acceptable values are `0` to `500`,
58840// inclusive. (Default: `500`)
58841func (c *DisksAggregatedListCall) MaxResults(maxResults int64) *DisksAggregatedListCall {
58842	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
58843	return c
58844}
58845
58846// OrderBy sets the optional parameter "orderBy": Sorts list results by
58847// a certain order. By default, results are returned in alphanumerical
58848// order based on the resource name.
58849//
58850// You can also sort results in descending order based on the creation
58851// timestamp using `orderBy="creationTimestamp desc". This sorts
58852// results based on the `creationTimestamp` field in reverse
58853// chronological order (newest result first). Use this to sort resources
58854// like operations so that the newest operation is returned
58855// first.
58856//
58857// Currently, only sorting by `name` or `creationTimestamp desc` is
58858// supported.
58859func (c *DisksAggregatedListCall) OrderBy(orderBy string) *DisksAggregatedListCall {
58860	c.urlParams_.Set("orderBy", orderBy)
58861	return c
58862}
58863
58864// PageToken sets the optional parameter "pageToken": Specifies a page
58865// token to use. Set `pageToken` to the `nextPageToken` returned by a
58866// previous list request to get the next page of results.
58867func (c *DisksAggregatedListCall) PageToken(pageToken string) *DisksAggregatedListCall {
58868	c.urlParams_.Set("pageToken", pageToken)
58869	return c
58870}
58871
58872// ReturnPartialSuccess sets the optional parameter
58873// "returnPartialSuccess": Opt-in for partial success behavior which
58874// provides partial results in case of failure. The default value is
58875// false.
58876func (c *DisksAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *DisksAggregatedListCall {
58877	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
58878	return c
58879}
58880
58881// Fields allows partial responses to be retrieved. See
58882// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58883// for more information.
58884func (c *DisksAggregatedListCall) Fields(s ...googleapi.Field) *DisksAggregatedListCall {
58885	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58886	return c
58887}
58888
58889// IfNoneMatch sets the optional parameter which makes the operation
58890// fail if the object's ETag matches the given value. This is useful for
58891// getting updates only after the object has changed since the last
58892// request. Use googleapi.IsNotModified to check whether the response
58893// error from Do is the result of In-None-Match.
58894func (c *DisksAggregatedListCall) IfNoneMatch(entityTag string) *DisksAggregatedListCall {
58895	c.ifNoneMatch_ = entityTag
58896	return c
58897}
58898
58899// Context sets the context to be used in this call's Do method. Any
58900// pending HTTP request will be aborted if the provided context is
58901// canceled.
58902func (c *DisksAggregatedListCall) Context(ctx context.Context) *DisksAggregatedListCall {
58903	c.ctx_ = ctx
58904	return c
58905}
58906
58907// Header returns an http.Header that can be modified by the caller to
58908// add HTTP headers to the request.
58909func (c *DisksAggregatedListCall) Header() http.Header {
58910	if c.header_ == nil {
58911		c.header_ = make(http.Header)
58912	}
58913	return c.header_
58914}
58915
58916func (c *DisksAggregatedListCall) doRequest(alt string) (*http.Response, error) {
58917	reqHeaders := make(http.Header)
58918	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
58919	for k, v := range c.header_ {
58920		reqHeaders[k] = v
58921	}
58922	reqHeaders.Set("User-Agent", c.s.userAgent())
58923	if c.ifNoneMatch_ != "" {
58924		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
58925	}
58926	var body io.Reader = nil
58927	c.urlParams_.Set("alt", alt)
58928	c.urlParams_.Set("prettyPrint", "false")
58929	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/disks")
58930	urls += "?" + c.urlParams_.Encode()
58931	req, err := http.NewRequest("GET", urls, body)
58932	if err != nil {
58933		return nil, err
58934	}
58935	req.Header = reqHeaders
58936	googleapi.Expand(req.URL, map[string]string{
58937		"project": c.project,
58938	})
58939	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58940}
58941
58942// Do executes the "compute.disks.aggregatedList" call.
58943// Exactly one of *DiskAggregatedList or error will be non-nil. Any
58944// non-2xx status code is an error. Response headers are in either
58945// *DiskAggregatedList.ServerResponse.Header or (if a response was
58946// returned at all) in error.(*googleapi.Error).Header. Use
58947// googleapi.IsNotModified to check whether the returned error was
58948// because http.StatusNotModified was returned.
58949func (c *DisksAggregatedListCall) Do(opts ...googleapi.CallOption) (*DiskAggregatedList, error) {
58950	gensupport.SetOptions(c.urlParams_, opts...)
58951	res, err := c.doRequest("json")
58952	if res != nil && res.StatusCode == http.StatusNotModified {
58953		if res.Body != nil {
58954			res.Body.Close()
58955		}
58956		return nil, &googleapi.Error{
58957			Code:   res.StatusCode,
58958			Header: res.Header,
58959		}
58960	}
58961	if err != nil {
58962		return nil, err
58963	}
58964	defer googleapi.CloseBody(res)
58965	if err := googleapi.CheckResponse(res); err != nil {
58966		return nil, err
58967	}
58968	ret := &DiskAggregatedList{
58969		ServerResponse: googleapi.ServerResponse{
58970			Header:         res.Header,
58971			HTTPStatusCode: res.StatusCode,
58972		},
58973	}
58974	target := &ret
58975	if err := gensupport.DecodeResponse(target, res); err != nil {
58976		return nil, err
58977	}
58978	return ret, nil
58979	// {
58980	//   "description": "Retrieves an aggregated list of persistent disks.",
58981	//   "httpMethod": "GET",
58982	//   "id": "compute.disks.aggregatedList",
58983	//   "parameterOrder": [
58984	//     "project"
58985	//   ],
58986	//   "parameters": {
58987	//     "filter": {
58988	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
58989	//       "location": "query",
58990	//       "type": "string"
58991	//     },
58992	//     "includeAllScopes": {
58993	//       "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.",
58994	//       "location": "query",
58995	//       "type": "boolean"
58996	//     },
58997	//     "maxResults": {
58998	//       "default": "500",
58999	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
59000	//       "format": "uint32",
59001	//       "location": "query",
59002	//       "minimum": "0",
59003	//       "type": "integer"
59004	//     },
59005	//     "orderBy": {
59006	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
59007	//       "location": "query",
59008	//       "type": "string"
59009	//     },
59010	//     "pageToken": {
59011	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
59012	//       "location": "query",
59013	//       "type": "string"
59014	//     },
59015	//     "project": {
59016	//       "description": "Project ID for this request.",
59017	//       "location": "path",
59018	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59019	//       "required": true,
59020	//       "type": "string"
59021	//     },
59022	//     "returnPartialSuccess": {
59023	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
59024	//       "location": "query",
59025	//       "type": "boolean"
59026	//     }
59027	//   },
59028	//   "path": "projects/{project}/aggregated/disks",
59029	//   "response": {
59030	//     "$ref": "DiskAggregatedList"
59031	//   },
59032	//   "scopes": [
59033	//     "https://www.googleapis.com/auth/cloud-platform",
59034	//     "https://www.googleapis.com/auth/compute",
59035	//     "https://www.googleapis.com/auth/compute.readonly"
59036	//   ]
59037	// }
59038
59039}
59040
59041// Pages invokes f for each page of results.
59042// A non-nil error returned from f will halt the iteration.
59043// The provided context supersedes any context provided to the Context method.
59044func (c *DisksAggregatedListCall) Pages(ctx context.Context, f func(*DiskAggregatedList) error) error {
59045	c.ctx_ = ctx
59046	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
59047	for {
59048		x, err := c.Do()
59049		if err != nil {
59050			return err
59051		}
59052		if err := f(x); err != nil {
59053			return err
59054		}
59055		if x.NextPageToken == "" {
59056			return nil
59057		}
59058		c.PageToken(x.NextPageToken)
59059	}
59060}
59061
59062// method id "compute.disks.createSnapshot":
59063
59064type DisksCreateSnapshotCall struct {
59065	s          *Service
59066	project    string
59067	zone       string
59068	disk       string
59069	snapshot   *Snapshot
59070	urlParams_ gensupport.URLParams
59071	ctx_       context.Context
59072	header_    http.Header
59073}
59074
59075// CreateSnapshot: Creates a snapshot of a specified persistent disk.
59076// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/createSnapshot
59077func (r *DisksService) CreateSnapshot(project string, zone string, disk string, snapshot *Snapshot) *DisksCreateSnapshotCall {
59078	c := &DisksCreateSnapshotCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59079	c.project = project
59080	c.zone = zone
59081	c.disk = disk
59082	c.snapshot = snapshot
59083	return c
59084}
59085
59086// GuestFlush sets the optional parameter "guestFlush": [Input Only]
59087// Whether to attempt an application consistent snapshot by informing
59088// the OS to prepare for the snapshot process. Currently only supported
59089// on Windows instances using the Volume Shadow Copy Service (VSS).
59090func (c *DisksCreateSnapshotCall) GuestFlush(guestFlush bool) *DisksCreateSnapshotCall {
59091	c.urlParams_.Set("guestFlush", fmt.Sprint(guestFlush))
59092	return c
59093}
59094
59095// RequestId sets the optional parameter "requestId": An optional
59096// request ID to identify requests. Specify a unique request ID so that
59097// if you must retry your request, the server will know to ignore the
59098// request if it has already been completed.
59099//
59100// For example, consider a situation where you make an initial request
59101// and the request times out. If you make the request again with the
59102// same request ID, the server can check if original operation with the
59103// same request ID was received, and if so, will ignore the second
59104// request. This prevents clients from accidentally creating duplicate
59105// commitments.
59106//
59107// The request ID must be a valid UUID with the exception that zero UUID
59108// is not supported (00000000-0000-0000-0000-000000000000).
59109func (c *DisksCreateSnapshotCall) RequestId(requestId string) *DisksCreateSnapshotCall {
59110	c.urlParams_.Set("requestId", requestId)
59111	return c
59112}
59113
59114// Fields allows partial responses to be retrieved. See
59115// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59116// for more information.
59117func (c *DisksCreateSnapshotCall) Fields(s ...googleapi.Field) *DisksCreateSnapshotCall {
59118	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59119	return c
59120}
59121
59122// Context sets the context to be used in this call's Do method. Any
59123// pending HTTP request will be aborted if the provided context is
59124// canceled.
59125func (c *DisksCreateSnapshotCall) Context(ctx context.Context) *DisksCreateSnapshotCall {
59126	c.ctx_ = ctx
59127	return c
59128}
59129
59130// Header returns an http.Header that can be modified by the caller to
59131// add HTTP headers to the request.
59132func (c *DisksCreateSnapshotCall) Header() http.Header {
59133	if c.header_ == nil {
59134		c.header_ = make(http.Header)
59135	}
59136	return c.header_
59137}
59138
59139func (c *DisksCreateSnapshotCall) doRequest(alt string) (*http.Response, error) {
59140	reqHeaders := make(http.Header)
59141	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
59142	for k, v := range c.header_ {
59143		reqHeaders[k] = v
59144	}
59145	reqHeaders.Set("User-Agent", c.s.userAgent())
59146	var body io.Reader = nil
59147	body, err := googleapi.WithoutDataWrapper.JSONReader(c.snapshot)
59148	if err != nil {
59149		return nil, err
59150	}
59151	reqHeaders.Set("Content-Type", "application/json")
59152	c.urlParams_.Set("alt", alt)
59153	c.urlParams_.Set("prettyPrint", "false")
59154	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{disk}/createSnapshot")
59155	urls += "?" + c.urlParams_.Encode()
59156	req, err := http.NewRequest("POST", urls, body)
59157	if err != nil {
59158		return nil, err
59159	}
59160	req.Header = reqHeaders
59161	googleapi.Expand(req.URL, map[string]string{
59162		"project": c.project,
59163		"zone":    c.zone,
59164		"disk":    c.disk,
59165	})
59166	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59167}
59168
59169// Do executes the "compute.disks.createSnapshot" call.
59170// Exactly one of *Operation or error will be non-nil. Any non-2xx
59171// status code is an error. Response headers are in either
59172// *Operation.ServerResponse.Header or (if a response was returned at
59173// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
59174// to check whether the returned error was because
59175// http.StatusNotModified was returned.
59176func (c *DisksCreateSnapshotCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
59177	gensupport.SetOptions(c.urlParams_, opts...)
59178	res, err := c.doRequest("json")
59179	if res != nil && res.StatusCode == http.StatusNotModified {
59180		if res.Body != nil {
59181			res.Body.Close()
59182		}
59183		return nil, &googleapi.Error{
59184			Code:   res.StatusCode,
59185			Header: res.Header,
59186		}
59187	}
59188	if err != nil {
59189		return nil, err
59190	}
59191	defer googleapi.CloseBody(res)
59192	if err := googleapi.CheckResponse(res); err != nil {
59193		return nil, err
59194	}
59195	ret := &Operation{
59196		ServerResponse: googleapi.ServerResponse{
59197			Header:         res.Header,
59198			HTTPStatusCode: res.StatusCode,
59199		},
59200	}
59201	target := &ret
59202	if err := gensupport.DecodeResponse(target, res); err != nil {
59203		return nil, err
59204	}
59205	return ret, nil
59206	// {
59207	//   "description": "Creates a snapshot of a specified persistent disk.",
59208	//   "httpMethod": "POST",
59209	//   "id": "compute.disks.createSnapshot",
59210	//   "parameterOrder": [
59211	//     "project",
59212	//     "zone",
59213	//     "disk"
59214	//   ],
59215	//   "parameters": {
59216	//     "disk": {
59217	//       "description": "Name of the persistent disk to snapshot.",
59218	//       "location": "path",
59219	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
59220	//       "required": true,
59221	//       "type": "string"
59222	//     },
59223	//     "guestFlush": {
59224	//       "description": "[Input Only] Whether to attempt an application consistent snapshot by informing the OS to prepare for the snapshot process. Currently only supported on Windows instances using the Volume Shadow Copy Service (VSS).",
59225	//       "location": "query",
59226	//       "type": "boolean"
59227	//     },
59228	//     "project": {
59229	//       "description": "Project ID for this request.",
59230	//       "location": "path",
59231	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59232	//       "required": true,
59233	//       "type": "string"
59234	//     },
59235	//     "requestId": {
59236	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
59237	//       "location": "query",
59238	//       "type": "string"
59239	//     },
59240	//     "zone": {
59241	//       "description": "The name of the zone for this request.",
59242	//       "location": "path",
59243	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
59244	//       "required": true,
59245	//       "type": "string"
59246	//     }
59247	//   },
59248	//   "path": "projects/{project}/zones/{zone}/disks/{disk}/createSnapshot",
59249	//   "request": {
59250	//     "$ref": "Snapshot"
59251	//   },
59252	//   "response": {
59253	//     "$ref": "Operation"
59254	//   },
59255	//   "scopes": [
59256	//     "https://www.googleapis.com/auth/cloud-platform",
59257	//     "https://www.googleapis.com/auth/compute"
59258	//   ]
59259	// }
59260
59261}
59262
59263// method id "compute.disks.delete":
59264
59265type DisksDeleteCall struct {
59266	s          *Service
59267	project    string
59268	zone       string
59269	disk       string
59270	urlParams_ gensupport.URLParams
59271	ctx_       context.Context
59272	header_    http.Header
59273}
59274
59275// Delete: Deletes the specified persistent disk. Deleting a disk
59276// removes its data permanently and is irreversible. However, deleting a
59277// disk does not delete any snapshots previously made from the disk. You
59278// must separately delete snapshots.
59279// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/delete
59280func (r *DisksService) Delete(project string, zone string, disk string) *DisksDeleteCall {
59281	c := &DisksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59282	c.project = project
59283	c.zone = zone
59284	c.disk = disk
59285	return c
59286}
59287
59288// RequestId sets the optional parameter "requestId": An optional
59289// request ID to identify requests. Specify a unique request ID so that
59290// if you must retry your request, the server will know to ignore the
59291// request if it has already been completed.
59292//
59293// For example, consider a situation where you make an initial request
59294// and the request times out. If you make the request again with the
59295// same request ID, the server can check if original operation with the
59296// same request ID was received, and if so, will ignore the second
59297// request. This prevents clients from accidentally creating duplicate
59298// commitments.
59299//
59300// The request ID must be a valid UUID with the exception that zero UUID
59301// is not supported (00000000-0000-0000-0000-000000000000).
59302func (c *DisksDeleteCall) RequestId(requestId string) *DisksDeleteCall {
59303	c.urlParams_.Set("requestId", requestId)
59304	return c
59305}
59306
59307// Fields allows partial responses to be retrieved. See
59308// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59309// for more information.
59310func (c *DisksDeleteCall) Fields(s ...googleapi.Field) *DisksDeleteCall {
59311	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59312	return c
59313}
59314
59315// Context sets the context to be used in this call's Do method. Any
59316// pending HTTP request will be aborted if the provided context is
59317// canceled.
59318func (c *DisksDeleteCall) Context(ctx context.Context) *DisksDeleteCall {
59319	c.ctx_ = ctx
59320	return c
59321}
59322
59323// Header returns an http.Header that can be modified by the caller to
59324// add HTTP headers to the request.
59325func (c *DisksDeleteCall) Header() http.Header {
59326	if c.header_ == nil {
59327		c.header_ = make(http.Header)
59328	}
59329	return c.header_
59330}
59331
59332func (c *DisksDeleteCall) doRequest(alt string) (*http.Response, error) {
59333	reqHeaders := make(http.Header)
59334	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
59335	for k, v := range c.header_ {
59336		reqHeaders[k] = v
59337	}
59338	reqHeaders.Set("User-Agent", c.s.userAgent())
59339	var body io.Reader = nil
59340	c.urlParams_.Set("alt", alt)
59341	c.urlParams_.Set("prettyPrint", "false")
59342	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{disk}")
59343	urls += "?" + c.urlParams_.Encode()
59344	req, err := http.NewRequest("DELETE", urls, body)
59345	if err != nil {
59346		return nil, err
59347	}
59348	req.Header = reqHeaders
59349	googleapi.Expand(req.URL, map[string]string{
59350		"project": c.project,
59351		"zone":    c.zone,
59352		"disk":    c.disk,
59353	})
59354	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59355}
59356
59357// Do executes the "compute.disks.delete" call.
59358// Exactly one of *Operation or error will be non-nil. Any non-2xx
59359// status code is an error. Response headers are in either
59360// *Operation.ServerResponse.Header or (if a response was returned at
59361// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
59362// to check whether the returned error was because
59363// http.StatusNotModified was returned.
59364func (c *DisksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
59365	gensupport.SetOptions(c.urlParams_, opts...)
59366	res, err := c.doRequest("json")
59367	if res != nil && res.StatusCode == http.StatusNotModified {
59368		if res.Body != nil {
59369			res.Body.Close()
59370		}
59371		return nil, &googleapi.Error{
59372			Code:   res.StatusCode,
59373			Header: res.Header,
59374		}
59375	}
59376	if err != nil {
59377		return nil, err
59378	}
59379	defer googleapi.CloseBody(res)
59380	if err := googleapi.CheckResponse(res); err != nil {
59381		return nil, err
59382	}
59383	ret := &Operation{
59384		ServerResponse: googleapi.ServerResponse{
59385			Header:         res.Header,
59386			HTTPStatusCode: res.StatusCode,
59387		},
59388	}
59389	target := &ret
59390	if err := gensupport.DecodeResponse(target, res); err != nil {
59391		return nil, err
59392	}
59393	return ret, nil
59394	// {
59395	//   "description": "Deletes the specified persistent disk. Deleting a disk removes its data permanently and is irreversible. However, deleting a disk does not delete any snapshots previously made from the disk. You must separately delete snapshots.",
59396	//   "httpMethod": "DELETE",
59397	//   "id": "compute.disks.delete",
59398	//   "parameterOrder": [
59399	//     "project",
59400	//     "zone",
59401	//     "disk"
59402	//   ],
59403	//   "parameters": {
59404	//     "disk": {
59405	//       "description": "Name of the persistent disk to delete.",
59406	//       "location": "path",
59407	//       "required": true,
59408	//       "type": "string"
59409	//     },
59410	//     "project": {
59411	//       "description": "Project ID for this request.",
59412	//       "location": "path",
59413	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59414	//       "required": true,
59415	//       "type": "string"
59416	//     },
59417	//     "requestId": {
59418	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
59419	//       "location": "query",
59420	//       "type": "string"
59421	//     },
59422	//     "zone": {
59423	//       "description": "The name of the zone for this request.",
59424	//       "location": "path",
59425	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
59426	//       "required": true,
59427	//       "type": "string"
59428	//     }
59429	//   },
59430	//   "path": "projects/{project}/zones/{zone}/disks/{disk}",
59431	//   "response": {
59432	//     "$ref": "Operation"
59433	//   },
59434	//   "scopes": [
59435	//     "https://www.googleapis.com/auth/cloud-platform",
59436	//     "https://www.googleapis.com/auth/compute"
59437	//   ]
59438	// }
59439
59440}
59441
59442// method id "compute.disks.get":
59443
59444type DisksGetCall struct {
59445	s            *Service
59446	project      string
59447	zone         string
59448	disk         string
59449	urlParams_   gensupport.URLParams
59450	ifNoneMatch_ string
59451	ctx_         context.Context
59452	header_      http.Header
59453}
59454
59455// Get: Returns a specified persistent disk. Gets a list of available
59456// persistent disks by making a list() request.
59457// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/get
59458func (r *DisksService) Get(project string, zone string, disk string) *DisksGetCall {
59459	c := &DisksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59460	c.project = project
59461	c.zone = zone
59462	c.disk = disk
59463	return c
59464}
59465
59466// Fields allows partial responses to be retrieved. See
59467// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59468// for more information.
59469func (c *DisksGetCall) Fields(s ...googleapi.Field) *DisksGetCall {
59470	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59471	return c
59472}
59473
59474// IfNoneMatch sets the optional parameter which makes the operation
59475// fail if the object's ETag matches the given value. This is useful for
59476// getting updates only after the object has changed since the last
59477// request. Use googleapi.IsNotModified to check whether the response
59478// error from Do is the result of In-None-Match.
59479func (c *DisksGetCall) IfNoneMatch(entityTag string) *DisksGetCall {
59480	c.ifNoneMatch_ = entityTag
59481	return c
59482}
59483
59484// Context sets the context to be used in this call's Do method. Any
59485// pending HTTP request will be aborted if the provided context is
59486// canceled.
59487func (c *DisksGetCall) Context(ctx context.Context) *DisksGetCall {
59488	c.ctx_ = ctx
59489	return c
59490}
59491
59492// Header returns an http.Header that can be modified by the caller to
59493// add HTTP headers to the request.
59494func (c *DisksGetCall) Header() http.Header {
59495	if c.header_ == nil {
59496		c.header_ = make(http.Header)
59497	}
59498	return c.header_
59499}
59500
59501func (c *DisksGetCall) doRequest(alt string) (*http.Response, error) {
59502	reqHeaders := make(http.Header)
59503	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
59504	for k, v := range c.header_ {
59505		reqHeaders[k] = v
59506	}
59507	reqHeaders.Set("User-Agent", c.s.userAgent())
59508	if c.ifNoneMatch_ != "" {
59509		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
59510	}
59511	var body io.Reader = nil
59512	c.urlParams_.Set("alt", alt)
59513	c.urlParams_.Set("prettyPrint", "false")
59514	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{disk}")
59515	urls += "?" + c.urlParams_.Encode()
59516	req, err := http.NewRequest("GET", urls, body)
59517	if err != nil {
59518		return nil, err
59519	}
59520	req.Header = reqHeaders
59521	googleapi.Expand(req.URL, map[string]string{
59522		"project": c.project,
59523		"zone":    c.zone,
59524		"disk":    c.disk,
59525	})
59526	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59527}
59528
59529// Do executes the "compute.disks.get" call.
59530// Exactly one of *Disk or error will be non-nil. Any non-2xx status
59531// code is an error. Response headers are in either
59532// *Disk.ServerResponse.Header or (if a response was returned at all) in
59533// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
59534// whether the returned error was because http.StatusNotModified was
59535// returned.
59536func (c *DisksGetCall) Do(opts ...googleapi.CallOption) (*Disk, error) {
59537	gensupport.SetOptions(c.urlParams_, opts...)
59538	res, err := c.doRequest("json")
59539	if res != nil && res.StatusCode == http.StatusNotModified {
59540		if res.Body != nil {
59541			res.Body.Close()
59542		}
59543		return nil, &googleapi.Error{
59544			Code:   res.StatusCode,
59545			Header: res.Header,
59546		}
59547	}
59548	if err != nil {
59549		return nil, err
59550	}
59551	defer googleapi.CloseBody(res)
59552	if err := googleapi.CheckResponse(res); err != nil {
59553		return nil, err
59554	}
59555	ret := &Disk{
59556		ServerResponse: googleapi.ServerResponse{
59557			Header:         res.Header,
59558			HTTPStatusCode: res.StatusCode,
59559		},
59560	}
59561	target := &ret
59562	if err := gensupport.DecodeResponse(target, res); err != nil {
59563		return nil, err
59564	}
59565	return ret, nil
59566	// {
59567	//   "description": "Returns a specified persistent disk. Gets a list of available persistent disks by making a list() request.",
59568	//   "httpMethod": "GET",
59569	//   "id": "compute.disks.get",
59570	//   "parameterOrder": [
59571	//     "project",
59572	//     "zone",
59573	//     "disk"
59574	//   ],
59575	//   "parameters": {
59576	//     "disk": {
59577	//       "description": "Name of the persistent disk to return.",
59578	//       "location": "path",
59579	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
59580	//       "required": true,
59581	//       "type": "string"
59582	//     },
59583	//     "project": {
59584	//       "description": "Project ID for this request.",
59585	//       "location": "path",
59586	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59587	//       "required": true,
59588	//       "type": "string"
59589	//     },
59590	//     "zone": {
59591	//       "description": "The name of the zone for this request.",
59592	//       "location": "path",
59593	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
59594	//       "required": true,
59595	//       "type": "string"
59596	//     }
59597	//   },
59598	//   "path": "projects/{project}/zones/{zone}/disks/{disk}",
59599	//   "response": {
59600	//     "$ref": "Disk"
59601	//   },
59602	//   "scopes": [
59603	//     "https://www.googleapis.com/auth/cloud-platform",
59604	//     "https://www.googleapis.com/auth/compute",
59605	//     "https://www.googleapis.com/auth/compute.readonly"
59606	//   ]
59607	// }
59608
59609}
59610
59611// method id "compute.disks.getIamPolicy":
59612
59613type DisksGetIamPolicyCall struct {
59614	s            *Service
59615	project      string
59616	zone         string
59617	resource     string
59618	urlParams_   gensupport.URLParams
59619	ifNoneMatch_ string
59620	ctx_         context.Context
59621	header_      http.Header
59622}
59623
59624// GetIamPolicy: Gets the access control policy for a resource. May be
59625// empty if no such policy or resource exists.
59626func (r *DisksService) GetIamPolicy(project string, zone string, resource string) *DisksGetIamPolicyCall {
59627	c := &DisksGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59628	c.project = project
59629	c.zone = zone
59630	c.resource = resource
59631	return c
59632}
59633
59634// OptionsRequestedPolicyVersion sets the optional parameter
59635// "optionsRequestedPolicyVersion": Requested IAM Policy version.
59636func (c *DisksGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *DisksGetIamPolicyCall {
59637	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
59638	return c
59639}
59640
59641// Fields allows partial responses to be retrieved. See
59642// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59643// for more information.
59644func (c *DisksGetIamPolicyCall) Fields(s ...googleapi.Field) *DisksGetIamPolicyCall {
59645	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59646	return c
59647}
59648
59649// IfNoneMatch sets the optional parameter which makes the operation
59650// fail if the object's ETag matches the given value. This is useful for
59651// getting updates only after the object has changed since the last
59652// request. Use googleapi.IsNotModified to check whether the response
59653// error from Do is the result of In-None-Match.
59654func (c *DisksGetIamPolicyCall) IfNoneMatch(entityTag string) *DisksGetIamPolicyCall {
59655	c.ifNoneMatch_ = entityTag
59656	return c
59657}
59658
59659// Context sets the context to be used in this call's Do method. Any
59660// pending HTTP request will be aborted if the provided context is
59661// canceled.
59662func (c *DisksGetIamPolicyCall) Context(ctx context.Context) *DisksGetIamPolicyCall {
59663	c.ctx_ = ctx
59664	return c
59665}
59666
59667// Header returns an http.Header that can be modified by the caller to
59668// add HTTP headers to the request.
59669func (c *DisksGetIamPolicyCall) Header() http.Header {
59670	if c.header_ == nil {
59671		c.header_ = make(http.Header)
59672	}
59673	return c.header_
59674}
59675
59676func (c *DisksGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
59677	reqHeaders := make(http.Header)
59678	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
59679	for k, v := range c.header_ {
59680		reqHeaders[k] = v
59681	}
59682	reqHeaders.Set("User-Agent", c.s.userAgent())
59683	if c.ifNoneMatch_ != "" {
59684		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
59685	}
59686	var body io.Reader = nil
59687	c.urlParams_.Set("alt", alt)
59688	c.urlParams_.Set("prettyPrint", "false")
59689	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{resource}/getIamPolicy")
59690	urls += "?" + c.urlParams_.Encode()
59691	req, err := http.NewRequest("GET", urls, body)
59692	if err != nil {
59693		return nil, err
59694	}
59695	req.Header = reqHeaders
59696	googleapi.Expand(req.URL, map[string]string{
59697		"project":  c.project,
59698		"zone":     c.zone,
59699		"resource": c.resource,
59700	})
59701	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59702}
59703
59704// Do executes the "compute.disks.getIamPolicy" call.
59705// Exactly one of *Policy or error will be non-nil. Any non-2xx status
59706// code is an error. Response headers are in either
59707// *Policy.ServerResponse.Header or (if a response was returned at all)
59708// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
59709// check whether the returned error was because http.StatusNotModified
59710// was returned.
59711func (c *DisksGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
59712	gensupport.SetOptions(c.urlParams_, opts...)
59713	res, err := c.doRequest("json")
59714	if res != nil && res.StatusCode == http.StatusNotModified {
59715		if res.Body != nil {
59716			res.Body.Close()
59717		}
59718		return nil, &googleapi.Error{
59719			Code:   res.StatusCode,
59720			Header: res.Header,
59721		}
59722	}
59723	if err != nil {
59724		return nil, err
59725	}
59726	defer googleapi.CloseBody(res)
59727	if err := googleapi.CheckResponse(res); err != nil {
59728		return nil, err
59729	}
59730	ret := &Policy{
59731		ServerResponse: googleapi.ServerResponse{
59732			Header:         res.Header,
59733			HTTPStatusCode: res.StatusCode,
59734		},
59735	}
59736	target := &ret
59737	if err := gensupport.DecodeResponse(target, res); err != nil {
59738		return nil, err
59739	}
59740	return ret, nil
59741	// {
59742	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
59743	//   "httpMethod": "GET",
59744	//   "id": "compute.disks.getIamPolicy",
59745	//   "parameterOrder": [
59746	//     "project",
59747	//     "zone",
59748	//     "resource"
59749	//   ],
59750	//   "parameters": {
59751	//     "optionsRequestedPolicyVersion": {
59752	//       "description": "Requested IAM Policy version.",
59753	//       "format": "int32",
59754	//       "location": "query",
59755	//       "type": "integer"
59756	//     },
59757	//     "project": {
59758	//       "description": "Project ID for this request.",
59759	//       "location": "path",
59760	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59761	//       "required": true,
59762	//       "type": "string"
59763	//     },
59764	//     "resource": {
59765	//       "description": "Name or id of the resource for this request.",
59766	//       "location": "path",
59767	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
59768	//       "required": true,
59769	//       "type": "string"
59770	//     },
59771	//     "zone": {
59772	//       "description": "The name of the zone for this request.",
59773	//       "location": "path",
59774	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
59775	//       "required": true,
59776	//       "type": "string"
59777	//     }
59778	//   },
59779	//   "path": "projects/{project}/zones/{zone}/disks/{resource}/getIamPolicy",
59780	//   "response": {
59781	//     "$ref": "Policy"
59782	//   },
59783	//   "scopes": [
59784	//     "https://www.googleapis.com/auth/cloud-platform",
59785	//     "https://www.googleapis.com/auth/compute",
59786	//     "https://www.googleapis.com/auth/compute.readonly"
59787	//   ]
59788	// }
59789
59790}
59791
59792// method id "compute.disks.insert":
59793
59794type DisksInsertCall struct {
59795	s          *Service
59796	project    string
59797	zone       string
59798	disk       *Disk
59799	urlParams_ gensupport.URLParams
59800	ctx_       context.Context
59801	header_    http.Header
59802}
59803
59804// Insert: Creates a persistent disk in the specified project using the
59805// data in the request. You can create a disk from a source
59806// (sourceImage, sourceSnapshot, or sourceDisk) or create an empty 500
59807// GB data disk by omitting all properties. You can also create a disk
59808// that is larger than the default size by specifying the sizeGb
59809// property.
59810// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/insert
59811func (r *DisksService) Insert(project string, zone string, disk *Disk) *DisksInsertCall {
59812	c := &DisksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59813	c.project = project
59814	c.zone = zone
59815	c.disk = disk
59816	return c
59817}
59818
59819// RequestId sets the optional parameter "requestId": An optional
59820// request ID to identify requests. Specify a unique request ID so that
59821// if you must retry your request, the server will know to ignore the
59822// request if it has already been completed.
59823//
59824// For example, consider a situation where you make an initial request
59825// and the request times out. If you make the request again with the
59826// same request ID, the server can check if original operation with the
59827// same request ID was received, and if so, will ignore the second
59828// request. This prevents clients from accidentally creating duplicate
59829// commitments.
59830//
59831// The request ID must be a valid UUID with the exception that zero UUID
59832// is not supported (00000000-0000-0000-0000-000000000000).
59833func (c *DisksInsertCall) RequestId(requestId string) *DisksInsertCall {
59834	c.urlParams_.Set("requestId", requestId)
59835	return c
59836}
59837
59838// SourceImage sets the optional parameter "sourceImage": Source image
59839// to restore onto a disk. This field is optional.
59840func (c *DisksInsertCall) SourceImage(sourceImage string) *DisksInsertCall {
59841	c.urlParams_.Set("sourceImage", sourceImage)
59842	return c
59843}
59844
59845// Fields allows partial responses to be retrieved. See
59846// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59847// for more information.
59848func (c *DisksInsertCall) Fields(s ...googleapi.Field) *DisksInsertCall {
59849	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59850	return c
59851}
59852
59853// Context sets the context to be used in this call's Do method. Any
59854// pending HTTP request will be aborted if the provided context is
59855// canceled.
59856func (c *DisksInsertCall) Context(ctx context.Context) *DisksInsertCall {
59857	c.ctx_ = ctx
59858	return c
59859}
59860
59861// Header returns an http.Header that can be modified by the caller to
59862// add HTTP headers to the request.
59863func (c *DisksInsertCall) Header() http.Header {
59864	if c.header_ == nil {
59865		c.header_ = make(http.Header)
59866	}
59867	return c.header_
59868}
59869
59870func (c *DisksInsertCall) doRequest(alt string) (*http.Response, error) {
59871	reqHeaders := make(http.Header)
59872	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
59873	for k, v := range c.header_ {
59874		reqHeaders[k] = v
59875	}
59876	reqHeaders.Set("User-Agent", c.s.userAgent())
59877	var body io.Reader = nil
59878	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disk)
59879	if err != nil {
59880		return nil, err
59881	}
59882	reqHeaders.Set("Content-Type", "application/json")
59883	c.urlParams_.Set("alt", alt)
59884	c.urlParams_.Set("prettyPrint", "false")
59885	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks")
59886	urls += "?" + c.urlParams_.Encode()
59887	req, err := http.NewRequest("POST", urls, body)
59888	if err != nil {
59889		return nil, err
59890	}
59891	req.Header = reqHeaders
59892	googleapi.Expand(req.URL, map[string]string{
59893		"project": c.project,
59894		"zone":    c.zone,
59895	})
59896	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59897}
59898
59899// Do executes the "compute.disks.insert" call.
59900// Exactly one of *Operation or error will be non-nil. Any non-2xx
59901// status code is an error. Response headers are in either
59902// *Operation.ServerResponse.Header or (if a response was returned at
59903// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
59904// to check whether the returned error was because
59905// http.StatusNotModified was returned.
59906func (c *DisksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
59907	gensupport.SetOptions(c.urlParams_, opts...)
59908	res, err := c.doRequest("json")
59909	if res != nil && res.StatusCode == http.StatusNotModified {
59910		if res.Body != nil {
59911			res.Body.Close()
59912		}
59913		return nil, &googleapi.Error{
59914			Code:   res.StatusCode,
59915			Header: res.Header,
59916		}
59917	}
59918	if err != nil {
59919		return nil, err
59920	}
59921	defer googleapi.CloseBody(res)
59922	if err := googleapi.CheckResponse(res); err != nil {
59923		return nil, err
59924	}
59925	ret := &Operation{
59926		ServerResponse: googleapi.ServerResponse{
59927			Header:         res.Header,
59928			HTTPStatusCode: res.StatusCode,
59929		},
59930	}
59931	target := &ret
59932	if err := gensupport.DecodeResponse(target, res); err != nil {
59933		return nil, err
59934	}
59935	return ret, nil
59936	// {
59937	//   "description": "Creates a persistent disk in the specified project using the data in the request. You can create a disk from a source (sourceImage, sourceSnapshot, or sourceDisk) or create an empty 500 GB data disk by omitting all properties. You can also create a disk that is larger than the default size by specifying the sizeGb property.",
59938	//   "httpMethod": "POST",
59939	//   "id": "compute.disks.insert",
59940	//   "parameterOrder": [
59941	//     "project",
59942	//     "zone"
59943	//   ],
59944	//   "parameters": {
59945	//     "project": {
59946	//       "description": "Project ID for this request.",
59947	//       "location": "path",
59948	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59949	//       "required": true,
59950	//       "type": "string"
59951	//     },
59952	//     "requestId": {
59953	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
59954	//       "location": "query",
59955	//       "type": "string"
59956	//     },
59957	//     "sourceImage": {
59958	//       "description": "Source image to restore onto a disk. This field is optional.",
59959	//       "location": "query",
59960	//       "type": "string"
59961	//     },
59962	//     "zone": {
59963	//       "description": "The name of the zone for this request.",
59964	//       "location": "path",
59965	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
59966	//       "required": true,
59967	//       "type": "string"
59968	//     }
59969	//   },
59970	//   "path": "projects/{project}/zones/{zone}/disks",
59971	//   "request": {
59972	//     "$ref": "Disk"
59973	//   },
59974	//   "response": {
59975	//     "$ref": "Operation"
59976	//   },
59977	//   "scopes": [
59978	//     "https://www.googleapis.com/auth/cloud-platform",
59979	//     "https://www.googleapis.com/auth/compute"
59980	//   ]
59981	// }
59982
59983}
59984
59985// method id "compute.disks.list":
59986
59987type DisksListCall struct {
59988	s            *Service
59989	project      string
59990	zone         string
59991	urlParams_   gensupport.URLParams
59992	ifNoneMatch_ string
59993	ctx_         context.Context
59994	header_      http.Header
59995}
59996
59997// List: Retrieves a list of persistent disks contained within the
59998// specified zone.
59999// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/list
60000func (r *DisksService) List(project string, zone string) *DisksListCall {
60001	c := &DisksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60002	c.project = project
60003	c.zone = zone
60004	return c
60005}
60006
60007// Filter sets the optional parameter "filter": A filter expression that
60008// filters resources listed in the response. The expression must specify
60009// the field name, a comparison operator, and the value that you want to
60010// use for filtering. The value must be a string, a number, or a
60011// boolean. The comparison operator must be either `=`, `!=`, `>`, or
60012// `<`.
60013//
60014// For example, if you are filtering Compute Engine instances, you can
60015// exclude instances named `example-instance` by specifying `name !=
60016// example-instance`.
60017//
60018// You can also filter nested fields. For example, you could specify
60019// `scheduling.automaticRestart = false` to include instances only if
60020// they are not scheduled for automatic restarts. You can use filtering
60021// on nested fields to filter based on resource labels.
60022//
60023// To filter on multiple expressions, provide each separate expression
60024// within parentheses. For example: ``` (scheduling.automaticRestart =
60025// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
60026// is an `AND` expression. However, you can include `AND` and `OR`
60027// expressions explicitly. For example: ``` (cpuPlatform = "Intel
60028// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
60029// (scheduling.automaticRestart = true) ```
60030func (c *DisksListCall) Filter(filter string) *DisksListCall {
60031	c.urlParams_.Set("filter", filter)
60032	return c
60033}
60034
60035// MaxResults sets the optional parameter "maxResults": The maximum
60036// number of results per page that should be returned. If the number of
60037// available results is larger than `maxResults`, Compute Engine returns
60038// a `nextPageToken` that can be used to get the next page of results in
60039// subsequent list requests. Acceptable values are `0` to `500`,
60040// inclusive. (Default: `500`)
60041func (c *DisksListCall) MaxResults(maxResults int64) *DisksListCall {
60042	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
60043	return c
60044}
60045
60046// OrderBy sets the optional parameter "orderBy": Sorts list results by
60047// a certain order. By default, results are returned in alphanumerical
60048// order based on the resource name.
60049//
60050// You can also sort results in descending order based on the creation
60051// timestamp using `orderBy="creationTimestamp desc". This sorts
60052// results based on the `creationTimestamp` field in reverse
60053// chronological order (newest result first). Use this to sort resources
60054// like operations so that the newest operation is returned
60055// first.
60056//
60057// Currently, only sorting by `name` or `creationTimestamp desc` is
60058// supported.
60059func (c *DisksListCall) OrderBy(orderBy string) *DisksListCall {
60060	c.urlParams_.Set("orderBy", orderBy)
60061	return c
60062}
60063
60064// PageToken sets the optional parameter "pageToken": Specifies a page
60065// token to use. Set `pageToken` to the `nextPageToken` returned by a
60066// previous list request to get the next page of results.
60067func (c *DisksListCall) PageToken(pageToken string) *DisksListCall {
60068	c.urlParams_.Set("pageToken", pageToken)
60069	return c
60070}
60071
60072// ReturnPartialSuccess sets the optional parameter
60073// "returnPartialSuccess": Opt-in for partial success behavior which
60074// provides partial results in case of failure. The default value is
60075// false.
60076func (c *DisksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *DisksListCall {
60077	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
60078	return c
60079}
60080
60081// Fields allows partial responses to be retrieved. See
60082// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60083// for more information.
60084func (c *DisksListCall) Fields(s ...googleapi.Field) *DisksListCall {
60085	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60086	return c
60087}
60088
60089// IfNoneMatch sets the optional parameter which makes the operation
60090// fail if the object's ETag matches the given value. This is useful for
60091// getting updates only after the object has changed since the last
60092// request. Use googleapi.IsNotModified to check whether the response
60093// error from Do is the result of In-None-Match.
60094func (c *DisksListCall) IfNoneMatch(entityTag string) *DisksListCall {
60095	c.ifNoneMatch_ = entityTag
60096	return c
60097}
60098
60099// Context sets the context to be used in this call's Do method. Any
60100// pending HTTP request will be aborted if the provided context is
60101// canceled.
60102func (c *DisksListCall) Context(ctx context.Context) *DisksListCall {
60103	c.ctx_ = ctx
60104	return c
60105}
60106
60107// Header returns an http.Header that can be modified by the caller to
60108// add HTTP headers to the request.
60109func (c *DisksListCall) Header() http.Header {
60110	if c.header_ == nil {
60111		c.header_ = make(http.Header)
60112	}
60113	return c.header_
60114}
60115
60116func (c *DisksListCall) doRequest(alt string) (*http.Response, error) {
60117	reqHeaders := make(http.Header)
60118	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
60119	for k, v := range c.header_ {
60120		reqHeaders[k] = v
60121	}
60122	reqHeaders.Set("User-Agent", c.s.userAgent())
60123	if c.ifNoneMatch_ != "" {
60124		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
60125	}
60126	var body io.Reader = nil
60127	c.urlParams_.Set("alt", alt)
60128	c.urlParams_.Set("prettyPrint", "false")
60129	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks")
60130	urls += "?" + c.urlParams_.Encode()
60131	req, err := http.NewRequest("GET", urls, body)
60132	if err != nil {
60133		return nil, err
60134	}
60135	req.Header = reqHeaders
60136	googleapi.Expand(req.URL, map[string]string{
60137		"project": c.project,
60138		"zone":    c.zone,
60139	})
60140	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60141}
60142
60143// Do executes the "compute.disks.list" call.
60144// Exactly one of *DiskList or error will be non-nil. Any non-2xx status
60145// code is an error. Response headers are in either
60146// *DiskList.ServerResponse.Header or (if a response was returned at
60147// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
60148// to check whether the returned error was because
60149// http.StatusNotModified was returned.
60150func (c *DisksListCall) Do(opts ...googleapi.CallOption) (*DiskList, error) {
60151	gensupport.SetOptions(c.urlParams_, opts...)
60152	res, err := c.doRequest("json")
60153	if res != nil && res.StatusCode == http.StatusNotModified {
60154		if res.Body != nil {
60155			res.Body.Close()
60156		}
60157		return nil, &googleapi.Error{
60158			Code:   res.StatusCode,
60159			Header: res.Header,
60160		}
60161	}
60162	if err != nil {
60163		return nil, err
60164	}
60165	defer googleapi.CloseBody(res)
60166	if err := googleapi.CheckResponse(res); err != nil {
60167		return nil, err
60168	}
60169	ret := &DiskList{
60170		ServerResponse: googleapi.ServerResponse{
60171			Header:         res.Header,
60172			HTTPStatusCode: res.StatusCode,
60173		},
60174	}
60175	target := &ret
60176	if err := gensupport.DecodeResponse(target, res); err != nil {
60177		return nil, err
60178	}
60179	return ret, nil
60180	// {
60181	//   "description": "Retrieves a list of persistent disks contained within the specified zone.",
60182	//   "httpMethod": "GET",
60183	//   "id": "compute.disks.list",
60184	//   "parameterOrder": [
60185	//     "project",
60186	//     "zone"
60187	//   ],
60188	//   "parameters": {
60189	//     "filter": {
60190	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
60191	//       "location": "query",
60192	//       "type": "string"
60193	//     },
60194	//     "maxResults": {
60195	//       "default": "500",
60196	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
60197	//       "format": "uint32",
60198	//       "location": "query",
60199	//       "minimum": "0",
60200	//       "type": "integer"
60201	//     },
60202	//     "orderBy": {
60203	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
60204	//       "location": "query",
60205	//       "type": "string"
60206	//     },
60207	//     "pageToken": {
60208	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
60209	//       "location": "query",
60210	//       "type": "string"
60211	//     },
60212	//     "project": {
60213	//       "description": "Project ID for this request.",
60214	//       "location": "path",
60215	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60216	//       "required": true,
60217	//       "type": "string"
60218	//     },
60219	//     "returnPartialSuccess": {
60220	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
60221	//       "location": "query",
60222	//       "type": "boolean"
60223	//     },
60224	//     "zone": {
60225	//       "description": "The name of the zone for this request.",
60226	//       "location": "path",
60227	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
60228	//       "required": true,
60229	//       "type": "string"
60230	//     }
60231	//   },
60232	//   "path": "projects/{project}/zones/{zone}/disks",
60233	//   "response": {
60234	//     "$ref": "DiskList"
60235	//   },
60236	//   "scopes": [
60237	//     "https://www.googleapis.com/auth/cloud-platform",
60238	//     "https://www.googleapis.com/auth/compute",
60239	//     "https://www.googleapis.com/auth/compute.readonly"
60240	//   ]
60241	// }
60242
60243}
60244
60245// Pages invokes f for each page of results.
60246// A non-nil error returned from f will halt the iteration.
60247// The provided context supersedes any context provided to the Context method.
60248func (c *DisksListCall) Pages(ctx context.Context, f func(*DiskList) error) error {
60249	c.ctx_ = ctx
60250	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
60251	for {
60252		x, err := c.Do()
60253		if err != nil {
60254			return err
60255		}
60256		if err := f(x); err != nil {
60257			return err
60258		}
60259		if x.NextPageToken == "" {
60260			return nil
60261		}
60262		c.PageToken(x.NextPageToken)
60263	}
60264}
60265
60266// method id "compute.disks.removeResourcePolicies":
60267
60268type DisksRemoveResourcePoliciesCall struct {
60269	s                                  *Service
60270	project                            string
60271	zone                               string
60272	disk                               string
60273	disksremoveresourcepoliciesrequest *DisksRemoveResourcePoliciesRequest
60274	urlParams_                         gensupport.URLParams
60275	ctx_                               context.Context
60276	header_                            http.Header
60277}
60278
60279// RemoveResourcePolicies: Removes resource policies from a disk.
60280func (r *DisksService) RemoveResourcePolicies(project string, zone string, disk string, disksremoveresourcepoliciesrequest *DisksRemoveResourcePoliciesRequest) *DisksRemoveResourcePoliciesCall {
60281	c := &DisksRemoveResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60282	c.project = project
60283	c.zone = zone
60284	c.disk = disk
60285	c.disksremoveresourcepoliciesrequest = disksremoveresourcepoliciesrequest
60286	return c
60287}
60288
60289// RequestId sets the optional parameter "requestId": An optional
60290// request ID to identify requests. Specify a unique request ID so that
60291// if you must retry your request, the server will know to ignore the
60292// request if it has already been completed.
60293//
60294// For example, consider a situation where you make an initial request
60295// and the request times out. If you make the request again with the
60296// same request ID, the server can check if original operation with the
60297// same request ID was received, and if so, will ignore the second
60298// request. This prevents clients from accidentally creating duplicate
60299// commitments.
60300//
60301// The request ID must be a valid UUID with the exception that zero UUID
60302// is not supported (00000000-0000-0000-0000-000000000000).
60303func (c *DisksRemoveResourcePoliciesCall) RequestId(requestId string) *DisksRemoveResourcePoliciesCall {
60304	c.urlParams_.Set("requestId", requestId)
60305	return c
60306}
60307
60308// Fields allows partial responses to be retrieved. See
60309// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60310// for more information.
60311func (c *DisksRemoveResourcePoliciesCall) Fields(s ...googleapi.Field) *DisksRemoveResourcePoliciesCall {
60312	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60313	return c
60314}
60315
60316// Context sets the context to be used in this call's Do method. Any
60317// pending HTTP request will be aborted if the provided context is
60318// canceled.
60319func (c *DisksRemoveResourcePoliciesCall) Context(ctx context.Context) *DisksRemoveResourcePoliciesCall {
60320	c.ctx_ = ctx
60321	return c
60322}
60323
60324// Header returns an http.Header that can be modified by the caller to
60325// add HTTP headers to the request.
60326func (c *DisksRemoveResourcePoliciesCall) Header() http.Header {
60327	if c.header_ == nil {
60328		c.header_ = make(http.Header)
60329	}
60330	return c.header_
60331}
60332
60333func (c *DisksRemoveResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
60334	reqHeaders := make(http.Header)
60335	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
60336	for k, v := range c.header_ {
60337		reqHeaders[k] = v
60338	}
60339	reqHeaders.Set("User-Agent", c.s.userAgent())
60340	var body io.Reader = nil
60341	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disksremoveresourcepoliciesrequest)
60342	if err != nil {
60343		return nil, err
60344	}
60345	reqHeaders.Set("Content-Type", "application/json")
60346	c.urlParams_.Set("alt", alt)
60347	c.urlParams_.Set("prettyPrint", "false")
60348	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{disk}/removeResourcePolicies")
60349	urls += "?" + c.urlParams_.Encode()
60350	req, err := http.NewRequest("POST", urls, body)
60351	if err != nil {
60352		return nil, err
60353	}
60354	req.Header = reqHeaders
60355	googleapi.Expand(req.URL, map[string]string{
60356		"project": c.project,
60357		"zone":    c.zone,
60358		"disk":    c.disk,
60359	})
60360	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60361}
60362
60363// Do executes the "compute.disks.removeResourcePolicies" call.
60364// Exactly one of *Operation or error will be non-nil. Any non-2xx
60365// status code is an error. Response headers are in either
60366// *Operation.ServerResponse.Header or (if a response was returned at
60367// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
60368// to check whether the returned error was because
60369// http.StatusNotModified was returned.
60370func (c *DisksRemoveResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
60371	gensupport.SetOptions(c.urlParams_, opts...)
60372	res, err := c.doRequest("json")
60373	if res != nil && res.StatusCode == http.StatusNotModified {
60374		if res.Body != nil {
60375			res.Body.Close()
60376		}
60377		return nil, &googleapi.Error{
60378			Code:   res.StatusCode,
60379			Header: res.Header,
60380		}
60381	}
60382	if err != nil {
60383		return nil, err
60384	}
60385	defer googleapi.CloseBody(res)
60386	if err := googleapi.CheckResponse(res); err != nil {
60387		return nil, err
60388	}
60389	ret := &Operation{
60390		ServerResponse: googleapi.ServerResponse{
60391			Header:         res.Header,
60392			HTTPStatusCode: res.StatusCode,
60393		},
60394	}
60395	target := &ret
60396	if err := gensupport.DecodeResponse(target, res); err != nil {
60397		return nil, err
60398	}
60399	return ret, nil
60400	// {
60401	//   "description": "Removes resource policies from a disk.",
60402	//   "httpMethod": "POST",
60403	//   "id": "compute.disks.removeResourcePolicies",
60404	//   "parameterOrder": [
60405	//     "project",
60406	//     "zone",
60407	//     "disk"
60408	//   ],
60409	//   "parameters": {
60410	//     "disk": {
60411	//       "description": "The disk name for this request.",
60412	//       "location": "path",
60413	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
60414	//       "required": true,
60415	//       "type": "string"
60416	//     },
60417	//     "project": {
60418	//       "description": "Project ID for this request.",
60419	//       "location": "path",
60420	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60421	//       "required": true,
60422	//       "type": "string"
60423	//     },
60424	//     "requestId": {
60425	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
60426	//       "location": "query",
60427	//       "type": "string"
60428	//     },
60429	//     "zone": {
60430	//       "description": "The name of the zone for this request.",
60431	//       "location": "path",
60432	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
60433	//       "required": true,
60434	//       "type": "string"
60435	//     }
60436	//   },
60437	//   "path": "projects/{project}/zones/{zone}/disks/{disk}/removeResourcePolicies",
60438	//   "request": {
60439	//     "$ref": "DisksRemoveResourcePoliciesRequest"
60440	//   },
60441	//   "response": {
60442	//     "$ref": "Operation"
60443	//   },
60444	//   "scopes": [
60445	//     "https://www.googleapis.com/auth/cloud-platform",
60446	//     "https://www.googleapis.com/auth/compute"
60447	//   ]
60448	// }
60449
60450}
60451
60452// method id "compute.disks.resize":
60453
60454type DisksResizeCall struct {
60455	s                  *Service
60456	project            string
60457	zone               string
60458	disk               string
60459	disksresizerequest *DisksResizeRequest
60460	urlParams_         gensupport.URLParams
60461	ctx_               context.Context
60462	header_            http.Header
60463}
60464
60465// Resize: Resizes the specified persistent disk. You can only increase
60466// the size of the disk.
60467func (r *DisksService) Resize(project string, zone string, disk string, disksresizerequest *DisksResizeRequest) *DisksResizeCall {
60468	c := &DisksResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60469	c.project = project
60470	c.zone = zone
60471	c.disk = disk
60472	c.disksresizerequest = disksresizerequest
60473	return c
60474}
60475
60476// RequestId sets the optional parameter "requestId": An optional
60477// request ID to identify requests. Specify a unique request ID so that
60478// if you must retry your request, the server will know to ignore the
60479// request if it has already been completed.
60480//
60481// For example, consider a situation where you make an initial request
60482// and the request times out. If you make the request again with the
60483// same request ID, the server can check if original operation with the
60484// same request ID was received, and if so, will ignore the second
60485// request. This prevents clients from accidentally creating duplicate
60486// commitments.
60487//
60488// The request ID must be a valid UUID with the exception that zero UUID
60489// is not supported (00000000-0000-0000-0000-000000000000).
60490func (c *DisksResizeCall) RequestId(requestId string) *DisksResizeCall {
60491	c.urlParams_.Set("requestId", requestId)
60492	return c
60493}
60494
60495// Fields allows partial responses to be retrieved. See
60496// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60497// for more information.
60498func (c *DisksResizeCall) Fields(s ...googleapi.Field) *DisksResizeCall {
60499	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60500	return c
60501}
60502
60503// Context sets the context to be used in this call's Do method. Any
60504// pending HTTP request will be aborted if the provided context is
60505// canceled.
60506func (c *DisksResizeCall) Context(ctx context.Context) *DisksResizeCall {
60507	c.ctx_ = ctx
60508	return c
60509}
60510
60511// Header returns an http.Header that can be modified by the caller to
60512// add HTTP headers to the request.
60513func (c *DisksResizeCall) Header() http.Header {
60514	if c.header_ == nil {
60515		c.header_ = make(http.Header)
60516	}
60517	return c.header_
60518}
60519
60520func (c *DisksResizeCall) doRequest(alt string) (*http.Response, error) {
60521	reqHeaders := make(http.Header)
60522	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
60523	for k, v := range c.header_ {
60524		reqHeaders[k] = v
60525	}
60526	reqHeaders.Set("User-Agent", c.s.userAgent())
60527	var body io.Reader = nil
60528	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disksresizerequest)
60529	if err != nil {
60530		return nil, err
60531	}
60532	reqHeaders.Set("Content-Type", "application/json")
60533	c.urlParams_.Set("alt", alt)
60534	c.urlParams_.Set("prettyPrint", "false")
60535	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{disk}/resize")
60536	urls += "?" + c.urlParams_.Encode()
60537	req, err := http.NewRequest("POST", urls, body)
60538	if err != nil {
60539		return nil, err
60540	}
60541	req.Header = reqHeaders
60542	googleapi.Expand(req.URL, map[string]string{
60543		"project": c.project,
60544		"zone":    c.zone,
60545		"disk":    c.disk,
60546	})
60547	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60548}
60549
60550// Do executes the "compute.disks.resize" call.
60551// Exactly one of *Operation or error will be non-nil. Any non-2xx
60552// status code is an error. Response headers are in either
60553// *Operation.ServerResponse.Header or (if a response was returned at
60554// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
60555// to check whether the returned error was because
60556// http.StatusNotModified was returned.
60557func (c *DisksResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
60558	gensupport.SetOptions(c.urlParams_, opts...)
60559	res, err := c.doRequest("json")
60560	if res != nil && res.StatusCode == http.StatusNotModified {
60561		if res.Body != nil {
60562			res.Body.Close()
60563		}
60564		return nil, &googleapi.Error{
60565			Code:   res.StatusCode,
60566			Header: res.Header,
60567		}
60568	}
60569	if err != nil {
60570		return nil, err
60571	}
60572	defer googleapi.CloseBody(res)
60573	if err := googleapi.CheckResponse(res); err != nil {
60574		return nil, err
60575	}
60576	ret := &Operation{
60577		ServerResponse: googleapi.ServerResponse{
60578			Header:         res.Header,
60579			HTTPStatusCode: res.StatusCode,
60580		},
60581	}
60582	target := &ret
60583	if err := gensupport.DecodeResponse(target, res); err != nil {
60584		return nil, err
60585	}
60586	return ret, nil
60587	// {
60588	//   "description": "Resizes the specified persistent disk. You can only increase the size of the disk.",
60589	//   "httpMethod": "POST",
60590	//   "id": "compute.disks.resize",
60591	//   "parameterOrder": [
60592	//     "project",
60593	//     "zone",
60594	//     "disk"
60595	//   ],
60596	//   "parameters": {
60597	//     "disk": {
60598	//       "description": "The name of the persistent disk.",
60599	//       "location": "path",
60600	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
60601	//       "required": true,
60602	//       "type": "string"
60603	//     },
60604	//     "project": {
60605	//       "description": "Project ID for this request.",
60606	//       "location": "path",
60607	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60608	//       "required": true,
60609	//       "type": "string"
60610	//     },
60611	//     "requestId": {
60612	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
60613	//       "location": "query",
60614	//       "type": "string"
60615	//     },
60616	//     "zone": {
60617	//       "description": "The name of the zone for this request.",
60618	//       "location": "path",
60619	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
60620	//       "required": true,
60621	//       "type": "string"
60622	//     }
60623	//   },
60624	//   "path": "projects/{project}/zones/{zone}/disks/{disk}/resize",
60625	//   "request": {
60626	//     "$ref": "DisksResizeRequest"
60627	//   },
60628	//   "response": {
60629	//     "$ref": "Operation"
60630	//   },
60631	//   "scopes": [
60632	//     "https://www.googleapis.com/auth/cloud-platform",
60633	//     "https://www.googleapis.com/auth/compute"
60634	//   ]
60635	// }
60636
60637}
60638
60639// method id "compute.disks.setIamPolicy":
60640
60641type DisksSetIamPolicyCall struct {
60642	s                    *Service
60643	project              string
60644	zone                 string
60645	resource             string
60646	zonesetpolicyrequest *ZoneSetPolicyRequest
60647	urlParams_           gensupport.URLParams
60648	ctx_                 context.Context
60649	header_              http.Header
60650}
60651
60652// SetIamPolicy: Sets the access control policy on the specified
60653// resource. Replaces any existing policy.
60654func (r *DisksService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *DisksSetIamPolicyCall {
60655	c := &DisksSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60656	c.project = project
60657	c.zone = zone
60658	c.resource = resource
60659	c.zonesetpolicyrequest = zonesetpolicyrequest
60660	return c
60661}
60662
60663// Fields allows partial responses to be retrieved. See
60664// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60665// for more information.
60666func (c *DisksSetIamPolicyCall) Fields(s ...googleapi.Field) *DisksSetIamPolicyCall {
60667	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60668	return c
60669}
60670
60671// Context sets the context to be used in this call's Do method. Any
60672// pending HTTP request will be aborted if the provided context is
60673// canceled.
60674func (c *DisksSetIamPolicyCall) Context(ctx context.Context) *DisksSetIamPolicyCall {
60675	c.ctx_ = ctx
60676	return c
60677}
60678
60679// Header returns an http.Header that can be modified by the caller to
60680// add HTTP headers to the request.
60681func (c *DisksSetIamPolicyCall) Header() http.Header {
60682	if c.header_ == nil {
60683		c.header_ = make(http.Header)
60684	}
60685	return c.header_
60686}
60687
60688func (c *DisksSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
60689	reqHeaders := make(http.Header)
60690	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
60691	for k, v := range c.header_ {
60692		reqHeaders[k] = v
60693	}
60694	reqHeaders.Set("User-Agent", c.s.userAgent())
60695	var body io.Reader = nil
60696	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetpolicyrequest)
60697	if err != nil {
60698		return nil, err
60699	}
60700	reqHeaders.Set("Content-Type", "application/json")
60701	c.urlParams_.Set("alt", alt)
60702	c.urlParams_.Set("prettyPrint", "false")
60703	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{resource}/setIamPolicy")
60704	urls += "?" + c.urlParams_.Encode()
60705	req, err := http.NewRequest("POST", urls, body)
60706	if err != nil {
60707		return nil, err
60708	}
60709	req.Header = reqHeaders
60710	googleapi.Expand(req.URL, map[string]string{
60711		"project":  c.project,
60712		"zone":     c.zone,
60713		"resource": c.resource,
60714	})
60715	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60716}
60717
60718// Do executes the "compute.disks.setIamPolicy" call.
60719// Exactly one of *Policy or error will be non-nil. Any non-2xx status
60720// code is an error. Response headers are in either
60721// *Policy.ServerResponse.Header or (if a response was returned at all)
60722// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
60723// check whether the returned error was because http.StatusNotModified
60724// was returned.
60725func (c *DisksSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
60726	gensupport.SetOptions(c.urlParams_, opts...)
60727	res, err := c.doRequest("json")
60728	if res != nil && res.StatusCode == http.StatusNotModified {
60729		if res.Body != nil {
60730			res.Body.Close()
60731		}
60732		return nil, &googleapi.Error{
60733			Code:   res.StatusCode,
60734			Header: res.Header,
60735		}
60736	}
60737	if err != nil {
60738		return nil, err
60739	}
60740	defer googleapi.CloseBody(res)
60741	if err := googleapi.CheckResponse(res); err != nil {
60742		return nil, err
60743	}
60744	ret := &Policy{
60745		ServerResponse: googleapi.ServerResponse{
60746			Header:         res.Header,
60747			HTTPStatusCode: res.StatusCode,
60748		},
60749	}
60750	target := &ret
60751	if err := gensupport.DecodeResponse(target, res); err != nil {
60752		return nil, err
60753	}
60754	return ret, nil
60755	// {
60756	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
60757	//   "httpMethod": "POST",
60758	//   "id": "compute.disks.setIamPolicy",
60759	//   "parameterOrder": [
60760	//     "project",
60761	//     "zone",
60762	//     "resource"
60763	//   ],
60764	//   "parameters": {
60765	//     "project": {
60766	//       "description": "Project ID for this request.",
60767	//       "location": "path",
60768	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60769	//       "required": true,
60770	//       "type": "string"
60771	//     },
60772	//     "resource": {
60773	//       "description": "Name or id of the resource for this request.",
60774	//       "location": "path",
60775	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
60776	//       "required": true,
60777	//       "type": "string"
60778	//     },
60779	//     "zone": {
60780	//       "description": "The name of the zone for this request.",
60781	//       "location": "path",
60782	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
60783	//       "required": true,
60784	//       "type": "string"
60785	//     }
60786	//   },
60787	//   "path": "projects/{project}/zones/{zone}/disks/{resource}/setIamPolicy",
60788	//   "request": {
60789	//     "$ref": "ZoneSetPolicyRequest"
60790	//   },
60791	//   "response": {
60792	//     "$ref": "Policy"
60793	//   },
60794	//   "scopes": [
60795	//     "https://www.googleapis.com/auth/cloud-platform",
60796	//     "https://www.googleapis.com/auth/compute"
60797	//   ]
60798	// }
60799
60800}
60801
60802// method id "compute.disks.setLabels":
60803
60804type DisksSetLabelsCall struct {
60805	s                    *Service
60806	project              string
60807	zone                 string
60808	resource             string
60809	zonesetlabelsrequest *ZoneSetLabelsRequest
60810	urlParams_           gensupport.URLParams
60811	ctx_                 context.Context
60812	header_              http.Header
60813}
60814
60815// SetLabels: Sets the labels on a disk. To learn more about labels,
60816// read the Labeling Resources documentation.
60817func (r *DisksService) SetLabels(project string, zone string, resource string, zonesetlabelsrequest *ZoneSetLabelsRequest) *DisksSetLabelsCall {
60818	c := &DisksSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60819	c.project = project
60820	c.zone = zone
60821	c.resource = resource
60822	c.zonesetlabelsrequest = zonesetlabelsrequest
60823	return c
60824}
60825
60826// RequestId sets the optional parameter "requestId": An optional
60827// request ID to identify requests. Specify a unique request ID so that
60828// if you must retry your request, the server will know to ignore the
60829// request if it has already been completed.
60830//
60831// For example, consider a situation where you make an initial request
60832// and the request times out. If you make the request again with the
60833// same request ID, the server can check if original operation with the
60834// same request ID was received, and if so, will ignore the second
60835// request. This prevents clients from accidentally creating duplicate
60836// commitments.
60837//
60838// The request ID must be a valid UUID with the exception that zero UUID
60839// is not supported (00000000-0000-0000-0000-000000000000).
60840func (c *DisksSetLabelsCall) RequestId(requestId string) *DisksSetLabelsCall {
60841	c.urlParams_.Set("requestId", requestId)
60842	return c
60843}
60844
60845// Fields allows partial responses to be retrieved. See
60846// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60847// for more information.
60848func (c *DisksSetLabelsCall) Fields(s ...googleapi.Field) *DisksSetLabelsCall {
60849	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60850	return c
60851}
60852
60853// Context sets the context to be used in this call's Do method. Any
60854// pending HTTP request will be aborted if the provided context is
60855// canceled.
60856func (c *DisksSetLabelsCall) Context(ctx context.Context) *DisksSetLabelsCall {
60857	c.ctx_ = ctx
60858	return c
60859}
60860
60861// Header returns an http.Header that can be modified by the caller to
60862// add HTTP headers to the request.
60863func (c *DisksSetLabelsCall) Header() http.Header {
60864	if c.header_ == nil {
60865		c.header_ = make(http.Header)
60866	}
60867	return c.header_
60868}
60869
60870func (c *DisksSetLabelsCall) doRequest(alt string) (*http.Response, error) {
60871	reqHeaders := make(http.Header)
60872	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
60873	for k, v := range c.header_ {
60874		reqHeaders[k] = v
60875	}
60876	reqHeaders.Set("User-Agent", c.s.userAgent())
60877	var body io.Reader = nil
60878	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetlabelsrequest)
60879	if err != nil {
60880		return nil, err
60881	}
60882	reqHeaders.Set("Content-Type", "application/json")
60883	c.urlParams_.Set("alt", alt)
60884	c.urlParams_.Set("prettyPrint", "false")
60885	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{resource}/setLabels")
60886	urls += "?" + c.urlParams_.Encode()
60887	req, err := http.NewRequest("POST", urls, body)
60888	if err != nil {
60889		return nil, err
60890	}
60891	req.Header = reqHeaders
60892	googleapi.Expand(req.URL, map[string]string{
60893		"project":  c.project,
60894		"zone":     c.zone,
60895		"resource": c.resource,
60896	})
60897	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60898}
60899
60900// Do executes the "compute.disks.setLabels" call.
60901// Exactly one of *Operation or error will be non-nil. Any non-2xx
60902// status code is an error. Response headers are in either
60903// *Operation.ServerResponse.Header or (if a response was returned at
60904// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
60905// to check whether the returned error was because
60906// http.StatusNotModified was returned.
60907func (c *DisksSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
60908	gensupport.SetOptions(c.urlParams_, opts...)
60909	res, err := c.doRequest("json")
60910	if res != nil && res.StatusCode == http.StatusNotModified {
60911		if res.Body != nil {
60912			res.Body.Close()
60913		}
60914		return nil, &googleapi.Error{
60915			Code:   res.StatusCode,
60916			Header: res.Header,
60917		}
60918	}
60919	if err != nil {
60920		return nil, err
60921	}
60922	defer googleapi.CloseBody(res)
60923	if err := googleapi.CheckResponse(res); err != nil {
60924		return nil, err
60925	}
60926	ret := &Operation{
60927		ServerResponse: googleapi.ServerResponse{
60928			Header:         res.Header,
60929			HTTPStatusCode: res.StatusCode,
60930		},
60931	}
60932	target := &ret
60933	if err := gensupport.DecodeResponse(target, res); err != nil {
60934		return nil, err
60935	}
60936	return ret, nil
60937	// {
60938	//   "description": "Sets the labels on a disk. To learn more about labels, read the Labeling Resources documentation.",
60939	//   "httpMethod": "POST",
60940	//   "id": "compute.disks.setLabels",
60941	//   "parameterOrder": [
60942	//     "project",
60943	//     "zone",
60944	//     "resource"
60945	//   ],
60946	//   "parameters": {
60947	//     "project": {
60948	//       "description": "Project ID for this request.",
60949	//       "location": "path",
60950	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60951	//       "required": true,
60952	//       "type": "string"
60953	//     },
60954	//     "requestId": {
60955	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
60956	//       "location": "query",
60957	//       "type": "string"
60958	//     },
60959	//     "resource": {
60960	//       "description": "Name or id of the resource for this request.",
60961	//       "location": "path",
60962	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
60963	//       "required": true,
60964	//       "type": "string"
60965	//     },
60966	//     "zone": {
60967	//       "description": "The name of the zone for this request.",
60968	//       "location": "path",
60969	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
60970	//       "required": true,
60971	//       "type": "string"
60972	//     }
60973	//   },
60974	//   "path": "projects/{project}/zones/{zone}/disks/{resource}/setLabels",
60975	//   "request": {
60976	//     "$ref": "ZoneSetLabelsRequest"
60977	//   },
60978	//   "response": {
60979	//     "$ref": "Operation"
60980	//   },
60981	//   "scopes": [
60982	//     "https://www.googleapis.com/auth/cloud-platform",
60983	//     "https://www.googleapis.com/auth/compute"
60984	//   ]
60985	// }
60986
60987}
60988
60989// method id "compute.disks.testIamPermissions":
60990
60991type DisksTestIamPermissionsCall struct {
60992	s                      *Service
60993	project                string
60994	zone                   string
60995	resource               string
60996	testpermissionsrequest *TestPermissionsRequest
60997	urlParams_             gensupport.URLParams
60998	ctx_                   context.Context
60999	header_                http.Header
61000}
61001
61002// TestIamPermissions: Returns permissions that a caller has on the
61003// specified resource.
61004func (r *DisksService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *DisksTestIamPermissionsCall {
61005	c := &DisksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61006	c.project = project
61007	c.zone = zone
61008	c.resource = resource
61009	c.testpermissionsrequest = testpermissionsrequest
61010	return c
61011}
61012
61013// Fields allows partial responses to be retrieved. See
61014// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61015// for more information.
61016func (c *DisksTestIamPermissionsCall) Fields(s ...googleapi.Field) *DisksTestIamPermissionsCall {
61017	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61018	return c
61019}
61020
61021// Context sets the context to be used in this call's Do method. Any
61022// pending HTTP request will be aborted if the provided context is
61023// canceled.
61024func (c *DisksTestIamPermissionsCall) Context(ctx context.Context) *DisksTestIamPermissionsCall {
61025	c.ctx_ = ctx
61026	return c
61027}
61028
61029// Header returns an http.Header that can be modified by the caller to
61030// add HTTP headers to the request.
61031func (c *DisksTestIamPermissionsCall) Header() http.Header {
61032	if c.header_ == nil {
61033		c.header_ = make(http.Header)
61034	}
61035	return c.header_
61036}
61037
61038func (c *DisksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
61039	reqHeaders := make(http.Header)
61040	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
61041	for k, v := range c.header_ {
61042		reqHeaders[k] = v
61043	}
61044	reqHeaders.Set("User-Agent", c.s.userAgent())
61045	var body io.Reader = nil
61046	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
61047	if err != nil {
61048		return nil, err
61049	}
61050	reqHeaders.Set("Content-Type", "application/json")
61051	c.urlParams_.Set("alt", alt)
61052	c.urlParams_.Set("prettyPrint", "false")
61053	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{resource}/testIamPermissions")
61054	urls += "?" + c.urlParams_.Encode()
61055	req, err := http.NewRequest("POST", urls, body)
61056	if err != nil {
61057		return nil, err
61058	}
61059	req.Header = reqHeaders
61060	googleapi.Expand(req.URL, map[string]string{
61061		"project":  c.project,
61062		"zone":     c.zone,
61063		"resource": c.resource,
61064	})
61065	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61066}
61067
61068// Do executes the "compute.disks.testIamPermissions" call.
61069// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
61070// non-2xx status code is an error. Response headers are in either
61071// *TestPermissionsResponse.ServerResponse.Header or (if a response was
61072// returned at all) in error.(*googleapi.Error).Header. Use
61073// googleapi.IsNotModified to check whether the returned error was
61074// because http.StatusNotModified was returned.
61075func (c *DisksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
61076	gensupport.SetOptions(c.urlParams_, opts...)
61077	res, err := c.doRequest("json")
61078	if res != nil && res.StatusCode == http.StatusNotModified {
61079		if res.Body != nil {
61080			res.Body.Close()
61081		}
61082		return nil, &googleapi.Error{
61083			Code:   res.StatusCode,
61084			Header: res.Header,
61085		}
61086	}
61087	if err != nil {
61088		return nil, err
61089	}
61090	defer googleapi.CloseBody(res)
61091	if err := googleapi.CheckResponse(res); err != nil {
61092		return nil, err
61093	}
61094	ret := &TestPermissionsResponse{
61095		ServerResponse: googleapi.ServerResponse{
61096			Header:         res.Header,
61097			HTTPStatusCode: res.StatusCode,
61098		},
61099	}
61100	target := &ret
61101	if err := gensupport.DecodeResponse(target, res); err != nil {
61102		return nil, err
61103	}
61104	return ret, nil
61105	// {
61106	//   "description": "Returns permissions that a caller has on the specified resource.",
61107	//   "httpMethod": "POST",
61108	//   "id": "compute.disks.testIamPermissions",
61109	//   "parameterOrder": [
61110	//     "project",
61111	//     "zone",
61112	//     "resource"
61113	//   ],
61114	//   "parameters": {
61115	//     "project": {
61116	//       "description": "Project ID for this request.",
61117	//       "location": "path",
61118	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61119	//       "required": true,
61120	//       "type": "string"
61121	//     },
61122	//     "resource": {
61123	//       "description": "Name or id of the resource for this request.",
61124	//       "location": "path",
61125	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
61126	//       "required": true,
61127	//       "type": "string"
61128	//     },
61129	//     "zone": {
61130	//       "description": "The name of the zone for this request.",
61131	//       "location": "path",
61132	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
61133	//       "required": true,
61134	//       "type": "string"
61135	//     }
61136	//   },
61137	//   "path": "projects/{project}/zones/{zone}/disks/{resource}/testIamPermissions",
61138	//   "request": {
61139	//     "$ref": "TestPermissionsRequest"
61140	//   },
61141	//   "response": {
61142	//     "$ref": "TestPermissionsResponse"
61143	//   },
61144	//   "scopes": [
61145	//     "https://www.googleapis.com/auth/cloud-platform",
61146	//     "https://www.googleapis.com/auth/compute",
61147	//     "https://www.googleapis.com/auth/compute.readonly"
61148	//   ]
61149	// }
61150
61151}
61152
61153// method id "compute.externalVpnGateways.delete":
61154
61155type ExternalVpnGatewaysDeleteCall struct {
61156	s                  *Service
61157	project            string
61158	externalVpnGateway string
61159	urlParams_         gensupport.URLParams
61160	ctx_               context.Context
61161	header_            http.Header
61162}
61163
61164// Delete: Deletes the specified externalVpnGateway.
61165func (r *ExternalVpnGatewaysService) Delete(project string, externalVpnGateway string) *ExternalVpnGatewaysDeleteCall {
61166	c := &ExternalVpnGatewaysDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61167	c.project = project
61168	c.externalVpnGateway = externalVpnGateway
61169	return c
61170}
61171
61172// RequestId sets the optional parameter "requestId": An optional
61173// request ID to identify requests. Specify a unique request ID so that
61174// if you must retry your request, the server will know to ignore the
61175// request if it has already been completed.
61176//
61177// For example, consider a situation where you make an initial request
61178// and the request times out. If you make the request again with the
61179// same request ID, the server can check if original operation with the
61180// same request ID was received, and if so, will ignore the second
61181// request. This prevents clients from accidentally creating duplicate
61182// commitments.
61183//
61184// The request ID must be a valid UUID with the exception that zero UUID
61185// is not supported (00000000-0000-0000-0000-000000000000).
61186func (c *ExternalVpnGatewaysDeleteCall) RequestId(requestId string) *ExternalVpnGatewaysDeleteCall {
61187	c.urlParams_.Set("requestId", requestId)
61188	return c
61189}
61190
61191// Fields allows partial responses to be retrieved. See
61192// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61193// for more information.
61194func (c *ExternalVpnGatewaysDeleteCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysDeleteCall {
61195	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61196	return c
61197}
61198
61199// Context sets the context to be used in this call's Do method. Any
61200// pending HTTP request will be aborted if the provided context is
61201// canceled.
61202func (c *ExternalVpnGatewaysDeleteCall) Context(ctx context.Context) *ExternalVpnGatewaysDeleteCall {
61203	c.ctx_ = ctx
61204	return c
61205}
61206
61207// Header returns an http.Header that can be modified by the caller to
61208// add HTTP headers to the request.
61209func (c *ExternalVpnGatewaysDeleteCall) Header() http.Header {
61210	if c.header_ == nil {
61211		c.header_ = make(http.Header)
61212	}
61213	return c.header_
61214}
61215
61216func (c *ExternalVpnGatewaysDeleteCall) doRequest(alt string) (*http.Response, error) {
61217	reqHeaders := make(http.Header)
61218	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
61219	for k, v := range c.header_ {
61220		reqHeaders[k] = v
61221	}
61222	reqHeaders.Set("User-Agent", c.s.userAgent())
61223	var body io.Reader = nil
61224	c.urlParams_.Set("alt", alt)
61225	c.urlParams_.Set("prettyPrint", "false")
61226	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/externalVpnGateways/{externalVpnGateway}")
61227	urls += "?" + c.urlParams_.Encode()
61228	req, err := http.NewRequest("DELETE", urls, body)
61229	if err != nil {
61230		return nil, err
61231	}
61232	req.Header = reqHeaders
61233	googleapi.Expand(req.URL, map[string]string{
61234		"project":            c.project,
61235		"externalVpnGateway": c.externalVpnGateway,
61236	})
61237	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61238}
61239
61240// Do executes the "compute.externalVpnGateways.delete" call.
61241// Exactly one of *Operation or error will be non-nil. Any non-2xx
61242// status code is an error. Response headers are in either
61243// *Operation.ServerResponse.Header or (if a response was returned at
61244// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
61245// to check whether the returned error was because
61246// http.StatusNotModified was returned.
61247func (c *ExternalVpnGatewaysDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
61248	gensupport.SetOptions(c.urlParams_, opts...)
61249	res, err := c.doRequest("json")
61250	if res != nil && res.StatusCode == http.StatusNotModified {
61251		if res.Body != nil {
61252			res.Body.Close()
61253		}
61254		return nil, &googleapi.Error{
61255			Code:   res.StatusCode,
61256			Header: res.Header,
61257		}
61258	}
61259	if err != nil {
61260		return nil, err
61261	}
61262	defer googleapi.CloseBody(res)
61263	if err := googleapi.CheckResponse(res); err != nil {
61264		return nil, err
61265	}
61266	ret := &Operation{
61267		ServerResponse: googleapi.ServerResponse{
61268			Header:         res.Header,
61269			HTTPStatusCode: res.StatusCode,
61270		},
61271	}
61272	target := &ret
61273	if err := gensupport.DecodeResponse(target, res); err != nil {
61274		return nil, err
61275	}
61276	return ret, nil
61277	// {
61278	//   "description": "Deletes the specified externalVpnGateway.",
61279	//   "httpMethod": "DELETE",
61280	//   "id": "compute.externalVpnGateways.delete",
61281	//   "parameterOrder": [
61282	//     "project",
61283	//     "externalVpnGateway"
61284	//   ],
61285	//   "parameters": {
61286	//     "externalVpnGateway": {
61287	//       "description": "Name of the externalVpnGateways to delete.",
61288	//       "location": "path",
61289	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
61290	//       "required": true,
61291	//       "type": "string"
61292	//     },
61293	//     "project": {
61294	//       "description": "Project ID for this request.",
61295	//       "location": "path",
61296	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61297	//       "required": true,
61298	//       "type": "string"
61299	//     },
61300	//     "requestId": {
61301	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
61302	//       "location": "query",
61303	//       "type": "string"
61304	//     }
61305	//   },
61306	//   "path": "projects/{project}/global/externalVpnGateways/{externalVpnGateway}",
61307	//   "response": {
61308	//     "$ref": "Operation"
61309	//   },
61310	//   "scopes": [
61311	//     "https://www.googleapis.com/auth/cloud-platform",
61312	//     "https://www.googleapis.com/auth/compute"
61313	//   ]
61314	// }
61315
61316}
61317
61318// method id "compute.externalVpnGateways.get":
61319
61320type ExternalVpnGatewaysGetCall struct {
61321	s                  *Service
61322	project            string
61323	externalVpnGateway string
61324	urlParams_         gensupport.URLParams
61325	ifNoneMatch_       string
61326	ctx_               context.Context
61327	header_            http.Header
61328}
61329
61330// Get: Returns the specified externalVpnGateway. Get a list of
61331// available externalVpnGateways by making a list() request.
61332func (r *ExternalVpnGatewaysService) Get(project string, externalVpnGateway string) *ExternalVpnGatewaysGetCall {
61333	c := &ExternalVpnGatewaysGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61334	c.project = project
61335	c.externalVpnGateway = externalVpnGateway
61336	return c
61337}
61338
61339// Fields allows partial responses to be retrieved. See
61340// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61341// for more information.
61342func (c *ExternalVpnGatewaysGetCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysGetCall {
61343	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61344	return c
61345}
61346
61347// IfNoneMatch sets the optional parameter which makes the operation
61348// fail if the object's ETag matches the given value. This is useful for
61349// getting updates only after the object has changed since the last
61350// request. Use googleapi.IsNotModified to check whether the response
61351// error from Do is the result of In-None-Match.
61352func (c *ExternalVpnGatewaysGetCall) IfNoneMatch(entityTag string) *ExternalVpnGatewaysGetCall {
61353	c.ifNoneMatch_ = entityTag
61354	return c
61355}
61356
61357// Context sets the context to be used in this call's Do method. Any
61358// pending HTTP request will be aborted if the provided context is
61359// canceled.
61360func (c *ExternalVpnGatewaysGetCall) Context(ctx context.Context) *ExternalVpnGatewaysGetCall {
61361	c.ctx_ = ctx
61362	return c
61363}
61364
61365// Header returns an http.Header that can be modified by the caller to
61366// add HTTP headers to the request.
61367func (c *ExternalVpnGatewaysGetCall) Header() http.Header {
61368	if c.header_ == nil {
61369		c.header_ = make(http.Header)
61370	}
61371	return c.header_
61372}
61373
61374func (c *ExternalVpnGatewaysGetCall) doRequest(alt string) (*http.Response, error) {
61375	reqHeaders := make(http.Header)
61376	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
61377	for k, v := range c.header_ {
61378		reqHeaders[k] = v
61379	}
61380	reqHeaders.Set("User-Agent", c.s.userAgent())
61381	if c.ifNoneMatch_ != "" {
61382		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
61383	}
61384	var body io.Reader = nil
61385	c.urlParams_.Set("alt", alt)
61386	c.urlParams_.Set("prettyPrint", "false")
61387	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/externalVpnGateways/{externalVpnGateway}")
61388	urls += "?" + c.urlParams_.Encode()
61389	req, err := http.NewRequest("GET", urls, body)
61390	if err != nil {
61391		return nil, err
61392	}
61393	req.Header = reqHeaders
61394	googleapi.Expand(req.URL, map[string]string{
61395		"project":            c.project,
61396		"externalVpnGateway": c.externalVpnGateway,
61397	})
61398	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61399}
61400
61401// Do executes the "compute.externalVpnGateways.get" call.
61402// Exactly one of *ExternalVpnGateway or error will be non-nil. Any
61403// non-2xx status code is an error. Response headers are in either
61404// *ExternalVpnGateway.ServerResponse.Header or (if a response was
61405// returned at all) in error.(*googleapi.Error).Header. Use
61406// googleapi.IsNotModified to check whether the returned error was
61407// because http.StatusNotModified was returned.
61408func (c *ExternalVpnGatewaysGetCall) Do(opts ...googleapi.CallOption) (*ExternalVpnGateway, error) {
61409	gensupport.SetOptions(c.urlParams_, opts...)
61410	res, err := c.doRequest("json")
61411	if res != nil && res.StatusCode == http.StatusNotModified {
61412		if res.Body != nil {
61413			res.Body.Close()
61414		}
61415		return nil, &googleapi.Error{
61416			Code:   res.StatusCode,
61417			Header: res.Header,
61418		}
61419	}
61420	if err != nil {
61421		return nil, err
61422	}
61423	defer googleapi.CloseBody(res)
61424	if err := googleapi.CheckResponse(res); err != nil {
61425		return nil, err
61426	}
61427	ret := &ExternalVpnGateway{
61428		ServerResponse: googleapi.ServerResponse{
61429			Header:         res.Header,
61430			HTTPStatusCode: res.StatusCode,
61431		},
61432	}
61433	target := &ret
61434	if err := gensupport.DecodeResponse(target, res); err != nil {
61435		return nil, err
61436	}
61437	return ret, nil
61438	// {
61439	//   "description": "Returns the specified externalVpnGateway. Get a list of available externalVpnGateways by making a list() request.",
61440	//   "httpMethod": "GET",
61441	//   "id": "compute.externalVpnGateways.get",
61442	//   "parameterOrder": [
61443	//     "project",
61444	//     "externalVpnGateway"
61445	//   ],
61446	//   "parameters": {
61447	//     "externalVpnGateway": {
61448	//       "description": "Name of the externalVpnGateway to return.",
61449	//       "location": "path",
61450	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
61451	//       "required": true,
61452	//       "type": "string"
61453	//     },
61454	//     "project": {
61455	//       "description": "Project ID for this request.",
61456	//       "location": "path",
61457	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61458	//       "required": true,
61459	//       "type": "string"
61460	//     }
61461	//   },
61462	//   "path": "projects/{project}/global/externalVpnGateways/{externalVpnGateway}",
61463	//   "response": {
61464	//     "$ref": "ExternalVpnGateway"
61465	//   },
61466	//   "scopes": [
61467	//     "https://www.googleapis.com/auth/cloud-platform",
61468	//     "https://www.googleapis.com/auth/compute",
61469	//     "https://www.googleapis.com/auth/compute.readonly"
61470	//   ]
61471	// }
61472
61473}
61474
61475// method id "compute.externalVpnGateways.insert":
61476
61477type ExternalVpnGatewaysInsertCall struct {
61478	s                  *Service
61479	project            string
61480	externalvpngateway *ExternalVpnGateway
61481	urlParams_         gensupport.URLParams
61482	ctx_               context.Context
61483	header_            http.Header
61484}
61485
61486// Insert: Creates a ExternalVpnGateway in the specified project using
61487// the data included in the request.
61488func (r *ExternalVpnGatewaysService) Insert(project string, externalvpngateway *ExternalVpnGateway) *ExternalVpnGatewaysInsertCall {
61489	c := &ExternalVpnGatewaysInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61490	c.project = project
61491	c.externalvpngateway = externalvpngateway
61492	return c
61493}
61494
61495// RequestId sets the optional parameter "requestId": An optional
61496// request ID to identify requests. Specify a unique request ID so that
61497// if you must retry your request, the server will know to ignore the
61498// request if it has already been completed.
61499//
61500// For example, consider a situation where you make an initial request
61501// and the request times out. If you make the request again with the
61502// same request ID, the server can check if original operation with the
61503// same request ID was received, and if so, will ignore the second
61504// request. This prevents clients from accidentally creating duplicate
61505// commitments.
61506//
61507// The request ID must be a valid UUID with the exception that zero UUID
61508// is not supported (00000000-0000-0000-0000-000000000000).
61509func (c *ExternalVpnGatewaysInsertCall) RequestId(requestId string) *ExternalVpnGatewaysInsertCall {
61510	c.urlParams_.Set("requestId", requestId)
61511	return c
61512}
61513
61514// Fields allows partial responses to be retrieved. See
61515// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61516// for more information.
61517func (c *ExternalVpnGatewaysInsertCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysInsertCall {
61518	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61519	return c
61520}
61521
61522// Context sets the context to be used in this call's Do method. Any
61523// pending HTTP request will be aborted if the provided context is
61524// canceled.
61525func (c *ExternalVpnGatewaysInsertCall) Context(ctx context.Context) *ExternalVpnGatewaysInsertCall {
61526	c.ctx_ = ctx
61527	return c
61528}
61529
61530// Header returns an http.Header that can be modified by the caller to
61531// add HTTP headers to the request.
61532func (c *ExternalVpnGatewaysInsertCall) Header() http.Header {
61533	if c.header_ == nil {
61534		c.header_ = make(http.Header)
61535	}
61536	return c.header_
61537}
61538
61539func (c *ExternalVpnGatewaysInsertCall) doRequest(alt string) (*http.Response, error) {
61540	reqHeaders := make(http.Header)
61541	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
61542	for k, v := range c.header_ {
61543		reqHeaders[k] = v
61544	}
61545	reqHeaders.Set("User-Agent", c.s.userAgent())
61546	var body io.Reader = nil
61547	body, err := googleapi.WithoutDataWrapper.JSONReader(c.externalvpngateway)
61548	if err != nil {
61549		return nil, err
61550	}
61551	reqHeaders.Set("Content-Type", "application/json")
61552	c.urlParams_.Set("alt", alt)
61553	c.urlParams_.Set("prettyPrint", "false")
61554	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/externalVpnGateways")
61555	urls += "?" + c.urlParams_.Encode()
61556	req, err := http.NewRequest("POST", urls, body)
61557	if err != nil {
61558		return nil, err
61559	}
61560	req.Header = reqHeaders
61561	googleapi.Expand(req.URL, map[string]string{
61562		"project": c.project,
61563	})
61564	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61565}
61566
61567// Do executes the "compute.externalVpnGateways.insert" call.
61568// Exactly one of *Operation or error will be non-nil. Any non-2xx
61569// status code is an error. Response headers are in either
61570// *Operation.ServerResponse.Header or (if a response was returned at
61571// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
61572// to check whether the returned error was because
61573// http.StatusNotModified was returned.
61574func (c *ExternalVpnGatewaysInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
61575	gensupport.SetOptions(c.urlParams_, opts...)
61576	res, err := c.doRequest("json")
61577	if res != nil && res.StatusCode == http.StatusNotModified {
61578		if res.Body != nil {
61579			res.Body.Close()
61580		}
61581		return nil, &googleapi.Error{
61582			Code:   res.StatusCode,
61583			Header: res.Header,
61584		}
61585	}
61586	if err != nil {
61587		return nil, err
61588	}
61589	defer googleapi.CloseBody(res)
61590	if err := googleapi.CheckResponse(res); err != nil {
61591		return nil, err
61592	}
61593	ret := &Operation{
61594		ServerResponse: googleapi.ServerResponse{
61595			Header:         res.Header,
61596			HTTPStatusCode: res.StatusCode,
61597		},
61598	}
61599	target := &ret
61600	if err := gensupport.DecodeResponse(target, res); err != nil {
61601		return nil, err
61602	}
61603	return ret, nil
61604	// {
61605	//   "description": "Creates a ExternalVpnGateway in the specified project using the data included in the request.",
61606	//   "httpMethod": "POST",
61607	//   "id": "compute.externalVpnGateways.insert",
61608	//   "parameterOrder": [
61609	//     "project"
61610	//   ],
61611	//   "parameters": {
61612	//     "project": {
61613	//       "description": "Project ID for this request.",
61614	//       "location": "path",
61615	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61616	//       "required": true,
61617	//       "type": "string"
61618	//     },
61619	//     "requestId": {
61620	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
61621	//       "location": "query",
61622	//       "type": "string"
61623	//     }
61624	//   },
61625	//   "path": "projects/{project}/global/externalVpnGateways",
61626	//   "request": {
61627	//     "$ref": "ExternalVpnGateway"
61628	//   },
61629	//   "response": {
61630	//     "$ref": "Operation"
61631	//   },
61632	//   "scopes": [
61633	//     "https://www.googleapis.com/auth/cloud-platform",
61634	//     "https://www.googleapis.com/auth/compute"
61635	//   ]
61636	// }
61637
61638}
61639
61640// method id "compute.externalVpnGateways.list":
61641
61642type ExternalVpnGatewaysListCall struct {
61643	s            *Service
61644	project      string
61645	urlParams_   gensupport.URLParams
61646	ifNoneMatch_ string
61647	ctx_         context.Context
61648	header_      http.Header
61649}
61650
61651// List: Retrieves the list of ExternalVpnGateway available to the
61652// specified project.
61653func (r *ExternalVpnGatewaysService) List(project string) *ExternalVpnGatewaysListCall {
61654	c := &ExternalVpnGatewaysListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61655	c.project = project
61656	return c
61657}
61658
61659// Filter sets the optional parameter "filter": A filter expression that
61660// filters resources listed in the response. The expression must specify
61661// the field name, a comparison operator, and the value that you want to
61662// use for filtering. The value must be a string, a number, or a
61663// boolean. The comparison operator must be either `=`, `!=`, `>`, or
61664// `<`.
61665//
61666// For example, if you are filtering Compute Engine instances, you can
61667// exclude instances named `example-instance` by specifying `name !=
61668// example-instance`.
61669//
61670// You can also filter nested fields. For example, you could specify
61671// `scheduling.automaticRestart = false` to include instances only if
61672// they are not scheduled for automatic restarts. You can use filtering
61673// on nested fields to filter based on resource labels.
61674//
61675// To filter on multiple expressions, provide each separate expression
61676// within parentheses. For example: ``` (scheduling.automaticRestart =
61677// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
61678// is an `AND` expression. However, you can include `AND` and `OR`
61679// expressions explicitly. For example: ``` (cpuPlatform = "Intel
61680// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
61681// (scheduling.automaticRestart = true) ```
61682func (c *ExternalVpnGatewaysListCall) Filter(filter string) *ExternalVpnGatewaysListCall {
61683	c.urlParams_.Set("filter", filter)
61684	return c
61685}
61686
61687// MaxResults sets the optional parameter "maxResults": The maximum
61688// number of results per page that should be returned. If the number of
61689// available results is larger than `maxResults`, Compute Engine returns
61690// a `nextPageToken` that can be used to get the next page of results in
61691// subsequent list requests. Acceptable values are `0` to `500`,
61692// inclusive. (Default: `500`)
61693func (c *ExternalVpnGatewaysListCall) MaxResults(maxResults int64) *ExternalVpnGatewaysListCall {
61694	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
61695	return c
61696}
61697
61698// OrderBy sets the optional parameter "orderBy": Sorts list results by
61699// a certain order. By default, results are returned in alphanumerical
61700// order based on the resource name.
61701//
61702// You can also sort results in descending order based on the creation
61703// timestamp using `orderBy="creationTimestamp desc". This sorts
61704// results based on the `creationTimestamp` field in reverse
61705// chronological order (newest result first). Use this to sort resources
61706// like operations so that the newest operation is returned
61707// first.
61708//
61709// Currently, only sorting by `name` or `creationTimestamp desc` is
61710// supported.
61711func (c *ExternalVpnGatewaysListCall) OrderBy(orderBy string) *ExternalVpnGatewaysListCall {
61712	c.urlParams_.Set("orderBy", orderBy)
61713	return c
61714}
61715
61716// PageToken sets the optional parameter "pageToken": Specifies a page
61717// token to use. Set `pageToken` to the `nextPageToken` returned by a
61718// previous list request to get the next page of results.
61719func (c *ExternalVpnGatewaysListCall) PageToken(pageToken string) *ExternalVpnGatewaysListCall {
61720	c.urlParams_.Set("pageToken", pageToken)
61721	return c
61722}
61723
61724// ReturnPartialSuccess sets the optional parameter
61725// "returnPartialSuccess": Opt-in for partial success behavior which
61726// provides partial results in case of failure. The default value is
61727// false.
61728func (c *ExternalVpnGatewaysListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ExternalVpnGatewaysListCall {
61729	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
61730	return c
61731}
61732
61733// Fields allows partial responses to be retrieved. See
61734// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61735// for more information.
61736func (c *ExternalVpnGatewaysListCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysListCall {
61737	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61738	return c
61739}
61740
61741// IfNoneMatch sets the optional parameter which makes the operation
61742// fail if the object's ETag matches the given value. This is useful for
61743// getting updates only after the object has changed since the last
61744// request. Use googleapi.IsNotModified to check whether the response
61745// error from Do is the result of In-None-Match.
61746func (c *ExternalVpnGatewaysListCall) IfNoneMatch(entityTag string) *ExternalVpnGatewaysListCall {
61747	c.ifNoneMatch_ = entityTag
61748	return c
61749}
61750
61751// Context sets the context to be used in this call's Do method. Any
61752// pending HTTP request will be aborted if the provided context is
61753// canceled.
61754func (c *ExternalVpnGatewaysListCall) Context(ctx context.Context) *ExternalVpnGatewaysListCall {
61755	c.ctx_ = ctx
61756	return c
61757}
61758
61759// Header returns an http.Header that can be modified by the caller to
61760// add HTTP headers to the request.
61761func (c *ExternalVpnGatewaysListCall) Header() http.Header {
61762	if c.header_ == nil {
61763		c.header_ = make(http.Header)
61764	}
61765	return c.header_
61766}
61767
61768func (c *ExternalVpnGatewaysListCall) doRequest(alt string) (*http.Response, error) {
61769	reqHeaders := make(http.Header)
61770	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
61771	for k, v := range c.header_ {
61772		reqHeaders[k] = v
61773	}
61774	reqHeaders.Set("User-Agent", c.s.userAgent())
61775	if c.ifNoneMatch_ != "" {
61776		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
61777	}
61778	var body io.Reader = nil
61779	c.urlParams_.Set("alt", alt)
61780	c.urlParams_.Set("prettyPrint", "false")
61781	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/externalVpnGateways")
61782	urls += "?" + c.urlParams_.Encode()
61783	req, err := http.NewRequest("GET", urls, body)
61784	if err != nil {
61785		return nil, err
61786	}
61787	req.Header = reqHeaders
61788	googleapi.Expand(req.URL, map[string]string{
61789		"project": c.project,
61790	})
61791	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61792}
61793
61794// Do executes the "compute.externalVpnGateways.list" call.
61795// Exactly one of *ExternalVpnGatewayList or error will be non-nil. Any
61796// non-2xx status code is an error. Response headers are in either
61797// *ExternalVpnGatewayList.ServerResponse.Header or (if a response was
61798// returned at all) in error.(*googleapi.Error).Header. Use
61799// googleapi.IsNotModified to check whether the returned error was
61800// because http.StatusNotModified was returned.
61801func (c *ExternalVpnGatewaysListCall) Do(opts ...googleapi.CallOption) (*ExternalVpnGatewayList, error) {
61802	gensupport.SetOptions(c.urlParams_, opts...)
61803	res, err := c.doRequest("json")
61804	if res != nil && res.StatusCode == http.StatusNotModified {
61805		if res.Body != nil {
61806			res.Body.Close()
61807		}
61808		return nil, &googleapi.Error{
61809			Code:   res.StatusCode,
61810			Header: res.Header,
61811		}
61812	}
61813	if err != nil {
61814		return nil, err
61815	}
61816	defer googleapi.CloseBody(res)
61817	if err := googleapi.CheckResponse(res); err != nil {
61818		return nil, err
61819	}
61820	ret := &ExternalVpnGatewayList{
61821		ServerResponse: googleapi.ServerResponse{
61822			Header:         res.Header,
61823			HTTPStatusCode: res.StatusCode,
61824		},
61825	}
61826	target := &ret
61827	if err := gensupport.DecodeResponse(target, res); err != nil {
61828		return nil, err
61829	}
61830	return ret, nil
61831	// {
61832	//   "description": "Retrieves the list of ExternalVpnGateway available to the specified project.",
61833	//   "httpMethod": "GET",
61834	//   "id": "compute.externalVpnGateways.list",
61835	//   "parameterOrder": [
61836	//     "project"
61837	//   ],
61838	//   "parameters": {
61839	//     "filter": {
61840	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
61841	//       "location": "query",
61842	//       "type": "string"
61843	//     },
61844	//     "maxResults": {
61845	//       "default": "500",
61846	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
61847	//       "format": "uint32",
61848	//       "location": "query",
61849	//       "minimum": "0",
61850	//       "type": "integer"
61851	//     },
61852	//     "orderBy": {
61853	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
61854	//       "location": "query",
61855	//       "type": "string"
61856	//     },
61857	//     "pageToken": {
61858	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
61859	//       "location": "query",
61860	//       "type": "string"
61861	//     },
61862	//     "project": {
61863	//       "description": "Project ID for this request.",
61864	//       "location": "path",
61865	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61866	//       "required": true,
61867	//       "type": "string"
61868	//     },
61869	//     "returnPartialSuccess": {
61870	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
61871	//       "location": "query",
61872	//       "type": "boolean"
61873	//     }
61874	//   },
61875	//   "path": "projects/{project}/global/externalVpnGateways",
61876	//   "response": {
61877	//     "$ref": "ExternalVpnGatewayList"
61878	//   },
61879	//   "scopes": [
61880	//     "https://www.googleapis.com/auth/cloud-platform",
61881	//     "https://www.googleapis.com/auth/compute",
61882	//     "https://www.googleapis.com/auth/compute.readonly"
61883	//   ]
61884	// }
61885
61886}
61887
61888// Pages invokes f for each page of results.
61889// A non-nil error returned from f will halt the iteration.
61890// The provided context supersedes any context provided to the Context method.
61891func (c *ExternalVpnGatewaysListCall) Pages(ctx context.Context, f func(*ExternalVpnGatewayList) error) error {
61892	c.ctx_ = ctx
61893	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
61894	for {
61895		x, err := c.Do()
61896		if err != nil {
61897			return err
61898		}
61899		if err := f(x); err != nil {
61900			return err
61901		}
61902		if x.NextPageToken == "" {
61903			return nil
61904		}
61905		c.PageToken(x.NextPageToken)
61906	}
61907}
61908
61909// method id "compute.externalVpnGateways.setLabels":
61910
61911type ExternalVpnGatewaysSetLabelsCall struct {
61912	s                      *Service
61913	project                string
61914	resource               string
61915	globalsetlabelsrequest *GlobalSetLabelsRequest
61916	urlParams_             gensupport.URLParams
61917	ctx_                   context.Context
61918	header_                http.Header
61919}
61920
61921// SetLabels: Sets the labels on an ExternalVpnGateway. To learn more
61922// about labels, read the Labeling Resources documentation.
61923func (r *ExternalVpnGatewaysService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *ExternalVpnGatewaysSetLabelsCall {
61924	c := &ExternalVpnGatewaysSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61925	c.project = project
61926	c.resource = resource
61927	c.globalsetlabelsrequest = globalsetlabelsrequest
61928	return c
61929}
61930
61931// Fields allows partial responses to be retrieved. See
61932// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61933// for more information.
61934func (c *ExternalVpnGatewaysSetLabelsCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysSetLabelsCall {
61935	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61936	return c
61937}
61938
61939// Context sets the context to be used in this call's Do method. Any
61940// pending HTTP request will be aborted if the provided context is
61941// canceled.
61942func (c *ExternalVpnGatewaysSetLabelsCall) Context(ctx context.Context) *ExternalVpnGatewaysSetLabelsCall {
61943	c.ctx_ = ctx
61944	return c
61945}
61946
61947// Header returns an http.Header that can be modified by the caller to
61948// add HTTP headers to the request.
61949func (c *ExternalVpnGatewaysSetLabelsCall) Header() http.Header {
61950	if c.header_ == nil {
61951		c.header_ = make(http.Header)
61952	}
61953	return c.header_
61954}
61955
61956func (c *ExternalVpnGatewaysSetLabelsCall) doRequest(alt string) (*http.Response, error) {
61957	reqHeaders := make(http.Header)
61958	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
61959	for k, v := range c.header_ {
61960		reqHeaders[k] = v
61961	}
61962	reqHeaders.Set("User-Agent", c.s.userAgent())
61963	var body io.Reader = nil
61964	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
61965	if err != nil {
61966		return nil, err
61967	}
61968	reqHeaders.Set("Content-Type", "application/json")
61969	c.urlParams_.Set("alt", alt)
61970	c.urlParams_.Set("prettyPrint", "false")
61971	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/externalVpnGateways/{resource}/setLabels")
61972	urls += "?" + c.urlParams_.Encode()
61973	req, err := http.NewRequest("POST", urls, body)
61974	if err != nil {
61975		return nil, err
61976	}
61977	req.Header = reqHeaders
61978	googleapi.Expand(req.URL, map[string]string{
61979		"project":  c.project,
61980		"resource": c.resource,
61981	})
61982	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61983}
61984
61985// Do executes the "compute.externalVpnGateways.setLabels" call.
61986// Exactly one of *Operation or error will be non-nil. Any non-2xx
61987// status code is an error. Response headers are in either
61988// *Operation.ServerResponse.Header or (if a response was returned at
61989// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
61990// to check whether the returned error was because
61991// http.StatusNotModified was returned.
61992func (c *ExternalVpnGatewaysSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
61993	gensupport.SetOptions(c.urlParams_, opts...)
61994	res, err := c.doRequest("json")
61995	if res != nil && res.StatusCode == http.StatusNotModified {
61996		if res.Body != nil {
61997			res.Body.Close()
61998		}
61999		return nil, &googleapi.Error{
62000			Code:   res.StatusCode,
62001			Header: res.Header,
62002		}
62003	}
62004	if err != nil {
62005		return nil, err
62006	}
62007	defer googleapi.CloseBody(res)
62008	if err := googleapi.CheckResponse(res); err != nil {
62009		return nil, err
62010	}
62011	ret := &Operation{
62012		ServerResponse: googleapi.ServerResponse{
62013			Header:         res.Header,
62014			HTTPStatusCode: res.StatusCode,
62015		},
62016	}
62017	target := &ret
62018	if err := gensupport.DecodeResponse(target, res); err != nil {
62019		return nil, err
62020	}
62021	return ret, nil
62022	// {
62023	//   "description": "Sets the labels on an ExternalVpnGateway. To learn more about labels, read the Labeling Resources documentation.",
62024	//   "httpMethod": "POST",
62025	//   "id": "compute.externalVpnGateways.setLabels",
62026	//   "parameterOrder": [
62027	//     "project",
62028	//     "resource"
62029	//   ],
62030	//   "parameters": {
62031	//     "project": {
62032	//       "description": "Project ID for this request.",
62033	//       "location": "path",
62034	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62035	//       "required": true,
62036	//       "type": "string"
62037	//     },
62038	//     "resource": {
62039	//       "description": "Name or id of the resource for this request.",
62040	//       "location": "path",
62041	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
62042	//       "required": true,
62043	//       "type": "string"
62044	//     }
62045	//   },
62046	//   "path": "projects/{project}/global/externalVpnGateways/{resource}/setLabels",
62047	//   "request": {
62048	//     "$ref": "GlobalSetLabelsRequest"
62049	//   },
62050	//   "response": {
62051	//     "$ref": "Operation"
62052	//   },
62053	//   "scopes": [
62054	//     "https://www.googleapis.com/auth/cloud-platform",
62055	//     "https://www.googleapis.com/auth/compute"
62056	//   ]
62057	// }
62058
62059}
62060
62061// method id "compute.externalVpnGateways.testIamPermissions":
62062
62063type ExternalVpnGatewaysTestIamPermissionsCall struct {
62064	s                      *Service
62065	project                string
62066	resource               string
62067	testpermissionsrequest *TestPermissionsRequest
62068	urlParams_             gensupport.URLParams
62069	ctx_                   context.Context
62070	header_                http.Header
62071}
62072
62073// TestIamPermissions: Returns permissions that a caller has on the
62074// specified resource.
62075func (r *ExternalVpnGatewaysService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *ExternalVpnGatewaysTestIamPermissionsCall {
62076	c := &ExternalVpnGatewaysTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62077	c.project = project
62078	c.resource = resource
62079	c.testpermissionsrequest = testpermissionsrequest
62080	return c
62081}
62082
62083// Fields allows partial responses to be retrieved. See
62084// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62085// for more information.
62086func (c *ExternalVpnGatewaysTestIamPermissionsCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysTestIamPermissionsCall {
62087	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62088	return c
62089}
62090
62091// Context sets the context to be used in this call's Do method. Any
62092// pending HTTP request will be aborted if the provided context is
62093// canceled.
62094func (c *ExternalVpnGatewaysTestIamPermissionsCall) Context(ctx context.Context) *ExternalVpnGatewaysTestIamPermissionsCall {
62095	c.ctx_ = ctx
62096	return c
62097}
62098
62099// Header returns an http.Header that can be modified by the caller to
62100// add HTTP headers to the request.
62101func (c *ExternalVpnGatewaysTestIamPermissionsCall) Header() http.Header {
62102	if c.header_ == nil {
62103		c.header_ = make(http.Header)
62104	}
62105	return c.header_
62106}
62107
62108func (c *ExternalVpnGatewaysTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
62109	reqHeaders := make(http.Header)
62110	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
62111	for k, v := range c.header_ {
62112		reqHeaders[k] = v
62113	}
62114	reqHeaders.Set("User-Agent", c.s.userAgent())
62115	var body io.Reader = nil
62116	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
62117	if err != nil {
62118		return nil, err
62119	}
62120	reqHeaders.Set("Content-Type", "application/json")
62121	c.urlParams_.Set("alt", alt)
62122	c.urlParams_.Set("prettyPrint", "false")
62123	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/externalVpnGateways/{resource}/testIamPermissions")
62124	urls += "?" + c.urlParams_.Encode()
62125	req, err := http.NewRequest("POST", urls, body)
62126	if err != nil {
62127		return nil, err
62128	}
62129	req.Header = reqHeaders
62130	googleapi.Expand(req.URL, map[string]string{
62131		"project":  c.project,
62132		"resource": c.resource,
62133	})
62134	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62135}
62136
62137// Do executes the "compute.externalVpnGateways.testIamPermissions" call.
62138// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
62139// non-2xx status code is an error. Response headers are in either
62140// *TestPermissionsResponse.ServerResponse.Header or (if a response was
62141// returned at all) in error.(*googleapi.Error).Header. Use
62142// googleapi.IsNotModified to check whether the returned error was
62143// because http.StatusNotModified was returned.
62144func (c *ExternalVpnGatewaysTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
62145	gensupport.SetOptions(c.urlParams_, opts...)
62146	res, err := c.doRequest("json")
62147	if res != nil && res.StatusCode == http.StatusNotModified {
62148		if res.Body != nil {
62149			res.Body.Close()
62150		}
62151		return nil, &googleapi.Error{
62152			Code:   res.StatusCode,
62153			Header: res.Header,
62154		}
62155	}
62156	if err != nil {
62157		return nil, err
62158	}
62159	defer googleapi.CloseBody(res)
62160	if err := googleapi.CheckResponse(res); err != nil {
62161		return nil, err
62162	}
62163	ret := &TestPermissionsResponse{
62164		ServerResponse: googleapi.ServerResponse{
62165			Header:         res.Header,
62166			HTTPStatusCode: res.StatusCode,
62167		},
62168	}
62169	target := &ret
62170	if err := gensupport.DecodeResponse(target, res); err != nil {
62171		return nil, err
62172	}
62173	return ret, nil
62174	// {
62175	//   "description": "Returns permissions that a caller has on the specified resource.",
62176	//   "httpMethod": "POST",
62177	//   "id": "compute.externalVpnGateways.testIamPermissions",
62178	//   "parameterOrder": [
62179	//     "project",
62180	//     "resource"
62181	//   ],
62182	//   "parameters": {
62183	//     "project": {
62184	//       "description": "Project ID for this request.",
62185	//       "location": "path",
62186	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62187	//       "required": true,
62188	//       "type": "string"
62189	//     },
62190	//     "resource": {
62191	//       "description": "Name or id of the resource for this request.",
62192	//       "location": "path",
62193	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
62194	//       "required": true,
62195	//       "type": "string"
62196	//     }
62197	//   },
62198	//   "path": "projects/{project}/global/externalVpnGateways/{resource}/testIamPermissions",
62199	//   "request": {
62200	//     "$ref": "TestPermissionsRequest"
62201	//   },
62202	//   "response": {
62203	//     "$ref": "TestPermissionsResponse"
62204	//   },
62205	//   "scopes": [
62206	//     "https://www.googleapis.com/auth/cloud-platform",
62207	//     "https://www.googleapis.com/auth/compute",
62208	//     "https://www.googleapis.com/auth/compute.readonly"
62209	//   ]
62210	// }
62211
62212}
62213
62214// method id "compute.firewallPolicies.addAssociation":
62215
62216type FirewallPoliciesAddAssociationCall struct {
62217	s                         *Service
62218	firewallPolicy            string
62219	firewallpolicyassociation *FirewallPolicyAssociation
62220	urlParams_                gensupport.URLParams
62221	ctx_                      context.Context
62222	header_                   http.Header
62223}
62224
62225// AddAssociation: Inserts an association for the specified firewall
62226// policy.
62227func (r *FirewallPoliciesService) AddAssociation(firewallPolicy string, firewallpolicyassociation *FirewallPolicyAssociation) *FirewallPoliciesAddAssociationCall {
62228	c := &FirewallPoliciesAddAssociationCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62229	c.firewallPolicy = firewallPolicy
62230	c.firewallpolicyassociation = firewallpolicyassociation
62231	return c
62232}
62233
62234// ReplaceExistingAssociation sets the optional parameter
62235// "replaceExistingAssociation": Indicates whether or not to replace it
62236// if an association of the attachment already exists. This is false by
62237// default, in which case an error will be returned if an association
62238// already exists.
62239func (c *FirewallPoliciesAddAssociationCall) ReplaceExistingAssociation(replaceExistingAssociation bool) *FirewallPoliciesAddAssociationCall {
62240	c.urlParams_.Set("replaceExistingAssociation", fmt.Sprint(replaceExistingAssociation))
62241	return c
62242}
62243
62244// RequestId sets the optional parameter "requestId": An optional
62245// request ID to identify requests. Specify a unique request ID so that
62246// if you must retry your request, the server will know to ignore the
62247// request if it has already been completed.
62248//
62249// For example, consider a situation where you make an initial request
62250// and the request times out. If you make the request again with the
62251// same request ID, the server can check if original operation with the
62252// same request ID was received, and if so, will ignore the second
62253// request. This prevents clients from accidentally creating duplicate
62254// commitments.
62255//
62256// The request ID must be a valid UUID with the exception that zero UUID
62257// is not supported (00000000-0000-0000-0000-000000000000).
62258func (c *FirewallPoliciesAddAssociationCall) RequestId(requestId string) *FirewallPoliciesAddAssociationCall {
62259	c.urlParams_.Set("requestId", requestId)
62260	return c
62261}
62262
62263// Fields allows partial responses to be retrieved. See
62264// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62265// for more information.
62266func (c *FirewallPoliciesAddAssociationCall) Fields(s ...googleapi.Field) *FirewallPoliciesAddAssociationCall {
62267	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62268	return c
62269}
62270
62271// Context sets the context to be used in this call's Do method. Any
62272// pending HTTP request will be aborted if the provided context is
62273// canceled.
62274func (c *FirewallPoliciesAddAssociationCall) Context(ctx context.Context) *FirewallPoliciesAddAssociationCall {
62275	c.ctx_ = ctx
62276	return c
62277}
62278
62279// Header returns an http.Header that can be modified by the caller to
62280// add HTTP headers to the request.
62281func (c *FirewallPoliciesAddAssociationCall) Header() http.Header {
62282	if c.header_ == nil {
62283		c.header_ = make(http.Header)
62284	}
62285	return c.header_
62286}
62287
62288func (c *FirewallPoliciesAddAssociationCall) doRequest(alt string) (*http.Response, error) {
62289	reqHeaders := make(http.Header)
62290	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
62291	for k, v := range c.header_ {
62292		reqHeaders[k] = v
62293	}
62294	reqHeaders.Set("User-Agent", c.s.userAgent())
62295	var body io.Reader = nil
62296	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewallpolicyassociation)
62297	if err != nil {
62298		return nil, err
62299	}
62300	reqHeaders.Set("Content-Type", "application/json")
62301	c.urlParams_.Set("alt", alt)
62302	c.urlParams_.Set("prettyPrint", "false")
62303	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/addAssociation")
62304	urls += "?" + c.urlParams_.Encode()
62305	req, err := http.NewRequest("POST", urls, body)
62306	if err != nil {
62307		return nil, err
62308	}
62309	req.Header = reqHeaders
62310	googleapi.Expand(req.URL, map[string]string{
62311		"firewallPolicy": c.firewallPolicy,
62312	})
62313	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62314}
62315
62316// Do executes the "compute.firewallPolicies.addAssociation" call.
62317// Exactly one of *Operation or error will be non-nil. Any non-2xx
62318// status code is an error. Response headers are in either
62319// *Operation.ServerResponse.Header or (if a response was returned at
62320// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
62321// to check whether the returned error was because
62322// http.StatusNotModified was returned.
62323func (c *FirewallPoliciesAddAssociationCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
62324	gensupport.SetOptions(c.urlParams_, opts...)
62325	res, err := c.doRequest("json")
62326	if res != nil && res.StatusCode == http.StatusNotModified {
62327		if res.Body != nil {
62328			res.Body.Close()
62329		}
62330		return nil, &googleapi.Error{
62331			Code:   res.StatusCode,
62332			Header: res.Header,
62333		}
62334	}
62335	if err != nil {
62336		return nil, err
62337	}
62338	defer googleapi.CloseBody(res)
62339	if err := googleapi.CheckResponse(res); err != nil {
62340		return nil, err
62341	}
62342	ret := &Operation{
62343		ServerResponse: googleapi.ServerResponse{
62344			Header:         res.Header,
62345			HTTPStatusCode: res.StatusCode,
62346		},
62347	}
62348	target := &ret
62349	if err := gensupport.DecodeResponse(target, res); err != nil {
62350		return nil, err
62351	}
62352	return ret, nil
62353	// {
62354	//   "description": "Inserts an association for the specified firewall policy.",
62355	//   "httpMethod": "POST",
62356	//   "id": "compute.firewallPolicies.addAssociation",
62357	//   "parameterOrder": [
62358	//     "firewallPolicy"
62359	//   ],
62360	//   "parameters": {
62361	//     "firewallPolicy": {
62362	//       "description": "Name of the firewall policy to update.",
62363	//       "location": "path",
62364	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
62365	//       "required": true,
62366	//       "type": "string"
62367	//     },
62368	//     "replaceExistingAssociation": {
62369	//       "description": "Indicates whether or not to replace it if an association of the attachment already exists. This is false by default, in which case an error will be returned if an association already exists.",
62370	//       "location": "query",
62371	//       "type": "boolean"
62372	//     },
62373	//     "requestId": {
62374	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
62375	//       "location": "query",
62376	//       "type": "string"
62377	//     }
62378	//   },
62379	//   "path": "locations/global/firewallPolicies/{firewallPolicy}/addAssociation",
62380	//   "request": {
62381	//     "$ref": "FirewallPolicyAssociation"
62382	//   },
62383	//   "response": {
62384	//     "$ref": "Operation"
62385	//   },
62386	//   "scopes": [
62387	//     "https://www.googleapis.com/auth/cloud-platform",
62388	//     "https://www.googleapis.com/auth/compute"
62389	//   ]
62390	// }
62391
62392}
62393
62394// method id "compute.firewallPolicies.addRule":
62395
62396type FirewallPoliciesAddRuleCall struct {
62397	s                  *Service
62398	firewallPolicy     string
62399	firewallpolicyrule *FirewallPolicyRule
62400	urlParams_         gensupport.URLParams
62401	ctx_               context.Context
62402	header_            http.Header
62403}
62404
62405// AddRule: Inserts a rule into a firewall policy.
62406func (r *FirewallPoliciesService) AddRule(firewallPolicy string, firewallpolicyrule *FirewallPolicyRule) *FirewallPoliciesAddRuleCall {
62407	c := &FirewallPoliciesAddRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62408	c.firewallPolicy = firewallPolicy
62409	c.firewallpolicyrule = firewallpolicyrule
62410	return c
62411}
62412
62413// RequestId sets the optional parameter "requestId": An optional
62414// request ID to identify requests. Specify a unique request ID so that
62415// if you must retry your request, the server will know to ignore the
62416// request if it has already been completed.
62417//
62418// For example, consider a situation where you make an initial request
62419// and the request times out. If you make the request again with the
62420// same request ID, the server can check if original operation with the
62421// same request ID was received, and if so, will ignore the second
62422// request. This prevents clients from accidentally creating duplicate
62423// commitments.
62424//
62425// The request ID must be a valid UUID with the exception that zero UUID
62426// is not supported (00000000-0000-0000-0000-000000000000).
62427func (c *FirewallPoliciesAddRuleCall) RequestId(requestId string) *FirewallPoliciesAddRuleCall {
62428	c.urlParams_.Set("requestId", requestId)
62429	return c
62430}
62431
62432// Fields allows partial responses to be retrieved. See
62433// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62434// for more information.
62435func (c *FirewallPoliciesAddRuleCall) Fields(s ...googleapi.Field) *FirewallPoliciesAddRuleCall {
62436	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62437	return c
62438}
62439
62440// Context sets the context to be used in this call's Do method. Any
62441// pending HTTP request will be aborted if the provided context is
62442// canceled.
62443func (c *FirewallPoliciesAddRuleCall) Context(ctx context.Context) *FirewallPoliciesAddRuleCall {
62444	c.ctx_ = ctx
62445	return c
62446}
62447
62448// Header returns an http.Header that can be modified by the caller to
62449// add HTTP headers to the request.
62450func (c *FirewallPoliciesAddRuleCall) Header() http.Header {
62451	if c.header_ == nil {
62452		c.header_ = make(http.Header)
62453	}
62454	return c.header_
62455}
62456
62457func (c *FirewallPoliciesAddRuleCall) doRequest(alt string) (*http.Response, error) {
62458	reqHeaders := make(http.Header)
62459	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
62460	for k, v := range c.header_ {
62461		reqHeaders[k] = v
62462	}
62463	reqHeaders.Set("User-Agent", c.s.userAgent())
62464	var body io.Reader = nil
62465	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewallpolicyrule)
62466	if err != nil {
62467		return nil, err
62468	}
62469	reqHeaders.Set("Content-Type", "application/json")
62470	c.urlParams_.Set("alt", alt)
62471	c.urlParams_.Set("prettyPrint", "false")
62472	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/addRule")
62473	urls += "?" + c.urlParams_.Encode()
62474	req, err := http.NewRequest("POST", urls, body)
62475	if err != nil {
62476		return nil, err
62477	}
62478	req.Header = reqHeaders
62479	googleapi.Expand(req.URL, map[string]string{
62480		"firewallPolicy": c.firewallPolicy,
62481	})
62482	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62483}
62484
62485// Do executes the "compute.firewallPolicies.addRule" call.
62486// Exactly one of *Operation or error will be non-nil. Any non-2xx
62487// status code is an error. Response headers are in either
62488// *Operation.ServerResponse.Header or (if a response was returned at
62489// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
62490// to check whether the returned error was because
62491// http.StatusNotModified was returned.
62492func (c *FirewallPoliciesAddRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
62493	gensupport.SetOptions(c.urlParams_, opts...)
62494	res, err := c.doRequest("json")
62495	if res != nil && res.StatusCode == http.StatusNotModified {
62496		if res.Body != nil {
62497			res.Body.Close()
62498		}
62499		return nil, &googleapi.Error{
62500			Code:   res.StatusCode,
62501			Header: res.Header,
62502		}
62503	}
62504	if err != nil {
62505		return nil, err
62506	}
62507	defer googleapi.CloseBody(res)
62508	if err := googleapi.CheckResponse(res); err != nil {
62509		return nil, err
62510	}
62511	ret := &Operation{
62512		ServerResponse: googleapi.ServerResponse{
62513			Header:         res.Header,
62514			HTTPStatusCode: res.StatusCode,
62515		},
62516	}
62517	target := &ret
62518	if err := gensupport.DecodeResponse(target, res); err != nil {
62519		return nil, err
62520	}
62521	return ret, nil
62522	// {
62523	//   "description": "Inserts a rule into a firewall policy.",
62524	//   "httpMethod": "POST",
62525	//   "id": "compute.firewallPolicies.addRule",
62526	//   "parameterOrder": [
62527	//     "firewallPolicy"
62528	//   ],
62529	//   "parameters": {
62530	//     "firewallPolicy": {
62531	//       "description": "Name of the firewall policy to update.",
62532	//       "location": "path",
62533	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
62534	//       "required": true,
62535	//       "type": "string"
62536	//     },
62537	//     "requestId": {
62538	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
62539	//       "location": "query",
62540	//       "type": "string"
62541	//     }
62542	//   },
62543	//   "path": "locations/global/firewallPolicies/{firewallPolicy}/addRule",
62544	//   "request": {
62545	//     "$ref": "FirewallPolicyRule"
62546	//   },
62547	//   "response": {
62548	//     "$ref": "Operation"
62549	//   },
62550	//   "scopes": [
62551	//     "https://www.googleapis.com/auth/cloud-platform",
62552	//     "https://www.googleapis.com/auth/compute"
62553	//   ]
62554	// }
62555
62556}
62557
62558// method id "compute.firewallPolicies.cloneRules":
62559
62560type FirewallPoliciesCloneRulesCall struct {
62561	s              *Service
62562	firewallPolicy string
62563	urlParams_     gensupport.URLParams
62564	ctx_           context.Context
62565	header_        http.Header
62566}
62567
62568// CloneRules: Copies rules to the specified firewall policy.
62569func (r *FirewallPoliciesService) CloneRules(firewallPolicy string) *FirewallPoliciesCloneRulesCall {
62570	c := &FirewallPoliciesCloneRulesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62571	c.firewallPolicy = firewallPolicy
62572	return c
62573}
62574
62575// RequestId sets the optional parameter "requestId": An optional
62576// request ID to identify requests. Specify a unique request ID so that
62577// if you must retry your request, the server will know to ignore the
62578// request if it has already been completed.
62579//
62580// For example, consider a situation where you make an initial request
62581// and the request times out. If you make the request again with the
62582// same request ID, the server can check if original operation with the
62583// same request ID was received, and if so, will ignore the second
62584// request. This prevents clients from accidentally creating duplicate
62585// commitments.
62586//
62587// The request ID must be a valid UUID with the exception that zero UUID
62588// is not supported (00000000-0000-0000-0000-000000000000).
62589func (c *FirewallPoliciesCloneRulesCall) RequestId(requestId string) *FirewallPoliciesCloneRulesCall {
62590	c.urlParams_.Set("requestId", requestId)
62591	return c
62592}
62593
62594// SourceFirewallPolicy sets the optional parameter
62595// "sourceFirewallPolicy": The firewall policy from which to copy rules.
62596func (c *FirewallPoliciesCloneRulesCall) SourceFirewallPolicy(sourceFirewallPolicy string) *FirewallPoliciesCloneRulesCall {
62597	c.urlParams_.Set("sourceFirewallPolicy", sourceFirewallPolicy)
62598	return c
62599}
62600
62601// Fields allows partial responses to be retrieved. See
62602// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62603// for more information.
62604func (c *FirewallPoliciesCloneRulesCall) Fields(s ...googleapi.Field) *FirewallPoliciesCloneRulesCall {
62605	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62606	return c
62607}
62608
62609// Context sets the context to be used in this call's Do method. Any
62610// pending HTTP request will be aborted if the provided context is
62611// canceled.
62612func (c *FirewallPoliciesCloneRulesCall) Context(ctx context.Context) *FirewallPoliciesCloneRulesCall {
62613	c.ctx_ = ctx
62614	return c
62615}
62616
62617// Header returns an http.Header that can be modified by the caller to
62618// add HTTP headers to the request.
62619func (c *FirewallPoliciesCloneRulesCall) Header() http.Header {
62620	if c.header_ == nil {
62621		c.header_ = make(http.Header)
62622	}
62623	return c.header_
62624}
62625
62626func (c *FirewallPoliciesCloneRulesCall) doRequest(alt string) (*http.Response, error) {
62627	reqHeaders := make(http.Header)
62628	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
62629	for k, v := range c.header_ {
62630		reqHeaders[k] = v
62631	}
62632	reqHeaders.Set("User-Agent", c.s.userAgent())
62633	var body io.Reader = nil
62634	c.urlParams_.Set("alt", alt)
62635	c.urlParams_.Set("prettyPrint", "false")
62636	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/cloneRules")
62637	urls += "?" + c.urlParams_.Encode()
62638	req, err := http.NewRequest("POST", urls, body)
62639	if err != nil {
62640		return nil, err
62641	}
62642	req.Header = reqHeaders
62643	googleapi.Expand(req.URL, map[string]string{
62644		"firewallPolicy": c.firewallPolicy,
62645	})
62646	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62647}
62648
62649// Do executes the "compute.firewallPolicies.cloneRules" call.
62650// Exactly one of *Operation or error will be non-nil. Any non-2xx
62651// status code is an error. Response headers are in either
62652// *Operation.ServerResponse.Header or (if a response was returned at
62653// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
62654// to check whether the returned error was because
62655// http.StatusNotModified was returned.
62656func (c *FirewallPoliciesCloneRulesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
62657	gensupport.SetOptions(c.urlParams_, opts...)
62658	res, err := c.doRequest("json")
62659	if res != nil && res.StatusCode == http.StatusNotModified {
62660		if res.Body != nil {
62661			res.Body.Close()
62662		}
62663		return nil, &googleapi.Error{
62664			Code:   res.StatusCode,
62665			Header: res.Header,
62666		}
62667	}
62668	if err != nil {
62669		return nil, err
62670	}
62671	defer googleapi.CloseBody(res)
62672	if err := googleapi.CheckResponse(res); err != nil {
62673		return nil, err
62674	}
62675	ret := &Operation{
62676		ServerResponse: googleapi.ServerResponse{
62677			Header:         res.Header,
62678			HTTPStatusCode: res.StatusCode,
62679		},
62680	}
62681	target := &ret
62682	if err := gensupport.DecodeResponse(target, res); err != nil {
62683		return nil, err
62684	}
62685	return ret, nil
62686	// {
62687	//   "description": "Copies rules to the specified firewall policy.",
62688	//   "httpMethod": "POST",
62689	//   "id": "compute.firewallPolicies.cloneRules",
62690	//   "parameterOrder": [
62691	//     "firewallPolicy"
62692	//   ],
62693	//   "parameters": {
62694	//     "firewallPolicy": {
62695	//       "description": "Name of the firewall policy to update.",
62696	//       "location": "path",
62697	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
62698	//       "required": true,
62699	//       "type": "string"
62700	//     },
62701	//     "requestId": {
62702	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
62703	//       "location": "query",
62704	//       "type": "string"
62705	//     },
62706	//     "sourceFirewallPolicy": {
62707	//       "description": "The firewall policy from which to copy rules.",
62708	//       "location": "query",
62709	//       "type": "string"
62710	//     }
62711	//   },
62712	//   "path": "locations/global/firewallPolicies/{firewallPolicy}/cloneRules",
62713	//   "response": {
62714	//     "$ref": "Operation"
62715	//   },
62716	//   "scopes": [
62717	//     "https://www.googleapis.com/auth/cloud-platform",
62718	//     "https://www.googleapis.com/auth/compute"
62719	//   ]
62720	// }
62721
62722}
62723
62724// method id "compute.firewallPolicies.delete":
62725
62726type FirewallPoliciesDeleteCall struct {
62727	s              *Service
62728	firewallPolicy string
62729	urlParams_     gensupport.URLParams
62730	ctx_           context.Context
62731	header_        http.Header
62732}
62733
62734// Delete: Deletes the specified policy.
62735func (r *FirewallPoliciesService) Delete(firewallPolicy string) *FirewallPoliciesDeleteCall {
62736	c := &FirewallPoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62737	c.firewallPolicy = firewallPolicy
62738	return c
62739}
62740
62741// RequestId sets the optional parameter "requestId": An optional
62742// request ID to identify requests. Specify a unique request ID so that
62743// if you must retry your request, the server will know to ignore the
62744// request if it has already been completed.
62745//
62746// For example, consider a situation where you make an initial request
62747// and the request times out. If you make the request again with the
62748// same request ID, the server can check if original operation with the
62749// same request ID was received, and if so, will ignore the second
62750// request. This prevents clients from accidentally creating duplicate
62751// commitments.
62752//
62753// The request ID must be a valid UUID with the exception that zero UUID
62754// is not supported (00000000-0000-0000-0000-000000000000).
62755func (c *FirewallPoliciesDeleteCall) RequestId(requestId string) *FirewallPoliciesDeleteCall {
62756	c.urlParams_.Set("requestId", requestId)
62757	return c
62758}
62759
62760// Fields allows partial responses to be retrieved. See
62761// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62762// for more information.
62763func (c *FirewallPoliciesDeleteCall) Fields(s ...googleapi.Field) *FirewallPoliciesDeleteCall {
62764	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62765	return c
62766}
62767
62768// Context sets the context to be used in this call's Do method. Any
62769// pending HTTP request will be aborted if the provided context is
62770// canceled.
62771func (c *FirewallPoliciesDeleteCall) Context(ctx context.Context) *FirewallPoliciesDeleteCall {
62772	c.ctx_ = ctx
62773	return c
62774}
62775
62776// Header returns an http.Header that can be modified by the caller to
62777// add HTTP headers to the request.
62778func (c *FirewallPoliciesDeleteCall) Header() http.Header {
62779	if c.header_ == nil {
62780		c.header_ = make(http.Header)
62781	}
62782	return c.header_
62783}
62784
62785func (c *FirewallPoliciesDeleteCall) doRequest(alt string) (*http.Response, error) {
62786	reqHeaders := make(http.Header)
62787	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
62788	for k, v := range c.header_ {
62789		reqHeaders[k] = v
62790	}
62791	reqHeaders.Set("User-Agent", c.s.userAgent())
62792	var body io.Reader = nil
62793	c.urlParams_.Set("alt", alt)
62794	c.urlParams_.Set("prettyPrint", "false")
62795	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}")
62796	urls += "?" + c.urlParams_.Encode()
62797	req, err := http.NewRequest("DELETE", urls, body)
62798	if err != nil {
62799		return nil, err
62800	}
62801	req.Header = reqHeaders
62802	googleapi.Expand(req.URL, map[string]string{
62803		"firewallPolicy": c.firewallPolicy,
62804	})
62805	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62806}
62807
62808// Do executes the "compute.firewallPolicies.delete" call.
62809// Exactly one of *Operation or error will be non-nil. Any non-2xx
62810// status code is an error. Response headers are in either
62811// *Operation.ServerResponse.Header or (if a response was returned at
62812// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
62813// to check whether the returned error was because
62814// http.StatusNotModified was returned.
62815func (c *FirewallPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
62816	gensupport.SetOptions(c.urlParams_, opts...)
62817	res, err := c.doRequest("json")
62818	if res != nil && res.StatusCode == http.StatusNotModified {
62819		if res.Body != nil {
62820			res.Body.Close()
62821		}
62822		return nil, &googleapi.Error{
62823			Code:   res.StatusCode,
62824			Header: res.Header,
62825		}
62826	}
62827	if err != nil {
62828		return nil, err
62829	}
62830	defer googleapi.CloseBody(res)
62831	if err := googleapi.CheckResponse(res); err != nil {
62832		return nil, err
62833	}
62834	ret := &Operation{
62835		ServerResponse: googleapi.ServerResponse{
62836			Header:         res.Header,
62837			HTTPStatusCode: res.StatusCode,
62838		},
62839	}
62840	target := &ret
62841	if err := gensupport.DecodeResponse(target, res); err != nil {
62842		return nil, err
62843	}
62844	return ret, nil
62845	// {
62846	//   "description": "Deletes the specified policy.",
62847	//   "httpMethod": "DELETE",
62848	//   "id": "compute.firewallPolicies.delete",
62849	//   "parameterOrder": [
62850	//     "firewallPolicy"
62851	//   ],
62852	//   "parameters": {
62853	//     "firewallPolicy": {
62854	//       "description": "Name of the firewall policy to delete.",
62855	//       "location": "path",
62856	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
62857	//       "required": true,
62858	//       "type": "string"
62859	//     },
62860	//     "requestId": {
62861	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
62862	//       "location": "query",
62863	//       "type": "string"
62864	//     }
62865	//   },
62866	//   "path": "locations/global/firewallPolicies/{firewallPolicy}",
62867	//   "response": {
62868	//     "$ref": "Operation"
62869	//   },
62870	//   "scopes": [
62871	//     "https://www.googleapis.com/auth/cloud-platform",
62872	//     "https://www.googleapis.com/auth/compute"
62873	//   ]
62874	// }
62875
62876}
62877
62878// method id "compute.firewallPolicies.get":
62879
62880type FirewallPoliciesGetCall struct {
62881	s              *Service
62882	firewallPolicy string
62883	urlParams_     gensupport.URLParams
62884	ifNoneMatch_   string
62885	ctx_           context.Context
62886	header_        http.Header
62887}
62888
62889// Get: Returns the specified firewall policy.
62890func (r *FirewallPoliciesService) Get(firewallPolicy string) *FirewallPoliciesGetCall {
62891	c := &FirewallPoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62892	c.firewallPolicy = firewallPolicy
62893	return c
62894}
62895
62896// Fields allows partial responses to be retrieved. See
62897// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62898// for more information.
62899func (c *FirewallPoliciesGetCall) Fields(s ...googleapi.Field) *FirewallPoliciesGetCall {
62900	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62901	return c
62902}
62903
62904// IfNoneMatch sets the optional parameter which makes the operation
62905// fail if the object's ETag matches the given value. This is useful for
62906// getting updates only after the object has changed since the last
62907// request. Use googleapi.IsNotModified to check whether the response
62908// error from Do is the result of In-None-Match.
62909func (c *FirewallPoliciesGetCall) IfNoneMatch(entityTag string) *FirewallPoliciesGetCall {
62910	c.ifNoneMatch_ = entityTag
62911	return c
62912}
62913
62914// Context sets the context to be used in this call's Do method. Any
62915// pending HTTP request will be aborted if the provided context is
62916// canceled.
62917func (c *FirewallPoliciesGetCall) Context(ctx context.Context) *FirewallPoliciesGetCall {
62918	c.ctx_ = ctx
62919	return c
62920}
62921
62922// Header returns an http.Header that can be modified by the caller to
62923// add HTTP headers to the request.
62924func (c *FirewallPoliciesGetCall) Header() http.Header {
62925	if c.header_ == nil {
62926		c.header_ = make(http.Header)
62927	}
62928	return c.header_
62929}
62930
62931func (c *FirewallPoliciesGetCall) doRequest(alt string) (*http.Response, error) {
62932	reqHeaders := make(http.Header)
62933	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
62934	for k, v := range c.header_ {
62935		reqHeaders[k] = v
62936	}
62937	reqHeaders.Set("User-Agent", c.s.userAgent())
62938	if c.ifNoneMatch_ != "" {
62939		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
62940	}
62941	var body io.Reader = nil
62942	c.urlParams_.Set("alt", alt)
62943	c.urlParams_.Set("prettyPrint", "false")
62944	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}")
62945	urls += "?" + c.urlParams_.Encode()
62946	req, err := http.NewRequest("GET", urls, body)
62947	if err != nil {
62948		return nil, err
62949	}
62950	req.Header = reqHeaders
62951	googleapi.Expand(req.URL, map[string]string{
62952		"firewallPolicy": c.firewallPolicy,
62953	})
62954	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62955}
62956
62957// Do executes the "compute.firewallPolicies.get" call.
62958// Exactly one of *FirewallPolicy or error will be non-nil. Any non-2xx
62959// status code is an error. Response headers are in either
62960// *FirewallPolicy.ServerResponse.Header or (if a response was returned
62961// at all) in error.(*googleapi.Error).Header. Use
62962// googleapi.IsNotModified to check whether the returned error was
62963// because http.StatusNotModified was returned.
62964func (c *FirewallPoliciesGetCall) Do(opts ...googleapi.CallOption) (*FirewallPolicy, error) {
62965	gensupport.SetOptions(c.urlParams_, opts...)
62966	res, err := c.doRequest("json")
62967	if res != nil && res.StatusCode == http.StatusNotModified {
62968		if res.Body != nil {
62969			res.Body.Close()
62970		}
62971		return nil, &googleapi.Error{
62972			Code:   res.StatusCode,
62973			Header: res.Header,
62974		}
62975	}
62976	if err != nil {
62977		return nil, err
62978	}
62979	defer googleapi.CloseBody(res)
62980	if err := googleapi.CheckResponse(res); err != nil {
62981		return nil, err
62982	}
62983	ret := &FirewallPolicy{
62984		ServerResponse: googleapi.ServerResponse{
62985			Header:         res.Header,
62986			HTTPStatusCode: res.StatusCode,
62987		},
62988	}
62989	target := &ret
62990	if err := gensupport.DecodeResponse(target, res); err != nil {
62991		return nil, err
62992	}
62993	return ret, nil
62994	// {
62995	//   "description": "Returns the specified firewall policy.",
62996	//   "httpMethod": "GET",
62997	//   "id": "compute.firewallPolicies.get",
62998	//   "parameterOrder": [
62999	//     "firewallPolicy"
63000	//   ],
63001	//   "parameters": {
63002	//     "firewallPolicy": {
63003	//       "description": "Name of the firewall policy to get.",
63004	//       "location": "path",
63005	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
63006	//       "required": true,
63007	//       "type": "string"
63008	//     }
63009	//   },
63010	//   "path": "locations/global/firewallPolicies/{firewallPolicy}",
63011	//   "response": {
63012	//     "$ref": "FirewallPolicy"
63013	//   },
63014	//   "scopes": [
63015	//     "https://www.googleapis.com/auth/cloud-platform",
63016	//     "https://www.googleapis.com/auth/compute",
63017	//     "https://www.googleapis.com/auth/compute.readonly"
63018	//   ]
63019	// }
63020
63021}
63022
63023// method id "compute.firewallPolicies.getAssociation":
63024
63025type FirewallPoliciesGetAssociationCall struct {
63026	s              *Service
63027	firewallPolicy string
63028	urlParams_     gensupport.URLParams
63029	ifNoneMatch_   string
63030	ctx_           context.Context
63031	header_        http.Header
63032}
63033
63034// GetAssociation: Gets an association with the specified name.
63035func (r *FirewallPoliciesService) GetAssociation(firewallPolicy string) *FirewallPoliciesGetAssociationCall {
63036	c := &FirewallPoliciesGetAssociationCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63037	c.firewallPolicy = firewallPolicy
63038	return c
63039}
63040
63041// Name sets the optional parameter "name": The name of the association
63042// to get from the firewall policy.
63043func (c *FirewallPoliciesGetAssociationCall) Name(name string) *FirewallPoliciesGetAssociationCall {
63044	c.urlParams_.Set("name", name)
63045	return c
63046}
63047
63048// Fields allows partial responses to be retrieved. See
63049// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63050// for more information.
63051func (c *FirewallPoliciesGetAssociationCall) Fields(s ...googleapi.Field) *FirewallPoliciesGetAssociationCall {
63052	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63053	return c
63054}
63055
63056// IfNoneMatch sets the optional parameter which makes the operation
63057// fail if the object's ETag matches the given value. This is useful for
63058// getting updates only after the object has changed since the last
63059// request. Use googleapi.IsNotModified to check whether the response
63060// error from Do is the result of In-None-Match.
63061func (c *FirewallPoliciesGetAssociationCall) IfNoneMatch(entityTag string) *FirewallPoliciesGetAssociationCall {
63062	c.ifNoneMatch_ = entityTag
63063	return c
63064}
63065
63066// Context sets the context to be used in this call's Do method. Any
63067// pending HTTP request will be aborted if the provided context is
63068// canceled.
63069func (c *FirewallPoliciesGetAssociationCall) Context(ctx context.Context) *FirewallPoliciesGetAssociationCall {
63070	c.ctx_ = ctx
63071	return c
63072}
63073
63074// Header returns an http.Header that can be modified by the caller to
63075// add HTTP headers to the request.
63076func (c *FirewallPoliciesGetAssociationCall) Header() http.Header {
63077	if c.header_ == nil {
63078		c.header_ = make(http.Header)
63079	}
63080	return c.header_
63081}
63082
63083func (c *FirewallPoliciesGetAssociationCall) doRequest(alt string) (*http.Response, error) {
63084	reqHeaders := make(http.Header)
63085	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
63086	for k, v := range c.header_ {
63087		reqHeaders[k] = v
63088	}
63089	reqHeaders.Set("User-Agent", c.s.userAgent())
63090	if c.ifNoneMatch_ != "" {
63091		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
63092	}
63093	var body io.Reader = nil
63094	c.urlParams_.Set("alt", alt)
63095	c.urlParams_.Set("prettyPrint", "false")
63096	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/getAssociation")
63097	urls += "?" + c.urlParams_.Encode()
63098	req, err := http.NewRequest("GET", urls, body)
63099	if err != nil {
63100		return nil, err
63101	}
63102	req.Header = reqHeaders
63103	googleapi.Expand(req.URL, map[string]string{
63104		"firewallPolicy": c.firewallPolicy,
63105	})
63106	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63107}
63108
63109// Do executes the "compute.firewallPolicies.getAssociation" call.
63110// Exactly one of *FirewallPolicyAssociation or error will be non-nil.
63111// Any non-2xx status code is an error. Response headers are in either
63112// *FirewallPolicyAssociation.ServerResponse.Header or (if a response
63113// was returned at all) in error.(*googleapi.Error).Header. Use
63114// googleapi.IsNotModified to check whether the returned error was
63115// because http.StatusNotModified was returned.
63116func (c *FirewallPoliciesGetAssociationCall) Do(opts ...googleapi.CallOption) (*FirewallPolicyAssociation, error) {
63117	gensupport.SetOptions(c.urlParams_, opts...)
63118	res, err := c.doRequest("json")
63119	if res != nil && res.StatusCode == http.StatusNotModified {
63120		if res.Body != nil {
63121			res.Body.Close()
63122		}
63123		return nil, &googleapi.Error{
63124			Code:   res.StatusCode,
63125			Header: res.Header,
63126		}
63127	}
63128	if err != nil {
63129		return nil, err
63130	}
63131	defer googleapi.CloseBody(res)
63132	if err := googleapi.CheckResponse(res); err != nil {
63133		return nil, err
63134	}
63135	ret := &FirewallPolicyAssociation{
63136		ServerResponse: googleapi.ServerResponse{
63137			Header:         res.Header,
63138			HTTPStatusCode: res.StatusCode,
63139		},
63140	}
63141	target := &ret
63142	if err := gensupport.DecodeResponse(target, res); err != nil {
63143		return nil, err
63144	}
63145	return ret, nil
63146	// {
63147	//   "description": "Gets an association with the specified name.",
63148	//   "httpMethod": "GET",
63149	//   "id": "compute.firewallPolicies.getAssociation",
63150	//   "parameterOrder": [
63151	//     "firewallPolicy"
63152	//   ],
63153	//   "parameters": {
63154	//     "firewallPolicy": {
63155	//       "description": "Name of the firewall policy to which the queried rule belongs.",
63156	//       "location": "path",
63157	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
63158	//       "required": true,
63159	//       "type": "string"
63160	//     },
63161	//     "name": {
63162	//       "description": "The name of the association to get from the firewall policy.",
63163	//       "location": "query",
63164	//       "type": "string"
63165	//     }
63166	//   },
63167	//   "path": "locations/global/firewallPolicies/{firewallPolicy}/getAssociation",
63168	//   "response": {
63169	//     "$ref": "FirewallPolicyAssociation"
63170	//   },
63171	//   "scopes": [
63172	//     "https://www.googleapis.com/auth/cloud-platform",
63173	//     "https://www.googleapis.com/auth/compute",
63174	//     "https://www.googleapis.com/auth/compute.readonly"
63175	//   ]
63176	// }
63177
63178}
63179
63180// method id "compute.firewallPolicies.getIamPolicy":
63181
63182type FirewallPoliciesGetIamPolicyCall struct {
63183	s            *Service
63184	resource     string
63185	urlParams_   gensupport.URLParams
63186	ifNoneMatch_ string
63187	ctx_         context.Context
63188	header_      http.Header
63189}
63190
63191// GetIamPolicy: Gets the access control policy for a resource. May be
63192// empty if no such policy or resource exists.
63193func (r *FirewallPoliciesService) GetIamPolicy(resource string) *FirewallPoliciesGetIamPolicyCall {
63194	c := &FirewallPoliciesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63195	c.resource = resource
63196	return c
63197}
63198
63199// OptionsRequestedPolicyVersion sets the optional parameter
63200// "optionsRequestedPolicyVersion": Requested IAM Policy version.
63201func (c *FirewallPoliciesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *FirewallPoliciesGetIamPolicyCall {
63202	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
63203	return c
63204}
63205
63206// Fields allows partial responses to be retrieved. See
63207// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63208// for more information.
63209func (c *FirewallPoliciesGetIamPolicyCall) Fields(s ...googleapi.Field) *FirewallPoliciesGetIamPolicyCall {
63210	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63211	return c
63212}
63213
63214// IfNoneMatch sets the optional parameter which makes the operation
63215// fail if the object's ETag matches the given value. This is useful for
63216// getting updates only after the object has changed since the last
63217// request. Use googleapi.IsNotModified to check whether the response
63218// error from Do is the result of In-None-Match.
63219func (c *FirewallPoliciesGetIamPolicyCall) IfNoneMatch(entityTag string) *FirewallPoliciesGetIamPolicyCall {
63220	c.ifNoneMatch_ = entityTag
63221	return c
63222}
63223
63224// Context sets the context to be used in this call's Do method. Any
63225// pending HTTP request will be aborted if the provided context is
63226// canceled.
63227func (c *FirewallPoliciesGetIamPolicyCall) Context(ctx context.Context) *FirewallPoliciesGetIamPolicyCall {
63228	c.ctx_ = ctx
63229	return c
63230}
63231
63232// Header returns an http.Header that can be modified by the caller to
63233// add HTTP headers to the request.
63234func (c *FirewallPoliciesGetIamPolicyCall) Header() http.Header {
63235	if c.header_ == nil {
63236		c.header_ = make(http.Header)
63237	}
63238	return c.header_
63239}
63240
63241func (c *FirewallPoliciesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
63242	reqHeaders := make(http.Header)
63243	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
63244	for k, v := range c.header_ {
63245		reqHeaders[k] = v
63246	}
63247	reqHeaders.Set("User-Agent", c.s.userAgent())
63248	if c.ifNoneMatch_ != "" {
63249		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
63250	}
63251	var body io.Reader = nil
63252	c.urlParams_.Set("alt", alt)
63253	c.urlParams_.Set("prettyPrint", "false")
63254	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{resource}/getIamPolicy")
63255	urls += "?" + c.urlParams_.Encode()
63256	req, err := http.NewRequest("GET", urls, body)
63257	if err != nil {
63258		return nil, err
63259	}
63260	req.Header = reqHeaders
63261	googleapi.Expand(req.URL, map[string]string{
63262		"resource": c.resource,
63263	})
63264	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63265}
63266
63267// Do executes the "compute.firewallPolicies.getIamPolicy" call.
63268// Exactly one of *Policy or error will be non-nil. Any non-2xx status
63269// code is an error. Response headers are in either
63270// *Policy.ServerResponse.Header or (if a response was returned at all)
63271// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
63272// check whether the returned error was because http.StatusNotModified
63273// was returned.
63274func (c *FirewallPoliciesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
63275	gensupport.SetOptions(c.urlParams_, opts...)
63276	res, err := c.doRequest("json")
63277	if res != nil && res.StatusCode == http.StatusNotModified {
63278		if res.Body != nil {
63279			res.Body.Close()
63280		}
63281		return nil, &googleapi.Error{
63282			Code:   res.StatusCode,
63283			Header: res.Header,
63284		}
63285	}
63286	if err != nil {
63287		return nil, err
63288	}
63289	defer googleapi.CloseBody(res)
63290	if err := googleapi.CheckResponse(res); err != nil {
63291		return nil, err
63292	}
63293	ret := &Policy{
63294		ServerResponse: googleapi.ServerResponse{
63295			Header:         res.Header,
63296			HTTPStatusCode: res.StatusCode,
63297		},
63298	}
63299	target := &ret
63300	if err := gensupport.DecodeResponse(target, res); err != nil {
63301		return nil, err
63302	}
63303	return ret, nil
63304	// {
63305	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
63306	//   "httpMethod": "GET",
63307	//   "id": "compute.firewallPolicies.getIamPolicy",
63308	//   "parameterOrder": [
63309	//     "resource"
63310	//   ],
63311	//   "parameters": {
63312	//     "optionsRequestedPolicyVersion": {
63313	//       "description": "Requested IAM Policy version.",
63314	//       "format": "int32",
63315	//       "location": "query",
63316	//       "type": "integer"
63317	//     },
63318	//     "resource": {
63319	//       "description": "Name or id of the resource for this request.",
63320	//       "location": "path",
63321	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
63322	//       "required": true,
63323	//       "type": "string"
63324	//     }
63325	//   },
63326	//   "path": "locations/global/firewallPolicies/{resource}/getIamPolicy",
63327	//   "response": {
63328	//     "$ref": "Policy"
63329	//   },
63330	//   "scopes": [
63331	//     "https://www.googleapis.com/auth/cloud-platform",
63332	//     "https://www.googleapis.com/auth/compute",
63333	//     "https://www.googleapis.com/auth/compute.readonly"
63334	//   ]
63335	// }
63336
63337}
63338
63339// method id "compute.firewallPolicies.getRule":
63340
63341type FirewallPoliciesGetRuleCall struct {
63342	s              *Service
63343	firewallPolicy string
63344	urlParams_     gensupport.URLParams
63345	ifNoneMatch_   string
63346	ctx_           context.Context
63347	header_        http.Header
63348}
63349
63350// GetRule: Gets a rule of the specified priority.
63351func (r *FirewallPoliciesService) GetRule(firewallPolicy string) *FirewallPoliciesGetRuleCall {
63352	c := &FirewallPoliciesGetRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63353	c.firewallPolicy = firewallPolicy
63354	return c
63355}
63356
63357// Priority sets the optional parameter "priority": The priority of the
63358// rule to get from the firewall policy.
63359func (c *FirewallPoliciesGetRuleCall) Priority(priority int64) *FirewallPoliciesGetRuleCall {
63360	c.urlParams_.Set("priority", fmt.Sprint(priority))
63361	return c
63362}
63363
63364// Fields allows partial responses to be retrieved. See
63365// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63366// for more information.
63367func (c *FirewallPoliciesGetRuleCall) Fields(s ...googleapi.Field) *FirewallPoliciesGetRuleCall {
63368	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63369	return c
63370}
63371
63372// IfNoneMatch sets the optional parameter which makes the operation
63373// fail if the object's ETag matches the given value. This is useful for
63374// getting updates only after the object has changed since the last
63375// request. Use googleapi.IsNotModified to check whether the response
63376// error from Do is the result of In-None-Match.
63377func (c *FirewallPoliciesGetRuleCall) IfNoneMatch(entityTag string) *FirewallPoliciesGetRuleCall {
63378	c.ifNoneMatch_ = entityTag
63379	return c
63380}
63381
63382// Context sets the context to be used in this call's Do method. Any
63383// pending HTTP request will be aborted if the provided context is
63384// canceled.
63385func (c *FirewallPoliciesGetRuleCall) Context(ctx context.Context) *FirewallPoliciesGetRuleCall {
63386	c.ctx_ = ctx
63387	return c
63388}
63389
63390// Header returns an http.Header that can be modified by the caller to
63391// add HTTP headers to the request.
63392func (c *FirewallPoliciesGetRuleCall) Header() http.Header {
63393	if c.header_ == nil {
63394		c.header_ = make(http.Header)
63395	}
63396	return c.header_
63397}
63398
63399func (c *FirewallPoliciesGetRuleCall) doRequest(alt string) (*http.Response, error) {
63400	reqHeaders := make(http.Header)
63401	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
63402	for k, v := range c.header_ {
63403		reqHeaders[k] = v
63404	}
63405	reqHeaders.Set("User-Agent", c.s.userAgent())
63406	if c.ifNoneMatch_ != "" {
63407		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
63408	}
63409	var body io.Reader = nil
63410	c.urlParams_.Set("alt", alt)
63411	c.urlParams_.Set("prettyPrint", "false")
63412	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/getRule")
63413	urls += "?" + c.urlParams_.Encode()
63414	req, err := http.NewRequest("GET", urls, body)
63415	if err != nil {
63416		return nil, err
63417	}
63418	req.Header = reqHeaders
63419	googleapi.Expand(req.URL, map[string]string{
63420		"firewallPolicy": c.firewallPolicy,
63421	})
63422	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63423}
63424
63425// Do executes the "compute.firewallPolicies.getRule" call.
63426// Exactly one of *FirewallPolicyRule or error will be non-nil. Any
63427// non-2xx status code is an error. Response headers are in either
63428// *FirewallPolicyRule.ServerResponse.Header or (if a response was
63429// returned at all) in error.(*googleapi.Error).Header. Use
63430// googleapi.IsNotModified to check whether the returned error was
63431// because http.StatusNotModified was returned.
63432func (c *FirewallPoliciesGetRuleCall) Do(opts ...googleapi.CallOption) (*FirewallPolicyRule, error) {
63433	gensupport.SetOptions(c.urlParams_, opts...)
63434	res, err := c.doRequest("json")
63435	if res != nil && res.StatusCode == http.StatusNotModified {
63436		if res.Body != nil {
63437			res.Body.Close()
63438		}
63439		return nil, &googleapi.Error{
63440			Code:   res.StatusCode,
63441			Header: res.Header,
63442		}
63443	}
63444	if err != nil {
63445		return nil, err
63446	}
63447	defer googleapi.CloseBody(res)
63448	if err := googleapi.CheckResponse(res); err != nil {
63449		return nil, err
63450	}
63451	ret := &FirewallPolicyRule{
63452		ServerResponse: googleapi.ServerResponse{
63453			Header:         res.Header,
63454			HTTPStatusCode: res.StatusCode,
63455		},
63456	}
63457	target := &ret
63458	if err := gensupport.DecodeResponse(target, res); err != nil {
63459		return nil, err
63460	}
63461	return ret, nil
63462	// {
63463	//   "description": "Gets a rule of the specified priority.",
63464	//   "httpMethod": "GET",
63465	//   "id": "compute.firewallPolicies.getRule",
63466	//   "parameterOrder": [
63467	//     "firewallPolicy"
63468	//   ],
63469	//   "parameters": {
63470	//     "firewallPolicy": {
63471	//       "description": "Name of the firewall policy to which the queried rule belongs.",
63472	//       "location": "path",
63473	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
63474	//       "required": true,
63475	//       "type": "string"
63476	//     },
63477	//     "priority": {
63478	//       "description": "The priority of the rule to get from the firewall policy.",
63479	//       "format": "int32",
63480	//       "location": "query",
63481	//       "type": "integer"
63482	//     }
63483	//   },
63484	//   "path": "locations/global/firewallPolicies/{firewallPolicy}/getRule",
63485	//   "response": {
63486	//     "$ref": "FirewallPolicyRule"
63487	//   },
63488	//   "scopes": [
63489	//     "https://www.googleapis.com/auth/cloud-platform",
63490	//     "https://www.googleapis.com/auth/compute",
63491	//     "https://www.googleapis.com/auth/compute.readonly"
63492	//   ]
63493	// }
63494
63495}
63496
63497// method id "compute.firewallPolicies.insert":
63498
63499type FirewallPoliciesInsertCall struct {
63500	s              *Service
63501	firewallpolicy *FirewallPolicy
63502	urlParams_     gensupport.URLParams
63503	ctx_           context.Context
63504	header_        http.Header
63505}
63506
63507// Insert: Creates a new policy in the specified project using the data
63508// included in the request.
63509func (r *FirewallPoliciesService) Insert(firewallpolicy *FirewallPolicy) *FirewallPoliciesInsertCall {
63510	c := &FirewallPoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63511	c.firewallpolicy = firewallpolicy
63512	return c
63513}
63514
63515// ParentId sets the optional parameter "parentId": Parent ID for this
63516// request. The ID can be either be "folders/[FOLDER_ID]" if the parent
63517// is a folder or "organizations/[ORGANIZATION_ID]" if the parent is an
63518// organization.
63519func (c *FirewallPoliciesInsertCall) ParentId(parentId string) *FirewallPoliciesInsertCall {
63520	c.urlParams_.Set("parentId", parentId)
63521	return c
63522}
63523
63524// RequestId sets the optional parameter "requestId": An optional
63525// request ID to identify requests. Specify a unique request ID so that
63526// if you must retry your request, the server will know to ignore the
63527// request if it has already been completed.
63528//
63529// For example, consider a situation where you make an initial request
63530// and the request times out. If you make the request again with the
63531// same request ID, the server can check if original operation with the
63532// same request ID was received, and if so, will ignore the second
63533// request. This prevents clients from accidentally creating duplicate
63534// commitments.
63535//
63536// The request ID must be a valid UUID with the exception that zero UUID
63537// is not supported (00000000-0000-0000-0000-000000000000).
63538func (c *FirewallPoliciesInsertCall) RequestId(requestId string) *FirewallPoliciesInsertCall {
63539	c.urlParams_.Set("requestId", requestId)
63540	return c
63541}
63542
63543// Fields allows partial responses to be retrieved. See
63544// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63545// for more information.
63546func (c *FirewallPoliciesInsertCall) Fields(s ...googleapi.Field) *FirewallPoliciesInsertCall {
63547	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63548	return c
63549}
63550
63551// Context sets the context to be used in this call's Do method. Any
63552// pending HTTP request will be aborted if the provided context is
63553// canceled.
63554func (c *FirewallPoliciesInsertCall) Context(ctx context.Context) *FirewallPoliciesInsertCall {
63555	c.ctx_ = ctx
63556	return c
63557}
63558
63559// Header returns an http.Header that can be modified by the caller to
63560// add HTTP headers to the request.
63561func (c *FirewallPoliciesInsertCall) Header() http.Header {
63562	if c.header_ == nil {
63563		c.header_ = make(http.Header)
63564	}
63565	return c.header_
63566}
63567
63568func (c *FirewallPoliciesInsertCall) doRequest(alt string) (*http.Response, error) {
63569	reqHeaders := make(http.Header)
63570	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
63571	for k, v := range c.header_ {
63572		reqHeaders[k] = v
63573	}
63574	reqHeaders.Set("User-Agent", c.s.userAgent())
63575	var body io.Reader = nil
63576	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewallpolicy)
63577	if err != nil {
63578		return nil, err
63579	}
63580	reqHeaders.Set("Content-Type", "application/json")
63581	c.urlParams_.Set("alt", alt)
63582	c.urlParams_.Set("prettyPrint", "false")
63583	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies")
63584	urls += "?" + c.urlParams_.Encode()
63585	req, err := http.NewRequest("POST", urls, body)
63586	if err != nil {
63587		return nil, err
63588	}
63589	req.Header = reqHeaders
63590	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63591}
63592
63593// Do executes the "compute.firewallPolicies.insert" call.
63594// Exactly one of *Operation or error will be non-nil. Any non-2xx
63595// status code is an error. Response headers are in either
63596// *Operation.ServerResponse.Header or (if a response was returned at
63597// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
63598// to check whether the returned error was because
63599// http.StatusNotModified was returned.
63600func (c *FirewallPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
63601	gensupport.SetOptions(c.urlParams_, opts...)
63602	res, err := c.doRequest("json")
63603	if res != nil && res.StatusCode == http.StatusNotModified {
63604		if res.Body != nil {
63605			res.Body.Close()
63606		}
63607		return nil, &googleapi.Error{
63608			Code:   res.StatusCode,
63609			Header: res.Header,
63610		}
63611	}
63612	if err != nil {
63613		return nil, err
63614	}
63615	defer googleapi.CloseBody(res)
63616	if err := googleapi.CheckResponse(res); err != nil {
63617		return nil, err
63618	}
63619	ret := &Operation{
63620		ServerResponse: googleapi.ServerResponse{
63621			Header:         res.Header,
63622			HTTPStatusCode: res.StatusCode,
63623		},
63624	}
63625	target := &ret
63626	if err := gensupport.DecodeResponse(target, res); err != nil {
63627		return nil, err
63628	}
63629	return ret, nil
63630	// {
63631	//   "description": "Creates a new policy in the specified project using the data included in the request.",
63632	//   "httpMethod": "POST",
63633	//   "id": "compute.firewallPolicies.insert",
63634	//   "parameters": {
63635	//     "parentId": {
63636	//       "description": "Parent ID for this request. The ID can be either be \"folders/[FOLDER_ID]\" if the parent is a folder or \"organizations/[ORGANIZATION_ID]\" if the parent is an organization.",
63637	//       "location": "query",
63638	//       "type": "string"
63639	//     },
63640	//     "requestId": {
63641	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
63642	//       "location": "query",
63643	//       "type": "string"
63644	//     }
63645	//   },
63646	//   "path": "locations/global/firewallPolicies",
63647	//   "request": {
63648	//     "$ref": "FirewallPolicy"
63649	//   },
63650	//   "response": {
63651	//     "$ref": "Operation"
63652	//   },
63653	//   "scopes": [
63654	//     "https://www.googleapis.com/auth/cloud-platform",
63655	//     "https://www.googleapis.com/auth/compute"
63656	//   ]
63657	// }
63658
63659}
63660
63661// method id "compute.firewallPolicies.list":
63662
63663type FirewallPoliciesListCall struct {
63664	s            *Service
63665	urlParams_   gensupport.URLParams
63666	ifNoneMatch_ string
63667	ctx_         context.Context
63668	header_      http.Header
63669}
63670
63671// List: Lists all the policies that have been configured for the
63672// specified project.
63673func (r *FirewallPoliciesService) List() *FirewallPoliciesListCall {
63674	c := &FirewallPoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63675	return c
63676}
63677
63678// Filter sets the optional parameter "filter": A filter expression that
63679// filters resources listed in the response. The expression must specify
63680// the field name, a comparison operator, and the value that you want to
63681// use for filtering. The value must be a string, a number, or a
63682// boolean. The comparison operator must be either `=`, `!=`, `>`, or
63683// `<`.
63684//
63685// For example, if you are filtering Compute Engine instances, you can
63686// exclude instances named `example-instance` by specifying `name !=
63687// example-instance`.
63688//
63689// You can also filter nested fields. For example, you could specify
63690// `scheduling.automaticRestart = false` to include instances only if
63691// they are not scheduled for automatic restarts. You can use filtering
63692// on nested fields to filter based on resource labels.
63693//
63694// To filter on multiple expressions, provide each separate expression
63695// within parentheses. For example: ``` (scheduling.automaticRestart =
63696// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
63697// is an `AND` expression. However, you can include `AND` and `OR`
63698// expressions explicitly. For example: ``` (cpuPlatform = "Intel
63699// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
63700// (scheduling.automaticRestart = true) ```
63701func (c *FirewallPoliciesListCall) Filter(filter string) *FirewallPoliciesListCall {
63702	c.urlParams_.Set("filter", filter)
63703	return c
63704}
63705
63706// MaxResults sets the optional parameter "maxResults": The maximum
63707// number of results per page that should be returned. If the number of
63708// available results is larger than `maxResults`, Compute Engine returns
63709// a `nextPageToken` that can be used to get the next page of results in
63710// subsequent list requests. Acceptable values are `0` to `500`,
63711// inclusive. (Default: `500`)
63712func (c *FirewallPoliciesListCall) MaxResults(maxResults int64) *FirewallPoliciesListCall {
63713	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
63714	return c
63715}
63716
63717// OrderBy sets the optional parameter "orderBy": Sorts list results by
63718// a certain order. By default, results are returned in alphanumerical
63719// order based on the resource name.
63720//
63721// You can also sort results in descending order based on the creation
63722// timestamp using `orderBy="creationTimestamp desc". This sorts
63723// results based on the `creationTimestamp` field in reverse
63724// chronological order (newest result first). Use this to sort resources
63725// like operations so that the newest operation is returned
63726// first.
63727//
63728// Currently, only sorting by `name` or `creationTimestamp desc` is
63729// supported.
63730func (c *FirewallPoliciesListCall) OrderBy(orderBy string) *FirewallPoliciesListCall {
63731	c.urlParams_.Set("orderBy", orderBy)
63732	return c
63733}
63734
63735// PageToken sets the optional parameter "pageToken": Specifies a page
63736// token to use. Set `pageToken` to the `nextPageToken` returned by a
63737// previous list request to get the next page of results.
63738func (c *FirewallPoliciesListCall) PageToken(pageToken string) *FirewallPoliciesListCall {
63739	c.urlParams_.Set("pageToken", pageToken)
63740	return c
63741}
63742
63743// ParentId sets the optional parameter "parentId": Parent ID for this
63744// request.
63745func (c *FirewallPoliciesListCall) ParentId(parentId string) *FirewallPoliciesListCall {
63746	c.urlParams_.Set("parentId", parentId)
63747	return c
63748}
63749
63750// ReturnPartialSuccess sets the optional parameter
63751// "returnPartialSuccess": Opt-in for partial success behavior which
63752// provides partial results in case of failure. The default value is
63753// false.
63754func (c *FirewallPoliciesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *FirewallPoliciesListCall {
63755	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
63756	return c
63757}
63758
63759// Fields allows partial responses to be retrieved. See
63760// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63761// for more information.
63762func (c *FirewallPoliciesListCall) Fields(s ...googleapi.Field) *FirewallPoliciesListCall {
63763	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63764	return c
63765}
63766
63767// IfNoneMatch sets the optional parameter which makes the operation
63768// fail if the object's ETag matches the given value. This is useful for
63769// getting updates only after the object has changed since the last
63770// request. Use googleapi.IsNotModified to check whether the response
63771// error from Do is the result of In-None-Match.
63772func (c *FirewallPoliciesListCall) IfNoneMatch(entityTag string) *FirewallPoliciesListCall {
63773	c.ifNoneMatch_ = entityTag
63774	return c
63775}
63776
63777// Context sets the context to be used in this call's Do method. Any
63778// pending HTTP request will be aborted if the provided context is
63779// canceled.
63780func (c *FirewallPoliciesListCall) Context(ctx context.Context) *FirewallPoliciesListCall {
63781	c.ctx_ = ctx
63782	return c
63783}
63784
63785// Header returns an http.Header that can be modified by the caller to
63786// add HTTP headers to the request.
63787func (c *FirewallPoliciesListCall) Header() http.Header {
63788	if c.header_ == nil {
63789		c.header_ = make(http.Header)
63790	}
63791	return c.header_
63792}
63793
63794func (c *FirewallPoliciesListCall) doRequest(alt string) (*http.Response, error) {
63795	reqHeaders := make(http.Header)
63796	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
63797	for k, v := range c.header_ {
63798		reqHeaders[k] = v
63799	}
63800	reqHeaders.Set("User-Agent", c.s.userAgent())
63801	if c.ifNoneMatch_ != "" {
63802		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
63803	}
63804	var body io.Reader = nil
63805	c.urlParams_.Set("alt", alt)
63806	c.urlParams_.Set("prettyPrint", "false")
63807	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies")
63808	urls += "?" + c.urlParams_.Encode()
63809	req, err := http.NewRequest("GET", urls, body)
63810	if err != nil {
63811		return nil, err
63812	}
63813	req.Header = reqHeaders
63814	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63815}
63816
63817// Do executes the "compute.firewallPolicies.list" call.
63818// Exactly one of *FirewallPolicyList or error will be non-nil. Any
63819// non-2xx status code is an error. Response headers are in either
63820// *FirewallPolicyList.ServerResponse.Header or (if a response was
63821// returned at all) in error.(*googleapi.Error).Header. Use
63822// googleapi.IsNotModified to check whether the returned error was
63823// because http.StatusNotModified was returned.
63824func (c *FirewallPoliciesListCall) Do(opts ...googleapi.CallOption) (*FirewallPolicyList, error) {
63825	gensupport.SetOptions(c.urlParams_, opts...)
63826	res, err := c.doRequest("json")
63827	if res != nil && res.StatusCode == http.StatusNotModified {
63828		if res.Body != nil {
63829			res.Body.Close()
63830		}
63831		return nil, &googleapi.Error{
63832			Code:   res.StatusCode,
63833			Header: res.Header,
63834		}
63835	}
63836	if err != nil {
63837		return nil, err
63838	}
63839	defer googleapi.CloseBody(res)
63840	if err := googleapi.CheckResponse(res); err != nil {
63841		return nil, err
63842	}
63843	ret := &FirewallPolicyList{
63844		ServerResponse: googleapi.ServerResponse{
63845			Header:         res.Header,
63846			HTTPStatusCode: res.StatusCode,
63847		},
63848	}
63849	target := &ret
63850	if err := gensupport.DecodeResponse(target, res); err != nil {
63851		return nil, err
63852	}
63853	return ret, nil
63854	// {
63855	//   "description": "Lists all the policies that have been configured for the specified project.",
63856	//   "httpMethod": "GET",
63857	//   "id": "compute.firewallPolicies.list",
63858	//   "parameters": {
63859	//     "filter": {
63860	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
63861	//       "location": "query",
63862	//       "type": "string"
63863	//     },
63864	//     "maxResults": {
63865	//       "default": "500",
63866	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
63867	//       "format": "uint32",
63868	//       "location": "query",
63869	//       "minimum": "0",
63870	//       "type": "integer"
63871	//     },
63872	//     "orderBy": {
63873	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
63874	//       "location": "query",
63875	//       "type": "string"
63876	//     },
63877	//     "pageToken": {
63878	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
63879	//       "location": "query",
63880	//       "type": "string"
63881	//     },
63882	//     "parentId": {
63883	//       "description": "Parent ID for this request.",
63884	//       "location": "query",
63885	//       "type": "string"
63886	//     },
63887	//     "returnPartialSuccess": {
63888	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
63889	//       "location": "query",
63890	//       "type": "boolean"
63891	//     }
63892	//   },
63893	//   "path": "locations/global/firewallPolicies",
63894	//   "response": {
63895	//     "$ref": "FirewallPolicyList"
63896	//   },
63897	//   "scopes": [
63898	//     "https://www.googleapis.com/auth/cloud-platform",
63899	//     "https://www.googleapis.com/auth/compute",
63900	//     "https://www.googleapis.com/auth/compute.readonly"
63901	//   ]
63902	// }
63903
63904}
63905
63906// Pages invokes f for each page of results.
63907// A non-nil error returned from f will halt the iteration.
63908// The provided context supersedes any context provided to the Context method.
63909func (c *FirewallPoliciesListCall) Pages(ctx context.Context, f func(*FirewallPolicyList) error) error {
63910	c.ctx_ = ctx
63911	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
63912	for {
63913		x, err := c.Do()
63914		if err != nil {
63915			return err
63916		}
63917		if err := f(x); err != nil {
63918			return err
63919		}
63920		if x.NextPageToken == "" {
63921			return nil
63922		}
63923		c.PageToken(x.NextPageToken)
63924	}
63925}
63926
63927// method id "compute.firewallPolicies.listAssociations":
63928
63929type FirewallPoliciesListAssociationsCall struct {
63930	s            *Service
63931	urlParams_   gensupport.URLParams
63932	ifNoneMatch_ string
63933	ctx_         context.Context
63934	header_      http.Header
63935}
63936
63937// ListAssociations: Lists associations of a specified target, i.e.,
63938// organization or folder.
63939func (r *FirewallPoliciesService) ListAssociations() *FirewallPoliciesListAssociationsCall {
63940	c := &FirewallPoliciesListAssociationsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63941	return c
63942}
63943
63944// TargetResource sets the optional parameter "targetResource": The
63945// target resource to list associations. It is an organization, or a
63946// folder.
63947func (c *FirewallPoliciesListAssociationsCall) TargetResource(targetResource string) *FirewallPoliciesListAssociationsCall {
63948	c.urlParams_.Set("targetResource", targetResource)
63949	return c
63950}
63951
63952// Fields allows partial responses to be retrieved. See
63953// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63954// for more information.
63955func (c *FirewallPoliciesListAssociationsCall) Fields(s ...googleapi.Field) *FirewallPoliciesListAssociationsCall {
63956	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63957	return c
63958}
63959
63960// IfNoneMatch sets the optional parameter which makes the operation
63961// fail if the object's ETag matches the given value. This is useful for
63962// getting updates only after the object has changed since the last
63963// request. Use googleapi.IsNotModified to check whether the response
63964// error from Do is the result of In-None-Match.
63965func (c *FirewallPoliciesListAssociationsCall) IfNoneMatch(entityTag string) *FirewallPoliciesListAssociationsCall {
63966	c.ifNoneMatch_ = entityTag
63967	return c
63968}
63969
63970// Context sets the context to be used in this call's Do method. Any
63971// pending HTTP request will be aborted if the provided context is
63972// canceled.
63973func (c *FirewallPoliciesListAssociationsCall) Context(ctx context.Context) *FirewallPoliciesListAssociationsCall {
63974	c.ctx_ = ctx
63975	return c
63976}
63977
63978// Header returns an http.Header that can be modified by the caller to
63979// add HTTP headers to the request.
63980func (c *FirewallPoliciesListAssociationsCall) Header() http.Header {
63981	if c.header_ == nil {
63982		c.header_ = make(http.Header)
63983	}
63984	return c.header_
63985}
63986
63987func (c *FirewallPoliciesListAssociationsCall) doRequest(alt string) (*http.Response, error) {
63988	reqHeaders := make(http.Header)
63989	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
63990	for k, v := range c.header_ {
63991		reqHeaders[k] = v
63992	}
63993	reqHeaders.Set("User-Agent", c.s.userAgent())
63994	if c.ifNoneMatch_ != "" {
63995		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
63996	}
63997	var body io.Reader = nil
63998	c.urlParams_.Set("alt", alt)
63999	c.urlParams_.Set("prettyPrint", "false")
64000	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/listAssociations")
64001	urls += "?" + c.urlParams_.Encode()
64002	req, err := http.NewRequest("GET", urls, body)
64003	if err != nil {
64004		return nil, err
64005	}
64006	req.Header = reqHeaders
64007	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64008}
64009
64010// Do executes the "compute.firewallPolicies.listAssociations" call.
64011// Exactly one of *FirewallPoliciesListAssociationsResponse or error
64012// will be non-nil. Any non-2xx status code is an error. Response
64013// headers are in either
64014// *FirewallPoliciesListAssociationsResponse.ServerResponse.Header or
64015// (if a response was returned at all) in
64016// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
64017// whether the returned error was because http.StatusNotModified was
64018// returned.
64019func (c *FirewallPoliciesListAssociationsCall) Do(opts ...googleapi.CallOption) (*FirewallPoliciesListAssociationsResponse, error) {
64020	gensupport.SetOptions(c.urlParams_, opts...)
64021	res, err := c.doRequest("json")
64022	if res != nil && res.StatusCode == http.StatusNotModified {
64023		if res.Body != nil {
64024			res.Body.Close()
64025		}
64026		return nil, &googleapi.Error{
64027			Code:   res.StatusCode,
64028			Header: res.Header,
64029		}
64030	}
64031	if err != nil {
64032		return nil, err
64033	}
64034	defer googleapi.CloseBody(res)
64035	if err := googleapi.CheckResponse(res); err != nil {
64036		return nil, err
64037	}
64038	ret := &FirewallPoliciesListAssociationsResponse{
64039		ServerResponse: googleapi.ServerResponse{
64040			Header:         res.Header,
64041			HTTPStatusCode: res.StatusCode,
64042		},
64043	}
64044	target := &ret
64045	if err := gensupport.DecodeResponse(target, res); err != nil {
64046		return nil, err
64047	}
64048	return ret, nil
64049	// {
64050	//   "description": "Lists associations of a specified target, i.e., organization or folder.",
64051	//   "httpMethod": "GET",
64052	//   "id": "compute.firewallPolicies.listAssociations",
64053	//   "parameters": {
64054	//     "targetResource": {
64055	//       "description": "The target resource to list associations. It is an organization, or a folder.",
64056	//       "location": "query",
64057	//       "type": "string"
64058	//     }
64059	//   },
64060	//   "path": "locations/global/firewallPolicies/listAssociations",
64061	//   "response": {
64062	//     "$ref": "FirewallPoliciesListAssociationsResponse"
64063	//   },
64064	//   "scopes": [
64065	//     "https://www.googleapis.com/auth/cloud-platform",
64066	//     "https://www.googleapis.com/auth/compute"
64067	//   ]
64068	// }
64069
64070}
64071
64072// method id "compute.firewallPolicies.move":
64073
64074type FirewallPoliciesMoveCall struct {
64075	s              *Service
64076	firewallPolicy string
64077	urlParams_     gensupport.URLParams
64078	ctx_           context.Context
64079	header_        http.Header
64080}
64081
64082// Move: Moves the specified firewall policy.
64083func (r *FirewallPoliciesService) Move(firewallPolicy string) *FirewallPoliciesMoveCall {
64084	c := &FirewallPoliciesMoveCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64085	c.firewallPolicy = firewallPolicy
64086	return c
64087}
64088
64089// ParentId sets the optional parameter "parentId": The new parent of
64090// the firewall policy.
64091func (c *FirewallPoliciesMoveCall) ParentId(parentId string) *FirewallPoliciesMoveCall {
64092	c.urlParams_.Set("parentId", parentId)
64093	return c
64094}
64095
64096// RequestId sets the optional parameter "requestId": An optional
64097// request ID to identify requests. Specify a unique request ID so that
64098// if you must retry your request, the server will know to ignore the
64099// request if it has already been completed.
64100//
64101// For example, consider a situation where you make an initial request
64102// and the request times out. If you make the request again with the
64103// same request ID, the server can check if original operation with the
64104// same request ID was received, and if so, will ignore the second
64105// request. This prevents clients from accidentally creating duplicate
64106// commitments.
64107//
64108// The request ID must be a valid UUID with the exception that zero UUID
64109// is not supported (00000000-0000-0000-0000-000000000000).
64110func (c *FirewallPoliciesMoveCall) RequestId(requestId string) *FirewallPoliciesMoveCall {
64111	c.urlParams_.Set("requestId", requestId)
64112	return c
64113}
64114
64115// Fields allows partial responses to be retrieved. See
64116// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64117// for more information.
64118func (c *FirewallPoliciesMoveCall) Fields(s ...googleapi.Field) *FirewallPoliciesMoveCall {
64119	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64120	return c
64121}
64122
64123// Context sets the context to be used in this call's Do method. Any
64124// pending HTTP request will be aborted if the provided context is
64125// canceled.
64126func (c *FirewallPoliciesMoveCall) Context(ctx context.Context) *FirewallPoliciesMoveCall {
64127	c.ctx_ = ctx
64128	return c
64129}
64130
64131// Header returns an http.Header that can be modified by the caller to
64132// add HTTP headers to the request.
64133func (c *FirewallPoliciesMoveCall) Header() http.Header {
64134	if c.header_ == nil {
64135		c.header_ = make(http.Header)
64136	}
64137	return c.header_
64138}
64139
64140func (c *FirewallPoliciesMoveCall) doRequest(alt string) (*http.Response, error) {
64141	reqHeaders := make(http.Header)
64142	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
64143	for k, v := range c.header_ {
64144		reqHeaders[k] = v
64145	}
64146	reqHeaders.Set("User-Agent", c.s.userAgent())
64147	var body io.Reader = nil
64148	c.urlParams_.Set("alt", alt)
64149	c.urlParams_.Set("prettyPrint", "false")
64150	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/move")
64151	urls += "?" + c.urlParams_.Encode()
64152	req, err := http.NewRequest("POST", urls, body)
64153	if err != nil {
64154		return nil, err
64155	}
64156	req.Header = reqHeaders
64157	googleapi.Expand(req.URL, map[string]string{
64158		"firewallPolicy": c.firewallPolicy,
64159	})
64160	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64161}
64162
64163// Do executes the "compute.firewallPolicies.move" call.
64164// Exactly one of *Operation or error will be non-nil. Any non-2xx
64165// status code is an error. Response headers are in either
64166// *Operation.ServerResponse.Header or (if a response was returned at
64167// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
64168// to check whether the returned error was because
64169// http.StatusNotModified was returned.
64170func (c *FirewallPoliciesMoveCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
64171	gensupport.SetOptions(c.urlParams_, opts...)
64172	res, err := c.doRequest("json")
64173	if res != nil && res.StatusCode == http.StatusNotModified {
64174		if res.Body != nil {
64175			res.Body.Close()
64176		}
64177		return nil, &googleapi.Error{
64178			Code:   res.StatusCode,
64179			Header: res.Header,
64180		}
64181	}
64182	if err != nil {
64183		return nil, err
64184	}
64185	defer googleapi.CloseBody(res)
64186	if err := googleapi.CheckResponse(res); err != nil {
64187		return nil, err
64188	}
64189	ret := &Operation{
64190		ServerResponse: googleapi.ServerResponse{
64191			Header:         res.Header,
64192			HTTPStatusCode: res.StatusCode,
64193		},
64194	}
64195	target := &ret
64196	if err := gensupport.DecodeResponse(target, res); err != nil {
64197		return nil, err
64198	}
64199	return ret, nil
64200	// {
64201	//   "description": "Moves the specified firewall policy.",
64202	//   "httpMethod": "POST",
64203	//   "id": "compute.firewallPolicies.move",
64204	//   "parameterOrder": [
64205	//     "firewallPolicy"
64206	//   ],
64207	//   "parameters": {
64208	//     "firewallPolicy": {
64209	//       "description": "Name of the firewall policy to update.",
64210	//       "location": "path",
64211	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
64212	//       "required": true,
64213	//       "type": "string"
64214	//     },
64215	//     "parentId": {
64216	//       "description": "The new parent of the firewall policy.",
64217	//       "location": "query",
64218	//       "type": "string"
64219	//     },
64220	//     "requestId": {
64221	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
64222	//       "location": "query",
64223	//       "type": "string"
64224	//     }
64225	//   },
64226	//   "path": "locations/global/firewallPolicies/{firewallPolicy}/move",
64227	//   "response": {
64228	//     "$ref": "Operation"
64229	//   },
64230	//   "scopes": [
64231	//     "https://www.googleapis.com/auth/cloud-platform",
64232	//     "https://www.googleapis.com/auth/compute"
64233	//   ]
64234	// }
64235
64236}
64237
64238// method id "compute.firewallPolicies.patch":
64239
64240type FirewallPoliciesPatchCall struct {
64241	s              *Service
64242	firewallPolicy string
64243	firewallpolicy *FirewallPolicy
64244	urlParams_     gensupport.URLParams
64245	ctx_           context.Context
64246	header_        http.Header
64247}
64248
64249// Patch: Patches the specified policy with the data included in the
64250// request.
64251func (r *FirewallPoliciesService) Patch(firewallPolicy string, firewallpolicy *FirewallPolicy) *FirewallPoliciesPatchCall {
64252	c := &FirewallPoliciesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64253	c.firewallPolicy = firewallPolicy
64254	c.firewallpolicy = firewallpolicy
64255	return c
64256}
64257
64258// RequestId sets the optional parameter "requestId": An optional
64259// request ID to identify requests. Specify a unique request ID so that
64260// if you must retry your request, the server will know to ignore the
64261// request if it has already been completed.
64262//
64263// For example, consider a situation where you make an initial request
64264// and the request times out. If you make the request again with the
64265// same request ID, the server can check if original operation with the
64266// same request ID was received, and if so, will ignore the second
64267// request. This prevents clients from accidentally creating duplicate
64268// commitments.
64269//
64270// The request ID must be a valid UUID with the exception that zero UUID
64271// is not supported (00000000-0000-0000-0000-000000000000).
64272func (c *FirewallPoliciesPatchCall) RequestId(requestId string) *FirewallPoliciesPatchCall {
64273	c.urlParams_.Set("requestId", requestId)
64274	return c
64275}
64276
64277// Fields allows partial responses to be retrieved. See
64278// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64279// for more information.
64280func (c *FirewallPoliciesPatchCall) Fields(s ...googleapi.Field) *FirewallPoliciesPatchCall {
64281	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64282	return c
64283}
64284
64285// Context sets the context to be used in this call's Do method. Any
64286// pending HTTP request will be aborted if the provided context is
64287// canceled.
64288func (c *FirewallPoliciesPatchCall) Context(ctx context.Context) *FirewallPoliciesPatchCall {
64289	c.ctx_ = ctx
64290	return c
64291}
64292
64293// Header returns an http.Header that can be modified by the caller to
64294// add HTTP headers to the request.
64295func (c *FirewallPoliciesPatchCall) Header() http.Header {
64296	if c.header_ == nil {
64297		c.header_ = make(http.Header)
64298	}
64299	return c.header_
64300}
64301
64302func (c *FirewallPoliciesPatchCall) doRequest(alt string) (*http.Response, error) {
64303	reqHeaders := make(http.Header)
64304	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
64305	for k, v := range c.header_ {
64306		reqHeaders[k] = v
64307	}
64308	reqHeaders.Set("User-Agent", c.s.userAgent())
64309	var body io.Reader = nil
64310	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewallpolicy)
64311	if err != nil {
64312		return nil, err
64313	}
64314	reqHeaders.Set("Content-Type", "application/json")
64315	c.urlParams_.Set("alt", alt)
64316	c.urlParams_.Set("prettyPrint", "false")
64317	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}")
64318	urls += "?" + c.urlParams_.Encode()
64319	req, err := http.NewRequest("PATCH", urls, body)
64320	if err != nil {
64321		return nil, err
64322	}
64323	req.Header = reqHeaders
64324	googleapi.Expand(req.URL, map[string]string{
64325		"firewallPolicy": c.firewallPolicy,
64326	})
64327	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64328}
64329
64330// Do executes the "compute.firewallPolicies.patch" call.
64331// Exactly one of *Operation or error will be non-nil. Any non-2xx
64332// status code is an error. Response headers are in either
64333// *Operation.ServerResponse.Header or (if a response was returned at
64334// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
64335// to check whether the returned error was because
64336// http.StatusNotModified was returned.
64337func (c *FirewallPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
64338	gensupport.SetOptions(c.urlParams_, opts...)
64339	res, err := c.doRequest("json")
64340	if res != nil && res.StatusCode == http.StatusNotModified {
64341		if res.Body != nil {
64342			res.Body.Close()
64343		}
64344		return nil, &googleapi.Error{
64345			Code:   res.StatusCode,
64346			Header: res.Header,
64347		}
64348	}
64349	if err != nil {
64350		return nil, err
64351	}
64352	defer googleapi.CloseBody(res)
64353	if err := googleapi.CheckResponse(res); err != nil {
64354		return nil, err
64355	}
64356	ret := &Operation{
64357		ServerResponse: googleapi.ServerResponse{
64358			Header:         res.Header,
64359			HTTPStatusCode: res.StatusCode,
64360		},
64361	}
64362	target := &ret
64363	if err := gensupport.DecodeResponse(target, res); err != nil {
64364		return nil, err
64365	}
64366	return ret, nil
64367	// {
64368	//   "description": "Patches the specified policy with the data included in the request.",
64369	//   "httpMethod": "PATCH",
64370	//   "id": "compute.firewallPolicies.patch",
64371	//   "parameterOrder": [
64372	//     "firewallPolicy"
64373	//   ],
64374	//   "parameters": {
64375	//     "firewallPolicy": {
64376	//       "description": "Name of the firewall policy to update.",
64377	//       "location": "path",
64378	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
64379	//       "required": true,
64380	//       "type": "string"
64381	//     },
64382	//     "requestId": {
64383	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
64384	//       "location": "query",
64385	//       "type": "string"
64386	//     }
64387	//   },
64388	//   "path": "locations/global/firewallPolicies/{firewallPolicy}",
64389	//   "request": {
64390	//     "$ref": "FirewallPolicy"
64391	//   },
64392	//   "response": {
64393	//     "$ref": "Operation"
64394	//   },
64395	//   "scopes": [
64396	//     "https://www.googleapis.com/auth/cloud-platform",
64397	//     "https://www.googleapis.com/auth/compute"
64398	//   ]
64399	// }
64400
64401}
64402
64403// method id "compute.firewallPolicies.patchRule":
64404
64405type FirewallPoliciesPatchRuleCall struct {
64406	s                  *Service
64407	firewallPolicy     string
64408	firewallpolicyrule *FirewallPolicyRule
64409	urlParams_         gensupport.URLParams
64410	ctx_               context.Context
64411	header_            http.Header
64412}
64413
64414// PatchRule: Patches a rule of the specified priority.
64415func (r *FirewallPoliciesService) PatchRule(firewallPolicy string, firewallpolicyrule *FirewallPolicyRule) *FirewallPoliciesPatchRuleCall {
64416	c := &FirewallPoliciesPatchRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64417	c.firewallPolicy = firewallPolicy
64418	c.firewallpolicyrule = firewallpolicyrule
64419	return c
64420}
64421
64422// Priority sets the optional parameter "priority": The priority of the
64423// rule to patch.
64424func (c *FirewallPoliciesPatchRuleCall) Priority(priority int64) *FirewallPoliciesPatchRuleCall {
64425	c.urlParams_.Set("priority", fmt.Sprint(priority))
64426	return c
64427}
64428
64429// RequestId sets the optional parameter "requestId": An optional
64430// request ID to identify requests. Specify a unique request ID so that
64431// if you must retry your request, the server will know to ignore the
64432// request if it has already been completed.
64433//
64434// For example, consider a situation where you make an initial request
64435// and the request times out. If you make the request again with the
64436// same request ID, the server can check if original operation with the
64437// same request ID was received, and if so, will ignore the second
64438// request. This prevents clients from accidentally creating duplicate
64439// commitments.
64440//
64441// The request ID must be a valid UUID with the exception that zero UUID
64442// is not supported (00000000-0000-0000-0000-000000000000).
64443func (c *FirewallPoliciesPatchRuleCall) RequestId(requestId string) *FirewallPoliciesPatchRuleCall {
64444	c.urlParams_.Set("requestId", requestId)
64445	return c
64446}
64447
64448// Fields allows partial responses to be retrieved. See
64449// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64450// for more information.
64451func (c *FirewallPoliciesPatchRuleCall) Fields(s ...googleapi.Field) *FirewallPoliciesPatchRuleCall {
64452	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64453	return c
64454}
64455
64456// Context sets the context to be used in this call's Do method. Any
64457// pending HTTP request will be aborted if the provided context is
64458// canceled.
64459func (c *FirewallPoliciesPatchRuleCall) Context(ctx context.Context) *FirewallPoliciesPatchRuleCall {
64460	c.ctx_ = ctx
64461	return c
64462}
64463
64464// Header returns an http.Header that can be modified by the caller to
64465// add HTTP headers to the request.
64466func (c *FirewallPoliciesPatchRuleCall) Header() http.Header {
64467	if c.header_ == nil {
64468		c.header_ = make(http.Header)
64469	}
64470	return c.header_
64471}
64472
64473func (c *FirewallPoliciesPatchRuleCall) doRequest(alt string) (*http.Response, error) {
64474	reqHeaders := make(http.Header)
64475	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
64476	for k, v := range c.header_ {
64477		reqHeaders[k] = v
64478	}
64479	reqHeaders.Set("User-Agent", c.s.userAgent())
64480	var body io.Reader = nil
64481	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewallpolicyrule)
64482	if err != nil {
64483		return nil, err
64484	}
64485	reqHeaders.Set("Content-Type", "application/json")
64486	c.urlParams_.Set("alt", alt)
64487	c.urlParams_.Set("prettyPrint", "false")
64488	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/patchRule")
64489	urls += "?" + c.urlParams_.Encode()
64490	req, err := http.NewRequest("POST", urls, body)
64491	if err != nil {
64492		return nil, err
64493	}
64494	req.Header = reqHeaders
64495	googleapi.Expand(req.URL, map[string]string{
64496		"firewallPolicy": c.firewallPolicy,
64497	})
64498	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64499}
64500
64501// Do executes the "compute.firewallPolicies.patchRule" call.
64502// Exactly one of *Operation or error will be non-nil. Any non-2xx
64503// status code is an error. Response headers are in either
64504// *Operation.ServerResponse.Header or (if a response was returned at
64505// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
64506// to check whether the returned error was because
64507// http.StatusNotModified was returned.
64508func (c *FirewallPoliciesPatchRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
64509	gensupport.SetOptions(c.urlParams_, opts...)
64510	res, err := c.doRequest("json")
64511	if res != nil && res.StatusCode == http.StatusNotModified {
64512		if res.Body != nil {
64513			res.Body.Close()
64514		}
64515		return nil, &googleapi.Error{
64516			Code:   res.StatusCode,
64517			Header: res.Header,
64518		}
64519	}
64520	if err != nil {
64521		return nil, err
64522	}
64523	defer googleapi.CloseBody(res)
64524	if err := googleapi.CheckResponse(res); err != nil {
64525		return nil, err
64526	}
64527	ret := &Operation{
64528		ServerResponse: googleapi.ServerResponse{
64529			Header:         res.Header,
64530			HTTPStatusCode: res.StatusCode,
64531		},
64532	}
64533	target := &ret
64534	if err := gensupport.DecodeResponse(target, res); err != nil {
64535		return nil, err
64536	}
64537	return ret, nil
64538	// {
64539	//   "description": "Patches a rule of the specified priority.",
64540	//   "httpMethod": "POST",
64541	//   "id": "compute.firewallPolicies.patchRule",
64542	//   "parameterOrder": [
64543	//     "firewallPolicy"
64544	//   ],
64545	//   "parameters": {
64546	//     "firewallPolicy": {
64547	//       "description": "Name of the firewall policy to update.",
64548	//       "location": "path",
64549	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
64550	//       "required": true,
64551	//       "type": "string"
64552	//     },
64553	//     "priority": {
64554	//       "description": "The priority of the rule to patch.",
64555	//       "format": "int32",
64556	//       "location": "query",
64557	//       "type": "integer"
64558	//     },
64559	//     "requestId": {
64560	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
64561	//       "location": "query",
64562	//       "type": "string"
64563	//     }
64564	//   },
64565	//   "path": "locations/global/firewallPolicies/{firewallPolicy}/patchRule",
64566	//   "request": {
64567	//     "$ref": "FirewallPolicyRule"
64568	//   },
64569	//   "response": {
64570	//     "$ref": "Operation"
64571	//   },
64572	//   "scopes": [
64573	//     "https://www.googleapis.com/auth/cloud-platform",
64574	//     "https://www.googleapis.com/auth/compute"
64575	//   ]
64576	// }
64577
64578}
64579
64580// method id "compute.firewallPolicies.removeAssociation":
64581
64582type FirewallPoliciesRemoveAssociationCall struct {
64583	s              *Service
64584	firewallPolicy string
64585	urlParams_     gensupport.URLParams
64586	ctx_           context.Context
64587	header_        http.Header
64588}
64589
64590// RemoveAssociation: Removes an association for the specified firewall
64591// policy.
64592func (r *FirewallPoliciesService) RemoveAssociation(firewallPolicy string) *FirewallPoliciesRemoveAssociationCall {
64593	c := &FirewallPoliciesRemoveAssociationCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64594	c.firewallPolicy = firewallPolicy
64595	return c
64596}
64597
64598// Name sets the optional parameter "name": Name for the attachment that
64599// will be removed.
64600func (c *FirewallPoliciesRemoveAssociationCall) Name(name string) *FirewallPoliciesRemoveAssociationCall {
64601	c.urlParams_.Set("name", name)
64602	return c
64603}
64604
64605// RequestId sets the optional parameter "requestId": An optional
64606// request ID to identify requests. Specify a unique request ID so that
64607// if you must retry your request, the server will know to ignore the
64608// request if it has already been completed.
64609//
64610// For example, consider a situation where you make an initial request
64611// and the request times out. If you make the request again with the
64612// same request ID, the server can check if original operation with the
64613// same request ID was received, and if so, will ignore the second
64614// request. This prevents clients from accidentally creating duplicate
64615// commitments.
64616//
64617// The request ID must be a valid UUID with the exception that zero UUID
64618// is not supported (00000000-0000-0000-0000-000000000000).
64619func (c *FirewallPoliciesRemoveAssociationCall) RequestId(requestId string) *FirewallPoliciesRemoveAssociationCall {
64620	c.urlParams_.Set("requestId", requestId)
64621	return c
64622}
64623
64624// Fields allows partial responses to be retrieved. See
64625// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64626// for more information.
64627func (c *FirewallPoliciesRemoveAssociationCall) Fields(s ...googleapi.Field) *FirewallPoliciesRemoveAssociationCall {
64628	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64629	return c
64630}
64631
64632// Context sets the context to be used in this call's Do method. Any
64633// pending HTTP request will be aborted if the provided context is
64634// canceled.
64635func (c *FirewallPoliciesRemoveAssociationCall) Context(ctx context.Context) *FirewallPoliciesRemoveAssociationCall {
64636	c.ctx_ = ctx
64637	return c
64638}
64639
64640// Header returns an http.Header that can be modified by the caller to
64641// add HTTP headers to the request.
64642func (c *FirewallPoliciesRemoveAssociationCall) Header() http.Header {
64643	if c.header_ == nil {
64644		c.header_ = make(http.Header)
64645	}
64646	return c.header_
64647}
64648
64649func (c *FirewallPoliciesRemoveAssociationCall) doRequest(alt string) (*http.Response, error) {
64650	reqHeaders := make(http.Header)
64651	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
64652	for k, v := range c.header_ {
64653		reqHeaders[k] = v
64654	}
64655	reqHeaders.Set("User-Agent", c.s.userAgent())
64656	var body io.Reader = nil
64657	c.urlParams_.Set("alt", alt)
64658	c.urlParams_.Set("prettyPrint", "false")
64659	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/removeAssociation")
64660	urls += "?" + c.urlParams_.Encode()
64661	req, err := http.NewRequest("POST", urls, body)
64662	if err != nil {
64663		return nil, err
64664	}
64665	req.Header = reqHeaders
64666	googleapi.Expand(req.URL, map[string]string{
64667		"firewallPolicy": c.firewallPolicy,
64668	})
64669	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64670}
64671
64672// Do executes the "compute.firewallPolicies.removeAssociation" call.
64673// Exactly one of *Operation or error will be non-nil. Any non-2xx
64674// status code is an error. Response headers are in either
64675// *Operation.ServerResponse.Header or (if a response was returned at
64676// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
64677// to check whether the returned error was because
64678// http.StatusNotModified was returned.
64679func (c *FirewallPoliciesRemoveAssociationCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
64680	gensupport.SetOptions(c.urlParams_, opts...)
64681	res, err := c.doRequest("json")
64682	if res != nil && res.StatusCode == http.StatusNotModified {
64683		if res.Body != nil {
64684			res.Body.Close()
64685		}
64686		return nil, &googleapi.Error{
64687			Code:   res.StatusCode,
64688			Header: res.Header,
64689		}
64690	}
64691	if err != nil {
64692		return nil, err
64693	}
64694	defer googleapi.CloseBody(res)
64695	if err := googleapi.CheckResponse(res); err != nil {
64696		return nil, err
64697	}
64698	ret := &Operation{
64699		ServerResponse: googleapi.ServerResponse{
64700			Header:         res.Header,
64701			HTTPStatusCode: res.StatusCode,
64702		},
64703	}
64704	target := &ret
64705	if err := gensupport.DecodeResponse(target, res); err != nil {
64706		return nil, err
64707	}
64708	return ret, nil
64709	// {
64710	//   "description": "Removes an association for the specified firewall policy.",
64711	//   "httpMethod": "POST",
64712	//   "id": "compute.firewallPolicies.removeAssociation",
64713	//   "parameterOrder": [
64714	//     "firewallPolicy"
64715	//   ],
64716	//   "parameters": {
64717	//     "firewallPolicy": {
64718	//       "description": "Name of the firewall policy to update.",
64719	//       "location": "path",
64720	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
64721	//       "required": true,
64722	//       "type": "string"
64723	//     },
64724	//     "name": {
64725	//       "description": "Name for the attachment that will be removed.",
64726	//       "location": "query",
64727	//       "type": "string"
64728	//     },
64729	//     "requestId": {
64730	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
64731	//       "location": "query",
64732	//       "type": "string"
64733	//     }
64734	//   },
64735	//   "path": "locations/global/firewallPolicies/{firewallPolicy}/removeAssociation",
64736	//   "response": {
64737	//     "$ref": "Operation"
64738	//   },
64739	//   "scopes": [
64740	//     "https://www.googleapis.com/auth/cloud-platform",
64741	//     "https://www.googleapis.com/auth/compute"
64742	//   ]
64743	// }
64744
64745}
64746
64747// method id "compute.firewallPolicies.removeRule":
64748
64749type FirewallPoliciesRemoveRuleCall struct {
64750	s              *Service
64751	firewallPolicy string
64752	urlParams_     gensupport.URLParams
64753	ctx_           context.Context
64754	header_        http.Header
64755}
64756
64757// RemoveRule: Deletes a rule of the specified priority.
64758func (r *FirewallPoliciesService) RemoveRule(firewallPolicy string) *FirewallPoliciesRemoveRuleCall {
64759	c := &FirewallPoliciesRemoveRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64760	c.firewallPolicy = firewallPolicy
64761	return c
64762}
64763
64764// Priority sets the optional parameter "priority": The priority of the
64765// rule to remove from the firewall policy.
64766func (c *FirewallPoliciesRemoveRuleCall) Priority(priority int64) *FirewallPoliciesRemoveRuleCall {
64767	c.urlParams_.Set("priority", fmt.Sprint(priority))
64768	return c
64769}
64770
64771// RequestId sets the optional parameter "requestId": An optional
64772// request ID to identify requests. Specify a unique request ID so that
64773// if you must retry your request, the server will know to ignore the
64774// request if it has already been completed.
64775//
64776// For example, consider a situation where you make an initial request
64777// and the request times out. If you make the request again with the
64778// same request ID, the server can check if original operation with the
64779// same request ID was received, and if so, will ignore the second
64780// request. This prevents clients from accidentally creating duplicate
64781// commitments.
64782//
64783// The request ID must be a valid UUID with the exception that zero UUID
64784// is not supported (00000000-0000-0000-0000-000000000000).
64785func (c *FirewallPoliciesRemoveRuleCall) RequestId(requestId string) *FirewallPoliciesRemoveRuleCall {
64786	c.urlParams_.Set("requestId", requestId)
64787	return c
64788}
64789
64790// Fields allows partial responses to be retrieved. See
64791// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64792// for more information.
64793func (c *FirewallPoliciesRemoveRuleCall) Fields(s ...googleapi.Field) *FirewallPoliciesRemoveRuleCall {
64794	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64795	return c
64796}
64797
64798// Context sets the context to be used in this call's Do method. Any
64799// pending HTTP request will be aborted if the provided context is
64800// canceled.
64801func (c *FirewallPoliciesRemoveRuleCall) Context(ctx context.Context) *FirewallPoliciesRemoveRuleCall {
64802	c.ctx_ = ctx
64803	return c
64804}
64805
64806// Header returns an http.Header that can be modified by the caller to
64807// add HTTP headers to the request.
64808func (c *FirewallPoliciesRemoveRuleCall) Header() http.Header {
64809	if c.header_ == nil {
64810		c.header_ = make(http.Header)
64811	}
64812	return c.header_
64813}
64814
64815func (c *FirewallPoliciesRemoveRuleCall) doRequest(alt string) (*http.Response, error) {
64816	reqHeaders := make(http.Header)
64817	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
64818	for k, v := range c.header_ {
64819		reqHeaders[k] = v
64820	}
64821	reqHeaders.Set("User-Agent", c.s.userAgent())
64822	var body io.Reader = nil
64823	c.urlParams_.Set("alt", alt)
64824	c.urlParams_.Set("prettyPrint", "false")
64825	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/removeRule")
64826	urls += "?" + c.urlParams_.Encode()
64827	req, err := http.NewRequest("POST", urls, body)
64828	if err != nil {
64829		return nil, err
64830	}
64831	req.Header = reqHeaders
64832	googleapi.Expand(req.URL, map[string]string{
64833		"firewallPolicy": c.firewallPolicy,
64834	})
64835	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64836}
64837
64838// Do executes the "compute.firewallPolicies.removeRule" call.
64839// Exactly one of *Operation or error will be non-nil. Any non-2xx
64840// status code is an error. Response headers are in either
64841// *Operation.ServerResponse.Header or (if a response was returned at
64842// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
64843// to check whether the returned error was because
64844// http.StatusNotModified was returned.
64845func (c *FirewallPoliciesRemoveRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
64846	gensupport.SetOptions(c.urlParams_, opts...)
64847	res, err := c.doRequest("json")
64848	if res != nil && res.StatusCode == http.StatusNotModified {
64849		if res.Body != nil {
64850			res.Body.Close()
64851		}
64852		return nil, &googleapi.Error{
64853			Code:   res.StatusCode,
64854			Header: res.Header,
64855		}
64856	}
64857	if err != nil {
64858		return nil, err
64859	}
64860	defer googleapi.CloseBody(res)
64861	if err := googleapi.CheckResponse(res); err != nil {
64862		return nil, err
64863	}
64864	ret := &Operation{
64865		ServerResponse: googleapi.ServerResponse{
64866			Header:         res.Header,
64867			HTTPStatusCode: res.StatusCode,
64868		},
64869	}
64870	target := &ret
64871	if err := gensupport.DecodeResponse(target, res); err != nil {
64872		return nil, err
64873	}
64874	return ret, nil
64875	// {
64876	//   "description": "Deletes a rule of the specified priority.",
64877	//   "httpMethod": "POST",
64878	//   "id": "compute.firewallPolicies.removeRule",
64879	//   "parameterOrder": [
64880	//     "firewallPolicy"
64881	//   ],
64882	//   "parameters": {
64883	//     "firewallPolicy": {
64884	//       "description": "Name of the firewall policy to update.",
64885	//       "location": "path",
64886	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
64887	//       "required": true,
64888	//       "type": "string"
64889	//     },
64890	//     "priority": {
64891	//       "description": "The priority of the rule to remove from the firewall policy.",
64892	//       "format": "int32",
64893	//       "location": "query",
64894	//       "type": "integer"
64895	//     },
64896	//     "requestId": {
64897	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
64898	//       "location": "query",
64899	//       "type": "string"
64900	//     }
64901	//   },
64902	//   "path": "locations/global/firewallPolicies/{firewallPolicy}/removeRule",
64903	//   "response": {
64904	//     "$ref": "Operation"
64905	//   },
64906	//   "scopes": [
64907	//     "https://www.googleapis.com/auth/cloud-platform",
64908	//     "https://www.googleapis.com/auth/compute"
64909	//   ]
64910	// }
64911
64912}
64913
64914// method id "compute.firewallPolicies.setIamPolicy":
64915
64916type FirewallPoliciesSetIamPolicyCall struct {
64917	s                                  *Service
64918	resource                           string
64919	globalorganizationsetpolicyrequest *GlobalOrganizationSetPolicyRequest
64920	urlParams_                         gensupport.URLParams
64921	ctx_                               context.Context
64922	header_                            http.Header
64923}
64924
64925// SetIamPolicy: Sets the access control policy on the specified
64926// resource. Replaces any existing policy.
64927func (r *FirewallPoliciesService) SetIamPolicy(resource string, globalorganizationsetpolicyrequest *GlobalOrganizationSetPolicyRequest) *FirewallPoliciesSetIamPolicyCall {
64928	c := &FirewallPoliciesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64929	c.resource = resource
64930	c.globalorganizationsetpolicyrequest = globalorganizationsetpolicyrequest
64931	return c
64932}
64933
64934// Fields allows partial responses to be retrieved. See
64935// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64936// for more information.
64937func (c *FirewallPoliciesSetIamPolicyCall) Fields(s ...googleapi.Field) *FirewallPoliciesSetIamPolicyCall {
64938	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64939	return c
64940}
64941
64942// Context sets the context to be used in this call's Do method. Any
64943// pending HTTP request will be aborted if the provided context is
64944// canceled.
64945func (c *FirewallPoliciesSetIamPolicyCall) Context(ctx context.Context) *FirewallPoliciesSetIamPolicyCall {
64946	c.ctx_ = ctx
64947	return c
64948}
64949
64950// Header returns an http.Header that can be modified by the caller to
64951// add HTTP headers to the request.
64952func (c *FirewallPoliciesSetIamPolicyCall) Header() http.Header {
64953	if c.header_ == nil {
64954		c.header_ = make(http.Header)
64955	}
64956	return c.header_
64957}
64958
64959func (c *FirewallPoliciesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
64960	reqHeaders := make(http.Header)
64961	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
64962	for k, v := range c.header_ {
64963		reqHeaders[k] = v
64964	}
64965	reqHeaders.Set("User-Agent", c.s.userAgent())
64966	var body io.Reader = nil
64967	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalorganizationsetpolicyrequest)
64968	if err != nil {
64969		return nil, err
64970	}
64971	reqHeaders.Set("Content-Type", "application/json")
64972	c.urlParams_.Set("alt", alt)
64973	c.urlParams_.Set("prettyPrint", "false")
64974	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{resource}/setIamPolicy")
64975	urls += "?" + c.urlParams_.Encode()
64976	req, err := http.NewRequest("POST", urls, body)
64977	if err != nil {
64978		return nil, err
64979	}
64980	req.Header = reqHeaders
64981	googleapi.Expand(req.URL, map[string]string{
64982		"resource": c.resource,
64983	})
64984	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64985}
64986
64987// Do executes the "compute.firewallPolicies.setIamPolicy" call.
64988// Exactly one of *Policy or error will be non-nil. Any non-2xx status
64989// code is an error. Response headers are in either
64990// *Policy.ServerResponse.Header or (if a response was returned at all)
64991// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
64992// check whether the returned error was because http.StatusNotModified
64993// was returned.
64994func (c *FirewallPoliciesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
64995	gensupport.SetOptions(c.urlParams_, opts...)
64996	res, err := c.doRequest("json")
64997	if res != nil && res.StatusCode == http.StatusNotModified {
64998		if res.Body != nil {
64999			res.Body.Close()
65000		}
65001		return nil, &googleapi.Error{
65002			Code:   res.StatusCode,
65003			Header: res.Header,
65004		}
65005	}
65006	if err != nil {
65007		return nil, err
65008	}
65009	defer googleapi.CloseBody(res)
65010	if err := googleapi.CheckResponse(res); err != nil {
65011		return nil, err
65012	}
65013	ret := &Policy{
65014		ServerResponse: googleapi.ServerResponse{
65015			Header:         res.Header,
65016			HTTPStatusCode: res.StatusCode,
65017		},
65018	}
65019	target := &ret
65020	if err := gensupport.DecodeResponse(target, res); err != nil {
65021		return nil, err
65022	}
65023	return ret, nil
65024	// {
65025	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
65026	//   "httpMethod": "POST",
65027	//   "id": "compute.firewallPolicies.setIamPolicy",
65028	//   "parameterOrder": [
65029	//     "resource"
65030	//   ],
65031	//   "parameters": {
65032	//     "resource": {
65033	//       "description": "Name or id of the resource for this request.",
65034	//       "location": "path",
65035	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
65036	//       "required": true,
65037	//       "type": "string"
65038	//     }
65039	//   },
65040	//   "path": "locations/global/firewallPolicies/{resource}/setIamPolicy",
65041	//   "request": {
65042	//     "$ref": "GlobalOrganizationSetPolicyRequest"
65043	//   },
65044	//   "response": {
65045	//     "$ref": "Policy"
65046	//   },
65047	//   "scopes": [
65048	//     "https://www.googleapis.com/auth/cloud-platform",
65049	//     "https://www.googleapis.com/auth/compute"
65050	//   ]
65051	// }
65052
65053}
65054
65055// method id "compute.firewallPolicies.testIamPermissions":
65056
65057type FirewallPoliciesTestIamPermissionsCall struct {
65058	s                      *Service
65059	resource               string
65060	testpermissionsrequest *TestPermissionsRequest
65061	urlParams_             gensupport.URLParams
65062	ctx_                   context.Context
65063	header_                http.Header
65064}
65065
65066// TestIamPermissions: Returns permissions that a caller has on the
65067// specified resource.
65068func (r *FirewallPoliciesService) TestIamPermissions(resource string, testpermissionsrequest *TestPermissionsRequest) *FirewallPoliciesTestIamPermissionsCall {
65069	c := &FirewallPoliciesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65070	c.resource = resource
65071	c.testpermissionsrequest = testpermissionsrequest
65072	return c
65073}
65074
65075// Fields allows partial responses to be retrieved. See
65076// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65077// for more information.
65078func (c *FirewallPoliciesTestIamPermissionsCall) Fields(s ...googleapi.Field) *FirewallPoliciesTestIamPermissionsCall {
65079	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65080	return c
65081}
65082
65083// Context sets the context to be used in this call's Do method. Any
65084// pending HTTP request will be aborted if the provided context is
65085// canceled.
65086func (c *FirewallPoliciesTestIamPermissionsCall) Context(ctx context.Context) *FirewallPoliciesTestIamPermissionsCall {
65087	c.ctx_ = ctx
65088	return c
65089}
65090
65091// Header returns an http.Header that can be modified by the caller to
65092// add HTTP headers to the request.
65093func (c *FirewallPoliciesTestIamPermissionsCall) Header() http.Header {
65094	if c.header_ == nil {
65095		c.header_ = make(http.Header)
65096	}
65097	return c.header_
65098}
65099
65100func (c *FirewallPoliciesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
65101	reqHeaders := make(http.Header)
65102	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
65103	for k, v := range c.header_ {
65104		reqHeaders[k] = v
65105	}
65106	reqHeaders.Set("User-Agent", c.s.userAgent())
65107	var body io.Reader = nil
65108	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
65109	if err != nil {
65110		return nil, err
65111	}
65112	reqHeaders.Set("Content-Type", "application/json")
65113	c.urlParams_.Set("alt", alt)
65114	c.urlParams_.Set("prettyPrint", "false")
65115	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{resource}/testIamPermissions")
65116	urls += "?" + c.urlParams_.Encode()
65117	req, err := http.NewRequest("POST", urls, body)
65118	if err != nil {
65119		return nil, err
65120	}
65121	req.Header = reqHeaders
65122	googleapi.Expand(req.URL, map[string]string{
65123		"resource": c.resource,
65124	})
65125	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65126}
65127
65128// Do executes the "compute.firewallPolicies.testIamPermissions" call.
65129// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
65130// non-2xx status code is an error. Response headers are in either
65131// *TestPermissionsResponse.ServerResponse.Header or (if a response was
65132// returned at all) in error.(*googleapi.Error).Header. Use
65133// googleapi.IsNotModified to check whether the returned error was
65134// because http.StatusNotModified was returned.
65135func (c *FirewallPoliciesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
65136	gensupport.SetOptions(c.urlParams_, opts...)
65137	res, err := c.doRequest("json")
65138	if res != nil && res.StatusCode == http.StatusNotModified {
65139		if res.Body != nil {
65140			res.Body.Close()
65141		}
65142		return nil, &googleapi.Error{
65143			Code:   res.StatusCode,
65144			Header: res.Header,
65145		}
65146	}
65147	if err != nil {
65148		return nil, err
65149	}
65150	defer googleapi.CloseBody(res)
65151	if err := googleapi.CheckResponse(res); err != nil {
65152		return nil, err
65153	}
65154	ret := &TestPermissionsResponse{
65155		ServerResponse: googleapi.ServerResponse{
65156			Header:         res.Header,
65157			HTTPStatusCode: res.StatusCode,
65158		},
65159	}
65160	target := &ret
65161	if err := gensupport.DecodeResponse(target, res); err != nil {
65162		return nil, err
65163	}
65164	return ret, nil
65165	// {
65166	//   "description": "Returns permissions that a caller has on the specified resource.",
65167	//   "httpMethod": "POST",
65168	//   "id": "compute.firewallPolicies.testIamPermissions",
65169	//   "parameterOrder": [
65170	//     "resource"
65171	//   ],
65172	//   "parameters": {
65173	//     "resource": {
65174	//       "description": "Name or id of the resource for this request.",
65175	//       "location": "path",
65176	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
65177	//       "required": true,
65178	//       "type": "string"
65179	//     }
65180	//   },
65181	//   "path": "locations/global/firewallPolicies/{resource}/testIamPermissions",
65182	//   "request": {
65183	//     "$ref": "TestPermissionsRequest"
65184	//   },
65185	//   "response": {
65186	//     "$ref": "TestPermissionsResponse"
65187	//   },
65188	//   "scopes": [
65189	//     "https://www.googleapis.com/auth/cloud-platform",
65190	//     "https://www.googleapis.com/auth/compute",
65191	//     "https://www.googleapis.com/auth/compute.readonly"
65192	//   ]
65193	// }
65194
65195}
65196
65197// method id "compute.firewalls.delete":
65198
65199type FirewallsDeleteCall struct {
65200	s          *Service
65201	project    string
65202	firewall   string
65203	urlParams_ gensupport.URLParams
65204	ctx_       context.Context
65205	header_    http.Header
65206}
65207
65208// Delete: Deletes the specified firewall.
65209// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/delete
65210func (r *FirewallsService) Delete(project string, firewall string) *FirewallsDeleteCall {
65211	c := &FirewallsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65212	c.project = project
65213	c.firewall = firewall
65214	return c
65215}
65216
65217// RequestId sets the optional parameter "requestId": An optional
65218// request ID to identify requests. Specify a unique request ID so that
65219// if you must retry your request, the server will know to ignore the
65220// request if it has already been completed.
65221//
65222// For example, consider a situation where you make an initial request
65223// and the request times out. If you make the request again with the
65224// same request ID, the server can check if original operation with the
65225// same request ID was received, and if so, will ignore the second
65226// request. This prevents clients from accidentally creating duplicate
65227// commitments.
65228//
65229// The request ID must be a valid UUID with the exception that zero UUID
65230// is not supported (00000000-0000-0000-0000-000000000000).
65231func (c *FirewallsDeleteCall) RequestId(requestId string) *FirewallsDeleteCall {
65232	c.urlParams_.Set("requestId", requestId)
65233	return c
65234}
65235
65236// Fields allows partial responses to be retrieved. See
65237// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65238// for more information.
65239func (c *FirewallsDeleteCall) Fields(s ...googleapi.Field) *FirewallsDeleteCall {
65240	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65241	return c
65242}
65243
65244// Context sets the context to be used in this call's Do method. Any
65245// pending HTTP request will be aborted if the provided context is
65246// canceled.
65247func (c *FirewallsDeleteCall) Context(ctx context.Context) *FirewallsDeleteCall {
65248	c.ctx_ = ctx
65249	return c
65250}
65251
65252// Header returns an http.Header that can be modified by the caller to
65253// add HTTP headers to the request.
65254func (c *FirewallsDeleteCall) Header() http.Header {
65255	if c.header_ == nil {
65256		c.header_ = make(http.Header)
65257	}
65258	return c.header_
65259}
65260
65261func (c *FirewallsDeleteCall) doRequest(alt string) (*http.Response, error) {
65262	reqHeaders := make(http.Header)
65263	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
65264	for k, v := range c.header_ {
65265		reqHeaders[k] = v
65266	}
65267	reqHeaders.Set("User-Agent", c.s.userAgent())
65268	var body io.Reader = nil
65269	c.urlParams_.Set("alt", alt)
65270	c.urlParams_.Set("prettyPrint", "false")
65271	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewalls/{firewall}")
65272	urls += "?" + c.urlParams_.Encode()
65273	req, err := http.NewRequest("DELETE", urls, body)
65274	if err != nil {
65275		return nil, err
65276	}
65277	req.Header = reqHeaders
65278	googleapi.Expand(req.URL, map[string]string{
65279		"project":  c.project,
65280		"firewall": c.firewall,
65281	})
65282	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65283}
65284
65285// Do executes the "compute.firewalls.delete" call.
65286// Exactly one of *Operation or error will be non-nil. Any non-2xx
65287// status code is an error. Response headers are in either
65288// *Operation.ServerResponse.Header or (if a response was returned at
65289// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
65290// to check whether the returned error was because
65291// http.StatusNotModified was returned.
65292func (c *FirewallsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
65293	gensupport.SetOptions(c.urlParams_, opts...)
65294	res, err := c.doRequest("json")
65295	if res != nil && res.StatusCode == http.StatusNotModified {
65296		if res.Body != nil {
65297			res.Body.Close()
65298		}
65299		return nil, &googleapi.Error{
65300			Code:   res.StatusCode,
65301			Header: res.Header,
65302		}
65303	}
65304	if err != nil {
65305		return nil, err
65306	}
65307	defer googleapi.CloseBody(res)
65308	if err := googleapi.CheckResponse(res); err != nil {
65309		return nil, err
65310	}
65311	ret := &Operation{
65312		ServerResponse: googleapi.ServerResponse{
65313			Header:         res.Header,
65314			HTTPStatusCode: res.StatusCode,
65315		},
65316	}
65317	target := &ret
65318	if err := gensupport.DecodeResponse(target, res); err != nil {
65319		return nil, err
65320	}
65321	return ret, nil
65322	// {
65323	//   "description": "Deletes the specified firewall.",
65324	//   "httpMethod": "DELETE",
65325	//   "id": "compute.firewalls.delete",
65326	//   "parameterOrder": [
65327	//     "project",
65328	//     "firewall"
65329	//   ],
65330	//   "parameters": {
65331	//     "firewall": {
65332	//       "description": "Name of the firewall rule to delete.",
65333	//       "location": "path",
65334	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
65335	//       "required": true,
65336	//       "type": "string"
65337	//     },
65338	//     "project": {
65339	//       "description": "Project ID for this request.",
65340	//       "location": "path",
65341	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65342	//       "required": true,
65343	//       "type": "string"
65344	//     },
65345	//     "requestId": {
65346	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
65347	//       "location": "query",
65348	//       "type": "string"
65349	//     }
65350	//   },
65351	//   "path": "projects/{project}/global/firewalls/{firewall}",
65352	//   "response": {
65353	//     "$ref": "Operation"
65354	//   },
65355	//   "scopes": [
65356	//     "https://www.googleapis.com/auth/cloud-platform",
65357	//     "https://www.googleapis.com/auth/compute"
65358	//   ]
65359	// }
65360
65361}
65362
65363// method id "compute.firewalls.get":
65364
65365type FirewallsGetCall struct {
65366	s            *Service
65367	project      string
65368	firewall     string
65369	urlParams_   gensupport.URLParams
65370	ifNoneMatch_ string
65371	ctx_         context.Context
65372	header_      http.Header
65373}
65374
65375// Get: Returns the specified firewall.
65376// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/get
65377func (r *FirewallsService) Get(project string, firewall string) *FirewallsGetCall {
65378	c := &FirewallsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65379	c.project = project
65380	c.firewall = firewall
65381	return c
65382}
65383
65384// Fields allows partial responses to be retrieved. See
65385// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65386// for more information.
65387func (c *FirewallsGetCall) Fields(s ...googleapi.Field) *FirewallsGetCall {
65388	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65389	return c
65390}
65391
65392// IfNoneMatch sets the optional parameter which makes the operation
65393// fail if the object's ETag matches the given value. This is useful for
65394// getting updates only after the object has changed since the last
65395// request. Use googleapi.IsNotModified to check whether the response
65396// error from Do is the result of In-None-Match.
65397func (c *FirewallsGetCall) IfNoneMatch(entityTag string) *FirewallsGetCall {
65398	c.ifNoneMatch_ = entityTag
65399	return c
65400}
65401
65402// Context sets the context to be used in this call's Do method. Any
65403// pending HTTP request will be aborted if the provided context is
65404// canceled.
65405func (c *FirewallsGetCall) Context(ctx context.Context) *FirewallsGetCall {
65406	c.ctx_ = ctx
65407	return c
65408}
65409
65410// Header returns an http.Header that can be modified by the caller to
65411// add HTTP headers to the request.
65412func (c *FirewallsGetCall) Header() http.Header {
65413	if c.header_ == nil {
65414		c.header_ = make(http.Header)
65415	}
65416	return c.header_
65417}
65418
65419func (c *FirewallsGetCall) doRequest(alt string) (*http.Response, error) {
65420	reqHeaders := make(http.Header)
65421	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
65422	for k, v := range c.header_ {
65423		reqHeaders[k] = v
65424	}
65425	reqHeaders.Set("User-Agent", c.s.userAgent())
65426	if c.ifNoneMatch_ != "" {
65427		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
65428	}
65429	var body io.Reader = nil
65430	c.urlParams_.Set("alt", alt)
65431	c.urlParams_.Set("prettyPrint", "false")
65432	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewalls/{firewall}")
65433	urls += "?" + c.urlParams_.Encode()
65434	req, err := http.NewRequest("GET", urls, body)
65435	if err != nil {
65436		return nil, err
65437	}
65438	req.Header = reqHeaders
65439	googleapi.Expand(req.URL, map[string]string{
65440		"project":  c.project,
65441		"firewall": c.firewall,
65442	})
65443	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65444}
65445
65446// Do executes the "compute.firewalls.get" call.
65447// Exactly one of *Firewall or error will be non-nil. Any non-2xx status
65448// code is an error. Response headers are in either
65449// *Firewall.ServerResponse.Header or (if a response was returned at
65450// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
65451// to check whether the returned error was because
65452// http.StatusNotModified was returned.
65453func (c *FirewallsGetCall) Do(opts ...googleapi.CallOption) (*Firewall, error) {
65454	gensupport.SetOptions(c.urlParams_, opts...)
65455	res, err := c.doRequest("json")
65456	if res != nil && res.StatusCode == http.StatusNotModified {
65457		if res.Body != nil {
65458			res.Body.Close()
65459		}
65460		return nil, &googleapi.Error{
65461			Code:   res.StatusCode,
65462			Header: res.Header,
65463		}
65464	}
65465	if err != nil {
65466		return nil, err
65467	}
65468	defer googleapi.CloseBody(res)
65469	if err := googleapi.CheckResponse(res); err != nil {
65470		return nil, err
65471	}
65472	ret := &Firewall{
65473		ServerResponse: googleapi.ServerResponse{
65474			Header:         res.Header,
65475			HTTPStatusCode: res.StatusCode,
65476		},
65477	}
65478	target := &ret
65479	if err := gensupport.DecodeResponse(target, res); err != nil {
65480		return nil, err
65481	}
65482	return ret, nil
65483	// {
65484	//   "description": "Returns the specified firewall.",
65485	//   "httpMethod": "GET",
65486	//   "id": "compute.firewalls.get",
65487	//   "parameterOrder": [
65488	//     "project",
65489	//     "firewall"
65490	//   ],
65491	//   "parameters": {
65492	//     "firewall": {
65493	//       "description": "Name of the firewall rule to return.",
65494	//       "location": "path",
65495	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
65496	//       "required": true,
65497	//       "type": "string"
65498	//     },
65499	//     "project": {
65500	//       "description": "Project ID for this request.",
65501	//       "location": "path",
65502	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65503	//       "required": true,
65504	//       "type": "string"
65505	//     }
65506	//   },
65507	//   "path": "projects/{project}/global/firewalls/{firewall}",
65508	//   "response": {
65509	//     "$ref": "Firewall"
65510	//   },
65511	//   "scopes": [
65512	//     "https://www.googleapis.com/auth/cloud-platform",
65513	//     "https://www.googleapis.com/auth/compute",
65514	//     "https://www.googleapis.com/auth/compute.readonly"
65515	//   ]
65516	// }
65517
65518}
65519
65520// method id "compute.firewalls.insert":
65521
65522type FirewallsInsertCall struct {
65523	s          *Service
65524	project    string
65525	firewall   *Firewall
65526	urlParams_ gensupport.URLParams
65527	ctx_       context.Context
65528	header_    http.Header
65529}
65530
65531// Insert: Creates a firewall rule in the specified project using the
65532// data included in the request.
65533// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/insert
65534func (r *FirewallsService) Insert(project string, firewall *Firewall) *FirewallsInsertCall {
65535	c := &FirewallsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65536	c.project = project
65537	c.firewall = firewall
65538	return c
65539}
65540
65541// RequestId sets the optional parameter "requestId": An optional
65542// request ID to identify requests. Specify a unique request ID so that
65543// if you must retry your request, the server will know to ignore the
65544// request if it has already been completed.
65545//
65546// For example, consider a situation where you make an initial request
65547// and the request times out. If you make the request again with the
65548// same request ID, the server can check if original operation with the
65549// same request ID was received, and if so, will ignore the second
65550// request. This prevents clients from accidentally creating duplicate
65551// commitments.
65552//
65553// The request ID must be a valid UUID with the exception that zero UUID
65554// is not supported (00000000-0000-0000-0000-000000000000).
65555func (c *FirewallsInsertCall) RequestId(requestId string) *FirewallsInsertCall {
65556	c.urlParams_.Set("requestId", requestId)
65557	return c
65558}
65559
65560// Fields allows partial responses to be retrieved. See
65561// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65562// for more information.
65563func (c *FirewallsInsertCall) Fields(s ...googleapi.Field) *FirewallsInsertCall {
65564	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65565	return c
65566}
65567
65568// Context sets the context to be used in this call's Do method. Any
65569// pending HTTP request will be aborted if the provided context is
65570// canceled.
65571func (c *FirewallsInsertCall) Context(ctx context.Context) *FirewallsInsertCall {
65572	c.ctx_ = ctx
65573	return c
65574}
65575
65576// Header returns an http.Header that can be modified by the caller to
65577// add HTTP headers to the request.
65578func (c *FirewallsInsertCall) Header() http.Header {
65579	if c.header_ == nil {
65580		c.header_ = make(http.Header)
65581	}
65582	return c.header_
65583}
65584
65585func (c *FirewallsInsertCall) doRequest(alt string) (*http.Response, error) {
65586	reqHeaders := make(http.Header)
65587	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
65588	for k, v := range c.header_ {
65589		reqHeaders[k] = v
65590	}
65591	reqHeaders.Set("User-Agent", c.s.userAgent())
65592	var body io.Reader = nil
65593	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewall)
65594	if err != nil {
65595		return nil, err
65596	}
65597	reqHeaders.Set("Content-Type", "application/json")
65598	c.urlParams_.Set("alt", alt)
65599	c.urlParams_.Set("prettyPrint", "false")
65600	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewalls")
65601	urls += "?" + c.urlParams_.Encode()
65602	req, err := http.NewRequest("POST", urls, body)
65603	if err != nil {
65604		return nil, err
65605	}
65606	req.Header = reqHeaders
65607	googleapi.Expand(req.URL, map[string]string{
65608		"project": c.project,
65609	})
65610	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65611}
65612
65613// Do executes the "compute.firewalls.insert" call.
65614// Exactly one of *Operation or error will be non-nil. Any non-2xx
65615// status code is an error. Response headers are in either
65616// *Operation.ServerResponse.Header or (if a response was returned at
65617// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
65618// to check whether the returned error was because
65619// http.StatusNotModified was returned.
65620func (c *FirewallsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
65621	gensupport.SetOptions(c.urlParams_, opts...)
65622	res, err := c.doRequest("json")
65623	if res != nil && res.StatusCode == http.StatusNotModified {
65624		if res.Body != nil {
65625			res.Body.Close()
65626		}
65627		return nil, &googleapi.Error{
65628			Code:   res.StatusCode,
65629			Header: res.Header,
65630		}
65631	}
65632	if err != nil {
65633		return nil, err
65634	}
65635	defer googleapi.CloseBody(res)
65636	if err := googleapi.CheckResponse(res); err != nil {
65637		return nil, err
65638	}
65639	ret := &Operation{
65640		ServerResponse: googleapi.ServerResponse{
65641			Header:         res.Header,
65642			HTTPStatusCode: res.StatusCode,
65643		},
65644	}
65645	target := &ret
65646	if err := gensupport.DecodeResponse(target, res); err != nil {
65647		return nil, err
65648	}
65649	return ret, nil
65650	// {
65651	//   "description": "Creates a firewall rule in the specified project using the data included in the request.",
65652	//   "httpMethod": "POST",
65653	//   "id": "compute.firewalls.insert",
65654	//   "parameterOrder": [
65655	//     "project"
65656	//   ],
65657	//   "parameters": {
65658	//     "project": {
65659	//       "description": "Project ID for this request.",
65660	//       "location": "path",
65661	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65662	//       "required": true,
65663	//       "type": "string"
65664	//     },
65665	//     "requestId": {
65666	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
65667	//       "location": "query",
65668	//       "type": "string"
65669	//     }
65670	//   },
65671	//   "path": "projects/{project}/global/firewalls",
65672	//   "request": {
65673	//     "$ref": "Firewall"
65674	//   },
65675	//   "response": {
65676	//     "$ref": "Operation"
65677	//   },
65678	//   "scopes": [
65679	//     "https://www.googleapis.com/auth/cloud-platform",
65680	//     "https://www.googleapis.com/auth/compute"
65681	//   ]
65682	// }
65683
65684}
65685
65686// method id "compute.firewalls.list":
65687
65688type FirewallsListCall struct {
65689	s            *Service
65690	project      string
65691	urlParams_   gensupport.URLParams
65692	ifNoneMatch_ string
65693	ctx_         context.Context
65694	header_      http.Header
65695}
65696
65697// List: Retrieves the list of firewall rules available to the specified
65698// project.
65699// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/list
65700func (r *FirewallsService) List(project string) *FirewallsListCall {
65701	c := &FirewallsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65702	c.project = project
65703	return c
65704}
65705
65706// Filter sets the optional parameter "filter": A filter expression that
65707// filters resources listed in the response. The expression must specify
65708// the field name, a comparison operator, and the value that you want to
65709// use for filtering. The value must be a string, a number, or a
65710// boolean. The comparison operator must be either `=`, `!=`, `>`, or
65711// `<`.
65712//
65713// For example, if you are filtering Compute Engine instances, you can
65714// exclude instances named `example-instance` by specifying `name !=
65715// example-instance`.
65716//
65717// You can also filter nested fields. For example, you could specify
65718// `scheduling.automaticRestart = false` to include instances only if
65719// they are not scheduled for automatic restarts. You can use filtering
65720// on nested fields to filter based on resource labels.
65721//
65722// To filter on multiple expressions, provide each separate expression
65723// within parentheses. For example: ``` (scheduling.automaticRestart =
65724// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
65725// is an `AND` expression. However, you can include `AND` and `OR`
65726// expressions explicitly. For example: ``` (cpuPlatform = "Intel
65727// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
65728// (scheduling.automaticRestart = true) ```
65729func (c *FirewallsListCall) Filter(filter string) *FirewallsListCall {
65730	c.urlParams_.Set("filter", filter)
65731	return c
65732}
65733
65734// MaxResults sets the optional parameter "maxResults": The maximum
65735// number of results per page that should be returned. If the number of
65736// available results is larger than `maxResults`, Compute Engine returns
65737// a `nextPageToken` that can be used to get the next page of results in
65738// subsequent list requests. Acceptable values are `0` to `500`,
65739// inclusive. (Default: `500`)
65740func (c *FirewallsListCall) MaxResults(maxResults int64) *FirewallsListCall {
65741	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
65742	return c
65743}
65744
65745// OrderBy sets the optional parameter "orderBy": Sorts list results by
65746// a certain order. By default, results are returned in alphanumerical
65747// order based on the resource name.
65748//
65749// You can also sort results in descending order based on the creation
65750// timestamp using `orderBy="creationTimestamp desc". This sorts
65751// results based on the `creationTimestamp` field in reverse
65752// chronological order (newest result first). Use this to sort resources
65753// like operations so that the newest operation is returned
65754// first.
65755//
65756// Currently, only sorting by `name` or `creationTimestamp desc` is
65757// supported.
65758func (c *FirewallsListCall) OrderBy(orderBy string) *FirewallsListCall {
65759	c.urlParams_.Set("orderBy", orderBy)
65760	return c
65761}
65762
65763// PageToken sets the optional parameter "pageToken": Specifies a page
65764// token to use. Set `pageToken` to the `nextPageToken` returned by a
65765// previous list request to get the next page of results.
65766func (c *FirewallsListCall) PageToken(pageToken string) *FirewallsListCall {
65767	c.urlParams_.Set("pageToken", pageToken)
65768	return c
65769}
65770
65771// ReturnPartialSuccess sets the optional parameter
65772// "returnPartialSuccess": Opt-in for partial success behavior which
65773// provides partial results in case of failure. The default value is
65774// false.
65775func (c *FirewallsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *FirewallsListCall {
65776	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
65777	return c
65778}
65779
65780// Fields allows partial responses to be retrieved. See
65781// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65782// for more information.
65783func (c *FirewallsListCall) Fields(s ...googleapi.Field) *FirewallsListCall {
65784	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65785	return c
65786}
65787
65788// IfNoneMatch sets the optional parameter which makes the operation
65789// fail if the object's ETag matches the given value. This is useful for
65790// getting updates only after the object has changed since the last
65791// request. Use googleapi.IsNotModified to check whether the response
65792// error from Do is the result of In-None-Match.
65793func (c *FirewallsListCall) IfNoneMatch(entityTag string) *FirewallsListCall {
65794	c.ifNoneMatch_ = entityTag
65795	return c
65796}
65797
65798// Context sets the context to be used in this call's Do method. Any
65799// pending HTTP request will be aborted if the provided context is
65800// canceled.
65801func (c *FirewallsListCall) Context(ctx context.Context) *FirewallsListCall {
65802	c.ctx_ = ctx
65803	return c
65804}
65805
65806// Header returns an http.Header that can be modified by the caller to
65807// add HTTP headers to the request.
65808func (c *FirewallsListCall) Header() http.Header {
65809	if c.header_ == nil {
65810		c.header_ = make(http.Header)
65811	}
65812	return c.header_
65813}
65814
65815func (c *FirewallsListCall) doRequest(alt string) (*http.Response, error) {
65816	reqHeaders := make(http.Header)
65817	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
65818	for k, v := range c.header_ {
65819		reqHeaders[k] = v
65820	}
65821	reqHeaders.Set("User-Agent", c.s.userAgent())
65822	if c.ifNoneMatch_ != "" {
65823		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
65824	}
65825	var body io.Reader = nil
65826	c.urlParams_.Set("alt", alt)
65827	c.urlParams_.Set("prettyPrint", "false")
65828	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewalls")
65829	urls += "?" + c.urlParams_.Encode()
65830	req, err := http.NewRequest("GET", urls, body)
65831	if err != nil {
65832		return nil, err
65833	}
65834	req.Header = reqHeaders
65835	googleapi.Expand(req.URL, map[string]string{
65836		"project": c.project,
65837	})
65838	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65839}
65840
65841// Do executes the "compute.firewalls.list" call.
65842// Exactly one of *FirewallList or error will be non-nil. Any non-2xx
65843// status code is an error. Response headers are in either
65844// *FirewallList.ServerResponse.Header or (if a response was returned at
65845// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
65846// to check whether the returned error was because
65847// http.StatusNotModified was returned.
65848func (c *FirewallsListCall) Do(opts ...googleapi.CallOption) (*FirewallList, error) {
65849	gensupport.SetOptions(c.urlParams_, opts...)
65850	res, err := c.doRequest("json")
65851	if res != nil && res.StatusCode == http.StatusNotModified {
65852		if res.Body != nil {
65853			res.Body.Close()
65854		}
65855		return nil, &googleapi.Error{
65856			Code:   res.StatusCode,
65857			Header: res.Header,
65858		}
65859	}
65860	if err != nil {
65861		return nil, err
65862	}
65863	defer googleapi.CloseBody(res)
65864	if err := googleapi.CheckResponse(res); err != nil {
65865		return nil, err
65866	}
65867	ret := &FirewallList{
65868		ServerResponse: googleapi.ServerResponse{
65869			Header:         res.Header,
65870			HTTPStatusCode: res.StatusCode,
65871		},
65872	}
65873	target := &ret
65874	if err := gensupport.DecodeResponse(target, res); err != nil {
65875		return nil, err
65876	}
65877	return ret, nil
65878	// {
65879	//   "description": "Retrieves the list of firewall rules available to the specified project.",
65880	//   "httpMethod": "GET",
65881	//   "id": "compute.firewalls.list",
65882	//   "parameterOrder": [
65883	//     "project"
65884	//   ],
65885	//   "parameters": {
65886	//     "filter": {
65887	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
65888	//       "location": "query",
65889	//       "type": "string"
65890	//     },
65891	//     "maxResults": {
65892	//       "default": "500",
65893	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
65894	//       "format": "uint32",
65895	//       "location": "query",
65896	//       "minimum": "0",
65897	//       "type": "integer"
65898	//     },
65899	//     "orderBy": {
65900	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
65901	//       "location": "query",
65902	//       "type": "string"
65903	//     },
65904	//     "pageToken": {
65905	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
65906	//       "location": "query",
65907	//       "type": "string"
65908	//     },
65909	//     "project": {
65910	//       "description": "Project ID for this request.",
65911	//       "location": "path",
65912	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65913	//       "required": true,
65914	//       "type": "string"
65915	//     },
65916	//     "returnPartialSuccess": {
65917	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
65918	//       "location": "query",
65919	//       "type": "boolean"
65920	//     }
65921	//   },
65922	//   "path": "projects/{project}/global/firewalls",
65923	//   "response": {
65924	//     "$ref": "FirewallList"
65925	//   },
65926	//   "scopes": [
65927	//     "https://www.googleapis.com/auth/cloud-platform",
65928	//     "https://www.googleapis.com/auth/compute",
65929	//     "https://www.googleapis.com/auth/compute.readonly"
65930	//   ]
65931	// }
65932
65933}
65934
65935// Pages invokes f for each page of results.
65936// A non-nil error returned from f will halt the iteration.
65937// The provided context supersedes any context provided to the Context method.
65938func (c *FirewallsListCall) Pages(ctx context.Context, f func(*FirewallList) error) error {
65939	c.ctx_ = ctx
65940	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
65941	for {
65942		x, err := c.Do()
65943		if err != nil {
65944			return err
65945		}
65946		if err := f(x); err != nil {
65947			return err
65948		}
65949		if x.NextPageToken == "" {
65950			return nil
65951		}
65952		c.PageToken(x.NextPageToken)
65953	}
65954}
65955
65956// method id "compute.firewalls.patch":
65957
65958type FirewallsPatchCall struct {
65959	s          *Service
65960	project    string
65961	firewall   string
65962	firewall2  *Firewall
65963	urlParams_ gensupport.URLParams
65964	ctx_       context.Context
65965	header_    http.Header
65966}
65967
65968// Patch: Updates the specified firewall rule with the data included in
65969// the request. This method supports PATCH semantics and uses the JSON
65970// merge patch format and processing rules.
65971// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/patch
65972func (r *FirewallsService) Patch(project string, firewall string, firewall2 *Firewall) *FirewallsPatchCall {
65973	c := &FirewallsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65974	c.project = project
65975	c.firewall = firewall
65976	c.firewall2 = firewall2
65977	return c
65978}
65979
65980// RequestId sets the optional parameter "requestId": An optional
65981// request ID to identify requests. Specify a unique request ID so that
65982// if you must retry your request, the server will know to ignore the
65983// request if it has already been completed.
65984//
65985// For example, consider a situation where you make an initial request
65986// and the request times out. If you make the request again with the
65987// same request ID, the server can check if original operation with the
65988// same request ID was received, and if so, will ignore the second
65989// request. This prevents clients from accidentally creating duplicate
65990// commitments.
65991//
65992// The request ID must be a valid UUID with the exception that zero UUID
65993// is not supported (00000000-0000-0000-0000-000000000000).
65994func (c *FirewallsPatchCall) RequestId(requestId string) *FirewallsPatchCall {
65995	c.urlParams_.Set("requestId", requestId)
65996	return c
65997}
65998
65999// Fields allows partial responses to be retrieved. See
66000// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66001// for more information.
66002func (c *FirewallsPatchCall) Fields(s ...googleapi.Field) *FirewallsPatchCall {
66003	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66004	return c
66005}
66006
66007// Context sets the context to be used in this call's Do method. Any
66008// pending HTTP request will be aborted if the provided context is
66009// canceled.
66010func (c *FirewallsPatchCall) Context(ctx context.Context) *FirewallsPatchCall {
66011	c.ctx_ = ctx
66012	return c
66013}
66014
66015// Header returns an http.Header that can be modified by the caller to
66016// add HTTP headers to the request.
66017func (c *FirewallsPatchCall) Header() http.Header {
66018	if c.header_ == nil {
66019		c.header_ = make(http.Header)
66020	}
66021	return c.header_
66022}
66023
66024func (c *FirewallsPatchCall) doRequest(alt string) (*http.Response, error) {
66025	reqHeaders := make(http.Header)
66026	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
66027	for k, v := range c.header_ {
66028		reqHeaders[k] = v
66029	}
66030	reqHeaders.Set("User-Agent", c.s.userAgent())
66031	var body io.Reader = nil
66032	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewall2)
66033	if err != nil {
66034		return nil, err
66035	}
66036	reqHeaders.Set("Content-Type", "application/json")
66037	c.urlParams_.Set("alt", alt)
66038	c.urlParams_.Set("prettyPrint", "false")
66039	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewalls/{firewall}")
66040	urls += "?" + c.urlParams_.Encode()
66041	req, err := http.NewRequest("PATCH", urls, body)
66042	if err != nil {
66043		return nil, err
66044	}
66045	req.Header = reqHeaders
66046	googleapi.Expand(req.URL, map[string]string{
66047		"project":  c.project,
66048		"firewall": c.firewall,
66049	})
66050	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66051}
66052
66053// Do executes the "compute.firewalls.patch" call.
66054// Exactly one of *Operation or error will be non-nil. Any non-2xx
66055// status code is an error. Response headers are in either
66056// *Operation.ServerResponse.Header or (if a response was returned at
66057// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
66058// to check whether the returned error was because
66059// http.StatusNotModified was returned.
66060func (c *FirewallsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
66061	gensupport.SetOptions(c.urlParams_, opts...)
66062	res, err := c.doRequest("json")
66063	if res != nil && res.StatusCode == http.StatusNotModified {
66064		if res.Body != nil {
66065			res.Body.Close()
66066		}
66067		return nil, &googleapi.Error{
66068			Code:   res.StatusCode,
66069			Header: res.Header,
66070		}
66071	}
66072	if err != nil {
66073		return nil, err
66074	}
66075	defer googleapi.CloseBody(res)
66076	if err := googleapi.CheckResponse(res); err != nil {
66077		return nil, err
66078	}
66079	ret := &Operation{
66080		ServerResponse: googleapi.ServerResponse{
66081			Header:         res.Header,
66082			HTTPStatusCode: res.StatusCode,
66083		},
66084	}
66085	target := &ret
66086	if err := gensupport.DecodeResponse(target, res); err != nil {
66087		return nil, err
66088	}
66089	return ret, nil
66090	// {
66091	//   "description": "Updates the specified firewall rule with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.",
66092	//   "httpMethod": "PATCH",
66093	//   "id": "compute.firewalls.patch",
66094	//   "parameterOrder": [
66095	//     "project",
66096	//     "firewall"
66097	//   ],
66098	//   "parameters": {
66099	//     "firewall": {
66100	//       "description": "Name of the firewall rule to patch.",
66101	//       "location": "path",
66102	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
66103	//       "required": true,
66104	//       "type": "string"
66105	//     },
66106	//     "project": {
66107	//       "description": "Project ID for this request.",
66108	//       "location": "path",
66109	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66110	//       "required": true,
66111	//       "type": "string"
66112	//     },
66113	//     "requestId": {
66114	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
66115	//       "location": "query",
66116	//       "type": "string"
66117	//     }
66118	//   },
66119	//   "path": "projects/{project}/global/firewalls/{firewall}",
66120	//   "request": {
66121	//     "$ref": "Firewall"
66122	//   },
66123	//   "response": {
66124	//     "$ref": "Operation"
66125	//   },
66126	//   "scopes": [
66127	//     "https://www.googleapis.com/auth/cloud-platform",
66128	//     "https://www.googleapis.com/auth/compute"
66129	//   ]
66130	// }
66131
66132}
66133
66134// method id "compute.firewalls.testIamPermissions":
66135
66136type FirewallsTestIamPermissionsCall struct {
66137	s                      *Service
66138	project                string
66139	resource               string
66140	testpermissionsrequest *TestPermissionsRequest
66141	urlParams_             gensupport.URLParams
66142	ctx_                   context.Context
66143	header_                http.Header
66144}
66145
66146// TestIamPermissions: Returns permissions that a caller has on the
66147// specified resource.
66148func (r *FirewallsService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *FirewallsTestIamPermissionsCall {
66149	c := &FirewallsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66150	c.project = project
66151	c.resource = resource
66152	c.testpermissionsrequest = testpermissionsrequest
66153	return c
66154}
66155
66156// Fields allows partial responses to be retrieved. See
66157// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66158// for more information.
66159func (c *FirewallsTestIamPermissionsCall) Fields(s ...googleapi.Field) *FirewallsTestIamPermissionsCall {
66160	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66161	return c
66162}
66163
66164// Context sets the context to be used in this call's Do method. Any
66165// pending HTTP request will be aborted if the provided context is
66166// canceled.
66167func (c *FirewallsTestIamPermissionsCall) Context(ctx context.Context) *FirewallsTestIamPermissionsCall {
66168	c.ctx_ = ctx
66169	return c
66170}
66171
66172// Header returns an http.Header that can be modified by the caller to
66173// add HTTP headers to the request.
66174func (c *FirewallsTestIamPermissionsCall) Header() http.Header {
66175	if c.header_ == nil {
66176		c.header_ = make(http.Header)
66177	}
66178	return c.header_
66179}
66180
66181func (c *FirewallsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
66182	reqHeaders := make(http.Header)
66183	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
66184	for k, v := range c.header_ {
66185		reqHeaders[k] = v
66186	}
66187	reqHeaders.Set("User-Agent", c.s.userAgent())
66188	var body io.Reader = nil
66189	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
66190	if err != nil {
66191		return nil, err
66192	}
66193	reqHeaders.Set("Content-Type", "application/json")
66194	c.urlParams_.Set("alt", alt)
66195	c.urlParams_.Set("prettyPrint", "false")
66196	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewalls/{resource}/testIamPermissions")
66197	urls += "?" + c.urlParams_.Encode()
66198	req, err := http.NewRequest("POST", urls, body)
66199	if err != nil {
66200		return nil, err
66201	}
66202	req.Header = reqHeaders
66203	googleapi.Expand(req.URL, map[string]string{
66204		"project":  c.project,
66205		"resource": c.resource,
66206	})
66207	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66208}
66209
66210// Do executes the "compute.firewalls.testIamPermissions" call.
66211// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
66212// non-2xx status code is an error. Response headers are in either
66213// *TestPermissionsResponse.ServerResponse.Header or (if a response was
66214// returned at all) in error.(*googleapi.Error).Header. Use
66215// googleapi.IsNotModified to check whether the returned error was
66216// because http.StatusNotModified was returned.
66217func (c *FirewallsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
66218	gensupport.SetOptions(c.urlParams_, opts...)
66219	res, err := c.doRequest("json")
66220	if res != nil && res.StatusCode == http.StatusNotModified {
66221		if res.Body != nil {
66222			res.Body.Close()
66223		}
66224		return nil, &googleapi.Error{
66225			Code:   res.StatusCode,
66226			Header: res.Header,
66227		}
66228	}
66229	if err != nil {
66230		return nil, err
66231	}
66232	defer googleapi.CloseBody(res)
66233	if err := googleapi.CheckResponse(res); err != nil {
66234		return nil, err
66235	}
66236	ret := &TestPermissionsResponse{
66237		ServerResponse: googleapi.ServerResponse{
66238			Header:         res.Header,
66239			HTTPStatusCode: res.StatusCode,
66240		},
66241	}
66242	target := &ret
66243	if err := gensupport.DecodeResponse(target, res); err != nil {
66244		return nil, err
66245	}
66246	return ret, nil
66247	// {
66248	//   "description": "Returns permissions that a caller has on the specified resource.",
66249	//   "httpMethod": "POST",
66250	//   "id": "compute.firewalls.testIamPermissions",
66251	//   "parameterOrder": [
66252	//     "project",
66253	//     "resource"
66254	//   ],
66255	//   "parameters": {
66256	//     "project": {
66257	//       "description": "Project ID for this request.",
66258	//       "location": "path",
66259	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66260	//       "required": true,
66261	//       "type": "string"
66262	//     },
66263	//     "resource": {
66264	//       "description": "Name or id of the resource for this request.",
66265	//       "location": "path",
66266	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
66267	//       "required": true,
66268	//       "type": "string"
66269	//     }
66270	//   },
66271	//   "path": "projects/{project}/global/firewalls/{resource}/testIamPermissions",
66272	//   "request": {
66273	//     "$ref": "TestPermissionsRequest"
66274	//   },
66275	//   "response": {
66276	//     "$ref": "TestPermissionsResponse"
66277	//   },
66278	//   "scopes": [
66279	//     "https://www.googleapis.com/auth/cloud-platform",
66280	//     "https://www.googleapis.com/auth/compute",
66281	//     "https://www.googleapis.com/auth/compute.readonly"
66282	//   ]
66283	// }
66284
66285}
66286
66287// method id "compute.firewalls.update":
66288
66289type FirewallsUpdateCall struct {
66290	s          *Service
66291	project    string
66292	firewall   string
66293	firewall2  *Firewall
66294	urlParams_ gensupport.URLParams
66295	ctx_       context.Context
66296	header_    http.Header
66297}
66298
66299// Update: Updates the specified firewall rule with the data included in
66300// the request. Note that all fields will be updated if using PUT, even
66301// fields that are not specified. To update individual fields, please
66302// use PATCH instead.
66303// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/update
66304func (r *FirewallsService) Update(project string, firewall string, firewall2 *Firewall) *FirewallsUpdateCall {
66305	c := &FirewallsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66306	c.project = project
66307	c.firewall = firewall
66308	c.firewall2 = firewall2
66309	return c
66310}
66311
66312// RequestId sets the optional parameter "requestId": An optional
66313// request ID to identify requests. Specify a unique request ID so that
66314// if you must retry your request, the server will know to ignore the
66315// request if it has already been completed.
66316//
66317// For example, consider a situation where you make an initial request
66318// and the request times out. If you make the request again with the
66319// same request ID, the server can check if original operation with the
66320// same request ID was received, and if so, will ignore the second
66321// request. This prevents clients from accidentally creating duplicate
66322// commitments.
66323//
66324// The request ID must be a valid UUID with the exception that zero UUID
66325// is not supported (00000000-0000-0000-0000-000000000000).
66326func (c *FirewallsUpdateCall) RequestId(requestId string) *FirewallsUpdateCall {
66327	c.urlParams_.Set("requestId", requestId)
66328	return c
66329}
66330
66331// Fields allows partial responses to be retrieved. See
66332// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66333// for more information.
66334func (c *FirewallsUpdateCall) Fields(s ...googleapi.Field) *FirewallsUpdateCall {
66335	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66336	return c
66337}
66338
66339// Context sets the context to be used in this call's Do method. Any
66340// pending HTTP request will be aborted if the provided context is
66341// canceled.
66342func (c *FirewallsUpdateCall) Context(ctx context.Context) *FirewallsUpdateCall {
66343	c.ctx_ = ctx
66344	return c
66345}
66346
66347// Header returns an http.Header that can be modified by the caller to
66348// add HTTP headers to the request.
66349func (c *FirewallsUpdateCall) Header() http.Header {
66350	if c.header_ == nil {
66351		c.header_ = make(http.Header)
66352	}
66353	return c.header_
66354}
66355
66356func (c *FirewallsUpdateCall) doRequest(alt string) (*http.Response, error) {
66357	reqHeaders := make(http.Header)
66358	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
66359	for k, v := range c.header_ {
66360		reqHeaders[k] = v
66361	}
66362	reqHeaders.Set("User-Agent", c.s.userAgent())
66363	var body io.Reader = nil
66364	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewall2)
66365	if err != nil {
66366		return nil, err
66367	}
66368	reqHeaders.Set("Content-Type", "application/json")
66369	c.urlParams_.Set("alt", alt)
66370	c.urlParams_.Set("prettyPrint", "false")
66371	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewalls/{firewall}")
66372	urls += "?" + c.urlParams_.Encode()
66373	req, err := http.NewRequest("PUT", urls, body)
66374	if err != nil {
66375		return nil, err
66376	}
66377	req.Header = reqHeaders
66378	googleapi.Expand(req.URL, map[string]string{
66379		"project":  c.project,
66380		"firewall": c.firewall,
66381	})
66382	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66383}
66384
66385// Do executes the "compute.firewalls.update" call.
66386// Exactly one of *Operation or error will be non-nil. Any non-2xx
66387// status code is an error. Response headers are in either
66388// *Operation.ServerResponse.Header or (if a response was returned at
66389// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
66390// to check whether the returned error was because
66391// http.StatusNotModified was returned.
66392func (c *FirewallsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
66393	gensupport.SetOptions(c.urlParams_, opts...)
66394	res, err := c.doRequest("json")
66395	if res != nil && res.StatusCode == http.StatusNotModified {
66396		if res.Body != nil {
66397			res.Body.Close()
66398		}
66399		return nil, &googleapi.Error{
66400			Code:   res.StatusCode,
66401			Header: res.Header,
66402		}
66403	}
66404	if err != nil {
66405		return nil, err
66406	}
66407	defer googleapi.CloseBody(res)
66408	if err := googleapi.CheckResponse(res); err != nil {
66409		return nil, err
66410	}
66411	ret := &Operation{
66412		ServerResponse: googleapi.ServerResponse{
66413			Header:         res.Header,
66414			HTTPStatusCode: res.StatusCode,
66415		},
66416	}
66417	target := &ret
66418	if err := gensupport.DecodeResponse(target, res); err != nil {
66419		return nil, err
66420	}
66421	return ret, nil
66422	// {
66423	//   "description": "Updates the specified firewall rule with the data included in the request. Note that all fields will be updated if using PUT, even fields that are not specified. To update individual fields, please use PATCH instead.",
66424	//   "httpMethod": "PUT",
66425	//   "id": "compute.firewalls.update",
66426	//   "parameterOrder": [
66427	//     "project",
66428	//     "firewall"
66429	//   ],
66430	//   "parameters": {
66431	//     "firewall": {
66432	//       "description": "Name of the firewall rule to update.",
66433	//       "location": "path",
66434	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
66435	//       "required": true,
66436	//       "type": "string"
66437	//     },
66438	//     "project": {
66439	//       "description": "Project ID for this request.",
66440	//       "location": "path",
66441	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66442	//       "required": true,
66443	//       "type": "string"
66444	//     },
66445	//     "requestId": {
66446	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
66447	//       "location": "query",
66448	//       "type": "string"
66449	//     }
66450	//   },
66451	//   "path": "projects/{project}/global/firewalls/{firewall}",
66452	//   "request": {
66453	//     "$ref": "Firewall"
66454	//   },
66455	//   "response": {
66456	//     "$ref": "Operation"
66457	//   },
66458	//   "scopes": [
66459	//     "https://www.googleapis.com/auth/cloud-platform",
66460	//     "https://www.googleapis.com/auth/compute"
66461	//   ]
66462	// }
66463
66464}
66465
66466// method id "compute.forwardingRules.aggregatedList":
66467
66468type ForwardingRulesAggregatedListCall struct {
66469	s            *Service
66470	project      string
66471	urlParams_   gensupport.URLParams
66472	ifNoneMatch_ string
66473	ctx_         context.Context
66474	header_      http.Header
66475}
66476
66477// AggregatedList: Retrieves an aggregated list of forwarding rules.
66478// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/aggregatedList
66479func (r *ForwardingRulesService) AggregatedList(project string) *ForwardingRulesAggregatedListCall {
66480	c := &ForwardingRulesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66481	c.project = project
66482	return c
66483}
66484
66485// Filter sets the optional parameter "filter": A filter expression that
66486// filters resources listed in the response. The expression must specify
66487// the field name, a comparison operator, and the value that you want to
66488// use for filtering. The value must be a string, a number, or a
66489// boolean. The comparison operator must be either `=`, `!=`, `>`, or
66490// `<`.
66491//
66492// For example, if you are filtering Compute Engine instances, you can
66493// exclude instances named `example-instance` by specifying `name !=
66494// example-instance`.
66495//
66496// You can also filter nested fields. For example, you could specify
66497// `scheduling.automaticRestart = false` to include instances only if
66498// they are not scheduled for automatic restarts. You can use filtering
66499// on nested fields to filter based on resource labels.
66500//
66501// To filter on multiple expressions, provide each separate expression
66502// within parentheses. For example: ``` (scheduling.automaticRestart =
66503// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
66504// is an `AND` expression. However, you can include `AND` and `OR`
66505// expressions explicitly. For example: ``` (cpuPlatform = "Intel
66506// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
66507// (scheduling.automaticRestart = true) ```
66508func (c *ForwardingRulesAggregatedListCall) Filter(filter string) *ForwardingRulesAggregatedListCall {
66509	c.urlParams_.Set("filter", filter)
66510	return c
66511}
66512
66513// IncludeAllScopes sets the optional parameter "includeAllScopes":
66514// Indicates whether every visible scope for each scope type (zone,
66515// region, global) should be included in the response. For new resource
66516// types added after this field, the flag has no effect as new resource
66517// types will always include every visible scope for each scope type in
66518// response. For resource types which predate this field, if this flag
66519// is omitted or false, only scopes of the scope types where the
66520// resource type is expected to be found will be included.
66521func (c *ForwardingRulesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *ForwardingRulesAggregatedListCall {
66522	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
66523	return c
66524}
66525
66526// MaxResults sets the optional parameter "maxResults": The maximum
66527// number of results per page that should be returned. If the number of
66528// available results is larger than `maxResults`, Compute Engine returns
66529// a `nextPageToken` that can be used to get the next page of results in
66530// subsequent list requests. Acceptable values are `0` to `500`,
66531// inclusive. (Default: `500`)
66532func (c *ForwardingRulesAggregatedListCall) MaxResults(maxResults int64) *ForwardingRulesAggregatedListCall {
66533	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
66534	return c
66535}
66536
66537// OrderBy sets the optional parameter "orderBy": Sorts list results by
66538// a certain order. By default, results are returned in alphanumerical
66539// order based on the resource name.
66540//
66541// You can also sort results in descending order based on the creation
66542// timestamp using `orderBy="creationTimestamp desc". This sorts
66543// results based on the `creationTimestamp` field in reverse
66544// chronological order (newest result first). Use this to sort resources
66545// like operations so that the newest operation is returned
66546// first.
66547//
66548// Currently, only sorting by `name` or `creationTimestamp desc` is
66549// supported.
66550func (c *ForwardingRulesAggregatedListCall) OrderBy(orderBy string) *ForwardingRulesAggregatedListCall {
66551	c.urlParams_.Set("orderBy", orderBy)
66552	return c
66553}
66554
66555// PageToken sets the optional parameter "pageToken": Specifies a page
66556// token to use. Set `pageToken` to the `nextPageToken` returned by a
66557// previous list request to get the next page of results.
66558func (c *ForwardingRulesAggregatedListCall) PageToken(pageToken string) *ForwardingRulesAggregatedListCall {
66559	c.urlParams_.Set("pageToken", pageToken)
66560	return c
66561}
66562
66563// ReturnPartialSuccess sets the optional parameter
66564// "returnPartialSuccess": Opt-in for partial success behavior which
66565// provides partial results in case of failure. The default value is
66566// false.
66567func (c *ForwardingRulesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ForwardingRulesAggregatedListCall {
66568	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
66569	return c
66570}
66571
66572// Fields allows partial responses to be retrieved. See
66573// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66574// for more information.
66575func (c *ForwardingRulesAggregatedListCall) Fields(s ...googleapi.Field) *ForwardingRulesAggregatedListCall {
66576	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66577	return c
66578}
66579
66580// IfNoneMatch sets the optional parameter which makes the operation
66581// fail if the object's ETag matches the given value. This is useful for
66582// getting updates only after the object has changed since the last
66583// request. Use googleapi.IsNotModified to check whether the response
66584// error from Do is the result of In-None-Match.
66585func (c *ForwardingRulesAggregatedListCall) IfNoneMatch(entityTag string) *ForwardingRulesAggregatedListCall {
66586	c.ifNoneMatch_ = entityTag
66587	return c
66588}
66589
66590// Context sets the context to be used in this call's Do method. Any
66591// pending HTTP request will be aborted if the provided context is
66592// canceled.
66593func (c *ForwardingRulesAggregatedListCall) Context(ctx context.Context) *ForwardingRulesAggregatedListCall {
66594	c.ctx_ = ctx
66595	return c
66596}
66597
66598// Header returns an http.Header that can be modified by the caller to
66599// add HTTP headers to the request.
66600func (c *ForwardingRulesAggregatedListCall) Header() http.Header {
66601	if c.header_ == nil {
66602		c.header_ = make(http.Header)
66603	}
66604	return c.header_
66605}
66606
66607func (c *ForwardingRulesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
66608	reqHeaders := make(http.Header)
66609	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
66610	for k, v := range c.header_ {
66611		reqHeaders[k] = v
66612	}
66613	reqHeaders.Set("User-Agent", c.s.userAgent())
66614	if c.ifNoneMatch_ != "" {
66615		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
66616	}
66617	var body io.Reader = nil
66618	c.urlParams_.Set("alt", alt)
66619	c.urlParams_.Set("prettyPrint", "false")
66620	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/forwardingRules")
66621	urls += "?" + c.urlParams_.Encode()
66622	req, err := http.NewRequest("GET", urls, body)
66623	if err != nil {
66624		return nil, err
66625	}
66626	req.Header = reqHeaders
66627	googleapi.Expand(req.URL, map[string]string{
66628		"project": c.project,
66629	})
66630	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66631}
66632
66633// Do executes the "compute.forwardingRules.aggregatedList" call.
66634// Exactly one of *ForwardingRuleAggregatedList or error will be
66635// non-nil. Any non-2xx status code is an error. Response headers are in
66636// either *ForwardingRuleAggregatedList.ServerResponse.Header or (if a
66637// response was returned at all) in error.(*googleapi.Error).Header. Use
66638// googleapi.IsNotModified to check whether the returned error was
66639// because http.StatusNotModified was returned.
66640func (c *ForwardingRulesAggregatedListCall) Do(opts ...googleapi.CallOption) (*ForwardingRuleAggregatedList, error) {
66641	gensupport.SetOptions(c.urlParams_, opts...)
66642	res, err := c.doRequest("json")
66643	if res != nil && res.StatusCode == http.StatusNotModified {
66644		if res.Body != nil {
66645			res.Body.Close()
66646		}
66647		return nil, &googleapi.Error{
66648			Code:   res.StatusCode,
66649			Header: res.Header,
66650		}
66651	}
66652	if err != nil {
66653		return nil, err
66654	}
66655	defer googleapi.CloseBody(res)
66656	if err := googleapi.CheckResponse(res); err != nil {
66657		return nil, err
66658	}
66659	ret := &ForwardingRuleAggregatedList{
66660		ServerResponse: googleapi.ServerResponse{
66661			Header:         res.Header,
66662			HTTPStatusCode: res.StatusCode,
66663		},
66664	}
66665	target := &ret
66666	if err := gensupport.DecodeResponse(target, res); err != nil {
66667		return nil, err
66668	}
66669	return ret, nil
66670	// {
66671	//   "description": "Retrieves an aggregated list of forwarding rules.",
66672	//   "httpMethod": "GET",
66673	//   "id": "compute.forwardingRules.aggregatedList",
66674	//   "parameterOrder": [
66675	//     "project"
66676	//   ],
66677	//   "parameters": {
66678	//     "filter": {
66679	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
66680	//       "location": "query",
66681	//       "type": "string"
66682	//     },
66683	//     "includeAllScopes": {
66684	//       "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.",
66685	//       "location": "query",
66686	//       "type": "boolean"
66687	//     },
66688	//     "maxResults": {
66689	//       "default": "500",
66690	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
66691	//       "format": "uint32",
66692	//       "location": "query",
66693	//       "minimum": "0",
66694	//       "type": "integer"
66695	//     },
66696	//     "orderBy": {
66697	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
66698	//       "location": "query",
66699	//       "type": "string"
66700	//     },
66701	//     "pageToken": {
66702	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
66703	//       "location": "query",
66704	//       "type": "string"
66705	//     },
66706	//     "project": {
66707	//       "description": "Project ID for this request.",
66708	//       "location": "path",
66709	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66710	//       "required": true,
66711	//       "type": "string"
66712	//     },
66713	//     "returnPartialSuccess": {
66714	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
66715	//       "location": "query",
66716	//       "type": "boolean"
66717	//     }
66718	//   },
66719	//   "path": "projects/{project}/aggregated/forwardingRules",
66720	//   "response": {
66721	//     "$ref": "ForwardingRuleAggregatedList"
66722	//   },
66723	//   "scopes": [
66724	//     "https://www.googleapis.com/auth/cloud-platform",
66725	//     "https://www.googleapis.com/auth/compute",
66726	//     "https://www.googleapis.com/auth/compute.readonly"
66727	//   ]
66728	// }
66729
66730}
66731
66732// Pages invokes f for each page of results.
66733// A non-nil error returned from f will halt the iteration.
66734// The provided context supersedes any context provided to the Context method.
66735func (c *ForwardingRulesAggregatedListCall) Pages(ctx context.Context, f func(*ForwardingRuleAggregatedList) error) error {
66736	c.ctx_ = ctx
66737	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
66738	for {
66739		x, err := c.Do()
66740		if err != nil {
66741			return err
66742		}
66743		if err := f(x); err != nil {
66744			return err
66745		}
66746		if x.NextPageToken == "" {
66747			return nil
66748		}
66749		c.PageToken(x.NextPageToken)
66750	}
66751}
66752
66753// method id "compute.forwardingRules.delete":
66754
66755type ForwardingRulesDeleteCall struct {
66756	s              *Service
66757	project        string
66758	region         string
66759	forwardingRule string
66760	urlParams_     gensupport.URLParams
66761	ctx_           context.Context
66762	header_        http.Header
66763}
66764
66765// Delete: Deletes the specified ForwardingRule resource.
66766// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/delete
66767func (r *ForwardingRulesService) Delete(project string, region string, forwardingRule string) *ForwardingRulesDeleteCall {
66768	c := &ForwardingRulesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66769	c.project = project
66770	c.region = region
66771	c.forwardingRule = forwardingRule
66772	return c
66773}
66774
66775// RequestId sets the optional parameter "requestId": An optional
66776// request ID to identify requests. Specify a unique request ID so that
66777// if you must retry your request, the server will know to ignore the
66778// request if it has already been completed.
66779//
66780// For example, consider a situation where you make an initial request
66781// and the request times out. If you make the request again with the
66782// same request ID, the server can check if original operation with the
66783// same request ID was received, and if so, will ignore the second
66784// request. This prevents clients from accidentally creating duplicate
66785// commitments.
66786//
66787// The request ID must be a valid UUID with the exception that zero UUID
66788// is not supported (00000000-0000-0000-0000-000000000000).
66789func (c *ForwardingRulesDeleteCall) RequestId(requestId string) *ForwardingRulesDeleteCall {
66790	c.urlParams_.Set("requestId", requestId)
66791	return c
66792}
66793
66794// Fields allows partial responses to be retrieved. See
66795// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66796// for more information.
66797func (c *ForwardingRulesDeleteCall) Fields(s ...googleapi.Field) *ForwardingRulesDeleteCall {
66798	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66799	return c
66800}
66801
66802// Context sets the context to be used in this call's Do method. Any
66803// pending HTTP request will be aborted if the provided context is
66804// canceled.
66805func (c *ForwardingRulesDeleteCall) Context(ctx context.Context) *ForwardingRulesDeleteCall {
66806	c.ctx_ = ctx
66807	return c
66808}
66809
66810// Header returns an http.Header that can be modified by the caller to
66811// add HTTP headers to the request.
66812func (c *ForwardingRulesDeleteCall) Header() http.Header {
66813	if c.header_ == nil {
66814		c.header_ = make(http.Header)
66815	}
66816	return c.header_
66817}
66818
66819func (c *ForwardingRulesDeleteCall) doRequest(alt string) (*http.Response, error) {
66820	reqHeaders := make(http.Header)
66821	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
66822	for k, v := range c.header_ {
66823		reqHeaders[k] = v
66824	}
66825	reqHeaders.Set("User-Agent", c.s.userAgent())
66826	var body io.Reader = nil
66827	c.urlParams_.Set("alt", alt)
66828	c.urlParams_.Set("prettyPrint", "false")
66829	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}")
66830	urls += "?" + c.urlParams_.Encode()
66831	req, err := http.NewRequest("DELETE", urls, body)
66832	if err != nil {
66833		return nil, err
66834	}
66835	req.Header = reqHeaders
66836	googleapi.Expand(req.URL, map[string]string{
66837		"project":        c.project,
66838		"region":         c.region,
66839		"forwardingRule": c.forwardingRule,
66840	})
66841	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66842}
66843
66844// Do executes the "compute.forwardingRules.delete" call.
66845// Exactly one of *Operation or error will be non-nil. Any non-2xx
66846// status code is an error. Response headers are in either
66847// *Operation.ServerResponse.Header or (if a response was returned at
66848// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
66849// to check whether the returned error was because
66850// http.StatusNotModified was returned.
66851func (c *ForwardingRulesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
66852	gensupport.SetOptions(c.urlParams_, opts...)
66853	res, err := c.doRequest("json")
66854	if res != nil && res.StatusCode == http.StatusNotModified {
66855		if res.Body != nil {
66856			res.Body.Close()
66857		}
66858		return nil, &googleapi.Error{
66859			Code:   res.StatusCode,
66860			Header: res.Header,
66861		}
66862	}
66863	if err != nil {
66864		return nil, err
66865	}
66866	defer googleapi.CloseBody(res)
66867	if err := googleapi.CheckResponse(res); err != nil {
66868		return nil, err
66869	}
66870	ret := &Operation{
66871		ServerResponse: googleapi.ServerResponse{
66872			Header:         res.Header,
66873			HTTPStatusCode: res.StatusCode,
66874		},
66875	}
66876	target := &ret
66877	if err := gensupport.DecodeResponse(target, res); err != nil {
66878		return nil, err
66879	}
66880	return ret, nil
66881	// {
66882	//   "description": "Deletes the specified ForwardingRule resource.",
66883	//   "httpMethod": "DELETE",
66884	//   "id": "compute.forwardingRules.delete",
66885	//   "parameterOrder": [
66886	//     "project",
66887	//     "region",
66888	//     "forwardingRule"
66889	//   ],
66890	//   "parameters": {
66891	//     "forwardingRule": {
66892	//       "description": "Name of the ForwardingRule resource to delete.",
66893	//       "location": "path",
66894	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
66895	//       "required": true,
66896	//       "type": "string"
66897	//     },
66898	//     "project": {
66899	//       "description": "Project ID for this request.",
66900	//       "location": "path",
66901	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66902	//       "required": true,
66903	//       "type": "string"
66904	//     },
66905	//     "region": {
66906	//       "description": "Name of the region scoping this request.",
66907	//       "location": "path",
66908	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
66909	//       "required": true,
66910	//       "type": "string"
66911	//     },
66912	//     "requestId": {
66913	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
66914	//       "location": "query",
66915	//       "type": "string"
66916	//     }
66917	//   },
66918	//   "path": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}",
66919	//   "response": {
66920	//     "$ref": "Operation"
66921	//   },
66922	//   "scopes": [
66923	//     "https://www.googleapis.com/auth/cloud-platform",
66924	//     "https://www.googleapis.com/auth/compute"
66925	//   ]
66926	// }
66927
66928}
66929
66930// method id "compute.forwardingRules.get":
66931
66932type ForwardingRulesGetCall struct {
66933	s              *Service
66934	project        string
66935	region         string
66936	forwardingRule string
66937	urlParams_     gensupport.URLParams
66938	ifNoneMatch_   string
66939	ctx_           context.Context
66940	header_        http.Header
66941}
66942
66943// Get: Returns the specified ForwardingRule resource.
66944// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/get
66945func (r *ForwardingRulesService) Get(project string, region string, forwardingRule string) *ForwardingRulesGetCall {
66946	c := &ForwardingRulesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66947	c.project = project
66948	c.region = region
66949	c.forwardingRule = forwardingRule
66950	return c
66951}
66952
66953// Fields allows partial responses to be retrieved. See
66954// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66955// for more information.
66956func (c *ForwardingRulesGetCall) Fields(s ...googleapi.Field) *ForwardingRulesGetCall {
66957	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66958	return c
66959}
66960
66961// IfNoneMatch sets the optional parameter which makes the operation
66962// fail if the object's ETag matches the given value. This is useful for
66963// getting updates only after the object has changed since the last
66964// request. Use googleapi.IsNotModified to check whether the response
66965// error from Do is the result of In-None-Match.
66966func (c *ForwardingRulesGetCall) IfNoneMatch(entityTag string) *ForwardingRulesGetCall {
66967	c.ifNoneMatch_ = entityTag
66968	return c
66969}
66970
66971// Context sets the context to be used in this call's Do method. Any
66972// pending HTTP request will be aborted if the provided context is
66973// canceled.
66974func (c *ForwardingRulesGetCall) Context(ctx context.Context) *ForwardingRulesGetCall {
66975	c.ctx_ = ctx
66976	return c
66977}
66978
66979// Header returns an http.Header that can be modified by the caller to
66980// add HTTP headers to the request.
66981func (c *ForwardingRulesGetCall) Header() http.Header {
66982	if c.header_ == nil {
66983		c.header_ = make(http.Header)
66984	}
66985	return c.header_
66986}
66987
66988func (c *ForwardingRulesGetCall) doRequest(alt string) (*http.Response, error) {
66989	reqHeaders := make(http.Header)
66990	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
66991	for k, v := range c.header_ {
66992		reqHeaders[k] = v
66993	}
66994	reqHeaders.Set("User-Agent", c.s.userAgent())
66995	if c.ifNoneMatch_ != "" {
66996		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
66997	}
66998	var body io.Reader = nil
66999	c.urlParams_.Set("alt", alt)
67000	c.urlParams_.Set("prettyPrint", "false")
67001	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}")
67002	urls += "?" + c.urlParams_.Encode()
67003	req, err := http.NewRequest("GET", urls, body)
67004	if err != nil {
67005		return nil, err
67006	}
67007	req.Header = reqHeaders
67008	googleapi.Expand(req.URL, map[string]string{
67009		"project":        c.project,
67010		"region":         c.region,
67011		"forwardingRule": c.forwardingRule,
67012	})
67013	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67014}
67015
67016// Do executes the "compute.forwardingRules.get" call.
67017// Exactly one of *ForwardingRule or error will be non-nil. Any non-2xx
67018// status code is an error. Response headers are in either
67019// *ForwardingRule.ServerResponse.Header or (if a response was returned
67020// at all) in error.(*googleapi.Error).Header. Use
67021// googleapi.IsNotModified to check whether the returned error was
67022// because http.StatusNotModified was returned.
67023func (c *ForwardingRulesGetCall) Do(opts ...googleapi.CallOption) (*ForwardingRule, error) {
67024	gensupport.SetOptions(c.urlParams_, opts...)
67025	res, err := c.doRequest("json")
67026	if res != nil && res.StatusCode == http.StatusNotModified {
67027		if res.Body != nil {
67028			res.Body.Close()
67029		}
67030		return nil, &googleapi.Error{
67031			Code:   res.StatusCode,
67032			Header: res.Header,
67033		}
67034	}
67035	if err != nil {
67036		return nil, err
67037	}
67038	defer googleapi.CloseBody(res)
67039	if err := googleapi.CheckResponse(res); err != nil {
67040		return nil, err
67041	}
67042	ret := &ForwardingRule{
67043		ServerResponse: googleapi.ServerResponse{
67044			Header:         res.Header,
67045			HTTPStatusCode: res.StatusCode,
67046		},
67047	}
67048	target := &ret
67049	if err := gensupport.DecodeResponse(target, res); err != nil {
67050		return nil, err
67051	}
67052	return ret, nil
67053	// {
67054	//   "description": "Returns the specified ForwardingRule resource.",
67055	//   "httpMethod": "GET",
67056	//   "id": "compute.forwardingRules.get",
67057	//   "parameterOrder": [
67058	//     "project",
67059	//     "region",
67060	//     "forwardingRule"
67061	//   ],
67062	//   "parameters": {
67063	//     "forwardingRule": {
67064	//       "description": "Name of the ForwardingRule resource to return.",
67065	//       "location": "path",
67066	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
67067	//       "required": true,
67068	//       "type": "string"
67069	//     },
67070	//     "project": {
67071	//       "description": "Project ID for this request.",
67072	//       "location": "path",
67073	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67074	//       "required": true,
67075	//       "type": "string"
67076	//     },
67077	//     "region": {
67078	//       "description": "Name of the region scoping this request.",
67079	//       "location": "path",
67080	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
67081	//       "required": true,
67082	//       "type": "string"
67083	//     }
67084	//   },
67085	//   "path": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}",
67086	//   "response": {
67087	//     "$ref": "ForwardingRule"
67088	//   },
67089	//   "scopes": [
67090	//     "https://www.googleapis.com/auth/cloud-platform",
67091	//     "https://www.googleapis.com/auth/compute",
67092	//     "https://www.googleapis.com/auth/compute.readonly"
67093	//   ]
67094	// }
67095
67096}
67097
67098// method id "compute.forwardingRules.insert":
67099
67100type ForwardingRulesInsertCall struct {
67101	s              *Service
67102	project        string
67103	region         string
67104	forwardingrule *ForwardingRule
67105	urlParams_     gensupport.URLParams
67106	ctx_           context.Context
67107	header_        http.Header
67108}
67109
67110// Insert: Creates a ForwardingRule resource in the specified project
67111// and region using the data included in the request.
67112// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/insert
67113func (r *ForwardingRulesService) Insert(project string, region string, forwardingrule *ForwardingRule) *ForwardingRulesInsertCall {
67114	c := &ForwardingRulesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67115	c.project = project
67116	c.region = region
67117	c.forwardingrule = forwardingrule
67118	return c
67119}
67120
67121// RequestId sets the optional parameter "requestId": An optional
67122// request ID to identify requests. Specify a unique request ID so that
67123// if you must retry your request, the server will know to ignore the
67124// request if it has already been completed.
67125//
67126// For example, consider a situation where you make an initial request
67127// and the request times out. If you make the request again with the
67128// same request ID, the server can check if original operation with the
67129// same request ID was received, and if so, will ignore the second
67130// request. This prevents clients from accidentally creating duplicate
67131// commitments.
67132//
67133// The request ID must be a valid UUID with the exception that zero UUID
67134// is not supported (00000000-0000-0000-0000-000000000000).
67135func (c *ForwardingRulesInsertCall) RequestId(requestId string) *ForwardingRulesInsertCall {
67136	c.urlParams_.Set("requestId", requestId)
67137	return c
67138}
67139
67140// Fields allows partial responses to be retrieved. See
67141// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67142// for more information.
67143func (c *ForwardingRulesInsertCall) Fields(s ...googleapi.Field) *ForwardingRulesInsertCall {
67144	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67145	return c
67146}
67147
67148// Context sets the context to be used in this call's Do method. Any
67149// pending HTTP request will be aborted if the provided context is
67150// canceled.
67151func (c *ForwardingRulesInsertCall) Context(ctx context.Context) *ForwardingRulesInsertCall {
67152	c.ctx_ = ctx
67153	return c
67154}
67155
67156// Header returns an http.Header that can be modified by the caller to
67157// add HTTP headers to the request.
67158func (c *ForwardingRulesInsertCall) Header() http.Header {
67159	if c.header_ == nil {
67160		c.header_ = make(http.Header)
67161	}
67162	return c.header_
67163}
67164
67165func (c *ForwardingRulesInsertCall) doRequest(alt string) (*http.Response, error) {
67166	reqHeaders := make(http.Header)
67167	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
67168	for k, v := range c.header_ {
67169		reqHeaders[k] = v
67170	}
67171	reqHeaders.Set("User-Agent", c.s.userAgent())
67172	var body io.Reader = nil
67173	body, err := googleapi.WithoutDataWrapper.JSONReader(c.forwardingrule)
67174	if err != nil {
67175		return nil, err
67176	}
67177	reqHeaders.Set("Content-Type", "application/json")
67178	c.urlParams_.Set("alt", alt)
67179	c.urlParams_.Set("prettyPrint", "false")
67180	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/forwardingRules")
67181	urls += "?" + c.urlParams_.Encode()
67182	req, err := http.NewRequest("POST", urls, body)
67183	if err != nil {
67184		return nil, err
67185	}
67186	req.Header = reqHeaders
67187	googleapi.Expand(req.URL, map[string]string{
67188		"project": c.project,
67189		"region":  c.region,
67190	})
67191	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67192}
67193
67194// Do executes the "compute.forwardingRules.insert" call.
67195// Exactly one of *Operation or error will be non-nil. Any non-2xx
67196// status code is an error. Response headers are in either
67197// *Operation.ServerResponse.Header or (if a response was returned at
67198// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
67199// to check whether the returned error was because
67200// http.StatusNotModified was returned.
67201func (c *ForwardingRulesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
67202	gensupport.SetOptions(c.urlParams_, opts...)
67203	res, err := c.doRequest("json")
67204	if res != nil && res.StatusCode == http.StatusNotModified {
67205		if res.Body != nil {
67206			res.Body.Close()
67207		}
67208		return nil, &googleapi.Error{
67209			Code:   res.StatusCode,
67210			Header: res.Header,
67211		}
67212	}
67213	if err != nil {
67214		return nil, err
67215	}
67216	defer googleapi.CloseBody(res)
67217	if err := googleapi.CheckResponse(res); err != nil {
67218		return nil, err
67219	}
67220	ret := &Operation{
67221		ServerResponse: googleapi.ServerResponse{
67222			Header:         res.Header,
67223			HTTPStatusCode: res.StatusCode,
67224		},
67225	}
67226	target := &ret
67227	if err := gensupport.DecodeResponse(target, res); err != nil {
67228		return nil, err
67229	}
67230	return ret, nil
67231	// {
67232	//   "description": "Creates a ForwardingRule resource in the specified project and region using the data included in the request.",
67233	//   "httpMethod": "POST",
67234	//   "id": "compute.forwardingRules.insert",
67235	//   "parameterOrder": [
67236	//     "project",
67237	//     "region"
67238	//   ],
67239	//   "parameters": {
67240	//     "project": {
67241	//       "description": "Project ID for this request.",
67242	//       "location": "path",
67243	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67244	//       "required": true,
67245	//       "type": "string"
67246	//     },
67247	//     "region": {
67248	//       "description": "Name of the region scoping this request.",
67249	//       "location": "path",
67250	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
67251	//       "required": true,
67252	//       "type": "string"
67253	//     },
67254	//     "requestId": {
67255	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
67256	//       "location": "query",
67257	//       "type": "string"
67258	//     }
67259	//   },
67260	//   "path": "projects/{project}/regions/{region}/forwardingRules",
67261	//   "request": {
67262	//     "$ref": "ForwardingRule"
67263	//   },
67264	//   "response": {
67265	//     "$ref": "Operation"
67266	//   },
67267	//   "scopes": [
67268	//     "https://www.googleapis.com/auth/cloud-platform",
67269	//     "https://www.googleapis.com/auth/compute"
67270	//   ]
67271	// }
67272
67273}
67274
67275// method id "compute.forwardingRules.list":
67276
67277type ForwardingRulesListCall struct {
67278	s            *Service
67279	project      string
67280	region       string
67281	urlParams_   gensupport.URLParams
67282	ifNoneMatch_ string
67283	ctx_         context.Context
67284	header_      http.Header
67285}
67286
67287// List: Retrieves a list of ForwardingRule resources available to the
67288// specified project and region.
67289// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/list
67290func (r *ForwardingRulesService) List(project string, region string) *ForwardingRulesListCall {
67291	c := &ForwardingRulesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67292	c.project = project
67293	c.region = region
67294	return c
67295}
67296
67297// Filter sets the optional parameter "filter": A filter expression that
67298// filters resources listed in the response. The expression must specify
67299// the field name, a comparison operator, and the value that you want to
67300// use for filtering. The value must be a string, a number, or a
67301// boolean. The comparison operator must be either `=`, `!=`, `>`, or
67302// `<`.
67303//
67304// For example, if you are filtering Compute Engine instances, you can
67305// exclude instances named `example-instance` by specifying `name !=
67306// example-instance`.
67307//
67308// You can also filter nested fields. For example, you could specify
67309// `scheduling.automaticRestart = false` to include instances only if
67310// they are not scheduled for automatic restarts. You can use filtering
67311// on nested fields to filter based on resource labels.
67312//
67313// To filter on multiple expressions, provide each separate expression
67314// within parentheses. For example: ``` (scheduling.automaticRestart =
67315// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
67316// is an `AND` expression. However, you can include `AND` and `OR`
67317// expressions explicitly. For example: ``` (cpuPlatform = "Intel
67318// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
67319// (scheduling.automaticRestart = true) ```
67320func (c *ForwardingRulesListCall) Filter(filter string) *ForwardingRulesListCall {
67321	c.urlParams_.Set("filter", filter)
67322	return c
67323}
67324
67325// MaxResults sets the optional parameter "maxResults": The maximum
67326// number of results per page that should be returned. If the number of
67327// available results is larger than `maxResults`, Compute Engine returns
67328// a `nextPageToken` that can be used to get the next page of results in
67329// subsequent list requests. Acceptable values are `0` to `500`,
67330// inclusive. (Default: `500`)
67331func (c *ForwardingRulesListCall) MaxResults(maxResults int64) *ForwardingRulesListCall {
67332	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
67333	return c
67334}
67335
67336// OrderBy sets the optional parameter "orderBy": Sorts list results by
67337// a certain order. By default, results are returned in alphanumerical
67338// order based on the resource name.
67339//
67340// You can also sort results in descending order based on the creation
67341// timestamp using `orderBy="creationTimestamp desc". This sorts
67342// results based on the `creationTimestamp` field in reverse
67343// chronological order (newest result first). Use this to sort resources
67344// like operations so that the newest operation is returned
67345// first.
67346//
67347// Currently, only sorting by `name` or `creationTimestamp desc` is
67348// supported.
67349func (c *ForwardingRulesListCall) OrderBy(orderBy string) *ForwardingRulesListCall {
67350	c.urlParams_.Set("orderBy", orderBy)
67351	return c
67352}
67353
67354// PageToken sets the optional parameter "pageToken": Specifies a page
67355// token to use. Set `pageToken` to the `nextPageToken` returned by a
67356// previous list request to get the next page of results.
67357func (c *ForwardingRulesListCall) PageToken(pageToken string) *ForwardingRulesListCall {
67358	c.urlParams_.Set("pageToken", pageToken)
67359	return c
67360}
67361
67362// ReturnPartialSuccess sets the optional parameter
67363// "returnPartialSuccess": Opt-in for partial success behavior which
67364// provides partial results in case of failure. The default value is
67365// false.
67366func (c *ForwardingRulesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ForwardingRulesListCall {
67367	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
67368	return c
67369}
67370
67371// Fields allows partial responses to be retrieved. See
67372// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67373// for more information.
67374func (c *ForwardingRulesListCall) Fields(s ...googleapi.Field) *ForwardingRulesListCall {
67375	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67376	return c
67377}
67378
67379// IfNoneMatch sets the optional parameter which makes the operation
67380// fail if the object's ETag matches the given value. This is useful for
67381// getting updates only after the object has changed since the last
67382// request. Use googleapi.IsNotModified to check whether the response
67383// error from Do is the result of In-None-Match.
67384func (c *ForwardingRulesListCall) IfNoneMatch(entityTag string) *ForwardingRulesListCall {
67385	c.ifNoneMatch_ = entityTag
67386	return c
67387}
67388
67389// Context sets the context to be used in this call's Do method. Any
67390// pending HTTP request will be aborted if the provided context is
67391// canceled.
67392func (c *ForwardingRulesListCall) Context(ctx context.Context) *ForwardingRulesListCall {
67393	c.ctx_ = ctx
67394	return c
67395}
67396
67397// Header returns an http.Header that can be modified by the caller to
67398// add HTTP headers to the request.
67399func (c *ForwardingRulesListCall) Header() http.Header {
67400	if c.header_ == nil {
67401		c.header_ = make(http.Header)
67402	}
67403	return c.header_
67404}
67405
67406func (c *ForwardingRulesListCall) doRequest(alt string) (*http.Response, error) {
67407	reqHeaders := make(http.Header)
67408	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
67409	for k, v := range c.header_ {
67410		reqHeaders[k] = v
67411	}
67412	reqHeaders.Set("User-Agent", c.s.userAgent())
67413	if c.ifNoneMatch_ != "" {
67414		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
67415	}
67416	var body io.Reader = nil
67417	c.urlParams_.Set("alt", alt)
67418	c.urlParams_.Set("prettyPrint", "false")
67419	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/forwardingRules")
67420	urls += "?" + c.urlParams_.Encode()
67421	req, err := http.NewRequest("GET", urls, body)
67422	if err != nil {
67423		return nil, err
67424	}
67425	req.Header = reqHeaders
67426	googleapi.Expand(req.URL, map[string]string{
67427		"project": c.project,
67428		"region":  c.region,
67429	})
67430	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67431}
67432
67433// Do executes the "compute.forwardingRules.list" call.
67434// Exactly one of *ForwardingRuleList or error will be non-nil. Any
67435// non-2xx status code is an error. Response headers are in either
67436// *ForwardingRuleList.ServerResponse.Header or (if a response was
67437// returned at all) in error.(*googleapi.Error).Header. Use
67438// googleapi.IsNotModified to check whether the returned error was
67439// because http.StatusNotModified was returned.
67440func (c *ForwardingRulesListCall) Do(opts ...googleapi.CallOption) (*ForwardingRuleList, error) {
67441	gensupport.SetOptions(c.urlParams_, opts...)
67442	res, err := c.doRequest("json")
67443	if res != nil && res.StatusCode == http.StatusNotModified {
67444		if res.Body != nil {
67445			res.Body.Close()
67446		}
67447		return nil, &googleapi.Error{
67448			Code:   res.StatusCode,
67449			Header: res.Header,
67450		}
67451	}
67452	if err != nil {
67453		return nil, err
67454	}
67455	defer googleapi.CloseBody(res)
67456	if err := googleapi.CheckResponse(res); err != nil {
67457		return nil, err
67458	}
67459	ret := &ForwardingRuleList{
67460		ServerResponse: googleapi.ServerResponse{
67461			Header:         res.Header,
67462			HTTPStatusCode: res.StatusCode,
67463		},
67464	}
67465	target := &ret
67466	if err := gensupport.DecodeResponse(target, res); err != nil {
67467		return nil, err
67468	}
67469	return ret, nil
67470	// {
67471	//   "description": "Retrieves a list of ForwardingRule resources available to the specified project and region.",
67472	//   "httpMethod": "GET",
67473	//   "id": "compute.forwardingRules.list",
67474	//   "parameterOrder": [
67475	//     "project",
67476	//     "region"
67477	//   ],
67478	//   "parameters": {
67479	//     "filter": {
67480	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
67481	//       "location": "query",
67482	//       "type": "string"
67483	//     },
67484	//     "maxResults": {
67485	//       "default": "500",
67486	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
67487	//       "format": "uint32",
67488	//       "location": "query",
67489	//       "minimum": "0",
67490	//       "type": "integer"
67491	//     },
67492	//     "orderBy": {
67493	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
67494	//       "location": "query",
67495	//       "type": "string"
67496	//     },
67497	//     "pageToken": {
67498	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
67499	//       "location": "query",
67500	//       "type": "string"
67501	//     },
67502	//     "project": {
67503	//       "description": "Project ID for this request.",
67504	//       "location": "path",
67505	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67506	//       "required": true,
67507	//       "type": "string"
67508	//     },
67509	//     "region": {
67510	//       "description": "Name of the region scoping this request.",
67511	//       "location": "path",
67512	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
67513	//       "required": true,
67514	//       "type": "string"
67515	//     },
67516	//     "returnPartialSuccess": {
67517	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
67518	//       "location": "query",
67519	//       "type": "boolean"
67520	//     }
67521	//   },
67522	//   "path": "projects/{project}/regions/{region}/forwardingRules",
67523	//   "response": {
67524	//     "$ref": "ForwardingRuleList"
67525	//   },
67526	//   "scopes": [
67527	//     "https://www.googleapis.com/auth/cloud-platform",
67528	//     "https://www.googleapis.com/auth/compute",
67529	//     "https://www.googleapis.com/auth/compute.readonly"
67530	//   ]
67531	// }
67532
67533}
67534
67535// Pages invokes f for each page of results.
67536// A non-nil error returned from f will halt the iteration.
67537// The provided context supersedes any context provided to the Context method.
67538func (c *ForwardingRulesListCall) Pages(ctx context.Context, f func(*ForwardingRuleList) error) error {
67539	c.ctx_ = ctx
67540	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
67541	for {
67542		x, err := c.Do()
67543		if err != nil {
67544			return err
67545		}
67546		if err := f(x); err != nil {
67547			return err
67548		}
67549		if x.NextPageToken == "" {
67550			return nil
67551		}
67552		c.PageToken(x.NextPageToken)
67553	}
67554}
67555
67556// method id "compute.forwardingRules.patch":
67557
67558type ForwardingRulesPatchCall struct {
67559	s              *Service
67560	project        string
67561	region         string
67562	forwardingRule string
67563	forwardingrule *ForwardingRule
67564	urlParams_     gensupport.URLParams
67565	ctx_           context.Context
67566	header_        http.Header
67567}
67568
67569// Patch: Updates the specified forwarding rule with the data included
67570// in the request. This method supports PATCH semantics and uses the
67571// JSON merge patch format and processing rules. Currently, you can only
67572// patch the network_tier field.
67573func (r *ForwardingRulesService) Patch(project string, region string, forwardingRule string, forwardingrule *ForwardingRule) *ForwardingRulesPatchCall {
67574	c := &ForwardingRulesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67575	c.project = project
67576	c.region = region
67577	c.forwardingRule = forwardingRule
67578	c.forwardingrule = forwardingrule
67579	return c
67580}
67581
67582// RequestId sets the optional parameter "requestId": An optional
67583// request ID to identify requests. Specify a unique request ID so that
67584// if you must retry your request, the server will know to ignore the
67585// request if it has already been completed.
67586//
67587// For example, consider a situation where you make an initial request
67588// and the request times out. If you make the request again with the
67589// same request ID, the server can check if original operation with the
67590// same request ID was received, and if so, will ignore the second
67591// request. This prevents clients from accidentally creating duplicate
67592// commitments.
67593//
67594// The request ID must be a valid UUID with the exception that zero UUID
67595// is not supported (00000000-0000-0000-0000-000000000000).
67596func (c *ForwardingRulesPatchCall) RequestId(requestId string) *ForwardingRulesPatchCall {
67597	c.urlParams_.Set("requestId", requestId)
67598	return c
67599}
67600
67601// Fields allows partial responses to be retrieved. See
67602// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67603// for more information.
67604func (c *ForwardingRulesPatchCall) Fields(s ...googleapi.Field) *ForwardingRulesPatchCall {
67605	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67606	return c
67607}
67608
67609// Context sets the context to be used in this call's Do method. Any
67610// pending HTTP request will be aborted if the provided context is
67611// canceled.
67612func (c *ForwardingRulesPatchCall) Context(ctx context.Context) *ForwardingRulesPatchCall {
67613	c.ctx_ = ctx
67614	return c
67615}
67616
67617// Header returns an http.Header that can be modified by the caller to
67618// add HTTP headers to the request.
67619func (c *ForwardingRulesPatchCall) Header() http.Header {
67620	if c.header_ == nil {
67621		c.header_ = make(http.Header)
67622	}
67623	return c.header_
67624}
67625
67626func (c *ForwardingRulesPatchCall) doRequest(alt string) (*http.Response, error) {
67627	reqHeaders := make(http.Header)
67628	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
67629	for k, v := range c.header_ {
67630		reqHeaders[k] = v
67631	}
67632	reqHeaders.Set("User-Agent", c.s.userAgent())
67633	var body io.Reader = nil
67634	body, err := googleapi.WithoutDataWrapper.JSONReader(c.forwardingrule)
67635	if err != nil {
67636		return nil, err
67637	}
67638	reqHeaders.Set("Content-Type", "application/json")
67639	c.urlParams_.Set("alt", alt)
67640	c.urlParams_.Set("prettyPrint", "false")
67641	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}")
67642	urls += "?" + c.urlParams_.Encode()
67643	req, err := http.NewRequest("PATCH", urls, body)
67644	if err != nil {
67645		return nil, err
67646	}
67647	req.Header = reqHeaders
67648	googleapi.Expand(req.URL, map[string]string{
67649		"project":        c.project,
67650		"region":         c.region,
67651		"forwardingRule": c.forwardingRule,
67652	})
67653	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67654}
67655
67656// Do executes the "compute.forwardingRules.patch" call.
67657// Exactly one of *Operation or error will be non-nil. Any non-2xx
67658// status code is an error. Response headers are in either
67659// *Operation.ServerResponse.Header or (if a response was returned at
67660// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
67661// to check whether the returned error was because
67662// http.StatusNotModified was returned.
67663func (c *ForwardingRulesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
67664	gensupport.SetOptions(c.urlParams_, opts...)
67665	res, err := c.doRequest("json")
67666	if res != nil && res.StatusCode == http.StatusNotModified {
67667		if res.Body != nil {
67668			res.Body.Close()
67669		}
67670		return nil, &googleapi.Error{
67671			Code:   res.StatusCode,
67672			Header: res.Header,
67673		}
67674	}
67675	if err != nil {
67676		return nil, err
67677	}
67678	defer googleapi.CloseBody(res)
67679	if err := googleapi.CheckResponse(res); err != nil {
67680		return nil, err
67681	}
67682	ret := &Operation{
67683		ServerResponse: googleapi.ServerResponse{
67684			Header:         res.Header,
67685			HTTPStatusCode: res.StatusCode,
67686		},
67687	}
67688	target := &ret
67689	if err := gensupport.DecodeResponse(target, res); err != nil {
67690		return nil, err
67691	}
67692	return ret, nil
67693	// {
67694	//   "description": "Updates the specified forwarding rule with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules. Currently, you can only patch the network_tier field.",
67695	//   "httpMethod": "PATCH",
67696	//   "id": "compute.forwardingRules.patch",
67697	//   "parameterOrder": [
67698	//     "project",
67699	//     "region",
67700	//     "forwardingRule"
67701	//   ],
67702	//   "parameters": {
67703	//     "forwardingRule": {
67704	//       "description": "Name of the ForwardingRule resource to patch.",
67705	//       "location": "path",
67706	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
67707	//       "required": true,
67708	//       "type": "string"
67709	//     },
67710	//     "project": {
67711	//       "description": "Project ID for this request.",
67712	//       "location": "path",
67713	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67714	//       "required": true,
67715	//       "type": "string"
67716	//     },
67717	//     "region": {
67718	//       "description": "Name of the region scoping this request.",
67719	//       "location": "path",
67720	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
67721	//       "required": true,
67722	//       "type": "string"
67723	//     },
67724	//     "requestId": {
67725	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
67726	//       "location": "query",
67727	//       "type": "string"
67728	//     }
67729	//   },
67730	//   "path": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}",
67731	//   "request": {
67732	//     "$ref": "ForwardingRule"
67733	//   },
67734	//   "response": {
67735	//     "$ref": "Operation"
67736	//   },
67737	//   "scopes": [
67738	//     "https://www.googleapis.com/auth/cloud-platform",
67739	//     "https://www.googleapis.com/auth/compute"
67740	//   ]
67741	// }
67742
67743}
67744
67745// method id "compute.forwardingRules.setLabels":
67746
67747type ForwardingRulesSetLabelsCall struct {
67748	s                      *Service
67749	project                string
67750	region                 string
67751	resource               string
67752	regionsetlabelsrequest *RegionSetLabelsRequest
67753	urlParams_             gensupport.URLParams
67754	ctx_                   context.Context
67755	header_                http.Header
67756}
67757
67758// SetLabels: Sets the labels on the specified resource. To learn more
67759// about labels, read the Labeling Resources documentation.
67760func (r *ForwardingRulesService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *ForwardingRulesSetLabelsCall {
67761	c := &ForwardingRulesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67762	c.project = project
67763	c.region = region
67764	c.resource = resource
67765	c.regionsetlabelsrequest = regionsetlabelsrequest
67766	return c
67767}
67768
67769// RequestId sets the optional parameter "requestId": An optional
67770// request ID to identify requests. Specify a unique request ID so that
67771// if you must retry your request, the server will know to ignore the
67772// request if it has already been completed.
67773//
67774// For example, consider a situation where you make an initial request
67775// and the request times out. If you make the request again with the
67776// same request ID, the server can check if original operation with the
67777// same request ID was received, and if so, will ignore the second
67778// request. This prevents clients from accidentally creating duplicate
67779// commitments.
67780//
67781// The request ID must be a valid UUID with the exception that zero UUID
67782// is not supported (00000000-0000-0000-0000-000000000000).
67783func (c *ForwardingRulesSetLabelsCall) RequestId(requestId string) *ForwardingRulesSetLabelsCall {
67784	c.urlParams_.Set("requestId", requestId)
67785	return c
67786}
67787
67788// Fields allows partial responses to be retrieved. See
67789// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67790// for more information.
67791func (c *ForwardingRulesSetLabelsCall) Fields(s ...googleapi.Field) *ForwardingRulesSetLabelsCall {
67792	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67793	return c
67794}
67795
67796// Context sets the context to be used in this call's Do method. Any
67797// pending HTTP request will be aborted if the provided context is
67798// canceled.
67799func (c *ForwardingRulesSetLabelsCall) Context(ctx context.Context) *ForwardingRulesSetLabelsCall {
67800	c.ctx_ = ctx
67801	return c
67802}
67803
67804// Header returns an http.Header that can be modified by the caller to
67805// add HTTP headers to the request.
67806func (c *ForwardingRulesSetLabelsCall) Header() http.Header {
67807	if c.header_ == nil {
67808		c.header_ = make(http.Header)
67809	}
67810	return c.header_
67811}
67812
67813func (c *ForwardingRulesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
67814	reqHeaders := make(http.Header)
67815	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
67816	for k, v := range c.header_ {
67817		reqHeaders[k] = v
67818	}
67819	reqHeaders.Set("User-Agent", c.s.userAgent())
67820	var body io.Reader = nil
67821	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
67822	if err != nil {
67823		return nil, err
67824	}
67825	reqHeaders.Set("Content-Type", "application/json")
67826	c.urlParams_.Set("alt", alt)
67827	c.urlParams_.Set("prettyPrint", "false")
67828	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/forwardingRules/{resource}/setLabels")
67829	urls += "?" + c.urlParams_.Encode()
67830	req, err := http.NewRequest("POST", urls, body)
67831	if err != nil {
67832		return nil, err
67833	}
67834	req.Header = reqHeaders
67835	googleapi.Expand(req.URL, map[string]string{
67836		"project":  c.project,
67837		"region":   c.region,
67838		"resource": c.resource,
67839	})
67840	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67841}
67842
67843// Do executes the "compute.forwardingRules.setLabels" call.
67844// Exactly one of *Operation or error will be non-nil. Any non-2xx
67845// status code is an error. Response headers are in either
67846// *Operation.ServerResponse.Header or (if a response was returned at
67847// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
67848// to check whether the returned error was because
67849// http.StatusNotModified was returned.
67850func (c *ForwardingRulesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
67851	gensupport.SetOptions(c.urlParams_, opts...)
67852	res, err := c.doRequest("json")
67853	if res != nil && res.StatusCode == http.StatusNotModified {
67854		if res.Body != nil {
67855			res.Body.Close()
67856		}
67857		return nil, &googleapi.Error{
67858			Code:   res.StatusCode,
67859			Header: res.Header,
67860		}
67861	}
67862	if err != nil {
67863		return nil, err
67864	}
67865	defer googleapi.CloseBody(res)
67866	if err := googleapi.CheckResponse(res); err != nil {
67867		return nil, err
67868	}
67869	ret := &Operation{
67870		ServerResponse: googleapi.ServerResponse{
67871			Header:         res.Header,
67872			HTTPStatusCode: res.StatusCode,
67873		},
67874	}
67875	target := &ret
67876	if err := gensupport.DecodeResponse(target, res); err != nil {
67877		return nil, err
67878	}
67879	return ret, nil
67880	// {
67881	//   "description": "Sets the labels on the specified resource. To learn more about labels, read the Labeling Resources documentation.",
67882	//   "httpMethod": "POST",
67883	//   "id": "compute.forwardingRules.setLabels",
67884	//   "parameterOrder": [
67885	//     "project",
67886	//     "region",
67887	//     "resource"
67888	//   ],
67889	//   "parameters": {
67890	//     "project": {
67891	//       "description": "Project ID for this request.",
67892	//       "location": "path",
67893	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67894	//       "required": true,
67895	//       "type": "string"
67896	//     },
67897	//     "region": {
67898	//       "description": "The region for this request.",
67899	//       "location": "path",
67900	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
67901	//       "required": true,
67902	//       "type": "string"
67903	//     },
67904	//     "requestId": {
67905	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
67906	//       "location": "query",
67907	//       "type": "string"
67908	//     },
67909	//     "resource": {
67910	//       "description": "Name or id of the resource for this request.",
67911	//       "location": "path",
67912	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
67913	//       "required": true,
67914	//       "type": "string"
67915	//     }
67916	//   },
67917	//   "path": "projects/{project}/regions/{region}/forwardingRules/{resource}/setLabels",
67918	//   "request": {
67919	//     "$ref": "RegionSetLabelsRequest"
67920	//   },
67921	//   "response": {
67922	//     "$ref": "Operation"
67923	//   },
67924	//   "scopes": [
67925	//     "https://www.googleapis.com/auth/cloud-platform",
67926	//     "https://www.googleapis.com/auth/compute"
67927	//   ]
67928	// }
67929
67930}
67931
67932// method id "compute.forwardingRules.setTarget":
67933
67934type ForwardingRulesSetTargetCall struct {
67935	s               *Service
67936	project         string
67937	region          string
67938	forwardingRule  string
67939	targetreference *TargetReference
67940	urlParams_      gensupport.URLParams
67941	ctx_            context.Context
67942	header_         http.Header
67943}
67944
67945// SetTarget: Changes target URL for forwarding rule. The new target
67946// should be of the same type as the old target.
67947// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/setTarget
67948func (r *ForwardingRulesService) SetTarget(project string, region string, forwardingRule string, targetreference *TargetReference) *ForwardingRulesSetTargetCall {
67949	c := &ForwardingRulesSetTargetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67950	c.project = project
67951	c.region = region
67952	c.forwardingRule = forwardingRule
67953	c.targetreference = targetreference
67954	return c
67955}
67956
67957// RequestId sets the optional parameter "requestId": An optional
67958// request ID to identify requests. Specify a unique request ID so that
67959// if you must retry your request, the server will know to ignore the
67960// request if it has already been completed.
67961//
67962// For example, consider a situation where you make an initial request
67963// and the request times out. If you make the request again with the
67964// same request ID, the server can check if original operation with the
67965// same request ID was received, and if so, will ignore the second
67966// request. This prevents clients from accidentally creating duplicate
67967// commitments.
67968//
67969// The request ID must be a valid UUID with the exception that zero UUID
67970// is not supported (00000000-0000-0000-0000-000000000000).
67971func (c *ForwardingRulesSetTargetCall) RequestId(requestId string) *ForwardingRulesSetTargetCall {
67972	c.urlParams_.Set("requestId", requestId)
67973	return c
67974}
67975
67976// Fields allows partial responses to be retrieved. See
67977// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67978// for more information.
67979func (c *ForwardingRulesSetTargetCall) Fields(s ...googleapi.Field) *ForwardingRulesSetTargetCall {
67980	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67981	return c
67982}
67983
67984// Context sets the context to be used in this call's Do method. Any
67985// pending HTTP request will be aborted if the provided context is
67986// canceled.
67987func (c *ForwardingRulesSetTargetCall) Context(ctx context.Context) *ForwardingRulesSetTargetCall {
67988	c.ctx_ = ctx
67989	return c
67990}
67991
67992// Header returns an http.Header that can be modified by the caller to
67993// add HTTP headers to the request.
67994func (c *ForwardingRulesSetTargetCall) Header() http.Header {
67995	if c.header_ == nil {
67996		c.header_ = make(http.Header)
67997	}
67998	return c.header_
67999}
68000
68001func (c *ForwardingRulesSetTargetCall) doRequest(alt string) (*http.Response, error) {
68002	reqHeaders := make(http.Header)
68003	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
68004	for k, v := range c.header_ {
68005		reqHeaders[k] = v
68006	}
68007	reqHeaders.Set("User-Agent", c.s.userAgent())
68008	var body io.Reader = nil
68009	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetreference)
68010	if err != nil {
68011		return nil, err
68012	}
68013	reqHeaders.Set("Content-Type", "application/json")
68014	c.urlParams_.Set("alt", alt)
68015	c.urlParams_.Set("prettyPrint", "false")
68016	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}/setTarget")
68017	urls += "?" + c.urlParams_.Encode()
68018	req, err := http.NewRequest("POST", urls, body)
68019	if err != nil {
68020		return nil, err
68021	}
68022	req.Header = reqHeaders
68023	googleapi.Expand(req.URL, map[string]string{
68024		"project":        c.project,
68025		"region":         c.region,
68026		"forwardingRule": c.forwardingRule,
68027	})
68028	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68029}
68030
68031// Do executes the "compute.forwardingRules.setTarget" call.
68032// Exactly one of *Operation or error will be non-nil. Any non-2xx
68033// status code is an error. Response headers are in either
68034// *Operation.ServerResponse.Header or (if a response was returned at
68035// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
68036// to check whether the returned error was because
68037// http.StatusNotModified was returned.
68038func (c *ForwardingRulesSetTargetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
68039	gensupport.SetOptions(c.urlParams_, opts...)
68040	res, err := c.doRequest("json")
68041	if res != nil && res.StatusCode == http.StatusNotModified {
68042		if res.Body != nil {
68043			res.Body.Close()
68044		}
68045		return nil, &googleapi.Error{
68046			Code:   res.StatusCode,
68047			Header: res.Header,
68048		}
68049	}
68050	if err != nil {
68051		return nil, err
68052	}
68053	defer googleapi.CloseBody(res)
68054	if err := googleapi.CheckResponse(res); err != nil {
68055		return nil, err
68056	}
68057	ret := &Operation{
68058		ServerResponse: googleapi.ServerResponse{
68059			Header:         res.Header,
68060			HTTPStatusCode: res.StatusCode,
68061		},
68062	}
68063	target := &ret
68064	if err := gensupport.DecodeResponse(target, res); err != nil {
68065		return nil, err
68066	}
68067	return ret, nil
68068	// {
68069	//   "description": "Changes target URL for forwarding rule. The new target should be of the same type as the old target.",
68070	//   "httpMethod": "POST",
68071	//   "id": "compute.forwardingRules.setTarget",
68072	//   "parameterOrder": [
68073	//     "project",
68074	//     "region",
68075	//     "forwardingRule"
68076	//   ],
68077	//   "parameters": {
68078	//     "forwardingRule": {
68079	//       "description": "Name of the ForwardingRule resource in which target is to be set.",
68080	//       "location": "path",
68081	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
68082	//       "required": true,
68083	//       "type": "string"
68084	//     },
68085	//     "project": {
68086	//       "description": "Project ID for this request.",
68087	//       "location": "path",
68088	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68089	//       "required": true,
68090	//       "type": "string"
68091	//     },
68092	//     "region": {
68093	//       "description": "Name of the region scoping this request.",
68094	//       "location": "path",
68095	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
68096	//       "required": true,
68097	//       "type": "string"
68098	//     },
68099	//     "requestId": {
68100	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
68101	//       "location": "query",
68102	//       "type": "string"
68103	//     }
68104	//   },
68105	//   "path": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}/setTarget",
68106	//   "request": {
68107	//     "$ref": "TargetReference"
68108	//   },
68109	//   "response": {
68110	//     "$ref": "Operation"
68111	//   },
68112	//   "scopes": [
68113	//     "https://www.googleapis.com/auth/cloud-platform",
68114	//     "https://www.googleapis.com/auth/compute"
68115	//   ]
68116	// }
68117
68118}
68119
68120// method id "compute.forwardingRules.testIamPermissions":
68121
68122type ForwardingRulesTestIamPermissionsCall struct {
68123	s                      *Service
68124	project                string
68125	region                 string
68126	resource               string
68127	testpermissionsrequest *TestPermissionsRequest
68128	urlParams_             gensupport.URLParams
68129	ctx_                   context.Context
68130	header_                http.Header
68131}
68132
68133// TestIamPermissions: Returns permissions that a caller has on the
68134// specified resource.
68135func (r *ForwardingRulesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *ForwardingRulesTestIamPermissionsCall {
68136	c := &ForwardingRulesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68137	c.project = project
68138	c.region = region
68139	c.resource = resource
68140	c.testpermissionsrequest = testpermissionsrequest
68141	return c
68142}
68143
68144// Fields allows partial responses to be retrieved. See
68145// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68146// for more information.
68147func (c *ForwardingRulesTestIamPermissionsCall) Fields(s ...googleapi.Field) *ForwardingRulesTestIamPermissionsCall {
68148	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68149	return c
68150}
68151
68152// Context sets the context to be used in this call's Do method. Any
68153// pending HTTP request will be aborted if the provided context is
68154// canceled.
68155func (c *ForwardingRulesTestIamPermissionsCall) Context(ctx context.Context) *ForwardingRulesTestIamPermissionsCall {
68156	c.ctx_ = ctx
68157	return c
68158}
68159
68160// Header returns an http.Header that can be modified by the caller to
68161// add HTTP headers to the request.
68162func (c *ForwardingRulesTestIamPermissionsCall) Header() http.Header {
68163	if c.header_ == nil {
68164		c.header_ = make(http.Header)
68165	}
68166	return c.header_
68167}
68168
68169func (c *ForwardingRulesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
68170	reqHeaders := make(http.Header)
68171	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
68172	for k, v := range c.header_ {
68173		reqHeaders[k] = v
68174	}
68175	reqHeaders.Set("User-Agent", c.s.userAgent())
68176	var body io.Reader = nil
68177	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
68178	if err != nil {
68179		return nil, err
68180	}
68181	reqHeaders.Set("Content-Type", "application/json")
68182	c.urlParams_.Set("alt", alt)
68183	c.urlParams_.Set("prettyPrint", "false")
68184	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/forwardingRules/{resource}/testIamPermissions")
68185	urls += "?" + c.urlParams_.Encode()
68186	req, err := http.NewRequest("POST", urls, body)
68187	if err != nil {
68188		return nil, err
68189	}
68190	req.Header = reqHeaders
68191	googleapi.Expand(req.URL, map[string]string{
68192		"project":  c.project,
68193		"region":   c.region,
68194		"resource": c.resource,
68195	})
68196	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68197}
68198
68199// Do executes the "compute.forwardingRules.testIamPermissions" call.
68200// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
68201// non-2xx status code is an error. Response headers are in either
68202// *TestPermissionsResponse.ServerResponse.Header or (if a response was
68203// returned at all) in error.(*googleapi.Error).Header. Use
68204// googleapi.IsNotModified to check whether the returned error was
68205// because http.StatusNotModified was returned.
68206func (c *ForwardingRulesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
68207	gensupport.SetOptions(c.urlParams_, opts...)
68208	res, err := c.doRequest("json")
68209	if res != nil && res.StatusCode == http.StatusNotModified {
68210		if res.Body != nil {
68211			res.Body.Close()
68212		}
68213		return nil, &googleapi.Error{
68214			Code:   res.StatusCode,
68215			Header: res.Header,
68216		}
68217	}
68218	if err != nil {
68219		return nil, err
68220	}
68221	defer googleapi.CloseBody(res)
68222	if err := googleapi.CheckResponse(res); err != nil {
68223		return nil, err
68224	}
68225	ret := &TestPermissionsResponse{
68226		ServerResponse: googleapi.ServerResponse{
68227			Header:         res.Header,
68228			HTTPStatusCode: res.StatusCode,
68229		},
68230	}
68231	target := &ret
68232	if err := gensupport.DecodeResponse(target, res); err != nil {
68233		return nil, err
68234	}
68235	return ret, nil
68236	// {
68237	//   "description": "Returns permissions that a caller has on the specified resource.",
68238	//   "httpMethod": "POST",
68239	//   "id": "compute.forwardingRules.testIamPermissions",
68240	//   "parameterOrder": [
68241	//     "project",
68242	//     "region",
68243	//     "resource"
68244	//   ],
68245	//   "parameters": {
68246	//     "project": {
68247	//       "description": "Project ID for this request.",
68248	//       "location": "path",
68249	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68250	//       "required": true,
68251	//       "type": "string"
68252	//     },
68253	//     "region": {
68254	//       "description": "The name of the region for this request.",
68255	//       "location": "path",
68256	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
68257	//       "required": true,
68258	//       "type": "string"
68259	//     },
68260	//     "resource": {
68261	//       "description": "Name or id of the resource for this request.",
68262	//       "location": "path",
68263	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
68264	//       "required": true,
68265	//       "type": "string"
68266	//     }
68267	//   },
68268	//   "path": "projects/{project}/regions/{region}/forwardingRules/{resource}/testIamPermissions",
68269	//   "request": {
68270	//     "$ref": "TestPermissionsRequest"
68271	//   },
68272	//   "response": {
68273	//     "$ref": "TestPermissionsResponse"
68274	//   },
68275	//   "scopes": [
68276	//     "https://www.googleapis.com/auth/cloud-platform",
68277	//     "https://www.googleapis.com/auth/compute",
68278	//     "https://www.googleapis.com/auth/compute.readonly"
68279	//   ]
68280	// }
68281
68282}
68283
68284// method id "compute.globalAddresses.delete":
68285
68286type GlobalAddressesDeleteCall struct {
68287	s          *Service
68288	project    string
68289	address    string
68290	urlParams_ gensupport.URLParams
68291	ctx_       context.Context
68292	header_    http.Header
68293}
68294
68295// Delete: Deletes the specified address resource.
68296// For details, see https://cloud.google.com/compute/docs/reference/latest/globalAddresses/delete
68297func (r *GlobalAddressesService) Delete(project string, address string) *GlobalAddressesDeleteCall {
68298	c := &GlobalAddressesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68299	c.project = project
68300	c.address = address
68301	return c
68302}
68303
68304// RequestId sets the optional parameter "requestId": An optional
68305// request ID to identify requests. Specify a unique request ID so that
68306// if you must retry your request, the server will know to ignore the
68307// request if it has already been completed.
68308//
68309// For example, consider a situation where you make an initial request
68310// and the request times out. If you make the request again with the
68311// same request ID, the server can check if original operation with the
68312// same request ID was received, and if so, will ignore the second
68313// request. This prevents clients from accidentally creating duplicate
68314// commitments.
68315//
68316// The request ID must be a valid UUID with the exception that zero UUID
68317// is not supported (00000000-0000-0000-0000-000000000000).
68318func (c *GlobalAddressesDeleteCall) RequestId(requestId string) *GlobalAddressesDeleteCall {
68319	c.urlParams_.Set("requestId", requestId)
68320	return c
68321}
68322
68323// Fields allows partial responses to be retrieved. See
68324// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68325// for more information.
68326func (c *GlobalAddressesDeleteCall) Fields(s ...googleapi.Field) *GlobalAddressesDeleteCall {
68327	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68328	return c
68329}
68330
68331// Context sets the context to be used in this call's Do method. Any
68332// pending HTTP request will be aborted if the provided context is
68333// canceled.
68334func (c *GlobalAddressesDeleteCall) Context(ctx context.Context) *GlobalAddressesDeleteCall {
68335	c.ctx_ = ctx
68336	return c
68337}
68338
68339// Header returns an http.Header that can be modified by the caller to
68340// add HTTP headers to the request.
68341func (c *GlobalAddressesDeleteCall) Header() http.Header {
68342	if c.header_ == nil {
68343		c.header_ = make(http.Header)
68344	}
68345	return c.header_
68346}
68347
68348func (c *GlobalAddressesDeleteCall) doRequest(alt string) (*http.Response, error) {
68349	reqHeaders := make(http.Header)
68350	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
68351	for k, v := range c.header_ {
68352		reqHeaders[k] = v
68353	}
68354	reqHeaders.Set("User-Agent", c.s.userAgent())
68355	var body io.Reader = nil
68356	c.urlParams_.Set("alt", alt)
68357	c.urlParams_.Set("prettyPrint", "false")
68358	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/addresses/{address}")
68359	urls += "?" + c.urlParams_.Encode()
68360	req, err := http.NewRequest("DELETE", urls, body)
68361	if err != nil {
68362		return nil, err
68363	}
68364	req.Header = reqHeaders
68365	googleapi.Expand(req.URL, map[string]string{
68366		"project": c.project,
68367		"address": c.address,
68368	})
68369	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68370}
68371
68372// Do executes the "compute.globalAddresses.delete" call.
68373// Exactly one of *Operation or error will be non-nil. Any non-2xx
68374// status code is an error. Response headers are in either
68375// *Operation.ServerResponse.Header or (if a response was returned at
68376// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
68377// to check whether the returned error was because
68378// http.StatusNotModified was returned.
68379func (c *GlobalAddressesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
68380	gensupport.SetOptions(c.urlParams_, opts...)
68381	res, err := c.doRequest("json")
68382	if res != nil && res.StatusCode == http.StatusNotModified {
68383		if res.Body != nil {
68384			res.Body.Close()
68385		}
68386		return nil, &googleapi.Error{
68387			Code:   res.StatusCode,
68388			Header: res.Header,
68389		}
68390	}
68391	if err != nil {
68392		return nil, err
68393	}
68394	defer googleapi.CloseBody(res)
68395	if err := googleapi.CheckResponse(res); err != nil {
68396		return nil, err
68397	}
68398	ret := &Operation{
68399		ServerResponse: googleapi.ServerResponse{
68400			Header:         res.Header,
68401			HTTPStatusCode: res.StatusCode,
68402		},
68403	}
68404	target := &ret
68405	if err := gensupport.DecodeResponse(target, res); err != nil {
68406		return nil, err
68407	}
68408	return ret, nil
68409	// {
68410	//   "description": "Deletes the specified address resource.",
68411	//   "httpMethod": "DELETE",
68412	//   "id": "compute.globalAddresses.delete",
68413	//   "parameterOrder": [
68414	//     "project",
68415	//     "address"
68416	//   ],
68417	//   "parameters": {
68418	//     "address": {
68419	//       "description": "Name of the address resource to delete.",
68420	//       "location": "path",
68421	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
68422	//       "required": true,
68423	//       "type": "string"
68424	//     },
68425	//     "project": {
68426	//       "description": "Project ID for this request.",
68427	//       "location": "path",
68428	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68429	//       "required": true,
68430	//       "type": "string"
68431	//     },
68432	//     "requestId": {
68433	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
68434	//       "location": "query",
68435	//       "type": "string"
68436	//     }
68437	//   },
68438	//   "path": "projects/{project}/global/addresses/{address}",
68439	//   "response": {
68440	//     "$ref": "Operation"
68441	//   },
68442	//   "scopes": [
68443	//     "https://www.googleapis.com/auth/cloud-platform",
68444	//     "https://www.googleapis.com/auth/compute"
68445	//   ]
68446	// }
68447
68448}
68449
68450// method id "compute.globalAddresses.get":
68451
68452type GlobalAddressesGetCall struct {
68453	s            *Service
68454	project      string
68455	address      string
68456	urlParams_   gensupport.URLParams
68457	ifNoneMatch_ string
68458	ctx_         context.Context
68459	header_      http.Header
68460}
68461
68462// Get: Returns the specified address resource. Gets a list of available
68463// addresses by making a list() request.
68464// For details, see https://cloud.google.com/compute/docs/reference/latest/globalAddresses/get
68465func (r *GlobalAddressesService) Get(project string, address string) *GlobalAddressesGetCall {
68466	c := &GlobalAddressesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68467	c.project = project
68468	c.address = address
68469	return c
68470}
68471
68472// Fields allows partial responses to be retrieved. See
68473// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68474// for more information.
68475func (c *GlobalAddressesGetCall) Fields(s ...googleapi.Field) *GlobalAddressesGetCall {
68476	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68477	return c
68478}
68479
68480// IfNoneMatch sets the optional parameter which makes the operation
68481// fail if the object's ETag matches the given value. This is useful for
68482// getting updates only after the object has changed since the last
68483// request. Use googleapi.IsNotModified to check whether the response
68484// error from Do is the result of In-None-Match.
68485func (c *GlobalAddressesGetCall) IfNoneMatch(entityTag string) *GlobalAddressesGetCall {
68486	c.ifNoneMatch_ = entityTag
68487	return c
68488}
68489
68490// Context sets the context to be used in this call's Do method. Any
68491// pending HTTP request will be aborted if the provided context is
68492// canceled.
68493func (c *GlobalAddressesGetCall) Context(ctx context.Context) *GlobalAddressesGetCall {
68494	c.ctx_ = ctx
68495	return c
68496}
68497
68498// Header returns an http.Header that can be modified by the caller to
68499// add HTTP headers to the request.
68500func (c *GlobalAddressesGetCall) Header() http.Header {
68501	if c.header_ == nil {
68502		c.header_ = make(http.Header)
68503	}
68504	return c.header_
68505}
68506
68507func (c *GlobalAddressesGetCall) doRequest(alt string) (*http.Response, error) {
68508	reqHeaders := make(http.Header)
68509	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
68510	for k, v := range c.header_ {
68511		reqHeaders[k] = v
68512	}
68513	reqHeaders.Set("User-Agent", c.s.userAgent())
68514	if c.ifNoneMatch_ != "" {
68515		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
68516	}
68517	var body io.Reader = nil
68518	c.urlParams_.Set("alt", alt)
68519	c.urlParams_.Set("prettyPrint", "false")
68520	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/addresses/{address}")
68521	urls += "?" + c.urlParams_.Encode()
68522	req, err := http.NewRequest("GET", urls, body)
68523	if err != nil {
68524		return nil, err
68525	}
68526	req.Header = reqHeaders
68527	googleapi.Expand(req.URL, map[string]string{
68528		"project": c.project,
68529		"address": c.address,
68530	})
68531	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68532}
68533
68534// Do executes the "compute.globalAddresses.get" call.
68535// Exactly one of *Address or error will be non-nil. Any non-2xx status
68536// code is an error. Response headers are in either
68537// *Address.ServerResponse.Header or (if a response was returned at all)
68538// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
68539// check whether the returned error was because http.StatusNotModified
68540// was returned.
68541func (c *GlobalAddressesGetCall) Do(opts ...googleapi.CallOption) (*Address, error) {
68542	gensupport.SetOptions(c.urlParams_, opts...)
68543	res, err := c.doRequest("json")
68544	if res != nil && res.StatusCode == http.StatusNotModified {
68545		if res.Body != nil {
68546			res.Body.Close()
68547		}
68548		return nil, &googleapi.Error{
68549			Code:   res.StatusCode,
68550			Header: res.Header,
68551		}
68552	}
68553	if err != nil {
68554		return nil, err
68555	}
68556	defer googleapi.CloseBody(res)
68557	if err := googleapi.CheckResponse(res); err != nil {
68558		return nil, err
68559	}
68560	ret := &Address{
68561		ServerResponse: googleapi.ServerResponse{
68562			Header:         res.Header,
68563			HTTPStatusCode: res.StatusCode,
68564		},
68565	}
68566	target := &ret
68567	if err := gensupport.DecodeResponse(target, res); err != nil {
68568		return nil, err
68569	}
68570	return ret, nil
68571	// {
68572	//   "description": "Returns the specified address resource. Gets a list of available addresses by making a list() request.",
68573	//   "httpMethod": "GET",
68574	//   "id": "compute.globalAddresses.get",
68575	//   "parameterOrder": [
68576	//     "project",
68577	//     "address"
68578	//   ],
68579	//   "parameters": {
68580	//     "address": {
68581	//       "description": "Name of the address resource to return.",
68582	//       "location": "path",
68583	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
68584	//       "required": true,
68585	//       "type": "string"
68586	//     },
68587	//     "project": {
68588	//       "description": "Project ID for this request.",
68589	//       "location": "path",
68590	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68591	//       "required": true,
68592	//       "type": "string"
68593	//     }
68594	//   },
68595	//   "path": "projects/{project}/global/addresses/{address}",
68596	//   "response": {
68597	//     "$ref": "Address"
68598	//   },
68599	//   "scopes": [
68600	//     "https://www.googleapis.com/auth/cloud-platform",
68601	//     "https://www.googleapis.com/auth/compute",
68602	//     "https://www.googleapis.com/auth/compute.readonly"
68603	//   ]
68604	// }
68605
68606}
68607
68608// method id "compute.globalAddresses.insert":
68609
68610type GlobalAddressesInsertCall struct {
68611	s          *Service
68612	project    string
68613	address    *Address
68614	urlParams_ gensupport.URLParams
68615	ctx_       context.Context
68616	header_    http.Header
68617}
68618
68619// Insert: Creates an address resource in the specified project by using
68620// the data included in the request.
68621// For details, see https://cloud.google.com/compute/docs/reference/latest/globalAddresses/insert
68622func (r *GlobalAddressesService) Insert(project string, address *Address) *GlobalAddressesInsertCall {
68623	c := &GlobalAddressesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68624	c.project = project
68625	c.address = address
68626	return c
68627}
68628
68629// RequestId sets the optional parameter "requestId": An optional
68630// request ID to identify requests. Specify a unique request ID so that
68631// if you must retry your request, the server will know to ignore the
68632// request if it has already been completed.
68633//
68634// For example, consider a situation where you make an initial request
68635// and the request times out. If you make the request again with the
68636// same request ID, the server can check if original operation with the
68637// same request ID was received, and if so, will ignore the second
68638// request. This prevents clients from accidentally creating duplicate
68639// commitments.
68640//
68641// The request ID must be a valid UUID with the exception that zero UUID
68642// is not supported (00000000-0000-0000-0000-000000000000).
68643func (c *GlobalAddressesInsertCall) RequestId(requestId string) *GlobalAddressesInsertCall {
68644	c.urlParams_.Set("requestId", requestId)
68645	return c
68646}
68647
68648// Fields allows partial responses to be retrieved. See
68649// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68650// for more information.
68651func (c *GlobalAddressesInsertCall) Fields(s ...googleapi.Field) *GlobalAddressesInsertCall {
68652	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68653	return c
68654}
68655
68656// Context sets the context to be used in this call's Do method. Any
68657// pending HTTP request will be aborted if the provided context is
68658// canceled.
68659func (c *GlobalAddressesInsertCall) Context(ctx context.Context) *GlobalAddressesInsertCall {
68660	c.ctx_ = ctx
68661	return c
68662}
68663
68664// Header returns an http.Header that can be modified by the caller to
68665// add HTTP headers to the request.
68666func (c *GlobalAddressesInsertCall) Header() http.Header {
68667	if c.header_ == nil {
68668		c.header_ = make(http.Header)
68669	}
68670	return c.header_
68671}
68672
68673func (c *GlobalAddressesInsertCall) doRequest(alt string) (*http.Response, error) {
68674	reqHeaders := make(http.Header)
68675	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
68676	for k, v := range c.header_ {
68677		reqHeaders[k] = v
68678	}
68679	reqHeaders.Set("User-Agent", c.s.userAgent())
68680	var body io.Reader = nil
68681	body, err := googleapi.WithoutDataWrapper.JSONReader(c.address)
68682	if err != nil {
68683		return nil, err
68684	}
68685	reqHeaders.Set("Content-Type", "application/json")
68686	c.urlParams_.Set("alt", alt)
68687	c.urlParams_.Set("prettyPrint", "false")
68688	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/addresses")
68689	urls += "?" + c.urlParams_.Encode()
68690	req, err := http.NewRequest("POST", urls, body)
68691	if err != nil {
68692		return nil, err
68693	}
68694	req.Header = reqHeaders
68695	googleapi.Expand(req.URL, map[string]string{
68696		"project": c.project,
68697	})
68698	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68699}
68700
68701// Do executes the "compute.globalAddresses.insert" call.
68702// Exactly one of *Operation or error will be non-nil. Any non-2xx
68703// status code is an error. Response headers are in either
68704// *Operation.ServerResponse.Header or (if a response was returned at
68705// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
68706// to check whether the returned error was because
68707// http.StatusNotModified was returned.
68708func (c *GlobalAddressesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
68709	gensupport.SetOptions(c.urlParams_, opts...)
68710	res, err := c.doRequest("json")
68711	if res != nil && res.StatusCode == http.StatusNotModified {
68712		if res.Body != nil {
68713			res.Body.Close()
68714		}
68715		return nil, &googleapi.Error{
68716			Code:   res.StatusCode,
68717			Header: res.Header,
68718		}
68719	}
68720	if err != nil {
68721		return nil, err
68722	}
68723	defer googleapi.CloseBody(res)
68724	if err := googleapi.CheckResponse(res); err != nil {
68725		return nil, err
68726	}
68727	ret := &Operation{
68728		ServerResponse: googleapi.ServerResponse{
68729			Header:         res.Header,
68730			HTTPStatusCode: res.StatusCode,
68731		},
68732	}
68733	target := &ret
68734	if err := gensupport.DecodeResponse(target, res); err != nil {
68735		return nil, err
68736	}
68737	return ret, nil
68738	// {
68739	//   "description": "Creates an address resource in the specified project by using the data included in the request.",
68740	//   "httpMethod": "POST",
68741	//   "id": "compute.globalAddresses.insert",
68742	//   "parameterOrder": [
68743	//     "project"
68744	//   ],
68745	//   "parameters": {
68746	//     "project": {
68747	//       "description": "Project ID for this request.",
68748	//       "location": "path",
68749	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68750	//       "required": true,
68751	//       "type": "string"
68752	//     },
68753	//     "requestId": {
68754	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
68755	//       "location": "query",
68756	//       "type": "string"
68757	//     }
68758	//   },
68759	//   "path": "projects/{project}/global/addresses",
68760	//   "request": {
68761	//     "$ref": "Address"
68762	//   },
68763	//   "response": {
68764	//     "$ref": "Operation"
68765	//   },
68766	//   "scopes": [
68767	//     "https://www.googleapis.com/auth/cloud-platform",
68768	//     "https://www.googleapis.com/auth/compute"
68769	//   ]
68770	// }
68771
68772}
68773
68774// method id "compute.globalAddresses.list":
68775
68776type GlobalAddressesListCall struct {
68777	s            *Service
68778	project      string
68779	urlParams_   gensupport.URLParams
68780	ifNoneMatch_ string
68781	ctx_         context.Context
68782	header_      http.Header
68783}
68784
68785// List: Retrieves a list of global addresses.
68786// For details, see https://cloud.google.com/compute/docs/reference/latest/globalAddresses/list
68787func (r *GlobalAddressesService) List(project string) *GlobalAddressesListCall {
68788	c := &GlobalAddressesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68789	c.project = project
68790	return c
68791}
68792
68793// Filter sets the optional parameter "filter": A filter expression that
68794// filters resources listed in the response. The expression must specify
68795// the field name, a comparison operator, and the value that you want to
68796// use for filtering. The value must be a string, a number, or a
68797// boolean. The comparison operator must be either `=`, `!=`, `>`, or
68798// `<`.
68799//
68800// For example, if you are filtering Compute Engine instances, you can
68801// exclude instances named `example-instance` by specifying `name !=
68802// example-instance`.
68803//
68804// You can also filter nested fields. For example, you could specify
68805// `scheduling.automaticRestart = false` to include instances only if
68806// they are not scheduled for automatic restarts. You can use filtering
68807// on nested fields to filter based on resource labels.
68808//
68809// To filter on multiple expressions, provide each separate expression
68810// within parentheses. For example: ``` (scheduling.automaticRestart =
68811// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
68812// is an `AND` expression. However, you can include `AND` and `OR`
68813// expressions explicitly. For example: ``` (cpuPlatform = "Intel
68814// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
68815// (scheduling.automaticRestart = true) ```
68816func (c *GlobalAddressesListCall) Filter(filter string) *GlobalAddressesListCall {
68817	c.urlParams_.Set("filter", filter)
68818	return c
68819}
68820
68821// MaxResults sets the optional parameter "maxResults": The maximum
68822// number of results per page that should be returned. If the number of
68823// available results is larger than `maxResults`, Compute Engine returns
68824// a `nextPageToken` that can be used to get the next page of results in
68825// subsequent list requests. Acceptable values are `0` to `500`,
68826// inclusive. (Default: `500`)
68827func (c *GlobalAddressesListCall) MaxResults(maxResults int64) *GlobalAddressesListCall {
68828	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
68829	return c
68830}
68831
68832// OrderBy sets the optional parameter "orderBy": Sorts list results by
68833// a certain order. By default, results are returned in alphanumerical
68834// order based on the resource name.
68835//
68836// You can also sort results in descending order based on the creation
68837// timestamp using `orderBy="creationTimestamp desc". This sorts
68838// results based on the `creationTimestamp` field in reverse
68839// chronological order (newest result first). Use this to sort resources
68840// like operations so that the newest operation is returned
68841// first.
68842//
68843// Currently, only sorting by `name` or `creationTimestamp desc` is
68844// supported.
68845func (c *GlobalAddressesListCall) OrderBy(orderBy string) *GlobalAddressesListCall {
68846	c.urlParams_.Set("orderBy", orderBy)
68847	return c
68848}
68849
68850// PageToken sets the optional parameter "pageToken": Specifies a page
68851// token to use. Set `pageToken` to the `nextPageToken` returned by a
68852// previous list request to get the next page of results.
68853func (c *GlobalAddressesListCall) PageToken(pageToken string) *GlobalAddressesListCall {
68854	c.urlParams_.Set("pageToken", pageToken)
68855	return c
68856}
68857
68858// ReturnPartialSuccess sets the optional parameter
68859// "returnPartialSuccess": Opt-in for partial success behavior which
68860// provides partial results in case of failure. The default value is
68861// false.
68862func (c *GlobalAddressesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalAddressesListCall {
68863	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
68864	return c
68865}
68866
68867// Fields allows partial responses to be retrieved. See
68868// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68869// for more information.
68870func (c *GlobalAddressesListCall) Fields(s ...googleapi.Field) *GlobalAddressesListCall {
68871	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68872	return c
68873}
68874
68875// IfNoneMatch sets the optional parameter which makes the operation
68876// fail if the object's ETag matches the given value. This is useful for
68877// getting updates only after the object has changed since the last
68878// request. Use googleapi.IsNotModified to check whether the response
68879// error from Do is the result of In-None-Match.
68880func (c *GlobalAddressesListCall) IfNoneMatch(entityTag string) *GlobalAddressesListCall {
68881	c.ifNoneMatch_ = entityTag
68882	return c
68883}
68884
68885// Context sets the context to be used in this call's Do method. Any
68886// pending HTTP request will be aborted if the provided context is
68887// canceled.
68888func (c *GlobalAddressesListCall) Context(ctx context.Context) *GlobalAddressesListCall {
68889	c.ctx_ = ctx
68890	return c
68891}
68892
68893// Header returns an http.Header that can be modified by the caller to
68894// add HTTP headers to the request.
68895func (c *GlobalAddressesListCall) Header() http.Header {
68896	if c.header_ == nil {
68897		c.header_ = make(http.Header)
68898	}
68899	return c.header_
68900}
68901
68902func (c *GlobalAddressesListCall) doRequest(alt string) (*http.Response, error) {
68903	reqHeaders := make(http.Header)
68904	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
68905	for k, v := range c.header_ {
68906		reqHeaders[k] = v
68907	}
68908	reqHeaders.Set("User-Agent", c.s.userAgent())
68909	if c.ifNoneMatch_ != "" {
68910		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
68911	}
68912	var body io.Reader = nil
68913	c.urlParams_.Set("alt", alt)
68914	c.urlParams_.Set("prettyPrint", "false")
68915	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/addresses")
68916	urls += "?" + c.urlParams_.Encode()
68917	req, err := http.NewRequest("GET", urls, body)
68918	if err != nil {
68919		return nil, err
68920	}
68921	req.Header = reqHeaders
68922	googleapi.Expand(req.URL, map[string]string{
68923		"project": c.project,
68924	})
68925	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68926}
68927
68928// Do executes the "compute.globalAddresses.list" call.
68929// Exactly one of *AddressList or error will be non-nil. Any non-2xx
68930// status code is an error. Response headers are in either
68931// *AddressList.ServerResponse.Header or (if a response was returned at
68932// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
68933// to check whether the returned error was because
68934// http.StatusNotModified was returned.
68935func (c *GlobalAddressesListCall) Do(opts ...googleapi.CallOption) (*AddressList, error) {
68936	gensupport.SetOptions(c.urlParams_, opts...)
68937	res, err := c.doRequest("json")
68938	if res != nil && res.StatusCode == http.StatusNotModified {
68939		if res.Body != nil {
68940			res.Body.Close()
68941		}
68942		return nil, &googleapi.Error{
68943			Code:   res.StatusCode,
68944			Header: res.Header,
68945		}
68946	}
68947	if err != nil {
68948		return nil, err
68949	}
68950	defer googleapi.CloseBody(res)
68951	if err := googleapi.CheckResponse(res); err != nil {
68952		return nil, err
68953	}
68954	ret := &AddressList{
68955		ServerResponse: googleapi.ServerResponse{
68956			Header:         res.Header,
68957			HTTPStatusCode: res.StatusCode,
68958		},
68959	}
68960	target := &ret
68961	if err := gensupport.DecodeResponse(target, res); err != nil {
68962		return nil, err
68963	}
68964	return ret, nil
68965	// {
68966	//   "description": "Retrieves a list of global addresses.",
68967	//   "httpMethod": "GET",
68968	//   "id": "compute.globalAddresses.list",
68969	//   "parameterOrder": [
68970	//     "project"
68971	//   ],
68972	//   "parameters": {
68973	//     "filter": {
68974	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
68975	//       "location": "query",
68976	//       "type": "string"
68977	//     },
68978	//     "maxResults": {
68979	//       "default": "500",
68980	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
68981	//       "format": "uint32",
68982	//       "location": "query",
68983	//       "minimum": "0",
68984	//       "type": "integer"
68985	//     },
68986	//     "orderBy": {
68987	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
68988	//       "location": "query",
68989	//       "type": "string"
68990	//     },
68991	//     "pageToken": {
68992	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
68993	//       "location": "query",
68994	//       "type": "string"
68995	//     },
68996	//     "project": {
68997	//       "description": "Project ID for this request.",
68998	//       "location": "path",
68999	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69000	//       "required": true,
69001	//       "type": "string"
69002	//     },
69003	//     "returnPartialSuccess": {
69004	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
69005	//       "location": "query",
69006	//       "type": "boolean"
69007	//     }
69008	//   },
69009	//   "path": "projects/{project}/global/addresses",
69010	//   "response": {
69011	//     "$ref": "AddressList"
69012	//   },
69013	//   "scopes": [
69014	//     "https://www.googleapis.com/auth/cloud-platform",
69015	//     "https://www.googleapis.com/auth/compute",
69016	//     "https://www.googleapis.com/auth/compute.readonly"
69017	//   ]
69018	// }
69019
69020}
69021
69022// Pages invokes f for each page of results.
69023// A non-nil error returned from f will halt the iteration.
69024// The provided context supersedes any context provided to the Context method.
69025func (c *GlobalAddressesListCall) Pages(ctx context.Context, f func(*AddressList) error) error {
69026	c.ctx_ = ctx
69027	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
69028	for {
69029		x, err := c.Do()
69030		if err != nil {
69031			return err
69032		}
69033		if err := f(x); err != nil {
69034			return err
69035		}
69036		if x.NextPageToken == "" {
69037			return nil
69038		}
69039		c.PageToken(x.NextPageToken)
69040	}
69041}
69042
69043// method id "compute.globalAddresses.setLabels":
69044
69045type GlobalAddressesSetLabelsCall struct {
69046	s                      *Service
69047	project                string
69048	resource               string
69049	globalsetlabelsrequest *GlobalSetLabelsRequest
69050	urlParams_             gensupport.URLParams
69051	ctx_                   context.Context
69052	header_                http.Header
69053}
69054
69055// SetLabels: Sets the labels on a GlobalAddress. To learn more about
69056// labels, read the Labeling Resources documentation.
69057func (r *GlobalAddressesService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *GlobalAddressesSetLabelsCall {
69058	c := &GlobalAddressesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69059	c.project = project
69060	c.resource = resource
69061	c.globalsetlabelsrequest = globalsetlabelsrequest
69062	return c
69063}
69064
69065// Fields allows partial responses to be retrieved. See
69066// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69067// for more information.
69068func (c *GlobalAddressesSetLabelsCall) Fields(s ...googleapi.Field) *GlobalAddressesSetLabelsCall {
69069	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69070	return c
69071}
69072
69073// Context sets the context to be used in this call's Do method. Any
69074// pending HTTP request will be aborted if the provided context is
69075// canceled.
69076func (c *GlobalAddressesSetLabelsCall) Context(ctx context.Context) *GlobalAddressesSetLabelsCall {
69077	c.ctx_ = ctx
69078	return c
69079}
69080
69081// Header returns an http.Header that can be modified by the caller to
69082// add HTTP headers to the request.
69083func (c *GlobalAddressesSetLabelsCall) Header() http.Header {
69084	if c.header_ == nil {
69085		c.header_ = make(http.Header)
69086	}
69087	return c.header_
69088}
69089
69090func (c *GlobalAddressesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
69091	reqHeaders := make(http.Header)
69092	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
69093	for k, v := range c.header_ {
69094		reqHeaders[k] = v
69095	}
69096	reqHeaders.Set("User-Agent", c.s.userAgent())
69097	var body io.Reader = nil
69098	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
69099	if err != nil {
69100		return nil, err
69101	}
69102	reqHeaders.Set("Content-Type", "application/json")
69103	c.urlParams_.Set("alt", alt)
69104	c.urlParams_.Set("prettyPrint", "false")
69105	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/addresses/{resource}/setLabels")
69106	urls += "?" + c.urlParams_.Encode()
69107	req, err := http.NewRequest("POST", urls, body)
69108	if err != nil {
69109		return nil, err
69110	}
69111	req.Header = reqHeaders
69112	googleapi.Expand(req.URL, map[string]string{
69113		"project":  c.project,
69114		"resource": c.resource,
69115	})
69116	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69117}
69118
69119// Do executes the "compute.globalAddresses.setLabels" call.
69120// Exactly one of *Operation or error will be non-nil. Any non-2xx
69121// status code is an error. Response headers are in either
69122// *Operation.ServerResponse.Header or (if a response was returned at
69123// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
69124// to check whether the returned error was because
69125// http.StatusNotModified was returned.
69126func (c *GlobalAddressesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
69127	gensupport.SetOptions(c.urlParams_, opts...)
69128	res, err := c.doRequest("json")
69129	if res != nil && res.StatusCode == http.StatusNotModified {
69130		if res.Body != nil {
69131			res.Body.Close()
69132		}
69133		return nil, &googleapi.Error{
69134			Code:   res.StatusCode,
69135			Header: res.Header,
69136		}
69137	}
69138	if err != nil {
69139		return nil, err
69140	}
69141	defer googleapi.CloseBody(res)
69142	if err := googleapi.CheckResponse(res); err != nil {
69143		return nil, err
69144	}
69145	ret := &Operation{
69146		ServerResponse: googleapi.ServerResponse{
69147			Header:         res.Header,
69148			HTTPStatusCode: res.StatusCode,
69149		},
69150	}
69151	target := &ret
69152	if err := gensupport.DecodeResponse(target, res); err != nil {
69153		return nil, err
69154	}
69155	return ret, nil
69156	// {
69157	//   "description": "Sets the labels on a GlobalAddress. To learn more about labels, read the Labeling Resources documentation.",
69158	//   "httpMethod": "POST",
69159	//   "id": "compute.globalAddresses.setLabels",
69160	//   "parameterOrder": [
69161	//     "project",
69162	//     "resource"
69163	//   ],
69164	//   "parameters": {
69165	//     "project": {
69166	//       "description": "Project ID for this request.",
69167	//       "location": "path",
69168	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69169	//       "required": true,
69170	//       "type": "string"
69171	//     },
69172	//     "resource": {
69173	//       "description": "Name or id of the resource for this request.",
69174	//       "location": "path",
69175	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
69176	//       "required": true,
69177	//       "type": "string"
69178	//     }
69179	//   },
69180	//   "path": "projects/{project}/global/addresses/{resource}/setLabels",
69181	//   "request": {
69182	//     "$ref": "GlobalSetLabelsRequest"
69183	//   },
69184	//   "response": {
69185	//     "$ref": "Operation"
69186	//   },
69187	//   "scopes": [
69188	//     "https://www.googleapis.com/auth/cloud-platform",
69189	//     "https://www.googleapis.com/auth/compute"
69190	//   ]
69191	// }
69192
69193}
69194
69195// method id "compute.globalAddresses.testIamPermissions":
69196
69197type GlobalAddressesTestIamPermissionsCall struct {
69198	s                      *Service
69199	project                string
69200	resource               string
69201	testpermissionsrequest *TestPermissionsRequest
69202	urlParams_             gensupport.URLParams
69203	ctx_                   context.Context
69204	header_                http.Header
69205}
69206
69207// TestIamPermissions: Returns permissions that a caller has on the
69208// specified resource.
69209func (r *GlobalAddressesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *GlobalAddressesTestIamPermissionsCall {
69210	c := &GlobalAddressesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69211	c.project = project
69212	c.resource = resource
69213	c.testpermissionsrequest = testpermissionsrequest
69214	return c
69215}
69216
69217// Fields allows partial responses to be retrieved. See
69218// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69219// for more information.
69220func (c *GlobalAddressesTestIamPermissionsCall) Fields(s ...googleapi.Field) *GlobalAddressesTestIamPermissionsCall {
69221	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69222	return c
69223}
69224
69225// Context sets the context to be used in this call's Do method. Any
69226// pending HTTP request will be aborted if the provided context is
69227// canceled.
69228func (c *GlobalAddressesTestIamPermissionsCall) Context(ctx context.Context) *GlobalAddressesTestIamPermissionsCall {
69229	c.ctx_ = ctx
69230	return c
69231}
69232
69233// Header returns an http.Header that can be modified by the caller to
69234// add HTTP headers to the request.
69235func (c *GlobalAddressesTestIamPermissionsCall) Header() http.Header {
69236	if c.header_ == nil {
69237		c.header_ = make(http.Header)
69238	}
69239	return c.header_
69240}
69241
69242func (c *GlobalAddressesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
69243	reqHeaders := make(http.Header)
69244	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
69245	for k, v := range c.header_ {
69246		reqHeaders[k] = v
69247	}
69248	reqHeaders.Set("User-Agent", c.s.userAgent())
69249	var body io.Reader = nil
69250	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
69251	if err != nil {
69252		return nil, err
69253	}
69254	reqHeaders.Set("Content-Type", "application/json")
69255	c.urlParams_.Set("alt", alt)
69256	c.urlParams_.Set("prettyPrint", "false")
69257	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/addresses/{resource}/testIamPermissions")
69258	urls += "?" + c.urlParams_.Encode()
69259	req, err := http.NewRequest("POST", urls, body)
69260	if err != nil {
69261		return nil, err
69262	}
69263	req.Header = reqHeaders
69264	googleapi.Expand(req.URL, map[string]string{
69265		"project":  c.project,
69266		"resource": c.resource,
69267	})
69268	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69269}
69270
69271// Do executes the "compute.globalAddresses.testIamPermissions" call.
69272// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
69273// non-2xx status code is an error. Response headers are in either
69274// *TestPermissionsResponse.ServerResponse.Header or (if a response was
69275// returned at all) in error.(*googleapi.Error).Header. Use
69276// googleapi.IsNotModified to check whether the returned error was
69277// because http.StatusNotModified was returned.
69278func (c *GlobalAddressesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
69279	gensupport.SetOptions(c.urlParams_, opts...)
69280	res, err := c.doRequest("json")
69281	if res != nil && res.StatusCode == http.StatusNotModified {
69282		if res.Body != nil {
69283			res.Body.Close()
69284		}
69285		return nil, &googleapi.Error{
69286			Code:   res.StatusCode,
69287			Header: res.Header,
69288		}
69289	}
69290	if err != nil {
69291		return nil, err
69292	}
69293	defer googleapi.CloseBody(res)
69294	if err := googleapi.CheckResponse(res); err != nil {
69295		return nil, err
69296	}
69297	ret := &TestPermissionsResponse{
69298		ServerResponse: googleapi.ServerResponse{
69299			Header:         res.Header,
69300			HTTPStatusCode: res.StatusCode,
69301		},
69302	}
69303	target := &ret
69304	if err := gensupport.DecodeResponse(target, res); err != nil {
69305		return nil, err
69306	}
69307	return ret, nil
69308	// {
69309	//   "description": "Returns permissions that a caller has on the specified resource.",
69310	//   "httpMethod": "POST",
69311	//   "id": "compute.globalAddresses.testIamPermissions",
69312	//   "parameterOrder": [
69313	//     "project",
69314	//     "resource"
69315	//   ],
69316	//   "parameters": {
69317	//     "project": {
69318	//       "description": "Project ID for this request.",
69319	//       "location": "path",
69320	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69321	//       "required": true,
69322	//       "type": "string"
69323	//     },
69324	//     "resource": {
69325	//       "description": "Name or id of the resource for this request.",
69326	//       "location": "path",
69327	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
69328	//       "required": true,
69329	//       "type": "string"
69330	//     }
69331	//   },
69332	//   "path": "projects/{project}/global/addresses/{resource}/testIamPermissions",
69333	//   "request": {
69334	//     "$ref": "TestPermissionsRequest"
69335	//   },
69336	//   "response": {
69337	//     "$ref": "TestPermissionsResponse"
69338	//   },
69339	//   "scopes": [
69340	//     "https://www.googleapis.com/auth/cloud-platform",
69341	//     "https://www.googleapis.com/auth/compute",
69342	//     "https://www.googleapis.com/auth/compute.readonly"
69343	//   ]
69344	// }
69345
69346}
69347
69348// method id "compute.globalForwardingRules.delete":
69349
69350type GlobalForwardingRulesDeleteCall struct {
69351	s              *Service
69352	project        string
69353	forwardingRule string
69354	urlParams_     gensupport.URLParams
69355	ctx_           context.Context
69356	header_        http.Header
69357}
69358
69359// Delete: Deletes the specified GlobalForwardingRule resource.
69360// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/delete
69361func (r *GlobalForwardingRulesService) Delete(project string, forwardingRule string) *GlobalForwardingRulesDeleteCall {
69362	c := &GlobalForwardingRulesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69363	c.project = project
69364	c.forwardingRule = forwardingRule
69365	return c
69366}
69367
69368// RequestId sets the optional parameter "requestId": An optional
69369// request ID to identify requests. Specify a unique request ID so that
69370// if you must retry your request, the server will know to ignore the
69371// request if it has already been completed.
69372//
69373// For example, consider a situation where you make an initial request
69374// and the request times out. If you make the request again with the
69375// same request ID, the server can check if original operation with the
69376// same request ID was received, and if so, will ignore the second
69377// request. This prevents clients from accidentally creating duplicate
69378// commitments.
69379//
69380// The request ID must be a valid UUID with the exception that zero UUID
69381// is not supported (00000000-0000-0000-0000-000000000000).
69382func (c *GlobalForwardingRulesDeleteCall) RequestId(requestId string) *GlobalForwardingRulesDeleteCall {
69383	c.urlParams_.Set("requestId", requestId)
69384	return c
69385}
69386
69387// Fields allows partial responses to be retrieved. See
69388// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69389// for more information.
69390func (c *GlobalForwardingRulesDeleteCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesDeleteCall {
69391	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69392	return c
69393}
69394
69395// Context sets the context to be used in this call's Do method. Any
69396// pending HTTP request will be aborted if the provided context is
69397// canceled.
69398func (c *GlobalForwardingRulesDeleteCall) Context(ctx context.Context) *GlobalForwardingRulesDeleteCall {
69399	c.ctx_ = ctx
69400	return c
69401}
69402
69403// Header returns an http.Header that can be modified by the caller to
69404// add HTTP headers to the request.
69405func (c *GlobalForwardingRulesDeleteCall) Header() http.Header {
69406	if c.header_ == nil {
69407		c.header_ = make(http.Header)
69408	}
69409	return c.header_
69410}
69411
69412func (c *GlobalForwardingRulesDeleteCall) doRequest(alt string) (*http.Response, error) {
69413	reqHeaders := make(http.Header)
69414	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
69415	for k, v := range c.header_ {
69416		reqHeaders[k] = v
69417	}
69418	reqHeaders.Set("User-Agent", c.s.userAgent())
69419	var body io.Reader = nil
69420	c.urlParams_.Set("alt", alt)
69421	c.urlParams_.Set("prettyPrint", "false")
69422	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/forwardingRules/{forwardingRule}")
69423	urls += "?" + c.urlParams_.Encode()
69424	req, err := http.NewRequest("DELETE", urls, body)
69425	if err != nil {
69426		return nil, err
69427	}
69428	req.Header = reqHeaders
69429	googleapi.Expand(req.URL, map[string]string{
69430		"project":        c.project,
69431		"forwardingRule": c.forwardingRule,
69432	})
69433	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69434}
69435
69436// Do executes the "compute.globalForwardingRules.delete" call.
69437// Exactly one of *Operation or error will be non-nil. Any non-2xx
69438// status code is an error. Response headers are in either
69439// *Operation.ServerResponse.Header or (if a response was returned at
69440// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
69441// to check whether the returned error was because
69442// http.StatusNotModified was returned.
69443func (c *GlobalForwardingRulesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
69444	gensupport.SetOptions(c.urlParams_, opts...)
69445	res, err := c.doRequest("json")
69446	if res != nil && res.StatusCode == http.StatusNotModified {
69447		if res.Body != nil {
69448			res.Body.Close()
69449		}
69450		return nil, &googleapi.Error{
69451			Code:   res.StatusCode,
69452			Header: res.Header,
69453		}
69454	}
69455	if err != nil {
69456		return nil, err
69457	}
69458	defer googleapi.CloseBody(res)
69459	if err := googleapi.CheckResponse(res); err != nil {
69460		return nil, err
69461	}
69462	ret := &Operation{
69463		ServerResponse: googleapi.ServerResponse{
69464			Header:         res.Header,
69465			HTTPStatusCode: res.StatusCode,
69466		},
69467	}
69468	target := &ret
69469	if err := gensupport.DecodeResponse(target, res); err != nil {
69470		return nil, err
69471	}
69472	return ret, nil
69473	// {
69474	//   "description": "Deletes the specified GlobalForwardingRule resource.",
69475	//   "httpMethod": "DELETE",
69476	//   "id": "compute.globalForwardingRules.delete",
69477	//   "parameterOrder": [
69478	//     "project",
69479	//     "forwardingRule"
69480	//   ],
69481	//   "parameters": {
69482	//     "forwardingRule": {
69483	//       "description": "Name of the ForwardingRule resource to delete.",
69484	//       "location": "path",
69485	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
69486	//       "required": true,
69487	//       "type": "string"
69488	//     },
69489	//     "project": {
69490	//       "description": "Project ID for this request.",
69491	//       "location": "path",
69492	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69493	//       "required": true,
69494	//       "type": "string"
69495	//     },
69496	//     "requestId": {
69497	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
69498	//       "location": "query",
69499	//       "type": "string"
69500	//     }
69501	//   },
69502	//   "path": "projects/{project}/global/forwardingRules/{forwardingRule}",
69503	//   "response": {
69504	//     "$ref": "Operation"
69505	//   },
69506	//   "scopes": [
69507	//     "https://www.googleapis.com/auth/cloud-platform",
69508	//     "https://www.googleapis.com/auth/compute"
69509	//   ]
69510	// }
69511
69512}
69513
69514// method id "compute.globalForwardingRules.get":
69515
69516type GlobalForwardingRulesGetCall struct {
69517	s              *Service
69518	project        string
69519	forwardingRule string
69520	urlParams_     gensupport.URLParams
69521	ifNoneMatch_   string
69522	ctx_           context.Context
69523	header_        http.Header
69524}
69525
69526// Get: Returns the specified GlobalForwardingRule resource. Gets a list
69527// of available forwarding rules by making a list() request.
69528// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/get
69529func (r *GlobalForwardingRulesService) Get(project string, forwardingRule string) *GlobalForwardingRulesGetCall {
69530	c := &GlobalForwardingRulesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69531	c.project = project
69532	c.forwardingRule = forwardingRule
69533	return c
69534}
69535
69536// Fields allows partial responses to be retrieved. See
69537// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69538// for more information.
69539func (c *GlobalForwardingRulesGetCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesGetCall {
69540	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69541	return c
69542}
69543
69544// IfNoneMatch sets the optional parameter which makes the operation
69545// fail if the object's ETag matches the given value. This is useful for
69546// getting updates only after the object has changed since the last
69547// request. Use googleapi.IsNotModified to check whether the response
69548// error from Do is the result of In-None-Match.
69549func (c *GlobalForwardingRulesGetCall) IfNoneMatch(entityTag string) *GlobalForwardingRulesGetCall {
69550	c.ifNoneMatch_ = entityTag
69551	return c
69552}
69553
69554// Context sets the context to be used in this call's Do method. Any
69555// pending HTTP request will be aborted if the provided context is
69556// canceled.
69557func (c *GlobalForwardingRulesGetCall) Context(ctx context.Context) *GlobalForwardingRulesGetCall {
69558	c.ctx_ = ctx
69559	return c
69560}
69561
69562// Header returns an http.Header that can be modified by the caller to
69563// add HTTP headers to the request.
69564func (c *GlobalForwardingRulesGetCall) Header() http.Header {
69565	if c.header_ == nil {
69566		c.header_ = make(http.Header)
69567	}
69568	return c.header_
69569}
69570
69571func (c *GlobalForwardingRulesGetCall) doRequest(alt string) (*http.Response, error) {
69572	reqHeaders := make(http.Header)
69573	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
69574	for k, v := range c.header_ {
69575		reqHeaders[k] = v
69576	}
69577	reqHeaders.Set("User-Agent", c.s.userAgent())
69578	if c.ifNoneMatch_ != "" {
69579		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
69580	}
69581	var body io.Reader = nil
69582	c.urlParams_.Set("alt", alt)
69583	c.urlParams_.Set("prettyPrint", "false")
69584	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/forwardingRules/{forwardingRule}")
69585	urls += "?" + c.urlParams_.Encode()
69586	req, err := http.NewRequest("GET", urls, body)
69587	if err != nil {
69588		return nil, err
69589	}
69590	req.Header = reqHeaders
69591	googleapi.Expand(req.URL, map[string]string{
69592		"project":        c.project,
69593		"forwardingRule": c.forwardingRule,
69594	})
69595	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69596}
69597
69598// Do executes the "compute.globalForwardingRules.get" call.
69599// Exactly one of *ForwardingRule or error will be non-nil. Any non-2xx
69600// status code is an error. Response headers are in either
69601// *ForwardingRule.ServerResponse.Header or (if a response was returned
69602// at all) in error.(*googleapi.Error).Header. Use
69603// googleapi.IsNotModified to check whether the returned error was
69604// because http.StatusNotModified was returned.
69605func (c *GlobalForwardingRulesGetCall) Do(opts ...googleapi.CallOption) (*ForwardingRule, error) {
69606	gensupport.SetOptions(c.urlParams_, opts...)
69607	res, err := c.doRequest("json")
69608	if res != nil && res.StatusCode == http.StatusNotModified {
69609		if res.Body != nil {
69610			res.Body.Close()
69611		}
69612		return nil, &googleapi.Error{
69613			Code:   res.StatusCode,
69614			Header: res.Header,
69615		}
69616	}
69617	if err != nil {
69618		return nil, err
69619	}
69620	defer googleapi.CloseBody(res)
69621	if err := googleapi.CheckResponse(res); err != nil {
69622		return nil, err
69623	}
69624	ret := &ForwardingRule{
69625		ServerResponse: googleapi.ServerResponse{
69626			Header:         res.Header,
69627			HTTPStatusCode: res.StatusCode,
69628		},
69629	}
69630	target := &ret
69631	if err := gensupport.DecodeResponse(target, res); err != nil {
69632		return nil, err
69633	}
69634	return ret, nil
69635	// {
69636	//   "description": "Returns the specified GlobalForwardingRule resource. Gets a list of available forwarding rules by making a list() request.",
69637	//   "httpMethod": "GET",
69638	//   "id": "compute.globalForwardingRules.get",
69639	//   "parameterOrder": [
69640	//     "project",
69641	//     "forwardingRule"
69642	//   ],
69643	//   "parameters": {
69644	//     "forwardingRule": {
69645	//       "description": "Name of the ForwardingRule resource to return.",
69646	//       "location": "path",
69647	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
69648	//       "required": true,
69649	//       "type": "string"
69650	//     },
69651	//     "project": {
69652	//       "description": "Project ID for this request.",
69653	//       "location": "path",
69654	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69655	//       "required": true,
69656	//       "type": "string"
69657	//     }
69658	//   },
69659	//   "path": "projects/{project}/global/forwardingRules/{forwardingRule}",
69660	//   "response": {
69661	//     "$ref": "ForwardingRule"
69662	//   },
69663	//   "scopes": [
69664	//     "https://www.googleapis.com/auth/cloud-platform",
69665	//     "https://www.googleapis.com/auth/compute",
69666	//     "https://www.googleapis.com/auth/compute.readonly"
69667	//   ]
69668	// }
69669
69670}
69671
69672// method id "compute.globalForwardingRules.insert":
69673
69674type GlobalForwardingRulesInsertCall struct {
69675	s              *Service
69676	project        string
69677	forwardingrule *ForwardingRule
69678	urlParams_     gensupport.URLParams
69679	ctx_           context.Context
69680	header_        http.Header
69681}
69682
69683// Insert: Creates a GlobalForwardingRule resource in the specified
69684// project using the data included in the request.
69685// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/insert
69686func (r *GlobalForwardingRulesService) Insert(project string, forwardingrule *ForwardingRule) *GlobalForwardingRulesInsertCall {
69687	c := &GlobalForwardingRulesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69688	c.project = project
69689	c.forwardingrule = forwardingrule
69690	return c
69691}
69692
69693// RequestId sets the optional parameter "requestId": An optional
69694// request ID to identify requests. Specify a unique request ID so that
69695// if you must retry your request, the server will know to ignore the
69696// request if it has already been completed.
69697//
69698// For example, consider a situation where you make an initial request
69699// and the request times out. If you make the request again with the
69700// same request ID, the server can check if original operation with the
69701// same request ID was received, and if so, will ignore the second
69702// request. This prevents clients from accidentally creating duplicate
69703// commitments.
69704//
69705// The request ID must be a valid UUID with the exception that zero UUID
69706// is not supported (00000000-0000-0000-0000-000000000000).
69707func (c *GlobalForwardingRulesInsertCall) RequestId(requestId string) *GlobalForwardingRulesInsertCall {
69708	c.urlParams_.Set("requestId", requestId)
69709	return c
69710}
69711
69712// Fields allows partial responses to be retrieved. See
69713// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69714// for more information.
69715func (c *GlobalForwardingRulesInsertCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesInsertCall {
69716	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69717	return c
69718}
69719
69720// Context sets the context to be used in this call's Do method. Any
69721// pending HTTP request will be aborted if the provided context is
69722// canceled.
69723func (c *GlobalForwardingRulesInsertCall) Context(ctx context.Context) *GlobalForwardingRulesInsertCall {
69724	c.ctx_ = ctx
69725	return c
69726}
69727
69728// Header returns an http.Header that can be modified by the caller to
69729// add HTTP headers to the request.
69730func (c *GlobalForwardingRulesInsertCall) Header() http.Header {
69731	if c.header_ == nil {
69732		c.header_ = make(http.Header)
69733	}
69734	return c.header_
69735}
69736
69737func (c *GlobalForwardingRulesInsertCall) doRequest(alt string) (*http.Response, error) {
69738	reqHeaders := make(http.Header)
69739	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
69740	for k, v := range c.header_ {
69741		reqHeaders[k] = v
69742	}
69743	reqHeaders.Set("User-Agent", c.s.userAgent())
69744	var body io.Reader = nil
69745	body, err := googleapi.WithoutDataWrapper.JSONReader(c.forwardingrule)
69746	if err != nil {
69747		return nil, err
69748	}
69749	reqHeaders.Set("Content-Type", "application/json")
69750	c.urlParams_.Set("alt", alt)
69751	c.urlParams_.Set("prettyPrint", "false")
69752	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/forwardingRules")
69753	urls += "?" + c.urlParams_.Encode()
69754	req, err := http.NewRequest("POST", urls, body)
69755	if err != nil {
69756		return nil, err
69757	}
69758	req.Header = reqHeaders
69759	googleapi.Expand(req.URL, map[string]string{
69760		"project": c.project,
69761	})
69762	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69763}
69764
69765// Do executes the "compute.globalForwardingRules.insert" call.
69766// Exactly one of *Operation or error will be non-nil. Any non-2xx
69767// status code is an error. Response headers are in either
69768// *Operation.ServerResponse.Header or (if a response was returned at
69769// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
69770// to check whether the returned error was because
69771// http.StatusNotModified was returned.
69772func (c *GlobalForwardingRulesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
69773	gensupport.SetOptions(c.urlParams_, opts...)
69774	res, err := c.doRequest("json")
69775	if res != nil && res.StatusCode == http.StatusNotModified {
69776		if res.Body != nil {
69777			res.Body.Close()
69778		}
69779		return nil, &googleapi.Error{
69780			Code:   res.StatusCode,
69781			Header: res.Header,
69782		}
69783	}
69784	if err != nil {
69785		return nil, err
69786	}
69787	defer googleapi.CloseBody(res)
69788	if err := googleapi.CheckResponse(res); err != nil {
69789		return nil, err
69790	}
69791	ret := &Operation{
69792		ServerResponse: googleapi.ServerResponse{
69793			Header:         res.Header,
69794			HTTPStatusCode: res.StatusCode,
69795		},
69796	}
69797	target := &ret
69798	if err := gensupport.DecodeResponse(target, res); err != nil {
69799		return nil, err
69800	}
69801	return ret, nil
69802	// {
69803	//   "description": "Creates a GlobalForwardingRule resource in the specified project using the data included in the request.",
69804	//   "httpMethod": "POST",
69805	//   "id": "compute.globalForwardingRules.insert",
69806	//   "parameterOrder": [
69807	//     "project"
69808	//   ],
69809	//   "parameters": {
69810	//     "project": {
69811	//       "description": "Project ID for this request.",
69812	//       "location": "path",
69813	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69814	//       "required": true,
69815	//       "type": "string"
69816	//     },
69817	//     "requestId": {
69818	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
69819	//       "location": "query",
69820	//       "type": "string"
69821	//     }
69822	//   },
69823	//   "path": "projects/{project}/global/forwardingRules",
69824	//   "request": {
69825	//     "$ref": "ForwardingRule"
69826	//   },
69827	//   "response": {
69828	//     "$ref": "Operation"
69829	//   },
69830	//   "scopes": [
69831	//     "https://www.googleapis.com/auth/cloud-platform",
69832	//     "https://www.googleapis.com/auth/compute"
69833	//   ]
69834	// }
69835
69836}
69837
69838// method id "compute.globalForwardingRules.list":
69839
69840type GlobalForwardingRulesListCall struct {
69841	s            *Service
69842	project      string
69843	urlParams_   gensupport.URLParams
69844	ifNoneMatch_ string
69845	ctx_         context.Context
69846	header_      http.Header
69847}
69848
69849// List: Retrieves a list of GlobalForwardingRule resources available to
69850// the specified project.
69851// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/list
69852func (r *GlobalForwardingRulesService) List(project string) *GlobalForwardingRulesListCall {
69853	c := &GlobalForwardingRulesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69854	c.project = project
69855	return c
69856}
69857
69858// Filter sets the optional parameter "filter": A filter expression that
69859// filters resources listed in the response. The expression must specify
69860// the field name, a comparison operator, and the value that you want to
69861// use for filtering. The value must be a string, a number, or a
69862// boolean. The comparison operator must be either `=`, `!=`, `>`, or
69863// `<`.
69864//
69865// For example, if you are filtering Compute Engine instances, you can
69866// exclude instances named `example-instance` by specifying `name !=
69867// example-instance`.
69868//
69869// You can also filter nested fields. For example, you could specify
69870// `scheduling.automaticRestart = false` to include instances only if
69871// they are not scheduled for automatic restarts. You can use filtering
69872// on nested fields to filter based on resource labels.
69873//
69874// To filter on multiple expressions, provide each separate expression
69875// within parentheses. For example: ``` (scheduling.automaticRestart =
69876// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
69877// is an `AND` expression. However, you can include `AND` and `OR`
69878// expressions explicitly. For example: ``` (cpuPlatform = "Intel
69879// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
69880// (scheduling.automaticRestart = true) ```
69881func (c *GlobalForwardingRulesListCall) Filter(filter string) *GlobalForwardingRulesListCall {
69882	c.urlParams_.Set("filter", filter)
69883	return c
69884}
69885
69886// MaxResults sets the optional parameter "maxResults": The maximum
69887// number of results per page that should be returned. If the number of
69888// available results is larger than `maxResults`, Compute Engine returns
69889// a `nextPageToken` that can be used to get the next page of results in
69890// subsequent list requests. Acceptable values are `0` to `500`,
69891// inclusive. (Default: `500`)
69892func (c *GlobalForwardingRulesListCall) MaxResults(maxResults int64) *GlobalForwardingRulesListCall {
69893	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
69894	return c
69895}
69896
69897// OrderBy sets the optional parameter "orderBy": Sorts list results by
69898// a certain order. By default, results are returned in alphanumerical
69899// order based on the resource name.
69900//
69901// You can also sort results in descending order based on the creation
69902// timestamp using `orderBy="creationTimestamp desc". This sorts
69903// results based on the `creationTimestamp` field in reverse
69904// chronological order (newest result first). Use this to sort resources
69905// like operations so that the newest operation is returned
69906// first.
69907//
69908// Currently, only sorting by `name` or `creationTimestamp desc` is
69909// supported.
69910func (c *GlobalForwardingRulesListCall) OrderBy(orderBy string) *GlobalForwardingRulesListCall {
69911	c.urlParams_.Set("orderBy", orderBy)
69912	return c
69913}
69914
69915// PageToken sets the optional parameter "pageToken": Specifies a page
69916// token to use. Set `pageToken` to the `nextPageToken` returned by a
69917// previous list request to get the next page of results.
69918func (c *GlobalForwardingRulesListCall) PageToken(pageToken string) *GlobalForwardingRulesListCall {
69919	c.urlParams_.Set("pageToken", pageToken)
69920	return c
69921}
69922
69923// ReturnPartialSuccess sets the optional parameter
69924// "returnPartialSuccess": Opt-in for partial success behavior which
69925// provides partial results in case of failure. The default value is
69926// false.
69927func (c *GlobalForwardingRulesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalForwardingRulesListCall {
69928	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
69929	return c
69930}
69931
69932// Fields allows partial responses to be retrieved. See
69933// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69934// for more information.
69935func (c *GlobalForwardingRulesListCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesListCall {
69936	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69937	return c
69938}
69939
69940// IfNoneMatch sets the optional parameter which makes the operation
69941// fail if the object's ETag matches the given value. This is useful for
69942// getting updates only after the object has changed since the last
69943// request. Use googleapi.IsNotModified to check whether the response
69944// error from Do is the result of In-None-Match.
69945func (c *GlobalForwardingRulesListCall) IfNoneMatch(entityTag string) *GlobalForwardingRulesListCall {
69946	c.ifNoneMatch_ = entityTag
69947	return c
69948}
69949
69950// Context sets the context to be used in this call's Do method. Any
69951// pending HTTP request will be aborted if the provided context is
69952// canceled.
69953func (c *GlobalForwardingRulesListCall) Context(ctx context.Context) *GlobalForwardingRulesListCall {
69954	c.ctx_ = ctx
69955	return c
69956}
69957
69958// Header returns an http.Header that can be modified by the caller to
69959// add HTTP headers to the request.
69960func (c *GlobalForwardingRulesListCall) Header() http.Header {
69961	if c.header_ == nil {
69962		c.header_ = make(http.Header)
69963	}
69964	return c.header_
69965}
69966
69967func (c *GlobalForwardingRulesListCall) doRequest(alt string) (*http.Response, error) {
69968	reqHeaders := make(http.Header)
69969	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
69970	for k, v := range c.header_ {
69971		reqHeaders[k] = v
69972	}
69973	reqHeaders.Set("User-Agent", c.s.userAgent())
69974	if c.ifNoneMatch_ != "" {
69975		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
69976	}
69977	var body io.Reader = nil
69978	c.urlParams_.Set("alt", alt)
69979	c.urlParams_.Set("prettyPrint", "false")
69980	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/forwardingRules")
69981	urls += "?" + c.urlParams_.Encode()
69982	req, err := http.NewRequest("GET", urls, body)
69983	if err != nil {
69984		return nil, err
69985	}
69986	req.Header = reqHeaders
69987	googleapi.Expand(req.URL, map[string]string{
69988		"project": c.project,
69989	})
69990	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69991}
69992
69993// Do executes the "compute.globalForwardingRules.list" call.
69994// Exactly one of *ForwardingRuleList or error will be non-nil. Any
69995// non-2xx status code is an error. Response headers are in either
69996// *ForwardingRuleList.ServerResponse.Header or (if a response was
69997// returned at all) in error.(*googleapi.Error).Header. Use
69998// googleapi.IsNotModified to check whether the returned error was
69999// because http.StatusNotModified was returned.
70000func (c *GlobalForwardingRulesListCall) Do(opts ...googleapi.CallOption) (*ForwardingRuleList, error) {
70001	gensupport.SetOptions(c.urlParams_, opts...)
70002	res, err := c.doRequest("json")
70003	if res != nil && res.StatusCode == http.StatusNotModified {
70004		if res.Body != nil {
70005			res.Body.Close()
70006		}
70007		return nil, &googleapi.Error{
70008			Code:   res.StatusCode,
70009			Header: res.Header,
70010		}
70011	}
70012	if err != nil {
70013		return nil, err
70014	}
70015	defer googleapi.CloseBody(res)
70016	if err := googleapi.CheckResponse(res); err != nil {
70017		return nil, err
70018	}
70019	ret := &ForwardingRuleList{
70020		ServerResponse: googleapi.ServerResponse{
70021			Header:         res.Header,
70022			HTTPStatusCode: res.StatusCode,
70023		},
70024	}
70025	target := &ret
70026	if err := gensupport.DecodeResponse(target, res); err != nil {
70027		return nil, err
70028	}
70029	return ret, nil
70030	// {
70031	//   "description": "Retrieves a list of GlobalForwardingRule resources available to the specified project.",
70032	//   "httpMethod": "GET",
70033	//   "id": "compute.globalForwardingRules.list",
70034	//   "parameterOrder": [
70035	//     "project"
70036	//   ],
70037	//   "parameters": {
70038	//     "filter": {
70039	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
70040	//       "location": "query",
70041	//       "type": "string"
70042	//     },
70043	//     "maxResults": {
70044	//       "default": "500",
70045	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
70046	//       "format": "uint32",
70047	//       "location": "query",
70048	//       "minimum": "0",
70049	//       "type": "integer"
70050	//     },
70051	//     "orderBy": {
70052	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
70053	//       "location": "query",
70054	//       "type": "string"
70055	//     },
70056	//     "pageToken": {
70057	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
70058	//       "location": "query",
70059	//       "type": "string"
70060	//     },
70061	//     "project": {
70062	//       "description": "Project ID for this request.",
70063	//       "location": "path",
70064	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70065	//       "required": true,
70066	//       "type": "string"
70067	//     },
70068	//     "returnPartialSuccess": {
70069	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
70070	//       "location": "query",
70071	//       "type": "boolean"
70072	//     }
70073	//   },
70074	//   "path": "projects/{project}/global/forwardingRules",
70075	//   "response": {
70076	//     "$ref": "ForwardingRuleList"
70077	//   },
70078	//   "scopes": [
70079	//     "https://www.googleapis.com/auth/cloud-platform",
70080	//     "https://www.googleapis.com/auth/compute",
70081	//     "https://www.googleapis.com/auth/compute.readonly"
70082	//   ]
70083	// }
70084
70085}
70086
70087// Pages invokes f for each page of results.
70088// A non-nil error returned from f will halt the iteration.
70089// The provided context supersedes any context provided to the Context method.
70090func (c *GlobalForwardingRulesListCall) Pages(ctx context.Context, f func(*ForwardingRuleList) error) error {
70091	c.ctx_ = ctx
70092	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
70093	for {
70094		x, err := c.Do()
70095		if err != nil {
70096			return err
70097		}
70098		if err := f(x); err != nil {
70099			return err
70100		}
70101		if x.NextPageToken == "" {
70102			return nil
70103		}
70104		c.PageToken(x.NextPageToken)
70105	}
70106}
70107
70108// method id "compute.globalForwardingRules.patch":
70109
70110type GlobalForwardingRulesPatchCall struct {
70111	s              *Service
70112	project        string
70113	forwardingRule string
70114	forwardingrule *ForwardingRule
70115	urlParams_     gensupport.URLParams
70116	ctx_           context.Context
70117	header_        http.Header
70118}
70119
70120// Patch: Updates the specified forwarding rule with the data included
70121// in the request. This method supports PATCH semantics and uses the
70122// JSON merge patch format and processing rules. Currently, you can only
70123// patch the network_tier field.
70124func (r *GlobalForwardingRulesService) Patch(project string, forwardingRule string, forwardingrule *ForwardingRule) *GlobalForwardingRulesPatchCall {
70125	c := &GlobalForwardingRulesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70126	c.project = project
70127	c.forwardingRule = forwardingRule
70128	c.forwardingrule = forwardingrule
70129	return c
70130}
70131
70132// RequestId sets the optional parameter "requestId": An optional
70133// request ID to identify requests. Specify a unique request ID so that
70134// if you must retry your request, the server will know to ignore the
70135// request if it has already been completed.
70136//
70137// For example, consider a situation where you make an initial request
70138// and the request times out. If you make the request again with the
70139// same request ID, the server can check if original operation with the
70140// same request ID was received, and if so, will ignore the second
70141// request. This prevents clients from accidentally creating duplicate
70142// commitments.
70143//
70144// The request ID must be a valid UUID with the exception that zero UUID
70145// is not supported (00000000-0000-0000-0000-000000000000).
70146func (c *GlobalForwardingRulesPatchCall) RequestId(requestId string) *GlobalForwardingRulesPatchCall {
70147	c.urlParams_.Set("requestId", requestId)
70148	return c
70149}
70150
70151// Fields allows partial responses to be retrieved. See
70152// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70153// for more information.
70154func (c *GlobalForwardingRulesPatchCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesPatchCall {
70155	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70156	return c
70157}
70158
70159// Context sets the context to be used in this call's Do method. Any
70160// pending HTTP request will be aborted if the provided context is
70161// canceled.
70162func (c *GlobalForwardingRulesPatchCall) Context(ctx context.Context) *GlobalForwardingRulesPatchCall {
70163	c.ctx_ = ctx
70164	return c
70165}
70166
70167// Header returns an http.Header that can be modified by the caller to
70168// add HTTP headers to the request.
70169func (c *GlobalForwardingRulesPatchCall) Header() http.Header {
70170	if c.header_ == nil {
70171		c.header_ = make(http.Header)
70172	}
70173	return c.header_
70174}
70175
70176func (c *GlobalForwardingRulesPatchCall) doRequest(alt string) (*http.Response, error) {
70177	reqHeaders := make(http.Header)
70178	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
70179	for k, v := range c.header_ {
70180		reqHeaders[k] = v
70181	}
70182	reqHeaders.Set("User-Agent", c.s.userAgent())
70183	var body io.Reader = nil
70184	body, err := googleapi.WithoutDataWrapper.JSONReader(c.forwardingrule)
70185	if err != nil {
70186		return nil, err
70187	}
70188	reqHeaders.Set("Content-Type", "application/json")
70189	c.urlParams_.Set("alt", alt)
70190	c.urlParams_.Set("prettyPrint", "false")
70191	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/forwardingRules/{forwardingRule}")
70192	urls += "?" + c.urlParams_.Encode()
70193	req, err := http.NewRequest("PATCH", urls, body)
70194	if err != nil {
70195		return nil, err
70196	}
70197	req.Header = reqHeaders
70198	googleapi.Expand(req.URL, map[string]string{
70199		"project":        c.project,
70200		"forwardingRule": c.forwardingRule,
70201	})
70202	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70203}
70204
70205// Do executes the "compute.globalForwardingRules.patch" call.
70206// Exactly one of *Operation or error will be non-nil. Any non-2xx
70207// status code is an error. Response headers are in either
70208// *Operation.ServerResponse.Header or (if a response was returned at
70209// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
70210// to check whether the returned error was because
70211// http.StatusNotModified was returned.
70212func (c *GlobalForwardingRulesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
70213	gensupport.SetOptions(c.urlParams_, opts...)
70214	res, err := c.doRequest("json")
70215	if res != nil && res.StatusCode == http.StatusNotModified {
70216		if res.Body != nil {
70217			res.Body.Close()
70218		}
70219		return nil, &googleapi.Error{
70220			Code:   res.StatusCode,
70221			Header: res.Header,
70222		}
70223	}
70224	if err != nil {
70225		return nil, err
70226	}
70227	defer googleapi.CloseBody(res)
70228	if err := googleapi.CheckResponse(res); err != nil {
70229		return nil, err
70230	}
70231	ret := &Operation{
70232		ServerResponse: googleapi.ServerResponse{
70233			Header:         res.Header,
70234			HTTPStatusCode: res.StatusCode,
70235		},
70236	}
70237	target := &ret
70238	if err := gensupport.DecodeResponse(target, res); err != nil {
70239		return nil, err
70240	}
70241	return ret, nil
70242	// {
70243	//   "description": "Updates the specified forwarding rule with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules. Currently, you can only patch the network_tier field.",
70244	//   "httpMethod": "PATCH",
70245	//   "id": "compute.globalForwardingRules.patch",
70246	//   "parameterOrder": [
70247	//     "project",
70248	//     "forwardingRule"
70249	//   ],
70250	//   "parameters": {
70251	//     "forwardingRule": {
70252	//       "description": "Name of the ForwardingRule resource to patch.",
70253	//       "location": "path",
70254	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
70255	//       "required": true,
70256	//       "type": "string"
70257	//     },
70258	//     "project": {
70259	//       "description": "Project ID for this request.",
70260	//       "location": "path",
70261	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70262	//       "required": true,
70263	//       "type": "string"
70264	//     },
70265	//     "requestId": {
70266	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
70267	//       "location": "query",
70268	//       "type": "string"
70269	//     }
70270	//   },
70271	//   "path": "projects/{project}/global/forwardingRules/{forwardingRule}",
70272	//   "request": {
70273	//     "$ref": "ForwardingRule"
70274	//   },
70275	//   "response": {
70276	//     "$ref": "Operation"
70277	//   },
70278	//   "scopes": [
70279	//     "https://www.googleapis.com/auth/cloud-platform",
70280	//     "https://www.googleapis.com/auth/compute"
70281	//   ]
70282	// }
70283
70284}
70285
70286// method id "compute.globalForwardingRules.setLabels":
70287
70288type GlobalForwardingRulesSetLabelsCall struct {
70289	s                      *Service
70290	project                string
70291	resource               string
70292	globalsetlabelsrequest *GlobalSetLabelsRequest
70293	urlParams_             gensupport.URLParams
70294	ctx_                   context.Context
70295	header_                http.Header
70296}
70297
70298// SetLabels: Sets the labels on the specified resource. To learn more
70299// about labels, read the Labeling Resources documentation.
70300func (r *GlobalForwardingRulesService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *GlobalForwardingRulesSetLabelsCall {
70301	c := &GlobalForwardingRulesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70302	c.project = project
70303	c.resource = resource
70304	c.globalsetlabelsrequest = globalsetlabelsrequest
70305	return c
70306}
70307
70308// Fields allows partial responses to be retrieved. See
70309// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70310// for more information.
70311func (c *GlobalForwardingRulesSetLabelsCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesSetLabelsCall {
70312	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70313	return c
70314}
70315
70316// Context sets the context to be used in this call's Do method. Any
70317// pending HTTP request will be aborted if the provided context is
70318// canceled.
70319func (c *GlobalForwardingRulesSetLabelsCall) Context(ctx context.Context) *GlobalForwardingRulesSetLabelsCall {
70320	c.ctx_ = ctx
70321	return c
70322}
70323
70324// Header returns an http.Header that can be modified by the caller to
70325// add HTTP headers to the request.
70326func (c *GlobalForwardingRulesSetLabelsCall) Header() http.Header {
70327	if c.header_ == nil {
70328		c.header_ = make(http.Header)
70329	}
70330	return c.header_
70331}
70332
70333func (c *GlobalForwardingRulesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
70334	reqHeaders := make(http.Header)
70335	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
70336	for k, v := range c.header_ {
70337		reqHeaders[k] = v
70338	}
70339	reqHeaders.Set("User-Agent", c.s.userAgent())
70340	var body io.Reader = nil
70341	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
70342	if err != nil {
70343		return nil, err
70344	}
70345	reqHeaders.Set("Content-Type", "application/json")
70346	c.urlParams_.Set("alt", alt)
70347	c.urlParams_.Set("prettyPrint", "false")
70348	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/forwardingRules/{resource}/setLabels")
70349	urls += "?" + c.urlParams_.Encode()
70350	req, err := http.NewRequest("POST", urls, body)
70351	if err != nil {
70352		return nil, err
70353	}
70354	req.Header = reqHeaders
70355	googleapi.Expand(req.URL, map[string]string{
70356		"project":  c.project,
70357		"resource": c.resource,
70358	})
70359	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70360}
70361
70362// Do executes the "compute.globalForwardingRules.setLabels" call.
70363// Exactly one of *Operation or error will be non-nil. Any non-2xx
70364// status code is an error. Response headers are in either
70365// *Operation.ServerResponse.Header or (if a response was returned at
70366// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
70367// to check whether the returned error was because
70368// http.StatusNotModified was returned.
70369func (c *GlobalForwardingRulesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
70370	gensupport.SetOptions(c.urlParams_, opts...)
70371	res, err := c.doRequest("json")
70372	if res != nil && res.StatusCode == http.StatusNotModified {
70373		if res.Body != nil {
70374			res.Body.Close()
70375		}
70376		return nil, &googleapi.Error{
70377			Code:   res.StatusCode,
70378			Header: res.Header,
70379		}
70380	}
70381	if err != nil {
70382		return nil, err
70383	}
70384	defer googleapi.CloseBody(res)
70385	if err := googleapi.CheckResponse(res); err != nil {
70386		return nil, err
70387	}
70388	ret := &Operation{
70389		ServerResponse: googleapi.ServerResponse{
70390			Header:         res.Header,
70391			HTTPStatusCode: res.StatusCode,
70392		},
70393	}
70394	target := &ret
70395	if err := gensupport.DecodeResponse(target, res); err != nil {
70396		return nil, err
70397	}
70398	return ret, nil
70399	// {
70400	//   "description": "Sets the labels on the specified resource. To learn more about labels, read the Labeling Resources documentation.",
70401	//   "httpMethod": "POST",
70402	//   "id": "compute.globalForwardingRules.setLabels",
70403	//   "parameterOrder": [
70404	//     "project",
70405	//     "resource"
70406	//   ],
70407	//   "parameters": {
70408	//     "project": {
70409	//       "description": "Project ID for this request.",
70410	//       "location": "path",
70411	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70412	//       "required": true,
70413	//       "type": "string"
70414	//     },
70415	//     "resource": {
70416	//       "description": "Name or id of the resource for this request.",
70417	//       "location": "path",
70418	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
70419	//       "required": true,
70420	//       "type": "string"
70421	//     }
70422	//   },
70423	//   "path": "projects/{project}/global/forwardingRules/{resource}/setLabels",
70424	//   "request": {
70425	//     "$ref": "GlobalSetLabelsRequest"
70426	//   },
70427	//   "response": {
70428	//     "$ref": "Operation"
70429	//   },
70430	//   "scopes": [
70431	//     "https://www.googleapis.com/auth/cloud-platform",
70432	//     "https://www.googleapis.com/auth/compute"
70433	//   ]
70434	// }
70435
70436}
70437
70438// method id "compute.globalForwardingRules.setTarget":
70439
70440type GlobalForwardingRulesSetTargetCall struct {
70441	s               *Service
70442	project         string
70443	forwardingRule  string
70444	targetreference *TargetReference
70445	urlParams_      gensupport.URLParams
70446	ctx_            context.Context
70447	header_         http.Header
70448}
70449
70450// SetTarget: Changes target URL for the GlobalForwardingRule resource.
70451// The new target should be of the same type as the old target.
70452// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/setTarget
70453func (r *GlobalForwardingRulesService) SetTarget(project string, forwardingRule string, targetreference *TargetReference) *GlobalForwardingRulesSetTargetCall {
70454	c := &GlobalForwardingRulesSetTargetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70455	c.project = project
70456	c.forwardingRule = forwardingRule
70457	c.targetreference = targetreference
70458	return c
70459}
70460
70461// RequestId sets the optional parameter "requestId": An optional
70462// request ID to identify requests. Specify a unique request ID so that
70463// if you must retry your request, the server will know to ignore the
70464// request if it has already been completed.
70465//
70466// For example, consider a situation where you make an initial request
70467// and the request times out. If you make the request again with the
70468// same request ID, the server can check if original operation with the
70469// same request ID was received, and if so, will ignore the second
70470// request. This prevents clients from accidentally creating duplicate
70471// commitments.
70472//
70473// The request ID must be a valid UUID with the exception that zero UUID
70474// is not supported (00000000-0000-0000-0000-000000000000).
70475func (c *GlobalForwardingRulesSetTargetCall) RequestId(requestId string) *GlobalForwardingRulesSetTargetCall {
70476	c.urlParams_.Set("requestId", requestId)
70477	return c
70478}
70479
70480// Fields allows partial responses to be retrieved. See
70481// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70482// for more information.
70483func (c *GlobalForwardingRulesSetTargetCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesSetTargetCall {
70484	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70485	return c
70486}
70487
70488// Context sets the context to be used in this call's Do method. Any
70489// pending HTTP request will be aborted if the provided context is
70490// canceled.
70491func (c *GlobalForwardingRulesSetTargetCall) Context(ctx context.Context) *GlobalForwardingRulesSetTargetCall {
70492	c.ctx_ = ctx
70493	return c
70494}
70495
70496// Header returns an http.Header that can be modified by the caller to
70497// add HTTP headers to the request.
70498func (c *GlobalForwardingRulesSetTargetCall) Header() http.Header {
70499	if c.header_ == nil {
70500		c.header_ = make(http.Header)
70501	}
70502	return c.header_
70503}
70504
70505func (c *GlobalForwardingRulesSetTargetCall) doRequest(alt string) (*http.Response, error) {
70506	reqHeaders := make(http.Header)
70507	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
70508	for k, v := range c.header_ {
70509		reqHeaders[k] = v
70510	}
70511	reqHeaders.Set("User-Agent", c.s.userAgent())
70512	var body io.Reader = nil
70513	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetreference)
70514	if err != nil {
70515		return nil, err
70516	}
70517	reqHeaders.Set("Content-Type", "application/json")
70518	c.urlParams_.Set("alt", alt)
70519	c.urlParams_.Set("prettyPrint", "false")
70520	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/forwardingRules/{forwardingRule}/setTarget")
70521	urls += "?" + c.urlParams_.Encode()
70522	req, err := http.NewRequest("POST", urls, body)
70523	if err != nil {
70524		return nil, err
70525	}
70526	req.Header = reqHeaders
70527	googleapi.Expand(req.URL, map[string]string{
70528		"project":        c.project,
70529		"forwardingRule": c.forwardingRule,
70530	})
70531	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70532}
70533
70534// Do executes the "compute.globalForwardingRules.setTarget" call.
70535// Exactly one of *Operation or error will be non-nil. Any non-2xx
70536// status code is an error. Response headers are in either
70537// *Operation.ServerResponse.Header or (if a response was returned at
70538// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
70539// to check whether the returned error was because
70540// http.StatusNotModified was returned.
70541func (c *GlobalForwardingRulesSetTargetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
70542	gensupport.SetOptions(c.urlParams_, opts...)
70543	res, err := c.doRequest("json")
70544	if res != nil && res.StatusCode == http.StatusNotModified {
70545		if res.Body != nil {
70546			res.Body.Close()
70547		}
70548		return nil, &googleapi.Error{
70549			Code:   res.StatusCode,
70550			Header: res.Header,
70551		}
70552	}
70553	if err != nil {
70554		return nil, err
70555	}
70556	defer googleapi.CloseBody(res)
70557	if err := googleapi.CheckResponse(res); err != nil {
70558		return nil, err
70559	}
70560	ret := &Operation{
70561		ServerResponse: googleapi.ServerResponse{
70562			Header:         res.Header,
70563			HTTPStatusCode: res.StatusCode,
70564		},
70565	}
70566	target := &ret
70567	if err := gensupport.DecodeResponse(target, res); err != nil {
70568		return nil, err
70569	}
70570	return ret, nil
70571	// {
70572	//   "description": "Changes target URL for the GlobalForwardingRule resource. The new target should be of the same type as the old target.",
70573	//   "httpMethod": "POST",
70574	//   "id": "compute.globalForwardingRules.setTarget",
70575	//   "parameterOrder": [
70576	//     "project",
70577	//     "forwardingRule"
70578	//   ],
70579	//   "parameters": {
70580	//     "forwardingRule": {
70581	//       "description": "Name of the ForwardingRule resource in which target is to be set.",
70582	//       "location": "path",
70583	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
70584	//       "required": true,
70585	//       "type": "string"
70586	//     },
70587	//     "project": {
70588	//       "description": "Project ID for this request.",
70589	//       "location": "path",
70590	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70591	//       "required": true,
70592	//       "type": "string"
70593	//     },
70594	//     "requestId": {
70595	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
70596	//       "location": "query",
70597	//       "type": "string"
70598	//     }
70599	//   },
70600	//   "path": "projects/{project}/global/forwardingRules/{forwardingRule}/setTarget",
70601	//   "request": {
70602	//     "$ref": "TargetReference"
70603	//   },
70604	//   "response": {
70605	//     "$ref": "Operation"
70606	//   },
70607	//   "scopes": [
70608	//     "https://www.googleapis.com/auth/cloud-platform",
70609	//     "https://www.googleapis.com/auth/compute"
70610	//   ]
70611	// }
70612
70613}
70614
70615// method id "compute.globalForwardingRules.testIamPermissions":
70616
70617type GlobalForwardingRulesTestIamPermissionsCall struct {
70618	s                      *Service
70619	project                string
70620	resource               string
70621	testpermissionsrequest *TestPermissionsRequest
70622	urlParams_             gensupport.URLParams
70623	ctx_                   context.Context
70624	header_                http.Header
70625}
70626
70627// TestIamPermissions: Returns permissions that a caller has on the
70628// specified resource.
70629func (r *GlobalForwardingRulesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *GlobalForwardingRulesTestIamPermissionsCall {
70630	c := &GlobalForwardingRulesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70631	c.project = project
70632	c.resource = resource
70633	c.testpermissionsrequest = testpermissionsrequest
70634	return c
70635}
70636
70637// Fields allows partial responses to be retrieved. See
70638// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70639// for more information.
70640func (c *GlobalForwardingRulesTestIamPermissionsCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesTestIamPermissionsCall {
70641	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70642	return c
70643}
70644
70645// Context sets the context to be used in this call's Do method. Any
70646// pending HTTP request will be aborted if the provided context is
70647// canceled.
70648func (c *GlobalForwardingRulesTestIamPermissionsCall) Context(ctx context.Context) *GlobalForwardingRulesTestIamPermissionsCall {
70649	c.ctx_ = ctx
70650	return c
70651}
70652
70653// Header returns an http.Header that can be modified by the caller to
70654// add HTTP headers to the request.
70655func (c *GlobalForwardingRulesTestIamPermissionsCall) Header() http.Header {
70656	if c.header_ == nil {
70657		c.header_ = make(http.Header)
70658	}
70659	return c.header_
70660}
70661
70662func (c *GlobalForwardingRulesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
70663	reqHeaders := make(http.Header)
70664	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
70665	for k, v := range c.header_ {
70666		reqHeaders[k] = v
70667	}
70668	reqHeaders.Set("User-Agent", c.s.userAgent())
70669	var body io.Reader = nil
70670	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
70671	if err != nil {
70672		return nil, err
70673	}
70674	reqHeaders.Set("Content-Type", "application/json")
70675	c.urlParams_.Set("alt", alt)
70676	c.urlParams_.Set("prettyPrint", "false")
70677	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/forwardingRules/{resource}/testIamPermissions")
70678	urls += "?" + c.urlParams_.Encode()
70679	req, err := http.NewRequest("POST", urls, body)
70680	if err != nil {
70681		return nil, err
70682	}
70683	req.Header = reqHeaders
70684	googleapi.Expand(req.URL, map[string]string{
70685		"project":  c.project,
70686		"resource": c.resource,
70687	})
70688	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70689}
70690
70691// Do executes the "compute.globalForwardingRules.testIamPermissions" call.
70692// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
70693// non-2xx status code is an error. Response headers are in either
70694// *TestPermissionsResponse.ServerResponse.Header or (if a response was
70695// returned at all) in error.(*googleapi.Error).Header. Use
70696// googleapi.IsNotModified to check whether the returned error was
70697// because http.StatusNotModified was returned.
70698func (c *GlobalForwardingRulesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
70699	gensupport.SetOptions(c.urlParams_, opts...)
70700	res, err := c.doRequest("json")
70701	if res != nil && res.StatusCode == http.StatusNotModified {
70702		if res.Body != nil {
70703			res.Body.Close()
70704		}
70705		return nil, &googleapi.Error{
70706			Code:   res.StatusCode,
70707			Header: res.Header,
70708		}
70709	}
70710	if err != nil {
70711		return nil, err
70712	}
70713	defer googleapi.CloseBody(res)
70714	if err := googleapi.CheckResponse(res); err != nil {
70715		return nil, err
70716	}
70717	ret := &TestPermissionsResponse{
70718		ServerResponse: googleapi.ServerResponse{
70719			Header:         res.Header,
70720			HTTPStatusCode: res.StatusCode,
70721		},
70722	}
70723	target := &ret
70724	if err := gensupport.DecodeResponse(target, res); err != nil {
70725		return nil, err
70726	}
70727	return ret, nil
70728	// {
70729	//   "description": "Returns permissions that a caller has on the specified resource.",
70730	//   "httpMethod": "POST",
70731	//   "id": "compute.globalForwardingRules.testIamPermissions",
70732	//   "parameterOrder": [
70733	//     "project",
70734	//     "resource"
70735	//   ],
70736	//   "parameters": {
70737	//     "project": {
70738	//       "description": "Project ID for this request.",
70739	//       "location": "path",
70740	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70741	//       "required": true,
70742	//       "type": "string"
70743	//     },
70744	//     "resource": {
70745	//       "description": "Name or id of the resource for this request.",
70746	//       "location": "path",
70747	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
70748	//       "required": true,
70749	//       "type": "string"
70750	//     }
70751	//   },
70752	//   "path": "projects/{project}/global/forwardingRules/{resource}/testIamPermissions",
70753	//   "request": {
70754	//     "$ref": "TestPermissionsRequest"
70755	//   },
70756	//   "response": {
70757	//     "$ref": "TestPermissionsResponse"
70758	//   },
70759	//   "scopes": [
70760	//     "https://www.googleapis.com/auth/cloud-platform",
70761	//     "https://www.googleapis.com/auth/compute",
70762	//     "https://www.googleapis.com/auth/compute.readonly"
70763	//   ]
70764	// }
70765
70766}
70767
70768// method id "compute.globalNetworkEndpointGroups.attachNetworkEndpoints":
70769
70770type GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall struct {
70771	s                                                 *Service
70772	project                                           string
70773	networkEndpointGroup                              string
70774	globalnetworkendpointgroupsattachendpointsrequest *GlobalNetworkEndpointGroupsAttachEndpointsRequest
70775	urlParams_                                        gensupport.URLParams
70776	ctx_                                              context.Context
70777	header_                                           http.Header
70778}
70779
70780// AttachNetworkEndpoints: Attach a network endpoint to the specified
70781// network endpoint group.
70782func (r *GlobalNetworkEndpointGroupsService) AttachNetworkEndpoints(project string, networkEndpointGroup string, globalnetworkendpointgroupsattachendpointsrequest *GlobalNetworkEndpointGroupsAttachEndpointsRequest) *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall {
70783	c := &GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70784	c.project = project
70785	c.networkEndpointGroup = networkEndpointGroup
70786	c.globalnetworkendpointgroupsattachendpointsrequest = globalnetworkendpointgroupsattachendpointsrequest
70787	return c
70788}
70789
70790// RequestId sets the optional parameter "requestId": An optional
70791// request ID to identify requests. Specify a unique request ID so that
70792// if you must retry your request, the server will know to ignore the
70793// request if it has already been completed.
70794//
70795// For example, consider a situation where you make an initial request
70796// and the request times out. If you make the request again with the
70797// same request ID, the server can check if original operation with the
70798// same request ID was received, and if so, will ignore the second
70799// request. This prevents clients from accidentally creating duplicate
70800// commitments.
70801//
70802// The request ID must be a valid UUID with the exception that zero UUID
70803// is not supported (00000000-0000-0000-0000-000000000000).
70804func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) RequestId(requestId string) *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall {
70805	c.urlParams_.Set("requestId", requestId)
70806	return c
70807}
70808
70809// Fields allows partial responses to be retrieved. See
70810// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70811// for more information.
70812func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall {
70813	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70814	return c
70815}
70816
70817// Context sets the context to be used in this call's Do method. Any
70818// pending HTTP request will be aborted if the provided context is
70819// canceled.
70820func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall {
70821	c.ctx_ = ctx
70822	return c
70823}
70824
70825// Header returns an http.Header that can be modified by the caller to
70826// add HTTP headers to the request.
70827func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) Header() http.Header {
70828	if c.header_ == nil {
70829		c.header_ = make(http.Header)
70830	}
70831	return c.header_
70832}
70833
70834func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
70835	reqHeaders := make(http.Header)
70836	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
70837	for k, v := range c.header_ {
70838		reqHeaders[k] = v
70839	}
70840	reqHeaders.Set("User-Agent", c.s.userAgent())
70841	var body io.Reader = nil
70842	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalnetworkendpointgroupsattachendpointsrequest)
70843	if err != nil {
70844		return nil, err
70845	}
70846	reqHeaders.Set("Content-Type", "application/json")
70847	c.urlParams_.Set("alt", alt)
70848	c.urlParams_.Set("prettyPrint", "false")
70849	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints")
70850	urls += "?" + c.urlParams_.Encode()
70851	req, err := http.NewRequest("POST", urls, body)
70852	if err != nil {
70853		return nil, err
70854	}
70855	req.Header = reqHeaders
70856	googleapi.Expand(req.URL, map[string]string{
70857		"project":              c.project,
70858		"networkEndpointGroup": c.networkEndpointGroup,
70859	})
70860	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70861}
70862
70863// Do executes the "compute.globalNetworkEndpointGroups.attachNetworkEndpoints" call.
70864// Exactly one of *Operation or error will be non-nil. Any non-2xx
70865// status code is an error. Response headers are in either
70866// *Operation.ServerResponse.Header or (if a response was returned at
70867// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
70868// to check whether the returned error was because
70869// http.StatusNotModified was returned.
70870func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
70871	gensupport.SetOptions(c.urlParams_, opts...)
70872	res, err := c.doRequest("json")
70873	if res != nil && res.StatusCode == http.StatusNotModified {
70874		if res.Body != nil {
70875			res.Body.Close()
70876		}
70877		return nil, &googleapi.Error{
70878			Code:   res.StatusCode,
70879			Header: res.Header,
70880		}
70881	}
70882	if err != nil {
70883		return nil, err
70884	}
70885	defer googleapi.CloseBody(res)
70886	if err := googleapi.CheckResponse(res); err != nil {
70887		return nil, err
70888	}
70889	ret := &Operation{
70890		ServerResponse: googleapi.ServerResponse{
70891			Header:         res.Header,
70892			HTTPStatusCode: res.StatusCode,
70893		},
70894	}
70895	target := &ret
70896	if err := gensupport.DecodeResponse(target, res); err != nil {
70897		return nil, err
70898	}
70899	return ret, nil
70900	// {
70901	//   "description": "Attach a network endpoint to the specified network endpoint group.",
70902	//   "httpMethod": "POST",
70903	//   "id": "compute.globalNetworkEndpointGroups.attachNetworkEndpoints",
70904	//   "parameterOrder": [
70905	//     "project",
70906	//     "networkEndpointGroup"
70907	//   ],
70908	//   "parameters": {
70909	//     "networkEndpointGroup": {
70910	//       "description": "The name of the network endpoint group where you are attaching network endpoints to. It should comply with RFC1035.",
70911	//       "location": "path",
70912	//       "required": true,
70913	//       "type": "string"
70914	//     },
70915	//     "project": {
70916	//       "description": "Project ID for this request.",
70917	//       "location": "path",
70918	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70919	//       "required": true,
70920	//       "type": "string"
70921	//     },
70922	//     "requestId": {
70923	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
70924	//       "location": "query",
70925	//       "type": "string"
70926	//     }
70927	//   },
70928	//   "path": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints",
70929	//   "request": {
70930	//     "$ref": "GlobalNetworkEndpointGroupsAttachEndpointsRequest"
70931	//   },
70932	//   "response": {
70933	//     "$ref": "Operation"
70934	//   },
70935	//   "scopes": [
70936	//     "https://www.googleapis.com/auth/cloud-platform",
70937	//     "https://www.googleapis.com/auth/compute"
70938	//   ]
70939	// }
70940
70941}
70942
70943// method id "compute.globalNetworkEndpointGroups.delete":
70944
70945type GlobalNetworkEndpointGroupsDeleteCall struct {
70946	s                    *Service
70947	project              string
70948	networkEndpointGroup string
70949	urlParams_           gensupport.URLParams
70950	ctx_                 context.Context
70951	header_              http.Header
70952}
70953
70954// Delete: Deletes the specified network endpoint group.Note that the
70955// NEG cannot be deleted if there are backend services referencing it.
70956func (r *GlobalNetworkEndpointGroupsService) Delete(project string, networkEndpointGroup string) *GlobalNetworkEndpointGroupsDeleteCall {
70957	c := &GlobalNetworkEndpointGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70958	c.project = project
70959	c.networkEndpointGroup = networkEndpointGroup
70960	return c
70961}
70962
70963// RequestId sets the optional parameter "requestId": An optional
70964// request ID to identify requests. Specify a unique request ID so that
70965// if you must retry your request, the server will know to ignore the
70966// request if it has already been completed.
70967//
70968// For example, consider a situation where you make an initial request
70969// and the request times out. If you make the request again with the
70970// same request ID, the server can check if original operation with the
70971// same request ID was received, and if so, will ignore the second
70972// request. This prevents clients from accidentally creating duplicate
70973// commitments.
70974//
70975// The request ID must be a valid UUID with the exception that zero UUID
70976// is not supported (00000000-0000-0000-0000-000000000000).
70977func (c *GlobalNetworkEndpointGroupsDeleteCall) RequestId(requestId string) *GlobalNetworkEndpointGroupsDeleteCall {
70978	c.urlParams_.Set("requestId", requestId)
70979	return c
70980}
70981
70982// Fields allows partial responses to be retrieved. See
70983// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70984// for more information.
70985func (c *GlobalNetworkEndpointGroupsDeleteCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsDeleteCall {
70986	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70987	return c
70988}
70989
70990// Context sets the context to be used in this call's Do method. Any
70991// pending HTTP request will be aborted if the provided context is
70992// canceled.
70993func (c *GlobalNetworkEndpointGroupsDeleteCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsDeleteCall {
70994	c.ctx_ = ctx
70995	return c
70996}
70997
70998// Header returns an http.Header that can be modified by the caller to
70999// add HTTP headers to the request.
71000func (c *GlobalNetworkEndpointGroupsDeleteCall) Header() http.Header {
71001	if c.header_ == nil {
71002		c.header_ = make(http.Header)
71003	}
71004	return c.header_
71005}
71006
71007func (c *GlobalNetworkEndpointGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
71008	reqHeaders := make(http.Header)
71009	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
71010	for k, v := range c.header_ {
71011		reqHeaders[k] = v
71012	}
71013	reqHeaders.Set("User-Agent", c.s.userAgent())
71014	var body io.Reader = nil
71015	c.urlParams_.Set("alt", alt)
71016	c.urlParams_.Set("prettyPrint", "false")
71017	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}")
71018	urls += "?" + c.urlParams_.Encode()
71019	req, err := http.NewRequest("DELETE", urls, body)
71020	if err != nil {
71021		return nil, err
71022	}
71023	req.Header = reqHeaders
71024	googleapi.Expand(req.URL, map[string]string{
71025		"project":              c.project,
71026		"networkEndpointGroup": c.networkEndpointGroup,
71027	})
71028	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71029}
71030
71031// Do executes the "compute.globalNetworkEndpointGroups.delete" call.
71032// Exactly one of *Operation or error will be non-nil. Any non-2xx
71033// status code is an error. Response headers are in either
71034// *Operation.ServerResponse.Header or (if a response was returned at
71035// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
71036// to check whether the returned error was because
71037// http.StatusNotModified was returned.
71038func (c *GlobalNetworkEndpointGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
71039	gensupport.SetOptions(c.urlParams_, opts...)
71040	res, err := c.doRequest("json")
71041	if res != nil && res.StatusCode == http.StatusNotModified {
71042		if res.Body != nil {
71043			res.Body.Close()
71044		}
71045		return nil, &googleapi.Error{
71046			Code:   res.StatusCode,
71047			Header: res.Header,
71048		}
71049	}
71050	if err != nil {
71051		return nil, err
71052	}
71053	defer googleapi.CloseBody(res)
71054	if err := googleapi.CheckResponse(res); err != nil {
71055		return nil, err
71056	}
71057	ret := &Operation{
71058		ServerResponse: googleapi.ServerResponse{
71059			Header:         res.Header,
71060			HTTPStatusCode: res.StatusCode,
71061		},
71062	}
71063	target := &ret
71064	if err := gensupport.DecodeResponse(target, res); err != nil {
71065		return nil, err
71066	}
71067	return ret, nil
71068	// {
71069	//   "description": "Deletes the specified network endpoint group.Note that the NEG cannot be deleted if there are backend services referencing it.",
71070	//   "httpMethod": "DELETE",
71071	//   "id": "compute.globalNetworkEndpointGroups.delete",
71072	//   "parameterOrder": [
71073	//     "project",
71074	//     "networkEndpointGroup"
71075	//   ],
71076	//   "parameters": {
71077	//     "networkEndpointGroup": {
71078	//       "description": "The name of the network endpoint group to delete. It should comply with RFC1035.",
71079	//       "location": "path",
71080	//       "required": true,
71081	//       "type": "string"
71082	//     },
71083	//     "project": {
71084	//       "description": "Project ID for this request.",
71085	//       "location": "path",
71086	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71087	//       "required": true,
71088	//       "type": "string"
71089	//     },
71090	//     "requestId": {
71091	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
71092	//       "location": "query",
71093	//       "type": "string"
71094	//     }
71095	//   },
71096	//   "path": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}",
71097	//   "response": {
71098	//     "$ref": "Operation"
71099	//   },
71100	//   "scopes": [
71101	//     "https://www.googleapis.com/auth/cloud-platform",
71102	//     "https://www.googleapis.com/auth/compute"
71103	//   ]
71104	// }
71105
71106}
71107
71108// method id "compute.globalNetworkEndpointGroups.detachNetworkEndpoints":
71109
71110type GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall struct {
71111	s                                                 *Service
71112	project                                           string
71113	networkEndpointGroup                              string
71114	globalnetworkendpointgroupsdetachendpointsrequest *GlobalNetworkEndpointGroupsDetachEndpointsRequest
71115	urlParams_                                        gensupport.URLParams
71116	ctx_                                              context.Context
71117	header_                                           http.Header
71118}
71119
71120// DetachNetworkEndpoints: Detach the network endpoint from the
71121// specified network endpoint group.
71122func (r *GlobalNetworkEndpointGroupsService) DetachNetworkEndpoints(project string, networkEndpointGroup string, globalnetworkendpointgroupsdetachendpointsrequest *GlobalNetworkEndpointGroupsDetachEndpointsRequest) *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall {
71123	c := &GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71124	c.project = project
71125	c.networkEndpointGroup = networkEndpointGroup
71126	c.globalnetworkendpointgroupsdetachendpointsrequest = globalnetworkendpointgroupsdetachendpointsrequest
71127	return c
71128}
71129
71130// RequestId sets the optional parameter "requestId": An optional
71131// request ID to identify requests. Specify a unique request ID so that
71132// if you must retry your request, the server will know to ignore the
71133// request if it has already been completed.
71134//
71135// For example, consider a situation where you make an initial request
71136// and the request times out. If you make the request again with the
71137// same request ID, the server can check if original operation with the
71138// same request ID was received, and if so, will ignore the second
71139// request. This prevents clients from accidentally creating duplicate
71140// commitments.
71141//
71142// The request ID must be a valid UUID with the exception that zero UUID
71143// is not supported (00000000-0000-0000-0000-000000000000).
71144func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) RequestId(requestId string) *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall {
71145	c.urlParams_.Set("requestId", requestId)
71146	return c
71147}
71148
71149// Fields allows partial responses to be retrieved. See
71150// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71151// for more information.
71152func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall {
71153	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71154	return c
71155}
71156
71157// Context sets the context to be used in this call's Do method. Any
71158// pending HTTP request will be aborted if the provided context is
71159// canceled.
71160func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall {
71161	c.ctx_ = ctx
71162	return c
71163}
71164
71165// Header returns an http.Header that can be modified by the caller to
71166// add HTTP headers to the request.
71167func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) Header() http.Header {
71168	if c.header_ == nil {
71169		c.header_ = make(http.Header)
71170	}
71171	return c.header_
71172}
71173
71174func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
71175	reqHeaders := make(http.Header)
71176	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
71177	for k, v := range c.header_ {
71178		reqHeaders[k] = v
71179	}
71180	reqHeaders.Set("User-Agent", c.s.userAgent())
71181	var body io.Reader = nil
71182	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalnetworkendpointgroupsdetachendpointsrequest)
71183	if err != nil {
71184		return nil, err
71185	}
71186	reqHeaders.Set("Content-Type", "application/json")
71187	c.urlParams_.Set("alt", alt)
71188	c.urlParams_.Set("prettyPrint", "false")
71189	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints")
71190	urls += "?" + c.urlParams_.Encode()
71191	req, err := http.NewRequest("POST", urls, body)
71192	if err != nil {
71193		return nil, err
71194	}
71195	req.Header = reqHeaders
71196	googleapi.Expand(req.URL, map[string]string{
71197		"project":              c.project,
71198		"networkEndpointGroup": c.networkEndpointGroup,
71199	})
71200	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71201}
71202
71203// Do executes the "compute.globalNetworkEndpointGroups.detachNetworkEndpoints" call.
71204// Exactly one of *Operation or error will be non-nil. Any non-2xx
71205// status code is an error. Response headers are in either
71206// *Operation.ServerResponse.Header or (if a response was returned at
71207// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
71208// to check whether the returned error was because
71209// http.StatusNotModified was returned.
71210func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
71211	gensupport.SetOptions(c.urlParams_, opts...)
71212	res, err := c.doRequest("json")
71213	if res != nil && res.StatusCode == http.StatusNotModified {
71214		if res.Body != nil {
71215			res.Body.Close()
71216		}
71217		return nil, &googleapi.Error{
71218			Code:   res.StatusCode,
71219			Header: res.Header,
71220		}
71221	}
71222	if err != nil {
71223		return nil, err
71224	}
71225	defer googleapi.CloseBody(res)
71226	if err := googleapi.CheckResponse(res); err != nil {
71227		return nil, err
71228	}
71229	ret := &Operation{
71230		ServerResponse: googleapi.ServerResponse{
71231			Header:         res.Header,
71232			HTTPStatusCode: res.StatusCode,
71233		},
71234	}
71235	target := &ret
71236	if err := gensupport.DecodeResponse(target, res); err != nil {
71237		return nil, err
71238	}
71239	return ret, nil
71240	// {
71241	//   "description": "Detach the network endpoint from the specified network endpoint group.",
71242	//   "httpMethod": "POST",
71243	//   "id": "compute.globalNetworkEndpointGroups.detachNetworkEndpoints",
71244	//   "parameterOrder": [
71245	//     "project",
71246	//     "networkEndpointGroup"
71247	//   ],
71248	//   "parameters": {
71249	//     "networkEndpointGroup": {
71250	//       "description": "The name of the network endpoint group where you are removing network endpoints. It should comply with RFC1035.",
71251	//       "location": "path",
71252	//       "required": true,
71253	//       "type": "string"
71254	//     },
71255	//     "project": {
71256	//       "description": "Project ID for this request.",
71257	//       "location": "path",
71258	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71259	//       "required": true,
71260	//       "type": "string"
71261	//     },
71262	//     "requestId": {
71263	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
71264	//       "location": "query",
71265	//       "type": "string"
71266	//     }
71267	//   },
71268	//   "path": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints",
71269	//   "request": {
71270	//     "$ref": "GlobalNetworkEndpointGroupsDetachEndpointsRequest"
71271	//   },
71272	//   "response": {
71273	//     "$ref": "Operation"
71274	//   },
71275	//   "scopes": [
71276	//     "https://www.googleapis.com/auth/cloud-platform",
71277	//     "https://www.googleapis.com/auth/compute"
71278	//   ]
71279	// }
71280
71281}
71282
71283// method id "compute.globalNetworkEndpointGroups.get":
71284
71285type GlobalNetworkEndpointGroupsGetCall struct {
71286	s                    *Service
71287	project              string
71288	networkEndpointGroup string
71289	urlParams_           gensupport.URLParams
71290	ifNoneMatch_         string
71291	ctx_                 context.Context
71292	header_              http.Header
71293}
71294
71295// Get: Returns the specified network endpoint group. Gets a list of
71296// available network endpoint groups by making a list() request.
71297func (r *GlobalNetworkEndpointGroupsService) Get(project string, networkEndpointGroup string) *GlobalNetworkEndpointGroupsGetCall {
71298	c := &GlobalNetworkEndpointGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71299	c.project = project
71300	c.networkEndpointGroup = networkEndpointGroup
71301	return c
71302}
71303
71304// Fields allows partial responses to be retrieved. See
71305// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71306// for more information.
71307func (c *GlobalNetworkEndpointGroupsGetCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsGetCall {
71308	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71309	return c
71310}
71311
71312// IfNoneMatch sets the optional parameter which makes the operation
71313// fail if the object's ETag matches the given value. This is useful for
71314// getting updates only after the object has changed since the last
71315// request. Use googleapi.IsNotModified to check whether the response
71316// error from Do is the result of In-None-Match.
71317func (c *GlobalNetworkEndpointGroupsGetCall) IfNoneMatch(entityTag string) *GlobalNetworkEndpointGroupsGetCall {
71318	c.ifNoneMatch_ = entityTag
71319	return c
71320}
71321
71322// Context sets the context to be used in this call's Do method. Any
71323// pending HTTP request will be aborted if the provided context is
71324// canceled.
71325func (c *GlobalNetworkEndpointGroupsGetCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsGetCall {
71326	c.ctx_ = ctx
71327	return c
71328}
71329
71330// Header returns an http.Header that can be modified by the caller to
71331// add HTTP headers to the request.
71332func (c *GlobalNetworkEndpointGroupsGetCall) Header() http.Header {
71333	if c.header_ == nil {
71334		c.header_ = make(http.Header)
71335	}
71336	return c.header_
71337}
71338
71339func (c *GlobalNetworkEndpointGroupsGetCall) doRequest(alt string) (*http.Response, error) {
71340	reqHeaders := make(http.Header)
71341	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
71342	for k, v := range c.header_ {
71343		reqHeaders[k] = v
71344	}
71345	reqHeaders.Set("User-Agent", c.s.userAgent())
71346	if c.ifNoneMatch_ != "" {
71347		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
71348	}
71349	var body io.Reader = nil
71350	c.urlParams_.Set("alt", alt)
71351	c.urlParams_.Set("prettyPrint", "false")
71352	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}")
71353	urls += "?" + c.urlParams_.Encode()
71354	req, err := http.NewRequest("GET", urls, body)
71355	if err != nil {
71356		return nil, err
71357	}
71358	req.Header = reqHeaders
71359	googleapi.Expand(req.URL, map[string]string{
71360		"project":              c.project,
71361		"networkEndpointGroup": c.networkEndpointGroup,
71362	})
71363	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71364}
71365
71366// Do executes the "compute.globalNetworkEndpointGroups.get" call.
71367// Exactly one of *NetworkEndpointGroup or error will be non-nil. Any
71368// non-2xx status code is an error. Response headers are in either
71369// *NetworkEndpointGroup.ServerResponse.Header or (if a response was
71370// returned at all) in error.(*googleapi.Error).Header. Use
71371// googleapi.IsNotModified to check whether the returned error was
71372// because http.StatusNotModified was returned.
71373func (c *GlobalNetworkEndpointGroupsGetCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroup, error) {
71374	gensupport.SetOptions(c.urlParams_, opts...)
71375	res, err := c.doRequest("json")
71376	if res != nil && res.StatusCode == http.StatusNotModified {
71377		if res.Body != nil {
71378			res.Body.Close()
71379		}
71380		return nil, &googleapi.Error{
71381			Code:   res.StatusCode,
71382			Header: res.Header,
71383		}
71384	}
71385	if err != nil {
71386		return nil, err
71387	}
71388	defer googleapi.CloseBody(res)
71389	if err := googleapi.CheckResponse(res); err != nil {
71390		return nil, err
71391	}
71392	ret := &NetworkEndpointGroup{
71393		ServerResponse: googleapi.ServerResponse{
71394			Header:         res.Header,
71395			HTTPStatusCode: res.StatusCode,
71396		},
71397	}
71398	target := &ret
71399	if err := gensupport.DecodeResponse(target, res); err != nil {
71400		return nil, err
71401	}
71402	return ret, nil
71403	// {
71404	//   "description": "Returns the specified network endpoint group. Gets a list of available network endpoint groups by making a list() request.",
71405	//   "httpMethod": "GET",
71406	//   "id": "compute.globalNetworkEndpointGroups.get",
71407	//   "parameterOrder": [
71408	//     "project",
71409	//     "networkEndpointGroup"
71410	//   ],
71411	//   "parameters": {
71412	//     "networkEndpointGroup": {
71413	//       "description": "The name of the network endpoint group. It should comply with RFC1035.",
71414	//       "location": "path",
71415	//       "required": true,
71416	//       "type": "string"
71417	//     },
71418	//     "project": {
71419	//       "description": "Project ID for this request.",
71420	//       "location": "path",
71421	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71422	//       "required": true,
71423	//       "type": "string"
71424	//     }
71425	//   },
71426	//   "path": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}",
71427	//   "response": {
71428	//     "$ref": "NetworkEndpointGroup"
71429	//   },
71430	//   "scopes": [
71431	//     "https://www.googleapis.com/auth/cloud-platform",
71432	//     "https://www.googleapis.com/auth/compute",
71433	//     "https://www.googleapis.com/auth/compute.readonly"
71434	//   ]
71435	// }
71436
71437}
71438
71439// method id "compute.globalNetworkEndpointGroups.insert":
71440
71441type GlobalNetworkEndpointGroupsInsertCall struct {
71442	s                    *Service
71443	project              string
71444	networkendpointgroup *NetworkEndpointGroup
71445	urlParams_           gensupport.URLParams
71446	ctx_                 context.Context
71447	header_              http.Header
71448}
71449
71450// Insert: Creates a network endpoint group in the specified project
71451// using the parameters that are included in the request.
71452func (r *GlobalNetworkEndpointGroupsService) Insert(project string, networkendpointgroup *NetworkEndpointGroup) *GlobalNetworkEndpointGroupsInsertCall {
71453	c := &GlobalNetworkEndpointGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71454	c.project = project
71455	c.networkendpointgroup = networkendpointgroup
71456	return c
71457}
71458
71459// RequestId sets the optional parameter "requestId": An optional
71460// request ID to identify requests. Specify a unique request ID so that
71461// if you must retry your request, the server will know to ignore the
71462// request if it has already been completed.
71463//
71464// For example, consider a situation where you make an initial request
71465// and the request times out. If you make the request again with the
71466// same request ID, the server can check if original operation with the
71467// same request ID was received, and if so, will ignore the second
71468// request. This prevents clients from accidentally creating duplicate
71469// commitments.
71470//
71471// The request ID must be a valid UUID with the exception that zero UUID
71472// is not supported (00000000-0000-0000-0000-000000000000).
71473func (c *GlobalNetworkEndpointGroupsInsertCall) RequestId(requestId string) *GlobalNetworkEndpointGroupsInsertCall {
71474	c.urlParams_.Set("requestId", requestId)
71475	return c
71476}
71477
71478// Fields allows partial responses to be retrieved. See
71479// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71480// for more information.
71481func (c *GlobalNetworkEndpointGroupsInsertCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsInsertCall {
71482	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71483	return c
71484}
71485
71486// Context sets the context to be used in this call's Do method. Any
71487// pending HTTP request will be aborted if the provided context is
71488// canceled.
71489func (c *GlobalNetworkEndpointGroupsInsertCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsInsertCall {
71490	c.ctx_ = ctx
71491	return c
71492}
71493
71494// Header returns an http.Header that can be modified by the caller to
71495// add HTTP headers to the request.
71496func (c *GlobalNetworkEndpointGroupsInsertCall) Header() http.Header {
71497	if c.header_ == nil {
71498		c.header_ = make(http.Header)
71499	}
71500	return c.header_
71501}
71502
71503func (c *GlobalNetworkEndpointGroupsInsertCall) doRequest(alt string) (*http.Response, error) {
71504	reqHeaders := make(http.Header)
71505	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
71506	for k, v := range c.header_ {
71507		reqHeaders[k] = v
71508	}
71509	reqHeaders.Set("User-Agent", c.s.userAgent())
71510	var body io.Reader = nil
71511	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroup)
71512	if err != nil {
71513		return nil, err
71514	}
71515	reqHeaders.Set("Content-Type", "application/json")
71516	c.urlParams_.Set("alt", alt)
71517	c.urlParams_.Set("prettyPrint", "false")
71518	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networkEndpointGroups")
71519	urls += "?" + c.urlParams_.Encode()
71520	req, err := http.NewRequest("POST", urls, body)
71521	if err != nil {
71522		return nil, err
71523	}
71524	req.Header = reqHeaders
71525	googleapi.Expand(req.URL, map[string]string{
71526		"project": c.project,
71527	})
71528	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71529}
71530
71531// Do executes the "compute.globalNetworkEndpointGroups.insert" call.
71532// Exactly one of *Operation or error will be non-nil. Any non-2xx
71533// status code is an error. Response headers are in either
71534// *Operation.ServerResponse.Header or (if a response was returned at
71535// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
71536// to check whether the returned error was because
71537// http.StatusNotModified was returned.
71538func (c *GlobalNetworkEndpointGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
71539	gensupport.SetOptions(c.urlParams_, opts...)
71540	res, err := c.doRequest("json")
71541	if res != nil && res.StatusCode == http.StatusNotModified {
71542		if res.Body != nil {
71543			res.Body.Close()
71544		}
71545		return nil, &googleapi.Error{
71546			Code:   res.StatusCode,
71547			Header: res.Header,
71548		}
71549	}
71550	if err != nil {
71551		return nil, err
71552	}
71553	defer googleapi.CloseBody(res)
71554	if err := googleapi.CheckResponse(res); err != nil {
71555		return nil, err
71556	}
71557	ret := &Operation{
71558		ServerResponse: googleapi.ServerResponse{
71559			Header:         res.Header,
71560			HTTPStatusCode: res.StatusCode,
71561		},
71562	}
71563	target := &ret
71564	if err := gensupport.DecodeResponse(target, res); err != nil {
71565		return nil, err
71566	}
71567	return ret, nil
71568	// {
71569	//   "description": "Creates a network endpoint group in the specified project using the parameters that are included in the request.",
71570	//   "httpMethod": "POST",
71571	//   "id": "compute.globalNetworkEndpointGroups.insert",
71572	//   "parameterOrder": [
71573	//     "project"
71574	//   ],
71575	//   "parameters": {
71576	//     "project": {
71577	//       "description": "Project ID for this request.",
71578	//       "location": "path",
71579	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71580	//       "required": true,
71581	//       "type": "string"
71582	//     },
71583	//     "requestId": {
71584	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
71585	//       "location": "query",
71586	//       "type": "string"
71587	//     }
71588	//   },
71589	//   "path": "projects/{project}/global/networkEndpointGroups",
71590	//   "request": {
71591	//     "$ref": "NetworkEndpointGroup"
71592	//   },
71593	//   "response": {
71594	//     "$ref": "Operation"
71595	//   },
71596	//   "scopes": [
71597	//     "https://www.googleapis.com/auth/cloud-platform",
71598	//     "https://www.googleapis.com/auth/compute"
71599	//   ]
71600	// }
71601
71602}
71603
71604// method id "compute.globalNetworkEndpointGroups.list":
71605
71606type GlobalNetworkEndpointGroupsListCall struct {
71607	s            *Service
71608	project      string
71609	urlParams_   gensupport.URLParams
71610	ifNoneMatch_ string
71611	ctx_         context.Context
71612	header_      http.Header
71613}
71614
71615// List: Retrieves the list of network endpoint groups that are located
71616// in the specified project.
71617func (r *GlobalNetworkEndpointGroupsService) List(project string) *GlobalNetworkEndpointGroupsListCall {
71618	c := &GlobalNetworkEndpointGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71619	c.project = project
71620	return c
71621}
71622
71623// Filter sets the optional parameter "filter": A filter expression that
71624// filters resources listed in the response. The expression must specify
71625// the field name, a comparison operator, and the value that you want to
71626// use for filtering. The value must be a string, a number, or a
71627// boolean. The comparison operator must be either `=`, `!=`, `>`, or
71628// `<`.
71629//
71630// For example, if you are filtering Compute Engine instances, you can
71631// exclude instances named `example-instance` by specifying `name !=
71632// example-instance`.
71633//
71634// You can also filter nested fields. For example, you could specify
71635// `scheduling.automaticRestart = false` to include instances only if
71636// they are not scheduled for automatic restarts. You can use filtering
71637// on nested fields to filter based on resource labels.
71638//
71639// To filter on multiple expressions, provide each separate expression
71640// within parentheses. For example: ``` (scheduling.automaticRestart =
71641// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
71642// is an `AND` expression. However, you can include `AND` and `OR`
71643// expressions explicitly. For example: ``` (cpuPlatform = "Intel
71644// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
71645// (scheduling.automaticRestart = true) ```
71646func (c *GlobalNetworkEndpointGroupsListCall) Filter(filter string) *GlobalNetworkEndpointGroupsListCall {
71647	c.urlParams_.Set("filter", filter)
71648	return c
71649}
71650
71651// MaxResults sets the optional parameter "maxResults": The maximum
71652// number of results per page that should be returned. If the number of
71653// available results is larger than `maxResults`, Compute Engine returns
71654// a `nextPageToken` that can be used to get the next page of results in
71655// subsequent list requests. Acceptable values are `0` to `500`,
71656// inclusive. (Default: `500`)
71657func (c *GlobalNetworkEndpointGroupsListCall) MaxResults(maxResults int64) *GlobalNetworkEndpointGroupsListCall {
71658	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
71659	return c
71660}
71661
71662// OrderBy sets the optional parameter "orderBy": Sorts list results by
71663// a certain order. By default, results are returned in alphanumerical
71664// order based on the resource name.
71665//
71666// You can also sort results in descending order based on the creation
71667// timestamp using `orderBy="creationTimestamp desc". This sorts
71668// results based on the `creationTimestamp` field in reverse
71669// chronological order (newest result first). Use this to sort resources
71670// like operations so that the newest operation is returned
71671// first.
71672//
71673// Currently, only sorting by `name` or `creationTimestamp desc` is
71674// supported.
71675func (c *GlobalNetworkEndpointGroupsListCall) OrderBy(orderBy string) *GlobalNetworkEndpointGroupsListCall {
71676	c.urlParams_.Set("orderBy", orderBy)
71677	return c
71678}
71679
71680// PageToken sets the optional parameter "pageToken": Specifies a page
71681// token to use. Set `pageToken` to the `nextPageToken` returned by a
71682// previous list request to get the next page of results.
71683func (c *GlobalNetworkEndpointGroupsListCall) PageToken(pageToken string) *GlobalNetworkEndpointGroupsListCall {
71684	c.urlParams_.Set("pageToken", pageToken)
71685	return c
71686}
71687
71688// ReturnPartialSuccess sets the optional parameter
71689// "returnPartialSuccess": Opt-in for partial success behavior which
71690// provides partial results in case of failure. The default value is
71691// false.
71692func (c *GlobalNetworkEndpointGroupsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalNetworkEndpointGroupsListCall {
71693	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
71694	return c
71695}
71696
71697// Fields allows partial responses to be retrieved. See
71698// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71699// for more information.
71700func (c *GlobalNetworkEndpointGroupsListCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsListCall {
71701	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71702	return c
71703}
71704
71705// IfNoneMatch sets the optional parameter which makes the operation
71706// fail if the object's ETag matches the given value. This is useful for
71707// getting updates only after the object has changed since the last
71708// request. Use googleapi.IsNotModified to check whether the response
71709// error from Do is the result of In-None-Match.
71710func (c *GlobalNetworkEndpointGroupsListCall) IfNoneMatch(entityTag string) *GlobalNetworkEndpointGroupsListCall {
71711	c.ifNoneMatch_ = entityTag
71712	return c
71713}
71714
71715// Context sets the context to be used in this call's Do method. Any
71716// pending HTTP request will be aborted if the provided context is
71717// canceled.
71718func (c *GlobalNetworkEndpointGroupsListCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsListCall {
71719	c.ctx_ = ctx
71720	return c
71721}
71722
71723// Header returns an http.Header that can be modified by the caller to
71724// add HTTP headers to the request.
71725func (c *GlobalNetworkEndpointGroupsListCall) Header() http.Header {
71726	if c.header_ == nil {
71727		c.header_ = make(http.Header)
71728	}
71729	return c.header_
71730}
71731
71732func (c *GlobalNetworkEndpointGroupsListCall) doRequest(alt string) (*http.Response, error) {
71733	reqHeaders := make(http.Header)
71734	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
71735	for k, v := range c.header_ {
71736		reqHeaders[k] = v
71737	}
71738	reqHeaders.Set("User-Agent", c.s.userAgent())
71739	if c.ifNoneMatch_ != "" {
71740		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
71741	}
71742	var body io.Reader = nil
71743	c.urlParams_.Set("alt", alt)
71744	c.urlParams_.Set("prettyPrint", "false")
71745	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networkEndpointGroups")
71746	urls += "?" + c.urlParams_.Encode()
71747	req, err := http.NewRequest("GET", urls, body)
71748	if err != nil {
71749		return nil, err
71750	}
71751	req.Header = reqHeaders
71752	googleapi.Expand(req.URL, map[string]string{
71753		"project": c.project,
71754	})
71755	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71756}
71757
71758// Do executes the "compute.globalNetworkEndpointGroups.list" call.
71759// Exactly one of *NetworkEndpointGroupList or error will be non-nil.
71760// Any non-2xx status code is an error. Response headers are in either
71761// *NetworkEndpointGroupList.ServerResponse.Header or (if a response was
71762// returned at all) in error.(*googleapi.Error).Header. Use
71763// googleapi.IsNotModified to check whether the returned error was
71764// because http.StatusNotModified was returned.
71765func (c *GlobalNetworkEndpointGroupsListCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupList, error) {
71766	gensupport.SetOptions(c.urlParams_, opts...)
71767	res, err := c.doRequest("json")
71768	if res != nil && res.StatusCode == http.StatusNotModified {
71769		if res.Body != nil {
71770			res.Body.Close()
71771		}
71772		return nil, &googleapi.Error{
71773			Code:   res.StatusCode,
71774			Header: res.Header,
71775		}
71776	}
71777	if err != nil {
71778		return nil, err
71779	}
71780	defer googleapi.CloseBody(res)
71781	if err := googleapi.CheckResponse(res); err != nil {
71782		return nil, err
71783	}
71784	ret := &NetworkEndpointGroupList{
71785		ServerResponse: googleapi.ServerResponse{
71786			Header:         res.Header,
71787			HTTPStatusCode: res.StatusCode,
71788		},
71789	}
71790	target := &ret
71791	if err := gensupport.DecodeResponse(target, res); err != nil {
71792		return nil, err
71793	}
71794	return ret, nil
71795	// {
71796	//   "description": "Retrieves the list of network endpoint groups that are located in the specified project.",
71797	//   "httpMethod": "GET",
71798	//   "id": "compute.globalNetworkEndpointGroups.list",
71799	//   "parameterOrder": [
71800	//     "project"
71801	//   ],
71802	//   "parameters": {
71803	//     "filter": {
71804	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
71805	//       "location": "query",
71806	//       "type": "string"
71807	//     },
71808	//     "maxResults": {
71809	//       "default": "500",
71810	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
71811	//       "format": "uint32",
71812	//       "location": "query",
71813	//       "minimum": "0",
71814	//       "type": "integer"
71815	//     },
71816	//     "orderBy": {
71817	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
71818	//       "location": "query",
71819	//       "type": "string"
71820	//     },
71821	//     "pageToken": {
71822	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
71823	//       "location": "query",
71824	//       "type": "string"
71825	//     },
71826	//     "project": {
71827	//       "description": "Project ID for this request.",
71828	//       "location": "path",
71829	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71830	//       "required": true,
71831	//       "type": "string"
71832	//     },
71833	//     "returnPartialSuccess": {
71834	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
71835	//       "location": "query",
71836	//       "type": "boolean"
71837	//     }
71838	//   },
71839	//   "path": "projects/{project}/global/networkEndpointGroups",
71840	//   "response": {
71841	//     "$ref": "NetworkEndpointGroupList"
71842	//   },
71843	//   "scopes": [
71844	//     "https://www.googleapis.com/auth/cloud-platform",
71845	//     "https://www.googleapis.com/auth/compute",
71846	//     "https://www.googleapis.com/auth/compute.readonly"
71847	//   ]
71848	// }
71849
71850}
71851
71852// Pages invokes f for each page of results.
71853// A non-nil error returned from f will halt the iteration.
71854// The provided context supersedes any context provided to the Context method.
71855func (c *GlobalNetworkEndpointGroupsListCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupList) error) error {
71856	c.ctx_ = ctx
71857	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
71858	for {
71859		x, err := c.Do()
71860		if err != nil {
71861			return err
71862		}
71863		if err := f(x); err != nil {
71864			return err
71865		}
71866		if x.NextPageToken == "" {
71867			return nil
71868		}
71869		c.PageToken(x.NextPageToken)
71870	}
71871}
71872
71873// method id "compute.globalNetworkEndpointGroups.listNetworkEndpoints":
71874
71875type GlobalNetworkEndpointGroupsListNetworkEndpointsCall struct {
71876	s                    *Service
71877	project              string
71878	networkEndpointGroup string
71879	urlParams_           gensupport.URLParams
71880	ctx_                 context.Context
71881	header_              http.Header
71882}
71883
71884// ListNetworkEndpoints: Lists the network endpoints in the specified
71885// network endpoint group.
71886func (r *GlobalNetworkEndpointGroupsService) ListNetworkEndpoints(project string, networkEndpointGroup string) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
71887	c := &GlobalNetworkEndpointGroupsListNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71888	c.project = project
71889	c.networkEndpointGroup = networkEndpointGroup
71890	return c
71891}
71892
71893// Filter sets the optional parameter "filter": A filter expression that
71894// filters resources listed in the response. The expression must specify
71895// the field name, a comparison operator, and the value that you want to
71896// use for filtering. The value must be a string, a number, or a
71897// boolean. The comparison operator must be either `=`, `!=`, `>`, or
71898// `<`.
71899//
71900// For example, if you are filtering Compute Engine instances, you can
71901// exclude instances named `example-instance` by specifying `name !=
71902// example-instance`.
71903//
71904// You can also filter nested fields. For example, you could specify
71905// `scheduling.automaticRestart = false` to include instances only if
71906// they are not scheduled for automatic restarts. You can use filtering
71907// on nested fields to filter based on resource labels.
71908//
71909// To filter on multiple expressions, provide each separate expression
71910// within parentheses. For example: ``` (scheduling.automaticRestart =
71911// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
71912// is an `AND` expression. However, you can include `AND` and `OR`
71913// expressions explicitly. For example: ``` (cpuPlatform = "Intel
71914// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
71915// (scheduling.automaticRestart = true) ```
71916func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Filter(filter string) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
71917	c.urlParams_.Set("filter", filter)
71918	return c
71919}
71920
71921// MaxResults sets the optional parameter "maxResults": The maximum
71922// number of results per page that should be returned. If the number of
71923// available results is larger than `maxResults`, Compute Engine returns
71924// a `nextPageToken` that can be used to get the next page of results in
71925// subsequent list requests. Acceptable values are `0` to `500`,
71926// inclusive. (Default: `500`)
71927func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) MaxResults(maxResults int64) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
71928	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
71929	return c
71930}
71931
71932// OrderBy sets the optional parameter "orderBy": Sorts list results by
71933// a certain order. By default, results are returned in alphanumerical
71934// order based on the resource name.
71935//
71936// You can also sort results in descending order based on the creation
71937// timestamp using `orderBy="creationTimestamp desc". This sorts
71938// results based on the `creationTimestamp` field in reverse
71939// chronological order (newest result first). Use this to sort resources
71940// like operations so that the newest operation is returned
71941// first.
71942//
71943// Currently, only sorting by `name` or `creationTimestamp desc` is
71944// supported.
71945func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) OrderBy(orderBy string) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
71946	c.urlParams_.Set("orderBy", orderBy)
71947	return c
71948}
71949
71950// PageToken sets the optional parameter "pageToken": Specifies a page
71951// token to use. Set `pageToken` to the `nextPageToken` returned by a
71952// previous list request to get the next page of results.
71953func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) PageToken(pageToken string) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
71954	c.urlParams_.Set("pageToken", pageToken)
71955	return c
71956}
71957
71958// ReturnPartialSuccess sets the optional parameter
71959// "returnPartialSuccess": Opt-in for partial success behavior which
71960// provides partial results in case of failure. The default value is
71961// false.
71962func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
71963	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
71964	return c
71965}
71966
71967// Fields allows partial responses to be retrieved. See
71968// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71969// for more information.
71970func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
71971	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71972	return c
71973}
71974
71975// Context sets the context to be used in this call's Do method. Any
71976// pending HTTP request will be aborted if the provided context is
71977// canceled.
71978func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
71979	c.ctx_ = ctx
71980	return c
71981}
71982
71983// Header returns an http.Header that can be modified by the caller to
71984// add HTTP headers to the request.
71985func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Header() http.Header {
71986	if c.header_ == nil {
71987		c.header_ = make(http.Header)
71988	}
71989	return c.header_
71990}
71991
71992func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
71993	reqHeaders := make(http.Header)
71994	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
71995	for k, v := range c.header_ {
71996		reqHeaders[k] = v
71997	}
71998	reqHeaders.Set("User-Agent", c.s.userAgent())
71999	var body io.Reader = nil
72000	c.urlParams_.Set("alt", alt)
72001	c.urlParams_.Set("prettyPrint", "false")
72002	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints")
72003	urls += "?" + c.urlParams_.Encode()
72004	req, err := http.NewRequest("POST", urls, body)
72005	if err != nil {
72006		return nil, err
72007	}
72008	req.Header = reqHeaders
72009	googleapi.Expand(req.URL, map[string]string{
72010		"project":              c.project,
72011		"networkEndpointGroup": c.networkEndpointGroup,
72012	})
72013	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72014}
72015
72016// Do executes the "compute.globalNetworkEndpointGroups.listNetworkEndpoints" call.
72017// Exactly one of *NetworkEndpointGroupsListNetworkEndpoints or error
72018// will be non-nil. Any non-2xx status code is an error. Response
72019// headers are in either
72020// *NetworkEndpointGroupsListNetworkEndpoints.ServerResponse.Header or
72021// (if a response was returned at all) in
72022// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
72023// whether the returned error was because http.StatusNotModified was
72024// returned.
72025func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupsListNetworkEndpoints, error) {
72026	gensupport.SetOptions(c.urlParams_, opts...)
72027	res, err := c.doRequest("json")
72028	if res != nil && res.StatusCode == http.StatusNotModified {
72029		if res.Body != nil {
72030			res.Body.Close()
72031		}
72032		return nil, &googleapi.Error{
72033			Code:   res.StatusCode,
72034			Header: res.Header,
72035		}
72036	}
72037	if err != nil {
72038		return nil, err
72039	}
72040	defer googleapi.CloseBody(res)
72041	if err := googleapi.CheckResponse(res); err != nil {
72042		return nil, err
72043	}
72044	ret := &NetworkEndpointGroupsListNetworkEndpoints{
72045		ServerResponse: googleapi.ServerResponse{
72046			Header:         res.Header,
72047			HTTPStatusCode: res.StatusCode,
72048		},
72049	}
72050	target := &ret
72051	if err := gensupport.DecodeResponse(target, res); err != nil {
72052		return nil, err
72053	}
72054	return ret, nil
72055	// {
72056	//   "description": "Lists the network endpoints in the specified network endpoint group.",
72057	//   "httpMethod": "POST",
72058	//   "id": "compute.globalNetworkEndpointGroups.listNetworkEndpoints",
72059	//   "parameterOrder": [
72060	//     "project",
72061	//     "networkEndpointGroup"
72062	//   ],
72063	//   "parameters": {
72064	//     "filter": {
72065	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
72066	//       "location": "query",
72067	//       "type": "string"
72068	//     },
72069	//     "maxResults": {
72070	//       "default": "500",
72071	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
72072	//       "format": "uint32",
72073	//       "location": "query",
72074	//       "minimum": "0",
72075	//       "type": "integer"
72076	//     },
72077	//     "networkEndpointGroup": {
72078	//       "description": "The name of the network endpoint group from which you want to generate a list of included network endpoints. It should comply with RFC1035.",
72079	//       "location": "path",
72080	//       "required": true,
72081	//       "type": "string"
72082	//     },
72083	//     "orderBy": {
72084	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
72085	//       "location": "query",
72086	//       "type": "string"
72087	//     },
72088	//     "pageToken": {
72089	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
72090	//       "location": "query",
72091	//       "type": "string"
72092	//     },
72093	//     "project": {
72094	//       "description": "Project ID for this request.",
72095	//       "location": "path",
72096	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72097	//       "required": true,
72098	//       "type": "string"
72099	//     },
72100	//     "returnPartialSuccess": {
72101	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
72102	//       "location": "query",
72103	//       "type": "boolean"
72104	//     }
72105	//   },
72106	//   "path": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints",
72107	//   "response": {
72108	//     "$ref": "NetworkEndpointGroupsListNetworkEndpoints"
72109	//   },
72110	//   "scopes": [
72111	//     "https://www.googleapis.com/auth/cloud-platform",
72112	//     "https://www.googleapis.com/auth/compute",
72113	//     "https://www.googleapis.com/auth/compute.readonly"
72114	//   ]
72115	// }
72116
72117}
72118
72119// Pages invokes f for each page of results.
72120// A non-nil error returned from f will halt the iteration.
72121// The provided context supersedes any context provided to the Context method.
72122func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupsListNetworkEndpoints) error) error {
72123	c.ctx_ = ctx
72124	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
72125	for {
72126		x, err := c.Do()
72127		if err != nil {
72128			return err
72129		}
72130		if err := f(x); err != nil {
72131			return err
72132		}
72133		if x.NextPageToken == "" {
72134			return nil
72135		}
72136		c.PageToken(x.NextPageToken)
72137	}
72138}
72139
72140// method id "compute.globalOperations.aggregatedList":
72141
72142type GlobalOperationsAggregatedListCall struct {
72143	s            *Service
72144	project      string
72145	urlParams_   gensupport.URLParams
72146	ifNoneMatch_ string
72147	ctx_         context.Context
72148	header_      http.Header
72149}
72150
72151// AggregatedList: Retrieves an aggregated list of all operations.
72152// For details, see https://cloud.google.com/compute/docs/reference/latest/globalOperations/aggregatedList
72153func (r *GlobalOperationsService) AggregatedList(project string) *GlobalOperationsAggregatedListCall {
72154	c := &GlobalOperationsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72155	c.project = project
72156	return c
72157}
72158
72159// Filter sets the optional parameter "filter": A filter expression that
72160// filters resources listed in the response. The expression must specify
72161// the field name, a comparison operator, and the value that you want to
72162// use for filtering. The value must be a string, a number, or a
72163// boolean. The comparison operator must be either `=`, `!=`, `>`, or
72164// `<`.
72165//
72166// For example, if you are filtering Compute Engine instances, you can
72167// exclude instances named `example-instance` by specifying `name !=
72168// example-instance`.
72169//
72170// You can also filter nested fields. For example, you could specify
72171// `scheduling.automaticRestart = false` to include instances only if
72172// they are not scheduled for automatic restarts. You can use filtering
72173// on nested fields to filter based on resource labels.
72174//
72175// To filter on multiple expressions, provide each separate expression
72176// within parentheses. For example: ``` (scheduling.automaticRestart =
72177// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
72178// is an `AND` expression. However, you can include `AND` and `OR`
72179// expressions explicitly. For example: ``` (cpuPlatform = "Intel
72180// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
72181// (scheduling.automaticRestart = true) ```
72182func (c *GlobalOperationsAggregatedListCall) Filter(filter string) *GlobalOperationsAggregatedListCall {
72183	c.urlParams_.Set("filter", filter)
72184	return c
72185}
72186
72187// IncludeAllScopes sets the optional parameter "includeAllScopes":
72188// Indicates whether every visible scope for each scope type (zone,
72189// region, global) should be included in the response. For new resource
72190// types added after this field, the flag has no effect as new resource
72191// types will always include every visible scope for each scope type in
72192// response. For resource types which predate this field, if this flag
72193// is omitted or false, only scopes of the scope types where the
72194// resource type is expected to be found will be included.
72195func (c *GlobalOperationsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *GlobalOperationsAggregatedListCall {
72196	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
72197	return c
72198}
72199
72200// MaxResults sets the optional parameter "maxResults": The maximum
72201// number of results per page that should be returned. If the number of
72202// available results is larger than `maxResults`, Compute Engine returns
72203// a `nextPageToken` that can be used to get the next page of results in
72204// subsequent list requests. Acceptable values are `0` to `500`,
72205// inclusive. (Default: `500`)
72206func (c *GlobalOperationsAggregatedListCall) MaxResults(maxResults int64) *GlobalOperationsAggregatedListCall {
72207	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
72208	return c
72209}
72210
72211// OrderBy sets the optional parameter "orderBy": Sorts list results by
72212// a certain order. By default, results are returned in alphanumerical
72213// order based on the resource name.
72214//
72215// You can also sort results in descending order based on the creation
72216// timestamp using `orderBy="creationTimestamp desc". This sorts
72217// results based on the `creationTimestamp` field in reverse
72218// chronological order (newest result first). Use this to sort resources
72219// like operations so that the newest operation is returned
72220// first.
72221//
72222// Currently, only sorting by `name` or `creationTimestamp desc` is
72223// supported.
72224func (c *GlobalOperationsAggregatedListCall) OrderBy(orderBy string) *GlobalOperationsAggregatedListCall {
72225	c.urlParams_.Set("orderBy", orderBy)
72226	return c
72227}
72228
72229// PageToken sets the optional parameter "pageToken": Specifies a page
72230// token to use. Set `pageToken` to the `nextPageToken` returned by a
72231// previous list request to get the next page of results.
72232func (c *GlobalOperationsAggregatedListCall) PageToken(pageToken string) *GlobalOperationsAggregatedListCall {
72233	c.urlParams_.Set("pageToken", pageToken)
72234	return c
72235}
72236
72237// ReturnPartialSuccess sets the optional parameter
72238// "returnPartialSuccess": Opt-in for partial success behavior which
72239// provides partial results in case of failure. The default value is
72240// false.
72241func (c *GlobalOperationsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalOperationsAggregatedListCall {
72242	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
72243	return c
72244}
72245
72246// Fields allows partial responses to be retrieved. See
72247// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72248// for more information.
72249func (c *GlobalOperationsAggregatedListCall) Fields(s ...googleapi.Field) *GlobalOperationsAggregatedListCall {
72250	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72251	return c
72252}
72253
72254// IfNoneMatch sets the optional parameter which makes the operation
72255// fail if the object's ETag matches the given value. This is useful for
72256// getting updates only after the object has changed since the last
72257// request. Use googleapi.IsNotModified to check whether the response
72258// error from Do is the result of In-None-Match.
72259func (c *GlobalOperationsAggregatedListCall) IfNoneMatch(entityTag string) *GlobalOperationsAggregatedListCall {
72260	c.ifNoneMatch_ = entityTag
72261	return c
72262}
72263
72264// Context sets the context to be used in this call's Do method. Any
72265// pending HTTP request will be aborted if the provided context is
72266// canceled.
72267func (c *GlobalOperationsAggregatedListCall) Context(ctx context.Context) *GlobalOperationsAggregatedListCall {
72268	c.ctx_ = ctx
72269	return c
72270}
72271
72272// Header returns an http.Header that can be modified by the caller to
72273// add HTTP headers to the request.
72274func (c *GlobalOperationsAggregatedListCall) Header() http.Header {
72275	if c.header_ == nil {
72276		c.header_ = make(http.Header)
72277	}
72278	return c.header_
72279}
72280
72281func (c *GlobalOperationsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
72282	reqHeaders := make(http.Header)
72283	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
72284	for k, v := range c.header_ {
72285		reqHeaders[k] = v
72286	}
72287	reqHeaders.Set("User-Agent", c.s.userAgent())
72288	if c.ifNoneMatch_ != "" {
72289		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
72290	}
72291	var body io.Reader = nil
72292	c.urlParams_.Set("alt", alt)
72293	c.urlParams_.Set("prettyPrint", "false")
72294	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/operations")
72295	urls += "?" + c.urlParams_.Encode()
72296	req, err := http.NewRequest("GET", urls, body)
72297	if err != nil {
72298		return nil, err
72299	}
72300	req.Header = reqHeaders
72301	googleapi.Expand(req.URL, map[string]string{
72302		"project": c.project,
72303	})
72304	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72305}
72306
72307// Do executes the "compute.globalOperations.aggregatedList" call.
72308// Exactly one of *OperationAggregatedList or error will be non-nil. Any
72309// non-2xx status code is an error. Response headers are in either
72310// *OperationAggregatedList.ServerResponse.Header or (if a response was
72311// returned at all) in error.(*googleapi.Error).Header. Use
72312// googleapi.IsNotModified to check whether the returned error was
72313// because http.StatusNotModified was returned.
72314func (c *GlobalOperationsAggregatedListCall) Do(opts ...googleapi.CallOption) (*OperationAggregatedList, error) {
72315	gensupport.SetOptions(c.urlParams_, opts...)
72316	res, err := c.doRequest("json")
72317	if res != nil && res.StatusCode == http.StatusNotModified {
72318		if res.Body != nil {
72319			res.Body.Close()
72320		}
72321		return nil, &googleapi.Error{
72322			Code:   res.StatusCode,
72323			Header: res.Header,
72324		}
72325	}
72326	if err != nil {
72327		return nil, err
72328	}
72329	defer googleapi.CloseBody(res)
72330	if err := googleapi.CheckResponse(res); err != nil {
72331		return nil, err
72332	}
72333	ret := &OperationAggregatedList{
72334		ServerResponse: googleapi.ServerResponse{
72335			Header:         res.Header,
72336			HTTPStatusCode: res.StatusCode,
72337		},
72338	}
72339	target := &ret
72340	if err := gensupport.DecodeResponse(target, res); err != nil {
72341		return nil, err
72342	}
72343	return ret, nil
72344	// {
72345	//   "description": "Retrieves an aggregated list of all operations.",
72346	//   "httpMethod": "GET",
72347	//   "id": "compute.globalOperations.aggregatedList",
72348	//   "parameterOrder": [
72349	//     "project"
72350	//   ],
72351	//   "parameters": {
72352	//     "filter": {
72353	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
72354	//       "location": "query",
72355	//       "type": "string"
72356	//     },
72357	//     "includeAllScopes": {
72358	//       "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.",
72359	//       "location": "query",
72360	//       "type": "boolean"
72361	//     },
72362	//     "maxResults": {
72363	//       "default": "500",
72364	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
72365	//       "format": "uint32",
72366	//       "location": "query",
72367	//       "minimum": "0",
72368	//       "type": "integer"
72369	//     },
72370	//     "orderBy": {
72371	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
72372	//       "location": "query",
72373	//       "type": "string"
72374	//     },
72375	//     "pageToken": {
72376	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
72377	//       "location": "query",
72378	//       "type": "string"
72379	//     },
72380	//     "project": {
72381	//       "description": "Project ID for this request.",
72382	//       "location": "path",
72383	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72384	//       "required": true,
72385	//       "type": "string"
72386	//     },
72387	//     "returnPartialSuccess": {
72388	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
72389	//       "location": "query",
72390	//       "type": "boolean"
72391	//     }
72392	//   },
72393	//   "path": "projects/{project}/aggregated/operations",
72394	//   "response": {
72395	//     "$ref": "OperationAggregatedList"
72396	//   },
72397	//   "scopes": [
72398	//     "https://www.googleapis.com/auth/cloud-platform",
72399	//     "https://www.googleapis.com/auth/compute",
72400	//     "https://www.googleapis.com/auth/compute.readonly"
72401	//   ]
72402	// }
72403
72404}
72405
72406// Pages invokes f for each page of results.
72407// A non-nil error returned from f will halt the iteration.
72408// The provided context supersedes any context provided to the Context method.
72409func (c *GlobalOperationsAggregatedListCall) Pages(ctx context.Context, f func(*OperationAggregatedList) error) error {
72410	c.ctx_ = ctx
72411	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
72412	for {
72413		x, err := c.Do()
72414		if err != nil {
72415			return err
72416		}
72417		if err := f(x); err != nil {
72418			return err
72419		}
72420		if x.NextPageToken == "" {
72421			return nil
72422		}
72423		c.PageToken(x.NextPageToken)
72424	}
72425}
72426
72427// method id "compute.globalOperations.delete":
72428
72429type GlobalOperationsDeleteCall struct {
72430	s          *Service
72431	project    string
72432	operation  string
72433	urlParams_ gensupport.URLParams
72434	ctx_       context.Context
72435	header_    http.Header
72436}
72437
72438// Delete: Deletes the specified Operations resource.
72439// For details, see https://cloud.google.com/compute/docs/reference/latest/globalOperations/delete
72440func (r *GlobalOperationsService) Delete(project string, operation string) *GlobalOperationsDeleteCall {
72441	c := &GlobalOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72442	c.project = project
72443	c.operation = operation
72444	return c
72445}
72446
72447// Fields allows partial responses to be retrieved. See
72448// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72449// for more information.
72450func (c *GlobalOperationsDeleteCall) Fields(s ...googleapi.Field) *GlobalOperationsDeleteCall {
72451	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72452	return c
72453}
72454
72455// Context sets the context to be used in this call's Do method. Any
72456// pending HTTP request will be aborted if the provided context is
72457// canceled.
72458func (c *GlobalOperationsDeleteCall) Context(ctx context.Context) *GlobalOperationsDeleteCall {
72459	c.ctx_ = ctx
72460	return c
72461}
72462
72463// Header returns an http.Header that can be modified by the caller to
72464// add HTTP headers to the request.
72465func (c *GlobalOperationsDeleteCall) Header() http.Header {
72466	if c.header_ == nil {
72467		c.header_ = make(http.Header)
72468	}
72469	return c.header_
72470}
72471
72472func (c *GlobalOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
72473	reqHeaders := make(http.Header)
72474	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
72475	for k, v := range c.header_ {
72476		reqHeaders[k] = v
72477	}
72478	reqHeaders.Set("User-Agent", c.s.userAgent())
72479	var body io.Reader = nil
72480	c.urlParams_.Set("alt", alt)
72481	c.urlParams_.Set("prettyPrint", "false")
72482	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/operations/{operation}")
72483	urls += "?" + c.urlParams_.Encode()
72484	req, err := http.NewRequest("DELETE", urls, body)
72485	if err != nil {
72486		return nil, err
72487	}
72488	req.Header = reqHeaders
72489	googleapi.Expand(req.URL, map[string]string{
72490		"project":   c.project,
72491		"operation": c.operation,
72492	})
72493	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72494}
72495
72496// Do executes the "compute.globalOperations.delete" call.
72497func (c *GlobalOperationsDeleteCall) Do(opts ...googleapi.CallOption) error {
72498	gensupport.SetOptions(c.urlParams_, opts...)
72499	res, err := c.doRequest("json")
72500	if err != nil {
72501		return err
72502	}
72503	defer googleapi.CloseBody(res)
72504	if err := googleapi.CheckResponse(res); err != nil {
72505		return err
72506	}
72507	return nil
72508	// {
72509	//   "description": "Deletes the specified Operations resource.",
72510	//   "httpMethod": "DELETE",
72511	//   "id": "compute.globalOperations.delete",
72512	//   "parameterOrder": [
72513	//     "project",
72514	//     "operation"
72515	//   ],
72516	//   "parameters": {
72517	//     "operation": {
72518	//       "description": "Name of the Operations resource to delete.",
72519	//       "location": "path",
72520	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
72521	//       "required": true,
72522	//       "type": "string"
72523	//     },
72524	//     "project": {
72525	//       "description": "Project ID for this request.",
72526	//       "location": "path",
72527	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72528	//       "required": true,
72529	//       "type": "string"
72530	//     }
72531	//   },
72532	//   "path": "projects/{project}/global/operations/{operation}",
72533	//   "scopes": [
72534	//     "https://www.googleapis.com/auth/cloud-platform",
72535	//     "https://www.googleapis.com/auth/compute"
72536	//   ]
72537	// }
72538
72539}
72540
72541// method id "compute.globalOperations.get":
72542
72543type GlobalOperationsGetCall struct {
72544	s            *Service
72545	project      string
72546	operation    string
72547	urlParams_   gensupport.URLParams
72548	ifNoneMatch_ string
72549	ctx_         context.Context
72550	header_      http.Header
72551}
72552
72553// Get: Retrieves the specified Operations resource. Gets a list of
72554// operations by making a `list()` request.
72555// For details, see https://cloud.google.com/compute/docs/reference/latest/globalOperations/get
72556func (r *GlobalOperationsService) Get(project string, operation string) *GlobalOperationsGetCall {
72557	c := &GlobalOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72558	c.project = project
72559	c.operation = operation
72560	return c
72561}
72562
72563// Fields allows partial responses to be retrieved. See
72564// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72565// for more information.
72566func (c *GlobalOperationsGetCall) Fields(s ...googleapi.Field) *GlobalOperationsGetCall {
72567	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72568	return c
72569}
72570
72571// IfNoneMatch sets the optional parameter which makes the operation
72572// fail if the object's ETag matches the given value. This is useful for
72573// getting updates only after the object has changed since the last
72574// request. Use googleapi.IsNotModified to check whether the response
72575// error from Do is the result of In-None-Match.
72576func (c *GlobalOperationsGetCall) IfNoneMatch(entityTag string) *GlobalOperationsGetCall {
72577	c.ifNoneMatch_ = entityTag
72578	return c
72579}
72580
72581// Context sets the context to be used in this call's Do method. Any
72582// pending HTTP request will be aborted if the provided context is
72583// canceled.
72584func (c *GlobalOperationsGetCall) Context(ctx context.Context) *GlobalOperationsGetCall {
72585	c.ctx_ = ctx
72586	return c
72587}
72588
72589// Header returns an http.Header that can be modified by the caller to
72590// add HTTP headers to the request.
72591func (c *GlobalOperationsGetCall) Header() http.Header {
72592	if c.header_ == nil {
72593		c.header_ = make(http.Header)
72594	}
72595	return c.header_
72596}
72597
72598func (c *GlobalOperationsGetCall) doRequest(alt string) (*http.Response, error) {
72599	reqHeaders := make(http.Header)
72600	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
72601	for k, v := range c.header_ {
72602		reqHeaders[k] = v
72603	}
72604	reqHeaders.Set("User-Agent", c.s.userAgent())
72605	if c.ifNoneMatch_ != "" {
72606		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
72607	}
72608	var body io.Reader = nil
72609	c.urlParams_.Set("alt", alt)
72610	c.urlParams_.Set("prettyPrint", "false")
72611	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/operations/{operation}")
72612	urls += "?" + c.urlParams_.Encode()
72613	req, err := http.NewRequest("GET", urls, body)
72614	if err != nil {
72615		return nil, err
72616	}
72617	req.Header = reqHeaders
72618	googleapi.Expand(req.URL, map[string]string{
72619		"project":   c.project,
72620		"operation": c.operation,
72621	})
72622	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72623}
72624
72625// Do executes the "compute.globalOperations.get" call.
72626// Exactly one of *Operation or error will be non-nil. Any non-2xx
72627// status code is an error. Response headers are in either
72628// *Operation.ServerResponse.Header or (if a response was returned at
72629// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
72630// to check whether the returned error was because
72631// http.StatusNotModified was returned.
72632func (c *GlobalOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
72633	gensupport.SetOptions(c.urlParams_, opts...)
72634	res, err := c.doRequest("json")
72635	if res != nil && res.StatusCode == http.StatusNotModified {
72636		if res.Body != nil {
72637			res.Body.Close()
72638		}
72639		return nil, &googleapi.Error{
72640			Code:   res.StatusCode,
72641			Header: res.Header,
72642		}
72643	}
72644	if err != nil {
72645		return nil, err
72646	}
72647	defer googleapi.CloseBody(res)
72648	if err := googleapi.CheckResponse(res); err != nil {
72649		return nil, err
72650	}
72651	ret := &Operation{
72652		ServerResponse: googleapi.ServerResponse{
72653			Header:         res.Header,
72654			HTTPStatusCode: res.StatusCode,
72655		},
72656	}
72657	target := &ret
72658	if err := gensupport.DecodeResponse(target, res); err != nil {
72659		return nil, err
72660	}
72661	return ret, nil
72662	// {
72663	//   "description": "Retrieves the specified Operations resource. Gets a list of operations by making a `list()` request.",
72664	//   "httpMethod": "GET",
72665	//   "id": "compute.globalOperations.get",
72666	//   "parameterOrder": [
72667	//     "project",
72668	//     "operation"
72669	//   ],
72670	//   "parameters": {
72671	//     "operation": {
72672	//       "description": "Name of the Operations resource to return.",
72673	//       "location": "path",
72674	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
72675	//       "required": true,
72676	//       "type": "string"
72677	//     },
72678	//     "project": {
72679	//       "description": "Project ID for this request.",
72680	//       "location": "path",
72681	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72682	//       "required": true,
72683	//       "type": "string"
72684	//     }
72685	//   },
72686	//   "path": "projects/{project}/global/operations/{operation}",
72687	//   "response": {
72688	//     "$ref": "Operation"
72689	//   },
72690	//   "scopes": [
72691	//     "https://www.googleapis.com/auth/cloud-platform",
72692	//     "https://www.googleapis.com/auth/compute",
72693	//     "https://www.googleapis.com/auth/compute.readonly"
72694	//   ]
72695	// }
72696
72697}
72698
72699// method id "compute.globalOperations.list":
72700
72701type GlobalOperationsListCall struct {
72702	s            *Service
72703	project      string
72704	urlParams_   gensupport.URLParams
72705	ifNoneMatch_ string
72706	ctx_         context.Context
72707	header_      http.Header
72708}
72709
72710// List: Retrieves a list of Operation resources contained within the
72711// specified project.
72712// For details, see https://cloud.google.com/compute/docs/reference/latest/globalOperations/list
72713func (r *GlobalOperationsService) List(project string) *GlobalOperationsListCall {
72714	c := &GlobalOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72715	c.project = project
72716	return c
72717}
72718
72719// Filter sets the optional parameter "filter": A filter expression that
72720// filters resources listed in the response. The expression must specify
72721// the field name, a comparison operator, and the value that you want to
72722// use for filtering. The value must be a string, a number, or a
72723// boolean. The comparison operator must be either `=`, `!=`, `>`, or
72724// `<`.
72725//
72726// For example, if you are filtering Compute Engine instances, you can
72727// exclude instances named `example-instance` by specifying `name !=
72728// example-instance`.
72729//
72730// You can also filter nested fields. For example, you could specify
72731// `scheduling.automaticRestart = false` to include instances only if
72732// they are not scheduled for automatic restarts. You can use filtering
72733// on nested fields to filter based on resource labels.
72734//
72735// To filter on multiple expressions, provide each separate expression
72736// within parentheses. For example: ``` (scheduling.automaticRestart =
72737// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
72738// is an `AND` expression. However, you can include `AND` and `OR`
72739// expressions explicitly. For example: ``` (cpuPlatform = "Intel
72740// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
72741// (scheduling.automaticRestart = true) ```
72742func (c *GlobalOperationsListCall) Filter(filter string) *GlobalOperationsListCall {
72743	c.urlParams_.Set("filter", filter)
72744	return c
72745}
72746
72747// MaxResults sets the optional parameter "maxResults": The maximum
72748// number of results per page that should be returned. If the number of
72749// available results is larger than `maxResults`, Compute Engine returns
72750// a `nextPageToken` that can be used to get the next page of results in
72751// subsequent list requests. Acceptable values are `0` to `500`,
72752// inclusive. (Default: `500`)
72753func (c *GlobalOperationsListCall) MaxResults(maxResults int64) *GlobalOperationsListCall {
72754	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
72755	return c
72756}
72757
72758// OrderBy sets the optional parameter "orderBy": Sorts list results by
72759// a certain order. By default, results are returned in alphanumerical
72760// order based on the resource name.
72761//
72762// You can also sort results in descending order based on the creation
72763// timestamp using `orderBy="creationTimestamp desc". This sorts
72764// results based on the `creationTimestamp` field in reverse
72765// chronological order (newest result first). Use this to sort resources
72766// like operations so that the newest operation is returned
72767// first.
72768//
72769// Currently, only sorting by `name` or `creationTimestamp desc` is
72770// supported.
72771func (c *GlobalOperationsListCall) OrderBy(orderBy string) *GlobalOperationsListCall {
72772	c.urlParams_.Set("orderBy", orderBy)
72773	return c
72774}
72775
72776// PageToken sets the optional parameter "pageToken": Specifies a page
72777// token to use. Set `pageToken` to the `nextPageToken` returned by a
72778// previous list request to get the next page of results.
72779func (c *GlobalOperationsListCall) PageToken(pageToken string) *GlobalOperationsListCall {
72780	c.urlParams_.Set("pageToken", pageToken)
72781	return c
72782}
72783
72784// ReturnPartialSuccess sets the optional parameter
72785// "returnPartialSuccess": Opt-in for partial success behavior which
72786// provides partial results in case of failure. The default value is
72787// false.
72788func (c *GlobalOperationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalOperationsListCall {
72789	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
72790	return c
72791}
72792
72793// Fields allows partial responses to be retrieved. See
72794// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72795// for more information.
72796func (c *GlobalOperationsListCall) Fields(s ...googleapi.Field) *GlobalOperationsListCall {
72797	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72798	return c
72799}
72800
72801// IfNoneMatch sets the optional parameter which makes the operation
72802// fail if the object's ETag matches the given value. This is useful for
72803// getting updates only after the object has changed since the last
72804// request. Use googleapi.IsNotModified to check whether the response
72805// error from Do is the result of In-None-Match.
72806func (c *GlobalOperationsListCall) IfNoneMatch(entityTag string) *GlobalOperationsListCall {
72807	c.ifNoneMatch_ = entityTag
72808	return c
72809}
72810
72811// Context sets the context to be used in this call's Do method. Any
72812// pending HTTP request will be aborted if the provided context is
72813// canceled.
72814func (c *GlobalOperationsListCall) Context(ctx context.Context) *GlobalOperationsListCall {
72815	c.ctx_ = ctx
72816	return c
72817}
72818
72819// Header returns an http.Header that can be modified by the caller to
72820// add HTTP headers to the request.
72821func (c *GlobalOperationsListCall) Header() http.Header {
72822	if c.header_ == nil {
72823		c.header_ = make(http.Header)
72824	}
72825	return c.header_
72826}
72827
72828func (c *GlobalOperationsListCall) doRequest(alt string) (*http.Response, error) {
72829	reqHeaders := make(http.Header)
72830	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
72831	for k, v := range c.header_ {
72832		reqHeaders[k] = v
72833	}
72834	reqHeaders.Set("User-Agent", c.s.userAgent())
72835	if c.ifNoneMatch_ != "" {
72836		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
72837	}
72838	var body io.Reader = nil
72839	c.urlParams_.Set("alt", alt)
72840	c.urlParams_.Set("prettyPrint", "false")
72841	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/operations")
72842	urls += "?" + c.urlParams_.Encode()
72843	req, err := http.NewRequest("GET", urls, body)
72844	if err != nil {
72845		return nil, err
72846	}
72847	req.Header = reqHeaders
72848	googleapi.Expand(req.URL, map[string]string{
72849		"project": c.project,
72850	})
72851	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72852}
72853
72854// Do executes the "compute.globalOperations.list" call.
72855// Exactly one of *OperationList or error will be non-nil. Any non-2xx
72856// status code is an error. Response headers are in either
72857// *OperationList.ServerResponse.Header or (if a response was returned
72858// at all) in error.(*googleapi.Error).Header. Use
72859// googleapi.IsNotModified to check whether the returned error was
72860// because http.StatusNotModified was returned.
72861func (c *GlobalOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) {
72862	gensupport.SetOptions(c.urlParams_, opts...)
72863	res, err := c.doRequest("json")
72864	if res != nil && res.StatusCode == http.StatusNotModified {
72865		if res.Body != nil {
72866			res.Body.Close()
72867		}
72868		return nil, &googleapi.Error{
72869			Code:   res.StatusCode,
72870			Header: res.Header,
72871		}
72872	}
72873	if err != nil {
72874		return nil, err
72875	}
72876	defer googleapi.CloseBody(res)
72877	if err := googleapi.CheckResponse(res); err != nil {
72878		return nil, err
72879	}
72880	ret := &OperationList{
72881		ServerResponse: googleapi.ServerResponse{
72882			Header:         res.Header,
72883			HTTPStatusCode: res.StatusCode,
72884		},
72885	}
72886	target := &ret
72887	if err := gensupport.DecodeResponse(target, res); err != nil {
72888		return nil, err
72889	}
72890	return ret, nil
72891	// {
72892	//   "description": "Retrieves a list of Operation resources contained within the specified project.",
72893	//   "httpMethod": "GET",
72894	//   "id": "compute.globalOperations.list",
72895	//   "parameterOrder": [
72896	//     "project"
72897	//   ],
72898	//   "parameters": {
72899	//     "filter": {
72900	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
72901	//       "location": "query",
72902	//       "type": "string"
72903	//     },
72904	//     "maxResults": {
72905	//       "default": "500",
72906	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
72907	//       "format": "uint32",
72908	//       "location": "query",
72909	//       "minimum": "0",
72910	//       "type": "integer"
72911	//     },
72912	//     "orderBy": {
72913	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
72914	//       "location": "query",
72915	//       "type": "string"
72916	//     },
72917	//     "pageToken": {
72918	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
72919	//       "location": "query",
72920	//       "type": "string"
72921	//     },
72922	//     "project": {
72923	//       "description": "Project ID for this request.",
72924	//       "location": "path",
72925	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72926	//       "required": true,
72927	//       "type": "string"
72928	//     },
72929	//     "returnPartialSuccess": {
72930	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
72931	//       "location": "query",
72932	//       "type": "boolean"
72933	//     }
72934	//   },
72935	//   "path": "projects/{project}/global/operations",
72936	//   "response": {
72937	//     "$ref": "OperationList"
72938	//   },
72939	//   "scopes": [
72940	//     "https://www.googleapis.com/auth/cloud-platform",
72941	//     "https://www.googleapis.com/auth/compute",
72942	//     "https://www.googleapis.com/auth/compute.readonly"
72943	//   ]
72944	// }
72945
72946}
72947
72948// Pages invokes f for each page of results.
72949// A non-nil error returned from f will halt the iteration.
72950// The provided context supersedes any context provided to the Context method.
72951func (c *GlobalOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error {
72952	c.ctx_ = ctx
72953	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
72954	for {
72955		x, err := c.Do()
72956		if err != nil {
72957			return err
72958		}
72959		if err := f(x); err != nil {
72960			return err
72961		}
72962		if x.NextPageToken == "" {
72963			return nil
72964		}
72965		c.PageToken(x.NextPageToken)
72966	}
72967}
72968
72969// method id "compute.globalOperations.wait":
72970
72971type GlobalOperationsWaitCall struct {
72972	s          *Service
72973	project    string
72974	operation  string
72975	urlParams_ gensupport.URLParams
72976	ctx_       context.Context
72977	header_    http.Header
72978}
72979
72980// Wait: Waits for the specified Operation resource to return as `DONE`
72981// or for the request to approach the 2 minute deadline, and retrieves
72982// the specified Operation resource. This method differs from the `GET`
72983// method in that it waits for no more than the default deadline (2
72984// minutes) and then returns the current state of the operation, which
72985// might be `DONE` or still in progress.
72986//
72987// This method is called on a best-effort basis. Specifically:
72988// - In uncommon cases, when the server is overloaded, the request might
72989// return before the default deadline is reached, or might return after
72990// zero seconds.
72991// - If the default deadline is reached, there is no guarantee that the
72992// operation is actually done when the method returns. Be prepared to
72993// retry if the operation is not `DONE`.
72994func (r *GlobalOperationsService) Wait(project string, operation string) *GlobalOperationsWaitCall {
72995	c := &GlobalOperationsWaitCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72996	c.project = project
72997	c.operation = operation
72998	return c
72999}
73000
73001// Fields allows partial responses to be retrieved. See
73002// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73003// for more information.
73004func (c *GlobalOperationsWaitCall) Fields(s ...googleapi.Field) *GlobalOperationsWaitCall {
73005	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73006	return c
73007}
73008
73009// Context sets the context to be used in this call's Do method. Any
73010// pending HTTP request will be aborted if the provided context is
73011// canceled.
73012func (c *GlobalOperationsWaitCall) Context(ctx context.Context) *GlobalOperationsWaitCall {
73013	c.ctx_ = ctx
73014	return c
73015}
73016
73017// Header returns an http.Header that can be modified by the caller to
73018// add HTTP headers to the request.
73019func (c *GlobalOperationsWaitCall) Header() http.Header {
73020	if c.header_ == nil {
73021		c.header_ = make(http.Header)
73022	}
73023	return c.header_
73024}
73025
73026func (c *GlobalOperationsWaitCall) doRequest(alt string) (*http.Response, error) {
73027	reqHeaders := make(http.Header)
73028	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
73029	for k, v := range c.header_ {
73030		reqHeaders[k] = v
73031	}
73032	reqHeaders.Set("User-Agent", c.s.userAgent())
73033	var body io.Reader = nil
73034	c.urlParams_.Set("alt", alt)
73035	c.urlParams_.Set("prettyPrint", "false")
73036	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/operations/{operation}/wait")
73037	urls += "?" + c.urlParams_.Encode()
73038	req, err := http.NewRequest("POST", urls, body)
73039	if err != nil {
73040		return nil, err
73041	}
73042	req.Header = reqHeaders
73043	googleapi.Expand(req.URL, map[string]string{
73044		"project":   c.project,
73045		"operation": c.operation,
73046	})
73047	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73048}
73049
73050// Do executes the "compute.globalOperations.wait" call.
73051// Exactly one of *Operation or error will be non-nil. Any non-2xx
73052// status code is an error. Response headers are in either
73053// *Operation.ServerResponse.Header or (if a response was returned at
73054// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
73055// to check whether the returned error was because
73056// http.StatusNotModified was returned.
73057func (c *GlobalOperationsWaitCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
73058	gensupport.SetOptions(c.urlParams_, opts...)
73059	res, err := c.doRequest("json")
73060	if res != nil && res.StatusCode == http.StatusNotModified {
73061		if res.Body != nil {
73062			res.Body.Close()
73063		}
73064		return nil, &googleapi.Error{
73065			Code:   res.StatusCode,
73066			Header: res.Header,
73067		}
73068	}
73069	if err != nil {
73070		return nil, err
73071	}
73072	defer googleapi.CloseBody(res)
73073	if err := googleapi.CheckResponse(res); err != nil {
73074		return nil, err
73075	}
73076	ret := &Operation{
73077		ServerResponse: googleapi.ServerResponse{
73078			Header:         res.Header,
73079			HTTPStatusCode: res.StatusCode,
73080		},
73081	}
73082	target := &ret
73083	if err := gensupport.DecodeResponse(target, res); err != nil {
73084		return nil, err
73085	}
73086	return ret, nil
73087	// {
73088	//   "description": "Waits for the specified Operation resource to return as `DONE` or for the request to approach the 2 minute deadline, and retrieves the specified Operation resource. This method differs from the `GET` method in that it waits for no more than the default deadline (2 minutes) and then returns the current state of the operation, which might be `DONE` or still in progress.\n\nThis method is called on a best-effort basis. Specifically:  \n- In uncommon cases, when the server is overloaded, the request might return before the default deadline is reached, or might return after zero seconds. \n- If the default deadline is reached, there is no guarantee that the operation is actually done when the method returns. Be prepared to retry if the operation is not `DONE`.",
73089	//   "httpMethod": "POST",
73090	//   "id": "compute.globalOperations.wait",
73091	//   "parameterOrder": [
73092	//     "project",
73093	//     "operation"
73094	//   ],
73095	//   "parameters": {
73096	//     "operation": {
73097	//       "description": "Name of the Operations resource to return.",
73098	//       "location": "path",
73099	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
73100	//       "required": true,
73101	//       "type": "string"
73102	//     },
73103	//     "project": {
73104	//       "description": "Project ID for this request.",
73105	//       "location": "path",
73106	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73107	//       "required": true,
73108	//       "type": "string"
73109	//     }
73110	//   },
73111	//   "path": "projects/{project}/global/operations/{operation}/wait",
73112	//   "response": {
73113	//     "$ref": "Operation"
73114	//   },
73115	//   "scopes": [
73116	//     "https://www.googleapis.com/auth/cloud-platform",
73117	//     "https://www.googleapis.com/auth/compute",
73118	//     "https://www.googleapis.com/auth/compute.readonly"
73119	//   ]
73120	// }
73121
73122}
73123
73124// method id "compute.globalOrganizationOperations.delete":
73125
73126type GlobalOrganizationOperationsDeleteCall struct {
73127	s          *Service
73128	operation  string
73129	urlParams_ gensupport.URLParams
73130	ctx_       context.Context
73131	header_    http.Header
73132}
73133
73134// Delete: Deletes the specified Operations resource.
73135func (r *GlobalOrganizationOperationsService) Delete(operation string) *GlobalOrganizationOperationsDeleteCall {
73136	c := &GlobalOrganizationOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73137	c.operation = operation
73138	return c
73139}
73140
73141// ParentId sets the optional parameter "parentId": Parent ID for this
73142// request.
73143func (c *GlobalOrganizationOperationsDeleteCall) ParentId(parentId string) *GlobalOrganizationOperationsDeleteCall {
73144	c.urlParams_.Set("parentId", parentId)
73145	return c
73146}
73147
73148// Fields allows partial responses to be retrieved. See
73149// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73150// for more information.
73151func (c *GlobalOrganizationOperationsDeleteCall) Fields(s ...googleapi.Field) *GlobalOrganizationOperationsDeleteCall {
73152	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73153	return c
73154}
73155
73156// Context sets the context to be used in this call's Do method. Any
73157// pending HTTP request will be aborted if the provided context is
73158// canceled.
73159func (c *GlobalOrganizationOperationsDeleteCall) Context(ctx context.Context) *GlobalOrganizationOperationsDeleteCall {
73160	c.ctx_ = ctx
73161	return c
73162}
73163
73164// Header returns an http.Header that can be modified by the caller to
73165// add HTTP headers to the request.
73166func (c *GlobalOrganizationOperationsDeleteCall) Header() http.Header {
73167	if c.header_ == nil {
73168		c.header_ = make(http.Header)
73169	}
73170	return c.header_
73171}
73172
73173func (c *GlobalOrganizationOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
73174	reqHeaders := make(http.Header)
73175	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
73176	for k, v := range c.header_ {
73177		reqHeaders[k] = v
73178	}
73179	reqHeaders.Set("User-Agent", c.s.userAgent())
73180	var body io.Reader = nil
73181	c.urlParams_.Set("alt", alt)
73182	c.urlParams_.Set("prettyPrint", "false")
73183	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/operations/{operation}")
73184	urls += "?" + c.urlParams_.Encode()
73185	req, err := http.NewRequest("DELETE", urls, body)
73186	if err != nil {
73187		return nil, err
73188	}
73189	req.Header = reqHeaders
73190	googleapi.Expand(req.URL, map[string]string{
73191		"operation": c.operation,
73192	})
73193	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73194}
73195
73196// Do executes the "compute.globalOrganizationOperations.delete" call.
73197func (c *GlobalOrganizationOperationsDeleteCall) Do(opts ...googleapi.CallOption) error {
73198	gensupport.SetOptions(c.urlParams_, opts...)
73199	res, err := c.doRequest("json")
73200	if err != nil {
73201		return err
73202	}
73203	defer googleapi.CloseBody(res)
73204	if err := googleapi.CheckResponse(res); err != nil {
73205		return err
73206	}
73207	return nil
73208	// {
73209	//   "description": "Deletes the specified Operations resource.",
73210	//   "httpMethod": "DELETE",
73211	//   "id": "compute.globalOrganizationOperations.delete",
73212	//   "parameterOrder": [
73213	//     "operation"
73214	//   ],
73215	//   "parameters": {
73216	//     "operation": {
73217	//       "description": "Name of the Operations resource to delete.",
73218	//       "location": "path",
73219	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
73220	//       "required": true,
73221	//       "type": "string"
73222	//     },
73223	//     "parentId": {
73224	//       "description": "Parent ID for this request.",
73225	//       "location": "query",
73226	//       "type": "string"
73227	//     }
73228	//   },
73229	//   "path": "locations/global/operations/{operation}",
73230	//   "scopes": [
73231	//     "https://www.googleapis.com/auth/cloud-platform",
73232	//     "https://www.googleapis.com/auth/compute"
73233	//   ]
73234	// }
73235
73236}
73237
73238// method id "compute.globalOrganizationOperations.get":
73239
73240type GlobalOrganizationOperationsGetCall struct {
73241	s            *Service
73242	operation    string
73243	urlParams_   gensupport.URLParams
73244	ifNoneMatch_ string
73245	ctx_         context.Context
73246	header_      http.Header
73247}
73248
73249// Get: Retrieves the specified Operations resource. Gets a list of
73250// operations by making a `list()` request.
73251func (r *GlobalOrganizationOperationsService) Get(operation string) *GlobalOrganizationOperationsGetCall {
73252	c := &GlobalOrganizationOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73253	c.operation = operation
73254	return c
73255}
73256
73257// ParentId sets the optional parameter "parentId": Parent ID for this
73258// request.
73259func (c *GlobalOrganizationOperationsGetCall) ParentId(parentId string) *GlobalOrganizationOperationsGetCall {
73260	c.urlParams_.Set("parentId", parentId)
73261	return c
73262}
73263
73264// Fields allows partial responses to be retrieved. See
73265// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73266// for more information.
73267func (c *GlobalOrganizationOperationsGetCall) Fields(s ...googleapi.Field) *GlobalOrganizationOperationsGetCall {
73268	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73269	return c
73270}
73271
73272// IfNoneMatch sets the optional parameter which makes the operation
73273// fail if the object's ETag matches the given value. This is useful for
73274// getting updates only after the object has changed since the last
73275// request. Use googleapi.IsNotModified to check whether the response
73276// error from Do is the result of In-None-Match.
73277func (c *GlobalOrganizationOperationsGetCall) IfNoneMatch(entityTag string) *GlobalOrganizationOperationsGetCall {
73278	c.ifNoneMatch_ = entityTag
73279	return c
73280}
73281
73282// Context sets the context to be used in this call's Do method. Any
73283// pending HTTP request will be aborted if the provided context is
73284// canceled.
73285func (c *GlobalOrganizationOperationsGetCall) Context(ctx context.Context) *GlobalOrganizationOperationsGetCall {
73286	c.ctx_ = ctx
73287	return c
73288}
73289
73290// Header returns an http.Header that can be modified by the caller to
73291// add HTTP headers to the request.
73292func (c *GlobalOrganizationOperationsGetCall) Header() http.Header {
73293	if c.header_ == nil {
73294		c.header_ = make(http.Header)
73295	}
73296	return c.header_
73297}
73298
73299func (c *GlobalOrganizationOperationsGetCall) doRequest(alt string) (*http.Response, error) {
73300	reqHeaders := make(http.Header)
73301	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
73302	for k, v := range c.header_ {
73303		reqHeaders[k] = v
73304	}
73305	reqHeaders.Set("User-Agent", c.s.userAgent())
73306	if c.ifNoneMatch_ != "" {
73307		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
73308	}
73309	var body io.Reader = nil
73310	c.urlParams_.Set("alt", alt)
73311	c.urlParams_.Set("prettyPrint", "false")
73312	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/operations/{operation}")
73313	urls += "?" + c.urlParams_.Encode()
73314	req, err := http.NewRequest("GET", urls, body)
73315	if err != nil {
73316		return nil, err
73317	}
73318	req.Header = reqHeaders
73319	googleapi.Expand(req.URL, map[string]string{
73320		"operation": c.operation,
73321	})
73322	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73323}
73324
73325// Do executes the "compute.globalOrganizationOperations.get" call.
73326// Exactly one of *Operation or error will be non-nil. Any non-2xx
73327// status code is an error. Response headers are in either
73328// *Operation.ServerResponse.Header or (if a response was returned at
73329// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
73330// to check whether the returned error was because
73331// http.StatusNotModified was returned.
73332func (c *GlobalOrganizationOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
73333	gensupport.SetOptions(c.urlParams_, opts...)
73334	res, err := c.doRequest("json")
73335	if res != nil && res.StatusCode == http.StatusNotModified {
73336		if res.Body != nil {
73337			res.Body.Close()
73338		}
73339		return nil, &googleapi.Error{
73340			Code:   res.StatusCode,
73341			Header: res.Header,
73342		}
73343	}
73344	if err != nil {
73345		return nil, err
73346	}
73347	defer googleapi.CloseBody(res)
73348	if err := googleapi.CheckResponse(res); err != nil {
73349		return nil, err
73350	}
73351	ret := &Operation{
73352		ServerResponse: googleapi.ServerResponse{
73353			Header:         res.Header,
73354			HTTPStatusCode: res.StatusCode,
73355		},
73356	}
73357	target := &ret
73358	if err := gensupport.DecodeResponse(target, res); err != nil {
73359		return nil, err
73360	}
73361	return ret, nil
73362	// {
73363	//   "description": "Retrieves the specified Operations resource. Gets a list of operations by making a `list()` request.",
73364	//   "httpMethod": "GET",
73365	//   "id": "compute.globalOrganizationOperations.get",
73366	//   "parameterOrder": [
73367	//     "operation"
73368	//   ],
73369	//   "parameters": {
73370	//     "operation": {
73371	//       "description": "Name of the Operations resource to return.",
73372	//       "location": "path",
73373	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
73374	//       "required": true,
73375	//       "type": "string"
73376	//     },
73377	//     "parentId": {
73378	//       "description": "Parent ID for this request.",
73379	//       "location": "query",
73380	//       "type": "string"
73381	//     }
73382	//   },
73383	//   "path": "locations/global/operations/{operation}",
73384	//   "response": {
73385	//     "$ref": "Operation"
73386	//   },
73387	//   "scopes": [
73388	//     "https://www.googleapis.com/auth/cloud-platform",
73389	//     "https://www.googleapis.com/auth/compute",
73390	//     "https://www.googleapis.com/auth/compute.readonly"
73391	//   ]
73392	// }
73393
73394}
73395
73396// method id "compute.globalOrganizationOperations.list":
73397
73398type GlobalOrganizationOperationsListCall struct {
73399	s            *Service
73400	urlParams_   gensupport.URLParams
73401	ifNoneMatch_ string
73402	ctx_         context.Context
73403	header_      http.Header
73404}
73405
73406// List: Retrieves a list of Operation resources contained within the
73407// specified organization.
73408func (r *GlobalOrganizationOperationsService) List() *GlobalOrganizationOperationsListCall {
73409	c := &GlobalOrganizationOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73410	return c
73411}
73412
73413// Filter sets the optional parameter "filter": A filter expression that
73414// filters resources listed in the response. The expression must specify
73415// the field name, a comparison operator, and the value that you want to
73416// use for filtering. The value must be a string, a number, or a
73417// boolean. The comparison operator must be either `=`, `!=`, `>`, or
73418// `<`.
73419//
73420// For example, if you are filtering Compute Engine instances, you can
73421// exclude instances named `example-instance` by specifying `name !=
73422// example-instance`.
73423//
73424// You can also filter nested fields. For example, you could specify
73425// `scheduling.automaticRestart = false` to include instances only if
73426// they are not scheduled for automatic restarts. You can use filtering
73427// on nested fields to filter based on resource labels.
73428//
73429// To filter on multiple expressions, provide each separate expression
73430// within parentheses. For example: ``` (scheduling.automaticRestart =
73431// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
73432// is an `AND` expression. However, you can include `AND` and `OR`
73433// expressions explicitly. For example: ``` (cpuPlatform = "Intel
73434// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
73435// (scheduling.automaticRestart = true) ```
73436func (c *GlobalOrganizationOperationsListCall) Filter(filter string) *GlobalOrganizationOperationsListCall {
73437	c.urlParams_.Set("filter", filter)
73438	return c
73439}
73440
73441// MaxResults sets the optional parameter "maxResults": The maximum
73442// number of results per page that should be returned. If the number of
73443// available results is larger than `maxResults`, Compute Engine returns
73444// a `nextPageToken` that can be used to get the next page of results in
73445// subsequent list requests. Acceptable values are `0` to `500`,
73446// inclusive. (Default: `500`)
73447func (c *GlobalOrganizationOperationsListCall) MaxResults(maxResults int64) *GlobalOrganizationOperationsListCall {
73448	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
73449	return c
73450}
73451
73452// OrderBy sets the optional parameter "orderBy": Sorts list results by
73453// a certain order. By default, results are returned in alphanumerical
73454// order based on the resource name.
73455//
73456// You can also sort results in descending order based on the creation
73457// timestamp using `orderBy="creationTimestamp desc". This sorts
73458// results based on the `creationTimestamp` field in reverse
73459// chronological order (newest result first). Use this to sort resources
73460// like operations so that the newest operation is returned
73461// first.
73462//
73463// Currently, only sorting by `name` or `creationTimestamp desc` is
73464// supported.
73465func (c *GlobalOrganizationOperationsListCall) OrderBy(orderBy string) *GlobalOrganizationOperationsListCall {
73466	c.urlParams_.Set("orderBy", orderBy)
73467	return c
73468}
73469
73470// PageToken sets the optional parameter "pageToken": Specifies a page
73471// token to use. Set `pageToken` to the `nextPageToken` returned by a
73472// previous list request to get the next page of results.
73473func (c *GlobalOrganizationOperationsListCall) PageToken(pageToken string) *GlobalOrganizationOperationsListCall {
73474	c.urlParams_.Set("pageToken", pageToken)
73475	return c
73476}
73477
73478// ParentId sets the optional parameter "parentId": Parent ID for this
73479// request.
73480func (c *GlobalOrganizationOperationsListCall) ParentId(parentId string) *GlobalOrganizationOperationsListCall {
73481	c.urlParams_.Set("parentId", parentId)
73482	return c
73483}
73484
73485// ReturnPartialSuccess sets the optional parameter
73486// "returnPartialSuccess": Opt-in for partial success behavior which
73487// provides partial results in case of failure. The default value is
73488// false.
73489func (c *GlobalOrganizationOperationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalOrganizationOperationsListCall {
73490	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
73491	return c
73492}
73493
73494// Fields allows partial responses to be retrieved. See
73495// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73496// for more information.
73497func (c *GlobalOrganizationOperationsListCall) Fields(s ...googleapi.Field) *GlobalOrganizationOperationsListCall {
73498	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73499	return c
73500}
73501
73502// IfNoneMatch sets the optional parameter which makes the operation
73503// fail if the object's ETag matches the given value. This is useful for
73504// getting updates only after the object has changed since the last
73505// request. Use googleapi.IsNotModified to check whether the response
73506// error from Do is the result of In-None-Match.
73507func (c *GlobalOrganizationOperationsListCall) IfNoneMatch(entityTag string) *GlobalOrganizationOperationsListCall {
73508	c.ifNoneMatch_ = entityTag
73509	return c
73510}
73511
73512// Context sets the context to be used in this call's Do method. Any
73513// pending HTTP request will be aborted if the provided context is
73514// canceled.
73515func (c *GlobalOrganizationOperationsListCall) Context(ctx context.Context) *GlobalOrganizationOperationsListCall {
73516	c.ctx_ = ctx
73517	return c
73518}
73519
73520// Header returns an http.Header that can be modified by the caller to
73521// add HTTP headers to the request.
73522func (c *GlobalOrganizationOperationsListCall) Header() http.Header {
73523	if c.header_ == nil {
73524		c.header_ = make(http.Header)
73525	}
73526	return c.header_
73527}
73528
73529func (c *GlobalOrganizationOperationsListCall) doRequest(alt string) (*http.Response, error) {
73530	reqHeaders := make(http.Header)
73531	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
73532	for k, v := range c.header_ {
73533		reqHeaders[k] = v
73534	}
73535	reqHeaders.Set("User-Agent", c.s.userAgent())
73536	if c.ifNoneMatch_ != "" {
73537		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
73538	}
73539	var body io.Reader = nil
73540	c.urlParams_.Set("alt", alt)
73541	c.urlParams_.Set("prettyPrint", "false")
73542	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/operations")
73543	urls += "?" + c.urlParams_.Encode()
73544	req, err := http.NewRequest("GET", urls, body)
73545	if err != nil {
73546		return nil, err
73547	}
73548	req.Header = reqHeaders
73549	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73550}
73551
73552// Do executes the "compute.globalOrganizationOperations.list" call.
73553// Exactly one of *OperationList or error will be non-nil. Any non-2xx
73554// status code is an error. Response headers are in either
73555// *OperationList.ServerResponse.Header or (if a response was returned
73556// at all) in error.(*googleapi.Error).Header. Use
73557// googleapi.IsNotModified to check whether the returned error was
73558// because http.StatusNotModified was returned.
73559func (c *GlobalOrganizationOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) {
73560	gensupport.SetOptions(c.urlParams_, opts...)
73561	res, err := c.doRequest("json")
73562	if res != nil && res.StatusCode == http.StatusNotModified {
73563		if res.Body != nil {
73564			res.Body.Close()
73565		}
73566		return nil, &googleapi.Error{
73567			Code:   res.StatusCode,
73568			Header: res.Header,
73569		}
73570	}
73571	if err != nil {
73572		return nil, err
73573	}
73574	defer googleapi.CloseBody(res)
73575	if err := googleapi.CheckResponse(res); err != nil {
73576		return nil, err
73577	}
73578	ret := &OperationList{
73579		ServerResponse: googleapi.ServerResponse{
73580			Header:         res.Header,
73581			HTTPStatusCode: res.StatusCode,
73582		},
73583	}
73584	target := &ret
73585	if err := gensupport.DecodeResponse(target, res); err != nil {
73586		return nil, err
73587	}
73588	return ret, nil
73589	// {
73590	//   "description": "Retrieves a list of Operation resources contained within the specified organization.",
73591	//   "httpMethod": "GET",
73592	//   "id": "compute.globalOrganizationOperations.list",
73593	//   "parameters": {
73594	//     "filter": {
73595	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
73596	//       "location": "query",
73597	//       "type": "string"
73598	//     },
73599	//     "maxResults": {
73600	//       "default": "500",
73601	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
73602	//       "format": "uint32",
73603	//       "location": "query",
73604	//       "minimum": "0",
73605	//       "type": "integer"
73606	//     },
73607	//     "orderBy": {
73608	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
73609	//       "location": "query",
73610	//       "type": "string"
73611	//     },
73612	//     "pageToken": {
73613	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
73614	//       "location": "query",
73615	//       "type": "string"
73616	//     },
73617	//     "parentId": {
73618	//       "description": "Parent ID for this request.",
73619	//       "location": "query",
73620	//       "type": "string"
73621	//     },
73622	//     "returnPartialSuccess": {
73623	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
73624	//       "location": "query",
73625	//       "type": "boolean"
73626	//     }
73627	//   },
73628	//   "path": "locations/global/operations",
73629	//   "response": {
73630	//     "$ref": "OperationList"
73631	//   },
73632	//   "scopes": [
73633	//     "https://www.googleapis.com/auth/cloud-platform",
73634	//     "https://www.googleapis.com/auth/compute",
73635	//     "https://www.googleapis.com/auth/compute.readonly"
73636	//   ]
73637	// }
73638
73639}
73640
73641// Pages invokes f for each page of results.
73642// A non-nil error returned from f will halt the iteration.
73643// The provided context supersedes any context provided to the Context method.
73644func (c *GlobalOrganizationOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error {
73645	c.ctx_ = ctx
73646	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
73647	for {
73648		x, err := c.Do()
73649		if err != nil {
73650			return err
73651		}
73652		if err := f(x); err != nil {
73653			return err
73654		}
73655		if x.NextPageToken == "" {
73656			return nil
73657		}
73658		c.PageToken(x.NextPageToken)
73659	}
73660}
73661
73662// method id "compute.globalPublicDelegatedPrefixes.delete":
73663
73664type GlobalPublicDelegatedPrefixesDeleteCall struct {
73665	s                     *Service
73666	project               string
73667	publicDelegatedPrefix string
73668	urlParams_            gensupport.URLParams
73669	ctx_                  context.Context
73670	header_               http.Header
73671}
73672
73673// Delete: Deletes the specified global PublicDelegatedPrefix.
73674func (r *GlobalPublicDelegatedPrefixesService) Delete(project string, publicDelegatedPrefix string) *GlobalPublicDelegatedPrefixesDeleteCall {
73675	c := &GlobalPublicDelegatedPrefixesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73676	c.project = project
73677	c.publicDelegatedPrefix = publicDelegatedPrefix
73678	return c
73679}
73680
73681// RequestId sets the optional parameter "requestId": An optional
73682// request ID to identify requests. Specify a unique request ID so that
73683// if you must retry your request, the server will know to ignore the
73684// request if it has already been completed.
73685//
73686// For example, consider a situation where you make an initial request
73687// and the request times out. If you make the request again with the
73688// same request ID, the server can check if original operation with the
73689// same request ID was received, and if so, will ignore the second
73690// request. This prevents clients from accidentally creating duplicate
73691// commitments.
73692//
73693// The request ID must be a valid UUID with the exception that zero UUID
73694// is not supported (00000000-0000-0000-0000-000000000000).
73695func (c *GlobalPublicDelegatedPrefixesDeleteCall) RequestId(requestId string) *GlobalPublicDelegatedPrefixesDeleteCall {
73696	c.urlParams_.Set("requestId", requestId)
73697	return c
73698}
73699
73700// Fields allows partial responses to be retrieved. See
73701// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73702// for more information.
73703func (c *GlobalPublicDelegatedPrefixesDeleteCall) Fields(s ...googleapi.Field) *GlobalPublicDelegatedPrefixesDeleteCall {
73704	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73705	return c
73706}
73707
73708// Context sets the context to be used in this call's Do method. Any
73709// pending HTTP request will be aborted if the provided context is
73710// canceled.
73711func (c *GlobalPublicDelegatedPrefixesDeleteCall) Context(ctx context.Context) *GlobalPublicDelegatedPrefixesDeleteCall {
73712	c.ctx_ = ctx
73713	return c
73714}
73715
73716// Header returns an http.Header that can be modified by the caller to
73717// add HTTP headers to the request.
73718func (c *GlobalPublicDelegatedPrefixesDeleteCall) Header() http.Header {
73719	if c.header_ == nil {
73720		c.header_ = make(http.Header)
73721	}
73722	return c.header_
73723}
73724
73725func (c *GlobalPublicDelegatedPrefixesDeleteCall) doRequest(alt string) (*http.Response, error) {
73726	reqHeaders := make(http.Header)
73727	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
73728	for k, v := range c.header_ {
73729		reqHeaders[k] = v
73730	}
73731	reqHeaders.Set("User-Agent", c.s.userAgent())
73732	var body io.Reader = nil
73733	c.urlParams_.Set("alt", alt)
73734	c.urlParams_.Set("prettyPrint", "false")
73735	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}")
73736	urls += "?" + c.urlParams_.Encode()
73737	req, err := http.NewRequest("DELETE", urls, body)
73738	if err != nil {
73739		return nil, err
73740	}
73741	req.Header = reqHeaders
73742	googleapi.Expand(req.URL, map[string]string{
73743		"project":               c.project,
73744		"publicDelegatedPrefix": c.publicDelegatedPrefix,
73745	})
73746	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73747}
73748
73749// Do executes the "compute.globalPublicDelegatedPrefixes.delete" call.
73750// Exactly one of *Operation or error will be non-nil. Any non-2xx
73751// status code is an error. Response headers are in either
73752// *Operation.ServerResponse.Header or (if a response was returned at
73753// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
73754// to check whether the returned error was because
73755// http.StatusNotModified was returned.
73756func (c *GlobalPublicDelegatedPrefixesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
73757	gensupport.SetOptions(c.urlParams_, opts...)
73758	res, err := c.doRequest("json")
73759	if res != nil && res.StatusCode == http.StatusNotModified {
73760		if res.Body != nil {
73761			res.Body.Close()
73762		}
73763		return nil, &googleapi.Error{
73764			Code:   res.StatusCode,
73765			Header: res.Header,
73766		}
73767	}
73768	if err != nil {
73769		return nil, err
73770	}
73771	defer googleapi.CloseBody(res)
73772	if err := googleapi.CheckResponse(res); err != nil {
73773		return nil, err
73774	}
73775	ret := &Operation{
73776		ServerResponse: googleapi.ServerResponse{
73777			Header:         res.Header,
73778			HTTPStatusCode: res.StatusCode,
73779		},
73780	}
73781	target := &ret
73782	if err := gensupport.DecodeResponse(target, res); err != nil {
73783		return nil, err
73784	}
73785	return ret, nil
73786	// {
73787	//   "description": "Deletes the specified global PublicDelegatedPrefix.",
73788	//   "httpMethod": "DELETE",
73789	//   "id": "compute.globalPublicDelegatedPrefixes.delete",
73790	//   "parameterOrder": [
73791	//     "project",
73792	//     "publicDelegatedPrefix"
73793	//   ],
73794	//   "parameters": {
73795	//     "project": {
73796	//       "description": "Project ID for this request.",
73797	//       "location": "path",
73798	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73799	//       "required": true,
73800	//       "type": "string"
73801	//     },
73802	//     "publicDelegatedPrefix": {
73803	//       "description": "Name of the PublicDelegatedPrefix resource to delete.",
73804	//       "location": "path",
73805	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
73806	//       "required": true,
73807	//       "type": "string"
73808	//     },
73809	//     "requestId": {
73810	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
73811	//       "location": "query",
73812	//       "type": "string"
73813	//     }
73814	//   },
73815	//   "path": "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}",
73816	//   "response": {
73817	//     "$ref": "Operation"
73818	//   },
73819	//   "scopes": [
73820	//     "https://www.googleapis.com/auth/cloud-platform",
73821	//     "https://www.googleapis.com/auth/compute"
73822	//   ]
73823	// }
73824
73825}
73826
73827// method id "compute.globalPublicDelegatedPrefixes.get":
73828
73829type GlobalPublicDelegatedPrefixesGetCall struct {
73830	s                     *Service
73831	project               string
73832	publicDelegatedPrefix string
73833	urlParams_            gensupport.URLParams
73834	ifNoneMatch_          string
73835	ctx_                  context.Context
73836	header_               http.Header
73837}
73838
73839// Get: Returns the specified global PublicDelegatedPrefix resource.
73840func (r *GlobalPublicDelegatedPrefixesService) Get(project string, publicDelegatedPrefix string) *GlobalPublicDelegatedPrefixesGetCall {
73841	c := &GlobalPublicDelegatedPrefixesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73842	c.project = project
73843	c.publicDelegatedPrefix = publicDelegatedPrefix
73844	return c
73845}
73846
73847// Fields allows partial responses to be retrieved. See
73848// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73849// for more information.
73850func (c *GlobalPublicDelegatedPrefixesGetCall) Fields(s ...googleapi.Field) *GlobalPublicDelegatedPrefixesGetCall {
73851	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73852	return c
73853}
73854
73855// IfNoneMatch sets the optional parameter which makes the operation
73856// fail if the object's ETag matches the given value. This is useful for
73857// getting updates only after the object has changed since the last
73858// request. Use googleapi.IsNotModified to check whether the response
73859// error from Do is the result of In-None-Match.
73860func (c *GlobalPublicDelegatedPrefixesGetCall) IfNoneMatch(entityTag string) *GlobalPublicDelegatedPrefixesGetCall {
73861	c.ifNoneMatch_ = entityTag
73862	return c
73863}
73864
73865// Context sets the context to be used in this call's Do method. Any
73866// pending HTTP request will be aborted if the provided context is
73867// canceled.
73868func (c *GlobalPublicDelegatedPrefixesGetCall) Context(ctx context.Context) *GlobalPublicDelegatedPrefixesGetCall {
73869	c.ctx_ = ctx
73870	return c
73871}
73872
73873// Header returns an http.Header that can be modified by the caller to
73874// add HTTP headers to the request.
73875func (c *GlobalPublicDelegatedPrefixesGetCall) Header() http.Header {
73876	if c.header_ == nil {
73877		c.header_ = make(http.Header)
73878	}
73879	return c.header_
73880}
73881
73882func (c *GlobalPublicDelegatedPrefixesGetCall) doRequest(alt string) (*http.Response, error) {
73883	reqHeaders := make(http.Header)
73884	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
73885	for k, v := range c.header_ {
73886		reqHeaders[k] = v
73887	}
73888	reqHeaders.Set("User-Agent", c.s.userAgent())
73889	if c.ifNoneMatch_ != "" {
73890		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
73891	}
73892	var body io.Reader = nil
73893	c.urlParams_.Set("alt", alt)
73894	c.urlParams_.Set("prettyPrint", "false")
73895	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}")
73896	urls += "?" + c.urlParams_.Encode()
73897	req, err := http.NewRequest("GET", urls, body)
73898	if err != nil {
73899		return nil, err
73900	}
73901	req.Header = reqHeaders
73902	googleapi.Expand(req.URL, map[string]string{
73903		"project":               c.project,
73904		"publicDelegatedPrefix": c.publicDelegatedPrefix,
73905	})
73906	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73907}
73908
73909// Do executes the "compute.globalPublicDelegatedPrefixes.get" call.
73910// Exactly one of *PublicDelegatedPrefix or error will be non-nil. Any
73911// non-2xx status code is an error. Response headers are in either
73912// *PublicDelegatedPrefix.ServerResponse.Header or (if a response was
73913// returned at all) in error.(*googleapi.Error).Header. Use
73914// googleapi.IsNotModified to check whether the returned error was
73915// because http.StatusNotModified was returned.
73916func (c *GlobalPublicDelegatedPrefixesGetCall) Do(opts ...googleapi.CallOption) (*PublicDelegatedPrefix, error) {
73917	gensupport.SetOptions(c.urlParams_, opts...)
73918	res, err := c.doRequest("json")
73919	if res != nil && res.StatusCode == http.StatusNotModified {
73920		if res.Body != nil {
73921			res.Body.Close()
73922		}
73923		return nil, &googleapi.Error{
73924			Code:   res.StatusCode,
73925			Header: res.Header,
73926		}
73927	}
73928	if err != nil {
73929		return nil, err
73930	}
73931	defer googleapi.CloseBody(res)
73932	if err := googleapi.CheckResponse(res); err != nil {
73933		return nil, err
73934	}
73935	ret := &PublicDelegatedPrefix{
73936		ServerResponse: googleapi.ServerResponse{
73937			Header:         res.Header,
73938			HTTPStatusCode: res.StatusCode,
73939		},
73940	}
73941	target := &ret
73942	if err := gensupport.DecodeResponse(target, res); err != nil {
73943		return nil, err
73944	}
73945	return ret, nil
73946	// {
73947	//   "description": "Returns the specified global PublicDelegatedPrefix resource.",
73948	//   "httpMethod": "GET",
73949	//   "id": "compute.globalPublicDelegatedPrefixes.get",
73950	//   "parameterOrder": [
73951	//     "project",
73952	//     "publicDelegatedPrefix"
73953	//   ],
73954	//   "parameters": {
73955	//     "project": {
73956	//       "description": "Project ID for this request.",
73957	//       "location": "path",
73958	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73959	//       "required": true,
73960	//       "type": "string"
73961	//     },
73962	//     "publicDelegatedPrefix": {
73963	//       "description": "Name of the PublicDelegatedPrefix resource to return.",
73964	//       "location": "path",
73965	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
73966	//       "required": true,
73967	//       "type": "string"
73968	//     }
73969	//   },
73970	//   "path": "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}",
73971	//   "response": {
73972	//     "$ref": "PublicDelegatedPrefix"
73973	//   },
73974	//   "scopes": [
73975	//     "https://www.googleapis.com/auth/cloud-platform",
73976	//     "https://www.googleapis.com/auth/compute",
73977	//     "https://www.googleapis.com/auth/compute.readonly"
73978	//   ]
73979	// }
73980
73981}
73982
73983// method id "compute.globalPublicDelegatedPrefixes.insert":
73984
73985type GlobalPublicDelegatedPrefixesInsertCall struct {
73986	s                     *Service
73987	project               string
73988	publicdelegatedprefix *PublicDelegatedPrefix
73989	urlParams_            gensupport.URLParams
73990	ctx_                  context.Context
73991	header_               http.Header
73992}
73993
73994// Insert: Creates a global PublicDelegatedPrefix in the specified
73995// project using the parameters that are included in the request.
73996func (r *GlobalPublicDelegatedPrefixesService) Insert(project string, publicdelegatedprefix *PublicDelegatedPrefix) *GlobalPublicDelegatedPrefixesInsertCall {
73997	c := &GlobalPublicDelegatedPrefixesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73998	c.project = project
73999	c.publicdelegatedprefix = publicdelegatedprefix
74000	return c
74001}
74002
74003// RequestId sets the optional parameter "requestId": An optional
74004// request ID to identify requests. Specify a unique request ID so that
74005// if you must retry your request, the server will know to ignore the
74006// request if it has already been completed.
74007//
74008// For example, consider a situation where you make an initial request
74009// and the request times out. If you make the request again with the
74010// same request ID, the server can check if original operation with the
74011// same request ID was received, and if so, will ignore the second
74012// request. This prevents clients from accidentally creating duplicate
74013// commitments.
74014//
74015// The request ID must be a valid UUID with the exception that zero UUID
74016// is not supported (00000000-0000-0000-0000-000000000000).
74017func (c *GlobalPublicDelegatedPrefixesInsertCall) RequestId(requestId string) *GlobalPublicDelegatedPrefixesInsertCall {
74018	c.urlParams_.Set("requestId", requestId)
74019	return c
74020}
74021
74022// Fields allows partial responses to be retrieved. See
74023// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74024// for more information.
74025func (c *GlobalPublicDelegatedPrefixesInsertCall) Fields(s ...googleapi.Field) *GlobalPublicDelegatedPrefixesInsertCall {
74026	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74027	return c
74028}
74029
74030// Context sets the context to be used in this call's Do method. Any
74031// pending HTTP request will be aborted if the provided context is
74032// canceled.
74033func (c *GlobalPublicDelegatedPrefixesInsertCall) Context(ctx context.Context) *GlobalPublicDelegatedPrefixesInsertCall {
74034	c.ctx_ = ctx
74035	return c
74036}
74037
74038// Header returns an http.Header that can be modified by the caller to
74039// add HTTP headers to the request.
74040func (c *GlobalPublicDelegatedPrefixesInsertCall) Header() http.Header {
74041	if c.header_ == nil {
74042		c.header_ = make(http.Header)
74043	}
74044	return c.header_
74045}
74046
74047func (c *GlobalPublicDelegatedPrefixesInsertCall) doRequest(alt string) (*http.Response, error) {
74048	reqHeaders := make(http.Header)
74049	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
74050	for k, v := range c.header_ {
74051		reqHeaders[k] = v
74052	}
74053	reqHeaders.Set("User-Agent", c.s.userAgent())
74054	var body io.Reader = nil
74055	body, err := googleapi.WithoutDataWrapper.JSONReader(c.publicdelegatedprefix)
74056	if err != nil {
74057		return nil, err
74058	}
74059	reqHeaders.Set("Content-Type", "application/json")
74060	c.urlParams_.Set("alt", alt)
74061	c.urlParams_.Set("prettyPrint", "false")
74062	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicDelegatedPrefixes")
74063	urls += "?" + c.urlParams_.Encode()
74064	req, err := http.NewRequest("POST", urls, body)
74065	if err != nil {
74066		return nil, err
74067	}
74068	req.Header = reqHeaders
74069	googleapi.Expand(req.URL, map[string]string{
74070		"project": c.project,
74071	})
74072	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74073}
74074
74075// Do executes the "compute.globalPublicDelegatedPrefixes.insert" call.
74076// Exactly one of *Operation or error will be non-nil. Any non-2xx
74077// status code is an error. Response headers are in either
74078// *Operation.ServerResponse.Header or (if a response was returned at
74079// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
74080// to check whether the returned error was because
74081// http.StatusNotModified was returned.
74082func (c *GlobalPublicDelegatedPrefixesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
74083	gensupport.SetOptions(c.urlParams_, opts...)
74084	res, err := c.doRequest("json")
74085	if res != nil && res.StatusCode == http.StatusNotModified {
74086		if res.Body != nil {
74087			res.Body.Close()
74088		}
74089		return nil, &googleapi.Error{
74090			Code:   res.StatusCode,
74091			Header: res.Header,
74092		}
74093	}
74094	if err != nil {
74095		return nil, err
74096	}
74097	defer googleapi.CloseBody(res)
74098	if err := googleapi.CheckResponse(res); err != nil {
74099		return nil, err
74100	}
74101	ret := &Operation{
74102		ServerResponse: googleapi.ServerResponse{
74103			Header:         res.Header,
74104			HTTPStatusCode: res.StatusCode,
74105		},
74106	}
74107	target := &ret
74108	if err := gensupport.DecodeResponse(target, res); err != nil {
74109		return nil, err
74110	}
74111	return ret, nil
74112	// {
74113	//   "description": "Creates a global PublicDelegatedPrefix in the specified project using the parameters that are included in the request.",
74114	//   "httpMethod": "POST",
74115	//   "id": "compute.globalPublicDelegatedPrefixes.insert",
74116	//   "parameterOrder": [
74117	//     "project"
74118	//   ],
74119	//   "parameters": {
74120	//     "project": {
74121	//       "description": "Project ID for this request.",
74122	//       "location": "path",
74123	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74124	//       "required": true,
74125	//       "type": "string"
74126	//     },
74127	//     "requestId": {
74128	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
74129	//       "location": "query",
74130	//       "type": "string"
74131	//     }
74132	//   },
74133	//   "path": "projects/{project}/global/publicDelegatedPrefixes",
74134	//   "request": {
74135	//     "$ref": "PublicDelegatedPrefix"
74136	//   },
74137	//   "response": {
74138	//     "$ref": "Operation"
74139	//   },
74140	//   "scopes": [
74141	//     "https://www.googleapis.com/auth/cloud-platform",
74142	//     "https://www.googleapis.com/auth/compute"
74143	//   ]
74144	// }
74145
74146}
74147
74148// method id "compute.globalPublicDelegatedPrefixes.list":
74149
74150type GlobalPublicDelegatedPrefixesListCall struct {
74151	s            *Service
74152	project      string
74153	urlParams_   gensupport.URLParams
74154	ifNoneMatch_ string
74155	ctx_         context.Context
74156	header_      http.Header
74157}
74158
74159// List: Lists the global PublicDelegatedPrefixes for a project.
74160func (r *GlobalPublicDelegatedPrefixesService) List(project string) *GlobalPublicDelegatedPrefixesListCall {
74161	c := &GlobalPublicDelegatedPrefixesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74162	c.project = project
74163	return c
74164}
74165
74166// Filter sets the optional parameter "filter": A filter expression that
74167// filters resources listed in the response. The expression must specify
74168// the field name, a comparison operator, and the value that you want to
74169// use for filtering. The value must be a string, a number, or a
74170// boolean. The comparison operator must be either `=`, `!=`, `>`, or
74171// `<`.
74172//
74173// For example, if you are filtering Compute Engine instances, you can
74174// exclude instances named `example-instance` by specifying `name !=
74175// example-instance`.
74176//
74177// You can also filter nested fields. For example, you could specify
74178// `scheduling.automaticRestart = false` to include instances only if
74179// they are not scheduled for automatic restarts. You can use filtering
74180// on nested fields to filter based on resource labels.
74181//
74182// To filter on multiple expressions, provide each separate expression
74183// within parentheses. For example: ``` (scheduling.automaticRestart =
74184// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
74185// is an `AND` expression. However, you can include `AND` and `OR`
74186// expressions explicitly. For example: ``` (cpuPlatform = "Intel
74187// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
74188// (scheduling.automaticRestart = true) ```
74189func (c *GlobalPublicDelegatedPrefixesListCall) Filter(filter string) *GlobalPublicDelegatedPrefixesListCall {
74190	c.urlParams_.Set("filter", filter)
74191	return c
74192}
74193
74194// MaxResults sets the optional parameter "maxResults": The maximum
74195// number of results per page that should be returned. If the number of
74196// available results is larger than `maxResults`, Compute Engine returns
74197// a `nextPageToken` that can be used to get the next page of results in
74198// subsequent list requests. Acceptable values are `0` to `500`,
74199// inclusive. (Default: `500`)
74200func (c *GlobalPublicDelegatedPrefixesListCall) MaxResults(maxResults int64) *GlobalPublicDelegatedPrefixesListCall {
74201	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
74202	return c
74203}
74204
74205// OrderBy sets the optional parameter "orderBy": Sorts list results by
74206// a certain order. By default, results are returned in alphanumerical
74207// order based on the resource name.
74208//
74209// You can also sort results in descending order based on the creation
74210// timestamp using `orderBy="creationTimestamp desc". This sorts
74211// results based on the `creationTimestamp` field in reverse
74212// chronological order (newest result first). Use this to sort resources
74213// like operations so that the newest operation is returned
74214// first.
74215//
74216// Currently, only sorting by `name` or `creationTimestamp desc` is
74217// supported.
74218func (c *GlobalPublicDelegatedPrefixesListCall) OrderBy(orderBy string) *GlobalPublicDelegatedPrefixesListCall {
74219	c.urlParams_.Set("orderBy", orderBy)
74220	return c
74221}
74222
74223// PageToken sets the optional parameter "pageToken": Specifies a page
74224// token to use. Set `pageToken` to the `nextPageToken` returned by a
74225// previous list request to get the next page of results.
74226func (c *GlobalPublicDelegatedPrefixesListCall) PageToken(pageToken string) *GlobalPublicDelegatedPrefixesListCall {
74227	c.urlParams_.Set("pageToken", pageToken)
74228	return c
74229}
74230
74231// ReturnPartialSuccess sets the optional parameter
74232// "returnPartialSuccess": Opt-in for partial success behavior which
74233// provides partial results in case of failure. The default value is
74234// false.
74235func (c *GlobalPublicDelegatedPrefixesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalPublicDelegatedPrefixesListCall {
74236	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
74237	return c
74238}
74239
74240// Fields allows partial responses to be retrieved. See
74241// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74242// for more information.
74243func (c *GlobalPublicDelegatedPrefixesListCall) Fields(s ...googleapi.Field) *GlobalPublicDelegatedPrefixesListCall {
74244	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74245	return c
74246}
74247
74248// IfNoneMatch sets the optional parameter which makes the operation
74249// fail if the object's ETag matches the given value. This is useful for
74250// getting updates only after the object has changed since the last
74251// request. Use googleapi.IsNotModified to check whether the response
74252// error from Do is the result of In-None-Match.
74253func (c *GlobalPublicDelegatedPrefixesListCall) IfNoneMatch(entityTag string) *GlobalPublicDelegatedPrefixesListCall {
74254	c.ifNoneMatch_ = entityTag
74255	return c
74256}
74257
74258// Context sets the context to be used in this call's Do method. Any
74259// pending HTTP request will be aborted if the provided context is
74260// canceled.
74261func (c *GlobalPublicDelegatedPrefixesListCall) Context(ctx context.Context) *GlobalPublicDelegatedPrefixesListCall {
74262	c.ctx_ = ctx
74263	return c
74264}
74265
74266// Header returns an http.Header that can be modified by the caller to
74267// add HTTP headers to the request.
74268func (c *GlobalPublicDelegatedPrefixesListCall) Header() http.Header {
74269	if c.header_ == nil {
74270		c.header_ = make(http.Header)
74271	}
74272	return c.header_
74273}
74274
74275func (c *GlobalPublicDelegatedPrefixesListCall) doRequest(alt string) (*http.Response, error) {
74276	reqHeaders := make(http.Header)
74277	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
74278	for k, v := range c.header_ {
74279		reqHeaders[k] = v
74280	}
74281	reqHeaders.Set("User-Agent", c.s.userAgent())
74282	if c.ifNoneMatch_ != "" {
74283		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
74284	}
74285	var body io.Reader = nil
74286	c.urlParams_.Set("alt", alt)
74287	c.urlParams_.Set("prettyPrint", "false")
74288	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicDelegatedPrefixes")
74289	urls += "?" + c.urlParams_.Encode()
74290	req, err := http.NewRequest("GET", urls, body)
74291	if err != nil {
74292		return nil, err
74293	}
74294	req.Header = reqHeaders
74295	googleapi.Expand(req.URL, map[string]string{
74296		"project": c.project,
74297	})
74298	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74299}
74300
74301// Do executes the "compute.globalPublicDelegatedPrefixes.list" call.
74302// Exactly one of *PublicDelegatedPrefixList or error will be non-nil.
74303// Any non-2xx status code is an error. Response headers are in either
74304// *PublicDelegatedPrefixList.ServerResponse.Header or (if a response
74305// was returned at all) in error.(*googleapi.Error).Header. Use
74306// googleapi.IsNotModified to check whether the returned error was
74307// because http.StatusNotModified was returned.
74308func (c *GlobalPublicDelegatedPrefixesListCall) Do(opts ...googleapi.CallOption) (*PublicDelegatedPrefixList, error) {
74309	gensupport.SetOptions(c.urlParams_, opts...)
74310	res, err := c.doRequest("json")
74311	if res != nil && res.StatusCode == http.StatusNotModified {
74312		if res.Body != nil {
74313			res.Body.Close()
74314		}
74315		return nil, &googleapi.Error{
74316			Code:   res.StatusCode,
74317			Header: res.Header,
74318		}
74319	}
74320	if err != nil {
74321		return nil, err
74322	}
74323	defer googleapi.CloseBody(res)
74324	if err := googleapi.CheckResponse(res); err != nil {
74325		return nil, err
74326	}
74327	ret := &PublicDelegatedPrefixList{
74328		ServerResponse: googleapi.ServerResponse{
74329			Header:         res.Header,
74330			HTTPStatusCode: res.StatusCode,
74331		},
74332	}
74333	target := &ret
74334	if err := gensupport.DecodeResponse(target, res); err != nil {
74335		return nil, err
74336	}
74337	return ret, nil
74338	// {
74339	//   "description": "Lists the global PublicDelegatedPrefixes for a project.",
74340	//   "httpMethod": "GET",
74341	//   "id": "compute.globalPublicDelegatedPrefixes.list",
74342	//   "parameterOrder": [
74343	//     "project"
74344	//   ],
74345	//   "parameters": {
74346	//     "filter": {
74347	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
74348	//       "location": "query",
74349	//       "type": "string"
74350	//     },
74351	//     "maxResults": {
74352	//       "default": "500",
74353	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
74354	//       "format": "uint32",
74355	//       "location": "query",
74356	//       "minimum": "0",
74357	//       "type": "integer"
74358	//     },
74359	//     "orderBy": {
74360	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
74361	//       "location": "query",
74362	//       "type": "string"
74363	//     },
74364	//     "pageToken": {
74365	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
74366	//       "location": "query",
74367	//       "type": "string"
74368	//     },
74369	//     "project": {
74370	//       "description": "Project ID for this request.",
74371	//       "location": "path",
74372	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74373	//       "required": true,
74374	//       "type": "string"
74375	//     },
74376	//     "returnPartialSuccess": {
74377	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
74378	//       "location": "query",
74379	//       "type": "boolean"
74380	//     }
74381	//   },
74382	//   "path": "projects/{project}/global/publicDelegatedPrefixes",
74383	//   "response": {
74384	//     "$ref": "PublicDelegatedPrefixList"
74385	//   },
74386	//   "scopes": [
74387	//     "https://www.googleapis.com/auth/cloud-platform",
74388	//     "https://www.googleapis.com/auth/compute",
74389	//     "https://www.googleapis.com/auth/compute.readonly"
74390	//   ]
74391	// }
74392
74393}
74394
74395// Pages invokes f for each page of results.
74396// A non-nil error returned from f will halt the iteration.
74397// The provided context supersedes any context provided to the Context method.
74398func (c *GlobalPublicDelegatedPrefixesListCall) Pages(ctx context.Context, f func(*PublicDelegatedPrefixList) error) error {
74399	c.ctx_ = ctx
74400	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
74401	for {
74402		x, err := c.Do()
74403		if err != nil {
74404			return err
74405		}
74406		if err := f(x); err != nil {
74407			return err
74408		}
74409		if x.NextPageToken == "" {
74410			return nil
74411		}
74412		c.PageToken(x.NextPageToken)
74413	}
74414}
74415
74416// method id "compute.globalPublicDelegatedPrefixes.patch":
74417
74418type GlobalPublicDelegatedPrefixesPatchCall struct {
74419	s                     *Service
74420	project               string
74421	publicDelegatedPrefix string
74422	publicdelegatedprefix *PublicDelegatedPrefix
74423	urlParams_            gensupport.URLParams
74424	ctx_                  context.Context
74425	header_               http.Header
74426}
74427
74428// Patch: Patches the specified global PublicDelegatedPrefix resource
74429// with the data included in the request. This method supports PATCH
74430// semantics and uses JSON merge patch format and processing rules.
74431func (r *GlobalPublicDelegatedPrefixesService) Patch(project string, publicDelegatedPrefix string, publicdelegatedprefix *PublicDelegatedPrefix) *GlobalPublicDelegatedPrefixesPatchCall {
74432	c := &GlobalPublicDelegatedPrefixesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74433	c.project = project
74434	c.publicDelegatedPrefix = publicDelegatedPrefix
74435	c.publicdelegatedprefix = publicdelegatedprefix
74436	return c
74437}
74438
74439// RequestId sets the optional parameter "requestId": An optional
74440// request ID to identify requests. Specify a unique request ID so that
74441// if you must retry your request, the server will know to ignore the
74442// request if it has already been completed.
74443//
74444// For example, consider a situation where you make an initial request
74445// and the request times out. If you make the request again with the
74446// same request ID, the server can check if original operation with the
74447// same request ID was received, and if so, will ignore the second
74448// request. This prevents clients from accidentally creating duplicate
74449// commitments.
74450//
74451// The request ID must be a valid UUID with the exception that zero UUID
74452// is not supported (00000000-0000-0000-0000-000000000000).
74453func (c *GlobalPublicDelegatedPrefixesPatchCall) RequestId(requestId string) *GlobalPublicDelegatedPrefixesPatchCall {
74454	c.urlParams_.Set("requestId", requestId)
74455	return c
74456}
74457
74458// Fields allows partial responses to be retrieved. See
74459// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74460// for more information.
74461func (c *GlobalPublicDelegatedPrefixesPatchCall) Fields(s ...googleapi.Field) *GlobalPublicDelegatedPrefixesPatchCall {
74462	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74463	return c
74464}
74465
74466// Context sets the context to be used in this call's Do method. Any
74467// pending HTTP request will be aborted if the provided context is
74468// canceled.
74469func (c *GlobalPublicDelegatedPrefixesPatchCall) Context(ctx context.Context) *GlobalPublicDelegatedPrefixesPatchCall {
74470	c.ctx_ = ctx
74471	return c
74472}
74473
74474// Header returns an http.Header that can be modified by the caller to
74475// add HTTP headers to the request.
74476func (c *GlobalPublicDelegatedPrefixesPatchCall) Header() http.Header {
74477	if c.header_ == nil {
74478		c.header_ = make(http.Header)
74479	}
74480	return c.header_
74481}
74482
74483func (c *GlobalPublicDelegatedPrefixesPatchCall) doRequest(alt string) (*http.Response, error) {
74484	reqHeaders := make(http.Header)
74485	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
74486	for k, v := range c.header_ {
74487		reqHeaders[k] = v
74488	}
74489	reqHeaders.Set("User-Agent", c.s.userAgent())
74490	var body io.Reader = nil
74491	body, err := googleapi.WithoutDataWrapper.JSONReader(c.publicdelegatedprefix)
74492	if err != nil {
74493		return nil, err
74494	}
74495	reqHeaders.Set("Content-Type", "application/json")
74496	c.urlParams_.Set("alt", alt)
74497	c.urlParams_.Set("prettyPrint", "false")
74498	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}")
74499	urls += "?" + c.urlParams_.Encode()
74500	req, err := http.NewRequest("PATCH", urls, body)
74501	if err != nil {
74502		return nil, err
74503	}
74504	req.Header = reqHeaders
74505	googleapi.Expand(req.URL, map[string]string{
74506		"project":               c.project,
74507		"publicDelegatedPrefix": c.publicDelegatedPrefix,
74508	})
74509	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74510}
74511
74512// Do executes the "compute.globalPublicDelegatedPrefixes.patch" call.
74513// Exactly one of *Operation or error will be non-nil. Any non-2xx
74514// status code is an error. Response headers are in either
74515// *Operation.ServerResponse.Header or (if a response was returned at
74516// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
74517// to check whether the returned error was because
74518// http.StatusNotModified was returned.
74519func (c *GlobalPublicDelegatedPrefixesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
74520	gensupport.SetOptions(c.urlParams_, opts...)
74521	res, err := c.doRequest("json")
74522	if res != nil && res.StatusCode == http.StatusNotModified {
74523		if res.Body != nil {
74524			res.Body.Close()
74525		}
74526		return nil, &googleapi.Error{
74527			Code:   res.StatusCode,
74528			Header: res.Header,
74529		}
74530	}
74531	if err != nil {
74532		return nil, err
74533	}
74534	defer googleapi.CloseBody(res)
74535	if err := googleapi.CheckResponse(res); err != nil {
74536		return nil, err
74537	}
74538	ret := &Operation{
74539		ServerResponse: googleapi.ServerResponse{
74540			Header:         res.Header,
74541			HTTPStatusCode: res.StatusCode,
74542		},
74543	}
74544	target := &ret
74545	if err := gensupport.DecodeResponse(target, res); err != nil {
74546		return nil, err
74547	}
74548	return ret, nil
74549	// {
74550	//   "description": "Patches the specified global PublicDelegatedPrefix resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules.",
74551	//   "httpMethod": "PATCH",
74552	//   "id": "compute.globalPublicDelegatedPrefixes.patch",
74553	//   "parameterOrder": [
74554	//     "project",
74555	//     "publicDelegatedPrefix"
74556	//   ],
74557	//   "parameters": {
74558	//     "project": {
74559	//       "description": "Project ID for this request.",
74560	//       "location": "path",
74561	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74562	//       "required": true,
74563	//       "type": "string"
74564	//     },
74565	//     "publicDelegatedPrefix": {
74566	//       "description": "Name of the PublicDelegatedPrefix resource to patch.",
74567	//       "location": "path",
74568	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
74569	//       "required": true,
74570	//       "type": "string"
74571	//     },
74572	//     "requestId": {
74573	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
74574	//       "location": "query",
74575	//       "type": "string"
74576	//     }
74577	//   },
74578	//   "path": "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}",
74579	//   "request": {
74580	//     "$ref": "PublicDelegatedPrefix"
74581	//   },
74582	//   "response": {
74583	//     "$ref": "Operation"
74584	//   },
74585	//   "scopes": [
74586	//     "https://www.googleapis.com/auth/cloud-platform",
74587	//     "https://www.googleapis.com/auth/compute"
74588	//   ]
74589	// }
74590
74591}
74592
74593// method id "compute.healthChecks.aggregatedList":
74594
74595type HealthChecksAggregatedListCall struct {
74596	s            *Service
74597	project      string
74598	urlParams_   gensupport.URLParams
74599	ifNoneMatch_ string
74600	ctx_         context.Context
74601	header_      http.Header
74602}
74603
74604// AggregatedList: Retrieves the list of all HealthCheck resources,
74605// regional and global, available to the specified project.
74606func (r *HealthChecksService) AggregatedList(project string) *HealthChecksAggregatedListCall {
74607	c := &HealthChecksAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74608	c.project = project
74609	return c
74610}
74611
74612// Filter sets the optional parameter "filter": A filter expression that
74613// filters resources listed in the response. The expression must specify
74614// the field name, a comparison operator, and the value that you want to
74615// use for filtering. The value must be a string, a number, or a
74616// boolean. The comparison operator must be either `=`, `!=`, `>`, or
74617// `<`.
74618//
74619// For example, if you are filtering Compute Engine instances, you can
74620// exclude instances named `example-instance` by specifying `name !=
74621// example-instance`.
74622//
74623// You can also filter nested fields. For example, you could specify
74624// `scheduling.automaticRestart = false` to include instances only if
74625// they are not scheduled for automatic restarts. You can use filtering
74626// on nested fields to filter based on resource labels.
74627//
74628// To filter on multiple expressions, provide each separate expression
74629// within parentheses. For example: ``` (scheduling.automaticRestart =
74630// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
74631// is an `AND` expression. However, you can include `AND` and `OR`
74632// expressions explicitly. For example: ``` (cpuPlatform = "Intel
74633// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
74634// (scheduling.automaticRestart = true) ```
74635func (c *HealthChecksAggregatedListCall) Filter(filter string) *HealthChecksAggregatedListCall {
74636	c.urlParams_.Set("filter", filter)
74637	return c
74638}
74639
74640// IncludeAllScopes sets the optional parameter "includeAllScopes":
74641// Indicates whether every visible scope for each scope type (zone,
74642// region, global) should be included in the response. For new resource
74643// types added after this field, the flag has no effect as new resource
74644// types will always include every visible scope for each scope type in
74645// response. For resource types which predate this field, if this flag
74646// is omitted or false, only scopes of the scope types where the
74647// resource type is expected to be found will be included.
74648func (c *HealthChecksAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *HealthChecksAggregatedListCall {
74649	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
74650	return c
74651}
74652
74653// MaxResults sets the optional parameter "maxResults": The maximum
74654// number of results per page that should be returned. If the number of
74655// available results is larger than `maxResults`, Compute Engine returns
74656// a `nextPageToken` that can be used to get the next page of results in
74657// subsequent list requests. Acceptable values are `0` to `500`,
74658// inclusive. (Default: `500`)
74659func (c *HealthChecksAggregatedListCall) MaxResults(maxResults int64) *HealthChecksAggregatedListCall {
74660	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
74661	return c
74662}
74663
74664// OrderBy sets the optional parameter "orderBy": Sorts list results by
74665// a certain order. By default, results are returned in alphanumerical
74666// order based on the resource name.
74667//
74668// You can also sort results in descending order based on the creation
74669// timestamp using `orderBy="creationTimestamp desc". This sorts
74670// results based on the `creationTimestamp` field in reverse
74671// chronological order (newest result first). Use this to sort resources
74672// like operations so that the newest operation is returned
74673// first.
74674//
74675// Currently, only sorting by `name` or `creationTimestamp desc` is
74676// supported.
74677func (c *HealthChecksAggregatedListCall) OrderBy(orderBy string) *HealthChecksAggregatedListCall {
74678	c.urlParams_.Set("orderBy", orderBy)
74679	return c
74680}
74681
74682// PageToken sets the optional parameter "pageToken": Specifies a page
74683// token to use. Set `pageToken` to the `nextPageToken` returned by a
74684// previous list request to get the next page of results.
74685func (c *HealthChecksAggregatedListCall) PageToken(pageToken string) *HealthChecksAggregatedListCall {
74686	c.urlParams_.Set("pageToken", pageToken)
74687	return c
74688}
74689
74690// ReturnPartialSuccess sets the optional parameter
74691// "returnPartialSuccess": Opt-in for partial success behavior which
74692// provides partial results in case of failure. The default value is
74693// false.
74694func (c *HealthChecksAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *HealthChecksAggregatedListCall {
74695	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
74696	return c
74697}
74698
74699// Fields allows partial responses to be retrieved. See
74700// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74701// for more information.
74702func (c *HealthChecksAggregatedListCall) Fields(s ...googleapi.Field) *HealthChecksAggregatedListCall {
74703	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74704	return c
74705}
74706
74707// IfNoneMatch sets the optional parameter which makes the operation
74708// fail if the object's ETag matches the given value. This is useful for
74709// getting updates only after the object has changed since the last
74710// request. Use googleapi.IsNotModified to check whether the response
74711// error from Do is the result of In-None-Match.
74712func (c *HealthChecksAggregatedListCall) IfNoneMatch(entityTag string) *HealthChecksAggregatedListCall {
74713	c.ifNoneMatch_ = entityTag
74714	return c
74715}
74716
74717// Context sets the context to be used in this call's Do method. Any
74718// pending HTTP request will be aborted if the provided context is
74719// canceled.
74720func (c *HealthChecksAggregatedListCall) Context(ctx context.Context) *HealthChecksAggregatedListCall {
74721	c.ctx_ = ctx
74722	return c
74723}
74724
74725// Header returns an http.Header that can be modified by the caller to
74726// add HTTP headers to the request.
74727func (c *HealthChecksAggregatedListCall) Header() http.Header {
74728	if c.header_ == nil {
74729		c.header_ = make(http.Header)
74730	}
74731	return c.header_
74732}
74733
74734func (c *HealthChecksAggregatedListCall) doRequest(alt string) (*http.Response, error) {
74735	reqHeaders := make(http.Header)
74736	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
74737	for k, v := range c.header_ {
74738		reqHeaders[k] = v
74739	}
74740	reqHeaders.Set("User-Agent", c.s.userAgent())
74741	if c.ifNoneMatch_ != "" {
74742		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
74743	}
74744	var body io.Reader = nil
74745	c.urlParams_.Set("alt", alt)
74746	c.urlParams_.Set("prettyPrint", "false")
74747	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/healthChecks")
74748	urls += "?" + c.urlParams_.Encode()
74749	req, err := http.NewRequest("GET", urls, body)
74750	if err != nil {
74751		return nil, err
74752	}
74753	req.Header = reqHeaders
74754	googleapi.Expand(req.URL, map[string]string{
74755		"project": c.project,
74756	})
74757	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74758}
74759
74760// Do executes the "compute.healthChecks.aggregatedList" call.
74761// Exactly one of *HealthChecksAggregatedList or error will be non-nil.
74762// Any non-2xx status code is an error. Response headers are in either
74763// *HealthChecksAggregatedList.ServerResponse.Header or (if a response
74764// was returned at all) in error.(*googleapi.Error).Header. Use
74765// googleapi.IsNotModified to check whether the returned error was
74766// because http.StatusNotModified was returned.
74767func (c *HealthChecksAggregatedListCall) Do(opts ...googleapi.CallOption) (*HealthChecksAggregatedList, error) {
74768	gensupport.SetOptions(c.urlParams_, opts...)
74769	res, err := c.doRequest("json")
74770	if res != nil && res.StatusCode == http.StatusNotModified {
74771		if res.Body != nil {
74772			res.Body.Close()
74773		}
74774		return nil, &googleapi.Error{
74775			Code:   res.StatusCode,
74776			Header: res.Header,
74777		}
74778	}
74779	if err != nil {
74780		return nil, err
74781	}
74782	defer googleapi.CloseBody(res)
74783	if err := googleapi.CheckResponse(res); err != nil {
74784		return nil, err
74785	}
74786	ret := &HealthChecksAggregatedList{
74787		ServerResponse: googleapi.ServerResponse{
74788			Header:         res.Header,
74789			HTTPStatusCode: res.StatusCode,
74790		},
74791	}
74792	target := &ret
74793	if err := gensupport.DecodeResponse(target, res); err != nil {
74794		return nil, err
74795	}
74796	return ret, nil
74797	// {
74798	//   "description": "Retrieves the list of all HealthCheck resources, regional and global, available to the specified project.",
74799	//   "httpMethod": "GET",
74800	//   "id": "compute.healthChecks.aggregatedList",
74801	//   "parameterOrder": [
74802	//     "project"
74803	//   ],
74804	//   "parameters": {
74805	//     "filter": {
74806	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
74807	//       "location": "query",
74808	//       "type": "string"
74809	//     },
74810	//     "includeAllScopes": {
74811	//       "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.",
74812	//       "location": "query",
74813	//       "type": "boolean"
74814	//     },
74815	//     "maxResults": {
74816	//       "default": "500",
74817	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
74818	//       "format": "uint32",
74819	//       "location": "query",
74820	//       "minimum": "0",
74821	//       "type": "integer"
74822	//     },
74823	//     "orderBy": {
74824	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
74825	//       "location": "query",
74826	//       "type": "string"
74827	//     },
74828	//     "pageToken": {
74829	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
74830	//       "location": "query",
74831	//       "type": "string"
74832	//     },
74833	//     "project": {
74834	//       "description": "Name of the project scoping this request.",
74835	//       "location": "path",
74836	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74837	//       "required": true,
74838	//       "type": "string"
74839	//     },
74840	//     "returnPartialSuccess": {
74841	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
74842	//       "location": "query",
74843	//       "type": "boolean"
74844	//     }
74845	//   },
74846	//   "path": "projects/{project}/aggregated/healthChecks",
74847	//   "response": {
74848	//     "$ref": "HealthChecksAggregatedList"
74849	//   },
74850	//   "scopes": [
74851	//     "https://www.googleapis.com/auth/cloud-platform",
74852	//     "https://www.googleapis.com/auth/compute",
74853	//     "https://www.googleapis.com/auth/compute.readonly"
74854	//   ]
74855	// }
74856
74857}
74858
74859// Pages invokes f for each page of results.
74860// A non-nil error returned from f will halt the iteration.
74861// The provided context supersedes any context provided to the Context method.
74862func (c *HealthChecksAggregatedListCall) Pages(ctx context.Context, f func(*HealthChecksAggregatedList) error) error {
74863	c.ctx_ = ctx
74864	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
74865	for {
74866		x, err := c.Do()
74867		if err != nil {
74868			return err
74869		}
74870		if err := f(x); err != nil {
74871			return err
74872		}
74873		if x.NextPageToken == "" {
74874			return nil
74875		}
74876		c.PageToken(x.NextPageToken)
74877	}
74878}
74879
74880// method id "compute.healthChecks.delete":
74881
74882type HealthChecksDeleteCall struct {
74883	s           *Service
74884	project     string
74885	healthCheck string
74886	urlParams_  gensupport.URLParams
74887	ctx_        context.Context
74888	header_     http.Header
74889}
74890
74891// Delete: Deletes the specified HealthCheck resource.
74892func (r *HealthChecksService) Delete(project string, healthCheck string) *HealthChecksDeleteCall {
74893	c := &HealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74894	c.project = project
74895	c.healthCheck = healthCheck
74896	return c
74897}
74898
74899// RequestId sets the optional parameter "requestId": An optional
74900// request ID to identify requests. Specify a unique request ID so that
74901// if you must retry your request, the server will know to ignore the
74902// request if it has already been completed.
74903//
74904// For example, consider a situation where you make an initial request
74905// and the request times out. If you make the request again with the
74906// same request ID, the server can check if original operation with the
74907// same request ID was received, and if so, will ignore the second
74908// request. This prevents clients from accidentally creating duplicate
74909// commitments.
74910//
74911// The request ID must be a valid UUID with the exception that zero UUID
74912// is not supported (00000000-0000-0000-0000-000000000000).
74913func (c *HealthChecksDeleteCall) RequestId(requestId string) *HealthChecksDeleteCall {
74914	c.urlParams_.Set("requestId", requestId)
74915	return c
74916}
74917
74918// Fields allows partial responses to be retrieved. See
74919// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74920// for more information.
74921func (c *HealthChecksDeleteCall) Fields(s ...googleapi.Field) *HealthChecksDeleteCall {
74922	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74923	return c
74924}
74925
74926// Context sets the context to be used in this call's Do method. Any
74927// pending HTTP request will be aborted if the provided context is
74928// canceled.
74929func (c *HealthChecksDeleteCall) Context(ctx context.Context) *HealthChecksDeleteCall {
74930	c.ctx_ = ctx
74931	return c
74932}
74933
74934// Header returns an http.Header that can be modified by the caller to
74935// add HTTP headers to the request.
74936func (c *HealthChecksDeleteCall) Header() http.Header {
74937	if c.header_ == nil {
74938		c.header_ = make(http.Header)
74939	}
74940	return c.header_
74941}
74942
74943func (c *HealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) {
74944	reqHeaders := make(http.Header)
74945	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
74946	for k, v := range c.header_ {
74947		reqHeaders[k] = v
74948	}
74949	reqHeaders.Set("User-Agent", c.s.userAgent())
74950	var body io.Reader = nil
74951	c.urlParams_.Set("alt", alt)
74952	c.urlParams_.Set("prettyPrint", "false")
74953	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/healthChecks/{healthCheck}")
74954	urls += "?" + c.urlParams_.Encode()
74955	req, err := http.NewRequest("DELETE", urls, body)
74956	if err != nil {
74957		return nil, err
74958	}
74959	req.Header = reqHeaders
74960	googleapi.Expand(req.URL, map[string]string{
74961		"project":     c.project,
74962		"healthCheck": c.healthCheck,
74963	})
74964	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74965}
74966
74967// Do executes the "compute.healthChecks.delete" call.
74968// Exactly one of *Operation or error will be non-nil. Any non-2xx
74969// status code is an error. Response headers are in either
74970// *Operation.ServerResponse.Header or (if a response was returned at
74971// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
74972// to check whether the returned error was because
74973// http.StatusNotModified was returned.
74974func (c *HealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
74975	gensupport.SetOptions(c.urlParams_, opts...)
74976	res, err := c.doRequest("json")
74977	if res != nil && res.StatusCode == http.StatusNotModified {
74978		if res.Body != nil {
74979			res.Body.Close()
74980		}
74981		return nil, &googleapi.Error{
74982			Code:   res.StatusCode,
74983			Header: res.Header,
74984		}
74985	}
74986	if err != nil {
74987		return nil, err
74988	}
74989	defer googleapi.CloseBody(res)
74990	if err := googleapi.CheckResponse(res); err != nil {
74991		return nil, err
74992	}
74993	ret := &Operation{
74994		ServerResponse: googleapi.ServerResponse{
74995			Header:         res.Header,
74996			HTTPStatusCode: res.StatusCode,
74997		},
74998	}
74999	target := &ret
75000	if err := gensupport.DecodeResponse(target, res); err != nil {
75001		return nil, err
75002	}
75003	return ret, nil
75004	// {
75005	//   "description": "Deletes the specified HealthCheck resource.",
75006	//   "httpMethod": "DELETE",
75007	//   "id": "compute.healthChecks.delete",
75008	//   "parameterOrder": [
75009	//     "project",
75010	//     "healthCheck"
75011	//   ],
75012	//   "parameters": {
75013	//     "healthCheck": {
75014	//       "description": "Name of the HealthCheck resource to delete.",
75015	//       "location": "path",
75016	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
75017	//       "required": true,
75018	//       "type": "string"
75019	//     },
75020	//     "project": {
75021	//       "description": "Project ID for this request.",
75022	//       "location": "path",
75023	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75024	//       "required": true,
75025	//       "type": "string"
75026	//     },
75027	//     "requestId": {
75028	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
75029	//       "location": "query",
75030	//       "type": "string"
75031	//     }
75032	//   },
75033	//   "path": "projects/{project}/global/healthChecks/{healthCheck}",
75034	//   "response": {
75035	//     "$ref": "Operation"
75036	//   },
75037	//   "scopes": [
75038	//     "https://www.googleapis.com/auth/cloud-platform",
75039	//     "https://www.googleapis.com/auth/compute"
75040	//   ]
75041	// }
75042
75043}
75044
75045// method id "compute.healthChecks.get":
75046
75047type HealthChecksGetCall struct {
75048	s            *Service
75049	project      string
75050	healthCheck  string
75051	urlParams_   gensupport.URLParams
75052	ifNoneMatch_ string
75053	ctx_         context.Context
75054	header_      http.Header
75055}
75056
75057// Get: Returns the specified HealthCheck resource. Gets a list of
75058// available health checks by making a list() request.
75059func (r *HealthChecksService) Get(project string, healthCheck string) *HealthChecksGetCall {
75060	c := &HealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75061	c.project = project
75062	c.healthCheck = healthCheck
75063	return c
75064}
75065
75066// Fields allows partial responses to be retrieved. See
75067// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75068// for more information.
75069func (c *HealthChecksGetCall) Fields(s ...googleapi.Field) *HealthChecksGetCall {
75070	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75071	return c
75072}
75073
75074// IfNoneMatch sets the optional parameter which makes the operation
75075// fail if the object's ETag matches the given value. This is useful for
75076// getting updates only after the object has changed since the last
75077// request. Use googleapi.IsNotModified to check whether the response
75078// error from Do is the result of In-None-Match.
75079func (c *HealthChecksGetCall) IfNoneMatch(entityTag string) *HealthChecksGetCall {
75080	c.ifNoneMatch_ = entityTag
75081	return c
75082}
75083
75084// Context sets the context to be used in this call's Do method. Any
75085// pending HTTP request will be aborted if the provided context is
75086// canceled.
75087func (c *HealthChecksGetCall) Context(ctx context.Context) *HealthChecksGetCall {
75088	c.ctx_ = ctx
75089	return c
75090}
75091
75092// Header returns an http.Header that can be modified by the caller to
75093// add HTTP headers to the request.
75094func (c *HealthChecksGetCall) Header() http.Header {
75095	if c.header_ == nil {
75096		c.header_ = make(http.Header)
75097	}
75098	return c.header_
75099}
75100
75101func (c *HealthChecksGetCall) doRequest(alt string) (*http.Response, error) {
75102	reqHeaders := make(http.Header)
75103	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
75104	for k, v := range c.header_ {
75105		reqHeaders[k] = v
75106	}
75107	reqHeaders.Set("User-Agent", c.s.userAgent())
75108	if c.ifNoneMatch_ != "" {
75109		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
75110	}
75111	var body io.Reader = nil
75112	c.urlParams_.Set("alt", alt)
75113	c.urlParams_.Set("prettyPrint", "false")
75114	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/healthChecks/{healthCheck}")
75115	urls += "?" + c.urlParams_.Encode()
75116	req, err := http.NewRequest("GET", urls, body)
75117	if err != nil {
75118		return nil, err
75119	}
75120	req.Header = reqHeaders
75121	googleapi.Expand(req.URL, map[string]string{
75122		"project":     c.project,
75123		"healthCheck": c.healthCheck,
75124	})
75125	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75126}
75127
75128// Do executes the "compute.healthChecks.get" call.
75129// Exactly one of *HealthCheck or error will be non-nil. Any non-2xx
75130// status code is an error. Response headers are in either
75131// *HealthCheck.ServerResponse.Header or (if a response was returned at
75132// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
75133// to check whether the returned error was because
75134// http.StatusNotModified was returned.
75135func (c *HealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HealthCheck, error) {
75136	gensupport.SetOptions(c.urlParams_, opts...)
75137	res, err := c.doRequest("json")
75138	if res != nil && res.StatusCode == http.StatusNotModified {
75139		if res.Body != nil {
75140			res.Body.Close()
75141		}
75142		return nil, &googleapi.Error{
75143			Code:   res.StatusCode,
75144			Header: res.Header,
75145		}
75146	}
75147	if err != nil {
75148		return nil, err
75149	}
75150	defer googleapi.CloseBody(res)
75151	if err := googleapi.CheckResponse(res); err != nil {
75152		return nil, err
75153	}
75154	ret := &HealthCheck{
75155		ServerResponse: googleapi.ServerResponse{
75156			Header:         res.Header,
75157			HTTPStatusCode: res.StatusCode,
75158		},
75159	}
75160	target := &ret
75161	if err := gensupport.DecodeResponse(target, res); err != nil {
75162		return nil, err
75163	}
75164	return ret, nil
75165	// {
75166	//   "description": "Returns the specified HealthCheck resource. Gets a list of available health checks by making a list() request.",
75167	//   "httpMethod": "GET",
75168	//   "id": "compute.healthChecks.get",
75169	//   "parameterOrder": [
75170	//     "project",
75171	//     "healthCheck"
75172	//   ],
75173	//   "parameters": {
75174	//     "healthCheck": {
75175	//       "description": "Name of the HealthCheck resource to return.",
75176	//       "location": "path",
75177	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
75178	//       "required": true,
75179	//       "type": "string"
75180	//     },
75181	//     "project": {
75182	//       "description": "Project ID for this request.",
75183	//       "location": "path",
75184	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75185	//       "required": true,
75186	//       "type": "string"
75187	//     }
75188	//   },
75189	//   "path": "projects/{project}/global/healthChecks/{healthCheck}",
75190	//   "response": {
75191	//     "$ref": "HealthCheck"
75192	//   },
75193	//   "scopes": [
75194	//     "https://www.googleapis.com/auth/cloud-platform",
75195	//     "https://www.googleapis.com/auth/compute",
75196	//     "https://www.googleapis.com/auth/compute.readonly"
75197	//   ]
75198	// }
75199
75200}
75201
75202// method id "compute.healthChecks.insert":
75203
75204type HealthChecksInsertCall struct {
75205	s           *Service
75206	project     string
75207	healthcheck *HealthCheck
75208	urlParams_  gensupport.URLParams
75209	ctx_        context.Context
75210	header_     http.Header
75211}
75212
75213// Insert: Creates a HealthCheck resource in the specified project using
75214// the data included in the request.
75215func (r *HealthChecksService) Insert(project string, healthcheck *HealthCheck) *HealthChecksInsertCall {
75216	c := &HealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75217	c.project = project
75218	c.healthcheck = healthcheck
75219	return c
75220}
75221
75222// RequestId sets the optional parameter "requestId": An optional
75223// request ID to identify requests. Specify a unique request ID so that
75224// if you must retry your request, the server will know to ignore the
75225// request if it has already been completed.
75226//
75227// For example, consider a situation where you make an initial request
75228// and the request times out. If you make the request again with the
75229// same request ID, the server can check if original operation with the
75230// same request ID was received, and if so, will ignore the second
75231// request. This prevents clients from accidentally creating duplicate
75232// commitments.
75233//
75234// The request ID must be a valid UUID with the exception that zero UUID
75235// is not supported (00000000-0000-0000-0000-000000000000).
75236func (c *HealthChecksInsertCall) RequestId(requestId string) *HealthChecksInsertCall {
75237	c.urlParams_.Set("requestId", requestId)
75238	return c
75239}
75240
75241// Fields allows partial responses to be retrieved. See
75242// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75243// for more information.
75244func (c *HealthChecksInsertCall) Fields(s ...googleapi.Field) *HealthChecksInsertCall {
75245	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75246	return c
75247}
75248
75249// Context sets the context to be used in this call's Do method. Any
75250// pending HTTP request will be aborted if the provided context is
75251// canceled.
75252func (c *HealthChecksInsertCall) Context(ctx context.Context) *HealthChecksInsertCall {
75253	c.ctx_ = ctx
75254	return c
75255}
75256
75257// Header returns an http.Header that can be modified by the caller to
75258// add HTTP headers to the request.
75259func (c *HealthChecksInsertCall) Header() http.Header {
75260	if c.header_ == nil {
75261		c.header_ = make(http.Header)
75262	}
75263	return c.header_
75264}
75265
75266func (c *HealthChecksInsertCall) doRequest(alt string) (*http.Response, error) {
75267	reqHeaders := make(http.Header)
75268	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
75269	for k, v := range c.header_ {
75270		reqHeaders[k] = v
75271	}
75272	reqHeaders.Set("User-Agent", c.s.userAgent())
75273	var body io.Reader = nil
75274	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
75275	if err != nil {
75276		return nil, err
75277	}
75278	reqHeaders.Set("Content-Type", "application/json")
75279	c.urlParams_.Set("alt", alt)
75280	c.urlParams_.Set("prettyPrint", "false")
75281	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/healthChecks")
75282	urls += "?" + c.urlParams_.Encode()
75283	req, err := http.NewRequest("POST", urls, body)
75284	if err != nil {
75285		return nil, err
75286	}
75287	req.Header = reqHeaders
75288	googleapi.Expand(req.URL, map[string]string{
75289		"project": c.project,
75290	})
75291	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75292}
75293
75294// Do executes the "compute.healthChecks.insert" call.
75295// Exactly one of *Operation or error will be non-nil. Any non-2xx
75296// status code is an error. Response headers are in either
75297// *Operation.ServerResponse.Header or (if a response was returned at
75298// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
75299// to check whether the returned error was because
75300// http.StatusNotModified was returned.
75301func (c *HealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
75302	gensupport.SetOptions(c.urlParams_, opts...)
75303	res, err := c.doRequest("json")
75304	if res != nil && res.StatusCode == http.StatusNotModified {
75305		if res.Body != nil {
75306			res.Body.Close()
75307		}
75308		return nil, &googleapi.Error{
75309			Code:   res.StatusCode,
75310			Header: res.Header,
75311		}
75312	}
75313	if err != nil {
75314		return nil, err
75315	}
75316	defer googleapi.CloseBody(res)
75317	if err := googleapi.CheckResponse(res); err != nil {
75318		return nil, err
75319	}
75320	ret := &Operation{
75321		ServerResponse: googleapi.ServerResponse{
75322			Header:         res.Header,
75323			HTTPStatusCode: res.StatusCode,
75324		},
75325	}
75326	target := &ret
75327	if err := gensupport.DecodeResponse(target, res); err != nil {
75328		return nil, err
75329	}
75330	return ret, nil
75331	// {
75332	//   "description": "Creates a HealthCheck resource in the specified project using the data included in the request.",
75333	//   "httpMethod": "POST",
75334	//   "id": "compute.healthChecks.insert",
75335	//   "parameterOrder": [
75336	//     "project"
75337	//   ],
75338	//   "parameters": {
75339	//     "project": {
75340	//       "description": "Project ID for this request.",
75341	//       "location": "path",
75342	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75343	//       "required": true,
75344	//       "type": "string"
75345	//     },
75346	//     "requestId": {
75347	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
75348	//       "location": "query",
75349	//       "type": "string"
75350	//     }
75351	//   },
75352	//   "path": "projects/{project}/global/healthChecks",
75353	//   "request": {
75354	//     "$ref": "HealthCheck"
75355	//   },
75356	//   "response": {
75357	//     "$ref": "Operation"
75358	//   },
75359	//   "scopes": [
75360	//     "https://www.googleapis.com/auth/cloud-platform",
75361	//     "https://www.googleapis.com/auth/compute"
75362	//   ]
75363	// }
75364
75365}
75366
75367// method id "compute.healthChecks.list":
75368
75369type HealthChecksListCall struct {
75370	s            *Service
75371	project      string
75372	urlParams_   gensupport.URLParams
75373	ifNoneMatch_ string
75374	ctx_         context.Context
75375	header_      http.Header
75376}
75377
75378// List: Retrieves the list of HealthCheck resources available to the
75379// specified project.
75380func (r *HealthChecksService) List(project string) *HealthChecksListCall {
75381	c := &HealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75382	c.project = project
75383	return c
75384}
75385
75386// Filter sets the optional parameter "filter": A filter expression that
75387// filters resources listed in the response. The expression must specify
75388// the field name, a comparison operator, and the value that you want to
75389// use for filtering. The value must be a string, a number, or a
75390// boolean. The comparison operator must be either `=`, `!=`, `>`, or
75391// `<`.
75392//
75393// For example, if you are filtering Compute Engine instances, you can
75394// exclude instances named `example-instance` by specifying `name !=
75395// example-instance`.
75396//
75397// You can also filter nested fields. For example, you could specify
75398// `scheduling.automaticRestart = false` to include instances only if
75399// they are not scheduled for automatic restarts. You can use filtering
75400// on nested fields to filter based on resource labels.
75401//
75402// To filter on multiple expressions, provide each separate expression
75403// within parentheses. For example: ``` (scheduling.automaticRestart =
75404// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
75405// is an `AND` expression. However, you can include `AND` and `OR`
75406// expressions explicitly. For example: ``` (cpuPlatform = "Intel
75407// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
75408// (scheduling.automaticRestart = true) ```
75409func (c *HealthChecksListCall) Filter(filter string) *HealthChecksListCall {
75410	c.urlParams_.Set("filter", filter)
75411	return c
75412}
75413
75414// MaxResults sets the optional parameter "maxResults": The maximum
75415// number of results per page that should be returned. If the number of
75416// available results is larger than `maxResults`, Compute Engine returns
75417// a `nextPageToken` that can be used to get the next page of results in
75418// subsequent list requests. Acceptable values are `0` to `500`,
75419// inclusive. (Default: `500`)
75420func (c *HealthChecksListCall) MaxResults(maxResults int64) *HealthChecksListCall {
75421	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
75422	return c
75423}
75424
75425// OrderBy sets the optional parameter "orderBy": Sorts list results by
75426// a certain order. By default, results are returned in alphanumerical
75427// order based on the resource name.
75428//
75429// You can also sort results in descending order based on the creation
75430// timestamp using `orderBy="creationTimestamp desc". This sorts
75431// results based on the `creationTimestamp` field in reverse
75432// chronological order (newest result first). Use this to sort resources
75433// like operations so that the newest operation is returned
75434// first.
75435//
75436// Currently, only sorting by `name` or `creationTimestamp desc` is
75437// supported.
75438func (c *HealthChecksListCall) OrderBy(orderBy string) *HealthChecksListCall {
75439	c.urlParams_.Set("orderBy", orderBy)
75440	return c
75441}
75442
75443// PageToken sets the optional parameter "pageToken": Specifies a page
75444// token to use. Set `pageToken` to the `nextPageToken` returned by a
75445// previous list request to get the next page of results.
75446func (c *HealthChecksListCall) PageToken(pageToken string) *HealthChecksListCall {
75447	c.urlParams_.Set("pageToken", pageToken)
75448	return c
75449}
75450
75451// ReturnPartialSuccess sets the optional parameter
75452// "returnPartialSuccess": Opt-in for partial success behavior which
75453// provides partial results in case of failure. The default value is
75454// false.
75455func (c *HealthChecksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *HealthChecksListCall {
75456	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
75457	return c
75458}
75459
75460// Fields allows partial responses to be retrieved. See
75461// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75462// for more information.
75463func (c *HealthChecksListCall) Fields(s ...googleapi.Field) *HealthChecksListCall {
75464	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75465	return c
75466}
75467
75468// IfNoneMatch sets the optional parameter which makes the operation
75469// fail if the object's ETag matches the given value. This is useful for
75470// getting updates only after the object has changed since the last
75471// request. Use googleapi.IsNotModified to check whether the response
75472// error from Do is the result of In-None-Match.
75473func (c *HealthChecksListCall) IfNoneMatch(entityTag string) *HealthChecksListCall {
75474	c.ifNoneMatch_ = entityTag
75475	return c
75476}
75477
75478// Context sets the context to be used in this call's Do method. Any
75479// pending HTTP request will be aborted if the provided context is
75480// canceled.
75481func (c *HealthChecksListCall) Context(ctx context.Context) *HealthChecksListCall {
75482	c.ctx_ = ctx
75483	return c
75484}
75485
75486// Header returns an http.Header that can be modified by the caller to
75487// add HTTP headers to the request.
75488func (c *HealthChecksListCall) Header() http.Header {
75489	if c.header_ == nil {
75490		c.header_ = make(http.Header)
75491	}
75492	return c.header_
75493}
75494
75495func (c *HealthChecksListCall) doRequest(alt string) (*http.Response, error) {
75496	reqHeaders := make(http.Header)
75497	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
75498	for k, v := range c.header_ {
75499		reqHeaders[k] = v
75500	}
75501	reqHeaders.Set("User-Agent", c.s.userAgent())
75502	if c.ifNoneMatch_ != "" {
75503		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
75504	}
75505	var body io.Reader = nil
75506	c.urlParams_.Set("alt", alt)
75507	c.urlParams_.Set("prettyPrint", "false")
75508	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/healthChecks")
75509	urls += "?" + c.urlParams_.Encode()
75510	req, err := http.NewRequest("GET", urls, body)
75511	if err != nil {
75512		return nil, err
75513	}
75514	req.Header = reqHeaders
75515	googleapi.Expand(req.URL, map[string]string{
75516		"project": c.project,
75517	})
75518	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75519}
75520
75521// Do executes the "compute.healthChecks.list" call.
75522// Exactly one of *HealthCheckList or error will be non-nil. Any non-2xx
75523// status code is an error. Response headers are in either
75524// *HealthCheckList.ServerResponse.Header or (if a response was returned
75525// at all) in error.(*googleapi.Error).Header. Use
75526// googleapi.IsNotModified to check whether the returned error was
75527// because http.StatusNotModified was returned.
75528func (c *HealthChecksListCall) Do(opts ...googleapi.CallOption) (*HealthCheckList, error) {
75529	gensupport.SetOptions(c.urlParams_, opts...)
75530	res, err := c.doRequest("json")
75531	if res != nil && res.StatusCode == http.StatusNotModified {
75532		if res.Body != nil {
75533			res.Body.Close()
75534		}
75535		return nil, &googleapi.Error{
75536			Code:   res.StatusCode,
75537			Header: res.Header,
75538		}
75539	}
75540	if err != nil {
75541		return nil, err
75542	}
75543	defer googleapi.CloseBody(res)
75544	if err := googleapi.CheckResponse(res); err != nil {
75545		return nil, err
75546	}
75547	ret := &HealthCheckList{
75548		ServerResponse: googleapi.ServerResponse{
75549			Header:         res.Header,
75550			HTTPStatusCode: res.StatusCode,
75551		},
75552	}
75553	target := &ret
75554	if err := gensupport.DecodeResponse(target, res); err != nil {
75555		return nil, err
75556	}
75557	return ret, nil
75558	// {
75559	//   "description": "Retrieves the list of HealthCheck resources available to the specified project.",
75560	//   "httpMethod": "GET",
75561	//   "id": "compute.healthChecks.list",
75562	//   "parameterOrder": [
75563	//     "project"
75564	//   ],
75565	//   "parameters": {
75566	//     "filter": {
75567	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
75568	//       "location": "query",
75569	//       "type": "string"
75570	//     },
75571	//     "maxResults": {
75572	//       "default": "500",
75573	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
75574	//       "format": "uint32",
75575	//       "location": "query",
75576	//       "minimum": "0",
75577	//       "type": "integer"
75578	//     },
75579	//     "orderBy": {
75580	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
75581	//       "location": "query",
75582	//       "type": "string"
75583	//     },
75584	//     "pageToken": {
75585	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
75586	//       "location": "query",
75587	//       "type": "string"
75588	//     },
75589	//     "project": {
75590	//       "description": "Project ID for this request.",
75591	//       "location": "path",
75592	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75593	//       "required": true,
75594	//       "type": "string"
75595	//     },
75596	//     "returnPartialSuccess": {
75597	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
75598	//       "location": "query",
75599	//       "type": "boolean"
75600	//     }
75601	//   },
75602	//   "path": "projects/{project}/global/healthChecks",
75603	//   "response": {
75604	//     "$ref": "HealthCheckList"
75605	//   },
75606	//   "scopes": [
75607	//     "https://www.googleapis.com/auth/cloud-platform",
75608	//     "https://www.googleapis.com/auth/compute",
75609	//     "https://www.googleapis.com/auth/compute.readonly"
75610	//   ]
75611	// }
75612
75613}
75614
75615// Pages invokes f for each page of results.
75616// A non-nil error returned from f will halt the iteration.
75617// The provided context supersedes any context provided to the Context method.
75618func (c *HealthChecksListCall) Pages(ctx context.Context, f func(*HealthCheckList) error) error {
75619	c.ctx_ = ctx
75620	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
75621	for {
75622		x, err := c.Do()
75623		if err != nil {
75624			return err
75625		}
75626		if err := f(x); err != nil {
75627			return err
75628		}
75629		if x.NextPageToken == "" {
75630			return nil
75631		}
75632		c.PageToken(x.NextPageToken)
75633	}
75634}
75635
75636// method id "compute.healthChecks.patch":
75637
75638type HealthChecksPatchCall struct {
75639	s           *Service
75640	project     string
75641	healthCheck string
75642	healthcheck *HealthCheck
75643	urlParams_  gensupport.URLParams
75644	ctx_        context.Context
75645	header_     http.Header
75646}
75647
75648// Patch: Updates a HealthCheck resource in the specified project using
75649// the data included in the request. This method supports PATCH
75650// semantics and uses the JSON merge patch format and processing rules.
75651func (r *HealthChecksService) Patch(project string, healthCheck string, healthcheck *HealthCheck) *HealthChecksPatchCall {
75652	c := &HealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75653	c.project = project
75654	c.healthCheck = healthCheck
75655	c.healthcheck = healthcheck
75656	return c
75657}
75658
75659// RequestId sets the optional parameter "requestId": An optional
75660// request ID to identify requests. Specify a unique request ID so that
75661// if you must retry your request, the server will know to ignore the
75662// request if it has already been completed.
75663//
75664// For example, consider a situation where you make an initial request
75665// and the request times out. If you make the request again with the
75666// same request ID, the server can check if original operation with the
75667// same request ID was received, and if so, will ignore the second
75668// request. This prevents clients from accidentally creating duplicate
75669// commitments.
75670//
75671// The request ID must be a valid UUID with the exception that zero UUID
75672// is not supported (00000000-0000-0000-0000-000000000000).
75673func (c *HealthChecksPatchCall) RequestId(requestId string) *HealthChecksPatchCall {
75674	c.urlParams_.Set("requestId", requestId)
75675	return c
75676}
75677
75678// Fields allows partial responses to be retrieved. See
75679// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75680// for more information.
75681func (c *HealthChecksPatchCall) Fields(s ...googleapi.Field) *HealthChecksPatchCall {
75682	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75683	return c
75684}
75685
75686// Context sets the context to be used in this call's Do method. Any
75687// pending HTTP request will be aborted if the provided context is
75688// canceled.
75689func (c *HealthChecksPatchCall) Context(ctx context.Context) *HealthChecksPatchCall {
75690	c.ctx_ = ctx
75691	return c
75692}
75693
75694// Header returns an http.Header that can be modified by the caller to
75695// add HTTP headers to the request.
75696func (c *HealthChecksPatchCall) Header() http.Header {
75697	if c.header_ == nil {
75698		c.header_ = make(http.Header)
75699	}
75700	return c.header_
75701}
75702
75703func (c *HealthChecksPatchCall) doRequest(alt string) (*http.Response, error) {
75704	reqHeaders := make(http.Header)
75705	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
75706	for k, v := range c.header_ {
75707		reqHeaders[k] = v
75708	}
75709	reqHeaders.Set("User-Agent", c.s.userAgent())
75710	var body io.Reader = nil
75711	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
75712	if err != nil {
75713		return nil, err
75714	}
75715	reqHeaders.Set("Content-Type", "application/json")
75716	c.urlParams_.Set("alt", alt)
75717	c.urlParams_.Set("prettyPrint", "false")
75718	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/healthChecks/{healthCheck}")
75719	urls += "?" + c.urlParams_.Encode()
75720	req, err := http.NewRequest("PATCH", urls, body)
75721	if err != nil {
75722		return nil, err
75723	}
75724	req.Header = reqHeaders
75725	googleapi.Expand(req.URL, map[string]string{
75726		"project":     c.project,
75727		"healthCheck": c.healthCheck,
75728	})
75729	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75730}
75731
75732// Do executes the "compute.healthChecks.patch" call.
75733// Exactly one of *Operation or error will be non-nil. Any non-2xx
75734// status code is an error. Response headers are in either
75735// *Operation.ServerResponse.Header or (if a response was returned at
75736// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
75737// to check whether the returned error was because
75738// http.StatusNotModified was returned.
75739func (c *HealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
75740	gensupport.SetOptions(c.urlParams_, opts...)
75741	res, err := c.doRequest("json")
75742	if res != nil && res.StatusCode == http.StatusNotModified {
75743		if res.Body != nil {
75744			res.Body.Close()
75745		}
75746		return nil, &googleapi.Error{
75747			Code:   res.StatusCode,
75748			Header: res.Header,
75749		}
75750	}
75751	if err != nil {
75752		return nil, err
75753	}
75754	defer googleapi.CloseBody(res)
75755	if err := googleapi.CheckResponse(res); err != nil {
75756		return nil, err
75757	}
75758	ret := &Operation{
75759		ServerResponse: googleapi.ServerResponse{
75760			Header:         res.Header,
75761			HTTPStatusCode: res.StatusCode,
75762		},
75763	}
75764	target := &ret
75765	if err := gensupport.DecodeResponse(target, res); err != nil {
75766		return nil, err
75767	}
75768	return ret, nil
75769	// {
75770	//   "description": "Updates a HealthCheck resource in the specified project using the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.",
75771	//   "httpMethod": "PATCH",
75772	//   "id": "compute.healthChecks.patch",
75773	//   "parameterOrder": [
75774	//     "project",
75775	//     "healthCheck"
75776	//   ],
75777	//   "parameters": {
75778	//     "healthCheck": {
75779	//       "description": "Name of the HealthCheck resource to patch.",
75780	//       "location": "path",
75781	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
75782	//       "required": true,
75783	//       "type": "string"
75784	//     },
75785	//     "project": {
75786	//       "description": "Project ID for this request.",
75787	//       "location": "path",
75788	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75789	//       "required": true,
75790	//       "type": "string"
75791	//     },
75792	//     "requestId": {
75793	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
75794	//       "location": "query",
75795	//       "type": "string"
75796	//     }
75797	//   },
75798	//   "path": "projects/{project}/global/healthChecks/{healthCheck}",
75799	//   "request": {
75800	//     "$ref": "HealthCheck"
75801	//   },
75802	//   "response": {
75803	//     "$ref": "Operation"
75804	//   },
75805	//   "scopes": [
75806	//     "https://www.googleapis.com/auth/cloud-platform",
75807	//     "https://www.googleapis.com/auth/compute"
75808	//   ]
75809	// }
75810
75811}
75812
75813// method id "compute.healthChecks.testIamPermissions":
75814
75815type HealthChecksTestIamPermissionsCall struct {
75816	s                      *Service
75817	project                string
75818	resource               string
75819	testpermissionsrequest *TestPermissionsRequest
75820	urlParams_             gensupport.URLParams
75821	ctx_                   context.Context
75822	header_                http.Header
75823}
75824
75825// TestIamPermissions: Returns permissions that a caller has on the
75826// specified resource.
75827func (r *HealthChecksService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *HealthChecksTestIamPermissionsCall {
75828	c := &HealthChecksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75829	c.project = project
75830	c.resource = resource
75831	c.testpermissionsrequest = testpermissionsrequest
75832	return c
75833}
75834
75835// Fields allows partial responses to be retrieved. See
75836// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75837// for more information.
75838func (c *HealthChecksTestIamPermissionsCall) Fields(s ...googleapi.Field) *HealthChecksTestIamPermissionsCall {
75839	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75840	return c
75841}
75842
75843// Context sets the context to be used in this call's Do method. Any
75844// pending HTTP request will be aborted if the provided context is
75845// canceled.
75846func (c *HealthChecksTestIamPermissionsCall) Context(ctx context.Context) *HealthChecksTestIamPermissionsCall {
75847	c.ctx_ = ctx
75848	return c
75849}
75850
75851// Header returns an http.Header that can be modified by the caller to
75852// add HTTP headers to the request.
75853func (c *HealthChecksTestIamPermissionsCall) Header() http.Header {
75854	if c.header_ == nil {
75855		c.header_ = make(http.Header)
75856	}
75857	return c.header_
75858}
75859
75860func (c *HealthChecksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
75861	reqHeaders := make(http.Header)
75862	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
75863	for k, v := range c.header_ {
75864		reqHeaders[k] = v
75865	}
75866	reqHeaders.Set("User-Agent", c.s.userAgent())
75867	var body io.Reader = nil
75868	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
75869	if err != nil {
75870		return nil, err
75871	}
75872	reqHeaders.Set("Content-Type", "application/json")
75873	c.urlParams_.Set("alt", alt)
75874	c.urlParams_.Set("prettyPrint", "false")
75875	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/healthChecks/{resource}/testIamPermissions")
75876	urls += "?" + c.urlParams_.Encode()
75877	req, err := http.NewRequest("POST", urls, body)
75878	if err != nil {
75879		return nil, err
75880	}
75881	req.Header = reqHeaders
75882	googleapi.Expand(req.URL, map[string]string{
75883		"project":  c.project,
75884		"resource": c.resource,
75885	})
75886	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75887}
75888
75889// Do executes the "compute.healthChecks.testIamPermissions" call.
75890// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
75891// non-2xx status code is an error. Response headers are in either
75892// *TestPermissionsResponse.ServerResponse.Header or (if a response was
75893// returned at all) in error.(*googleapi.Error).Header. Use
75894// googleapi.IsNotModified to check whether the returned error was
75895// because http.StatusNotModified was returned.
75896func (c *HealthChecksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
75897	gensupport.SetOptions(c.urlParams_, opts...)
75898	res, err := c.doRequest("json")
75899	if res != nil && res.StatusCode == http.StatusNotModified {
75900		if res.Body != nil {
75901			res.Body.Close()
75902		}
75903		return nil, &googleapi.Error{
75904			Code:   res.StatusCode,
75905			Header: res.Header,
75906		}
75907	}
75908	if err != nil {
75909		return nil, err
75910	}
75911	defer googleapi.CloseBody(res)
75912	if err := googleapi.CheckResponse(res); err != nil {
75913		return nil, err
75914	}
75915	ret := &TestPermissionsResponse{
75916		ServerResponse: googleapi.ServerResponse{
75917			Header:         res.Header,
75918			HTTPStatusCode: res.StatusCode,
75919		},
75920	}
75921	target := &ret
75922	if err := gensupport.DecodeResponse(target, res); err != nil {
75923		return nil, err
75924	}
75925	return ret, nil
75926	// {
75927	//   "description": "Returns permissions that a caller has on the specified resource.",
75928	//   "httpMethod": "POST",
75929	//   "id": "compute.healthChecks.testIamPermissions",
75930	//   "parameterOrder": [
75931	//     "project",
75932	//     "resource"
75933	//   ],
75934	//   "parameters": {
75935	//     "project": {
75936	//       "description": "Project ID for this request.",
75937	//       "location": "path",
75938	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75939	//       "required": true,
75940	//       "type": "string"
75941	//     },
75942	//     "resource": {
75943	//       "description": "Name or id of the resource for this request.",
75944	//       "location": "path",
75945	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
75946	//       "required": true,
75947	//       "type": "string"
75948	//     }
75949	//   },
75950	//   "path": "projects/{project}/global/healthChecks/{resource}/testIamPermissions",
75951	//   "request": {
75952	//     "$ref": "TestPermissionsRequest"
75953	//   },
75954	//   "response": {
75955	//     "$ref": "TestPermissionsResponse"
75956	//   },
75957	//   "scopes": [
75958	//     "https://www.googleapis.com/auth/cloud-platform",
75959	//     "https://www.googleapis.com/auth/compute",
75960	//     "https://www.googleapis.com/auth/compute.readonly"
75961	//   ]
75962	// }
75963
75964}
75965
75966// method id "compute.healthChecks.update":
75967
75968type HealthChecksUpdateCall struct {
75969	s           *Service
75970	project     string
75971	healthCheck string
75972	healthcheck *HealthCheck
75973	urlParams_  gensupport.URLParams
75974	ctx_        context.Context
75975	header_     http.Header
75976}
75977
75978// Update: Updates a HealthCheck resource in the specified project using
75979// the data included in the request.
75980func (r *HealthChecksService) Update(project string, healthCheck string, healthcheck *HealthCheck) *HealthChecksUpdateCall {
75981	c := &HealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75982	c.project = project
75983	c.healthCheck = healthCheck
75984	c.healthcheck = healthcheck
75985	return c
75986}
75987
75988// RequestId sets the optional parameter "requestId": An optional
75989// request ID to identify requests. Specify a unique request ID so that
75990// if you must retry your request, the server will know to ignore the
75991// request if it has already been completed.
75992//
75993// For example, consider a situation where you make an initial request
75994// and the request times out. If you make the request again with the
75995// same request ID, the server can check if original operation with the
75996// same request ID was received, and if so, will ignore the second
75997// request. This prevents clients from accidentally creating duplicate
75998// commitments.
75999//
76000// The request ID must be a valid UUID with the exception that zero UUID
76001// is not supported (00000000-0000-0000-0000-000000000000).
76002func (c *HealthChecksUpdateCall) RequestId(requestId string) *HealthChecksUpdateCall {
76003	c.urlParams_.Set("requestId", requestId)
76004	return c
76005}
76006
76007// Fields allows partial responses to be retrieved. See
76008// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76009// for more information.
76010func (c *HealthChecksUpdateCall) Fields(s ...googleapi.Field) *HealthChecksUpdateCall {
76011	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76012	return c
76013}
76014
76015// Context sets the context to be used in this call's Do method. Any
76016// pending HTTP request will be aborted if the provided context is
76017// canceled.
76018func (c *HealthChecksUpdateCall) Context(ctx context.Context) *HealthChecksUpdateCall {
76019	c.ctx_ = ctx
76020	return c
76021}
76022
76023// Header returns an http.Header that can be modified by the caller to
76024// add HTTP headers to the request.
76025func (c *HealthChecksUpdateCall) Header() http.Header {
76026	if c.header_ == nil {
76027		c.header_ = make(http.Header)
76028	}
76029	return c.header_
76030}
76031
76032func (c *HealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) {
76033	reqHeaders := make(http.Header)
76034	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
76035	for k, v := range c.header_ {
76036		reqHeaders[k] = v
76037	}
76038	reqHeaders.Set("User-Agent", c.s.userAgent())
76039	var body io.Reader = nil
76040	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
76041	if err != nil {
76042		return nil, err
76043	}
76044	reqHeaders.Set("Content-Type", "application/json")
76045	c.urlParams_.Set("alt", alt)
76046	c.urlParams_.Set("prettyPrint", "false")
76047	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/healthChecks/{healthCheck}")
76048	urls += "?" + c.urlParams_.Encode()
76049	req, err := http.NewRequest("PUT", urls, body)
76050	if err != nil {
76051		return nil, err
76052	}
76053	req.Header = reqHeaders
76054	googleapi.Expand(req.URL, map[string]string{
76055		"project":     c.project,
76056		"healthCheck": c.healthCheck,
76057	})
76058	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76059}
76060
76061// Do executes the "compute.healthChecks.update" call.
76062// Exactly one of *Operation or error will be non-nil. Any non-2xx
76063// status code is an error. Response headers are in either
76064// *Operation.ServerResponse.Header or (if a response was returned at
76065// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
76066// to check whether the returned error was because
76067// http.StatusNotModified was returned.
76068func (c *HealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
76069	gensupport.SetOptions(c.urlParams_, opts...)
76070	res, err := c.doRequest("json")
76071	if res != nil && res.StatusCode == http.StatusNotModified {
76072		if res.Body != nil {
76073			res.Body.Close()
76074		}
76075		return nil, &googleapi.Error{
76076			Code:   res.StatusCode,
76077			Header: res.Header,
76078		}
76079	}
76080	if err != nil {
76081		return nil, err
76082	}
76083	defer googleapi.CloseBody(res)
76084	if err := googleapi.CheckResponse(res); err != nil {
76085		return nil, err
76086	}
76087	ret := &Operation{
76088		ServerResponse: googleapi.ServerResponse{
76089			Header:         res.Header,
76090			HTTPStatusCode: res.StatusCode,
76091		},
76092	}
76093	target := &ret
76094	if err := gensupport.DecodeResponse(target, res); err != nil {
76095		return nil, err
76096	}
76097	return ret, nil
76098	// {
76099	//   "description": "Updates a HealthCheck resource in the specified project using the data included in the request.",
76100	//   "httpMethod": "PUT",
76101	//   "id": "compute.healthChecks.update",
76102	//   "parameterOrder": [
76103	//     "project",
76104	//     "healthCheck"
76105	//   ],
76106	//   "parameters": {
76107	//     "healthCheck": {
76108	//       "description": "Name of the HealthCheck resource to update.",
76109	//       "location": "path",
76110	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
76111	//       "required": true,
76112	//       "type": "string"
76113	//     },
76114	//     "project": {
76115	//       "description": "Project ID for this request.",
76116	//       "location": "path",
76117	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76118	//       "required": true,
76119	//       "type": "string"
76120	//     },
76121	//     "requestId": {
76122	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
76123	//       "location": "query",
76124	//       "type": "string"
76125	//     }
76126	//   },
76127	//   "path": "projects/{project}/global/healthChecks/{healthCheck}",
76128	//   "request": {
76129	//     "$ref": "HealthCheck"
76130	//   },
76131	//   "response": {
76132	//     "$ref": "Operation"
76133	//   },
76134	//   "scopes": [
76135	//     "https://www.googleapis.com/auth/cloud-platform",
76136	//     "https://www.googleapis.com/auth/compute"
76137	//   ]
76138	// }
76139
76140}
76141
76142// method id "compute.httpHealthChecks.delete":
76143
76144type HttpHealthChecksDeleteCall struct {
76145	s               *Service
76146	project         string
76147	httpHealthCheck string
76148	urlParams_      gensupport.URLParams
76149	ctx_            context.Context
76150	header_         http.Header
76151}
76152
76153// Delete: Deletes the specified HttpHealthCheck resource.
76154// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/delete
76155func (r *HttpHealthChecksService) Delete(project string, httpHealthCheck string) *HttpHealthChecksDeleteCall {
76156	c := &HttpHealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76157	c.project = project
76158	c.httpHealthCheck = httpHealthCheck
76159	return c
76160}
76161
76162// RequestId sets the optional parameter "requestId": An optional
76163// request ID to identify requests. Specify a unique request ID so that
76164// if you must retry your request, the server will know to ignore the
76165// request if it has already been completed.
76166//
76167// For example, consider a situation where you make an initial request
76168// and the request times out. If you make the request again with the
76169// same request ID, the server can check if original operation with the
76170// same request ID was received, and if so, will ignore the second
76171// request. This prevents clients from accidentally creating duplicate
76172// commitments.
76173//
76174// The request ID must be a valid UUID with the exception that zero UUID
76175// is not supported (00000000-0000-0000-0000-000000000000).
76176func (c *HttpHealthChecksDeleteCall) RequestId(requestId string) *HttpHealthChecksDeleteCall {
76177	c.urlParams_.Set("requestId", requestId)
76178	return c
76179}
76180
76181// Fields allows partial responses to be retrieved. See
76182// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76183// for more information.
76184func (c *HttpHealthChecksDeleteCall) Fields(s ...googleapi.Field) *HttpHealthChecksDeleteCall {
76185	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76186	return c
76187}
76188
76189// Context sets the context to be used in this call's Do method. Any
76190// pending HTTP request will be aborted if the provided context is
76191// canceled.
76192func (c *HttpHealthChecksDeleteCall) Context(ctx context.Context) *HttpHealthChecksDeleteCall {
76193	c.ctx_ = ctx
76194	return c
76195}
76196
76197// Header returns an http.Header that can be modified by the caller to
76198// add HTTP headers to the request.
76199func (c *HttpHealthChecksDeleteCall) Header() http.Header {
76200	if c.header_ == nil {
76201		c.header_ = make(http.Header)
76202	}
76203	return c.header_
76204}
76205
76206func (c *HttpHealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) {
76207	reqHeaders := make(http.Header)
76208	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
76209	for k, v := range c.header_ {
76210		reqHeaders[k] = v
76211	}
76212	reqHeaders.Set("User-Agent", c.s.userAgent())
76213	var body io.Reader = nil
76214	c.urlParams_.Set("alt", alt)
76215	c.urlParams_.Set("prettyPrint", "false")
76216	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpHealthChecks/{httpHealthCheck}")
76217	urls += "?" + c.urlParams_.Encode()
76218	req, err := http.NewRequest("DELETE", urls, body)
76219	if err != nil {
76220		return nil, err
76221	}
76222	req.Header = reqHeaders
76223	googleapi.Expand(req.URL, map[string]string{
76224		"project":         c.project,
76225		"httpHealthCheck": c.httpHealthCheck,
76226	})
76227	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76228}
76229
76230// Do executes the "compute.httpHealthChecks.delete" call.
76231// Exactly one of *Operation or error will be non-nil. Any non-2xx
76232// status code is an error. Response headers are in either
76233// *Operation.ServerResponse.Header or (if a response was returned at
76234// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
76235// to check whether the returned error was because
76236// http.StatusNotModified was returned.
76237func (c *HttpHealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
76238	gensupport.SetOptions(c.urlParams_, opts...)
76239	res, err := c.doRequest("json")
76240	if res != nil && res.StatusCode == http.StatusNotModified {
76241		if res.Body != nil {
76242			res.Body.Close()
76243		}
76244		return nil, &googleapi.Error{
76245			Code:   res.StatusCode,
76246			Header: res.Header,
76247		}
76248	}
76249	if err != nil {
76250		return nil, err
76251	}
76252	defer googleapi.CloseBody(res)
76253	if err := googleapi.CheckResponse(res); err != nil {
76254		return nil, err
76255	}
76256	ret := &Operation{
76257		ServerResponse: googleapi.ServerResponse{
76258			Header:         res.Header,
76259			HTTPStatusCode: res.StatusCode,
76260		},
76261	}
76262	target := &ret
76263	if err := gensupport.DecodeResponse(target, res); err != nil {
76264		return nil, err
76265	}
76266	return ret, nil
76267	// {
76268	//   "description": "Deletes the specified HttpHealthCheck resource.",
76269	//   "httpMethod": "DELETE",
76270	//   "id": "compute.httpHealthChecks.delete",
76271	//   "parameterOrder": [
76272	//     "project",
76273	//     "httpHealthCheck"
76274	//   ],
76275	//   "parameters": {
76276	//     "httpHealthCheck": {
76277	//       "description": "Name of the HttpHealthCheck resource to delete.",
76278	//       "location": "path",
76279	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
76280	//       "required": true,
76281	//       "type": "string"
76282	//     },
76283	//     "project": {
76284	//       "description": "Project ID for this request.",
76285	//       "location": "path",
76286	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76287	//       "required": true,
76288	//       "type": "string"
76289	//     },
76290	//     "requestId": {
76291	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
76292	//       "location": "query",
76293	//       "type": "string"
76294	//     }
76295	//   },
76296	//   "path": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}",
76297	//   "response": {
76298	//     "$ref": "Operation"
76299	//   },
76300	//   "scopes": [
76301	//     "https://www.googleapis.com/auth/cloud-platform",
76302	//     "https://www.googleapis.com/auth/compute"
76303	//   ]
76304	// }
76305
76306}
76307
76308// method id "compute.httpHealthChecks.get":
76309
76310type HttpHealthChecksGetCall struct {
76311	s               *Service
76312	project         string
76313	httpHealthCheck string
76314	urlParams_      gensupport.URLParams
76315	ifNoneMatch_    string
76316	ctx_            context.Context
76317	header_         http.Header
76318}
76319
76320// Get: Returns the specified HttpHealthCheck resource. Gets a list of
76321// available HTTP health checks by making a list() request.
76322// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/get
76323func (r *HttpHealthChecksService) Get(project string, httpHealthCheck string) *HttpHealthChecksGetCall {
76324	c := &HttpHealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76325	c.project = project
76326	c.httpHealthCheck = httpHealthCheck
76327	return c
76328}
76329
76330// Fields allows partial responses to be retrieved. See
76331// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76332// for more information.
76333func (c *HttpHealthChecksGetCall) Fields(s ...googleapi.Field) *HttpHealthChecksGetCall {
76334	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76335	return c
76336}
76337
76338// IfNoneMatch sets the optional parameter which makes the operation
76339// fail if the object's ETag matches the given value. This is useful for
76340// getting updates only after the object has changed since the last
76341// request. Use googleapi.IsNotModified to check whether the response
76342// error from Do is the result of In-None-Match.
76343func (c *HttpHealthChecksGetCall) IfNoneMatch(entityTag string) *HttpHealthChecksGetCall {
76344	c.ifNoneMatch_ = entityTag
76345	return c
76346}
76347
76348// Context sets the context to be used in this call's Do method. Any
76349// pending HTTP request will be aborted if the provided context is
76350// canceled.
76351func (c *HttpHealthChecksGetCall) Context(ctx context.Context) *HttpHealthChecksGetCall {
76352	c.ctx_ = ctx
76353	return c
76354}
76355
76356// Header returns an http.Header that can be modified by the caller to
76357// add HTTP headers to the request.
76358func (c *HttpHealthChecksGetCall) Header() http.Header {
76359	if c.header_ == nil {
76360		c.header_ = make(http.Header)
76361	}
76362	return c.header_
76363}
76364
76365func (c *HttpHealthChecksGetCall) doRequest(alt string) (*http.Response, error) {
76366	reqHeaders := make(http.Header)
76367	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
76368	for k, v := range c.header_ {
76369		reqHeaders[k] = v
76370	}
76371	reqHeaders.Set("User-Agent", c.s.userAgent())
76372	if c.ifNoneMatch_ != "" {
76373		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
76374	}
76375	var body io.Reader = nil
76376	c.urlParams_.Set("alt", alt)
76377	c.urlParams_.Set("prettyPrint", "false")
76378	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpHealthChecks/{httpHealthCheck}")
76379	urls += "?" + c.urlParams_.Encode()
76380	req, err := http.NewRequest("GET", urls, body)
76381	if err != nil {
76382		return nil, err
76383	}
76384	req.Header = reqHeaders
76385	googleapi.Expand(req.URL, map[string]string{
76386		"project":         c.project,
76387		"httpHealthCheck": c.httpHealthCheck,
76388	})
76389	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76390}
76391
76392// Do executes the "compute.httpHealthChecks.get" call.
76393// Exactly one of *HttpHealthCheck or error will be non-nil. Any non-2xx
76394// status code is an error. Response headers are in either
76395// *HttpHealthCheck.ServerResponse.Header or (if a response was returned
76396// at all) in error.(*googleapi.Error).Header. Use
76397// googleapi.IsNotModified to check whether the returned error was
76398// because http.StatusNotModified was returned.
76399func (c *HttpHealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HttpHealthCheck, error) {
76400	gensupport.SetOptions(c.urlParams_, opts...)
76401	res, err := c.doRequest("json")
76402	if res != nil && res.StatusCode == http.StatusNotModified {
76403		if res.Body != nil {
76404			res.Body.Close()
76405		}
76406		return nil, &googleapi.Error{
76407			Code:   res.StatusCode,
76408			Header: res.Header,
76409		}
76410	}
76411	if err != nil {
76412		return nil, err
76413	}
76414	defer googleapi.CloseBody(res)
76415	if err := googleapi.CheckResponse(res); err != nil {
76416		return nil, err
76417	}
76418	ret := &HttpHealthCheck{
76419		ServerResponse: googleapi.ServerResponse{
76420			Header:         res.Header,
76421			HTTPStatusCode: res.StatusCode,
76422		},
76423	}
76424	target := &ret
76425	if err := gensupport.DecodeResponse(target, res); err != nil {
76426		return nil, err
76427	}
76428	return ret, nil
76429	// {
76430	//   "description": "Returns the specified HttpHealthCheck resource. Gets a list of available HTTP health checks by making a list() request.",
76431	//   "httpMethod": "GET",
76432	//   "id": "compute.httpHealthChecks.get",
76433	//   "parameterOrder": [
76434	//     "project",
76435	//     "httpHealthCheck"
76436	//   ],
76437	//   "parameters": {
76438	//     "httpHealthCheck": {
76439	//       "description": "Name of the HttpHealthCheck resource to return.",
76440	//       "location": "path",
76441	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
76442	//       "required": true,
76443	//       "type": "string"
76444	//     },
76445	//     "project": {
76446	//       "description": "Project ID for this request.",
76447	//       "location": "path",
76448	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76449	//       "required": true,
76450	//       "type": "string"
76451	//     }
76452	//   },
76453	//   "path": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}",
76454	//   "response": {
76455	//     "$ref": "HttpHealthCheck"
76456	//   },
76457	//   "scopes": [
76458	//     "https://www.googleapis.com/auth/cloud-platform",
76459	//     "https://www.googleapis.com/auth/compute",
76460	//     "https://www.googleapis.com/auth/compute.readonly"
76461	//   ]
76462	// }
76463
76464}
76465
76466// method id "compute.httpHealthChecks.insert":
76467
76468type HttpHealthChecksInsertCall struct {
76469	s               *Service
76470	project         string
76471	httphealthcheck *HttpHealthCheck
76472	urlParams_      gensupport.URLParams
76473	ctx_            context.Context
76474	header_         http.Header
76475}
76476
76477// Insert: Creates a HttpHealthCheck resource in the specified project
76478// using the data included in the request.
76479// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/insert
76480func (r *HttpHealthChecksService) Insert(project string, httphealthcheck *HttpHealthCheck) *HttpHealthChecksInsertCall {
76481	c := &HttpHealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76482	c.project = project
76483	c.httphealthcheck = httphealthcheck
76484	return c
76485}
76486
76487// RequestId sets the optional parameter "requestId": An optional
76488// request ID to identify requests. Specify a unique request ID so that
76489// if you must retry your request, the server will know to ignore the
76490// request if it has already been completed.
76491//
76492// For example, consider a situation where you make an initial request
76493// and the request times out. If you make the request again with the
76494// same request ID, the server can check if original operation with the
76495// same request ID was received, and if so, will ignore the second
76496// request. This prevents clients from accidentally creating duplicate
76497// commitments.
76498//
76499// The request ID must be a valid UUID with the exception that zero UUID
76500// is not supported (00000000-0000-0000-0000-000000000000).
76501func (c *HttpHealthChecksInsertCall) RequestId(requestId string) *HttpHealthChecksInsertCall {
76502	c.urlParams_.Set("requestId", requestId)
76503	return c
76504}
76505
76506// Fields allows partial responses to be retrieved. See
76507// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76508// for more information.
76509func (c *HttpHealthChecksInsertCall) Fields(s ...googleapi.Field) *HttpHealthChecksInsertCall {
76510	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76511	return c
76512}
76513
76514// Context sets the context to be used in this call's Do method. Any
76515// pending HTTP request will be aborted if the provided context is
76516// canceled.
76517func (c *HttpHealthChecksInsertCall) Context(ctx context.Context) *HttpHealthChecksInsertCall {
76518	c.ctx_ = ctx
76519	return c
76520}
76521
76522// Header returns an http.Header that can be modified by the caller to
76523// add HTTP headers to the request.
76524func (c *HttpHealthChecksInsertCall) Header() http.Header {
76525	if c.header_ == nil {
76526		c.header_ = make(http.Header)
76527	}
76528	return c.header_
76529}
76530
76531func (c *HttpHealthChecksInsertCall) doRequest(alt string) (*http.Response, error) {
76532	reqHeaders := make(http.Header)
76533	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
76534	for k, v := range c.header_ {
76535		reqHeaders[k] = v
76536	}
76537	reqHeaders.Set("User-Agent", c.s.userAgent())
76538	var body io.Reader = nil
76539	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httphealthcheck)
76540	if err != nil {
76541		return nil, err
76542	}
76543	reqHeaders.Set("Content-Type", "application/json")
76544	c.urlParams_.Set("alt", alt)
76545	c.urlParams_.Set("prettyPrint", "false")
76546	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpHealthChecks")
76547	urls += "?" + c.urlParams_.Encode()
76548	req, err := http.NewRequest("POST", urls, body)
76549	if err != nil {
76550		return nil, err
76551	}
76552	req.Header = reqHeaders
76553	googleapi.Expand(req.URL, map[string]string{
76554		"project": c.project,
76555	})
76556	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76557}
76558
76559// Do executes the "compute.httpHealthChecks.insert" call.
76560// Exactly one of *Operation or error will be non-nil. Any non-2xx
76561// status code is an error. Response headers are in either
76562// *Operation.ServerResponse.Header or (if a response was returned at
76563// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
76564// to check whether the returned error was because
76565// http.StatusNotModified was returned.
76566func (c *HttpHealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
76567	gensupport.SetOptions(c.urlParams_, opts...)
76568	res, err := c.doRequest("json")
76569	if res != nil && res.StatusCode == http.StatusNotModified {
76570		if res.Body != nil {
76571			res.Body.Close()
76572		}
76573		return nil, &googleapi.Error{
76574			Code:   res.StatusCode,
76575			Header: res.Header,
76576		}
76577	}
76578	if err != nil {
76579		return nil, err
76580	}
76581	defer googleapi.CloseBody(res)
76582	if err := googleapi.CheckResponse(res); err != nil {
76583		return nil, err
76584	}
76585	ret := &Operation{
76586		ServerResponse: googleapi.ServerResponse{
76587			Header:         res.Header,
76588			HTTPStatusCode: res.StatusCode,
76589		},
76590	}
76591	target := &ret
76592	if err := gensupport.DecodeResponse(target, res); err != nil {
76593		return nil, err
76594	}
76595	return ret, nil
76596	// {
76597	//   "description": "Creates a HttpHealthCheck resource in the specified project using the data included in the request.",
76598	//   "httpMethod": "POST",
76599	//   "id": "compute.httpHealthChecks.insert",
76600	//   "parameterOrder": [
76601	//     "project"
76602	//   ],
76603	//   "parameters": {
76604	//     "project": {
76605	//       "description": "Project ID for this request.",
76606	//       "location": "path",
76607	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76608	//       "required": true,
76609	//       "type": "string"
76610	//     },
76611	//     "requestId": {
76612	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
76613	//       "location": "query",
76614	//       "type": "string"
76615	//     }
76616	//   },
76617	//   "path": "projects/{project}/global/httpHealthChecks",
76618	//   "request": {
76619	//     "$ref": "HttpHealthCheck"
76620	//   },
76621	//   "response": {
76622	//     "$ref": "Operation"
76623	//   },
76624	//   "scopes": [
76625	//     "https://www.googleapis.com/auth/cloud-platform",
76626	//     "https://www.googleapis.com/auth/compute"
76627	//   ]
76628	// }
76629
76630}
76631
76632// method id "compute.httpHealthChecks.list":
76633
76634type HttpHealthChecksListCall struct {
76635	s            *Service
76636	project      string
76637	urlParams_   gensupport.URLParams
76638	ifNoneMatch_ string
76639	ctx_         context.Context
76640	header_      http.Header
76641}
76642
76643// List: Retrieves the list of HttpHealthCheck resources available to
76644// the specified project.
76645// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/list
76646func (r *HttpHealthChecksService) List(project string) *HttpHealthChecksListCall {
76647	c := &HttpHealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76648	c.project = project
76649	return c
76650}
76651
76652// Filter sets the optional parameter "filter": A filter expression that
76653// filters resources listed in the response. The expression must specify
76654// the field name, a comparison operator, and the value that you want to
76655// use for filtering. The value must be a string, a number, or a
76656// boolean. The comparison operator must be either `=`, `!=`, `>`, or
76657// `<`.
76658//
76659// For example, if you are filtering Compute Engine instances, you can
76660// exclude instances named `example-instance` by specifying `name !=
76661// example-instance`.
76662//
76663// You can also filter nested fields. For example, you could specify
76664// `scheduling.automaticRestart = false` to include instances only if
76665// they are not scheduled for automatic restarts. You can use filtering
76666// on nested fields to filter based on resource labels.
76667//
76668// To filter on multiple expressions, provide each separate expression
76669// within parentheses. For example: ``` (scheduling.automaticRestart =
76670// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
76671// is an `AND` expression. However, you can include `AND` and `OR`
76672// expressions explicitly. For example: ``` (cpuPlatform = "Intel
76673// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
76674// (scheduling.automaticRestart = true) ```
76675func (c *HttpHealthChecksListCall) Filter(filter string) *HttpHealthChecksListCall {
76676	c.urlParams_.Set("filter", filter)
76677	return c
76678}
76679
76680// MaxResults sets the optional parameter "maxResults": The maximum
76681// number of results per page that should be returned. If the number of
76682// available results is larger than `maxResults`, Compute Engine returns
76683// a `nextPageToken` that can be used to get the next page of results in
76684// subsequent list requests. Acceptable values are `0` to `500`,
76685// inclusive. (Default: `500`)
76686func (c *HttpHealthChecksListCall) MaxResults(maxResults int64) *HttpHealthChecksListCall {
76687	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
76688	return c
76689}
76690
76691// OrderBy sets the optional parameter "orderBy": Sorts list results by
76692// a certain order. By default, results are returned in alphanumerical
76693// order based on the resource name.
76694//
76695// You can also sort results in descending order based on the creation
76696// timestamp using `orderBy="creationTimestamp desc". This sorts
76697// results based on the `creationTimestamp` field in reverse
76698// chronological order (newest result first). Use this to sort resources
76699// like operations so that the newest operation is returned
76700// first.
76701//
76702// Currently, only sorting by `name` or `creationTimestamp desc` is
76703// supported.
76704func (c *HttpHealthChecksListCall) OrderBy(orderBy string) *HttpHealthChecksListCall {
76705	c.urlParams_.Set("orderBy", orderBy)
76706	return c
76707}
76708
76709// PageToken sets the optional parameter "pageToken": Specifies a page
76710// token to use. Set `pageToken` to the `nextPageToken` returned by a
76711// previous list request to get the next page of results.
76712func (c *HttpHealthChecksListCall) PageToken(pageToken string) *HttpHealthChecksListCall {
76713	c.urlParams_.Set("pageToken", pageToken)
76714	return c
76715}
76716
76717// ReturnPartialSuccess sets the optional parameter
76718// "returnPartialSuccess": Opt-in for partial success behavior which
76719// provides partial results in case of failure. The default value is
76720// false.
76721func (c *HttpHealthChecksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *HttpHealthChecksListCall {
76722	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
76723	return c
76724}
76725
76726// Fields allows partial responses to be retrieved. See
76727// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76728// for more information.
76729func (c *HttpHealthChecksListCall) Fields(s ...googleapi.Field) *HttpHealthChecksListCall {
76730	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76731	return c
76732}
76733
76734// IfNoneMatch sets the optional parameter which makes the operation
76735// fail if the object's ETag matches the given value. This is useful for
76736// getting updates only after the object has changed since the last
76737// request. Use googleapi.IsNotModified to check whether the response
76738// error from Do is the result of In-None-Match.
76739func (c *HttpHealthChecksListCall) IfNoneMatch(entityTag string) *HttpHealthChecksListCall {
76740	c.ifNoneMatch_ = entityTag
76741	return c
76742}
76743
76744// Context sets the context to be used in this call's Do method. Any
76745// pending HTTP request will be aborted if the provided context is
76746// canceled.
76747func (c *HttpHealthChecksListCall) Context(ctx context.Context) *HttpHealthChecksListCall {
76748	c.ctx_ = ctx
76749	return c
76750}
76751
76752// Header returns an http.Header that can be modified by the caller to
76753// add HTTP headers to the request.
76754func (c *HttpHealthChecksListCall) Header() http.Header {
76755	if c.header_ == nil {
76756		c.header_ = make(http.Header)
76757	}
76758	return c.header_
76759}
76760
76761func (c *HttpHealthChecksListCall) doRequest(alt string) (*http.Response, error) {
76762	reqHeaders := make(http.Header)
76763	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
76764	for k, v := range c.header_ {
76765		reqHeaders[k] = v
76766	}
76767	reqHeaders.Set("User-Agent", c.s.userAgent())
76768	if c.ifNoneMatch_ != "" {
76769		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
76770	}
76771	var body io.Reader = nil
76772	c.urlParams_.Set("alt", alt)
76773	c.urlParams_.Set("prettyPrint", "false")
76774	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpHealthChecks")
76775	urls += "?" + c.urlParams_.Encode()
76776	req, err := http.NewRequest("GET", urls, body)
76777	if err != nil {
76778		return nil, err
76779	}
76780	req.Header = reqHeaders
76781	googleapi.Expand(req.URL, map[string]string{
76782		"project": c.project,
76783	})
76784	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76785}
76786
76787// Do executes the "compute.httpHealthChecks.list" call.
76788// Exactly one of *HttpHealthCheckList or error will be non-nil. Any
76789// non-2xx status code is an error. Response headers are in either
76790// *HttpHealthCheckList.ServerResponse.Header or (if a response was
76791// returned at all) in error.(*googleapi.Error).Header. Use
76792// googleapi.IsNotModified to check whether the returned error was
76793// because http.StatusNotModified was returned.
76794func (c *HttpHealthChecksListCall) Do(opts ...googleapi.CallOption) (*HttpHealthCheckList, error) {
76795	gensupport.SetOptions(c.urlParams_, opts...)
76796	res, err := c.doRequest("json")
76797	if res != nil && res.StatusCode == http.StatusNotModified {
76798		if res.Body != nil {
76799			res.Body.Close()
76800		}
76801		return nil, &googleapi.Error{
76802			Code:   res.StatusCode,
76803			Header: res.Header,
76804		}
76805	}
76806	if err != nil {
76807		return nil, err
76808	}
76809	defer googleapi.CloseBody(res)
76810	if err := googleapi.CheckResponse(res); err != nil {
76811		return nil, err
76812	}
76813	ret := &HttpHealthCheckList{
76814		ServerResponse: googleapi.ServerResponse{
76815			Header:         res.Header,
76816			HTTPStatusCode: res.StatusCode,
76817		},
76818	}
76819	target := &ret
76820	if err := gensupport.DecodeResponse(target, res); err != nil {
76821		return nil, err
76822	}
76823	return ret, nil
76824	// {
76825	//   "description": "Retrieves the list of HttpHealthCheck resources available to the specified project.",
76826	//   "httpMethod": "GET",
76827	//   "id": "compute.httpHealthChecks.list",
76828	//   "parameterOrder": [
76829	//     "project"
76830	//   ],
76831	//   "parameters": {
76832	//     "filter": {
76833	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
76834	//       "location": "query",
76835	//       "type": "string"
76836	//     },
76837	//     "maxResults": {
76838	//       "default": "500",
76839	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
76840	//       "format": "uint32",
76841	//       "location": "query",
76842	//       "minimum": "0",
76843	//       "type": "integer"
76844	//     },
76845	//     "orderBy": {
76846	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
76847	//       "location": "query",
76848	//       "type": "string"
76849	//     },
76850	//     "pageToken": {
76851	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
76852	//       "location": "query",
76853	//       "type": "string"
76854	//     },
76855	//     "project": {
76856	//       "description": "Project ID for this request.",
76857	//       "location": "path",
76858	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76859	//       "required": true,
76860	//       "type": "string"
76861	//     },
76862	//     "returnPartialSuccess": {
76863	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
76864	//       "location": "query",
76865	//       "type": "boolean"
76866	//     }
76867	//   },
76868	//   "path": "projects/{project}/global/httpHealthChecks",
76869	//   "response": {
76870	//     "$ref": "HttpHealthCheckList"
76871	//   },
76872	//   "scopes": [
76873	//     "https://www.googleapis.com/auth/cloud-platform",
76874	//     "https://www.googleapis.com/auth/compute",
76875	//     "https://www.googleapis.com/auth/compute.readonly"
76876	//   ]
76877	// }
76878
76879}
76880
76881// Pages invokes f for each page of results.
76882// A non-nil error returned from f will halt the iteration.
76883// The provided context supersedes any context provided to the Context method.
76884func (c *HttpHealthChecksListCall) Pages(ctx context.Context, f func(*HttpHealthCheckList) error) error {
76885	c.ctx_ = ctx
76886	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
76887	for {
76888		x, err := c.Do()
76889		if err != nil {
76890			return err
76891		}
76892		if err := f(x); err != nil {
76893			return err
76894		}
76895		if x.NextPageToken == "" {
76896			return nil
76897		}
76898		c.PageToken(x.NextPageToken)
76899	}
76900}
76901
76902// method id "compute.httpHealthChecks.patch":
76903
76904type HttpHealthChecksPatchCall struct {
76905	s               *Service
76906	project         string
76907	httpHealthCheck string
76908	httphealthcheck *HttpHealthCheck
76909	urlParams_      gensupport.URLParams
76910	ctx_            context.Context
76911	header_         http.Header
76912}
76913
76914// Patch: Updates a HttpHealthCheck resource in the specified project
76915// using the data included in the request. This method supports PATCH
76916// semantics and uses the JSON merge patch format and processing rules.
76917// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/patch
76918func (r *HttpHealthChecksService) Patch(project string, httpHealthCheck string, httphealthcheck *HttpHealthCheck) *HttpHealthChecksPatchCall {
76919	c := &HttpHealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76920	c.project = project
76921	c.httpHealthCheck = httpHealthCheck
76922	c.httphealthcheck = httphealthcheck
76923	return c
76924}
76925
76926// RequestId sets the optional parameter "requestId": An optional
76927// request ID to identify requests. Specify a unique request ID so that
76928// if you must retry your request, the server will know to ignore the
76929// request if it has already been completed.
76930//
76931// For example, consider a situation where you make an initial request
76932// and the request times out. If you make the request again with the
76933// same request ID, the server can check if original operation with the
76934// same request ID was received, and if so, will ignore the second
76935// request. This prevents clients from accidentally creating duplicate
76936// commitments.
76937//
76938// The request ID must be a valid UUID with the exception that zero UUID
76939// is not supported (00000000-0000-0000-0000-000000000000).
76940func (c *HttpHealthChecksPatchCall) RequestId(requestId string) *HttpHealthChecksPatchCall {
76941	c.urlParams_.Set("requestId", requestId)
76942	return c
76943}
76944
76945// Fields allows partial responses to be retrieved. See
76946// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76947// for more information.
76948func (c *HttpHealthChecksPatchCall) Fields(s ...googleapi.Field) *HttpHealthChecksPatchCall {
76949	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76950	return c
76951}
76952
76953// Context sets the context to be used in this call's Do method. Any
76954// pending HTTP request will be aborted if the provided context is
76955// canceled.
76956func (c *HttpHealthChecksPatchCall) Context(ctx context.Context) *HttpHealthChecksPatchCall {
76957	c.ctx_ = ctx
76958	return c
76959}
76960
76961// Header returns an http.Header that can be modified by the caller to
76962// add HTTP headers to the request.
76963func (c *HttpHealthChecksPatchCall) Header() http.Header {
76964	if c.header_ == nil {
76965		c.header_ = make(http.Header)
76966	}
76967	return c.header_
76968}
76969
76970func (c *HttpHealthChecksPatchCall) doRequest(alt string) (*http.Response, error) {
76971	reqHeaders := make(http.Header)
76972	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
76973	for k, v := range c.header_ {
76974		reqHeaders[k] = v
76975	}
76976	reqHeaders.Set("User-Agent", c.s.userAgent())
76977	var body io.Reader = nil
76978	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httphealthcheck)
76979	if err != nil {
76980		return nil, err
76981	}
76982	reqHeaders.Set("Content-Type", "application/json")
76983	c.urlParams_.Set("alt", alt)
76984	c.urlParams_.Set("prettyPrint", "false")
76985	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpHealthChecks/{httpHealthCheck}")
76986	urls += "?" + c.urlParams_.Encode()
76987	req, err := http.NewRequest("PATCH", urls, body)
76988	if err != nil {
76989		return nil, err
76990	}
76991	req.Header = reqHeaders
76992	googleapi.Expand(req.URL, map[string]string{
76993		"project":         c.project,
76994		"httpHealthCheck": c.httpHealthCheck,
76995	})
76996	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76997}
76998
76999// Do executes the "compute.httpHealthChecks.patch" call.
77000// Exactly one of *Operation or error will be non-nil. Any non-2xx
77001// status code is an error. Response headers are in either
77002// *Operation.ServerResponse.Header or (if a response was returned at
77003// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
77004// to check whether the returned error was because
77005// http.StatusNotModified was returned.
77006func (c *HttpHealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
77007	gensupport.SetOptions(c.urlParams_, opts...)
77008	res, err := c.doRequest("json")
77009	if res != nil && res.StatusCode == http.StatusNotModified {
77010		if res.Body != nil {
77011			res.Body.Close()
77012		}
77013		return nil, &googleapi.Error{
77014			Code:   res.StatusCode,
77015			Header: res.Header,
77016		}
77017	}
77018	if err != nil {
77019		return nil, err
77020	}
77021	defer googleapi.CloseBody(res)
77022	if err := googleapi.CheckResponse(res); err != nil {
77023		return nil, err
77024	}
77025	ret := &Operation{
77026		ServerResponse: googleapi.ServerResponse{
77027			Header:         res.Header,
77028			HTTPStatusCode: res.StatusCode,
77029		},
77030	}
77031	target := &ret
77032	if err := gensupport.DecodeResponse(target, res); err != nil {
77033		return nil, err
77034	}
77035	return ret, nil
77036	// {
77037	//   "description": "Updates a HttpHealthCheck resource in the specified project using the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.",
77038	//   "httpMethod": "PATCH",
77039	//   "id": "compute.httpHealthChecks.patch",
77040	//   "parameterOrder": [
77041	//     "project",
77042	//     "httpHealthCheck"
77043	//   ],
77044	//   "parameters": {
77045	//     "httpHealthCheck": {
77046	//       "description": "Name of the HttpHealthCheck resource to patch.",
77047	//       "location": "path",
77048	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
77049	//       "required": true,
77050	//       "type": "string"
77051	//     },
77052	//     "project": {
77053	//       "description": "Project ID for this request.",
77054	//       "location": "path",
77055	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77056	//       "required": true,
77057	//       "type": "string"
77058	//     },
77059	//     "requestId": {
77060	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
77061	//       "location": "query",
77062	//       "type": "string"
77063	//     }
77064	//   },
77065	//   "path": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}",
77066	//   "request": {
77067	//     "$ref": "HttpHealthCheck"
77068	//   },
77069	//   "response": {
77070	//     "$ref": "Operation"
77071	//   },
77072	//   "scopes": [
77073	//     "https://www.googleapis.com/auth/cloud-platform",
77074	//     "https://www.googleapis.com/auth/compute"
77075	//   ]
77076	// }
77077
77078}
77079
77080// method id "compute.httpHealthChecks.testIamPermissions":
77081
77082type HttpHealthChecksTestIamPermissionsCall struct {
77083	s                      *Service
77084	project                string
77085	resource               string
77086	testpermissionsrequest *TestPermissionsRequest
77087	urlParams_             gensupport.URLParams
77088	ctx_                   context.Context
77089	header_                http.Header
77090}
77091
77092// TestIamPermissions: Returns permissions that a caller has on the
77093// specified resource.
77094func (r *HttpHealthChecksService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *HttpHealthChecksTestIamPermissionsCall {
77095	c := &HttpHealthChecksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77096	c.project = project
77097	c.resource = resource
77098	c.testpermissionsrequest = testpermissionsrequest
77099	return c
77100}
77101
77102// Fields allows partial responses to be retrieved. See
77103// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77104// for more information.
77105func (c *HttpHealthChecksTestIamPermissionsCall) Fields(s ...googleapi.Field) *HttpHealthChecksTestIamPermissionsCall {
77106	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77107	return c
77108}
77109
77110// Context sets the context to be used in this call's Do method. Any
77111// pending HTTP request will be aborted if the provided context is
77112// canceled.
77113func (c *HttpHealthChecksTestIamPermissionsCall) Context(ctx context.Context) *HttpHealthChecksTestIamPermissionsCall {
77114	c.ctx_ = ctx
77115	return c
77116}
77117
77118// Header returns an http.Header that can be modified by the caller to
77119// add HTTP headers to the request.
77120func (c *HttpHealthChecksTestIamPermissionsCall) Header() http.Header {
77121	if c.header_ == nil {
77122		c.header_ = make(http.Header)
77123	}
77124	return c.header_
77125}
77126
77127func (c *HttpHealthChecksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
77128	reqHeaders := make(http.Header)
77129	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
77130	for k, v := range c.header_ {
77131		reqHeaders[k] = v
77132	}
77133	reqHeaders.Set("User-Agent", c.s.userAgent())
77134	var body io.Reader = nil
77135	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
77136	if err != nil {
77137		return nil, err
77138	}
77139	reqHeaders.Set("Content-Type", "application/json")
77140	c.urlParams_.Set("alt", alt)
77141	c.urlParams_.Set("prettyPrint", "false")
77142	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpHealthChecks/{resource}/testIamPermissions")
77143	urls += "?" + c.urlParams_.Encode()
77144	req, err := http.NewRequest("POST", urls, body)
77145	if err != nil {
77146		return nil, err
77147	}
77148	req.Header = reqHeaders
77149	googleapi.Expand(req.URL, map[string]string{
77150		"project":  c.project,
77151		"resource": c.resource,
77152	})
77153	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77154}
77155
77156// Do executes the "compute.httpHealthChecks.testIamPermissions" call.
77157// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
77158// non-2xx status code is an error. Response headers are in either
77159// *TestPermissionsResponse.ServerResponse.Header or (if a response was
77160// returned at all) in error.(*googleapi.Error).Header. Use
77161// googleapi.IsNotModified to check whether the returned error was
77162// because http.StatusNotModified was returned.
77163func (c *HttpHealthChecksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
77164	gensupport.SetOptions(c.urlParams_, opts...)
77165	res, err := c.doRequest("json")
77166	if res != nil && res.StatusCode == http.StatusNotModified {
77167		if res.Body != nil {
77168			res.Body.Close()
77169		}
77170		return nil, &googleapi.Error{
77171			Code:   res.StatusCode,
77172			Header: res.Header,
77173		}
77174	}
77175	if err != nil {
77176		return nil, err
77177	}
77178	defer googleapi.CloseBody(res)
77179	if err := googleapi.CheckResponse(res); err != nil {
77180		return nil, err
77181	}
77182	ret := &TestPermissionsResponse{
77183		ServerResponse: googleapi.ServerResponse{
77184			Header:         res.Header,
77185			HTTPStatusCode: res.StatusCode,
77186		},
77187	}
77188	target := &ret
77189	if err := gensupport.DecodeResponse(target, res); err != nil {
77190		return nil, err
77191	}
77192	return ret, nil
77193	// {
77194	//   "description": "Returns permissions that a caller has on the specified resource.",
77195	//   "httpMethod": "POST",
77196	//   "id": "compute.httpHealthChecks.testIamPermissions",
77197	//   "parameterOrder": [
77198	//     "project",
77199	//     "resource"
77200	//   ],
77201	//   "parameters": {
77202	//     "project": {
77203	//       "description": "Project ID for this request.",
77204	//       "location": "path",
77205	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77206	//       "required": true,
77207	//       "type": "string"
77208	//     },
77209	//     "resource": {
77210	//       "description": "Name or id of the resource for this request.",
77211	//       "location": "path",
77212	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
77213	//       "required": true,
77214	//       "type": "string"
77215	//     }
77216	//   },
77217	//   "path": "projects/{project}/global/httpHealthChecks/{resource}/testIamPermissions",
77218	//   "request": {
77219	//     "$ref": "TestPermissionsRequest"
77220	//   },
77221	//   "response": {
77222	//     "$ref": "TestPermissionsResponse"
77223	//   },
77224	//   "scopes": [
77225	//     "https://www.googleapis.com/auth/cloud-platform",
77226	//     "https://www.googleapis.com/auth/compute",
77227	//     "https://www.googleapis.com/auth/compute.readonly"
77228	//   ]
77229	// }
77230
77231}
77232
77233// method id "compute.httpHealthChecks.update":
77234
77235type HttpHealthChecksUpdateCall struct {
77236	s               *Service
77237	project         string
77238	httpHealthCheck string
77239	httphealthcheck *HttpHealthCheck
77240	urlParams_      gensupport.URLParams
77241	ctx_            context.Context
77242	header_         http.Header
77243}
77244
77245// Update: Updates a HttpHealthCheck resource in the specified project
77246// using the data included in the request.
77247// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/update
77248func (r *HttpHealthChecksService) Update(project string, httpHealthCheck string, httphealthcheck *HttpHealthCheck) *HttpHealthChecksUpdateCall {
77249	c := &HttpHealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77250	c.project = project
77251	c.httpHealthCheck = httpHealthCheck
77252	c.httphealthcheck = httphealthcheck
77253	return c
77254}
77255
77256// RequestId sets the optional parameter "requestId": An optional
77257// request ID to identify requests. Specify a unique request ID so that
77258// if you must retry your request, the server will know to ignore the
77259// request if it has already been completed.
77260//
77261// For example, consider a situation where you make an initial request
77262// and the request times out. If you make the request again with the
77263// same request ID, the server can check if original operation with the
77264// same request ID was received, and if so, will ignore the second
77265// request. This prevents clients from accidentally creating duplicate
77266// commitments.
77267//
77268// The request ID must be a valid UUID with the exception that zero UUID
77269// is not supported (00000000-0000-0000-0000-000000000000).
77270func (c *HttpHealthChecksUpdateCall) RequestId(requestId string) *HttpHealthChecksUpdateCall {
77271	c.urlParams_.Set("requestId", requestId)
77272	return c
77273}
77274
77275// Fields allows partial responses to be retrieved. See
77276// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77277// for more information.
77278func (c *HttpHealthChecksUpdateCall) Fields(s ...googleapi.Field) *HttpHealthChecksUpdateCall {
77279	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77280	return c
77281}
77282
77283// Context sets the context to be used in this call's Do method. Any
77284// pending HTTP request will be aborted if the provided context is
77285// canceled.
77286func (c *HttpHealthChecksUpdateCall) Context(ctx context.Context) *HttpHealthChecksUpdateCall {
77287	c.ctx_ = ctx
77288	return c
77289}
77290
77291// Header returns an http.Header that can be modified by the caller to
77292// add HTTP headers to the request.
77293func (c *HttpHealthChecksUpdateCall) Header() http.Header {
77294	if c.header_ == nil {
77295		c.header_ = make(http.Header)
77296	}
77297	return c.header_
77298}
77299
77300func (c *HttpHealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) {
77301	reqHeaders := make(http.Header)
77302	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
77303	for k, v := range c.header_ {
77304		reqHeaders[k] = v
77305	}
77306	reqHeaders.Set("User-Agent", c.s.userAgent())
77307	var body io.Reader = nil
77308	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httphealthcheck)
77309	if err != nil {
77310		return nil, err
77311	}
77312	reqHeaders.Set("Content-Type", "application/json")
77313	c.urlParams_.Set("alt", alt)
77314	c.urlParams_.Set("prettyPrint", "false")
77315	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpHealthChecks/{httpHealthCheck}")
77316	urls += "?" + c.urlParams_.Encode()
77317	req, err := http.NewRequest("PUT", urls, body)
77318	if err != nil {
77319		return nil, err
77320	}
77321	req.Header = reqHeaders
77322	googleapi.Expand(req.URL, map[string]string{
77323		"project":         c.project,
77324		"httpHealthCheck": c.httpHealthCheck,
77325	})
77326	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77327}
77328
77329// Do executes the "compute.httpHealthChecks.update" call.
77330// Exactly one of *Operation or error will be non-nil. Any non-2xx
77331// status code is an error. Response headers are in either
77332// *Operation.ServerResponse.Header or (if a response was returned at
77333// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
77334// to check whether the returned error was because
77335// http.StatusNotModified was returned.
77336func (c *HttpHealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
77337	gensupport.SetOptions(c.urlParams_, opts...)
77338	res, err := c.doRequest("json")
77339	if res != nil && res.StatusCode == http.StatusNotModified {
77340		if res.Body != nil {
77341			res.Body.Close()
77342		}
77343		return nil, &googleapi.Error{
77344			Code:   res.StatusCode,
77345			Header: res.Header,
77346		}
77347	}
77348	if err != nil {
77349		return nil, err
77350	}
77351	defer googleapi.CloseBody(res)
77352	if err := googleapi.CheckResponse(res); err != nil {
77353		return nil, err
77354	}
77355	ret := &Operation{
77356		ServerResponse: googleapi.ServerResponse{
77357			Header:         res.Header,
77358			HTTPStatusCode: res.StatusCode,
77359		},
77360	}
77361	target := &ret
77362	if err := gensupport.DecodeResponse(target, res); err != nil {
77363		return nil, err
77364	}
77365	return ret, nil
77366	// {
77367	//   "description": "Updates a HttpHealthCheck resource in the specified project using the data included in the request.",
77368	//   "httpMethod": "PUT",
77369	//   "id": "compute.httpHealthChecks.update",
77370	//   "parameterOrder": [
77371	//     "project",
77372	//     "httpHealthCheck"
77373	//   ],
77374	//   "parameters": {
77375	//     "httpHealthCheck": {
77376	//       "description": "Name of the HttpHealthCheck resource to update.",
77377	//       "location": "path",
77378	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
77379	//       "required": true,
77380	//       "type": "string"
77381	//     },
77382	//     "project": {
77383	//       "description": "Project ID for this request.",
77384	//       "location": "path",
77385	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77386	//       "required": true,
77387	//       "type": "string"
77388	//     },
77389	//     "requestId": {
77390	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
77391	//       "location": "query",
77392	//       "type": "string"
77393	//     }
77394	//   },
77395	//   "path": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}",
77396	//   "request": {
77397	//     "$ref": "HttpHealthCheck"
77398	//   },
77399	//   "response": {
77400	//     "$ref": "Operation"
77401	//   },
77402	//   "scopes": [
77403	//     "https://www.googleapis.com/auth/cloud-platform",
77404	//     "https://www.googleapis.com/auth/compute"
77405	//   ]
77406	// }
77407
77408}
77409
77410// method id "compute.httpsHealthChecks.delete":
77411
77412type HttpsHealthChecksDeleteCall struct {
77413	s                *Service
77414	project          string
77415	httpsHealthCheck string
77416	urlParams_       gensupport.URLParams
77417	ctx_             context.Context
77418	header_          http.Header
77419}
77420
77421// Delete: Deletes the specified HttpsHealthCheck resource.
77422func (r *HttpsHealthChecksService) Delete(project string, httpsHealthCheck string) *HttpsHealthChecksDeleteCall {
77423	c := &HttpsHealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77424	c.project = project
77425	c.httpsHealthCheck = httpsHealthCheck
77426	return c
77427}
77428
77429// RequestId sets the optional parameter "requestId": An optional
77430// request ID to identify requests. Specify a unique request ID so that
77431// if you must retry your request, the server will know to ignore the
77432// request if it has already been completed.
77433//
77434// For example, consider a situation where you make an initial request
77435// and the request times out. If you make the request again with the
77436// same request ID, the server can check if original operation with the
77437// same request ID was received, and if so, will ignore the second
77438// request. This prevents clients from accidentally creating duplicate
77439// commitments.
77440//
77441// The request ID must be a valid UUID with the exception that zero UUID
77442// is not supported (00000000-0000-0000-0000-000000000000).
77443func (c *HttpsHealthChecksDeleteCall) RequestId(requestId string) *HttpsHealthChecksDeleteCall {
77444	c.urlParams_.Set("requestId", requestId)
77445	return c
77446}
77447
77448// Fields allows partial responses to be retrieved. See
77449// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77450// for more information.
77451func (c *HttpsHealthChecksDeleteCall) Fields(s ...googleapi.Field) *HttpsHealthChecksDeleteCall {
77452	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77453	return c
77454}
77455
77456// Context sets the context to be used in this call's Do method. Any
77457// pending HTTP request will be aborted if the provided context is
77458// canceled.
77459func (c *HttpsHealthChecksDeleteCall) Context(ctx context.Context) *HttpsHealthChecksDeleteCall {
77460	c.ctx_ = ctx
77461	return c
77462}
77463
77464// Header returns an http.Header that can be modified by the caller to
77465// add HTTP headers to the request.
77466func (c *HttpsHealthChecksDeleteCall) Header() http.Header {
77467	if c.header_ == nil {
77468		c.header_ = make(http.Header)
77469	}
77470	return c.header_
77471}
77472
77473func (c *HttpsHealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) {
77474	reqHeaders := make(http.Header)
77475	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
77476	for k, v := range c.header_ {
77477		reqHeaders[k] = v
77478	}
77479	reqHeaders.Set("User-Agent", c.s.userAgent())
77480	var body io.Reader = nil
77481	c.urlParams_.Set("alt", alt)
77482	c.urlParams_.Set("prettyPrint", "false")
77483	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}")
77484	urls += "?" + c.urlParams_.Encode()
77485	req, err := http.NewRequest("DELETE", urls, body)
77486	if err != nil {
77487		return nil, err
77488	}
77489	req.Header = reqHeaders
77490	googleapi.Expand(req.URL, map[string]string{
77491		"project":          c.project,
77492		"httpsHealthCheck": c.httpsHealthCheck,
77493	})
77494	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77495}
77496
77497// Do executes the "compute.httpsHealthChecks.delete" call.
77498// Exactly one of *Operation or error will be non-nil. Any non-2xx
77499// status code is an error. Response headers are in either
77500// *Operation.ServerResponse.Header or (if a response was returned at
77501// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
77502// to check whether the returned error was because
77503// http.StatusNotModified was returned.
77504func (c *HttpsHealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
77505	gensupport.SetOptions(c.urlParams_, opts...)
77506	res, err := c.doRequest("json")
77507	if res != nil && res.StatusCode == http.StatusNotModified {
77508		if res.Body != nil {
77509			res.Body.Close()
77510		}
77511		return nil, &googleapi.Error{
77512			Code:   res.StatusCode,
77513			Header: res.Header,
77514		}
77515	}
77516	if err != nil {
77517		return nil, err
77518	}
77519	defer googleapi.CloseBody(res)
77520	if err := googleapi.CheckResponse(res); err != nil {
77521		return nil, err
77522	}
77523	ret := &Operation{
77524		ServerResponse: googleapi.ServerResponse{
77525			Header:         res.Header,
77526			HTTPStatusCode: res.StatusCode,
77527		},
77528	}
77529	target := &ret
77530	if err := gensupport.DecodeResponse(target, res); err != nil {
77531		return nil, err
77532	}
77533	return ret, nil
77534	// {
77535	//   "description": "Deletes the specified HttpsHealthCheck resource.",
77536	//   "httpMethod": "DELETE",
77537	//   "id": "compute.httpsHealthChecks.delete",
77538	//   "parameterOrder": [
77539	//     "project",
77540	//     "httpsHealthCheck"
77541	//   ],
77542	//   "parameters": {
77543	//     "httpsHealthCheck": {
77544	//       "description": "Name of the HttpsHealthCheck resource to delete.",
77545	//       "location": "path",
77546	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
77547	//       "required": true,
77548	//       "type": "string"
77549	//     },
77550	//     "project": {
77551	//       "description": "Project ID for this request.",
77552	//       "location": "path",
77553	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77554	//       "required": true,
77555	//       "type": "string"
77556	//     },
77557	//     "requestId": {
77558	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
77559	//       "location": "query",
77560	//       "type": "string"
77561	//     }
77562	//   },
77563	//   "path": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}",
77564	//   "response": {
77565	//     "$ref": "Operation"
77566	//   },
77567	//   "scopes": [
77568	//     "https://www.googleapis.com/auth/cloud-platform",
77569	//     "https://www.googleapis.com/auth/compute"
77570	//   ]
77571	// }
77572
77573}
77574
77575// method id "compute.httpsHealthChecks.get":
77576
77577type HttpsHealthChecksGetCall struct {
77578	s                *Service
77579	project          string
77580	httpsHealthCheck string
77581	urlParams_       gensupport.URLParams
77582	ifNoneMatch_     string
77583	ctx_             context.Context
77584	header_          http.Header
77585}
77586
77587// Get: Returns the specified HttpsHealthCheck resource. Gets a list of
77588// available HTTPS health checks by making a list() request.
77589func (r *HttpsHealthChecksService) Get(project string, httpsHealthCheck string) *HttpsHealthChecksGetCall {
77590	c := &HttpsHealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77591	c.project = project
77592	c.httpsHealthCheck = httpsHealthCheck
77593	return c
77594}
77595
77596// Fields allows partial responses to be retrieved. See
77597// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77598// for more information.
77599func (c *HttpsHealthChecksGetCall) Fields(s ...googleapi.Field) *HttpsHealthChecksGetCall {
77600	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77601	return c
77602}
77603
77604// IfNoneMatch sets the optional parameter which makes the operation
77605// fail if the object's ETag matches the given value. This is useful for
77606// getting updates only after the object has changed since the last
77607// request. Use googleapi.IsNotModified to check whether the response
77608// error from Do is the result of In-None-Match.
77609func (c *HttpsHealthChecksGetCall) IfNoneMatch(entityTag string) *HttpsHealthChecksGetCall {
77610	c.ifNoneMatch_ = entityTag
77611	return c
77612}
77613
77614// Context sets the context to be used in this call's Do method. Any
77615// pending HTTP request will be aborted if the provided context is
77616// canceled.
77617func (c *HttpsHealthChecksGetCall) Context(ctx context.Context) *HttpsHealthChecksGetCall {
77618	c.ctx_ = ctx
77619	return c
77620}
77621
77622// Header returns an http.Header that can be modified by the caller to
77623// add HTTP headers to the request.
77624func (c *HttpsHealthChecksGetCall) Header() http.Header {
77625	if c.header_ == nil {
77626		c.header_ = make(http.Header)
77627	}
77628	return c.header_
77629}
77630
77631func (c *HttpsHealthChecksGetCall) doRequest(alt string) (*http.Response, error) {
77632	reqHeaders := make(http.Header)
77633	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
77634	for k, v := range c.header_ {
77635		reqHeaders[k] = v
77636	}
77637	reqHeaders.Set("User-Agent", c.s.userAgent())
77638	if c.ifNoneMatch_ != "" {
77639		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
77640	}
77641	var body io.Reader = nil
77642	c.urlParams_.Set("alt", alt)
77643	c.urlParams_.Set("prettyPrint", "false")
77644	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}")
77645	urls += "?" + c.urlParams_.Encode()
77646	req, err := http.NewRequest("GET", urls, body)
77647	if err != nil {
77648		return nil, err
77649	}
77650	req.Header = reqHeaders
77651	googleapi.Expand(req.URL, map[string]string{
77652		"project":          c.project,
77653		"httpsHealthCheck": c.httpsHealthCheck,
77654	})
77655	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77656}
77657
77658// Do executes the "compute.httpsHealthChecks.get" call.
77659// Exactly one of *HttpsHealthCheck or error will be non-nil. Any
77660// non-2xx status code is an error. Response headers are in either
77661// *HttpsHealthCheck.ServerResponse.Header or (if a response was
77662// returned at all) in error.(*googleapi.Error).Header. Use
77663// googleapi.IsNotModified to check whether the returned error was
77664// because http.StatusNotModified was returned.
77665func (c *HttpsHealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HttpsHealthCheck, error) {
77666	gensupport.SetOptions(c.urlParams_, opts...)
77667	res, err := c.doRequest("json")
77668	if res != nil && res.StatusCode == http.StatusNotModified {
77669		if res.Body != nil {
77670			res.Body.Close()
77671		}
77672		return nil, &googleapi.Error{
77673			Code:   res.StatusCode,
77674			Header: res.Header,
77675		}
77676	}
77677	if err != nil {
77678		return nil, err
77679	}
77680	defer googleapi.CloseBody(res)
77681	if err := googleapi.CheckResponse(res); err != nil {
77682		return nil, err
77683	}
77684	ret := &HttpsHealthCheck{
77685		ServerResponse: googleapi.ServerResponse{
77686			Header:         res.Header,
77687			HTTPStatusCode: res.StatusCode,
77688		},
77689	}
77690	target := &ret
77691	if err := gensupport.DecodeResponse(target, res); err != nil {
77692		return nil, err
77693	}
77694	return ret, nil
77695	// {
77696	//   "description": "Returns the specified HttpsHealthCheck resource. Gets a list of available HTTPS health checks by making a list() request.",
77697	//   "httpMethod": "GET",
77698	//   "id": "compute.httpsHealthChecks.get",
77699	//   "parameterOrder": [
77700	//     "project",
77701	//     "httpsHealthCheck"
77702	//   ],
77703	//   "parameters": {
77704	//     "httpsHealthCheck": {
77705	//       "description": "Name of the HttpsHealthCheck resource to return.",
77706	//       "location": "path",
77707	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
77708	//       "required": true,
77709	//       "type": "string"
77710	//     },
77711	//     "project": {
77712	//       "description": "Project ID for this request.",
77713	//       "location": "path",
77714	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77715	//       "required": true,
77716	//       "type": "string"
77717	//     }
77718	//   },
77719	//   "path": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}",
77720	//   "response": {
77721	//     "$ref": "HttpsHealthCheck"
77722	//   },
77723	//   "scopes": [
77724	//     "https://www.googleapis.com/auth/cloud-platform",
77725	//     "https://www.googleapis.com/auth/compute",
77726	//     "https://www.googleapis.com/auth/compute.readonly"
77727	//   ]
77728	// }
77729
77730}
77731
77732// method id "compute.httpsHealthChecks.insert":
77733
77734type HttpsHealthChecksInsertCall struct {
77735	s                *Service
77736	project          string
77737	httpshealthcheck *HttpsHealthCheck
77738	urlParams_       gensupport.URLParams
77739	ctx_             context.Context
77740	header_          http.Header
77741}
77742
77743// Insert: Creates a HttpsHealthCheck resource in the specified project
77744// using the data included in the request.
77745func (r *HttpsHealthChecksService) Insert(project string, httpshealthcheck *HttpsHealthCheck) *HttpsHealthChecksInsertCall {
77746	c := &HttpsHealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77747	c.project = project
77748	c.httpshealthcheck = httpshealthcheck
77749	return c
77750}
77751
77752// RequestId sets the optional parameter "requestId": An optional
77753// request ID to identify requests. Specify a unique request ID so that
77754// if you must retry your request, the server will know to ignore the
77755// request if it has already been completed.
77756//
77757// For example, consider a situation where you make an initial request
77758// and the request times out. If you make the request again with the
77759// same request ID, the server can check if original operation with the
77760// same request ID was received, and if so, will ignore the second
77761// request. This prevents clients from accidentally creating duplicate
77762// commitments.
77763//
77764// The request ID must be a valid UUID with the exception that zero UUID
77765// is not supported (00000000-0000-0000-0000-000000000000).
77766func (c *HttpsHealthChecksInsertCall) RequestId(requestId string) *HttpsHealthChecksInsertCall {
77767	c.urlParams_.Set("requestId", requestId)
77768	return c
77769}
77770
77771// Fields allows partial responses to be retrieved. See
77772// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77773// for more information.
77774func (c *HttpsHealthChecksInsertCall) Fields(s ...googleapi.Field) *HttpsHealthChecksInsertCall {
77775	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77776	return c
77777}
77778
77779// Context sets the context to be used in this call's Do method. Any
77780// pending HTTP request will be aborted if the provided context is
77781// canceled.
77782func (c *HttpsHealthChecksInsertCall) Context(ctx context.Context) *HttpsHealthChecksInsertCall {
77783	c.ctx_ = ctx
77784	return c
77785}
77786
77787// Header returns an http.Header that can be modified by the caller to
77788// add HTTP headers to the request.
77789func (c *HttpsHealthChecksInsertCall) Header() http.Header {
77790	if c.header_ == nil {
77791		c.header_ = make(http.Header)
77792	}
77793	return c.header_
77794}
77795
77796func (c *HttpsHealthChecksInsertCall) doRequest(alt string) (*http.Response, error) {
77797	reqHeaders := make(http.Header)
77798	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
77799	for k, v := range c.header_ {
77800		reqHeaders[k] = v
77801	}
77802	reqHeaders.Set("User-Agent", c.s.userAgent())
77803	var body io.Reader = nil
77804	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httpshealthcheck)
77805	if err != nil {
77806		return nil, err
77807	}
77808	reqHeaders.Set("Content-Type", "application/json")
77809	c.urlParams_.Set("alt", alt)
77810	c.urlParams_.Set("prettyPrint", "false")
77811	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpsHealthChecks")
77812	urls += "?" + c.urlParams_.Encode()
77813	req, err := http.NewRequest("POST", urls, body)
77814	if err != nil {
77815		return nil, err
77816	}
77817	req.Header = reqHeaders
77818	googleapi.Expand(req.URL, map[string]string{
77819		"project": c.project,
77820	})
77821	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77822}
77823
77824// Do executes the "compute.httpsHealthChecks.insert" call.
77825// Exactly one of *Operation or error will be non-nil. Any non-2xx
77826// status code is an error. Response headers are in either
77827// *Operation.ServerResponse.Header or (if a response was returned at
77828// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
77829// to check whether the returned error was because
77830// http.StatusNotModified was returned.
77831func (c *HttpsHealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
77832	gensupport.SetOptions(c.urlParams_, opts...)
77833	res, err := c.doRequest("json")
77834	if res != nil && res.StatusCode == http.StatusNotModified {
77835		if res.Body != nil {
77836			res.Body.Close()
77837		}
77838		return nil, &googleapi.Error{
77839			Code:   res.StatusCode,
77840			Header: res.Header,
77841		}
77842	}
77843	if err != nil {
77844		return nil, err
77845	}
77846	defer googleapi.CloseBody(res)
77847	if err := googleapi.CheckResponse(res); err != nil {
77848		return nil, err
77849	}
77850	ret := &Operation{
77851		ServerResponse: googleapi.ServerResponse{
77852			Header:         res.Header,
77853			HTTPStatusCode: res.StatusCode,
77854		},
77855	}
77856	target := &ret
77857	if err := gensupport.DecodeResponse(target, res); err != nil {
77858		return nil, err
77859	}
77860	return ret, nil
77861	// {
77862	//   "description": "Creates a HttpsHealthCheck resource in the specified project using the data included in the request.",
77863	//   "httpMethod": "POST",
77864	//   "id": "compute.httpsHealthChecks.insert",
77865	//   "parameterOrder": [
77866	//     "project"
77867	//   ],
77868	//   "parameters": {
77869	//     "project": {
77870	//       "description": "Project ID for this request.",
77871	//       "location": "path",
77872	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77873	//       "required": true,
77874	//       "type": "string"
77875	//     },
77876	//     "requestId": {
77877	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
77878	//       "location": "query",
77879	//       "type": "string"
77880	//     }
77881	//   },
77882	//   "path": "projects/{project}/global/httpsHealthChecks",
77883	//   "request": {
77884	//     "$ref": "HttpsHealthCheck"
77885	//   },
77886	//   "response": {
77887	//     "$ref": "Operation"
77888	//   },
77889	//   "scopes": [
77890	//     "https://www.googleapis.com/auth/cloud-platform",
77891	//     "https://www.googleapis.com/auth/compute"
77892	//   ]
77893	// }
77894
77895}
77896
77897// method id "compute.httpsHealthChecks.list":
77898
77899type HttpsHealthChecksListCall struct {
77900	s            *Service
77901	project      string
77902	urlParams_   gensupport.URLParams
77903	ifNoneMatch_ string
77904	ctx_         context.Context
77905	header_      http.Header
77906}
77907
77908// List: Retrieves the list of HttpsHealthCheck resources available to
77909// the specified project.
77910func (r *HttpsHealthChecksService) List(project string) *HttpsHealthChecksListCall {
77911	c := &HttpsHealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77912	c.project = project
77913	return c
77914}
77915
77916// Filter sets the optional parameter "filter": A filter expression that
77917// filters resources listed in the response. The expression must specify
77918// the field name, a comparison operator, and the value that you want to
77919// use for filtering. The value must be a string, a number, or a
77920// boolean. The comparison operator must be either `=`, `!=`, `>`, or
77921// `<`.
77922//
77923// For example, if you are filtering Compute Engine instances, you can
77924// exclude instances named `example-instance` by specifying `name !=
77925// example-instance`.
77926//
77927// You can also filter nested fields. For example, you could specify
77928// `scheduling.automaticRestart = false` to include instances only if
77929// they are not scheduled for automatic restarts. You can use filtering
77930// on nested fields to filter based on resource labels.
77931//
77932// To filter on multiple expressions, provide each separate expression
77933// within parentheses. For example: ``` (scheduling.automaticRestart =
77934// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
77935// is an `AND` expression. However, you can include `AND` and `OR`
77936// expressions explicitly. For example: ``` (cpuPlatform = "Intel
77937// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
77938// (scheduling.automaticRestart = true) ```
77939func (c *HttpsHealthChecksListCall) Filter(filter string) *HttpsHealthChecksListCall {
77940	c.urlParams_.Set("filter", filter)
77941	return c
77942}
77943
77944// MaxResults sets the optional parameter "maxResults": The maximum
77945// number of results per page that should be returned. If the number of
77946// available results is larger than `maxResults`, Compute Engine returns
77947// a `nextPageToken` that can be used to get the next page of results in
77948// subsequent list requests. Acceptable values are `0` to `500`,
77949// inclusive. (Default: `500`)
77950func (c *HttpsHealthChecksListCall) MaxResults(maxResults int64) *HttpsHealthChecksListCall {
77951	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
77952	return c
77953}
77954
77955// OrderBy sets the optional parameter "orderBy": Sorts list results by
77956// a certain order. By default, results are returned in alphanumerical
77957// order based on the resource name.
77958//
77959// You can also sort results in descending order based on the creation
77960// timestamp using `orderBy="creationTimestamp desc". This sorts
77961// results based on the `creationTimestamp` field in reverse
77962// chronological order (newest result first). Use this to sort resources
77963// like operations so that the newest operation is returned
77964// first.
77965//
77966// Currently, only sorting by `name` or `creationTimestamp desc` is
77967// supported.
77968func (c *HttpsHealthChecksListCall) OrderBy(orderBy string) *HttpsHealthChecksListCall {
77969	c.urlParams_.Set("orderBy", orderBy)
77970	return c
77971}
77972
77973// PageToken sets the optional parameter "pageToken": Specifies a page
77974// token to use. Set `pageToken` to the `nextPageToken` returned by a
77975// previous list request to get the next page of results.
77976func (c *HttpsHealthChecksListCall) PageToken(pageToken string) *HttpsHealthChecksListCall {
77977	c.urlParams_.Set("pageToken", pageToken)
77978	return c
77979}
77980
77981// ReturnPartialSuccess sets the optional parameter
77982// "returnPartialSuccess": Opt-in for partial success behavior which
77983// provides partial results in case of failure. The default value is
77984// false.
77985func (c *HttpsHealthChecksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *HttpsHealthChecksListCall {
77986	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
77987	return c
77988}
77989
77990// Fields allows partial responses to be retrieved. See
77991// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77992// for more information.
77993func (c *HttpsHealthChecksListCall) Fields(s ...googleapi.Field) *HttpsHealthChecksListCall {
77994	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77995	return c
77996}
77997
77998// IfNoneMatch sets the optional parameter which makes the operation
77999// fail if the object's ETag matches the given value. This is useful for
78000// getting updates only after the object has changed since the last
78001// request. Use googleapi.IsNotModified to check whether the response
78002// error from Do is the result of In-None-Match.
78003func (c *HttpsHealthChecksListCall) IfNoneMatch(entityTag string) *HttpsHealthChecksListCall {
78004	c.ifNoneMatch_ = entityTag
78005	return c
78006}
78007
78008// Context sets the context to be used in this call's Do method. Any
78009// pending HTTP request will be aborted if the provided context is
78010// canceled.
78011func (c *HttpsHealthChecksListCall) Context(ctx context.Context) *HttpsHealthChecksListCall {
78012	c.ctx_ = ctx
78013	return c
78014}
78015
78016// Header returns an http.Header that can be modified by the caller to
78017// add HTTP headers to the request.
78018func (c *HttpsHealthChecksListCall) Header() http.Header {
78019	if c.header_ == nil {
78020		c.header_ = make(http.Header)
78021	}
78022	return c.header_
78023}
78024
78025func (c *HttpsHealthChecksListCall) doRequest(alt string) (*http.Response, error) {
78026	reqHeaders := make(http.Header)
78027	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
78028	for k, v := range c.header_ {
78029		reqHeaders[k] = v
78030	}
78031	reqHeaders.Set("User-Agent", c.s.userAgent())
78032	if c.ifNoneMatch_ != "" {
78033		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
78034	}
78035	var body io.Reader = nil
78036	c.urlParams_.Set("alt", alt)
78037	c.urlParams_.Set("prettyPrint", "false")
78038	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpsHealthChecks")
78039	urls += "?" + c.urlParams_.Encode()
78040	req, err := http.NewRequest("GET", urls, body)
78041	if err != nil {
78042		return nil, err
78043	}
78044	req.Header = reqHeaders
78045	googleapi.Expand(req.URL, map[string]string{
78046		"project": c.project,
78047	})
78048	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78049}
78050
78051// Do executes the "compute.httpsHealthChecks.list" call.
78052// Exactly one of *HttpsHealthCheckList or error will be non-nil. Any
78053// non-2xx status code is an error. Response headers are in either
78054// *HttpsHealthCheckList.ServerResponse.Header or (if a response was
78055// returned at all) in error.(*googleapi.Error).Header. Use
78056// googleapi.IsNotModified to check whether the returned error was
78057// because http.StatusNotModified was returned.
78058func (c *HttpsHealthChecksListCall) Do(opts ...googleapi.CallOption) (*HttpsHealthCheckList, error) {
78059	gensupport.SetOptions(c.urlParams_, opts...)
78060	res, err := c.doRequest("json")
78061	if res != nil && res.StatusCode == http.StatusNotModified {
78062		if res.Body != nil {
78063			res.Body.Close()
78064		}
78065		return nil, &googleapi.Error{
78066			Code:   res.StatusCode,
78067			Header: res.Header,
78068		}
78069	}
78070	if err != nil {
78071		return nil, err
78072	}
78073	defer googleapi.CloseBody(res)
78074	if err := googleapi.CheckResponse(res); err != nil {
78075		return nil, err
78076	}
78077	ret := &HttpsHealthCheckList{
78078		ServerResponse: googleapi.ServerResponse{
78079			Header:         res.Header,
78080			HTTPStatusCode: res.StatusCode,
78081		},
78082	}
78083	target := &ret
78084	if err := gensupport.DecodeResponse(target, res); err != nil {
78085		return nil, err
78086	}
78087	return ret, nil
78088	// {
78089	//   "description": "Retrieves the list of HttpsHealthCheck resources available to the specified project.",
78090	//   "httpMethod": "GET",
78091	//   "id": "compute.httpsHealthChecks.list",
78092	//   "parameterOrder": [
78093	//     "project"
78094	//   ],
78095	//   "parameters": {
78096	//     "filter": {
78097	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
78098	//       "location": "query",
78099	//       "type": "string"
78100	//     },
78101	//     "maxResults": {
78102	//       "default": "500",
78103	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
78104	//       "format": "uint32",
78105	//       "location": "query",
78106	//       "minimum": "0",
78107	//       "type": "integer"
78108	//     },
78109	//     "orderBy": {
78110	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
78111	//       "location": "query",
78112	//       "type": "string"
78113	//     },
78114	//     "pageToken": {
78115	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
78116	//       "location": "query",
78117	//       "type": "string"
78118	//     },
78119	//     "project": {
78120	//       "description": "Project ID for this request.",
78121	//       "location": "path",
78122	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78123	//       "required": true,
78124	//       "type": "string"
78125	//     },
78126	//     "returnPartialSuccess": {
78127	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
78128	//       "location": "query",
78129	//       "type": "boolean"
78130	//     }
78131	//   },
78132	//   "path": "projects/{project}/global/httpsHealthChecks",
78133	//   "response": {
78134	//     "$ref": "HttpsHealthCheckList"
78135	//   },
78136	//   "scopes": [
78137	//     "https://www.googleapis.com/auth/cloud-platform",
78138	//     "https://www.googleapis.com/auth/compute",
78139	//     "https://www.googleapis.com/auth/compute.readonly"
78140	//   ]
78141	// }
78142
78143}
78144
78145// Pages invokes f for each page of results.
78146// A non-nil error returned from f will halt the iteration.
78147// The provided context supersedes any context provided to the Context method.
78148func (c *HttpsHealthChecksListCall) Pages(ctx context.Context, f func(*HttpsHealthCheckList) error) error {
78149	c.ctx_ = ctx
78150	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
78151	for {
78152		x, err := c.Do()
78153		if err != nil {
78154			return err
78155		}
78156		if err := f(x); err != nil {
78157			return err
78158		}
78159		if x.NextPageToken == "" {
78160			return nil
78161		}
78162		c.PageToken(x.NextPageToken)
78163	}
78164}
78165
78166// method id "compute.httpsHealthChecks.patch":
78167
78168type HttpsHealthChecksPatchCall struct {
78169	s                *Service
78170	project          string
78171	httpsHealthCheck string
78172	httpshealthcheck *HttpsHealthCheck
78173	urlParams_       gensupport.URLParams
78174	ctx_             context.Context
78175	header_          http.Header
78176}
78177
78178// Patch: Updates a HttpsHealthCheck resource in the specified project
78179// using the data included in the request. This method supports PATCH
78180// semantics and uses the JSON merge patch format and processing rules.
78181func (r *HttpsHealthChecksService) Patch(project string, httpsHealthCheck string, httpshealthcheck *HttpsHealthCheck) *HttpsHealthChecksPatchCall {
78182	c := &HttpsHealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78183	c.project = project
78184	c.httpsHealthCheck = httpsHealthCheck
78185	c.httpshealthcheck = httpshealthcheck
78186	return c
78187}
78188
78189// RequestId sets the optional parameter "requestId": An optional
78190// request ID to identify requests. Specify a unique request ID so that
78191// if you must retry your request, the server will know to ignore the
78192// request if it has already been completed.
78193//
78194// For example, consider a situation where you make an initial request
78195// and the request times out. If you make the request again with the
78196// same request ID, the server can check if original operation with the
78197// same request ID was received, and if so, will ignore the second
78198// request. This prevents clients from accidentally creating duplicate
78199// commitments.
78200//
78201// The request ID must be a valid UUID with the exception that zero UUID
78202// is not supported (00000000-0000-0000-0000-000000000000).
78203func (c *HttpsHealthChecksPatchCall) RequestId(requestId string) *HttpsHealthChecksPatchCall {
78204	c.urlParams_.Set("requestId", requestId)
78205	return c
78206}
78207
78208// Fields allows partial responses to be retrieved. See
78209// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78210// for more information.
78211func (c *HttpsHealthChecksPatchCall) Fields(s ...googleapi.Field) *HttpsHealthChecksPatchCall {
78212	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78213	return c
78214}
78215
78216// Context sets the context to be used in this call's Do method. Any
78217// pending HTTP request will be aborted if the provided context is
78218// canceled.
78219func (c *HttpsHealthChecksPatchCall) Context(ctx context.Context) *HttpsHealthChecksPatchCall {
78220	c.ctx_ = ctx
78221	return c
78222}
78223
78224// Header returns an http.Header that can be modified by the caller to
78225// add HTTP headers to the request.
78226func (c *HttpsHealthChecksPatchCall) Header() http.Header {
78227	if c.header_ == nil {
78228		c.header_ = make(http.Header)
78229	}
78230	return c.header_
78231}
78232
78233func (c *HttpsHealthChecksPatchCall) doRequest(alt string) (*http.Response, error) {
78234	reqHeaders := make(http.Header)
78235	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
78236	for k, v := range c.header_ {
78237		reqHeaders[k] = v
78238	}
78239	reqHeaders.Set("User-Agent", c.s.userAgent())
78240	var body io.Reader = nil
78241	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httpshealthcheck)
78242	if err != nil {
78243		return nil, err
78244	}
78245	reqHeaders.Set("Content-Type", "application/json")
78246	c.urlParams_.Set("alt", alt)
78247	c.urlParams_.Set("prettyPrint", "false")
78248	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}")
78249	urls += "?" + c.urlParams_.Encode()
78250	req, err := http.NewRequest("PATCH", urls, body)
78251	if err != nil {
78252		return nil, err
78253	}
78254	req.Header = reqHeaders
78255	googleapi.Expand(req.URL, map[string]string{
78256		"project":          c.project,
78257		"httpsHealthCheck": c.httpsHealthCheck,
78258	})
78259	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78260}
78261
78262// Do executes the "compute.httpsHealthChecks.patch" call.
78263// Exactly one of *Operation or error will be non-nil. Any non-2xx
78264// status code is an error. Response headers are in either
78265// *Operation.ServerResponse.Header or (if a response was returned at
78266// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
78267// to check whether the returned error was because
78268// http.StatusNotModified was returned.
78269func (c *HttpsHealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
78270	gensupport.SetOptions(c.urlParams_, opts...)
78271	res, err := c.doRequest("json")
78272	if res != nil && res.StatusCode == http.StatusNotModified {
78273		if res.Body != nil {
78274			res.Body.Close()
78275		}
78276		return nil, &googleapi.Error{
78277			Code:   res.StatusCode,
78278			Header: res.Header,
78279		}
78280	}
78281	if err != nil {
78282		return nil, err
78283	}
78284	defer googleapi.CloseBody(res)
78285	if err := googleapi.CheckResponse(res); err != nil {
78286		return nil, err
78287	}
78288	ret := &Operation{
78289		ServerResponse: googleapi.ServerResponse{
78290			Header:         res.Header,
78291			HTTPStatusCode: res.StatusCode,
78292		},
78293	}
78294	target := &ret
78295	if err := gensupport.DecodeResponse(target, res); err != nil {
78296		return nil, err
78297	}
78298	return ret, nil
78299	// {
78300	//   "description": "Updates a HttpsHealthCheck resource in the specified project using the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.",
78301	//   "httpMethod": "PATCH",
78302	//   "id": "compute.httpsHealthChecks.patch",
78303	//   "parameterOrder": [
78304	//     "project",
78305	//     "httpsHealthCheck"
78306	//   ],
78307	//   "parameters": {
78308	//     "httpsHealthCheck": {
78309	//       "description": "Name of the HttpsHealthCheck resource to patch.",
78310	//       "location": "path",
78311	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
78312	//       "required": true,
78313	//       "type": "string"
78314	//     },
78315	//     "project": {
78316	//       "description": "Project ID for this request.",
78317	//       "location": "path",
78318	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78319	//       "required": true,
78320	//       "type": "string"
78321	//     },
78322	//     "requestId": {
78323	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
78324	//       "location": "query",
78325	//       "type": "string"
78326	//     }
78327	//   },
78328	//   "path": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}",
78329	//   "request": {
78330	//     "$ref": "HttpsHealthCheck"
78331	//   },
78332	//   "response": {
78333	//     "$ref": "Operation"
78334	//   },
78335	//   "scopes": [
78336	//     "https://www.googleapis.com/auth/cloud-platform",
78337	//     "https://www.googleapis.com/auth/compute"
78338	//   ]
78339	// }
78340
78341}
78342
78343// method id "compute.httpsHealthChecks.testIamPermissions":
78344
78345type HttpsHealthChecksTestIamPermissionsCall struct {
78346	s                      *Service
78347	project                string
78348	resource               string
78349	testpermissionsrequest *TestPermissionsRequest
78350	urlParams_             gensupport.URLParams
78351	ctx_                   context.Context
78352	header_                http.Header
78353}
78354
78355// TestIamPermissions: Returns permissions that a caller has on the
78356// specified resource.
78357func (r *HttpsHealthChecksService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *HttpsHealthChecksTestIamPermissionsCall {
78358	c := &HttpsHealthChecksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78359	c.project = project
78360	c.resource = resource
78361	c.testpermissionsrequest = testpermissionsrequest
78362	return c
78363}
78364
78365// Fields allows partial responses to be retrieved. See
78366// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78367// for more information.
78368func (c *HttpsHealthChecksTestIamPermissionsCall) Fields(s ...googleapi.Field) *HttpsHealthChecksTestIamPermissionsCall {
78369	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78370	return c
78371}
78372
78373// Context sets the context to be used in this call's Do method. Any
78374// pending HTTP request will be aborted if the provided context is
78375// canceled.
78376func (c *HttpsHealthChecksTestIamPermissionsCall) Context(ctx context.Context) *HttpsHealthChecksTestIamPermissionsCall {
78377	c.ctx_ = ctx
78378	return c
78379}
78380
78381// Header returns an http.Header that can be modified by the caller to
78382// add HTTP headers to the request.
78383func (c *HttpsHealthChecksTestIamPermissionsCall) Header() http.Header {
78384	if c.header_ == nil {
78385		c.header_ = make(http.Header)
78386	}
78387	return c.header_
78388}
78389
78390func (c *HttpsHealthChecksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
78391	reqHeaders := make(http.Header)
78392	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
78393	for k, v := range c.header_ {
78394		reqHeaders[k] = v
78395	}
78396	reqHeaders.Set("User-Agent", c.s.userAgent())
78397	var body io.Reader = nil
78398	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
78399	if err != nil {
78400		return nil, err
78401	}
78402	reqHeaders.Set("Content-Type", "application/json")
78403	c.urlParams_.Set("alt", alt)
78404	c.urlParams_.Set("prettyPrint", "false")
78405	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpsHealthChecks/{resource}/testIamPermissions")
78406	urls += "?" + c.urlParams_.Encode()
78407	req, err := http.NewRequest("POST", urls, body)
78408	if err != nil {
78409		return nil, err
78410	}
78411	req.Header = reqHeaders
78412	googleapi.Expand(req.URL, map[string]string{
78413		"project":  c.project,
78414		"resource": c.resource,
78415	})
78416	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78417}
78418
78419// Do executes the "compute.httpsHealthChecks.testIamPermissions" call.
78420// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
78421// non-2xx status code is an error. Response headers are in either
78422// *TestPermissionsResponse.ServerResponse.Header or (if a response was
78423// returned at all) in error.(*googleapi.Error).Header. Use
78424// googleapi.IsNotModified to check whether the returned error was
78425// because http.StatusNotModified was returned.
78426func (c *HttpsHealthChecksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
78427	gensupport.SetOptions(c.urlParams_, opts...)
78428	res, err := c.doRequest("json")
78429	if res != nil && res.StatusCode == http.StatusNotModified {
78430		if res.Body != nil {
78431			res.Body.Close()
78432		}
78433		return nil, &googleapi.Error{
78434			Code:   res.StatusCode,
78435			Header: res.Header,
78436		}
78437	}
78438	if err != nil {
78439		return nil, err
78440	}
78441	defer googleapi.CloseBody(res)
78442	if err := googleapi.CheckResponse(res); err != nil {
78443		return nil, err
78444	}
78445	ret := &TestPermissionsResponse{
78446		ServerResponse: googleapi.ServerResponse{
78447			Header:         res.Header,
78448			HTTPStatusCode: res.StatusCode,
78449		},
78450	}
78451	target := &ret
78452	if err := gensupport.DecodeResponse(target, res); err != nil {
78453		return nil, err
78454	}
78455	return ret, nil
78456	// {
78457	//   "description": "Returns permissions that a caller has on the specified resource.",
78458	//   "httpMethod": "POST",
78459	//   "id": "compute.httpsHealthChecks.testIamPermissions",
78460	//   "parameterOrder": [
78461	//     "project",
78462	//     "resource"
78463	//   ],
78464	//   "parameters": {
78465	//     "project": {
78466	//       "description": "Project ID for this request.",
78467	//       "location": "path",
78468	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78469	//       "required": true,
78470	//       "type": "string"
78471	//     },
78472	//     "resource": {
78473	//       "description": "Name or id of the resource for this request.",
78474	//       "location": "path",
78475	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
78476	//       "required": true,
78477	//       "type": "string"
78478	//     }
78479	//   },
78480	//   "path": "projects/{project}/global/httpsHealthChecks/{resource}/testIamPermissions",
78481	//   "request": {
78482	//     "$ref": "TestPermissionsRequest"
78483	//   },
78484	//   "response": {
78485	//     "$ref": "TestPermissionsResponse"
78486	//   },
78487	//   "scopes": [
78488	//     "https://www.googleapis.com/auth/cloud-platform",
78489	//     "https://www.googleapis.com/auth/compute",
78490	//     "https://www.googleapis.com/auth/compute.readonly"
78491	//   ]
78492	// }
78493
78494}
78495
78496// method id "compute.httpsHealthChecks.update":
78497
78498type HttpsHealthChecksUpdateCall struct {
78499	s                *Service
78500	project          string
78501	httpsHealthCheck string
78502	httpshealthcheck *HttpsHealthCheck
78503	urlParams_       gensupport.URLParams
78504	ctx_             context.Context
78505	header_          http.Header
78506}
78507
78508// Update: Updates a HttpsHealthCheck resource in the specified project
78509// using the data included in the request.
78510func (r *HttpsHealthChecksService) Update(project string, httpsHealthCheck string, httpshealthcheck *HttpsHealthCheck) *HttpsHealthChecksUpdateCall {
78511	c := &HttpsHealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78512	c.project = project
78513	c.httpsHealthCheck = httpsHealthCheck
78514	c.httpshealthcheck = httpshealthcheck
78515	return c
78516}
78517
78518// RequestId sets the optional parameter "requestId": An optional
78519// request ID to identify requests. Specify a unique request ID so that
78520// if you must retry your request, the server will know to ignore the
78521// request if it has already been completed.
78522//
78523// For example, consider a situation where you make an initial request
78524// and the request times out. If you make the request again with the
78525// same request ID, the server can check if original operation with the
78526// same request ID was received, and if so, will ignore the second
78527// request. This prevents clients from accidentally creating duplicate
78528// commitments.
78529//
78530// The request ID must be a valid UUID with the exception that zero UUID
78531// is not supported (00000000-0000-0000-0000-000000000000).
78532func (c *HttpsHealthChecksUpdateCall) RequestId(requestId string) *HttpsHealthChecksUpdateCall {
78533	c.urlParams_.Set("requestId", requestId)
78534	return c
78535}
78536
78537// Fields allows partial responses to be retrieved. See
78538// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78539// for more information.
78540func (c *HttpsHealthChecksUpdateCall) Fields(s ...googleapi.Field) *HttpsHealthChecksUpdateCall {
78541	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78542	return c
78543}
78544
78545// Context sets the context to be used in this call's Do method. Any
78546// pending HTTP request will be aborted if the provided context is
78547// canceled.
78548func (c *HttpsHealthChecksUpdateCall) Context(ctx context.Context) *HttpsHealthChecksUpdateCall {
78549	c.ctx_ = ctx
78550	return c
78551}
78552
78553// Header returns an http.Header that can be modified by the caller to
78554// add HTTP headers to the request.
78555func (c *HttpsHealthChecksUpdateCall) Header() http.Header {
78556	if c.header_ == nil {
78557		c.header_ = make(http.Header)
78558	}
78559	return c.header_
78560}
78561
78562func (c *HttpsHealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) {
78563	reqHeaders := make(http.Header)
78564	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
78565	for k, v := range c.header_ {
78566		reqHeaders[k] = v
78567	}
78568	reqHeaders.Set("User-Agent", c.s.userAgent())
78569	var body io.Reader = nil
78570	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httpshealthcheck)
78571	if err != nil {
78572		return nil, err
78573	}
78574	reqHeaders.Set("Content-Type", "application/json")
78575	c.urlParams_.Set("alt", alt)
78576	c.urlParams_.Set("prettyPrint", "false")
78577	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}")
78578	urls += "?" + c.urlParams_.Encode()
78579	req, err := http.NewRequest("PUT", urls, body)
78580	if err != nil {
78581		return nil, err
78582	}
78583	req.Header = reqHeaders
78584	googleapi.Expand(req.URL, map[string]string{
78585		"project":          c.project,
78586		"httpsHealthCheck": c.httpsHealthCheck,
78587	})
78588	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78589}
78590
78591// Do executes the "compute.httpsHealthChecks.update" call.
78592// Exactly one of *Operation or error will be non-nil. Any non-2xx
78593// status code is an error. Response headers are in either
78594// *Operation.ServerResponse.Header or (if a response was returned at
78595// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
78596// to check whether the returned error was because
78597// http.StatusNotModified was returned.
78598func (c *HttpsHealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
78599	gensupport.SetOptions(c.urlParams_, opts...)
78600	res, err := c.doRequest("json")
78601	if res != nil && res.StatusCode == http.StatusNotModified {
78602		if res.Body != nil {
78603			res.Body.Close()
78604		}
78605		return nil, &googleapi.Error{
78606			Code:   res.StatusCode,
78607			Header: res.Header,
78608		}
78609	}
78610	if err != nil {
78611		return nil, err
78612	}
78613	defer googleapi.CloseBody(res)
78614	if err := googleapi.CheckResponse(res); err != nil {
78615		return nil, err
78616	}
78617	ret := &Operation{
78618		ServerResponse: googleapi.ServerResponse{
78619			Header:         res.Header,
78620			HTTPStatusCode: res.StatusCode,
78621		},
78622	}
78623	target := &ret
78624	if err := gensupport.DecodeResponse(target, res); err != nil {
78625		return nil, err
78626	}
78627	return ret, nil
78628	// {
78629	//   "description": "Updates a HttpsHealthCheck resource in the specified project using the data included in the request.",
78630	//   "httpMethod": "PUT",
78631	//   "id": "compute.httpsHealthChecks.update",
78632	//   "parameterOrder": [
78633	//     "project",
78634	//     "httpsHealthCheck"
78635	//   ],
78636	//   "parameters": {
78637	//     "httpsHealthCheck": {
78638	//       "description": "Name of the HttpsHealthCheck resource to update.",
78639	//       "location": "path",
78640	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
78641	//       "required": true,
78642	//       "type": "string"
78643	//     },
78644	//     "project": {
78645	//       "description": "Project ID for this request.",
78646	//       "location": "path",
78647	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78648	//       "required": true,
78649	//       "type": "string"
78650	//     },
78651	//     "requestId": {
78652	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
78653	//       "location": "query",
78654	//       "type": "string"
78655	//     }
78656	//   },
78657	//   "path": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}",
78658	//   "request": {
78659	//     "$ref": "HttpsHealthCheck"
78660	//   },
78661	//   "response": {
78662	//     "$ref": "Operation"
78663	//   },
78664	//   "scopes": [
78665	//     "https://www.googleapis.com/auth/cloud-platform",
78666	//     "https://www.googleapis.com/auth/compute"
78667	//   ]
78668	// }
78669
78670}
78671
78672// method id "compute.images.delete":
78673
78674type ImagesDeleteCall struct {
78675	s          *Service
78676	project    string
78677	image      string
78678	urlParams_ gensupport.URLParams
78679	ctx_       context.Context
78680	header_    http.Header
78681}
78682
78683// Delete: Deletes the specified image.
78684// For details, see https://cloud.google.com/compute/docs/reference/latest/images/delete
78685func (r *ImagesService) Delete(project string, image string) *ImagesDeleteCall {
78686	c := &ImagesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78687	c.project = project
78688	c.image = image
78689	return c
78690}
78691
78692// RequestId sets the optional parameter "requestId": An optional
78693// request ID to identify requests. Specify a unique request ID so that
78694// if you must retry your request, the server will know to ignore the
78695// request if it has already been completed.
78696//
78697// For example, consider a situation where you make an initial request
78698// and the request times out. If you make the request again with the
78699// same request ID, the server can check if original operation with the
78700// same request ID was received, and if so, will ignore the second
78701// request. This prevents clients from accidentally creating duplicate
78702// commitments.
78703//
78704// The request ID must be a valid UUID with the exception that zero UUID
78705// is not supported (00000000-0000-0000-0000-000000000000).
78706func (c *ImagesDeleteCall) RequestId(requestId string) *ImagesDeleteCall {
78707	c.urlParams_.Set("requestId", requestId)
78708	return c
78709}
78710
78711// Fields allows partial responses to be retrieved. See
78712// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78713// for more information.
78714func (c *ImagesDeleteCall) Fields(s ...googleapi.Field) *ImagesDeleteCall {
78715	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78716	return c
78717}
78718
78719// Context sets the context to be used in this call's Do method. Any
78720// pending HTTP request will be aborted if the provided context is
78721// canceled.
78722func (c *ImagesDeleteCall) Context(ctx context.Context) *ImagesDeleteCall {
78723	c.ctx_ = ctx
78724	return c
78725}
78726
78727// Header returns an http.Header that can be modified by the caller to
78728// add HTTP headers to the request.
78729func (c *ImagesDeleteCall) Header() http.Header {
78730	if c.header_ == nil {
78731		c.header_ = make(http.Header)
78732	}
78733	return c.header_
78734}
78735
78736func (c *ImagesDeleteCall) doRequest(alt string) (*http.Response, error) {
78737	reqHeaders := make(http.Header)
78738	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
78739	for k, v := range c.header_ {
78740		reqHeaders[k] = v
78741	}
78742	reqHeaders.Set("User-Agent", c.s.userAgent())
78743	var body io.Reader = nil
78744	c.urlParams_.Set("alt", alt)
78745	c.urlParams_.Set("prettyPrint", "false")
78746	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/{image}")
78747	urls += "?" + c.urlParams_.Encode()
78748	req, err := http.NewRequest("DELETE", urls, body)
78749	if err != nil {
78750		return nil, err
78751	}
78752	req.Header = reqHeaders
78753	googleapi.Expand(req.URL, map[string]string{
78754		"project": c.project,
78755		"image":   c.image,
78756	})
78757	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78758}
78759
78760// Do executes the "compute.images.delete" call.
78761// Exactly one of *Operation or error will be non-nil. Any non-2xx
78762// status code is an error. Response headers are in either
78763// *Operation.ServerResponse.Header or (if a response was returned at
78764// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
78765// to check whether the returned error was because
78766// http.StatusNotModified was returned.
78767func (c *ImagesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
78768	gensupport.SetOptions(c.urlParams_, opts...)
78769	res, err := c.doRequest("json")
78770	if res != nil && res.StatusCode == http.StatusNotModified {
78771		if res.Body != nil {
78772			res.Body.Close()
78773		}
78774		return nil, &googleapi.Error{
78775			Code:   res.StatusCode,
78776			Header: res.Header,
78777		}
78778	}
78779	if err != nil {
78780		return nil, err
78781	}
78782	defer googleapi.CloseBody(res)
78783	if err := googleapi.CheckResponse(res); err != nil {
78784		return nil, err
78785	}
78786	ret := &Operation{
78787		ServerResponse: googleapi.ServerResponse{
78788			Header:         res.Header,
78789			HTTPStatusCode: res.StatusCode,
78790		},
78791	}
78792	target := &ret
78793	if err := gensupport.DecodeResponse(target, res); err != nil {
78794		return nil, err
78795	}
78796	return ret, nil
78797	// {
78798	//   "description": "Deletes the specified image.",
78799	//   "httpMethod": "DELETE",
78800	//   "id": "compute.images.delete",
78801	//   "parameterOrder": [
78802	//     "project",
78803	//     "image"
78804	//   ],
78805	//   "parameters": {
78806	//     "image": {
78807	//       "description": "Name of the image resource to delete.",
78808	//       "location": "path",
78809	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
78810	//       "required": true,
78811	//       "type": "string"
78812	//     },
78813	//     "project": {
78814	//       "description": "Project ID for this request.",
78815	//       "location": "path",
78816	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78817	//       "required": true,
78818	//       "type": "string"
78819	//     },
78820	//     "requestId": {
78821	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
78822	//       "location": "query",
78823	//       "type": "string"
78824	//     }
78825	//   },
78826	//   "path": "projects/{project}/global/images/{image}",
78827	//   "response": {
78828	//     "$ref": "Operation"
78829	//   },
78830	//   "scopes": [
78831	//     "https://www.googleapis.com/auth/cloud-platform",
78832	//     "https://www.googleapis.com/auth/compute"
78833	//   ]
78834	// }
78835
78836}
78837
78838// method id "compute.images.deprecate":
78839
78840type ImagesDeprecateCall struct {
78841	s                 *Service
78842	project           string
78843	image             string
78844	deprecationstatus *DeprecationStatus
78845	urlParams_        gensupport.URLParams
78846	ctx_              context.Context
78847	header_           http.Header
78848}
78849
78850// Deprecate: Sets the deprecation status of an image.
78851//
78852// If an empty request body is given, clears the deprecation status
78853// instead.
78854// For details, see https://cloud.google.com/compute/docs/reference/latest/images/deprecate
78855func (r *ImagesService) Deprecate(project string, image string, deprecationstatus *DeprecationStatus) *ImagesDeprecateCall {
78856	c := &ImagesDeprecateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78857	c.project = project
78858	c.image = image
78859	c.deprecationstatus = deprecationstatus
78860	return c
78861}
78862
78863// RequestId sets the optional parameter "requestId": An optional
78864// request ID to identify requests. Specify a unique request ID so that
78865// if you must retry your request, the server will know to ignore the
78866// request if it has already been completed.
78867//
78868// For example, consider a situation where you make an initial request
78869// and the request times out. If you make the request again with the
78870// same request ID, the server can check if original operation with the
78871// same request ID was received, and if so, will ignore the second
78872// request. This prevents clients from accidentally creating duplicate
78873// commitments.
78874//
78875// The request ID must be a valid UUID with the exception that zero UUID
78876// is not supported (00000000-0000-0000-0000-000000000000).
78877func (c *ImagesDeprecateCall) RequestId(requestId string) *ImagesDeprecateCall {
78878	c.urlParams_.Set("requestId", requestId)
78879	return c
78880}
78881
78882// Fields allows partial responses to be retrieved. See
78883// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78884// for more information.
78885func (c *ImagesDeprecateCall) Fields(s ...googleapi.Field) *ImagesDeprecateCall {
78886	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78887	return c
78888}
78889
78890// Context sets the context to be used in this call's Do method. Any
78891// pending HTTP request will be aborted if the provided context is
78892// canceled.
78893func (c *ImagesDeprecateCall) Context(ctx context.Context) *ImagesDeprecateCall {
78894	c.ctx_ = ctx
78895	return c
78896}
78897
78898// Header returns an http.Header that can be modified by the caller to
78899// add HTTP headers to the request.
78900func (c *ImagesDeprecateCall) Header() http.Header {
78901	if c.header_ == nil {
78902		c.header_ = make(http.Header)
78903	}
78904	return c.header_
78905}
78906
78907func (c *ImagesDeprecateCall) doRequest(alt string) (*http.Response, error) {
78908	reqHeaders := make(http.Header)
78909	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
78910	for k, v := range c.header_ {
78911		reqHeaders[k] = v
78912	}
78913	reqHeaders.Set("User-Agent", c.s.userAgent())
78914	var body io.Reader = nil
78915	body, err := googleapi.WithoutDataWrapper.JSONReader(c.deprecationstatus)
78916	if err != nil {
78917		return nil, err
78918	}
78919	reqHeaders.Set("Content-Type", "application/json")
78920	c.urlParams_.Set("alt", alt)
78921	c.urlParams_.Set("prettyPrint", "false")
78922	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/{image}/deprecate")
78923	urls += "?" + c.urlParams_.Encode()
78924	req, err := http.NewRequest("POST", urls, body)
78925	if err != nil {
78926		return nil, err
78927	}
78928	req.Header = reqHeaders
78929	googleapi.Expand(req.URL, map[string]string{
78930		"project": c.project,
78931		"image":   c.image,
78932	})
78933	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78934}
78935
78936// Do executes the "compute.images.deprecate" call.
78937// Exactly one of *Operation or error will be non-nil. Any non-2xx
78938// status code is an error. Response headers are in either
78939// *Operation.ServerResponse.Header or (if a response was returned at
78940// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
78941// to check whether the returned error was because
78942// http.StatusNotModified was returned.
78943func (c *ImagesDeprecateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
78944	gensupport.SetOptions(c.urlParams_, opts...)
78945	res, err := c.doRequest("json")
78946	if res != nil && res.StatusCode == http.StatusNotModified {
78947		if res.Body != nil {
78948			res.Body.Close()
78949		}
78950		return nil, &googleapi.Error{
78951			Code:   res.StatusCode,
78952			Header: res.Header,
78953		}
78954	}
78955	if err != nil {
78956		return nil, err
78957	}
78958	defer googleapi.CloseBody(res)
78959	if err := googleapi.CheckResponse(res); err != nil {
78960		return nil, err
78961	}
78962	ret := &Operation{
78963		ServerResponse: googleapi.ServerResponse{
78964			Header:         res.Header,
78965			HTTPStatusCode: res.StatusCode,
78966		},
78967	}
78968	target := &ret
78969	if err := gensupport.DecodeResponse(target, res); err != nil {
78970		return nil, err
78971	}
78972	return ret, nil
78973	// {
78974	//   "description": "Sets the deprecation status of an image.\n\nIf an empty request body is given, clears the deprecation status instead.",
78975	//   "httpMethod": "POST",
78976	//   "id": "compute.images.deprecate",
78977	//   "parameterOrder": [
78978	//     "project",
78979	//     "image"
78980	//   ],
78981	//   "parameters": {
78982	//     "image": {
78983	//       "description": "Image name.",
78984	//       "location": "path",
78985	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
78986	//       "required": true,
78987	//       "type": "string"
78988	//     },
78989	//     "project": {
78990	//       "description": "Project ID for this request.",
78991	//       "location": "path",
78992	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78993	//       "required": true,
78994	//       "type": "string"
78995	//     },
78996	//     "requestId": {
78997	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
78998	//       "location": "query",
78999	//       "type": "string"
79000	//     }
79001	//   },
79002	//   "path": "projects/{project}/global/images/{image}/deprecate",
79003	//   "request": {
79004	//     "$ref": "DeprecationStatus"
79005	//   },
79006	//   "response": {
79007	//     "$ref": "Operation"
79008	//   },
79009	//   "scopes": [
79010	//     "https://www.googleapis.com/auth/cloud-platform",
79011	//     "https://www.googleapis.com/auth/compute"
79012	//   ]
79013	// }
79014
79015}
79016
79017// method id "compute.images.get":
79018
79019type ImagesGetCall struct {
79020	s            *Service
79021	project      string
79022	image        string
79023	urlParams_   gensupport.URLParams
79024	ifNoneMatch_ string
79025	ctx_         context.Context
79026	header_      http.Header
79027}
79028
79029// Get: Returns the specified image. Gets a list of available images by
79030// making a list() request.
79031// For details, see https://cloud.google.com/compute/docs/reference/latest/images/get
79032func (r *ImagesService) Get(project string, image string) *ImagesGetCall {
79033	c := &ImagesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79034	c.project = project
79035	c.image = image
79036	return c
79037}
79038
79039// Fields allows partial responses to be retrieved. See
79040// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79041// for more information.
79042func (c *ImagesGetCall) Fields(s ...googleapi.Field) *ImagesGetCall {
79043	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79044	return c
79045}
79046
79047// IfNoneMatch sets the optional parameter which makes the operation
79048// fail if the object's ETag matches the given value. This is useful for
79049// getting updates only after the object has changed since the last
79050// request. Use googleapi.IsNotModified to check whether the response
79051// error from Do is the result of In-None-Match.
79052func (c *ImagesGetCall) IfNoneMatch(entityTag string) *ImagesGetCall {
79053	c.ifNoneMatch_ = entityTag
79054	return c
79055}
79056
79057// Context sets the context to be used in this call's Do method. Any
79058// pending HTTP request will be aborted if the provided context is
79059// canceled.
79060func (c *ImagesGetCall) Context(ctx context.Context) *ImagesGetCall {
79061	c.ctx_ = ctx
79062	return c
79063}
79064
79065// Header returns an http.Header that can be modified by the caller to
79066// add HTTP headers to the request.
79067func (c *ImagesGetCall) Header() http.Header {
79068	if c.header_ == nil {
79069		c.header_ = make(http.Header)
79070	}
79071	return c.header_
79072}
79073
79074func (c *ImagesGetCall) doRequest(alt string) (*http.Response, error) {
79075	reqHeaders := make(http.Header)
79076	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
79077	for k, v := range c.header_ {
79078		reqHeaders[k] = v
79079	}
79080	reqHeaders.Set("User-Agent", c.s.userAgent())
79081	if c.ifNoneMatch_ != "" {
79082		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
79083	}
79084	var body io.Reader = nil
79085	c.urlParams_.Set("alt", alt)
79086	c.urlParams_.Set("prettyPrint", "false")
79087	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/{image}")
79088	urls += "?" + c.urlParams_.Encode()
79089	req, err := http.NewRequest("GET", urls, body)
79090	if err != nil {
79091		return nil, err
79092	}
79093	req.Header = reqHeaders
79094	googleapi.Expand(req.URL, map[string]string{
79095		"project": c.project,
79096		"image":   c.image,
79097	})
79098	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79099}
79100
79101// Do executes the "compute.images.get" call.
79102// Exactly one of *Image or error will be non-nil. Any non-2xx status
79103// code is an error. Response headers are in either
79104// *Image.ServerResponse.Header or (if a response was returned at all)
79105// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
79106// check whether the returned error was because http.StatusNotModified
79107// was returned.
79108func (c *ImagesGetCall) Do(opts ...googleapi.CallOption) (*Image, error) {
79109	gensupport.SetOptions(c.urlParams_, opts...)
79110	res, err := c.doRequest("json")
79111	if res != nil && res.StatusCode == http.StatusNotModified {
79112		if res.Body != nil {
79113			res.Body.Close()
79114		}
79115		return nil, &googleapi.Error{
79116			Code:   res.StatusCode,
79117			Header: res.Header,
79118		}
79119	}
79120	if err != nil {
79121		return nil, err
79122	}
79123	defer googleapi.CloseBody(res)
79124	if err := googleapi.CheckResponse(res); err != nil {
79125		return nil, err
79126	}
79127	ret := &Image{
79128		ServerResponse: googleapi.ServerResponse{
79129			Header:         res.Header,
79130			HTTPStatusCode: res.StatusCode,
79131		},
79132	}
79133	target := &ret
79134	if err := gensupport.DecodeResponse(target, res); err != nil {
79135		return nil, err
79136	}
79137	return ret, nil
79138	// {
79139	//   "description": "Returns the specified image. Gets a list of available images by making a list() request.",
79140	//   "httpMethod": "GET",
79141	//   "id": "compute.images.get",
79142	//   "parameterOrder": [
79143	//     "project",
79144	//     "image"
79145	//   ],
79146	//   "parameters": {
79147	//     "image": {
79148	//       "description": "Name of the image resource to return.",
79149	//       "location": "path",
79150	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
79151	//       "required": true,
79152	//       "type": "string"
79153	//     },
79154	//     "project": {
79155	//       "description": "Project ID for this request.",
79156	//       "location": "path",
79157	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79158	//       "required": true,
79159	//       "type": "string"
79160	//     }
79161	//   },
79162	//   "path": "projects/{project}/global/images/{image}",
79163	//   "response": {
79164	//     "$ref": "Image"
79165	//   },
79166	//   "scopes": [
79167	//     "https://www.googleapis.com/auth/cloud-platform",
79168	//     "https://www.googleapis.com/auth/compute",
79169	//     "https://www.googleapis.com/auth/compute.readonly"
79170	//   ]
79171	// }
79172
79173}
79174
79175// method id "compute.images.getFromFamily":
79176
79177type ImagesGetFromFamilyCall struct {
79178	s            *Service
79179	project      string
79180	family       string
79181	urlParams_   gensupport.URLParams
79182	ifNoneMatch_ string
79183	ctx_         context.Context
79184	header_      http.Header
79185}
79186
79187// GetFromFamily: Returns the latest image that is part of an image
79188// family and is not deprecated.
79189func (r *ImagesService) GetFromFamily(project string, family string) *ImagesGetFromFamilyCall {
79190	c := &ImagesGetFromFamilyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79191	c.project = project
79192	c.family = family
79193	return c
79194}
79195
79196// Fields allows partial responses to be retrieved. See
79197// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79198// for more information.
79199func (c *ImagesGetFromFamilyCall) Fields(s ...googleapi.Field) *ImagesGetFromFamilyCall {
79200	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79201	return c
79202}
79203
79204// IfNoneMatch sets the optional parameter which makes the operation
79205// fail if the object's ETag matches the given value. This is useful for
79206// getting updates only after the object has changed since the last
79207// request. Use googleapi.IsNotModified to check whether the response
79208// error from Do is the result of In-None-Match.
79209func (c *ImagesGetFromFamilyCall) IfNoneMatch(entityTag string) *ImagesGetFromFamilyCall {
79210	c.ifNoneMatch_ = entityTag
79211	return c
79212}
79213
79214// Context sets the context to be used in this call's Do method. Any
79215// pending HTTP request will be aborted if the provided context is
79216// canceled.
79217func (c *ImagesGetFromFamilyCall) Context(ctx context.Context) *ImagesGetFromFamilyCall {
79218	c.ctx_ = ctx
79219	return c
79220}
79221
79222// Header returns an http.Header that can be modified by the caller to
79223// add HTTP headers to the request.
79224func (c *ImagesGetFromFamilyCall) Header() http.Header {
79225	if c.header_ == nil {
79226		c.header_ = make(http.Header)
79227	}
79228	return c.header_
79229}
79230
79231func (c *ImagesGetFromFamilyCall) doRequest(alt string) (*http.Response, error) {
79232	reqHeaders := make(http.Header)
79233	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
79234	for k, v := range c.header_ {
79235		reqHeaders[k] = v
79236	}
79237	reqHeaders.Set("User-Agent", c.s.userAgent())
79238	if c.ifNoneMatch_ != "" {
79239		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
79240	}
79241	var body io.Reader = nil
79242	c.urlParams_.Set("alt", alt)
79243	c.urlParams_.Set("prettyPrint", "false")
79244	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/family/{family}")
79245	urls += "?" + c.urlParams_.Encode()
79246	req, err := http.NewRequest("GET", urls, body)
79247	if err != nil {
79248		return nil, err
79249	}
79250	req.Header = reqHeaders
79251	googleapi.Expand(req.URL, map[string]string{
79252		"project": c.project,
79253		"family":  c.family,
79254	})
79255	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79256}
79257
79258// Do executes the "compute.images.getFromFamily" call.
79259// Exactly one of *Image or error will be non-nil. Any non-2xx status
79260// code is an error. Response headers are in either
79261// *Image.ServerResponse.Header or (if a response was returned at all)
79262// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
79263// check whether the returned error was because http.StatusNotModified
79264// was returned.
79265func (c *ImagesGetFromFamilyCall) Do(opts ...googleapi.CallOption) (*Image, error) {
79266	gensupport.SetOptions(c.urlParams_, opts...)
79267	res, err := c.doRequest("json")
79268	if res != nil && res.StatusCode == http.StatusNotModified {
79269		if res.Body != nil {
79270			res.Body.Close()
79271		}
79272		return nil, &googleapi.Error{
79273			Code:   res.StatusCode,
79274			Header: res.Header,
79275		}
79276	}
79277	if err != nil {
79278		return nil, err
79279	}
79280	defer googleapi.CloseBody(res)
79281	if err := googleapi.CheckResponse(res); err != nil {
79282		return nil, err
79283	}
79284	ret := &Image{
79285		ServerResponse: googleapi.ServerResponse{
79286			Header:         res.Header,
79287			HTTPStatusCode: res.StatusCode,
79288		},
79289	}
79290	target := &ret
79291	if err := gensupport.DecodeResponse(target, res); err != nil {
79292		return nil, err
79293	}
79294	return ret, nil
79295	// {
79296	//   "description": "Returns the latest image that is part of an image family and is not deprecated.",
79297	//   "httpMethod": "GET",
79298	//   "id": "compute.images.getFromFamily",
79299	//   "parameterOrder": [
79300	//     "project",
79301	//     "family"
79302	//   ],
79303	//   "parameters": {
79304	//     "family": {
79305	//       "description": "Name of the image family to search for.",
79306	//       "location": "path",
79307	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
79308	//       "required": true,
79309	//       "type": "string"
79310	//     },
79311	//     "project": {
79312	//       "description": "Project ID for this request.",
79313	//       "location": "path",
79314	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79315	//       "required": true,
79316	//       "type": "string"
79317	//     }
79318	//   },
79319	//   "path": "projects/{project}/global/images/family/{family}",
79320	//   "response": {
79321	//     "$ref": "Image"
79322	//   },
79323	//   "scopes": [
79324	//     "https://www.googleapis.com/auth/cloud-platform",
79325	//     "https://www.googleapis.com/auth/compute",
79326	//     "https://www.googleapis.com/auth/compute.readonly"
79327	//   ]
79328	// }
79329
79330}
79331
79332// method id "compute.images.getIamPolicy":
79333
79334type ImagesGetIamPolicyCall struct {
79335	s            *Service
79336	project      string
79337	resource     string
79338	urlParams_   gensupport.URLParams
79339	ifNoneMatch_ string
79340	ctx_         context.Context
79341	header_      http.Header
79342}
79343
79344// GetIamPolicy: Gets the access control policy for a resource. May be
79345// empty if no such policy or resource exists.
79346func (r *ImagesService) GetIamPolicy(project string, resource string) *ImagesGetIamPolicyCall {
79347	c := &ImagesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79348	c.project = project
79349	c.resource = resource
79350	return c
79351}
79352
79353// OptionsRequestedPolicyVersion sets the optional parameter
79354// "optionsRequestedPolicyVersion": Requested IAM Policy version.
79355func (c *ImagesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ImagesGetIamPolicyCall {
79356	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
79357	return c
79358}
79359
79360// Fields allows partial responses to be retrieved. See
79361// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79362// for more information.
79363func (c *ImagesGetIamPolicyCall) Fields(s ...googleapi.Field) *ImagesGetIamPolicyCall {
79364	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79365	return c
79366}
79367
79368// IfNoneMatch sets the optional parameter which makes the operation
79369// fail if the object's ETag matches the given value. This is useful for
79370// getting updates only after the object has changed since the last
79371// request. Use googleapi.IsNotModified to check whether the response
79372// error from Do is the result of In-None-Match.
79373func (c *ImagesGetIamPolicyCall) IfNoneMatch(entityTag string) *ImagesGetIamPolicyCall {
79374	c.ifNoneMatch_ = entityTag
79375	return c
79376}
79377
79378// Context sets the context to be used in this call's Do method. Any
79379// pending HTTP request will be aborted if the provided context is
79380// canceled.
79381func (c *ImagesGetIamPolicyCall) Context(ctx context.Context) *ImagesGetIamPolicyCall {
79382	c.ctx_ = ctx
79383	return c
79384}
79385
79386// Header returns an http.Header that can be modified by the caller to
79387// add HTTP headers to the request.
79388func (c *ImagesGetIamPolicyCall) Header() http.Header {
79389	if c.header_ == nil {
79390		c.header_ = make(http.Header)
79391	}
79392	return c.header_
79393}
79394
79395func (c *ImagesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
79396	reqHeaders := make(http.Header)
79397	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
79398	for k, v := range c.header_ {
79399		reqHeaders[k] = v
79400	}
79401	reqHeaders.Set("User-Agent", c.s.userAgent())
79402	if c.ifNoneMatch_ != "" {
79403		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
79404	}
79405	var body io.Reader = nil
79406	c.urlParams_.Set("alt", alt)
79407	c.urlParams_.Set("prettyPrint", "false")
79408	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/{resource}/getIamPolicy")
79409	urls += "?" + c.urlParams_.Encode()
79410	req, err := http.NewRequest("GET", urls, body)
79411	if err != nil {
79412		return nil, err
79413	}
79414	req.Header = reqHeaders
79415	googleapi.Expand(req.URL, map[string]string{
79416		"project":  c.project,
79417		"resource": c.resource,
79418	})
79419	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79420}
79421
79422// Do executes the "compute.images.getIamPolicy" call.
79423// Exactly one of *Policy or error will be non-nil. Any non-2xx status
79424// code is an error. Response headers are in either
79425// *Policy.ServerResponse.Header or (if a response was returned at all)
79426// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
79427// check whether the returned error was because http.StatusNotModified
79428// was returned.
79429func (c *ImagesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
79430	gensupport.SetOptions(c.urlParams_, opts...)
79431	res, err := c.doRequest("json")
79432	if res != nil && res.StatusCode == http.StatusNotModified {
79433		if res.Body != nil {
79434			res.Body.Close()
79435		}
79436		return nil, &googleapi.Error{
79437			Code:   res.StatusCode,
79438			Header: res.Header,
79439		}
79440	}
79441	if err != nil {
79442		return nil, err
79443	}
79444	defer googleapi.CloseBody(res)
79445	if err := googleapi.CheckResponse(res); err != nil {
79446		return nil, err
79447	}
79448	ret := &Policy{
79449		ServerResponse: googleapi.ServerResponse{
79450			Header:         res.Header,
79451			HTTPStatusCode: res.StatusCode,
79452		},
79453	}
79454	target := &ret
79455	if err := gensupport.DecodeResponse(target, res); err != nil {
79456		return nil, err
79457	}
79458	return ret, nil
79459	// {
79460	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
79461	//   "httpMethod": "GET",
79462	//   "id": "compute.images.getIamPolicy",
79463	//   "parameterOrder": [
79464	//     "project",
79465	//     "resource"
79466	//   ],
79467	//   "parameters": {
79468	//     "optionsRequestedPolicyVersion": {
79469	//       "description": "Requested IAM Policy version.",
79470	//       "format": "int32",
79471	//       "location": "query",
79472	//       "type": "integer"
79473	//     },
79474	//     "project": {
79475	//       "description": "Project ID for this request.",
79476	//       "location": "path",
79477	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79478	//       "required": true,
79479	//       "type": "string"
79480	//     },
79481	//     "resource": {
79482	//       "description": "Name or id of the resource for this request.",
79483	//       "location": "path",
79484	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
79485	//       "required": true,
79486	//       "type": "string"
79487	//     }
79488	//   },
79489	//   "path": "projects/{project}/global/images/{resource}/getIamPolicy",
79490	//   "response": {
79491	//     "$ref": "Policy"
79492	//   },
79493	//   "scopes": [
79494	//     "https://www.googleapis.com/auth/cloud-platform",
79495	//     "https://www.googleapis.com/auth/compute",
79496	//     "https://www.googleapis.com/auth/compute.readonly"
79497	//   ]
79498	// }
79499
79500}
79501
79502// method id "compute.images.insert":
79503
79504type ImagesInsertCall struct {
79505	s          *Service
79506	project    string
79507	image      *Image
79508	urlParams_ gensupport.URLParams
79509	ctx_       context.Context
79510	header_    http.Header
79511}
79512
79513// Insert: Creates an image in the specified project using the data
79514// included in the request.
79515// For details, see https://cloud.google.com/compute/docs/reference/latest/images/insert
79516func (r *ImagesService) Insert(project string, image *Image) *ImagesInsertCall {
79517	c := &ImagesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79518	c.project = project
79519	c.image = image
79520	return c
79521}
79522
79523// ForceCreate sets the optional parameter "forceCreate": Force image
79524// creation if true.
79525func (c *ImagesInsertCall) ForceCreate(forceCreate bool) *ImagesInsertCall {
79526	c.urlParams_.Set("forceCreate", fmt.Sprint(forceCreate))
79527	return c
79528}
79529
79530// RequestId sets the optional parameter "requestId": An optional
79531// request ID to identify requests. Specify a unique request ID so that
79532// if you must retry your request, the server will know to ignore the
79533// request if it has already been completed.
79534//
79535// For example, consider a situation where you make an initial request
79536// and the request times out. If you make the request again with the
79537// same request ID, the server can check if original operation with the
79538// same request ID was received, and if so, will ignore the second
79539// request. This prevents clients from accidentally creating duplicate
79540// commitments.
79541//
79542// The request ID must be a valid UUID with the exception that zero UUID
79543// is not supported (00000000-0000-0000-0000-000000000000).
79544func (c *ImagesInsertCall) RequestId(requestId string) *ImagesInsertCall {
79545	c.urlParams_.Set("requestId", requestId)
79546	return c
79547}
79548
79549// Fields allows partial responses to be retrieved. See
79550// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79551// for more information.
79552func (c *ImagesInsertCall) Fields(s ...googleapi.Field) *ImagesInsertCall {
79553	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79554	return c
79555}
79556
79557// Context sets the context to be used in this call's Do method. Any
79558// pending HTTP request will be aborted if the provided context is
79559// canceled.
79560func (c *ImagesInsertCall) Context(ctx context.Context) *ImagesInsertCall {
79561	c.ctx_ = ctx
79562	return c
79563}
79564
79565// Header returns an http.Header that can be modified by the caller to
79566// add HTTP headers to the request.
79567func (c *ImagesInsertCall) Header() http.Header {
79568	if c.header_ == nil {
79569		c.header_ = make(http.Header)
79570	}
79571	return c.header_
79572}
79573
79574func (c *ImagesInsertCall) doRequest(alt string) (*http.Response, error) {
79575	reqHeaders := make(http.Header)
79576	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
79577	for k, v := range c.header_ {
79578		reqHeaders[k] = v
79579	}
79580	reqHeaders.Set("User-Agent", c.s.userAgent())
79581	var body io.Reader = nil
79582	body, err := googleapi.WithoutDataWrapper.JSONReader(c.image)
79583	if err != nil {
79584		return nil, err
79585	}
79586	reqHeaders.Set("Content-Type", "application/json")
79587	c.urlParams_.Set("alt", alt)
79588	c.urlParams_.Set("prettyPrint", "false")
79589	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images")
79590	urls += "?" + c.urlParams_.Encode()
79591	req, err := http.NewRequest("POST", urls, body)
79592	if err != nil {
79593		return nil, err
79594	}
79595	req.Header = reqHeaders
79596	googleapi.Expand(req.URL, map[string]string{
79597		"project": c.project,
79598	})
79599	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79600}
79601
79602// Do executes the "compute.images.insert" call.
79603// Exactly one of *Operation or error will be non-nil. Any non-2xx
79604// status code is an error. Response headers are in either
79605// *Operation.ServerResponse.Header or (if a response was returned at
79606// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
79607// to check whether the returned error was because
79608// http.StatusNotModified was returned.
79609func (c *ImagesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
79610	gensupport.SetOptions(c.urlParams_, opts...)
79611	res, err := c.doRequest("json")
79612	if res != nil && res.StatusCode == http.StatusNotModified {
79613		if res.Body != nil {
79614			res.Body.Close()
79615		}
79616		return nil, &googleapi.Error{
79617			Code:   res.StatusCode,
79618			Header: res.Header,
79619		}
79620	}
79621	if err != nil {
79622		return nil, err
79623	}
79624	defer googleapi.CloseBody(res)
79625	if err := googleapi.CheckResponse(res); err != nil {
79626		return nil, err
79627	}
79628	ret := &Operation{
79629		ServerResponse: googleapi.ServerResponse{
79630			Header:         res.Header,
79631			HTTPStatusCode: res.StatusCode,
79632		},
79633	}
79634	target := &ret
79635	if err := gensupport.DecodeResponse(target, res); err != nil {
79636		return nil, err
79637	}
79638	return ret, nil
79639	// {
79640	//   "description": "Creates an image in the specified project using the data included in the request.",
79641	//   "httpMethod": "POST",
79642	//   "id": "compute.images.insert",
79643	//   "parameterOrder": [
79644	//     "project"
79645	//   ],
79646	//   "parameters": {
79647	//     "forceCreate": {
79648	//       "description": "Force image creation if true.",
79649	//       "location": "query",
79650	//       "type": "boolean"
79651	//     },
79652	//     "project": {
79653	//       "description": "Project ID for this request.",
79654	//       "location": "path",
79655	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79656	//       "required": true,
79657	//       "type": "string"
79658	//     },
79659	//     "requestId": {
79660	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
79661	//       "location": "query",
79662	//       "type": "string"
79663	//     }
79664	//   },
79665	//   "path": "projects/{project}/global/images",
79666	//   "request": {
79667	//     "$ref": "Image"
79668	//   },
79669	//   "response": {
79670	//     "$ref": "Operation"
79671	//   },
79672	//   "scopes": [
79673	//     "https://www.googleapis.com/auth/cloud-platform",
79674	//     "https://www.googleapis.com/auth/compute",
79675	//     "https://www.googleapis.com/auth/devstorage.full_control",
79676	//     "https://www.googleapis.com/auth/devstorage.read_only",
79677	//     "https://www.googleapis.com/auth/devstorage.read_write"
79678	//   ]
79679	// }
79680
79681}
79682
79683// method id "compute.images.list":
79684
79685type ImagesListCall struct {
79686	s            *Service
79687	project      string
79688	urlParams_   gensupport.URLParams
79689	ifNoneMatch_ string
79690	ctx_         context.Context
79691	header_      http.Header
79692}
79693
79694// List: Retrieves the list of custom images available to the specified
79695// project. Custom images are images you create that belong to your
79696// project. This method does not get any images that belong to other
79697// projects, including publicly-available images, like Debian 8. If you
79698// want to get a list of publicly-available images, use this method to
79699// make a request to the respective image project, such as debian-cloud
79700// or windows-cloud.
79701// For details, see https://cloud.google.com/compute/docs/reference/latest/images/list
79702func (r *ImagesService) List(project string) *ImagesListCall {
79703	c := &ImagesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79704	c.project = project
79705	return c
79706}
79707
79708// Filter sets the optional parameter "filter": A filter expression that
79709// filters resources listed in the response. The expression must specify
79710// the field name, a comparison operator, and the value that you want to
79711// use for filtering. The value must be a string, a number, or a
79712// boolean. The comparison operator must be either `=`, `!=`, `>`, or
79713// `<`.
79714//
79715// For example, if you are filtering Compute Engine instances, you can
79716// exclude instances named `example-instance` by specifying `name !=
79717// example-instance`.
79718//
79719// You can also filter nested fields. For example, you could specify
79720// `scheduling.automaticRestart = false` to include instances only if
79721// they are not scheduled for automatic restarts. You can use filtering
79722// on nested fields to filter based on resource labels.
79723//
79724// To filter on multiple expressions, provide each separate expression
79725// within parentheses. For example: ``` (scheduling.automaticRestart =
79726// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
79727// is an `AND` expression. However, you can include `AND` and `OR`
79728// expressions explicitly. For example: ``` (cpuPlatform = "Intel
79729// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
79730// (scheduling.automaticRestart = true) ```
79731func (c *ImagesListCall) Filter(filter string) *ImagesListCall {
79732	c.urlParams_.Set("filter", filter)
79733	return c
79734}
79735
79736// MaxResults sets the optional parameter "maxResults": The maximum
79737// number of results per page that should be returned. If the number of
79738// available results is larger than `maxResults`, Compute Engine returns
79739// a `nextPageToken` that can be used to get the next page of results in
79740// subsequent list requests. Acceptable values are `0` to `500`,
79741// inclusive. (Default: `500`)
79742func (c *ImagesListCall) MaxResults(maxResults int64) *ImagesListCall {
79743	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
79744	return c
79745}
79746
79747// OrderBy sets the optional parameter "orderBy": Sorts list results by
79748// a certain order. By default, results are returned in alphanumerical
79749// order based on the resource name.
79750//
79751// You can also sort results in descending order based on the creation
79752// timestamp using `orderBy="creationTimestamp desc". This sorts
79753// results based on the `creationTimestamp` field in reverse
79754// chronological order (newest result first). Use this to sort resources
79755// like operations so that the newest operation is returned
79756// first.
79757//
79758// Currently, only sorting by `name` or `creationTimestamp desc` is
79759// supported.
79760func (c *ImagesListCall) OrderBy(orderBy string) *ImagesListCall {
79761	c.urlParams_.Set("orderBy", orderBy)
79762	return c
79763}
79764
79765// PageToken sets the optional parameter "pageToken": Specifies a page
79766// token to use. Set `pageToken` to the `nextPageToken` returned by a
79767// previous list request to get the next page of results.
79768func (c *ImagesListCall) PageToken(pageToken string) *ImagesListCall {
79769	c.urlParams_.Set("pageToken", pageToken)
79770	return c
79771}
79772
79773// ReturnPartialSuccess sets the optional parameter
79774// "returnPartialSuccess": Opt-in for partial success behavior which
79775// provides partial results in case of failure. The default value is
79776// false.
79777func (c *ImagesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ImagesListCall {
79778	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
79779	return c
79780}
79781
79782// Fields allows partial responses to be retrieved. See
79783// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79784// for more information.
79785func (c *ImagesListCall) Fields(s ...googleapi.Field) *ImagesListCall {
79786	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79787	return c
79788}
79789
79790// IfNoneMatch sets the optional parameter which makes the operation
79791// fail if the object's ETag matches the given value. This is useful for
79792// getting updates only after the object has changed since the last
79793// request. Use googleapi.IsNotModified to check whether the response
79794// error from Do is the result of In-None-Match.
79795func (c *ImagesListCall) IfNoneMatch(entityTag string) *ImagesListCall {
79796	c.ifNoneMatch_ = entityTag
79797	return c
79798}
79799
79800// Context sets the context to be used in this call's Do method. Any
79801// pending HTTP request will be aborted if the provided context is
79802// canceled.
79803func (c *ImagesListCall) Context(ctx context.Context) *ImagesListCall {
79804	c.ctx_ = ctx
79805	return c
79806}
79807
79808// Header returns an http.Header that can be modified by the caller to
79809// add HTTP headers to the request.
79810func (c *ImagesListCall) Header() http.Header {
79811	if c.header_ == nil {
79812		c.header_ = make(http.Header)
79813	}
79814	return c.header_
79815}
79816
79817func (c *ImagesListCall) doRequest(alt string) (*http.Response, error) {
79818	reqHeaders := make(http.Header)
79819	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
79820	for k, v := range c.header_ {
79821		reqHeaders[k] = v
79822	}
79823	reqHeaders.Set("User-Agent", c.s.userAgent())
79824	if c.ifNoneMatch_ != "" {
79825		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
79826	}
79827	var body io.Reader = nil
79828	c.urlParams_.Set("alt", alt)
79829	c.urlParams_.Set("prettyPrint", "false")
79830	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images")
79831	urls += "?" + c.urlParams_.Encode()
79832	req, err := http.NewRequest("GET", urls, body)
79833	if err != nil {
79834		return nil, err
79835	}
79836	req.Header = reqHeaders
79837	googleapi.Expand(req.URL, map[string]string{
79838		"project": c.project,
79839	})
79840	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79841}
79842
79843// Do executes the "compute.images.list" call.
79844// Exactly one of *ImageList or error will be non-nil. Any non-2xx
79845// status code is an error. Response headers are in either
79846// *ImageList.ServerResponse.Header or (if a response was returned at
79847// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
79848// to check whether the returned error was because
79849// http.StatusNotModified was returned.
79850func (c *ImagesListCall) Do(opts ...googleapi.CallOption) (*ImageList, error) {
79851	gensupport.SetOptions(c.urlParams_, opts...)
79852	res, err := c.doRequest("json")
79853	if res != nil && res.StatusCode == http.StatusNotModified {
79854		if res.Body != nil {
79855			res.Body.Close()
79856		}
79857		return nil, &googleapi.Error{
79858			Code:   res.StatusCode,
79859			Header: res.Header,
79860		}
79861	}
79862	if err != nil {
79863		return nil, err
79864	}
79865	defer googleapi.CloseBody(res)
79866	if err := googleapi.CheckResponse(res); err != nil {
79867		return nil, err
79868	}
79869	ret := &ImageList{
79870		ServerResponse: googleapi.ServerResponse{
79871			Header:         res.Header,
79872			HTTPStatusCode: res.StatusCode,
79873		},
79874	}
79875	target := &ret
79876	if err := gensupport.DecodeResponse(target, res); err != nil {
79877		return nil, err
79878	}
79879	return ret, nil
79880	// {
79881	//   "description": "Retrieves the list of custom images available to the specified project. Custom images are images you create that belong to your project. This method does not get any images that belong to other projects, including publicly-available images, like Debian 8. If you want to get a list of publicly-available images, use this method to make a request to the respective image project, such as debian-cloud or windows-cloud.",
79882	//   "httpMethod": "GET",
79883	//   "id": "compute.images.list",
79884	//   "parameterOrder": [
79885	//     "project"
79886	//   ],
79887	//   "parameters": {
79888	//     "filter": {
79889	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
79890	//       "location": "query",
79891	//       "type": "string"
79892	//     },
79893	//     "maxResults": {
79894	//       "default": "500",
79895	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
79896	//       "format": "uint32",
79897	//       "location": "query",
79898	//       "minimum": "0",
79899	//       "type": "integer"
79900	//     },
79901	//     "orderBy": {
79902	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
79903	//       "location": "query",
79904	//       "type": "string"
79905	//     },
79906	//     "pageToken": {
79907	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
79908	//       "location": "query",
79909	//       "type": "string"
79910	//     },
79911	//     "project": {
79912	//       "description": "Project ID for this request.",
79913	//       "location": "path",
79914	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79915	//       "required": true,
79916	//       "type": "string"
79917	//     },
79918	//     "returnPartialSuccess": {
79919	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
79920	//       "location": "query",
79921	//       "type": "boolean"
79922	//     }
79923	//   },
79924	//   "path": "projects/{project}/global/images",
79925	//   "response": {
79926	//     "$ref": "ImageList"
79927	//   },
79928	//   "scopes": [
79929	//     "https://www.googleapis.com/auth/cloud-platform",
79930	//     "https://www.googleapis.com/auth/compute",
79931	//     "https://www.googleapis.com/auth/compute.readonly"
79932	//   ]
79933	// }
79934
79935}
79936
79937// Pages invokes f for each page of results.
79938// A non-nil error returned from f will halt the iteration.
79939// The provided context supersedes any context provided to the Context method.
79940func (c *ImagesListCall) Pages(ctx context.Context, f func(*ImageList) error) error {
79941	c.ctx_ = ctx
79942	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
79943	for {
79944		x, err := c.Do()
79945		if err != nil {
79946			return err
79947		}
79948		if err := f(x); err != nil {
79949			return err
79950		}
79951		if x.NextPageToken == "" {
79952			return nil
79953		}
79954		c.PageToken(x.NextPageToken)
79955	}
79956}
79957
79958// method id "compute.images.patch":
79959
79960type ImagesPatchCall struct {
79961	s          *Service
79962	project    string
79963	image      string
79964	image2     *Image
79965	urlParams_ gensupport.URLParams
79966	ctx_       context.Context
79967	header_    http.Header
79968}
79969
79970// Patch: Patches the specified image with the data included in the
79971// request. Only the following fields can be modified: family,
79972// description, deprecation status.
79973func (r *ImagesService) Patch(project string, image string, image2 *Image) *ImagesPatchCall {
79974	c := &ImagesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79975	c.project = project
79976	c.image = image
79977	c.image2 = image2
79978	return c
79979}
79980
79981// RequestId sets the optional parameter "requestId": An optional
79982// request ID to identify requests. Specify a unique request ID so that
79983// if you must retry your request, the server will know to ignore the
79984// request if it has already been completed.
79985//
79986// For example, consider a situation where you make an initial request
79987// and the request times out. If you make the request again with the
79988// same request ID, the server can check if original operation with the
79989// same request ID was received, and if so, will ignore the second
79990// request. This prevents clients from accidentally creating duplicate
79991// commitments.
79992//
79993// The request ID must be a valid UUID with the exception that zero UUID
79994// is not supported (00000000-0000-0000-0000-000000000000).
79995func (c *ImagesPatchCall) RequestId(requestId string) *ImagesPatchCall {
79996	c.urlParams_.Set("requestId", requestId)
79997	return c
79998}
79999
80000// Fields allows partial responses to be retrieved. See
80001// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80002// for more information.
80003func (c *ImagesPatchCall) Fields(s ...googleapi.Field) *ImagesPatchCall {
80004	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80005	return c
80006}
80007
80008// Context sets the context to be used in this call's Do method. Any
80009// pending HTTP request will be aborted if the provided context is
80010// canceled.
80011func (c *ImagesPatchCall) Context(ctx context.Context) *ImagesPatchCall {
80012	c.ctx_ = ctx
80013	return c
80014}
80015
80016// Header returns an http.Header that can be modified by the caller to
80017// add HTTP headers to the request.
80018func (c *ImagesPatchCall) Header() http.Header {
80019	if c.header_ == nil {
80020		c.header_ = make(http.Header)
80021	}
80022	return c.header_
80023}
80024
80025func (c *ImagesPatchCall) doRequest(alt string) (*http.Response, error) {
80026	reqHeaders := make(http.Header)
80027	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
80028	for k, v := range c.header_ {
80029		reqHeaders[k] = v
80030	}
80031	reqHeaders.Set("User-Agent", c.s.userAgent())
80032	var body io.Reader = nil
80033	body, err := googleapi.WithoutDataWrapper.JSONReader(c.image2)
80034	if err != nil {
80035		return nil, err
80036	}
80037	reqHeaders.Set("Content-Type", "application/json")
80038	c.urlParams_.Set("alt", alt)
80039	c.urlParams_.Set("prettyPrint", "false")
80040	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/{image}")
80041	urls += "?" + c.urlParams_.Encode()
80042	req, err := http.NewRequest("PATCH", urls, body)
80043	if err != nil {
80044		return nil, err
80045	}
80046	req.Header = reqHeaders
80047	googleapi.Expand(req.URL, map[string]string{
80048		"project": c.project,
80049		"image":   c.image,
80050	})
80051	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80052}
80053
80054// Do executes the "compute.images.patch" call.
80055// Exactly one of *Operation or error will be non-nil. Any non-2xx
80056// status code is an error. Response headers are in either
80057// *Operation.ServerResponse.Header or (if a response was returned at
80058// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
80059// to check whether the returned error was because
80060// http.StatusNotModified was returned.
80061func (c *ImagesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
80062	gensupport.SetOptions(c.urlParams_, opts...)
80063	res, err := c.doRequest("json")
80064	if res != nil && res.StatusCode == http.StatusNotModified {
80065		if res.Body != nil {
80066			res.Body.Close()
80067		}
80068		return nil, &googleapi.Error{
80069			Code:   res.StatusCode,
80070			Header: res.Header,
80071		}
80072	}
80073	if err != nil {
80074		return nil, err
80075	}
80076	defer googleapi.CloseBody(res)
80077	if err := googleapi.CheckResponse(res); err != nil {
80078		return nil, err
80079	}
80080	ret := &Operation{
80081		ServerResponse: googleapi.ServerResponse{
80082			Header:         res.Header,
80083			HTTPStatusCode: res.StatusCode,
80084		},
80085	}
80086	target := &ret
80087	if err := gensupport.DecodeResponse(target, res); err != nil {
80088		return nil, err
80089	}
80090	return ret, nil
80091	// {
80092	//   "description": "Patches the specified image with the data included in the request. Only the following fields can be modified: family, description, deprecation status.",
80093	//   "httpMethod": "PATCH",
80094	//   "id": "compute.images.patch",
80095	//   "parameterOrder": [
80096	//     "project",
80097	//     "image"
80098	//   ],
80099	//   "parameters": {
80100	//     "image": {
80101	//       "description": "Name of the image resource to patch.",
80102	//       "location": "path",
80103	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
80104	//       "required": true,
80105	//       "type": "string"
80106	//     },
80107	//     "project": {
80108	//       "description": "Project ID for this request.",
80109	//       "location": "path",
80110	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80111	//       "required": true,
80112	//       "type": "string"
80113	//     },
80114	//     "requestId": {
80115	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
80116	//       "location": "query",
80117	//       "type": "string"
80118	//     }
80119	//   },
80120	//   "path": "projects/{project}/global/images/{image}",
80121	//   "request": {
80122	//     "$ref": "Image"
80123	//   },
80124	//   "response": {
80125	//     "$ref": "Operation"
80126	//   },
80127	//   "scopes": [
80128	//     "https://www.googleapis.com/auth/cloud-platform",
80129	//     "https://www.googleapis.com/auth/compute"
80130	//   ]
80131	// }
80132
80133}
80134
80135// method id "compute.images.setIamPolicy":
80136
80137type ImagesSetIamPolicyCall struct {
80138	s                      *Service
80139	project                string
80140	resource               string
80141	globalsetpolicyrequest *GlobalSetPolicyRequest
80142	urlParams_             gensupport.URLParams
80143	ctx_                   context.Context
80144	header_                http.Header
80145}
80146
80147// SetIamPolicy: Sets the access control policy on the specified
80148// resource. Replaces any existing policy.
80149func (r *ImagesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *ImagesSetIamPolicyCall {
80150	c := &ImagesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80151	c.project = project
80152	c.resource = resource
80153	c.globalsetpolicyrequest = globalsetpolicyrequest
80154	return c
80155}
80156
80157// Fields allows partial responses to be retrieved. See
80158// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80159// for more information.
80160func (c *ImagesSetIamPolicyCall) Fields(s ...googleapi.Field) *ImagesSetIamPolicyCall {
80161	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80162	return c
80163}
80164
80165// Context sets the context to be used in this call's Do method. Any
80166// pending HTTP request will be aborted if the provided context is
80167// canceled.
80168func (c *ImagesSetIamPolicyCall) Context(ctx context.Context) *ImagesSetIamPolicyCall {
80169	c.ctx_ = ctx
80170	return c
80171}
80172
80173// Header returns an http.Header that can be modified by the caller to
80174// add HTTP headers to the request.
80175func (c *ImagesSetIamPolicyCall) Header() http.Header {
80176	if c.header_ == nil {
80177		c.header_ = make(http.Header)
80178	}
80179	return c.header_
80180}
80181
80182func (c *ImagesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
80183	reqHeaders := make(http.Header)
80184	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
80185	for k, v := range c.header_ {
80186		reqHeaders[k] = v
80187	}
80188	reqHeaders.Set("User-Agent", c.s.userAgent())
80189	var body io.Reader = nil
80190	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
80191	if err != nil {
80192		return nil, err
80193	}
80194	reqHeaders.Set("Content-Type", "application/json")
80195	c.urlParams_.Set("alt", alt)
80196	c.urlParams_.Set("prettyPrint", "false")
80197	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/{resource}/setIamPolicy")
80198	urls += "?" + c.urlParams_.Encode()
80199	req, err := http.NewRequest("POST", urls, body)
80200	if err != nil {
80201		return nil, err
80202	}
80203	req.Header = reqHeaders
80204	googleapi.Expand(req.URL, map[string]string{
80205		"project":  c.project,
80206		"resource": c.resource,
80207	})
80208	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80209}
80210
80211// Do executes the "compute.images.setIamPolicy" call.
80212// Exactly one of *Policy or error will be non-nil. Any non-2xx status
80213// code is an error. Response headers are in either
80214// *Policy.ServerResponse.Header or (if a response was returned at all)
80215// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
80216// check whether the returned error was because http.StatusNotModified
80217// was returned.
80218func (c *ImagesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
80219	gensupport.SetOptions(c.urlParams_, opts...)
80220	res, err := c.doRequest("json")
80221	if res != nil && res.StatusCode == http.StatusNotModified {
80222		if res.Body != nil {
80223			res.Body.Close()
80224		}
80225		return nil, &googleapi.Error{
80226			Code:   res.StatusCode,
80227			Header: res.Header,
80228		}
80229	}
80230	if err != nil {
80231		return nil, err
80232	}
80233	defer googleapi.CloseBody(res)
80234	if err := googleapi.CheckResponse(res); err != nil {
80235		return nil, err
80236	}
80237	ret := &Policy{
80238		ServerResponse: googleapi.ServerResponse{
80239			Header:         res.Header,
80240			HTTPStatusCode: res.StatusCode,
80241		},
80242	}
80243	target := &ret
80244	if err := gensupport.DecodeResponse(target, res); err != nil {
80245		return nil, err
80246	}
80247	return ret, nil
80248	// {
80249	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
80250	//   "httpMethod": "POST",
80251	//   "id": "compute.images.setIamPolicy",
80252	//   "parameterOrder": [
80253	//     "project",
80254	//     "resource"
80255	//   ],
80256	//   "parameters": {
80257	//     "project": {
80258	//       "description": "Project ID for this request.",
80259	//       "location": "path",
80260	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80261	//       "required": true,
80262	//       "type": "string"
80263	//     },
80264	//     "resource": {
80265	//       "description": "Name or id of the resource for this request.",
80266	//       "location": "path",
80267	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
80268	//       "required": true,
80269	//       "type": "string"
80270	//     }
80271	//   },
80272	//   "path": "projects/{project}/global/images/{resource}/setIamPolicy",
80273	//   "request": {
80274	//     "$ref": "GlobalSetPolicyRequest"
80275	//   },
80276	//   "response": {
80277	//     "$ref": "Policy"
80278	//   },
80279	//   "scopes": [
80280	//     "https://www.googleapis.com/auth/cloud-platform",
80281	//     "https://www.googleapis.com/auth/compute"
80282	//   ]
80283	// }
80284
80285}
80286
80287// method id "compute.images.setLabels":
80288
80289type ImagesSetLabelsCall struct {
80290	s                      *Service
80291	project                string
80292	resource               string
80293	globalsetlabelsrequest *GlobalSetLabelsRequest
80294	urlParams_             gensupport.URLParams
80295	ctx_                   context.Context
80296	header_                http.Header
80297}
80298
80299// SetLabels: Sets the labels on an image. To learn more about labels,
80300// read the Labeling Resources documentation.
80301func (r *ImagesService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *ImagesSetLabelsCall {
80302	c := &ImagesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80303	c.project = project
80304	c.resource = resource
80305	c.globalsetlabelsrequest = globalsetlabelsrequest
80306	return c
80307}
80308
80309// Fields allows partial responses to be retrieved. See
80310// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80311// for more information.
80312func (c *ImagesSetLabelsCall) Fields(s ...googleapi.Field) *ImagesSetLabelsCall {
80313	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80314	return c
80315}
80316
80317// Context sets the context to be used in this call's Do method. Any
80318// pending HTTP request will be aborted if the provided context is
80319// canceled.
80320func (c *ImagesSetLabelsCall) Context(ctx context.Context) *ImagesSetLabelsCall {
80321	c.ctx_ = ctx
80322	return c
80323}
80324
80325// Header returns an http.Header that can be modified by the caller to
80326// add HTTP headers to the request.
80327func (c *ImagesSetLabelsCall) Header() http.Header {
80328	if c.header_ == nil {
80329		c.header_ = make(http.Header)
80330	}
80331	return c.header_
80332}
80333
80334func (c *ImagesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
80335	reqHeaders := make(http.Header)
80336	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
80337	for k, v := range c.header_ {
80338		reqHeaders[k] = v
80339	}
80340	reqHeaders.Set("User-Agent", c.s.userAgent())
80341	var body io.Reader = nil
80342	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
80343	if err != nil {
80344		return nil, err
80345	}
80346	reqHeaders.Set("Content-Type", "application/json")
80347	c.urlParams_.Set("alt", alt)
80348	c.urlParams_.Set("prettyPrint", "false")
80349	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/{resource}/setLabels")
80350	urls += "?" + c.urlParams_.Encode()
80351	req, err := http.NewRequest("POST", urls, body)
80352	if err != nil {
80353		return nil, err
80354	}
80355	req.Header = reqHeaders
80356	googleapi.Expand(req.URL, map[string]string{
80357		"project":  c.project,
80358		"resource": c.resource,
80359	})
80360	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80361}
80362
80363// Do executes the "compute.images.setLabels" call.
80364// Exactly one of *Operation or error will be non-nil. Any non-2xx
80365// status code is an error. Response headers are in either
80366// *Operation.ServerResponse.Header or (if a response was returned at
80367// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
80368// to check whether the returned error was because
80369// http.StatusNotModified was returned.
80370func (c *ImagesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
80371	gensupport.SetOptions(c.urlParams_, opts...)
80372	res, err := c.doRequest("json")
80373	if res != nil && res.StatusCode == http.StatusNotModified {
80374		if res.Body != nil {
80375			res.Body.Close()
80376		}
80377		return nil, &googleapi.Error{
80378			Code:   res.StatusCode,
80379			Header: res.Header,
80380		}
80381	}
80382	if err != nil {
80383		return nil, err
80384	}
80385	defer googleapi.CloseBody(res)
80386	if err := googleapi.CheckResponse(res); err != nil {
80387		return nil, err
80388	}
80389	ret := &Operation{
80390		ServerResponse: googleapi.ServerResponse{
80391			Header:         res.Header,
80392			HTTPStatusCode: res.StatusCode,
80393		},
80394	}
80395	target := &ret
80396	if err := gensupport.DecodeResponse(target, res); err != nil {
80397		return nil, err
80398	}
80399	return ret, nil
80400	// {
80401	//   "description": "Sets the labels on an image. To learn more about labels, read the Labeling Resources documentation.",
80402	//   "httpMethod": "POST",
80403	//   "id": "compute.images.setLabels",
80404	//   "parameterOrder": [
80405	//     "project",
80406	//     "resource"
80407	//   ],
80408	//   "parameters": {
80409	//     "project": {
80410	//       "description": "Project ID for this request.",
80411	//       "location": "path",
80412	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80413	//       "required": true,
80414	//       "type": "string"
80415	//     },
80416	//     "resource": {
80417	//       "description": "Name or id of the resource for this request.",
80418	//       "location": "path",
80419	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
80420	//       "required": true,
80421	//       "type": "string"
80422	//     }
80423	//   },
80424	//   "path": "projects/{project}/global/images/{resource}/setLabels",
80425	//   "request": {
80426	//     "$ref": "GlobalSetLabelsRequest"
80427	//   },
80428	//   "response": {
80429	//     "$ref": "Operation"
80430	//   },
80431	//   "scopes": [
80432	//     "https://www.googleapis.com/auth/cloud-platform",
80433	//     "https://www.googleapis.com/auth/compute"
80434	//   ]
80435	// }
80436
80437}
80438
80439// method id "compute.images.testIamPermissions":
80440
80441type ImagesTestIamPermissionsCall struct {
80442	s                      *Service
80443	project                string
80444	resource               string
80445	testpermissionsrequest *TestPermissionsRequest
80446	urlParams_             gensupport.URLParams
80447	ctx_                   context.Context
80448	header_                http.Header
80449}
80450
80451// TestIamPermissions: Returns permissions that a caller has on the
80452// specified resource.
80453func (r *ImagesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *ImagesTestIamPermissionsCall {
80454	c := &ImagesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80455	c.project = project
80456	c.resource = resource
80457	c.testpermissionsrequest = testpermissionsrequest
80458	return c
80459}
80460
80461// Fields allows partial responses to be retrieved. See
80462// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80463// for more information.
80464func (c *ImagesTestIamPermissionsCall) Fields(s ...googleapi.Field) *ImagesTestIamPermissionsCall {
80465	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80466	return c
80467}
80468
80469// Context sets the context to be used in this call's Do method. Any
80470// pending HTTP request will be aborted if the provided context is
80471// canceled.
80472func (c *ImagesTestIamPermissionsCall) Context(ctx context.Context) *ImagesTestIamPermissionsCall {
80473	c.ctx_ = ctx
80474	return c
80475}
80476
80477// Header returns an http.Header that can be modified by the caller to
80478// add HTTP headers to the request.
80479func (c *ImagesTestIamPermissionsCall) Header() http.Header {
80480	if c.header_ == nil {
80481		c.header_ = make(http.Header)
80482	}
80483	return c.header_
80484}
80485
80486func (c *ImagesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
80487	reqHeaders := make(http.Header)
80488	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
80489	for k, v := range c.header_ {
80490		reqHeaders[k] = v
80491	}
80492	reqHeaders.Set("User-Agent", c.s.userAgent())
80493	var body io.Reader = nil
80494	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
80495	if err != nil {
80496		return nil, err
80497	}
80498	reqHeaders.Set("Content-Type", "application/json")
80499	c.urlParams_.Set("alt", alt)
80500	c.urlParams_.Set("prettyPrint", "false")
80501	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/{resource}/testIamPermissions")
80502	urls += "?" + c.urlParams_.Encode()
80503	req, err := http.NewRequest("POST", urls, body)
80504	if err != nil {
80505		return nil, err
80506	}
80507	req.Header = reqHeaders
80508	googleapi.Expand(req.URL, map[string]string{
80509		"project":  c.project,
80510		"resource": c.resource,
80511	})
80512	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80513}
80514
80515// Do executes the "compute.images.testIamPermissions" call.
80516// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
80517// non-2xx status code is an error. Response headers are in either
80518// *TestPermissionsResponse.ServerResponse.Header or (if a response was
80519// returned at all) in error.(*googleapi.Error).Header. Use
80520// googleapi.IsNotModified to check whether the returned error was
80521// because http.StatusNotModified was returned.
80522func (c *ImagesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
80523	gensupport.SetOptions(c.urlParams_, opts...)
80524	res, err := c.doRequest("json")
80525	if res != nil && res.StatusCode == http.StatusNotModified {
80526		if res.Body != nil {
80527			res.Body.Close()
80528		}
80529		return nil, &googleapi.Error{
80530			Code:   res.StatusCode,
80531			Header: res.Header,
80532		}
80533	}
80534	if err != nil {
80535		return nil, err
80536	}
80537	defer googleapi.CloseBody(res)
80538	if err := googleapi.CheckResponse(res); err != nil {
80539		return nil, err
80540	}
80541	ret := &TestPermissionsResponse{
80542		ServerResponse: googleapi.ServerResponse{
80543			Header:         res.Header,
80544			HTTPStatusCode: res.StatusCode,
80545		},
80546	}
80547	target := &ret
80548	if err := gensupport.DecodeResponse(target, res); err != nil {
80549		return nil, err
80550	}
80551	return ret, nil
80552	// {
80553	//   "description": "Returns permissions that a caller has on the specified resource.",
80554	//   "httpMethod": "POST",
80555	//   "id": "compute.images.testIamPermissions",
80556	//   "parameterOrder": [
80557	//     "project",
80558	//     "resource"
80559	//   ],
80560	//   "parameters": {
80561	//     "project": {
80562	//       "description": "Project ID for this request.",
80563	//       "location": "path",
80564	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80565	//       "required": true,
80566	//       "type": "string"
80567	//     },
80568	//     "resource": {
80569	//       "description": "Name or id of the resource for this request.",
80570	//       "location": "path",
80571	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
80572	//       "required": true,
80573	//       "type": "string"
80574	//     }
80575	//   },
80576	//   "path": "projects/{project}/global/images/{resource}/testIamPermissions",
80577	//   "request": {
80578	//     "$ref": "TestPermissionsRequest"
80579	//   },
80580	//   "response": {
80581	//     "$ref": "TestPermissionsResponse"
80582	//   },
80583	//   "scopes": [
80584	//     "https://www.googleapis.com/auth/cloud-platform",
80585	//     "https://www.googleapis.com/auth/compute",
80586	//     "https://www.googleapis.com/auth/compute.readonly"
80587	//   ]
80588	// }
80589
80590}
80591
80592// method id "compute.instanceGroupManagers.abandonInstances":
80593
80594type InstanceGroupManagersAbandonInstancesCall struct {
80595	s                                            *Service
80596	project                                      string
80597	zone                                         string
80598	instanceGroupManager                         string
80599	instancegroupmanagersabandoninstancesrequest *InstanceGroupManagersAbandonInstancesRequest
80600	urlParams_                                   gensupport.URLParams
80601	ctx_                                         context.Context
80602	header_                                      http.Header
80603}
80604
80605// AbandonInstances: Flags the specified instances to be removed from
80606// the managed instance group. Abandoning an instance does not delete
80607// the instance, but it does remove the instance from any target pools
80608// that are applied by the managed instance group. This method reduces
80609// the targetSize of the managed instance group by the number of
80610// instances that you abandon. This operation is marked as DONE when the
80611// action is scheduled even if the instances have not yet been removed
80612// from the group. You must separately verify the status of the
80613// abandoning action with the listmanagedinstances method.
80614//
80615// If the group is part of a backend service that has enabled connection
80616// draining, it can take up to 60 seconds after the connection draining
80617// duration has elapsed before the VM instance is removed or
80618// deleted.
80619//
80620// You can specify a maximum of 1000 instances with this method per
80621// request.
80622func (r *InstanceGroupManagersService) AbandonInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersabandoninstancesrequest *InstanceGroupManagersAbandonInstancesRequest) *InstanceGroupManagersAbandonInstancesCall {
80623	c := &InstanceGroupManagersAbandonInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80624	c.project = project
80625	c.zone = zone
80626	c.instanceGroupManager = instanceGroupManager
80627	c.instancegroupmanagersabandoninstancesrequest = instancegroupmanagersabandoninstancesrequest
80628	return c
80629}
80630
80631// RequestId sets the optional parameter "requestId": An optional
80632// request ID to identify requests. Specify a unique request ID so that
80633// if you must retry your request, the server will know to ignore the
80634// request if it has already been completed.
80635//
80636// For example, consider a situation where you make an initial request
80637// and the request times out. If you make the request again with the
80638// same request ID, the server can check if original operation with the
80639// same request ID was received, and if so, will ignore the second
80640// request. This prevents clients from accidentally creating duplicate
80641// commitments.
80642//
80643// The request ID must be a valid UUID with the exception that zero UUID
80644// is not supported (00000000-0000-0000-0000-000000000000).
80645func (c *InstanceGroupManagersAbandonInstancesCall) RequestId(requestId string) *InstanceGroupManagersAbandonInstancesCall {
80646	c.urlParams_.Set("requestId", requestId)
80647	return c
80648}
80649
80650// Fields allows partial responses to be retrieved. See
80651// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80652// for more information.
80653func (c *InstanceGroupManagersAbandonInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersAbandonInstancesCall {
80654	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80655	return c
80656}
80657
80658// Context sets the context to be used in this call's Do method. Any
80659// pending HTTP request will be aborted if the provided context is
80660// canceled.
80661func (c *InstanceGroupManagersAbandonInstancesCall) Context(ctx context.Context) *InstanceGroupManagersAbandonInstancesCall {
80662	c.ctx_ = ctx
80663	return c
80664}
80665
80666// Header returns an http.Header that can be modified by the caller to
80667// add HTTP headers to the request.
80668func (c *InstanceGroupManagersAbandonInstancesCall) Header() http.Header {
80669	if c.header_ == nil {
80670		c.header_ = make(http.Header)
80671	}
80672	return c.header_
80673}
80674
80675func (c *InstanceGroupManagersAbandonInstancesCall) doRequest(alt string) (*http.Response, error) {
80676	reqHeaders := make(http.Header)
80677	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
80678	for k, v := range c.header_ {
80679		reqHeaders[k] = v
80680	}
80681	reqHeaders.Set("User-Agent", c.s.userAgent())
80682	var body io.Reader = nil
80683	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersabandoninstancesrequest)
80684	if err != nil {
80685		return nil, err
80686	}
80687	reqHeaders.Set("Content-Type", "application/json")
80688	c.urlParams_.Set("alt", alt)
80689	c.urlParams_.Set("prettyPrint", "false")
80690	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/abandonInstances")
80691	urls += "?" + c.urlParams_.Encode()
80692	req, err := http.NewRequest("POST", urls, body)
80693	if err != nil {
80694		return nil, err
80695	}
80696	req.Header = reqHeaders
80697	googleapi.Expand(req.URL, map[string]string{
80698		"project":              c.project,
80699		"zone":                 c.zone,
80700		"instanceGroupManager": c.instanceGroupManager,
80701	})
80702	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80703}
80704
80705// Do executes the "compute.instanceGroupManagers.abandonInstances" call.
80706// Exactly one of *Operation or error will be non-nil. Any non-2xx
80707// status code is an error. Response headers are in either
80708// *Operation.ServerResponse.Header or (if a response was returned at
80709// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
80710// to check whether the returned error was because
80711// http.StatusNotModified was returned.
80712func (c *InstanceGroupManagersAbandonInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
80713	gensupport.SetOptions(c.urlParams_, opts...)
80714	res, err := c.doRequest("json")
80715	if res != nil && res.StatusCode == http.StatusNotModified {
80716		if res.Body != nil {
80717			res.Body.Close()
80718		}
80719		return nil, &googleapi.Error{
80720			Code:   res.StatusCode,
80721			Header: res.Header,
80722		}
80723	}
80724	if err != nil {
80725		return nil, err
80726	}
80727	defer googleapi.CloseBody(res)
80728	if err := googleapi.CheckResponse(res); err != nil {
80729		return nil, err
80730	}
80731	ret := &Operation{
80732		ServerResponse: googleapi.ServerResponse{
80733			Header:         res.Header,
80734			HTTPStatusCode: res.StatusCode,
80735		},
80736	}
80737	target := &ret
80738	if err := gensupport.DecodeResponse(target, res); err != nil {
80739		return nil, err
80740	}
80741	return ret, nil
80742	// {
80743	//   "description": "Flags the specified instances to be removed from the managed instance group. Abandoning an instance does not delete the instance, but it does remove the instance from any target pools that are applied by the managed instance group. This method reduces the targetSize of the managed instance group by the number of instances that you abandon. This operation is marked as DONE when the action is scheduled even if the instances have not yet been removed from the group. You must separately verify the status of the abandoning action with the listmanagedinstances method.\n\nIf the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted.\n\nYou can specify a maximum of 1000 instances with this method per request.",
80744	//   "httpMethod": "POST",
80745	//   "id": "compute.instanceGroupManagers.abandonInstances",
80746	//   "parameterOrder": [
80747	//     "project",
80748	//     "zone",
80749	//     "instanceGroupManager"
80750	//   ],
80751	//   "parameters": {
80752	//     "instanceGroupManager": {
80753	//       "description": "The name of the managed instance group.",
80754	//       "location": "path",
80755	//       "required": true,
80756	//       "type": "string"
80757	//     },
80758	//     "project": {
80759	//       "description": "Project ID for this request.",
80760	//       "location": "path",
80761	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80762	//       "required": true,
80763	//       "type": "string"
80764	//     },
80765	//     "requestId": {
80766	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
80767	//       "location": "query",
80768	//       "type": "string"
80769	//     },
80770	//     "zone": {
80771	//       "description": "The name of the zone where the managed instance group is located.",
80772	//       "location": "path",
80773	//       "required": true,
80774	//       "type": "string"
80775	//     }
80776	//   },
80777	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/abandonInstances",
80778	//   "request": {
80779	//     "$ref": "InstanceGroupManagersAbandonInstancesRequest"
80780	//   },
80781	//   "response": {
80782	//     "$ref": "Operation"
80783	//   },
80784	//   "scopes": [
80785	//     "https://www.googleapis.com/auth/cloud-platform",
80786	//     "https://www.googleapis.com/auth/compute"
80787	//   ]
80788	// }
80789
80790}
80791
80792// method id "compute.instanceGroupManagers.aggregatedList":
80793
80794type InstanceGroupManagersAggregatedListCall struct {
80795	s            *Service
80796	project      string
80797	urlParams_   gensupport.URLParams
80798	ifNoneMatch_ string
80799	ctx_         context.Context
80800	header_      http.Header
80801}
80802
80803// AggregatedList: Retrieves the list of managed instance groups and
80804// groups them by zone.
80805func (r *InstanceGroupManagersService) AggregatedList(project string) *InstanceGroupManagersAggregatedListCall {
80806	c := &InstanceGroupManagersAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80807	c.project = project
80808	return c
80809}
80810
80811// Filter sets the optional parameter "filter": A filter expression that
80812// filters resources listed in the response. The expression must specify
80813// the field name, a comparison operator, and the value that you want to
80814// use for filtering. The value must be a string, a number, or a
80815// boolean. The comparison operator must be either `=`, `!=`, `>`, or
80816// `<`.
80817//
80818// For example, if you are filtering Compute Engine instances, you can
80819// exclude instances named `example-instance` by specifying `name !=
80820// example-instance`.
80821//
80822// You can also filter nested fields. For example, you could specify
80823// `scheduling.automaticRestart = false` to include instances only if
80824// they are not scheduled for automatic restarts. You can use filtering
80825// on nested fields to filter based on resource labels.
80826//
80827// To filter on multiple expressions, provide each separate expression
80828// within parentheses. For example: ``` (scheduling.automaticRestart =
80829// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
80830// is an `AND` expression. However, you can include `AND` and `OR`
80831// expressions explicitly. For example: ``` (cpuPlatform = "Intel
80832// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
80833// (scheduling.automaticRestart = true) ```
80834func (c *InstanceGroupManagersAggregatedListCall) Filter(filter string) *InstanceGroupManagersAggregatedListCall {
80835	c.urlParams_.Set("filter", filter)
80836	return c
80837}
80838
80839// IncludeAllScopes sets the optional parameter "includeAllScopes":
80840// Indicates whether every visible scope for each scope type (zone,
80841// region, global) should be included in the response. For new resource
80842// types added after this field, the flag has no effect as new resource
80843// types will always include every visible scope for each scope type in
80844// response. For resource types which predate this field, if this flag
80845// is omitted or false, only scopes of the scope types where the
80846// resource type is expected to be found will be included.
80847func (c *InstanceGroupManagersAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *InstanceGroupManagersAggregatedListCall {
80848	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
80849	return c
80850}
80851
80852// MaxResults sets the optional parameter "maxResults": The maximum
80853// number of results per page that should be returned. If the number of
80854// available results is larger than `maxResults`, Compute Engine returns
80855// a `nextPageToken` that can be used to get the next page of results in
80856// subsequent list requests. Acceptable values are `0` to `500`,
80857// inclusive. (Default: `500`)
80858func (c *InstanceGroupManagersAggregatedListCall) MaxResults(maxResults int64) *InstanceGroupManagersAggregatedListCall {
80859	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
80860	return c
80861}
80862
80863// OrderBy sets the optional parameter "orderBy": Sorts list results by
80864// a certain order. By default, results are returned in alphanumerical
80865// order based on the resource name.
80866//
80867// You can also sort results in descending order based on the creation
80868// timestamp using `orderBy="creationTimestamp desc". This sorts
80869// results based on the `creationTimestamp` field in reverse
80870// chronological order (newest result first). Use this to sort resources
80871// like operations so that the newest operation is returned
80872// first.
80873//
80874// Currently, only sorting by `name` or `creationTimestamp desc` is
80875// supported.
80876func (c *InstanceGroupManagersAggregatedListCall) OrderBy(orderBy string) *InstanceGroupManagersAggregatedListCall {
80877	c.urlParams_.Set("orderBy", orderBy)
80878	return c
80879}
80880
80881// PageToken sets the optional parameter "pageToken": Specifies a page
80882// token to use. Set `pageToken` to the `nextPageToken` returned by a
80883// previous list request to get the next page of results.
80884func (c *InstanceGroupManagersAggregatedListCall) PageToken(pageToken string) *InstanceGroupManagersAggregatedListCall {
80885	c.urlParams_.Set("pageToken", pageToken)
80886	return c
80887}
80888
80889// ReturnPartialSuccess sets the optional parameter
80890// "returnPartialSuccess": Opt-in for partial success behavior which
80891// provides partial results in case of failure. The default value is
80892// false.
80893func (c *InstanceGroupManagersAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupManagersAggregatedListCall {
80894	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
80895	return c
80896}
80897
80898// Fields allows partial responses to be retrieved. See
80899// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80900// for more information.
80901func (c *InstanceGroupManagersAggregatedListCall) Fields(s ...googleapi.Field) *InstanceGroupManagersAggregatedListCall {
80902	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80903	return c
80904}
80905
80906// IfNoneMatch sets the optional parameter which makes the operation
80907// fail if the object's ETag matches the given value. This is useful for
80908// getting updates only after the object has changed since the last
80909// request. Use googleapi.IsNotModified to check whether the response
80910// error from Do is the result of In-None-Match.
80911func (c *InstanceGroupManagersAggregatedListCall) IfNoneMatch(entityTag string) *InstanceGroupManagersAggregatedListCall {
80912	c.ifNoneMatch_ = entityTag
80913	return c
80914}
80915
80916// Context sets the context to be used in this call's Do method. Any
80917// pending HTTP request will be aborted if the provided context is
80918// canceled.
80919func (c *InstanceGroupManagersAggregatedListCall) Context(ctx context.Context) *InstanceGroupManagersAggregatedListCall {
80920	c.ctx_ = ctx
80921	return c
80922}
80923
80924// Header returns an http.Header that can be modified by the caller to
80925// add HTTP headers to the request.
80926func (c *InstanceGroupManagersAggregatedListCall) Header() http.Header {
80927	if c.header_ == nil {
80928		c.header_ = make(http.Header)
80929	}
80930	return c.header_
80931}
80932
80933func (c *InstanceGroupManagersAggregatedListCall) doRequest(alt string) (*http.Response, error) {
80934	reqHeaders := make(http.Header)
80935	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
80936	for k, v := range c.header_ {
80937		reqHeaders[k] = v
80938	}
80939	reqHeaders.Set("User-Agent", c.s.userAgent())
80940	if c.ifNoneMatch_ != "" {
80941		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
80942	}
80943	var body io.Reader = nil
80944	c.urlParams_.Set("alt", alt)
80945	c.urlParams_.Set("prettyPrint", "false")
80946	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/instanceGroupManagers")
80947	urls += "?" + c.urlParams_.Encode()
80948	req, err := http.NewRequest("GET", urls, body)
80949	if err != nil {
80950		return nil, err
80951	}
80952	req.Header = reqHeaders
80953	googleapi.Expand(req.URL, map[string]string{
80954		"project": c.project,
80955	})
80956	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80957}
80958
80959// Do executes the "compute.instanceGroupManagers.aggregatedList" call.
80960// Exactly one of *InstanceGroupManagerAggregatedList or error will be
80961// non-nil. Any non-2xx status code is an error. Response headers are in
80962// either *InstanceGroupManagerAggregatedList.ServerResponse.Header or
80963// (if a response was returned at all) in
80964// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
80965// whether the returned error was because http.StatusNotModified was
80966// returned.
80967func (c *InstanceGroupManagersAggregatedListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagerAggregatedList, error) {
80968	gensupport.SetOptions(c.urlParams_, opts...)
80969	res, err := c.doRequest("json")
80970	if res != nil && res.StatusCode == http.StatusNotModified {
80971		if res.Body != nil {
80972			res.Body.Close()
80973		}
80974		return nil, &googleapi.Error{
80975			Code:   res.StatusCode,
80976			Header: res.Header,
80977		}
80978	}
80979	if err != nil {
80980		return nil, err
80981	}
80982	defer googleapi.CloseBody(res)
80983	if err := googleapi.CheckResponse(res); err != nil {
80984		return nil, err
80985	}
80986	ret := &InstanceGroupManagerAggregatedList{
80987		ServerResponse: googleapi.ServerResponse{
80988			Header:         res.Header,
80989			HTTPStatusCode: res.StatusCode,
80990		},
80991	}
80992	target := &ret
80993	if err := gensupport.DecodeResponse(target, res); err != nil {
80994		return nil, err
80995	}
80996	return ret, nil
80997	// {
80998	//   "description": "Retrieves the list of managed instance groups and groups them by zone.",
80999	//   "httpMethod": "GET",
81000	//   "id": "compute.instanceGroupManagers.aggregatedList",
81001	//   "parameterOrder": [
81002	//     "project"
81003	//   ],
81004	//   "parameters": {
81005	//     "filter": {
81006	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
81007	//       "location": "query",
81008	//       "type": "string"
81009	//     },
81010	//     "includeAllScopes": {
81011	//       "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.",
81012	//       "location": "query",
81013	//       "type": "boolean"
81014	//     },
81015	//     "maxResults": {
81016	//       "default": "500",
81017	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
81018	//       "format": "uint32",
81019	//       "location": "query",
81020	//       "minimum": "0",
81021	//       "type": "integer"
81022	//     },
81023	//     "orderBy": {
81024	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
81025	//       "location": "query",
81026	//       "type": "string"
81027	//     },
81028	//     "pageToken": {
81029	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
81030	//       "location": "query",
81031	//       "type": "string"
81032	//     },
81033	//     "project": {
81034	//       "description": "Project ID for this request.",
81035	//       "location": "path",
81036	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81037	//       "required": true,
81038	//       "type": "string"
81039	//     },
81040	//     "returnPartialSuccess": {
81041	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
81042	//       "location": "query",
81043	//       "type": "boolean"
81044	//     }
81045	//   },
81046	//   "path": "projects/{project}/aggregated/instanceGroupManagers",
81047	//   "response": {
81048	//     "$ref": "InstanceGroupManagerAggregatedList"
81049	//   },
81050	//   "scopes": [
81051	//     "https://www.googleapis.com/auth/cloud-platform",
81052	//     "https://www.googleapis.com/auth/compute",
81053	//     "https://www.googleapis.com/auth/compute.readonly"
81054	//   ]
81055	// }
81056
81057}
81058
81059// Pages invokes f for each page of results.
81060// A non-nil error returned from f will halt the iteration.
81061// The provided context supersedes any context provided to the Context method.
81062func (c *InstanceGroupManagersAggregatedListCall) Pages(ctx context.Context, f func(*InstanceGroupManagerAggregatedList) error) error {
81063	c.ctx_ = ctx
81064	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
81065	for {
81066		x, err := c.Do()
81067		if err != nil {
81068			return err
81069		}
81070		if err := f(x); err != nil {
81071			return err
81072		}
81073		if x.NextPageToken == "" {
81074			return nil
81075		}
81076		c.PageToken(x.NextPageToken)
81077	}
81078}
81079
81080// method id "compute.instanceGroupManagers.applyUpdatesToInstances":
81081
81082type InstanceGroupManagersApplyUpdatesToInstancesCall struct {
81083	s                                        *Service
81084	project                                  string
81085	zone                                     string
81086	instanceGroupManager                     string
81087	instancegroupmanagersapplyupdatesrequest *InstanceGroupManagersApplyUpdatesRequest
81088	urlParams_                               gensupport.URLParams
81089	ctx_                                     context.Context
81090	header_                                  http.Header
81091}
81092
81093// ApplyUpdatesToInstances: Applies changes to selected instances on the
81094// managed instance group. This method can be used to apply new
81095// overrides and/or new versions.
81096func (r *InstanceGroupManagersService) ApplyUpdatesToInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersapplyupdatesrequest *InstanceGroupManagersApplyUpdatesRequest) *InstanceGroupManagersApplyUpdatesToInstancesCall {
81097	c := &InstanceGroupManagersApplyUpdatesToInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81098	c.project = project
81099	c.zone = zone
81100	c.instanceGroupManager = instanceGroupManager
81101	c.instancegroupmanagersapplyupdatesrequest = instancegroupmanagersapplyupdatesrequest
81102	return c
81103}
81104
81105// Fields allows partial responses to be retrieved. See
81106// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81107// for more information.
81108func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersApplyUpdatesToInstancesCall {
81109	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81110	return c
81111}
81112
81113// Context sets the context to be used in this call's Do method. Any
81114// pending HTTP request will be aborted if the provided context is
81115// canceled.
81116func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) Context(ctx context.Context) *InstanceGroupManagersApplyUpdatesToInstancesCall {
81117	c.ctx_ = ctx
81118	return c
81119}
81120
81121// Header returns an http.Header that can be modified by the caller to
81122// add HTTP headers to the request.
81123func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) Header() http.Header {
81124	if c.header_ == nil {
81125		c.header_ = make(http.Header)
81126	}
81127	return c.header_
81128}
81129
81130func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) doRequest(alt string) (*http.Response, error) {
81131	reqHeaders := make(http.Header)
81132	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
81133	for k, v := range c.header_ {
81134		reqHeaders[k] = v
81135	}
81136	reqHeaders.Set("User-Agent", c.s.userAgent())
81137	var body io.Reader = nil
81138	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersapplyupdatesrequest)
81139	if err != nil {
81140		return nil, err
81141	}
81142	reqHeaders.Set("Content-Type", "application/json")
81143	c.urlParams_.Set("alt", alt)
81144	c.urlParams_.Set("prettyPrint", "false")
81145	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances")
81146	urls += "?" + c.urlParams_.Encode()
81147	req, err := http.NewRequest("POST", urls, body)
81148	if err != nil {
81149		return nil, err
81150	}
81151	req.Header = reqHeaders
81152	googleapi.Expand(req.URL, map[string]string{
81153		"project":              c.project,
81154		"zone":                 c.zone,
81155		"instanceGroupManager": c.instanceGroupManager,
81156	})
81157	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81158}
81159
81160// Do executes the "compute.instanceGroupManagers.applyUpdatesToInstances" call.
81161// Exactly one of *Operation or error will be non-nil. Any non-2xx
81162// status code is an error. Response headers are in either
81163// *Operation.ServerResponse.Header or (if a response was returned at
81164// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
81165// to check whether the returned error was because
81166// http.StatusNotModified was returned.
81167func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
81168	gensupport.SetOptions(c.urlParams_, opts...)
81169	res, err := c.doRequest("json")
81170	if res != nil && res.StatusCode == http.StatusNotModified {
81171		if res.Body != nil {
81172			res.Body.Close()
81173		}
81174		return nil, &googleapi.Error{
81175			Code:   res.StatusCode,
81176			Header: res.Header,
81177		}
81178	}
81179	if err != nil {
81180		return nil, err
81181	}
81182	defer googleapi.CloseBody(res)
81183	if err := googleapi.CheckResponse(res); err != nil {
81184		return nil, err
81185	}
81186	ret := &Operation{
81187		ServerResponse: googleapi.ServerResponse{
81188			Header:         res.Header,
81189			HTTPStatusCode: res.StatusCode,
81190		},
81191	}
81192	target := &ret
81193	if err := gensupport.DecodeResponse(target, res); err != nil {
81194		return nil, err
81195	}
81196	return ret, nil
81197	// {
81198	//   "description": "Applies changes to selected instances on the managed instance group. This method can be used to apply new overrides and/or new versions.",
81199	//   "httpMethod": "POST",
81200	//   "id": "compute.instanceGroupManagers.applyUpdatesToInstances",
81201	//   "parameterOrder": [
81202	//     "project",
81203	//     "zone",
81204	//     "instanceGroupManager"
81205	//   ],
81206	//   "parameters": {
81207	//     "instanceGroupManager": {
81208	//       "description": "The name of the managed instance group, should conform to RFC1035.",
81209	//       "location": "path",
81210	//       "required": true,
81211	//       "type": "string"
81212	//     },
81213	//     "project": {
81214	//       "description": "Project ID for this request.",
81215	//       "location": "path",
81216	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81217	//       "required": true,
81218	//       "type": "string"
81219	//     },
81220	//     "zone": {
81221	//       "description": "The name of the zone where the managed instance group is located. Should conform to RFC1035.",
81222	//       "location": "path",
81223	//       "required": true,
81224	//       "type": "string"
81225	//     }
81226	//   },
81227	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances",
81228	//   "request": {
81229	//     "$ref": "InstanceGroupManagersApplyUpdatesRequest"
81230	//   },
81231	//   "response": {
81232	//     "$ref": "Operation"
81233	//   },
81234	//   "scopes": [
81235	//     "https://www.googleapis.com/auth/cloud-platform",
81236	//     "https://www.googleapis.com/auth/compute"
81237	//   ]
81238	// }
81239
81240}
81241
81242// method id "compute.instanceGroupManagers.createInstances":
81243
81244type InstanceGroupManagersCreateInstancesCall struct {
81245	s                                           *Service
81246	project                                     string
81247	zone                                        string
81248	instanceGroupManager                        string
81249	instancegroupmanagerscreateinstancesrequest *InstanceGroupManagersCreateInstancesRequest
81250	urlParams_                                  gensupport.URLParams
81251	ctx_                                        context.Context
81252	header_                                     http.Header
81253}
81254
81255// CreateInstances: Creates instances with per-instance configs in this
81256// managed instance group. Instances are created using the current
81257// instance template. The create instances operation is marked DONE if
81258// the createInstances request is successful. The underlying actions
81259// take additional time. You must separately verify the status of the
81260// creating or actions with the listmanagedinstances method.
81261func (r *InstanceGroupManagersService) CreateInstances(project string, zone string, instanceGroupManager string, instancegroupmanagerscreateinstancesrequest *InstanceGroupManagersCreateInstancesRequest) *InstanceGroupManagersCreateInstancesCall {
81262	c := &InstanceGroupManagersCreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81263	c.project = project
81264	c.zone = zone
81265	c.instanceGroupManager = instanceGroupManager
81266	c.instancegroupmanagerscreateinstancesrequest = instancegroupmanagerscreateinstancesrequest
81267	return c
81268}
81269
81270// RequestId sets the optional parameter "requestId": An optional
81271// request ID to identify requests. Specify a unique request ID so that
81272// if you must retry your request, the server will know to ignore the
81273// request if it has already been completed.
81274//
81275// For example, consider a situation where you make an initial request
81276// and the request times out. If you make the request again with the
81277// same request ID, the server can check if original operation with the
81278// same request ID was received, and if so, will ignore the second
81279// request.
81280//
81281// The request ID must be a valid UUID with the exception that zero UUID
81282// is not supported (00000000-0000-0000-0000-000000000000).
81283func (c *InstanceGroupManagersCreateInstancesCall) RequestId(requestId string) *InstanceGroupManagersCreateInstancesCall {
81284	c.urlParams_.Set("requestId", requestId)
81285	return c
81286}
81287
81288// Fields allows partial responses to be retrieved. See
81289// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81290// for more information.
81291func (c *InstanceGroupManagersCreateInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersCreateInstancesCall {
81292	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81293	return c
81294}
81295
81296// Context sets the context to be used in this call's Do method. Any
81297// pending HTTP request will be aborted if the provided context is
81298// canceled.
81299func (c *InstanceGroupManagersCreateInstancesCall) Context(ctx context.Context) *InstanceGroupManagersCreateInstancesCall {
81300	c.ctx_ = ctx
81301	return c
81302}
81303
81304// Header returns an http.Header that can be modified by the caller to
81305// add HTTP headers to the request.
81306func (c *InstanceGroupManagersCreateInstancesCall) Header() http.Header {
81307	if c.header_ == nil {
81308		c.header_ = make(http.Header)
81309	}
81310	return c.header_
81311}
81312
81313func (c *InstanceGroupManagersCreateInstancesCall) doRequest(alt string) (*http.Response, error) {
81314	reqHeaders := make(http.Header)
81315	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
81316	for k, v := range c.header_ {
81317		reqHeaders[k] = v
81318	}
81319	reqHeaders.Set("User-Agent", c.s.userAgent())
81320	var body io.Reader = nil
81321	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerscreateinstancesrequest)
81322	if err != nil {
81323		return nil, err
81324	}
81325	reqHeaders.Set("Content-Type", "application/json")
81326	c.urlParams_.Set("alt", alt)
81327	c.urlParams_.Set("prettyPrint", "false")
81328	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/createInstances")
81329	urls += "?" + c.urlParams_.Encode()
81330	req, err := http.NewRequest("POST", urls, body)
81331	if err != nil {
81332		return nil, err
81333	}
81334	req.Header = reqHeaders
81335	googleapi.Expand(req.URL, map[string]string{
81336		"project":              c.project,
81337		"zone":                 c.zone,
81338		"instanceGroupManager": c.instanceGroupManager,
81339	})
81340	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81341}
81342
81343// Do executes the "compute.instanceGroupManagers.createInstances" call.
81344// Exactly one of *Operation or error will be non-nil. Any non-2xx
81345// status code is an error. Response headers are in either
81346// *Operation.ServerResponse.Header or (if a response was returned at
81347// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
81348// to check whether the returned error was because
81349// http.StatusNotModified was returned.
81350func (c *InstanceGroupManagersCreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
81351	gensupport.SetOptions(c.urlParams_, opts...)
81352	res, err := c.doRequest("json")
81353	if res != nil && res.StatusCode == http.StatusNotModified {
81354		if res.Body != nil {
81355			res.Body.Close()
81356		}
81357		return nil, &googleapi.Error{
81358			Code:   res.StatusCode,
81359			Header: res.Header,
81360		}
81361	}
81362	if err != nil {
81363		return nil, err
81364	}
81365	defer googleapi.CloseBody(res)
81366	if err := googleapi.CheckResponse(res); err != nil {
81367		return nil, err
81368	}
81369	ret := &Operation{
81370		ServerResponse: googleapi.ServerResponse{
81371			Header:         res.Header,
81372			HTTPStatusCode: res.StatusCode,
81373		},
81374	}
81375	target := &ret
81376	if err := gensupport.DecodeResponse(target, res); err != nil {
81377		return nil, err
81378	}
81379	return ret, nil
81380	// {
81381	//   "description": "Creates instances with per-instance configs in this managed instance group. Instances are created using the current instance template. The create instances operation is marked DONE if the createInstances request is successful. The underlying actions take additional time. You must separately verify the status of the creating or actions with the listmanagedinstances method.",
81382	//   "httpMethod": "POST",
81383	//   "id": "compute.instanceGroupManagers.createInstances",
81384	//   "parameterOrder": [
81385	//     "project",
81386	//     "zone",
81387	//     "instanceGroupManager"
81388	//   ],
81389	//   "parameters": {
81390	//     "instanceGroupManager": {
81391	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
81392	//       "location": "path",
81393	//       "required": true,
81394	//       "type": "string"
81395	//     },
81396	//     "project": {
81397	//       "description": "Project ID for this request.",
81398	//       "location": "path",
81399	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81400	//       "required": true,
81401	//       "type": "string"
81402	//     },
81403	//     "requestId": {
81404	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
81405	//       "location": "query",
81406	//       "type": "string"
81407	//     },
81408	//     "zone": {
81409	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
81410	//       "location": "path",
81411	//       "required": true,
81412	//       "type": "string"
81413	//     }
81414	//   },
81415	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/createInstances",
81416	//   "request": {
81417	//     "$ref": "InstanceGroupManagersCreateInstancesRequest"
81418	//   },
81419	//   "response": {
81420	//     "$ref": "Operation"
81421	//   },
81422	//   "scopes": [
81423	//     "https://www.googleapis.com/auth/cloud-platform",
81424	//     "https://www.googleapis.com/auth/compute"
81425	//   ]
81426	// }
81427
81428}
81429
81430// method id "compute.instanceGroupManagers.delete":
81431
81432type InstanceGroupManagersDeleteCall struct {
81433	s                    *Service
81434	project              string
81435	zone                 string
81436	instanceGroupManager string
81437	urlParams_           gensupport.URLParams
81438	ctx_                 context.Context
81439	header_              http.Header
81440}
81441
81442// Delete: Deletes the specified managed instance group and all of the
81443// instances in that group. Note that the instance group must not belong
81444// to a backend service. Read  Deleting an instance group for more
81445// information.
81446func (r *InstanceGroupManagersService) Delete(project string, zone string, instanceGroupManager string) *InstanceGroupManagersDeleteCall {
81447	c := &InstanceGroupManagersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81448	c.project = project
81449	c.zone = zone
81450	c.instanceGroupManager = instanceGroupManager
81451	return c
81452}
81453
81454// RequestId sets the optional parameter "requestId": An optional
81455// request ID to identify requests. Specify a unique request ID so that
81456// if you must retry your request, the server will know to ignore the
81457// request if it has already been completed.
81458//
81459// For example, consider a situation where you make an initial request
81460// and the request times out. If you make the request again with the
81461// same request ID, the server can check if original operation with the
81462// same request ID was received, and if so, will ignore the second
81463// request. This prevents clients from accidentally creating duplicate
81464// commitments.
81465//
81466// The request ID must be a valid UUID with the exception that zero UUID
81467// is not supported (00000000-0000-0000-0000-000000000000).
81468func (c *InstanceGroupManagersDeleteCall) RequestId(requestId string) *InstanceGroupManagersDeleteCall {
81469	c.urlParams_.Set("requestId", requestId)
81470	return c
81471}
81472
81473// Fields allows partial responses to be retrieved. See
81474// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81475// for more information.
81476func (c *InstanceGroupManagersDeleteCall) Fields(s ...googleapi.Field) *InstanceGroupManagersDeleteCall {
81477	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81478	return c
81479}
81480
81481// Context sets the context to be used in this call's Do method. Any
81482// pending HTTP request will be aborted if the provided context is
81483// canceled.
81484func (c *InstanceGroupManagersDeleteCall) Context(ctx context.Context) *InstanceGroupManagersDeleteCall {
81485	c.ctx_ = ctx
81486	return c
81487}
81488
81489// Header returns an http.Header that can be modified by the caller to
81490// add HTTP headers to the request.
81491func (c *InstanceGroupManagersDeleteCall) Header() http.Header {
81492	if c.header_ == nil {
81493		c.header_ = make(http.Header)
81494	}
81495	return c.header_
81496}
81497
81498func (c *InstanceGroupManagersDeleteCall) doRequest(alt string) (*http.Response, error) {
81499	reqHeaders := make(http.Header)
81500	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
81501	for k, v := range c.header_ {
81502		reqHeaders[k] = v
81503	}
81504	reqHeaders.Set("User-Agent", c.s.userAgent())
81505	var body io.Reader = nil
81506	c.urlParams_.Set("alt", alt)
81507	c.urlParams_.Set("prettyPrint", "false")
81508	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}")
81509	urls += "?" + c.urlParams_.Encode()
81510	req, err := http.NewRequest("DELETE", urls, body)
81511	if err != nil {
81512		return nil, err
81513	}
81514	req.Header = reqHeaders
81515	googleapi.Expand(req.URL, map[string]string{
81516		"project":              c.project,
81517		"zone":                 c.zone,
81518		"instanceGroupManager": c.instanceGroupManager,
81519	})
81520	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81521}
81522
81523// Do executes the "compute.instanceGroupManagers.delete" call.
81524// Exactly one of *Operation or error will be non-nil. Any non-2xx
81525// status code is an error. Response headers are in either
81526// *Operation.ServerResponse.Header or (if a response was returned at
81527// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
81528// to check whether the returned error was because
81529// http.StatusNotModified was returned.
81530func (c *InstanceGroupManagersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
81531	gensupport.SetOptions(c.urlParams_, opts...)
81532	res, err := c.doRequest("json")
81533	if res != nil && res.StatusCode == http.StatusNotModified {
81534		if res.Body != nil {
81535			res.Body.Close()
81536		}
81537		return nil, &googleapi.Error{
81538			Code:   res.StatusCode,
81539			Header: res.Header,
81540		}
81541	}
81542	if err != nil {
81543		return nil, err
81544	}
81545	defer googleapi.CloseBody(res)
81546	if err := googleapi.CheckResponse(res); err != nil {
81547		return nil, err
81548	}
81549	ret := &Operation{
81550		ServerResponse: googleapi.ServerResponse{
81551			Header:         res.Header,
81552			HTTPStatusCode: res.StatusCode,
81553		},
81554	}
81555	target := &ret
81556	if err := gensupport.DecodeResponse(target, res); err != nil {
81557		return nil, err
81558	}
81559	return ret, nil
81560	// {
81561	//   "description": "Deletes the specified managed instance group and all of the instances in that group. Note that the instance group must not belong to a backend service. Read  Deleting an instance group for more information.",
81562	//   "httpMethod": "DELETE",
81563	//   "id": "compute.instanceGroupManagers.delete",
81564	//   "parameterOrder": [
81565	//     "project",
81566	//     "zone",
81567	//     "instanceGroupManager"
81568	//   ],
81569	//   "parameters": {
81570	//     "instanceGroupManager": {
81571	//       "description": "The name of the managed instance group to delete.",
81572	//       "location": "path",
81573	//       "required": true,
81574	//       "type": "string"
81575	//     },
81576	//     "project": {
81577	//       "description": "Project ID for this request.",
81578	//       "location": "path",
81579	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81580	//       "required": true,
81581	//       "type": "string"
81582	//     },
81583	//     "requestId": {
81584	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
81585	//       "location": "query",
81586	//       "type": "string"
81587	//     },
81588	//     "zone": {
81589	//       "description": "The name of the zone where the managed instance group is located.",
81590	//       "location": "path",
81591	//       "required": true,
81592	//       "type": "string"
81593	//     }
81594	//   },
81595	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
81596	//   "response": {
81597	//     "$ref": "Operation"
81598	//   },
81599	//   "scopes": [
81600	//     "https://www.googleapis.com/auth/cloud-platform",
81601	//     "https://www.googleapis.com/auth/compute"
81602	//   ]
81603	// }
81604
81605}
81606
81607// method id "compute.instanceGroupManagers.deleteInstances":
81608
81609type InstanceGroupManagersDeleteInstancesCall struct {
81610	s                                           *Service
81611	project                                     string
81612	zone                                        string
81613	instanceGroupManager                        string
81614	instancegroupmanagersdeleteinstancesrequest *InstanceGroupManagersDeleteInstancesRequest
81615	urlParams_                                  gensupport.URLParams
81616	ctx_                                        context.Context
81617	header_                                     http.Header
81618}
81619
81620// DeleteInstances: Flags the specified instances in the managed
81621// instance group for immediate deletion. The instances are also removed
81622// from any target pools of which they were a member. This method
81623// reduces the targetSize of the managed instance group by the number of
81624// instances that you delete. This operation is marked as DONE when the
81625// action is scheduled even if the instances are still being deleted.
81626// You must separately verify the status of the deleting action with the
81627// listmanagedinstances method.
81628//
81629// If the group is part of a backend service that has enabled connection
81630// draining, it can take up to 60 seconds after the connection draining
81631// duration has elapsed before the VM instance is removed or
81632// deleted.
81633//
81634// You can specify a maximum of 1000 instances with this method per
81635// request.
81636func (r *InstanceGroupManagersService) DeleteInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersdeleteinstancesrequest *InstanceGroupManagersDeleteInstancesRequest) *InstanceGroupManagersDeleteInstancesCall {
81637	c := &InstanceGroupManagersDeleteInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81638	c.project = project
81639	c.zone = zone
81640	c.instanceGroupManager = instanceGroupManager
81641	c.instancegroupmanagersdeleteinstancesrequest = instancegroupmanagersdeleteinstancesrequest
81642	return c
81643}
81644
81645// RequestId sets the optional parameter "requestId": An optional
81646// request ID to identify requests. Specify a unique request ID so that
81647// if you must retry your request, the server will know to ignore the
81648// request if it has already been completed.
81649//
81650// For example, consider a situation where you make an initial request
81651// and the request times out. If you make the request again with the
81652// same request ID, the server can check if original operation with the
81653// same request ID was received, and if so, will ignore the second
81654// request. This prevents clients from accidentally creating duplicate
81655// commitments.
81656//
81657// The request ID must be a valid UUID with the exception that zero UUID
81658// is not supported (00000000-0000-0000-0000-000000000000).
81659func (c *InstanceGroupManagersDeleteInstancesCall) RequestId(requestId string) *InstanceGroupManagersDeleteInstancesCall {
81660	c.urlParams_.Set("requestId", requestId)
81661	return c
81662}
81663
81664// Fields allows partial responses to be retrieved. See
81665// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81666// for more information.
81667func (c *InstanceGroupManagersDeleteInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersDeleteInstancesCall {
81668	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81669	return c
81670}
81671
81672// Context sets the context to be used in this call's Do method. Any
81673// pending HTTP request will be aborted if the provided context is
81674// canceled.
81675func (c *InstanceGroupManagersDeleteInstancesCall) Context(ctx context.Context) *InstanceGroupManagersDeleteInstancesCall {
81676	c.ctx_ = ctx
81677	return c
81678}
81679
81680// Header returns an http.Header that can be modified by the caller to
81681// add HTTP headers to the request.
81682func (c *InstanceGroupManagersDeleteInstancesCall) Header() http.Header {
81683	if c.header_ == nil {
81684		c.header_ = make(http.Header)
81685	}
81686	return c.header_
81687}
81688
81689func (c *InstanceGroupManagersDeleteInstancesCall) doRequest(alt string) (*http.Response, error) {
81690	reqHeaders := make(http.Header)
81691	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
81692	for k, v := range c.header_ {
81693		reqHeaders[k] = v
81694	}
81695	reqHeaders.Set("User-Agent", c.s.userAgent())
81696	var body io.Reader = nil
81697	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersdeleteinstancesrequest)
81698	if err != nil {
81699		return nil, err
81700	}
81701	reqHeaders.Set("Content-Type", "application/json")
81702	c.urlParams_.Set("alt", alt)
81703	c.urlParams_.Set("prettyPrint", "false")
81704	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deleteInstances")
81705	urls += "?" + c.urlParams_.Encode()
81706	req, err := http.NewRequest("POST", urls, body)
81707	if err != nil {
81708		return nil, err
81709	}
81710	req.Header = reqHeaders
81711	googleapi.Expand(req.URL, map[string]string{
81712		"project":              c.project,
81713		"zone":                 c.zone,
81714		"instanceGroupManager": c.instanceGroupManager,
81715	})
81716	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81717}
81718
81719// Do executes the "compute.instanceGroupManagers.deleteInstances" call.
81720// Exactly one of *Operation or error will be non-nil. Any non-2xx
81721// status code is an error. Response headers are in either
81722// *Operation.ServerResponse.Header or (if a response was returned at
81723// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
81724// to check whether the returned error was because
81725// http.StatusNotModified was returned.
81726func (c *InstanceGroupManagersDeleteInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
81727	gensupport.SetOptions(c.urlParams_, opts...)
81728	res, err := c.doRequest("json")
81729	if res != nil && res.StatusCode == http.StatusNotModified {
81730		if res.Body != nil {
81731			res.Body.Close()
81732		}
81733		return nil, &googleapi.Error{
81734			Code:   res.StatusCode,
81735			Header: res.Header,
81736		}
81737	}
81738	if err != nil {
81739		return nil, err
81740	}
81741	defer googleapi.CloseBody(res)
81742	if err := googleapi.CheckResponse(res); err != nil {
81743		return nil, err
81744	}
81745	ret := &Operation{
81746		ServerResponse: googleapi.ServerResponse{
81747			Header:         res.Header,
81748			HTTPStatusCode: res.StatusCode,
81749		},
81750	}
81751	target := &ret
81752	if err := gensupport.DecodeResponse(target, res); err != nil {
81753		return nil, err
81754	}
81755	return ret, nil
81756	// {
81757	//   "description": "Flags the specified instances in the managed instance group for immediate deletion. The instances are also removed from any target pools of which they were a member. This method reduces the targetSize of the managed instance group by the number of instances that you delete. This operation is marked as DONE when the action is scheduled even if the instances are still being deleted. You must separately verify the status of the deleting action with the listmanagedinstances method.\n\nIf the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted.\n\nYou can specify a maximum of 1000 instances with this method per request.",
81758	//   "httpMethod": "POST",
81759	//   "id": "compute.instanceGroupManagers.deleteInstances",
81760	//   "parameterOrder": [
81761	//     "project",
81762	//     "zone",
81763	//     "instanceGroupManager"
81764	//   ],
81765	//   "parameters": {
81766	//     "instanceGroupManager": {
81767	//       "description": "The name of the managed instance group.",
81768	//       "location": "path",
81769	//       "required": true,
81770	//       "type": "string"
81771	//     },
81772	//     "project": {
81773	//       "description": "Project ID for this request.",
81774	//       "location": "path",
81775	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81776	//       "required": true,
81777	//       "type": "string"
81778	//     },
81779	//     "requestId": {
81780	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
81781	//       "location": "query",
81782	//       "type": "string"
81783	//     },
81784	//     "zone": {
81785	//       "description": "The name of the zone where the managed instance group is located.",
81786	//       "location": "path",
81787	//       "required": true,
81788	//       "type": "string"
81789	//     }
81790	//   },
81791	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deleteInstances",
81792	//   "request": {
81793	//     "$ref": "InstanceGroupManagersDeleteInstancesRequest"
81794	//   },
81795	//   "response": {
81796	//     "$ref": "Operation"
81797	//   },
81798	//   "scopes": [
81799	//     "https://www.googleapis.com/auth/cloud-platform",
81800	//     "https://www.googleapis.com/auth/compute"
81801	//   ]
81802	// }
81803
81804}
81805
81806// method id "compute.instanceGroupManagers.deletePerInstanceConfigs":
81807
81808type InstanceGroupManagersDeletePerInstanceConfigsCall struct {
81809	s                                                *Service
81810	project                                          string
81811	zone                                             string
81812	instanceGroupManager                             string
81813	instancegroupmanagersdeleteperinstanceconfigsreq *InstanceGroupManagersDeletePerInstanceConfigsReq
81814	urlParams_                                       gensupport.URLParams
81815	ctx_                                             context.Context
81816	header_                                          http.Header
81817}
81818
81819// DeletePerInstanceConfigs: Deletes selected per-instance configs for
81820// the managed instance group.
81821func (r *InstanceGroupManagersService) DeletePerInstanceConfigs(project string, zone string, instanceGroupManager string, instancegroupmanagersdeleteperinstanceconfigsreq *InstanceGroupManagersDeletePerInstanceConfigsReq) *InstanceGroupManagersDeletePerInstanceConfigsCall {
81822	c := &InstanceGroupManagersDeletePerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81823	c.project = project
81824	c.zone = zone
81825	c.instanceGroupManager = instanceGroupManager
81826	c.instancegroupmanagersdeleteperinstanceconfigsreq = instancegroupmanagersdeleteperinstanceconfigsreq
81827	return c
81828}
81829
81830// Fields allows partial responses to be retrieved. See
81831// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81832// for more information.
81833func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersDeletePerInstanceConfigsCall {
81834	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81835	return c
81836}
81837
81838// Context sets the context to be used in this call's Do method. Any
81839// pending HTTP request will be aborted if the provided context is
81840// canceled.
81841func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) Context(ctx context.Context) *InstanceGroupManagersDeletePerInstanceConfigsCall {
81842	c.ctx_ = ctx
81843	return c
81844}
81845
81846// Header returns an http.Header that can be modified by the caller to
81847// add HTTP headers to the request.
81848func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) Header() http.Header {
81849	if c.header_ == nil {
81850		c.header_ = make(http.Header)
81851	}
81852	return c.header_
81853}
81854
81855func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
81856	reqHeaders := make(http.Header)
81857	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
81858	for k, v := range c.header_ {
81859		reqHeaders[k] = v
81860	}
81861	reqHeaders.Set("User-Agent", c.s.userAgent())
81862	var body io.Reader = nil
81863	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersdeleteperinstanceconfigsreq)
81864	if err != nil {
81865		return nil, err
81866	}
81867	reqHeaders.Set("Content-Type", "application/json")
81868	c.urlParams_.Set("alt", alt)
81869	c.urlParams_.Set("prettyPrint", "false")
81870	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs")
81871	urls += "?" + c.urlParams_.Encode()
81872	req, err := http.NewRequest("POST", urls, body)
81873	if err != nil {
81874		return nil, err
81875	}
81876	req.Header = reqHeaders
81877	googleapi.Expand(req.URL, map[string]string{
81878		"project":              c.project,
81879		"zone":                 c.zone,
81880		"instanceGroupManager": c.instanceGroupManager,
81881	})
81882	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81883}
81884
81885// Do executes the "compute.instanceGroupManagers.deletePerInstanceConfigs" call.
81886// Exactly one of *Operation or error will be non-nil. Any non-2xx
81887// status code is an error. Response headers are in either
81888// *Operation.ServerResponse.Header or (if a response was returned at
81889// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
81890// to check whether the returned error was because
81891// http.StatusNotModified was returned.
81892func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
81893	gensupport.SetOptions(c.urlParams_, opts...)
81894	res, err := c.doRequest("json")
81895	if res != nil && res.StatusCode == http.StatusNotModified {
81896		if res.Body != nil {
81897			res.Body.Close()
81898		}
81899		return nil, &googleapi.Error{
81900			Code:   res.StatusCode,
81901			Header: res.Header,
81902		}
81903	}
81904	if err != nil {
81905		return nil, err
81906	}
81907	defer googleapi.CloseBody(res)
81908	if err := googleapi.CheckResponse(res); err != nil {
81909		return nil, err
81910	}
81911	ret := &Operation{
81912		ServerResponse: googleapi.ServerResponse{
81913			Header:         res.Header,
81914			HTTPStatusCode: res.StatusCode,
81915		},
81916	}
81917	target := &ret
81918	if err := gensupport.DecodeResponse(target, res); err != nil {
81919		return nil, err
81920	}
81921	return ret, nil
81922	// {
81923	//   "description": "Deletes selected per-instance configs for the managed instance group.",
81924	//   "httpMethod": "POST",
81925	//   "id": "compute.instanceGroupManagers.deletePerInstanceConfigs",
81926	//   "parameterOrder": [
81927	//     "project",
81928	//     "zone",
81929	//     "instanceGroupManager"
81930	//   ],
81931	//   "parameters": {
81932	//     "instanceGroupManager": {
81933	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
81934	//       "location": "path",
81935	//       "required": true,
81936	//       "type": "string"
81937	//     },
81938	//     "project": {
81939	//       "description": "Project ID for this request.",
81940	//       "location": "path",
81941	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81942	//       "required": true,
81943	//       "type": "string"
81944	//     },
81945	//     "zone": {
81946	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
81947	//       "location": "path",
81948	//       "required": true,
81949	//       "type": "string"
81950	//     }
81951	//   },
81952	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs",
81953	//   "request": {
81954	//     "$ref": "InstanceGroupManagersDeletePerInstanceConfigsReq"
81955	//   },
81956	//   "response": {
81957	//     "$ref": "Operation"
81958	//   },
81959	//   "scopes": [
81960	//     "https://www.googleapis.com/auth/cloud-platform",
81961	//     "https://www.googleapis.com/auth/compute"
81962	//   ]
81963	// }
81964
81965}
81966
81967// method id "compute.instanceGroupManagers.get":
81968
81969type InstanceGroupManagersGetCall struct {
81970	s                    *Service
81971	project              string
81972	zone                 string
81973	instanceGroupManager string
81974	urlParams_           gensupport.URLParams
81975	ifNoneMatch_         string
81976	ctx_                 context.Context
81977	header_              http.Header
81978}
81979
81980// Get: Returns all of the details about the specified managed instance
81981// group. Gets a list of available managed instance groups by making a
81982// list() request.
81983func (r *InstanceGroupManagersService) Get(project string, zone string, instanceGroupManager string) *InstanceGroupManagersGetCall {
81984	c := &InstanceGroupManagersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81985	c.project = project
81986	c.zone = zone
81987	c.instanceGroupManager = instanceGroupManager
81988	return c
81989}
81990
81991// Fields allows partial responses to be retrieved. See
81992// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81993// for more information.
81994func (c *InstanceGroupManagersGetCall) Fields(s ...googleapi.Field) *InstanceGroupManagersGetCall {
81995	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81996	return c
81997}
81998
81999// IfNoneMatch sets the optional parameter which makes the operation
82000// fail if the object's ETag matches the given value. This is useful for
82001// getting updates only after the object has changed since the last
82002// request. Use googleapi.IsNotModified to check whether the response
82003// error from Do is the result of In-None-Match.
82004func (c *InstanceGroupManagersGetCall) IfNoneMatch(entityTag string) *InstanceGroupManagersGetCall {
82005	c.ifNoneMatch_ = entityTag
82006	return c
82007}
82008
82009// Context sets the context to be used in this call's Do method. Any
82010// pending HTTP request will be aborted if the provided context is
82011// canceled.
82012func (c *InstanceGroupManagersGetCall) Context(ctx context.Context) *InstanceGroupManagersGetCall {
82013	c.ctx_ = ctx
82014	return c
82015}
82016
82017// Header returns an http.Header that can be modified by the caller to
82018// add HTTP headers to the request.
82019func (c *InstanceGroupManagersGetCall) Header() http.Header {
82020	if c.header_ == nil {
82021		c.header_ = make(http.Header)
82022	}
82023	return c.header_
82024}
82025
82026func (c *InstanceGroupManagersGetCall) doRequest(alt string) (*http.Response, error) {
82027	reqHeaders := make(http.Header)
82028	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
82029	for k, v := range c.header_ {
82030		reqHeaders[k] = v
82031	}
82032	reqHeaders.Set("User-Agent", c.s.userAgent())
82033	if c.ifNoneMatch_ != "" {
82034		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
82035	}
82036	var body io.Reader = nil
82037	c.urlParams_.Set("alt", alt)
82038	c.urlParams_.Set("prettyPrint", "false")
82039	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}")
82040	urls += "?" + c.urlParams_.Encode()
82041	req, err := http.NewRequest("GET", urls, body)
82042	if err != nil {
82043		return nil, err
82044	}
82045	req.Header = reqHeaders
82046	googleapi.Expand(req.URL, map[string]string{
82047		"project":              c.project,
82048		"zone":                 c.zone,
82049		"instanceGroupManager": c.instanceGroupManager,
82050	})
82051	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82052}
82053
82054// Do executes the "compute.instanceGroupManagers.get" call.
82055// Exactly one of *InstanceGroupManager or error will be non-nil. Any
82056// non-2xx status code is an error. Response headers are in either
82057// *InstanceGroupManager.ServerResponse.Header or (if a response was
82058// returned at all) in error.(*googleapi.Error).Header. Use
82059// googleapi.IsNotModified to check whether the returned error was
82060// because http.StatusNotModified was returned.
82061func (c *InstanceGroupManagersGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManager, error) {
82062	gensupport.SetOptions(c.urlParams_, opts...)
82063	res, err := c.doRequest("json")
82064	if res != nil && res.StatusCode == http.StatusNotModified {
82065		if res.Body != nil {
82066			res.Body.Close()
82067		}
82068		return nil, &googleapi.Error{
82069			Code:   res.StatusCode,
82070			Header: res.Header,
82071		}
82072	}
82073	if err != nil {
82074		return nil, err
82075	}
82076	defer googleapi.CloseBody(res)
82077	if err := googleapi.CheckResponse(res); err != nil {
82078		return nil, err
82079	}
82080	ret := &InstanceGroupManager{
82081		ServerResponse: googleapi.ServerResponse{
82082			Header:         res.Header,
82083			HTTPStatusCode: res.StatusCode,
82084		},
82085	}
82086	target := &ret
82087	if err := gensupport.DecodeResponse(target, res); err != nil {
82088		return nil, err
82089	}
82090	return ret, nil
82091	// {
82092	//   "description": "Returns all of the details about the specified managed instance group. Gets a list of available managed instance groups by making a list() request.",
82093	//   "httpMethod": "GET",
82094	//   "id": "compute.instanceGroupManagers.get",
82095	//   "parameterOrder": [
82096	//     "project",
82097	//     "zone",
82098	//     "instanceGroupManager"
82099	//   ],
82100	//   "parameters": {
82101	//     "instanceGroupManager": {
82102	//       "description": "The name of the managed instance group.",
82103	//       "location": "path",
82104	//       "required": true,
82105	//       "type": "string"
82106	//     },
82107	//     "project": {
82108	//       "description": "Project ID for this request.",
82109	//       "location": "path",
82110	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82111	//       "required": true,
82112	//       "type": "string"
82113	//     },
82114	//     "zone": {
82115	//       "description": "The name of the zone where the managed instance group is located.",
82116	//       "location": "path",
82117	//       "required": true,
82118	//       "type": "string"
82119	//     }
82120	//   },
82121	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
82122	//   "response": {
82123	//     "$ref": "InstanceGroupManager"
82124	//   },
82125	//   "scopes": [
82126	//     "https://www.googleapis.com/auth/cloud-platform",
82127	//     "https://www.googleapis.com/auth/compute",
82128	//     "https://www.googleapis.com/auth/compute.readonly"
82129	//   ]
82130	// }
82131
82132}
82133
82134// method id "compute.instanceGroupManagers.insert":
82135
82136type InstanceGroupManagersInsertCall struct {
82137	s                    *Service
82138	project              string
82139	zone                 string
82140	instancegroupmanager *InstanceGroupManager
82141	urlParams_           gensupport.URLParams
82142	ctx_                 context.Context
82143	header_              http.Header
82144}
82145
82146// Insert: Creates a managed instance group using the information that
82147// you specify in the request. After the group is created, instances in
82148// the group are created using the specified instance template. This
82149// operation is marked as DONE when the group is created even if the
82150// instances in the group have not yet been created. You must separately
82151// verify the status of the individual instances with the
82152// listmanagedinstances method.
82153//
82154// A managed instance group can have up to 1000 VM instances per group.
82155// Please contact Cloud Support if you need an increase in this limit.
82156func (r *InstanceGroupManagersService) Insert(project string, zone string, instancegroupmanager *InstanceGroupManager) *InstanceGroupManagersInsertCall {
82157	c := &InstanceGroupManagersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82158	c.project = project
82159	c.zone = zone
82160	c.instancegroupmanager = instancegroupmanager
82161	return c
82162}
82163
82164// RequestId sets the optional parameter "requestId": An optional
82165// request ID to identify requests. Specify a unique request ID so that
82166// if you must retry your request, the server will know to ignore the
82167// request if it has already been completed.
82168//
82169// For example, consider a situation where you make an initial request
82170// and the request times out. If you make the request again with the
82171// same request ID, the server can check if original operation with the
82172// same request ID was received, and if so, will ignore the second
82173// request. This prevents clients from accidentally creating duplicate
82174// commitments.
82175//
82176// The request ID must be a valid UUID with the exception that zero UUID
82177// is not supported (00000000-0000-0000-0000-000000000000).
82178func (c *InstanceGroupManagersInsertCall) RequestId(requestId string) *InstanceGroupManagersInsertCall {
82179	c.urlParams_.Set("requestId", requestId)
82180	return c
82181}
82182
82183// Fields allows partial responses to be retrieved. See
82184// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82185// for more information.
82186func (c *InstanceGroupManagersInsertCall) Fields(s ...googleapi.Field) *InstanceGroupManagersInsertCall {
82187	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82188	return c
82189}
82190
82191// Context sets the context to be used in this call's Do method. Any
82192// pending HTTP request will be aborted if the provided context is
82193// canceled.
82194func (c *InstanceGroupManagersInsertCall) Context(ctx context.Context) *InstanceGroupManagersInsertCall {
82195	c.ctx_ = ctx
82196	return c
82197}
82198
82199// Header returns an http.Header that can be modified by the caller to
82200// add HTTP headers to the request.
82201func (c *InstanceGroupManagersInsertCall) Header() http.Header {
82202	if c.header_ == nil {
82203		c.header_ = make(http.Header)
82204	}
82205	return c.header_
82206}
82207
82208func (c *InstanceGroupManagersInsertCall) doRequest(alt string) (*http.Response, error) {
82209	reqHeaders := make(http.Header)
82210	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
82211	for k, v := range c.header_ {
82212		reqHeaders[k] = v
82213	}
82214	reqHeaders.Set("User-Agent", c.s.userAgent())
82215	var body io.Reader = nil
82216	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
82217	if err != nil {
82218		return nil, err
82219	}
82220	reqHeaders.Set("Content-Type", "application/json")
82221	c.urlParams_.Set("alt", alt)
82222	c.urlParams_.Set("prettyPrint", "false")
82223	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers")
82224	urls += "?" + c.urlParams_.Encode()
82225	req, err := http.NewRequest("POST", urls, body)
82226	if err != nil {
82227		return nil, err
82228	}
82229	req.Header = reqHeaders
82230	googleapi.Expand(req.URL, map[string]string{
82231		"project": c.project,
82232		"zone":    c.zone,
82233	})
82234	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82235}
82236
82237// Do executes the "compute.instanceGroupManagers.insert" call.
82238// Exactly one of *Operation or error will be non-nil. Any non-2xx
82239// status code is an error. Response headers are in either
82240// *Operation.ServerResponse.Header or (if a response was returned at
82241// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
82242// to check whether the returned error was because
82243// http.StatusNotModified was returned.
82244func (c *InstanceGroupManagersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
82245	gensupport.SetOptions(c.urlParams_, opts...)
82246	res, err := c.doRequest("json")
82247	if res != nil && res.StatusCode == http.StatusNotModified {
82248		if res.Body != nil {
82249			res.Body.Close()
82250		}
82251		return nil, &googleapi.Error{
82252			Code:   res.StatusCode,
82253			Header: res.Header,
82254		}
82255	}
82256	if err != nil {
82257		return nil, err
82258	}
82259	defer googleapi.CloseBody(res)
82260	if err := googleapi.CheckResponse(res); err != nil {
82261		return nil, err
82262	}
82263	ret := &Operation{
82264		ServerResponse: googleapi.ServerResponse{
82265			Header:         res.Header,
82266			HTTPStatusCode: res.StatusCode,
82267		},
82268	}
82269	target := &ret
82270	if err := gensupport.DecodeResponse(target, res); err != nil {
82271		return nil, err
82272	}
82273	return ret, nil
82274	// {
82275	//   "description": "Creates a managed instance group using the information that you specify in the request. After the group is created, instances in the group are created using the specified instance template. This operation is marked as DONE when the group is created even if the instances in the group have not yet been created. You must separately verify the status of the individual instances with the listmanagedinstances method.\n\nA managed instance group can have up to 1000 VM instances per group. Please contact Cloud Support if you need an increase in this limit.",
82276	//   "httpMethod": "POST",
82277	//   "id": "compute.instanceGroupManagers.insert",
82278	//   "parameterOrder": [
82279	//     "project",
82280	//     "zone"
82281	//   ],
82282	//   "parameters": {
82283	//     "project": {
82284	//       "description": "Project ID for this request.",
82285	//       "location": "path",
82286	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82287	//       "required": true,
82288	//       "type": "string"
82289	//     },
82290	//     "requestId": {
82291	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
82292	//       "location": "query",
82293	//       "type": "string"
82294	//     },
82295	//     "zone": {
82296	//       "description": "The name of the zone where you want to create the managed instance group.",
82297	//       "location": "path",
82298	//       "required": true,
82299	//       "type": "string"
82300	//     }
82301	//   },
82302	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers",
82303	//   "request": {
82304	//     "$ref": "InstanceGroupManager"
82305	//   },
82306	//   "response": {
82307	//     "$ref": "Operation"
82308	//   },
82309	//   "scopes": [
82310	//     "https://www.googleapis.com/auth/cloud-platform",
82311	//     "https://www.googleapis.com/auth/compute"
82312	//   ]
82313	// }
82314
82315}
82316
82317// method id "compute.instanceGroupManagers.list":
82318
82319type InstanceGroupManagersListCall struct {
82320	s            *Service
82321	project      string
82322	zone         string
82323	urlParams_   gensupport.URLParams
82324	ifNoneMatch_ string
82325	ctx_         context.Context
82326	header_      http.Header
82327}
82328
82329// List: Retrieves a list of managed instance groups that are contained
82330// within the specified project and zone.
82331func (r *InstanceGroupManagersService) List(project string, zone string) *InstanceGroupManagersListCall {
82332	c := &InstanceGroupManagersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82333	c.project = project
82334	c.zone = zone
82335	return c
82336}
82337
82338// Filter sets the optional parameter "filter": A filter expression that
82339// filters resources listed in the response. The expression must specify
82340// the field name, a comparison operator, and the value that you want to
82341// use for filtering. The value must be a string, a number, or a
82342// boolean. The comparison operator must be either `=`, `!=`, `>`, or
82343// `<`.
82344//
82345// For example, if you are filtering Compute Engine instances, you can
82346// exclude instances named `example-instance` by specifying `name !=
82347// example-instance`.
82348//
82349// You can also filter nested fields. For example, you could specify
82350// `scheduling.automaticRestart = false` to include instances only if
82351// they are not scheduled for automatic restarts. You can use filtering
82352// on nested fields to filter based on resource labels.
82353//
82354// To filter on multiple expressions, provide each separate expression
82355// within parentheses. For example: ``` (scheduling.automaticRestart =
82356// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
82357// is an `AND` expression. However, you can include `AND` and `OR`
82358// expressions explicitly. For example: ``` (cpuPlatform = "Intel
82359// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
82360// (scheduling.automaticRestart = true) ```
82361func (c *InstanceGroupManagersListCall) Filter(filter string) *InstanceGroupManagersListCall {
82362	c.urlParams_.Set("filter", filter)
82363	return c
82364}
82365
82366// MaxResults sets the optional parameter "maxResults": The maximum
82367// number of results per page that should be returned. If the number of
82368// available results is larger than `maxResults`, Compute Engine returns
82369// a `nextPageToken` that can be used to get the next page of results in
82370// subsequent list requests. Acceptable values are `0` to `500`,
82371// inclusive. (Default: `500`)
82372func (c *InstanceGroupManagersListCall) MaxResults(maxResults int64) *InstanceGroupManagersListCall {
82373	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
82374	return c
82375}
82376
82377// OrderBy sets the optional parameter "orderBy": Sorts list results by
82378// a certain order. By default, results are returned in alphanumerical
82379// order based on the resource name.
82380//
82381// You can also sort results in descending order based on the creation
82382// timestamp using `orderBy="creationTimestamp desc". This sorts
82383// results based on the `creationTimestamp` field in reverse
82384// chronological order (newest result first). Use this to sort resources
82385// like operations so that the newest operation is returned
82386// first.
82387//
82388// Currently, only sorting by `name` or `creationTimestamp desc` is
82389// supported.
82390func (c *InstanceGroupManagersListCall) OrderBy(orderBy string) *InstanceGroupManagersListCall {
82391	c.urlParams_.Set("orderBy", orderBy)
82392	return c
82393}
82394
82395// PageToken sets the optional parameter "pageToken": Specifies a page
82396// token to use. Set `pageToken` to the `nextPageToken` returned by a
82397// previous list request to get the next page of results.
82398func (c *InstanceGroupManagersListCall) PageToken(pageToken string) *InstanceGroupManagersListCall {
82399	c.urlParams_.Set("pageToken", pageToken)
82400	return c
82401}
82402
82403// ReturnPartialSuccess sets the optional parameter
82404// "returnPartialSuccess": Opt-in for partial success behavior which
82405// provides partial results in case of failure. The default value is
82406// false.
82407func (c *InstanceGroupManagersListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupManagersListCall {
82408	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
82409	return c
82410}
82411
82412// Fields allows partial responses to be retrieved. See
82413// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82414// for more information.
82415func (c *InstanceGroupManagersListCall) Fields(s ...googleapi.Field) *InstanceGroupManagersListCall {
82416	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82417	return c
82418}
82419
82420// IfNoneMatch sets the optional parameter which makes the operation
82421// fail if the object's ETag matches the given value. This is useful for
82422// getting updates only after the object has changed since the last
82423// request. Use googleapi.IsNotModified to check whether the response
82424// error from Do is the result of In-None-Match.
82425func (c *InstanceGroupManagersListCall) IfNoneMatch(entityTag string) *InstanceGroupManagersListCall {
82426	c.ifNoneMatch_ = entityTag
82427	return c
82428}
82429
82430// Context sets the context to be used in this call's Do method. Any
82431// pending HTTP request will be aborted if the provided context is
82432// canceled.
82433func (c *InstanceGroupManagersListCall) Context(ctx context.Context) *InstanceGroupManagersListCall {
82434	c.ctx_ = ctx
82435	return c
82436}
82437
82438// Header returns an http.Header that can be modified by the caller to
82439// add HTTP headers to the request.
82440func (c *InstanceGroupManagersListCall) Header() http.Header {
82441	if c.header_ == nil {
82442		c.header_ = make(http.Header)
82443	}
82444	return c.header_
82445}
82446
82447func (c *InstanceGroupManagersListCall) doRequest(alt string) (*http.Response, error) {
82448	reqHeaders := make(http.Header)
82449	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
82450	for k, v := range c.header_ {
82451		reqHeaders[k] = v
82452	}
82453	reqHeaders.Set("User-Agent", c.s.userAgent())
82454	if c.ifNoneMatch_ != "" {
82455		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
82456	}
82457	var body io.Reader = nil
82458	c.urlParams_.Set("alt", alt)
82459	c.urlParams_.Set("prettyPrint", "false")
82460	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers")
82461	urls += "?" + c.urlParams_.Encode()
82462	req, err := http.NewRequest("GET", urls, body)
82463	if err != nil {
82464		return nil, err
82465	}
82466	req.Header = reqHeaders
82467	googleapi.Expand(req.URL, map[string]string{
82468		"project": c.project,
82469		"zone":    c.zone,
82470	})
82471	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82472}
82473
82474// Do executes the "compute.instanceGroupManagers.list" call.
82475// Exactly one of *InstanceGroupManagerList or error will be non-nil.
82476// Any non-2xx status code is an error. Response headers are in either
82477// *InstanceGroupManagerList.ServerResponse.Header or (if a response was
82478// returned at all) in error.(*googleapi.Error).Header. Use
82479// googleapi.IsNotModified to check whether the returned error was
82480// because http.StatusNotModified was returned.
82481func (c *InstanceGroupManagersListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagerList, error) {
82482	gensupport.SetOptions(c.urlParams_, opts...)
82483	res, err := c.doRequest("json")
82484	if res != nil && res.StatusCode == http.StatusNotModified {
82485		if res.Body != nil {
82486			res.Body.Close()
82487		}
82488		return nil, &googleapi.Error{
82489			Code:   res.StatusCode,
82490			Header: res.Header,
82491		}
82492	}
82493	if err != nil {
82494		return nil, err
82495	}
82496	defer googleapi.CloseBody(res)
82497	if err := googleapi.CheckResponse(res); err != nil {
82498		return nil, err
82499	}
82500	ret := &InstanceGroupManagerList{
82501		ServerResponse: googleapi.ServerResponse{
82502			Header:         res.Header,
82503			HTTPStatusCode: res.StatusCode,
82504		},
82505	}
82506	target := &ret
82507	if err := gensupport.DecodeResponse(target, res); err != nil {
82508		return nil, err
82509	}
82510	return ret, nil
82511	// {
82512	//   "description": "Retrieves a list of managed instance groups that are contained within the specified project and zone.",
82513	//   "httpMethod": "GET",
82514	//   "id": "compute.instanceGroupManagers.list",
82515	//   "parameterOrder": [
82516	//     "project",
82517	//     "zone"
82518	//   ],
82519	//   "parameters": {
82520	//     "filter": {
82521	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
82522	//       "location": "query",
82523	//       "type": "string"
82524	//     },
82525	//     "maxResults": {
82526	//       "default": "500",
82527	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
82528	//       "format": "uint32",
82529	//       "location": "query",
82530	//       "minimum": "0",
82531	//       "type": "integer"
82532	//     },
82533	//     "orderBy": {
82534	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
82535	//       "location": "query",
82536	//       "type": "string"
82537	//     },
82538	//     "pageToken": {
82539	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
82540	//       "location": "query",
82541	//       "type": "string"
82542	//     },
82543	//     "project": {
82544	//       "description": "Project ID for this request.",
82545	//       "location": "path",
82546	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82547	//       "required": true,
82548	//       "type": "string"
82549	//     },
82550	//     "returnPartialSuccess": {
82551	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
82552	//       "location": "query",
82553	//       "type": "boolean"
82554	//     },
82555	//     "zone": {
82556	//       "description": "The name of the zone where the managed instance group is located.",
82557	//       "location": "path",
82558	//       "required": true,
82559	//       "type": "string"
82560	//     }
82561	//   },
82562	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers",
82563	//   "response": {
82564	//     "$ref": "InstanceGroupManagerList"
82565	//   },
82566	//   "scopes": [
82567	//     "https://www.googleapis.com/auth/cloud-platform",
82568	//     "https://www.googleapis.com/auth/compute",
82569	//     "https://www.googleapis.com/auth/compute.readonly"
82570	//   ]
82571	// }
82572
82573}
82574
82575// Pages invokes f for each page of results.
82576// A non-nil error returned from f will halt the iteration.
82577// The provided context supersedes any context provided to the Context method.
82578func (c *InstanceGroupManagersListCall) Pages(ctx context.Context, f func(*InstanceGroupManagerList) error) error {
82579	c.ctx_ = ctx
82580	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
82581	for {
82582		x, err := c.Do()
82583		if err != nil {
82584			return err
82585		}
82586		if err := f(x); err != nil {
82587			return err
82588		}
82589		if x.NextPageToken == "" {
82590			return nil
82591		}
82592		c.PageToken(x.NextPageToken)
82593	}
82594}
82595
82596// method id "compute.instanceGroupManagers.listErrors":
82597
82598type InstanceGroupManagersListErrorsCall struct {
82599	s                    *Service
82600	project              string
82601	zone                 string
82602	instanceGroupManager string
82603	urlParams_           gensupport.URLParams
82604	ifNoneMatch_         string
82605	ctx_                 context.Context
82606	header_              http.Header
82607}
82608
82609// ListErrors: Lists all errors thrown by actions on instances for a
82610// given managed instance group. The filter and orderBy query parameters
82611// are not supported.
82612func (r *InstanceGroupManagersService) ListErrors(project string, zone string, instanceGroupManager string) *InstanceGroupManagersListErrorsCall {
82613	c := &InstanceGroupManagersListErrorsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82614	c.project = project
82615	c.zone = zone
82616	c.instanceGroupManager = instanceGroupManager
82617	return c
82618}
82619
82620// Filter sets the optional parameter "filter": A filter expression that
82621// filters resources listed in the response. The expression must specify
82622// the field name, a comparison operator, and the value that you want to
82623// use for filtering. The value must be a string, a number, or a
82624// boolean. The comparison operator must be either `=`, `!=`, `>`, or
82625// `<`.
82626//
82627// For example, if you are filtering Compute Engine instances, you can
82628// exclude instances named `example-instance` by specifying `name !=
82629// example-instance`.
82630//
82631// You can also filter nested fields. For example, you could specify
82632// `scheduling.automaticRestart = false` to include instances only if
82633// they are not scheduled for automatic restarts. You can use filtering
82634// on nested fields to filter based on resource labels.
82635//
82636// To filter on multiple expressions, provide each separate expression
82637// within parentheses. For example: ``` (scheduling.automaticRestart =
82638// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
82639// is an `AND` expression. However, you can include `AND` and `OR`
82640// expressions explicitly. For example: ``` (cpuPlatform = "Intel
82641// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
82642// (scheduling.automaticRestart = true) ```
82643func (c *InstanceGroupManagersListErrorsCall) Filter(filter string) *InstanceGroupManagersListErrorsCall {
82644	c.urlParams_.Set("filter", filter)
82645	return c
82646}
82647
82648// MaxResults sets the optional parameter "maxResults": The maximum
82649// number of results per page that should be returned. If the number of
82650// available results is larger than `maxResults`, Compute Engine returns
82651// a `nextPageToken` that can be used to get the next page of results in
82652// subsequent list requests. Acceptable values are `0` to `500`,
82653// inclusive. (Default: `500`)
82654func (c *InstanceGroupManagersListErrorsCall) MaxResults(maxResults int64) *InstanceGroupManagersListErrorsCall {
82655	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
82656	return c
82657}
82658
82659// OrderBy sets the optional parameter "orderBy": Sorts list results by
82660// a certain order. By default, results are returned in alphanumerical
82661// order based on the resource name.
82662//
82663// You can also sort results in descending order based on the creation
82664// timestamp using `orderBy="creationTimestamp desc". This sorts
82665// results based on the `creationTimestamp` field in reverse
82666// chronological order (newest result first). Use this to sort resources
82667// like operations so that the newest operation is returned
82668// first.
82669//
82670// Currently, only sorting by `name` or `creationTimestamp desc` is
82671// supported.
82672func (c *InstanceGroupManagersListErrorsCall) OrderBy(orderBy string) *InstanceGroupManagersListErrorsCall {
82673	c.urlParams_.Set("orderBy", orderBy)
82674	return c
82675}
82676
82677// PageToken sets the optional parameter "pageToken": Specifies a page
82678// token to use. Set `pageToken` to the `nextPageToken` returned by a
82679// previous list request to get the next page of results.
82680func (c *InstanceGroupManagersListErrorsCall) PageToken(pageToken string) *InstanceGroupManagersListErrorsCall {
82681	c.urlParams_.Set("pageToken", pageToken)
82682	return c
82683}
82684
82685// ReturnPartialSuccess sets the optional parameter
82686// "returnPartialSuccess": Opt-in for partial success behavior which
82687// provides partial results in case of failure. The default value is
82688// false.
82689func (c *InstanceGroupManagersListErrorsCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupManagersListErrorsCall {
82690	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
82691	return c
82692}
82693
82694// Fields allows partial responses to be retrieved. See
82695// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82696// for more information.
82697func (c *InstanceGroupManagersListErrorsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersListErrorsCall {
82698	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82699	return c
82700}
82701
82702// IfNoneMatch sets the optional parameter which makes the operation
82703// fail if the object's ETag matches the given value. This is useful for
82704// getting updates only after the object has changed since the last
82705// request. Use googleapi.IsNotModified to check whether the response
82706// error from Do is the result of In-None-Match.
82707func (c *InstanceGroupManagersListErrorsCall) IfNoneMatch(entityTag string) *InstanceGroupManagersListErrorsCall {
82708	c.ifNoneMatch_ = entityTag
82709	return c
82710}
82711
82712// Context sets the context to be used in this call's Do method. Any
82713// pending HTTP request will be aborted if the provided context is
82714// canceled.
82715func (c *InstanceGroupManagersListErrorsCall) Context(ctx context.Context) *InstanceGroupManagersListErrorsCall {
82716	c.ctx_ = ctx
82717	return c
82718}
82719
82720// Header returns an http.Header that can be modified by the caller to
82721// add HTTP headers to the request.
82722func (c *InstanceGroupManagersListErrorsCall) Header() http.Header {
82723	if c.header_ == nil {
82724		c.header_ = make(http.Header)
82725	}
82726	return c.header_
82727}
82728
82729func (c *InstanceGroupManagersListErrorsCall) doRequest(alt string) (*http.Response, error) {
82730	reqHeaders := make(http.Header)
82731	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
82732	for k, v := range c.header_ {
82733		reqHeaders[k] = v
82734	}
82735	reqHeaders.Set("User-Agent", c.s.userAgent())
82736	if c.ifNoneMatch_ != "" {
82737		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
82738	}
82739	var body io.Reader = nil
82740	c.urlParams_.Set("alt", alt)
82741	c.urlParams_.Set("prettyPrint", "false")
82742	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listErrors")
82743	urls += "?" + c.urlParams_.Encode()
82744	req, err := http.NewRequest("GET", urls, body)
82745	if err != nil {
82746		return nil, err
82747	}
82748	req.Header = reqHeaders
82749	googleapi.Expand(req.URL, map[string]string{
82750		"project":              c.project,
82751		"zone":                 c.zone,
82752		"instanceGroupManager": c.instanceGroupManager,
82753	})
82754	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82755}
82756
82757// Do executes the "compute.instanceGroupManagers.listErrors" call.
82758// Exactly one of *InstanceGroupManagersListErrorsResponse or error will
82759// be non-nil. Any non-2xx status code is an error. Response headers are
82760// in either
82761// *InstanceGroupManagersListErrorsResponse.ServerResponse.Header or (if
82762// a response was returned at all) in error.(*googleapi.Error).Header.
82763// Use googleapi.IsNotModified to check whether the returned error was
82764// because http.StatusNotModified was returned.
82765func (c *InstanceGroupManagersListErrorsCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagersListErrorsResponse, error) {
82766	gensupport.SetOptions(c.urlParams_, opts...)
82767	res, err := c.doRequest("json")
82768	if res != nil && res.StatusCode == http.StatusNotModified {
82769		if res.Body != nil {
82770			res.Body.Close()
82771		}
82772		return nil, &googleapi.Error{
82773			Code:   res.StatusCode,
82774			Header: res.Header,
82775		}
82776	}
82777	if err != nil {
82778		return nil, err
82779	}
82780	defer googleapi.CloseBody(res)
82781	if err := googleapi.CheckResponse(res); err != nil {
82782		return nil, err
82783	}
82784	ret := &InstanceGroupManagersListErrorsResponse{
82785		ServerResponse: googleapi.ServerResponse{
82786			Header:         res.Header,
82787			HTTPStatusCode: res.StatusCode,
82788		},
82789	}
82790	target := &ret
82791	if err := gensupport.DecodeResponse(target, res); err != nil {
82792		return nil, err
82793	}
82794	return ret, nil
82795	// {
82796	//   "description": "Lists all errors thrown by actions on instances for a given managed instance group. The filter and orderBy query parameters are not supported.",
82797	//   "httpMethod": "GET",
82798	//   "id": "compute.instanceGroupManagers.listErrors",
82799	//   "parameterOrder": [
82800	//     "project",
82801	//     "zone",
82802	//     "instanceGroupManager"
82803	//   ],
82804	//   "parameters": {
82805	//     "filter": {
82806	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
82807	//       "location": "query",
82808	//       "type": "string"
82809	//     },
82810	//     "instanceGroupManager": {
82811	//       "description": "The name of the managed instance group. It must be a string that meets the requirements in RFC1035, or an unsigned long integer: must match regexp pattern: (?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?)|[1-9][0-9]{0,19}.",
82812	//       "location": "path",
82813	//       "required": true,
82814	//       "type": "string"
82815	//     },
82816	//     "maxResults": {
82817	//       "default": "500",
82818	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
82819	//       "format": "uint32",
82820	//       "location": "query",
82821	//       "minimum": "0",
82822	//       "type": "integer"
82823	//     },
82824	//     "orderBy": {
82825	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
82826	//       "location": "query",
82827	//       "type": "string"
82828	//     },
82829	//     "pageToken": {
82830	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
82831	//       "location": "query",
82832	//       "type": "string"
82833	//     },
82834	//     "project": {
82835	//       "description": "Project ID for this request.",
82836	//       "location": "path",
82837	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82838	//       "required": true,
82839	//       "type": "string"
82840	//     },
82841	//     "returnPartialSuccess": {
82842	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
82843	//       "location": "query",
82844	//       "type": "boolean"
82845	//     },
82846	//     "zone": {
82847	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
82848	//       "location": "path",
82849	//       "required": true,
82850	//       "type": "string"
82851	//     }
82852	//   },
82853	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listErrors",
82854	//   "response": {
82855	//     "$ref": "InstanceGroupManagersListErrorsResponse"
82856	//   },
82857	//   "scopes": [
82858	//     "https://www.googleapis.com/auth/cloud-platform",
82859	//     "https://www.googleapis.com/auth/compute",
82860	//     "https://www.googleapis.com/auth/compute.readonly"
82861	//   ]
82862	// }
82863
82864}
82865
82866// Pages invokes f for each page of results.
82867// A non-nil error returned from f will halt the iteration.
82868// The provided context supersedes any context provided to the Context method.
82869func (c *InstanceGroupManagersListErrorsCall) Pages(ctx context.Context, f func(*InstanceGroupManagersListErrorsResponse) error) error {
82870	c.ctx_ = ctx
82871	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
82872	for {
82873		x, err := c.Do()
82874		if err != nil {
82875			return err
82876		}
82877		if err := f(x); err != nil {
82878			return err
82879		}
82880		if x.NextPageToken == "" {
82881			return nil
82882		}
82883		c.PageToken(x.NextPageToken)
82884	}
82885}
82886
82887// method id "compute.instanceGroupManagers.listManagedInstances":
82888
82889type InstanceGroupManagersListManagedInstancesCall struct {
82890	s                    *Service
82891	project              string
82892	zone                 string
82893	instanceGroupManager string
82894	urlParams_           gensupport.URLParams
82895	ctx_                 context.Context
82896	header_              http.Header
82897}
82898
82899// ListManagedInstances: Lists all of the instances in the managed
82900// instance group. Each instance in the list has a currentAction, which
82901// indicates the action that the managed instance group is performing on
82902// the instance. For example, if the group is still creating an
82903// instance, the currentAction is CREATING. If a previous action failed,
82904// the list displays the errors for that failed action. The orderBy
82905// query parameter is not supported.
82906func (r *InstanceGroupManagersService) ListManagedInstances(project string, zone string, instanceGroupManager string) *InstanceGroupManagersListManagedInstancesCall {
82907	c := &InstanceGroupManagersListManagedInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82908	c.project = project
82909	c.zone = zone
82910	c.instanceGroupManager = instanceGroupManager
82911	return c
82912}
82913
82914// Filter sets the optional parameter "filter": A filter expression that
82915// filters resources listed in the response. The expression must specify
82916// the field name, a comparison operator, and the value that you want to
82917// use for filtering. The value must be a string, a number, or a
82918// boolean. The comparison operator must be either `=`, `!=`, `>`, or
82919// `<`.
82920//
82921// For example, if you are filtering Compute Engine instances, you can
82922// exclude instances named `example-instance` by specifying `name !=
82923// example-instance`.
82924//
82925// You can also filter nested fields. For example, you could specify
82926// `scheduling.automaticRestart = false` to include instances only if
82927// they are not scheduled for automatic restarts. You can use filtering
82928// on nested fields to filter based on resource labels.
82929//
82930// To filter on multiple expressions, provide each separate expression
82931// within parentheses. For example: ``` (scheduling.automaticRestart =
82932// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
82933// is an `AND` expression. However, you can include `AND` and `OR`
82934// expressions explicitly. For example: ``` (cpuPlatform = "Intel
82935// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
82936// (scheduling.automaticRestart = true) ```
82937func (c *InstanceGroupManagersListManagedInstancesCall) Filter(filter string) *InstanceGroupManagersListManagedInstancesCall {
82938	c.urlParams_.Set("filter", filter)
82939	return c
82940}
82941
82942// MaxResults sets the optional parameter "maxResults": The maximum
82943// number of results per page that should be returned. If the number of
82944// available results is larger than `maxResults`, Compute Engine returns
82945// a `nextPageToken` that can be used to get the next page of results in
82946// subsequent list requests. Acceptable values are `0` to `500`,
82947// inclusive. (Default: `500`)
82948func (c *InstanceGroupManagersListManagedInstancesCall) MaxResults(maxResults int64) *InstanceGroupManagersListManagedInstancesCall {
82949	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
82950	return c
82951}
82952
82953// OrderBy sets the optional parameter "orderBy": Sorts list results by
82954// a certain order. By default, results are returned in alphanumerical
82955// order based on the resource name.
82956//
82957// You can also sort results in descending order based on the creation
82958// timestamp using `orderBy="creationTimestamp desc". This sorts
82959// results based on the `creationTimestamp` field in reverse
82960// chronological order (newest result first). Use this to sort resources
82961// like operations so that the newest operation is returned
82962// first.
82963//
82964// Currently, only sorting by `name` or `creationTimestamp desc` is
82965// supported.
82966func (c *InstanceGroupManagersListManagedInstancesCall) OrderBy(orderBy string) *InstanceGroupManagersListManagedInstancesCall {
82967	c.urlParams_.Set("orderBy", orderBy)
82968	return c
82969}
82970
82971// PageToken sets the optional parameter "pageToken": Specifies a page
82972// token to use. Set `pageToken` to the `nextPageToken` returned by a
82973// previous list request to get the next page of results.
82974func (c *InstanceGroupManagersListManagedInstancesCall) PageToken(pageToken string) *InstanceGroupManagersListManagedInstancesCall {
82975	c.urlParams_.Set("pageToken", pageToken)
82976	return c
82977}
82978
82979// ReturnPartialSuccess sets the optional parameter
82980// "returnPartialSuccess": Opt-in for partial success behavior which
82981// provides partial results in case of failure. The default value is
82982// false.
82983func (c *InstanceGroupManagersListManagedInstancesCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupManagersListManagedInstancesCall {
82984	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
82985	return c
82986}
82987
82988// Fields allows partial responses to be retrieved. See
82989// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82990// for more information.
82991func (c *InstanceGroupManagersListManagedInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersListManagedInstancesCall {
82992	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82993	return c
82994}
82995
82996// Context sets the context to be used in this call's Do method. Any
82997// pending HTTP request will be aborted if the provided context is
82998// canceled.
82999func (c *InstanceGroupManagersListManagedInstancesCall) Context(ctx context.Context) *InstanceGroupManagersListManagedInstancesCall {
83000	c.ctx_ = ctx
83001	return c
83002}
83003
83004// Header returns an http.Header that can be modified by the caller to
83005// add HTTP headers to the request.
83006func (c *InstanceGroupManagersListManagedInstancesCall) Header() http.Header {
83007	if c.header_ == nil {
83008		c.header_ = make(http.Header)
83009	}
83010	return c.header_
83011}
83012
83013func (c *InstanceGroupManagersListManagedInstancesCall) doRequest(alt string) (*http.Response, error) {
83014	reqHeaders := make(http.Header)
83015	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
83016	for k, v := range c.header_ {
83017		reqHeaders[k] = v
83018	}
83019	reqHeaders.Set("User-Agent", c.s.userAgent())
83020	var body io.Reader = nil
83021	c.urlParams_.Set("alt", alt)
83022	c.urlParams_.Set("prettyPrint", "false")
83023	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances")
83024	urls += "?" + c.urlParams_.Encode()
83025	req, err := http.NewRequest("POST", urls, body)
83026	if err != nil {
83027		return nil, err
83028	}
83029	req.Header = reqHeaders
83030	googleapi.Expand(req.URL, map[string]string{
83031		"project":              c.project,
83032		"zone":                 c.zone,
83033		"instanceGroupManager": c.instanceGroupManager,
83034	})
83035	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83036}
83037
83038// Do executes the "compute.instanceGroupManagers.listManagedInstances" call.
83039// Exactly one of *InstanceGroupManagersListManagedInstancesResponse or
83040// error will be non-nil. Any non-2xx status code is an error. Response
83041// headers are in either
83042// *InstanceGroupManagersListManagedInstancesResponse.ServerResponse.Head
83043// er or (if a response was returned at all) in
83044// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
83045// whether the returned error was because http.StatusNotModified was
83046// returned.
83047func (c *InstanceGroupManagersListManagedInstancesCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagersListManagedInstancesResponse, error) {
83048	gensupport.SetOptions(c.urlParams_, opts...)
83049	res, err := c.doRequest("json")
83050	if res != nil && res.StatusCode == http.StatusNotModified {
83051		if res.Body != nil {
83052			res.Body.Close()
83053		}
83054		return nil, &googleapi.Error{
83055			Code:   res.StatusCode,
83056			Header: res.Header,
83057		}
83058	}
83059	if err != nil {
83060		return nil, err
83061	}
83062	defer googleapi.CloseBody(res)
83063	if err := googleapi.CheckResponse(res); err != nil {
83064		return nil, err
83065	}
83066	ret := &InstanceGroupManagersListManagedInstancesResponse{
83067		ServerResponse: googleapi.ServerResponse{
83068			Header:         res.Header,
83069			HTTPStatusCode: res.StatusCode,
83070		},
83071	}
83072	target := &ret
83073	if err := gensupport.DecodeResponse(target, res); err != nil {
83074		return nil, err
83075	}
83076	return ret, nil
83077	// {
83078	//   "description": "Lists all of the instances in the managed instance group. Each instance in the list has a currentAction, which indicates the action that the managed instance group is performing on the instance. For example, if the group is still creating an instance, the currentAction is CREATING. If a previous action failed, the list displays the errors for that failed action. The orderBy query parameter is not supported.",
83079	//   "httpMethod": "POST",
83080	//   "id": "compute.instanceGroupManagers.listManagedInstances",
83081	//   "parameterOrder": [
83082	//     "project",
83083	//     "zone",
83084	//     "instanceGroupManager"
83085	//   ],
83086	//   "parameters": {
83087	//     "filter": {
83088	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
83089	//       "location": "query",
83090	//       "type": "string"
83091	//     },
83092	//     "instanceGroupManager": {
83093	//       "description": "The name of the managed instance group.",
83094	//       "location": "path",
83095	//       "required": true,
83096	//       "type": "string"
83097	//     },
83098	//     "maxResults": {
83099	//       "default": "500",
83100	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
83101	//       "format": "uint32",
83102	//       "location": "query",
83103	//       "minimum": "0",
83104	//       "type": "integer"
83105	//     },
83106	//     "orderBy": {
83107	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
83108	//       "location": "query",
83109	//       "type": "string"
83110	//     },
83111	//     "pageToken": {
83112	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
83113	//       "location": "query",
83114	//       "type": "string"
83115	//     },
83116	//     "project": {
83117	//       "description": "Project ID for this request.",
83118	//       "location": "path",
83119	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83120	//       "required": true,
83121	//       "type": "string"
83122	//     },
83123	//     "returnPartialSuccess": {
83124	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
83125	//       "location": "query",
83126	//       "type": "boolean"
83127	//     },
83128	//     "zone": {
83129	//       "description": "The name of the zone where the managed instance group is located.",
83130	//       "location": "path",
83131	//       "required": true,
83132	//       "type": "string"
83133	//     }
83134	//   },
83135	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances",
83136	//   "response": {
83137	//     "$ref": "InstanceGroupManagersListManagedInstancesResponse"
83138	//   },
83139	//   "scopes": [
83140	//     "https://www.googleapis.com/auth/cloud-platform",
83141	//     "https://www.googleapis.com/auth/compute",
83142	//     "https://www.googleapis.com/auth/compute.readonly"
83143	//   ]
83144	// }
83145
83146}
83147
83148// Pages invokes f for each page of results.
83149// A non-nil error returned from f will halt the iteration.
83150// The provided context supersedes any context provided to the Context method.
83151func (c *InstanceGroupManagersListManagedInstancesCall) Pages(ctx context.Context, f func(*InstanceGroupManagersListManagedInstancesResponse) error) error {
83152	c.ctx_ = ctx
83153	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
83154	for {
83155		x, err := c.Do()
83156		if err != nil {
83157			return err
83158		}
83159		if err := f(x); err != nil {
83160			return err
83161		}
83162		if x.NextPageToken == "" {
83163			return nil
83164		}
83165		c.PageToken(x.NextPageToken)
83166	}
83167}
83168
83169// method id "compute.instanceGroupManagers.listPerInstanceConfigs":
83170
83171type InstanceGroupManagersListPerInstanceConfigsCall struct {
83172	s                    *Service
83173	project              string
83174	zone                 string
83175	instanceGroupManager string
83176	urlParams_           gensupport.URLParams
83177	ctx_                 context.Context
83178	header_              http.Header
83179}
83180
83181// ListPerInstanceConfigs: Lists all of the per-instance configs defined
83182// for the managed instance group. The orderBy query parameter is not
83183// supported.
83184func (r *InstanceGroupManagersService) ListPerInstanceConfigs(project string, zone string, instanceGroupManager string) *InstanceGroupManagersListPerInstanceConfigsCall {
83185	c := &InstanceGroupManagersListPerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83186	c.project = project
83187	c.zone = zone
83188	c.instanceGroupManager = instanceGroupManager
83189	return c
83190}
83191
83192// Filter sets the optional parameter "filter": A filter expression that
83193// filters resources listed in the response. The expression must specify
83194// the field name, a comparison operator, and the value that you want to
83195// use for filtering. The value must be a string, a number, or a
83196// boolean. The comparison operator must be either `=`, `!=`, `>`, or
83197// `<`.
83198//
83199// For example, if you are filtering Compute Engine instances, you can
83200// exclude instances named `example-instance` by specifying `name !=
83201// example-instance`.
83202//
83203// You can also filter nested fields. For example, you could specify
83204// `scheduling.automaticRestart = false` to include instances only if
83205// they are not scheduled for automatic restarts. You can use filtering
83206// on nested fields to filter based on resource labels.
83207//
83208// To filter on multiple expressions, provide each separate expression
83209// within parentheses. For example: ``` (scheduling.automaticRestart =
83210// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
83211// is an `AND` expression. However, you can include `AND` and `OR`
83212// expressions explicitly. For example: ``` (cpuPlatform = "Intel
83213// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
83214// (scheduling.automaticRestart = true) ```
83215func (c *InstanceGroupManagersListPerInstanceConfigsCall) Filter(filter string) *InstanceGroupManagersListPerInstanceConfigsCall {
83216	c.urlParams_.Set("filter", filter)
83217	return c
83218}
83219
83220// MaxResults sets the optional parameter "maxResults": The maximum
83221// number of results per page that should be returned. If the number of
83222// available results is larger than `maxResults`, Compute Engine returns
83223// a `nextPageToken` that can be used to get the next page of results in
83224// subsequent list requests. Acceptable values are `0` to `500`,
83225// inclusive. (Default: `500`)
83226func (c *InstanceGroupManagersListPerInstanceConfigsCall) MaxResults(maxResults int64) *InstanceGroupManagersListPerInstanceConfigsCall {
83227	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
83228	return c
83229}
83230
83231// OrderBy sets the optional parameter "orderBy": Sorts list results by
83232// a certain order. By default, results are returned in alphanumerical
83233// order based on the resource name.
83234//
83235// You can also sort results in descending order based on the creation
83236// timestamp using `orderBy="creationTimestamp desc". This sorts
83237// results based on the `creationTimestamp` field in reverse
83238// chronological order (newest result first). Use this to sort resources
83239// like operations so that the newest operation is returned
83240// first.
83241//
83242// Currently, only sorting by `name` or `creationTimestamp desc` is
83243// supported.
83244func (c *InstanceGroupManagersListPerInstanceConfigsCall) OrderBy(orderBy string) *InstanceGroupManagersListPerInstanceConfigsCall {
83245	c.urlParams_.Set("orderBy", orderBy)
83246	return c
83247}
83248
83249// PageToken sets the optional parameter "pageToken": Specifies a page
83250// token to use. Set `pageToken` to the `nextPageToken` returned by a
83251// previous list request to get the next page of results.
83252func (c *InstanceGroupManagersListPerInstanceConfigsCall) PageToken(pageToken string) *InstanceGroupManagersListPerInstanceConfigsCall {
83253	c.urlParams_.Set("pageToken", pageToken)
83254	return c
83255}
83256
83257// ReturnPartialSuccess sets the optional parameter
83258// "returnPartialSuccess": Opt-in for partial success behavior which
83259// provides partial results in case of failure. The default value is
83260// false.
83261func (c *InstanceGroupManagersListPerInstanceConfigsCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupManagersListPerInstanceConfigsCall {
83262	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
83263	return c
83264}
83265
83266// Fields allows partial responses to be retrieved. See
83267// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83268// for more information.
83269func (c *InstanceGroupManagersListPerInstanceConfigsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersListPerInstanceConfigsCall {
83270	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83271	return c
83272}
83273
83274// Context sets the context to be used in this call's Do method. Any
83275// pending HTTP request will be aborted if the provided context is
83276// canceled.
83277func (c *InstanceGroupManagersListPerInstanceConfigsCall) Context(ctx context.Context) *InstanceGroupManagersListPerInstanceConfigsCall {
83278	c.ctx_ = ctx
83279	return c
83280}
83281
83282// Header returns an http.Header that can be modified by the caller to
83283// add HTTP headers to the request.
83284func (c *InstanceGroupManagersListPerInstanceConfigsCall) Header() http.Header {
83285	if c.header_ == nil {
83286		c.header_ = make(http.Header)
83287	}
83288	return c.header_
83289}
83290
83291func (c *InstanceGroupManagersListPerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
83292	reqHeaders := make(http.Header)
83293	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
83294	for k, v := range c.header_ {
83295		reqHeaders[k] = v
83296	}
83297	reqHeaders.Set("User-Agent", c.s.userAgent())
83298	var body io.Reader = nil
83299	c.urlParams_.Set("alt", alt)
83300	c.urlParams_.Set("prettyPrint", "false")
83301	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs")
83302	urls += "?" + c.urlParams_.Encode()
83303	req, err := http.NewRequest("POST", urls, body)
83304	if err != nil {
83305		return nil, err
83306	}
83307	req.Header = reqHeaders
83308	googleapi.Expand(req.URL, map[string]string{
83309		"project":              c.project,
83310		"zone":                 c.zone,
83311		"instanceGroupManager": c.instanceGroupManager,
83312	})
83313	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83314}
83315
83316// Do executes the "compute.instanceGroupManagers.listPerInstanceConfigs" call.
83317// Exactly one of *InstanceGroupManagersListPerInstanceConfigsResp or
83318// error will be non-nil. Any non-2xx status code is an error. Response
83319// headers are in either
83320// *InstanceGroupManagersListPerInstanceConfigsResp.ServerResponse.Header
83321//  or (if a response was returned at all) in
83322// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
83323// whether the returned error was because http.StatusNotModified was
83324// returned.
83325func (c *InstanceGroupManagersListPerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagersListPerInstanceConfigsResp, error) {
83326	gensupport.SetOptions(c.urlParams_, opts...)
83327	res, err := c.doRequest("json")
83328	if res != nil && res.StatusCode == http.StatusNotModified {
83329		if res.Body != nil {
83330			res.Body.Close()
83331		}
83332		return nil, &googleapi.Error{
83333			Code:   res.StatusCode,
83334			Header: res.Header,
83335		}
83336	}
83337	if err != nil {
83338		return nil, err
83339	}
83340	defer googleapi.CloseBody(res)
83341	if err := googleapi.CheckResponse(res); err != nil {
83342		return nil, err
83343	}
83344	ret := &InstanceGroupManagersListPerInstanceConfigsResp{
83345		ServerResponse: googleapi.ServerResponse{
83346			Header:         res.Header,
83347			HTTPStatusCode: res.StatusCode,
83348		},
83349	}
83350	target := &ret
83351	if err := gensupport.DecodeResponse(target, res); err != nil {
83352		return nil, err
83353	}
83354	return ret, nil
83355	// {
83356	//   "description": "Lists all of the per-instance configs defined for the managed instance group. The orderBy query parameter is not supported.",
83357	//   "httpMethod": "POST",
83358	//   "id": "compute.instanceGroupManagers.listPerInstanceConfigs",
83359	//   "parameterOrder": [
83360	//     "project",
83361	//     "zone",
83362	//     "instanceGroupManager"
83363	//   ],
83364	//   "parameters": {
83365	//     "filter": {
83366	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
83367	//       "location": "query",
83368	//       "type": "string"
83369	//     },
83370	//     "instanceGroupManager": {
83371	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
83372	//       "location": "path",
83373	//       "required": true,
83374	//       "type": "string"
83375	//     },
83376	//     "maxResults": {
83377	//       "default": "500",
83378	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
83379	//       "format": "uint32",
83380	//       "location": "query",
83381	//       "minimum": "0",
83382	//       "type": "integer"
83383	//     },
83384	//     "orderBy": {
83385	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
83386	//       "location": "query",
83387	//       "type": "string"
83388	//     },
83389	//     "pageToken": {
83390	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
83391	//       "location": "query",
83392	//       "type": "string"
83393	//     },
83394	//     "project": {
83395	//       "description": "Project ID for this request.",
83396	//       "location": "path",
83397	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83398	//       "required": true,
83399	//       "type": "string"
83400	//     },
83401	//     "returnPartialSuccess": {
83402	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
83403	//       "location": "query",
83404	//       "type": "boolean"
83405	//     },
83406	//     "zone": {
83407	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
83408	//       "location": "path",
83409	//       "required": true,
83410	//       "type": "string"
83411	//     }
83412	//   },
83413	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs",
83414	//   "response": {
83415	//     "$ref": "InstanceGroupManagersListPerInstanceConfigsResp"
83416	//   },
83417	//   "scopes": [
83418	//     "https://www.googleapis.com/auth/cloud-platform",
83419	//     "https://www.googleapis.com/auth/compute",
83420	//     "https://www.googleapis.com/auth/compute.readonly"
83421	//   ]
83422	// }
83423
83424}
83425
83426// Pages invokes f for each page of results.
83427// A non-nil error returned from f will halt the iteration.
83428// The provided context supersedes any context provided to the Context method.
83429func (c *InstanceGroupManagersListPerInstanceConfigsCall) Pages(ctx context.Context, f func(*InstanceGroupManagersListPerInstanceConfigsResp) error) error {
83430	c.ctx_ = ctx
83431	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
83432	for {
83433		x, err := c.Do()
83434		if err != nil {
83435			return err
83436		}
83437		if err := f(x); err != nil {
83438			return err
83439		}
83440		if x.NextPageToken == "" {
83441			return nil
83442		}
83443		c.PageToken(x.NextPageToken)
83444	}
83445}
83446
83447// method id "compute.instanceGroupManagers.patch":
83448
83449type InstanceGroupManagersPatchCall struct {
83450	s                    *Service
83451	project              string
83452	zone                 string
83453	instanceGroupManager string
83454	instancegroupmanager *InstanceGroupManager
83455	urlParams_           gensupport.URLParams
83456	ctx_                 context.Context
83457	header_              http.Header
83458}
83459
83460// Patch: Updates a managed instance group using the information that
83461// you specify in the request. This operation is marked as DONE when the
83462// group is patched even if the instances in the group are still in the
83463// process of being patched. You must separately verify the status of
83464// the individual instances with the listManagedInstances method. This
83465// method supports PATCH semantics and uses the JSON merge patch format
83466// and processing rules.
83467func (r *InstanceGroupManagersService) Patch(project string, zone string, instanceGroupManager string, instancegroupmanager *InstanceGroupManager) *InstanceGroupManagersPatchCall {
83468	c := &InstanceGroupManagersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83469	c.project = project
83470	c.zone = zone
83471	c.instanceGroupManager = instanceGroupManager
83472	c.instancegroupmanager = instancegroupmanager
83473	return c
83474}
83475
83476// RequestId sets the optional parameter "requestId": An optional
83477// request ID to identify requests. Specify a unique request ID so that
83478// if you must retry your request, the server will know to ignore the
83479// request if it has already been completed.
83480//
83481// For example, consider a situation where you make an initial request
83482// and the request times out. If you make the request again with the
83483// same request ID, the server can check if original operation with the
83484// same request ID was received, and if so, will ignore the second
83485// request. This prevents clients from accidentally creating duplicate
83486// commitments.
83487//
83488// The request ID must be a valid UUID with the exception that zero UUID
83489// is not supported (00000000-0000-0000-0000-000000000000).
83490func (c *InstanceGroupManagersPatchCall) RequestId(requestId string) *InstanceGroupManagersPatchCall {
83491	c.urlParams_.Set("requestId", requestId)
83492	return c
83493}
83494
83495// Fields allows partial responses to be retrieved. See
83496// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83497// for more information.
83498func (c *InstanceGroupManagersPatchCall) Fields(s ...googleapi.Field) *InstanceGroupManagersPatchCall {
83499	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83500	return c
83501}
83502
83503// Context sets the context to be used in this call's Do method. Any
83504// pending HTTP request will be aborted if the provided context is
83505// canceled.
83506func (c *InstanceGroupManagersPatchCall) Context(ctx context.Context) *InstanceGroupManagersPatchCall {
83507	c.ctx_ = ctx
83508	return c
83509}
83510
83511// Header returns an http.Header that can be modified by the caller to
83512// add HTTP headers to the request.
83513func (c *InstanceGroupManagersPatchCall) Header() http.Header {
83514	if c.header_ == nil {
83515		c.header_ = make(http.Header)
83516	}
83517	return c.header_
83518}
83519
83520func (c *InstanceGroupManagersPatchCall) doRequest(alt string) (*http.Response, error) {
83521	reqHeaders := make(http.Header)
83522	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
83523	for k, v := range c.header_ {
83524		reqHeaders[k] = v
83525	}
83526	reqHeaders.Set("User-Agent", c.s.userAgent())
83527	var body io.Reader = nil
83528	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
83529	if err != nil {
83530		return nil, err
83531	}
83532	reqHeaders.Set("Content-Type", "application/json")
83533	c.urlParams_.Set("alt", alt)
83534	c.urlParams_.Set("prettyPrint", "false")
83535	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}")
83536	urls += "?" + c.urlParams_.Encode()
83537	req, err := http.NewRequest("PATCH", urls, body)
83538	if err != nil {
83539		return nil, err
83540	}
83541	req.Header = reqHeaders
83542	googleapi.Expand(req.URL, map[string]string{
83543		"project":              c.project,
83544		"zone":                 c.zone,
83545		"instanceGroupManager": c.instanceGroupManager,
83546	})
83547	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83548}
83549
83550// Do executes the "compute.instanceGroupManagers.patch" call.
83551// Exactly one of *Operation or error will be non-nil. Any non-2xx
83552// status code is an error. Response headers are in either
83553// *Operation.ServerResponse.Header or (if a response was returned at
83554// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
83555// to check whether the returned error was because
83556// http.StatusNotModified was returned.
83557func (c *InstanceGroupManagersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
83558	gensupport.SetOptions(c.urlParams_, opts...)
83559	res, err := c.doRequest("json")
83560	if res != nil && res.StatusCode == http.StatusNotModified {
83561		if res.Body != nil {
83562			res.Body.Close()
83563		}
83564		return nil, &googleapi.Error{
83565			Code:   res.StatusCode,
83566			Header: res.Header,
83567		}
83568	}
83569	if err != nil {
83570		return nil, err
83571	}
83572	defer googleapi.CloseBody(res)
83573	if err := googleapi.CheckResponse(res); err != nil {
83574		return nil, err
83575	}
83576	ret := &Operation{
83577		ServerResponse: googleapi.ServerResponse{
83578			Header:         res.Header,
83579			HTTPStatusCode: res.StatusCode,
83580		},
83581	}
83582	target := &ret
83583	if err := gensupport.DecodeResponse(target, res); err != nil {
83584		return nil, err
83585	}
83586	return ret, nil
83587	// {
83588	//   "description": "Updates a managed instance group using the information that you specify in the request. This operation is marked as DONE when the group is patched even if the instances in the group are still in the process of being patched. You must separately verify the status of the individual instances with the listManagedInstances method. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.",
83589	//   "httpMethod": "PATCH",
83590	//   "id": "compute.instanceGroupManagers.patch",
83591	//   "parameterOrder": [
83592	//     "project",
83593	//     "zone",
83594	//     "instanceGroupManager"
83595	//   ],
83596	//   "parameters": {
83597	//     "instanceGroupManager": {
83598	//       "description": "The name of the instance group manager.",
83599	//       "location": "path",
83600	//       "required": true,
83601	//       "type": "string"
83602	//     },
83603	//     "project": {
83604	//       "description": "Project ID for this request.",
83605	//       "location": "path",
83606	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83607	//       "required": true,
83608	//       "type": "string"
83609	//     },
83610	//     "requestId": {
83611	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
83612	//       "location": "query",
83613	//       "type": "string"
83614	//     },
83615	//     "zone": {
83616	//       "description": "The name of the zone where you want to create the managed instance group.",
83617	//       "location": "path",
83618	//       "required": true,
83619	//       "type": "string"
83620	//     }
83621	//   },
83622	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
83623	//   "request": {
83624	//     "$ref": "InstanceGroupManager"
83625	//   },
83626	//   "response": {
83627	//     "$ref": "Operation"
83628	//   },
83629	//   "scopes": [
83630	//     "https://www.googleapis.com/auth/cloud-platform",
83631	//     "https://www.googleapis.com/auth/compute"
83632	//   ]
83633	// }
83634
83635}
83636
83637// method id "compute.instanceGroupManagers.patchPerInstanceConfigs":
83638
83639type InstanceGroupManagersPatchPerInstanceConfigsCall struct {
83640	s                                               *Service
83641	project                                         string
83642	zone                                            string
83643	instanceGroupManager                            string
83644	instancegroupmanagerspatchperinstanceconfigsreq *InstanceGroupManagersPatchPerInstanceConfigsReq
83645	urlParams_                                      gensupport.URLParams
83646	ctx_                                            context.Context
83647	header_                                         http.Header
83648}
83649
83650// PatchPerInstanceConfigs: Inserts or patches per-instance configs for
83651// the managed instance group. perInstanceConfig.name serves as a key
83652// used to distinguish whether to perform insert or patch.
83653func (r *InstanceGroupManagersService) PatchPerInstanceConfigs(project string, zone string, instanceGroupManager string, instancegroupmanagerspatchperinstanceconfigsreq *InstanceGroupManagersPatchPerInstanceConfigsReq) *InstanceGroupManagersPatchPerInstanceConfigsCall {
83654	c := &InstanceGroupManagersPatchPerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83655	c.project = project
83656	c.zone = zone
83657	c.instanceGroupManager = instanceGroupManager
83658	c.instancegroupmanagerspatchperinstanceconfigsreq = instancegroupmanagerspatchperinstanceconfigsreq
83659	return c
83660}
83661
83662// RequestId sets the optional parameter "requestId": An optional
83663// request ID to identify requests. Specify a unique request ID so that
83664// if you must retry your request, the server will know to ignore the
83665// request if it has already been completed.
83666//
83667// For example, consider a situation where you make an initial request
83668// and the request times out. If you make the request again with the
83669// same request ID, the server can check if original operation with the
83670// same request ID was received, and if so, will ignore the second
83671// request. This prevents clients from accidentally creating duplicate
83672// commitments.
83673//
83674// The request ID must be a valid UUID with the exception that zero UUID
83675// is not supported (00000000-0000-0000-0000-000000000000).
83676func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) RequestId(requestId string) *InstanceGroupManagersPatchPerInstanceConfigsCall {
83677	c.urlParams_.Set("requestId", requestId)
83678	return c
83679}
83680
83681// Fields allows partial responses to be retrieved. See
83682// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83683// for more information.
83684func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersPatchPerInstanceConfigsCall {
83685	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83686	return c
83687}
83688
83689// Context sets the context to be used in this call's Do method. Any
83690// pending HTTP request will be aborted if the provided context is
83691// canceled.
83692func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) Context(ctx context.Context) *InstanceGroupManagersPatchPerInstanceConfigsCall {
83693	c.ctx_ = ctx
83694	return c
83695}
83696
83697// Header returns an http.Header that can be modified by the caller to
83698// add HTTP headers to the request.
83699func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) Header() http.Header {
83700	if c.header_ == nil {
83701		c.header_ = make(http.Header)
83702	}
83703	return c.header_
83704}
83705
83706func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
83707	reqHeaders := make(http.Header)
83708	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
83709	for k, v := range c.header_ {
83710		reqHeaders[k] = v
83711	}
83712	reqHeaders.Set("User-Agent", c.s.userAgent())
83713	var body io.Reader = nil
83714	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerspatchperinstanceconfigsreq)
83715	if err != nil {
83716		return nil, err
83717	}
83718	reqHeaders.Set("Content-Type", "application/json")
83719	c.urlParams_.Set("alt", alt)
83720	c.urlParams_.Set("prettyPrint", "false")
83721	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs")
83722	urls += "?" + c.urlParams_.Encode()
83723	req, err := http.NewRequest("POST", urls, body)
83724	if err != nil {
83725		return nil, err
83726	}
83727	req.Header = reqHeaders
83728	googleapi.Expand(req.URL, map[string]string{
83729		"project":              c.project,
83730		"zone":                 c.zone,
83731		"instanceGroupManager": c.instanceGroupManager,
83732	})
83733	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83734}
83735
83736// Do executes the "compute.instanceGroupManagers.patchPerInstanceConfigs" call.
83737// Exactly one of *Operation or error will be non-nil. Any non-2xx
83738// status code is an error. Response headers are in either
83739// *Operation.ServerResponse.Header or (if a response was returned at
83740// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
83741// to check whether the returned error was because
83742// http.StatusNotModified was returned.
83743func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
83744	gensupport.SetOptions(c.urlParams_, opts...)
83745	res, err := c.doRequest("json")
83746	if res != nil && res.StatusCode == http.StatusNotModified {
83747		if res.Body != nil {
83748			res.Body.Close()
83749		}
83750		return nil, &googleapi.Error{
83751			Code:   res.StatusCode,
83752			Header: res.Header,
83753		}
83754	}
83755	if err != nil {
83756		return nil, err
83757	}
83758	defer googleapi.CloseBody(res)
83759	if err := googleapi.CheckResponse(res); err != nil {
83760		return nil, err
83761	}
83762	ret := &Operation{
83763		ServerResponse: googleapi.ServerResponse{
83764			Header:         res.Header,
83765			HTTPStatusCode: res.StatusCode,
83766		},
83767	}
83768	target := &ret
83769	if err := gensupport.DecodeResponse(target, res); err != nil {
83770		return nil, err
83771	}
83772	return ret, nil
83773	// {
83774	//   "description": "Inserts or patches per-instance configs for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch.",
83775	//   "httpMethod": "POST",
83776	//   "id": "compute.instanceGroupManagers.patchPerInstanceConfigs",
83777	//   "parameterOrder": [
83778	//     "project",
83779	//     "zone",
83780	//     "instanceGroupManager"
83781	//   ],
83782	//   "parameters": {
83783	//     "instanceGroupManager": {
83784	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
83785	//       "location": "path",
83786	//       "required": true,
83787	//       "type": "string"
83788	//     },
83789	//     "project": {
83790	//       "description": "Project ID for this request.",
83791	//       "location": "path",
83792	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83793	//       "required": true,
83794	//       "type": "string"
83795	//     },
83796	//     "requestId": {
83797	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
83798	//       "location": "query",
83799	//       "type": "string"
83800	//     },
83801	//     "zone": {
83802	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
83803	//       "location": "path",
83804	//       "required": true,
83805	//       "type": "string"
83806	//     }
83807	//   },
83808	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs",
83809	//   "request": {
83810	//     "$ref": "InstanceGroupManagersPatchPerInstanceConfigsReq"
83811	//   },
83812	//   "response": {
83813	//     "$ref": "Operation"
83814	//   },
83815	//   "scopes": [
83816	//     "https://www.googleapis.com/auth/cloud-platform",
83817	//     "https://www.googleapis.com/auth/compute"
83818	//   ]
83819	// }
83820
83821}
83822
83823// method id "compute.instanceGroupManagers.recreateInstances":
83824
83825type InstanceGroupManagersRecreateInstancesCall struct {
83826	s                                             *Service
83827	project                                       string
83828	zone                                          string
83829	instanceGroupManager                          string
83830	instancegroupmanagersrecreateinstancesrequest *InstanceGroupManagersRecreateInstancesRequest
83831	urlParams_                                    gensupport.URLParams
83832	ctx_                                          context.Context
83833	header_                                       http.Header
83834}
83835
83836// RecreateInstances: Flags the specified instances in the managed
83837// instance group to be immediately recreated. The instances are deleted
83838// and recreated using the current instance template for the managed
83839// instance group. This operation is marked as DONE when the flag is set
83840// even if the instances have not yet been recreated. You must
83841// separately verify the status of the recreating action with the
83842// listmanagedinstances method.
83843//
83844// If the group is part of a backend service that has enabled connection
83845// draining, it can take up to 60 seconds after the connection draining
83846// duration has elapsed before the VM instance is removed or
83847// deleted.
83848//
83849// You can specify a maximum of 1000 instances with this method per
83850// request.
83851func (r *InstanceGroupManagersService) RecreateInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersrecreateinstancesrequest *InstanceGroupManagersRecreateInstancesRequest) *InstanceGroupManagersRecreateInstancesCall {
83852	c := &InstanceGroupManagersRecreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83853	c.project = project
83854	c.zone = zone
83855	c.instanceGroupManager = instanceGroupManager
83856	c.instancegroupmanagersrecreateinstancesrequest = instancegroupmanagersrecreateinstancesrequest
83857	return c
83858}
83859
83860// RequestId sets the optional parameter "requestId": An optional
83861// request ID to identify requests. Specify a unique request ID so that
83862// if you must retry your request, the server will know to ignore the
83863// request if it has already been completed.
83864//
83865// For example, consider a situation where you make an initial request
83866// and the request times out. If you make the request again with the
83867// same request ID, the server can check if original operation with the
83868// same request ID was received, and if so, will ignore the second
83869// request. This prevents clients from accidentally creating duplicate
83870// commitments.
83871//
83872// The request ID must be a valid UUID with the exception that zero UUID
83873// is not supported (00000000-0000-0000-0000-000000000000).
83874func (c *InstanceGroupManagersRecreateInstancesCall) RequestId(requestId string) *InstanceGroupManagersRecreateInstancesCall {
83875	c.urlParams_.Set("requestId", requestId)
83876	return c
83877}
83878
83879// Fields allows partial responses to be retrieved. See
83880// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83881// for more information.
83882func (c *InstanceGroupManagersRecreateInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersRecreateInstancesCall {
83883	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83884	return c
83885}
83886
83887// Context sets the context to be used in this call's Do method. Any
83888// pending HTTP request will be aborted if the provided context is
83889// canceled.
83890func (c *InstanceGroupManagersRecreateInstancesCall) Context(ctx context.Context) *InstanceGroupManagersRecreateInstancesCall {
83891	c.ctx_ = ctx
83892	return c
83893}
83894
83895// Header returns an http.Header that can be modified by the caller to
83896// add HTTP headers to the request.
83897func (c *InstanceGroupManagersRecreateInstancesCall) Header() http.Header {
83898	if c.header_ == nil {
83899		c.header_ = make(http.Header)
83900	}
83901	return c.header_
83902}
83903
83904func (c *InstanceGroupManagersRecreateInstancesCall) doRequest(alt string) (*http.Response, error) {
83905	reqHeaders := make(http.Header)
83906	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
83907	for k, v := range c.header_ {
83908		reqHeaders[k] = v
83909	}
83910	reqHeaders.Set("User-Agent", c.s.userAgent())
83911	var body io.Reader = nil
83912	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersrecreateinstancesrequest)
83913	if err != nil {
83914		return nil, err
83915	}
83916	reqHeaders.Set("Content-Type", "application/json")
83917	c.urlParams_.Set("alt", alt)
83918	c.urlParams_.Set("prettyPrint", "false")
83919	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/recreateInstances")
83920	urls += "?" + c.urlParams_.Encode()
83921	req, err := http.NewRequest("POST", urls, body)
83922	if err != nil {
83923		return nil, err
83924	}
83925	req.Header = reqHeaders
83926	googleapi.Expand(req.URL, map[string]string{
83927		"project":              c.project,
83928		"zone":                 c.zone,
83929		"instanceGroupManager": c.instanceGroupManager,
83930	})
83931	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83932}
83933
83934// Do executes the "compute.instanceGroupManagers.recreateInstances" call.
83935// Exactly one of *Operation or error will be non-nil. Any non-2xx
83936// status code is an error. Response headers are in either
83937// *Operation.ServerResponse.Header or (if a response was returned at
83938// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
83939// to check whether the returned error was because
83940// http.StatusNotModified was returned.
83941func (c *InstanceGroupManagersRecreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
83942	gensupport.SetOptions(c.urlParams_, opts...)
83943	res, err := c.doRequest("json")
83944	if res != nil && res.StatusCode == http.StatusNotModified {
83945		if res.Body != nil {
83946			res.Body.Close()
83947		}
83948		return nil, &googleapi.Error{
83949			Code:   res.StatusCode,
83950			Header: res.Header,
83951		}
83952	}
83953	if err != nil {
83954		return nil, err
83955	}
83956	defer googleapi.CloseBody(res)
83957	if err := googleapi.CheckResponse(res); err != nil {
83958		return nil, err
83959	}
83960	ret := &Operation{
83961		ServerResponse: googleapi.ServerResponse{
83962			Header:         res.Header,
83963			HTTPStatusCode: res.StatusCode,
83964		},
83965	}
83966	target := &ret
83967	if err := gensupport.DecodeResponse(target, res); err != nil {
83968		return nil, err
83969	}
83970	return ret, nil
83971	// {
83972	//   "description": "Flags the specified instances in the managed instance group to be immediately recreated. The instances are deleted and recreated using the current instance template for the managed instance group. This operation is marked as DONE when the flag is set even if the instances have not yet been recreated. You must separately verify the status of the recreating action with the listmanagedinstances method.\n\nIf the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted.\n\nYou can specify a maximum of 1000 instances with this method per request.",
83973	//   "httpMethod": "POST",
83974	//   "id": "compute.instanceGroupManagers.recreateInstances",
83975	//   "parameterOrder": [
83976	//     "project",
83977	//     "zone",
83978	//     "instanceGroupManager"
83979	//   ],
83980	//   "parameters": {
83981	//     "instanceGroupManager": {
83982	//       "description": "The name of the managed instance group.",
83983	//       "location": "path",
83984	//       "required": true,
83985	//       "type": "string"
83986	//     },
83987	//     "project": {
83988	//       "description": "Project ID for this request.",
83989	//       "location": "path",
83990	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83991	//       "required": true,
83992	//       "type": "string"
83993	//     },
83994	//     "requestId": {
83995	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
83996	//       "location": "query",
83997	//       "type": "string"
83998	//     },
83999	//     "zone": {
84000	//       "description": "The name of the zone where the managed instance group is located.",
84001	//       "location": "path",
84002	//       "required": true,
84003	//       "type": "string"
84004	//     }
84005	//   },
84006	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/recreateInstances",
84007	//   "request": {
84008	//     "$ref": "InstanceGroupManagersRecreateInstancesRequest"
84009	//   },
84010	//   "response": {
84011	//     "$ref": "Operation"
84012	//   },
84013	//   "scopes": [
84014	//     "https://www.googleapis.com/auth/cloud-platform",
84015	//     "https://www.googleapis.com/auth/compute"
84016	//   ]
84017	// }
84018
84019}
84020
84021// method id "compute.instanceGroupManagers.resize":
84022
84023type InstanceGroupManagersResizeCall struct {
84024	s                    *Service
84025	project              string
84026	zone                 string
84027	instanceGroupManager string
84028	urlParams_           gensupport.URLParams
84029	ctx_                 context.Context
84030	header_              http.Header
84031}
84032
84033// Resize: Resizes the managed instance group. If you increase the size,
84034// the group creates new instances using the current instance template.
84035// If you decrease the size, the group deletes instances. The resize
84036// operation is marked DONE when the resize actions are scheduled even
84037// if the group has not yet added or deleted any instances. You must
84038// separately verify the status of the creating or deleting actions with
84039// the listmanagedinstances method.
84040//
84041// When resizing down, the instance group arbitrarily chooses the order
84042// in which VMs are deleted. The group takes into account some VM
84043// attributes when making the selection including:
84044//
84045// + The status of the VM instance. + The health of the VM instance. +
84046// The instance template version the VM is based on. + For regional
84047// managed instance groups, the location of the VM instance.
84048//
84049// This list is subject to change.
84050//
84051// If the group is part of a backend service that has enabled connection
84052// draining, it can take up to 60 seconds after the connection draining
84053// duration has elapsed before the VM instance is removed or deleted.
84054func (r *InstanceGroupManagersService) Resize(project string, zone string, instanceGroupManager string, size int64) *InstanceGroupManagersResizeCall {
84055	c := &InstanceGroupManagersResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84056	c.project = project
84057	c.zone = zone
84058	c.instanceGroupManager = instanceGroupManager
84059	c.urlParams_.Set("size", fmt.Sprint(size))
84060	return c
84061}
84062
84063// RequestId sets the optional parameter "requestId": An optional
84064// request ID to identify requests. Specify a unique request ID so that
84065// if you must retry your request, the server will know to ignore the
84066// request if it has already been completed.
84067//
84068// For example, consider a situation where you make an initial request
84069// and the request times out. If you make the request again with the
84070// same request ID, the server can check if original operation with the
84071// same request ID was received, and if so, will ignore the second
84072// request. This prevents clients from accidentally creating duplicate
84073// commitments.
84074//
84075// The request ID must be a valid UUID with the exception that zero UUID
84076// is not supported (00000000-0000-0000-0000-000000000000).
84077func (c *InstanceGroupManagersResizeCall) RequestId(requestId string) *InstanceGroupManagersResizeCall {
84078	c.urlParams_.Set("requestId", requestId)
84079	return c
84080}
84081
84082// Fields allows partial responses to be retrieved. See
84083// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84084// for more information.
84085func (c *InstanceGroupManagersResizeCall) Fields(s ...googleapi.Field) *InstanceGroupManagersResizeCall {
84086	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84087	return c
84088}
84089
84090// Context sets the context to be used in this call's Do method. Any
84091// pending HTTP request will be aborted if the provided context is
84092// canceled.
84093func (c *InstanceGroupManagersResizeCall) Context(ctx context.Context) *InstanceGroupManagersResizeCall {
84094	c.ctx_ = ctx
84095	return c
84096}
84097
84098// Header returns an http.Header that can be modified by the caller to
84099// add HTTP headers to the request.
84100func (c *InstanceGroupManagersResizeCall) Header() http.Header {
84101	if c.header_ == nil {
84102		c.header_ = make(http.Header)
84103	}
84104	return c.header_
84105}
84106
84107func (c *InstanceGroupManagersResizeCall) doRequest(alt string) (*http.Response, error) {
84108	reqHeaders := make(http.Header)
84109	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
84110	for k, v := range c.header_ {
84111		reqHeaders[k] = v
84112	}
84113	reqHeaders.Set("User-Agent", c.s.userAgent())
84114	var body io.Reader = nil
84115	c.urlParams_.Set("alt", alt)
84116	c.urlParams_.Set("prettyPrint", "false")
84117	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resize")
84118	urls += "?" + c.urlParams_.Encode()
84119	req, err := http.NewRequest("POST", urls, body)
84120	if err != nil {
84121		return nil, err
84122	}
84123	req.Header = reqHeaders
84124	googleapi.Expand(req.URL, map[string]string{
84125		"project":              c.project,
84126		"zone":                 c.zone,
84127		"instanceGroupManager": c.instanceGroupManager,
84128	})
84129	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84130}
84131
84132// Do executes the "compute.instanceGroupManagers.resize" call.
84133// Exactly one of *Operation or error will be non-nil. Any non-2xx
84134// status code is an error. Response headers are in either
84135// *Operation.ServerResponse.Header or (if a response was returned at
84136// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
84137// to check whether the returned error was because
84138// http.StatusNotModified was returned.
84139func (c *InstanceGroupManagersResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
84140	gensupport.SetOptions(c.urlParams_, opts...)
84141	res, err := c.doRequest("json")
84142	if res != nil && res.StatusCode == http.StatusNotModified {
84143		if res.Body != nil {
84144			res.Body.Close()
84145		}
84146		return nil, &googleapi.Error{
84147			Code:   res.StatusCode,
84148			Header: res.Header,
84149		}
84150	}
84151	if err != nil {
84152		return nil, err
84153	}
84154	defer googleapi.CloseBody(res)
84155	if err := googleapi.CheckResponse(res); err != nil {
84156		return nil, err
84157	}
84158	ret := &Operation{
84159		ServerResponse: googleapi.ServerResponse{
84160			Header:         res.Header,
84161			HTTPStatusCode: res.StatusCode,
84162		},
84163	}
84164	target := &ret
84165	if err := gensupport.DecodeResponse(target, res); err != nil {
84166		return nil, err
84167	}
84168	return ret, nil
84169	// {
84170	//   "description": "Resizes the managed instance group. If you increase the size, the group creates new instances using the current instance template. If you decrease the size, the group deletes instances. The resize operation is marked DONE when the resize actions are scheduled even if the group has not yet added or deleted any instances. You must separately verify the status of the creating or deleting actions with the listmanagedinstances method.\n\nWhen resizing down, the instance group arbitrarily chooses the order in which VMs are deleted. The group takes into account some VM attributes when making the selection including:\n\n+ The status of the VM instance. + The health of the VM instance. + The instance template version the VM is based on. + For regional managed instance groups, the location of the VM instance.\n\nThis list is subject to change.\n\nIf the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted.",
84171	//   "httpMethod": "POST",
84172	//   "id": "compute.instanceGroupManagers.resize",
84173	//   "parameterOrder": [
84174	//     "project",
84175	//     "zone",
84176	//     "instanceGroupManager",
84177	//     "size"
84178	//   ],
84179	//   "parameters": {
84180	//     "instanceGroupManager": {
84181	//       "description": "The name of the managed instance group.",
84182	//       "location": "path",
84183	//       "required": true,
84184	//       "type": "string"
84185	//     },
84186	//     "project": {
84187	//       "description": "Project ID for this request.",
84188	//       "location": "path",
84189	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84190	//       "required": true,
84191	//       "type": "string"
84192	//     },
84193	//     "requestId": {
84194	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
84195	//       "location": "query",
84196	//       "type": "string"
84197	//     },
84198	//     "size": {
84199	//       "description": "The number of running instances that the managed instance group should maintain at any given time. The group automatically adds or removes instances to maintain the number of instances specified by this parameter.",
84200	//       "format": "int32",
84201	//       "location": "query",
84202	//       "required": true,
84203	//       "type": "integer"
84204	//     },
84205	//     "zone": {
84206	//       "description": "The name of the zone where the managed instance group is located.",
84207	//       "location": "path",
84208	//       "required": true,
84209	//       "type": "string"
84210	//     }
84211	//   },
84212	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resize",
84213	//   "response": {
84214	//     "$ref": "Operation"
84215	//   },
84216	//   "scopes": [
84217	//     "https://www.googleapis.com/auth/cloud-platform",
84218	//     "https://www.googleapis.com/auth/compute"
84219	//   ]
84220	// }
84221
84222}
84223
84224// method id "compute.instanceGroupManagers.resizeAdvanced":
84225
84226type InstanceGroupManagersResizeAdvancedCall struct {
84227	s                                          *Service
84228	project                                    string
84229	zone                                       string
84230	instanceGroupManager                       string
84231	instancegroupmanagersresizeadvancedrequest *InstanceGroupManagersResizeAdvancedRequest
84232	urlParams_                                 gensupport.URLParams
84233	ctx_                                       context.Context
84234	header_                                    http.Header
84235}
84236
84237// ResizeAdvanced: Resizes the managed instance group with advanced
84238// configuration options like disabling creation retries. This is an
84239// extended version of the resize method.
84240//
84241// If you increase the size of the instance group, the group creates new
84242// instances using the current instance template. If you decrease the
84243// size, the group deletes instances. The resize operation is marked
84244// DONE when the resize actions are scheduled even if the group has not
84245// yet added or deleted any instances. You must separately verify the
84246// status of the creating, creatingWithoutRetries, or deleting actions
84247// with the get or listmanagedinstances method.
84248//
84249// If the group is part of a backend service that has enabled connection
84250// draining, it can take up to 60 seconds after the connection draining
84251// duration has elapsed before the VM instance is removed or deleted.
84252func (r *InstanceGroupManagersService) ResizeAdvanced(project string, zone string, instanceGroupManager string, instancegroupmanagersresizeadvancedrequest *InstanceGroupManagersResizeAdvancedRequest) *InstanceGroupManagersResizeAdvancedCall {
84253	c := &InstanceGroupManagersResizeAdvancedCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84254	c.project = project
84255	c.zone = zone
84256	c.instanceGroupManager = instanceGroupManager
84257	c.instancegroupmanagersresizeadvancedrequest = instancegroupmanagersresizeadvancedrequest
84258	return c
84259}
84260
84261// RequestId sets the optional parameter "requestId": An optional
84262// request ID to identify requests. Specify a unique request ID so that
84263// if you must retry your request, the server will know to ignore the
84264// request if it has already been completed.
84265//
84266// For example, consider a situation where you make an initial request
84267// and the request times out. If you make the request again with the
84268// same request ID, the server can check if original operation with the
84269// same request ID was received, and if so, will ignore the second
84270// request. This prevents clients from accidentally creating duplicate
84271// commitments.
84272//
84273// The request ID must be a valid UUID with the exception that zero UUID
84274// is not supported (00000000-0000-0000-0000-000000000000).
84275func (c *InstanceGroupManagersResizeAdvancedCall) RequestId(requestId string) *InstanceGroupManagersResizeAdvancedCall {
84276	c.urlParams_.Set("requestId", requestId)
84277	return c
84278}
84279
84280// Fields allows partial responses to be retrieved. See
84281// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84282// for more information.
84283func (c *InstanceGroupManagersResizeAdvancedCall) Fields(s ...googleapi.Field) *InstanceGroupManagersResizeAdvancedCall {
84284	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84285	return c
84286}
84287
84288// Context sets the context to be used in this call's Do method. Any
84289// pending HTTP request will be aborted if the provided context is
84290// canceled.
84291func (c *InstanceGroupManagersResizeAdvancedCall) Context(ctx context.Context) *InstanceGroupManagersResizeAdvancedCall {
84292	c.ctx_ = ctx
84293	return c
84294}
84295
84296// Header returns an http.Header that can be modified by the caller to
84297// add HTTP headers to the request.
84298func (c *InstanceGroupManagersResizeAdvancedCall) Header() http.Header {
84299	if c.header_ == nil {
84300		c.header_ = make(http.Header)
84301	}
84302	return c.header_
84303}
84304
84305func (c *InstanceGroupManagersResizeAdvancedCall) doRequest(alt string) (*http.Response, error) {
84306	reqHeaders := make(http.Header)
84307	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
84308	for k, v := range c.header_ {
84309		reqHeaders[k] = v
84310	}
84311	reqHeaders.Set("User-Agent", c.s.userAgent())
84312	var body io.Reader = nil
84313	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersresizeadvancedrequest)
84314	if err != nil {
84315		return nil, err
84316	}
84317	reqHeaders.Set("Content-Type", "application/json")
84318	c.urlParams_.Set("alt", alt)
84319	c.urlParams_.Set("prettyPrint", "false")
84320	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeAdvanced")
84321	urls += "?" + c.urlParams_.Encode()
84322	req, err := http.NewRequest("POST", urls, body)
84323	if err != nil {
84324		return nil, err
84325	}
84326	req.Header = reqHeaders
84327	googleapi.Expand(req.URL, map[string]string{
84328		"project":              c.project,
84329		"zone":                 c.zone,
84330		"instanceGroupManager": c.instanceGroupManager,
84331	})
84332	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84333}
84334
84335// Do executes the "compute.instanceGroupManagers.resizeAdvanced" call.
84336// Exactly one of *Operation or error will be non-nil. Any non-2xx
84337// status code is an error. Response headers are in either
84338// *Operation.ServerResponse.Header or (if a response was returned at
84339// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
84340// to check whether the returned error was because
84341// http.StatusNotModified was returned.
84342func (c *InstanceGroupManagersResizeAdvancedCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
84343	gensupport.SetOptions(c.urlParams_, opts...)
84344	res, err := c.doRequest("json")
84345	if res != nil && res.StatusCode == http.StatusNotModified {
84346		if res.Body != nil {
84347			res.Body.Close()
84348		}
84349		return nil, &googleapi.Error{
84350			Code:   res.StatusCode,
84351			Header: res.Header,
84352		}
84353	}
84354	if err != nil {
84355		return nil, err
84356	}
84357	defer googleapi.CloseBody(res)
84358	if err := googleapi.CheckResponse(res); err != nil {
84359		return nil, err
84360	}
84361	ret := &Operation{
84362		ServerResponse: googleapi.ServerResponse{
84363			Header:         res.Header,
84364			HTTPStatusCode: res.StatusCode,
84365		},
84366	}
84367	target := &ret
84368	if err := gensupport.DecodeResponse(target, res); err != nil {
84369		return nil, err
84370	}
84371	return ret, nil
84372	// {
84373	//   "description": "Resizes the managed instance group with advanced configuration options like disabling creation retries. This is an extended version of the resize method.\n\nIf you increase the size of the instance group, the group creates new instances using the current instance template. If you decrease the size, the group deletes instances. The resize operation is marked DONE when the resize actions are scheduled even if the group has not yet added or deleted any instances. You must separately verify the status of the creating, creatingWithoutRetries, or deleting actions with the get or listmanagedinstances method.\n\nIf the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted.",
84374	//   "httpMethod": "POST",
84375	//   "id": "compute.instanceGroupManagers.resizeAdvanced",
84376	//   "parameterOrder": [
84377	//     "project",
84378	//     "zone",
84379	//     "instanceGroupManager"
84380	//   ],
84381	//   "parameters": {
84382	//     "instanceGroupManager": {
84383	//       "description": "The name of the managed instance group.",
84384	//       "location": "path",
84385	//       "required": true,
84386	//       "type": "string"
84387	//     },
84388	//     "project": {
84389	//       "description": "Project ID for this request.",
84390	//       "location": "path",
84391	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84392	//       "required": true,
84393	//       "type": "string"
84394	//     },
84395	//     "requestId": {
84396	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
84397	//       "location": "query",
84398	//       "type": "string"
84399	//     },
84400	//     "zone": {
84401	//       "description": "The name of the zone where the managed instance group is located.",
84402	//       "location": "path",
84403	//       "required": true,
84404	//       "type": "string"
84405	//     }
84406	//   },
84407	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeAdvanced",
84408	//   "request": {
84409	//     "$ref": "InstanceGroupManagersResizeAdvancedRequest"
84410	//   },
84411	//   "response": {
84412	//     "$ref": "Operation"
84413	//   },
84414	//   "scopes": [
84415	//     "https://www.googleapis.com/auth/cloud-platform",
84416	//     "https://www.googleapis.com/auth/compute"
84417	//   ]
84418	// }
84419
84420}
84421
84422// method id "compute.instanceGroupManagers.setAutoHealingPolicies":
84423
84424type InstanceGroupManagersSetAutoHealingPoliciesCall struct {
84425	s                                          *Service
84426	project                                    string
84427	zone                                       string
84428	instanceGroupManager                       string
84429	instancegroupmanagerssetautohealingrequest *InstanceGroupManagersSetAutoHealingRequest
84430	urlParams_                                 gensupport.URLParams
84431	ctx_                                       context.Context
84432	header_                                    http.Header
84433}
84434
84435// SetAutoHealingPolicies: Motifies the autohealing policy for the
84436// instances in this managed instance group. [Deprecated] This method is
84437// deprecated. Use instanceGroupManagers.patch instead.
84438func (r *InstanceGroupManagersService) SetAutoHealingPolicies(project string, zone string, instanceGroupManager string, instancegroupmanagerssetautohealingrequest *InstanceGroupManagersSetAutoHealingRequest) *InstanceGroupManagersSetAutoHealingPoliciesCall {
84439	c := &InstanceGroupManagersSetAutoHealingPoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84440	c.project = project
84441	c.zone = zone
84442	c.instanceGroupManager = instanceGroupManager
84443	c.instancegroupmanagerssetautohealingrequest = instancegroupmanagerssetautohealingrequest
84444	return c
84445}
84446
84447// RequestId sets the optional parameter "requestId": An optional
84448// request ID to identify requests. Specify a unique request ID so that
84449// if you must retry your request, the server will know to ignore the
84450// request if it has already been completed.
84451//
84452// For example, consider a situation where you make an initial request
84453// and the request times out. If you make the request again with the
84454// same request ID, the server can check if original operation with the
84455// same request ID was received, and if so, will ignore the second
84456// request. This prevents clients from accidentally creating duplicate
84457// commitments.
84458//
84459// The request ID must be a valid UUID with the exception that zero UUID
84460// is not supported (00000000-0000-0000-0000-000000000000).
84461func (c *InstanceGroupManagersSetAutoHealingPoliciesCall) RequestId(requestId string) *InstanceGroupManagersSetAutoHealingPoliciesCall {
84462	c.urlParams_.Set("requestId", requestId)
84463	return c
84464}
84465
84466// Fields allows partial responses to be retrieved. See
84467// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84468// for more information.
84469func (c *InstanceGroupManagersSetAutoHealingPoliciesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersSetAutoHealingPoliciesCall {
84470	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84471	return c
84472}
84473
84474// Context sets the context to be used in this call's Do method. Any
84475// pending HTTP request will be aborted if the provided context is
84476// canceled.
84477func (c *InstanceGroupManagersSetAutoHealingPoliciesCall) Context(ctx context.Context) *InstanceGroupManagersSetAutoHealingPoliciesCall {
84478	c.ctx_ = ctx
84479	return c
84480}
84481
84482// Header returns an http.Header that can be modified by the caller to
84483// add HTTP headers to the request.
84484func (c *InstanceGroupManagersSetAutoHealingPoliciesCall) Header() http.Header {
84485	if c.header_ == nil {
84486		c.header_ = make(http.Header)
84487	}
84488	return c.header_
84489}
84490
84491func (c *InstanceGroupManagersSetAutoHealingPoliciesCall) doRequest(alt string) (*http.Response, error) {
84492	reqHeaders := make(http.Header)
84493	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
84494	for k, v := range c.header_ {
84495		reqHeaders[k] = v
84496	}
84497	reqHeaders.Set("User-Agent", c.s.userAgent())
84498	var body io.Reader = nil
84499	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerssetautohealingrequest)
84500	if err != nil {
84501		return nil, err
84502	}
84503	reqHeaders.Set("Content-Type", "application/json")
84504	c.urlParams_.Set("alt", alt)
84505	c.urlParams_.Set("prettyPrint", "false")
84506	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setAutoHealingPolicies")
84507	urls += "?" + c.urlParams_.Encode()
84508	req, err := http.NewRequest("POST", urls, body)
84509	if err != nil {
84510		return nil, err
84511	}
84512	req.Header = reqHeaders
84513	googleapi.Expand(req.URL, map[string]string{
84514		"project":              c.project,
84515		"zone":                 c.zone,
84516		"instanceGroupManager": c.instanceGroupManager,
84517	})
84518	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84519}
84520
84521// Do executes the "compute.instanceGroupManagers.setAutoHealingPolicies" call.
84522// Exactly one of *Operation or error will be non-nil. Any non-2xx
84523// status code is an error. Response headers are in either
84524// *Operation.ServerResponse.Header or (if a response was returned at
84525// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
84526// to check whether the returned error was because
84527// http.StatusNotModified was returned.
84528func (c *InstanceGroupManagersSetAutoHealingPoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
84529	gensupport.SetOptions(c.urlParams_, opts...)
84530	res, err := c.doRequest("json")
84531	if res != nil && res.StatusCode == http.StatusNotModified {
84532		if res.Body != nil {
84533			res.Body.Close()
84534		}
84535		return nil, &googleapi.Error{
84536			Code:   res.StatusCode,
84537			Header: res.Header,
84538		}
84539	}
84540	if err != nil {
84541		return nil, err
84542	}
84543	defer googleapi.CloseBody(res)
84544	if err := googleapi.CheckResponse(res); err != nil {
84545		return nil, err
84546	}
84547	ret := &Operation{
84548		ServerResponse: googleapi.ServerResponse{
84549			Header:         res.Header,
84550			HTTPStatusCode: res.StatusCode,
84551		},
84552	}
84553	target := &ret
84554	if err := gensupport.DecodeResponse(target, res); err != nil {
84555		return nil, err
84556	}
84557	return ret, nil
84558	// {
84559	//   "description": "Motifies the autohealing policy for the instances in this managed instance group. [Deprecated] This method is deprecated. Use instanceGroupManagers.patch instead.",
84560	//   "httpMethod": "POST",
84561	//   "id": "compute.instanceGroupManagers.setAutoHealingPolicies",
84562	//   "parameterOrder": [
84563	//     "project",
84564	//     "zone",
84565	//     "instanceGroupManager"
84566	//   ],
84567	//   "parameters": {
84568	//     "instanceGroupManager": {
84569	//       "description": "The name of the instance group manager.",
84570	//       "location": "path",
84571	//       "required": true,
84572	//       "type": "string"
84573	//     },
84574	//     "project": {
84575	//       "description": "Project ID for this request.",
84576	//       "location": "path",
84577	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84578	//       "required": true,
84579	//       "type": "string"
84580	//     },
84581	//     "requestId": {
84582	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
84583	//       "location": "query",
84584	//       "type": "string"
84585	//     },
84586	//     "zone": {
84587	//       "description": "The name of the zone where the managed instance group is located.",
84588	//       "location": "path",
84589	//       "required": true,
84590	//       "type": "string"
84591	//     }
84592	//   },
84593	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setAutoHealingPolicies",
84594	//   "request": {
84595	//     "$ref": "InstanceGroupManagersSetAutoHealingRequest"
84596	//   },
84597	//   "response": {
84598	//     "$ref": "Operation"
84599	//   },
84600	//   "scopes": [
84601	//     "https://www.googleapis.com/auth/cloud-platform",
84602	//     "https://www.googleapis.com/auth/compute"
84603	//   ]
84604	// }
84605
84606}
84607
84608// method id "compute.instanceGroupManagers.setInstanceTemplate":
84609
84610type InstanceGroupManagersSetInstanceTemplateCall struct {
84611	s                                               *Service
84612	project                                         string
84613	zone                                            string
84614	instanceGroupManager                            string
84615	instancegroupmanagerssetinstancetemplaterequest *InstanceGroupManagersSetInstanceTemplateRequest
84616	urlParams_                                      gensupport.URLParams
84617	ctx_                                            context.Context
84618	header_                                         http.Header
84619}
84620
84621// SetInstanceTemplate: Specifies the instance template to use when
84622// creating new instances in this group. The templates for existing
84623// instances in the group do not change unless you run
84624// recreateInstances, run applyUpdatesToInstances, or set the group's
84625// updatePolicy.type to PROACTIVE.
84626func (r *InstanceGroupManagersService) SetInstanceTemplate(project string, zone string, instanceGroupManager string, instancegroupmanagerssetinstancetemplaterequest *InstanceGroupManagersSetInstanceTemplateRequest) *InstanceGroupManagersSetInstanceTemplateCall {
84627	c := &InstanceGroupManagersSetInstanceTemplateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84628	c.project = project
84629	c.zone = zone
84630	c.instanceGroupManager = instanceGroupManager
84631	c.instancegroupmanagerssetinstancetemplaterequest = instancegroupmanagerssetinstancetemplaterequest
84632	return c
84633}
84634
84635// RequestId sets the optional parameter "requestId": An optional
84636// request ID to identify requests. Specify a unique request ID so that
84637// if you must retry your request, the server will know to ignore the
84638// request if it has already been completed.
84639//
84640// For example, consider a situation where you make an initial request
84641// and the request times out. If you make the request again with the
84642// same request ID, the server can check if original operation with the
84643// same request ID was received, and if so, will ignore the second
84644// request. This prevents clients from accidentally creating duplicate
84645// commitments.
84646//
84647// The request ID must be a valid UUID with the exception that zero UUID
84648// is not supported (00000000-0000-0000-0000-000000000000).
84649func (c *InstanceGroupManagersSetInstanceTemplateCall) RequestId(requestId string) *InstanceGroupManagersSetInstanceTemplateCall {
84650	c.urlParams_.Set("requestId", requestId)
84651	return c
84652}
84653
84654// Fields allows partial responses to be retrieved. See
84655// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84656// for more information.
84657func (c *InstanceGroupManagersSetInstanceTemplateCall) Fields(s ...googleapi.Field) *InstanceGroupManagersSetInstanceTemplateCall {
84658	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84659	return c
84660}
84661
84662// Context sets the context to be used in this call's Do method. Any
84663// pending HTTP request will be aborted if the provided context is
84664// canceled.
84665func (c *InstanceGroupManagersSetInstanceTemplateCall) Context(ctx context.Context) *InstanceGroupManagersSetInstanceTemplateCall {
84666	c.ctx_ = ctx
84667	return c
84668}
84669
84670// Header returns an http.Header that can be modified by the caller to
84671// add HTTP headers to the request.
84672func (c *InstanceGroupManagersSetInstanceTemplateCall) Header() http.Header {
84673	if c.header_ == nil {
84674		c.header_ = make(http.Header)
84675	}
84676	return c.header_
84677}
84678
84679func (c *InstanceGroupManagersSetInstanceTemplateCall) doRequest(alt string) (*http.Response, error) {
84680	reqHeaders := make(http.Header)
84681	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
84682	for k, v := range c.header_ {
84683		reqHeaders[k] = v
84684	}
84685	reqHeaders.Set("User-Agent", c.s.userAgent())
84686	var body io.Reader = nil
84687	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerssetinstancetemplaterequest)
84688	if err != nil {
84689		return nil, err
84690	}
84691	reqHeaders.Set("Content-Type", "application/json")
84692	c.urlParams_.Set("alt", alt)
84693	c.urlParams_.Set("prettyPrint", "false")
84694	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate")
84695	urls += "?" + c.urlParams_.Encode()
84696	req, err := http.NewRequest("POST", urls, body)
84697	if err != nil {
84698		return nil, err
84699	}
84700	req.Header = reqHeaders
84701	googleapi.Expand(req.URL, map[string]string{
84702		"project":              c.project,
84703		"zone":                 c.zone,
84704		"instanceGroupManager": c.instanceGroupManager,
84705	})
84706	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84707}
84708
84709// Do executes the "compute.instanceGroupManagers.setInstanceTemplate" call.
84710// Exactly one of *Operation or error will be non-nil. Any non-2xx
84711// status code is an error. Response headers are in either
84712// *Operation.ServerResponse.Header or (if a response was returned at
84713// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
84714// to check whether the returned error was because
84715// http.StatusNotModified was returned.
84716func (c *InstanceGroupManagersSetInstanceTemplateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
84717	gensupport.SetOptions(c.urlParams_, opts...)
84718	res, err := c.doRequest("json")
84719	if res != nil && res.StatusCode == http.StatusNotModified {
84720		if res.Body != nil {
84721			res.Body.Close()
84722		}
84723		return nil, &googleapi.Error{
84724			Code:   res.StatusCode,
84725			Header: res.Header,
84726		}
84727	}
84728	if err != nil {
84729		return nil, err
84730	}
84731	defer googleapi.CloseBody(res)
84732	if err := googleapi.CheckResponse(res); err != nil {
84733		return nil, err
84734	}
84735	ret := &Operation{
84736		ServerResponse: googleapi.ServerResponse{
84737			Header:         res.Header,
84738			HTTPStatusCode: res.StatusCode,
84739		},
84740	}
84741	target := &ret
84742	if err := gensupport.DecodeResponse(target, res); err != nil {
84743		return nil, err
84744	}
84745	return ret, nil
84746	// {
84747	//   "description": "Specifies the instance template to use when creating new instances in this group. The templates for existing instances in the group do not change unless you run recreateInstances, run applyUpdatesToInstances, or set the group's updatePolicy.type to PROACTIVE.",
84748	//   "httpMethod": "POST",
84749	//   "id": "compute.instanceGroupManagers.setInstanceTemplate",
84750	//   "parameterOrder": [
84751	//     "project",
84752	//     "zone",
84753	//     "instanceGroupManager"
84754	//   ],
84755	//   "parameters": {
84756	//     "instanceGroupManager": {
84757	//       "description": "The name of the managed instance group.",
84758	//       "location": "path",
84759	//       "required": true,
84760	//       "type": "string"
84761	//     },
84762	//     "project": {
84763	//       "description": "Project ID for this request.",
84764	//       "location": "path",
84765	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84766	//       "required": true,
84767	//       "type": "string"
84768	//     },
84769	//     "requestId": {
84770	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
84771	//       "location": "query",
84772	//       "type": "string"
84773	//     },
84774	//     "zone": {
84775	//       "description": "The name of the zone where the managed instance group is located.",
84776	//       "location": "path",
84777	//       "required": true,
84778	//       "type": "string"
84779	//     }
84780	//   },
84781	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate",
84782	//   "request": {
84783	//     "$ref": "InstanceGroupManagersSetInstanceTemplateRequest"
84784	//   },
84785	//   "response": {
84786	//     "$ref": "Operation"
84787	//   },
84788	//   "scopes": [
84789	//     "https://www.googleapis.com/auth/cloud-platform",
84790	//     "https://www.googleapis.com/auth/compute"
84791	//   ]
84792	// }
84793
84794}
84795
84796// method id "compute.instanceGroupManagers.setTargetPools":
84797
84798type InstanceGroupManagersSetTargetPoolsCall struct {
84799	s                                          *Service
84800	project                                    string
84801	zone                                       string
84802	instanceGroupManager                       string
84803	instancegroupmanagerssettargetpoolsrequest *InstanceGroupManagersSetTargetPoolsRequest
84804	urlParams_                                 gensupport.URLParams
84805	ctx_                                       context.Context
84806	header_                                    http.Header
84807}
84808
84809// SetTargetPools: Modifies the target pools to which all instances in
84810// this managed instance group are assigned. The target pools
84811// automatically apply to all of the instances in the managed instance
84812// group. This operation is marked DONE when you make the request even
84813// if the instances have not yet been added to their target pools. The
84814// change might take some time to apply to all of the instances in the
84815// group depending on the size of the group.
84816func (r *InstanceGroupManagersService) SetTargetPools(project string, zone string, instanceGroupManager string, instancegroupmanagerssettargetpoolsrequest *InstanceGroupManagersSetTargetPoolsRequest) *InstanceGroupManagersSetTargetPoolsCall {
84817	c := &InstanceGroupManagersSetTargetPoolsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84818	c.project = project
84819	c.zone = zone
84820	c.instanceGroupManager = instanceGroupManager
84821	c.instancegroupmanagerssettargetpoolsrequest = instancegroupmanagerssettargetpoolsrequest
84822	return c
84823}
84824
84825// RequestId sets the optional parameter "requestId": An optional
84826// request ID to identify requests. Specify a unique request ID so that
84827// if you must retry your request, the server will know to ignore the
84828// request if it has already been completed.
84829//
84830// For example, consider a situation where you make an initial request
84831// and the request times out. If you make the request again with the
84832// same request ID, the server can check if original operation with the
84833// same request ID was received, and if so, will ignore the second
84834// request. This prevents clients from accidentally creating duplicate
84835// commitments.
84836//
84837// The request ID must be a valid UUID with the exception that zero UUID
84838// is not supported (00000000-0000-0000-0000-000000000000).
84839func (c *InstanceGroupManagersSetTargetPoolsCall) RequestId(requestId string) *InstanceGroupManagersSetTargetPoolsCall {
84840	c.urlParams_.Set("requestId", requestId)
84841	return c
84842}
84843
84844// Fields allows partial responses to be retrieved. See
84845// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84846// for more information.
84847func (c *InstanceGroupManagersSetTargetPoolsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersSetTargetPoolsCall {
84848	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84849	return c
84850}
84851
84852// Context sets the context to be used in this call's Do method. Any
84853// pending HTTP request will be aborted if the provided context is
84854// canceled.
84855func (c *InstanceGroupManagersSetTargetPoolsCall) Context(ctx context.Context) *InstanceGroupManagersSetTargetPoolsCall {
84856	c.ctx_ = ctx
84857	return c
84858}
84859
84860// Header returns an http.Header that can be modified by the caller to
84861// add HTTP headers to the request.
84862func (c *InstanceGroupManagersSetTargetPoolsCall) Header() http.Header {
84863	if c.header_ == nil {
84864		c.header_ = make(http.Header)
84865	}
84866	return c.header_
84867}
84868
84869func (c *InstanceGroupManagersSetTargetPoolsCall) doRequest(alt string) (*http.Response, error) {
84870	reqHeaders := make(http.Header)
84871	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
84872	for k, v := range c.header_ {
84873		reqHeaders[k] = v
84874	}
84875	reqHeaders.Set("User-Agent", c.s.userAgent())
84876	var body io.Reader = nil
84877	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerssettargetpoolsrequest)
84878	if err != nil {
84879		return nil, err
84880	}
84881	reqHeaders.Set("Content-Type", "application/json")
84882	c.urlParams_.Set("alt", alt)
84883	c.urlParams_.Set("prettyPrint", "false")
84884	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setTargetPools")
84885	urls += "?" + c.urlParams_.Encode()
84886	req, err := http.NewRequest("POST", urls, body)
84887	if err != nil {
84888		return nil, err
84889	}
84890	req.Header = reqHeaders
84891	googleapi.Expand(req.URL, map[string]string{
84892		"project":              c.project,
84893		"zone":                 c.zone,
84894		"instanceGroupManager": c.instanceGroupManager,
84895	})
84896	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84897}
84898
84899// Do executes the "compute.instanceGroupManagers.setTargetPools" call.
84900// Exactly one of *Operation or error will be non-nil. Any non-2xx
84901// status code is an error. Response headers are in either
84902// *Operation.ServerResponse.Header or (if a response was returned at
84903// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
84904// to check whether the returned error was because
84905// http.StatusNotModified was returned.
84906func (c *InstanceGroupManagersSetTargetPoolsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
84907	gensupport.SetOptions(c.urlParams_, opts...)
84908	res, err := c.doRequest("json")
84909	if res != nil && res.StatusCode == http.StatusNotModified {
84910		if res.Body != nil {
84911			res.Body.Close()
84912		}
84913		return nil, &googleapi.Error{
84914			Code:   res.StatusCode,
84915			Header: res.Header,
84916		}
84917	}
84918	if err != nil {
84919		return nil, err
84920	}
84921	defer googleapi.CloseBody(res)
84922	if err := googleapi.CheckResponse(res); err != nil {
84923		return nil, err
84924	}
84925	ret := &Operation{
84926		ServerResponse: googleapi.ServerResponse{
84927			Header:         res.Header,
84928			HTTPStatusCode: res.StatusCode,
84929		},
84930	}
84931	target := &ret
84932	if err := gensupport.DecodeResponse(target, res); err != nil {
84933		return nil, err
84934	}
84935	return ret, nil
84936	// {
84937	//   "description": "Modifies the target pools to which all instances in this managed instance group are assigned. The target pools automatically apply to all of the instances in the managed instance group. This operation is marked DONE when you make the request even if the instances have not yet been added to their target pools. The change might take some time to apply to all of the instances in the group depending on the size of the group.",
84938	//   "httpMethod": "POST",
84939	//   "id": "compute.instanceGroupManagers.setTargetPools",
84940	//   "parameterOrder": [
84941	//     "project",
84942	//     "zone",
84943	//     "instanceGroupManager"
84944	//   ],
84945	//   "parameters": {
84946	//     "instanceGroupManager": {
84947	//       "description": "The name of the managed instance group.",
84948	//       "location": "path",
84949	//       "required": true,
84950	//       "type": "string"
84951	//     },
84952	//     "project": {
84953	//       "description": "Project ID for this request.",
84954	//       "location": "path",
84955	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84956	//       "required": true,
84957	//       "type": "string"
84958	//     },
84959	//     "requestId": {
84960	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
84961	//       "location": "query",
84962	//       "type": "string"
84963	//     },
84964	//     "zone": {
84965	//       "description": "The name of the zone where the managed instance group is located.",
84966	//       "location": "path",
84967	//       "required": true,
84968	//       "type": "string"
84969	//     }
84970	//   },
84971	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setTargetPools",
84972	//   "request": {
84973	//     "$ref": "InstanceGroupManagersSetTargetPoolsRequest"
84974	//   },
84975	//   "response": {
84976	//     "$ref": "Operation"
84977	//   },
84978	//   "scopes": [
84979	//     "https://www.googleapis.com/auth/cloud-platform",
84980	//     "https://www.googleapis.com/auth/compute"
84981	//   ]
84982	// }
84983
84984}
84985
84986// method id "compute.instanceGroupManagers.testIamPermissions":
84987
84988type InstanceGroupManagersTestIamPermissionsCall struct {
84989	s                      *Service
84990	project                string
84991	zone                   string
84992	resource               string
84993	testpermissionsrequest *TestPermissionsRequest
84994	urlParams_             gensupport.URLParams
84995	ctx_                   context.Context
84996	header_                http.Header
84997}
84998
84999// TestIamPermissions: Returns permissions that a caller has on the
85000// specified resource.
85001func (r *InstanceGroupManagersService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *InstanceGroupManagersTestIamPermissionsCall {
85002	c := &InstanceGroupManagersTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85003	c.project = project
85004	c.zone = zone
85005	c.resource = resource
85006	c.testpermissionsrequest = testpermissionsrequest
85007	return c
85008}
85009
85010// Fields allows partial responses to be retrieved. See
85011// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85012// for more information.
85013func (c *InstanceGroupManagersTestIamPermissionsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersTestIamPermissionsCall {
85014	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85015	return c
85016}
85017
85018// Context sets the context to be used in this call's Do method. Any
85019// pending HTTP request will be aborted if the provided context is
85020// canceled.
85021func (c *InstanceGroupManagersTestIamPermissionsCall) Context(ctx context.Context) *InstanceGroupManagersTestIamPermissionsCall {
85022	c.ctx_ = ctx
85023	return c
85024}
85025
85026// Header returns an http.Header that can be modified by the caller to
85027// add HTTP headers to the request.
85028func (c *InstanceGroupManagersTestIamPermissionsCall) Header() http.Header {
85029	if c.header_ == nil {
85030		c.header_ = make(http.Header)
85031	}
85032	return c.header_
85033}
85034
85035func (c *InstanceGroupManagersTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
85036	reqHeaders := make(http.Header)
85037	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
85038	for k, v := range c.header_ {
85039		reqHeaders[k] = v
85040	}
85041	reqHeaders.Set("User-Agent", c.s.userAgent())
85042	var body io.Reader = nil
85043	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
85044	if err != nil {
85045		return nil, err
85046	}
85047	reqHeaders.Set("Content-Type", "application/json")
85048	c.urlParams_.Set("alt", alt)
85049	c.urlParams_.Set("prettyPrint", "false")
85050	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{resource}/testIamPermissions")
85051	urls += "?" + c.urlParams_.Encode()
85052	req, err := http.NewRequest("POST", urls, body)
85053	if err != nil {
85054		return nil, err
85055	}
85056	req.Header = reqHeaders
85057	googleapi.Expand(req.URL, map[string]string{
85058		"project":  c.project,
85059		"zone":     c.zone,
85060		"resource": c.resource,
85061	})
85062	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85063}
85064
85065// Do executes the "compute.instanceGroupManagers.testIamPermissions" call.
85066// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
85067// non-2xx status code is an error. Response headers are in either
85068// *TestPermissionsResponse.ServerResponse.Header or (if a response was
85069// returned at all) in error.(*googleapi.Error).Header. Use
85070// googleapi.IsNotModified to check whether the returned error was
85071// because http.StatusNotModified was returned.
85072func (c *InstanceGroupManagersTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
85073	gensupport.SetOptions(c.urlParams_, opts...)
85074	res, err := c.doRequest("json")
85075	if res != nil && res.StatusCode == http.StatusNotModified {
85076		if res.Body != nil {
85077			res.Body.Close()
85078		}
85079		return nil, &googleapi.Error{
85080			Code:   res.StatusCode,
85081			Header: res.Header,
85082		}
85083	}
85084	if err != nil {
85085		return nil, err
85086	}
85087	defer googleapi.CloseBody(res)
85088	if err := googleapi.CheckResponse(res); err != nil {
85089		return nil, err
85090	}
85091	ret := &TestPermissionsResponse{
85092		ServerResponse: googleapi.ServerResponse{
85093			Header:         res.Header,
85094			HTTPStatusCode: res.StatusCode,
85095		},
85096	}
85097	target := &ret
85098	if err := gensupport.DecodeResponse(target, res); err != nil {
85099		return nil, err
85100	}
85101	return ret, nil
85102	// {
85103	//   "description": "Returns permissions that a caller has on the specified resource.",
85104	//   "httpMethod": "POST",
85105	//   "id": "compute.instanceGroupManagers.testIamPermissions",
85106	//   "parameterOrder": [
85107	//     "project",
85108	//     "zone",
85109	//     "resource"
85110	//   ],
85111	//   "parameters": {
85112	//     "project": {
85113	//       "description": "Project ID for this request.",
85114	//       "location": "path",
85115	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85116	//       "required": true,
85117	//       "type": "string"
85118	//     },
85119	//     "resource": {
85120	//       "description": "Name or id of the resource for this request.",
85121	//       "location": "path",
85122	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
85123	//       "required": true,
85124	//       "type": "string"
85125	//     },
85126	//     "zone": {
85127	//       "description": "The name of the zone for this request.",
85128	//       "location": "path",
85129	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
85130	//       "required": true,
85131	//       "type": "string"
85132	//     }
85133	//   },
85134	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{resource}/testIamPermissions",
85135	//   "request": {
85136	//     "$ref": "TestPermissionsRequest"
85137	//   },
85138	//   "response": {
85139	//     "$ref": "TestPermissionsResponse"
85140	//   },
85141	//   "scopes": [
85142	//     "https://www.googleapis.com/auth/cloud-platform",
85143	//     "https://www.googleapis.com/auth/compute",
85144	//     "https://www.googleapis.com/auth/compute.readonly"
85145	//   ]
85146	// }
85147
85148}
85149
85150// method id "compute.instanceGroupManagers.update":
85151
85152type InstanceGroupManagersUpdateCall struct {
85153	s                    *Service
85154	project              string
85155	zone                 string
85156	instanceGroupManager string
85157	instancegroupmanager *InstanceGroupManager
85158	urlParams_           gensupport.URLParams
85159	ctx_                 context.Context
85160	header_              http.Header
85161}
85162
85163// Update: Updates a managed instance group using the information that
85164// you specify in the request. This operation is marked as DONE when the
85165// group is updated even if the instances in the group have not yet been
85166// updated. You must separately verify the status of the individual
85167// instances with the listManagedInstances method.
85168func (r *InstanceGroupManagersService) Update(project string, zone string, instanceGroupManager string, instancegroupmanager *InstanceGroupManager) *InstanceGroupManagersUpdateCall {
85169	c := &InstanceGroupManagersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85170	c.project = project
85171	c.zone = zone
85172	c.instanceGroupManager = instanceGroupManager
85173	c.instancegroupmanager = instancegroupmanager
85174	return c
85175}
85176
85177// RequestId sets the optional parameter "requestId": An optional
85178// request ID to identify requests. Specify a unique request ID so that
85179// if you must retry your request, the server will know to ignore the
85180// request if it has already been completed.
85181//
85182// For example, consider a situation where you make an initial request
85183// and the request times out. If you make the request again with the
85184// same request ID, the server can check if original operation with the
85185// same request ID was received, and if so, will ignore the second
85186// request. This prevents clients from accidentally creating duplicate
85187// commitments.
85188//
85189// The request ID must be a valid UUID with the exception that zero UUID
85190// is not supported (00000000-0000-0000-0000-000000000000).
85191func (c *InstanceGroupManagersUpdateCall) RequestId(requestId string) *InstanceGroupManagersUpdateCall {
85192	c.urlParams_.Set("requestId", requestId)
85193	return c
85194}
85195
85196// Fields allows partial responses to be retrieved. See
85197// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85198// for more information.
85199func (c *InstanceGroupManagersUpdateCall) Fields(s ...googleapi.Field) *InstanceGroupManagersUpdateCall {
85200	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85201	return c
85202}
85203
85204// Context sets the context to be used in this call's Do method. Any
85205// pending HTTP request will be aborted if the provided context is
85206// canceled.
85207func (c *InstanceGroupManagersUpdateCall) Context(ctx context.Context) *InstanceGroupManagersUpdateCall {
85208	c.ctx_ = ctx
85209	return c
85210}
85211
85212// Header returns an http.Header that can be modified by the caller to
85213// add HTTP headers to the request.
85214func (c *InstanceGroupManagersUpdateCall) Header() http.Header {
85215	if c.header_ == nil {
85216		c.header_ = make(http.Header)
85217	}
85218	return c.header_
85219}
85220
85221func (c *InstanceGroupManagersUpdateCall) doRequest(alt string) (*http.Response, error) {
85222	reqHeaders := make(http.Header)
85223	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
85224	for k, v := range c.header_ {
85225		reqHeaders[k] = v
85226	}
85227	reqHeaders.Set("User-Agent", c.s.userAgent())
85228	var body io.Reader = nil
85229	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
85230	if err != nil {
85231		return nil, err
85232	}
85233	reqHeaders.Set("Content-Type", "application/json")
85234	c.urlParams_.Set("alt", alt)
85235	c.urlParams_.Set("prettyPrint", "false")
85236	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}")
85237	urls += "?" + c.urlParams_.Encode()
85238	req, err := http.NewRequest("PUT", urls, body)
85239	if err != nil {
85240		return nil, err
85241	}
85242	req.Header = reqHeaders
85243	googleapi.Expand(req.URL, map[string]string{
85244		"project":              c.project,
85245		"zone":                 c.zone,
85246		"instanceGroupManager": c.instanceGroupManager,
85247	})
85248	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85249}
85250
85251// Do executes the "compute.instanceGroupManagers.update" call.
85252// Exactly one of *Operation or error will be non-nil. Any non-2xx
85253// status code is an error. Response headers are in either
85254// *Operation.ServerResponse.Header or (if a response was returned at
85255// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
85256// to check whether the returned error was because
85257// http.StatusNotModified was returned.
85258func (c *InstanceGroupManagersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
85259	gensupport.SetOptions(c.urlParams_, opts...)
85260	res, err := c.doRequest("json")
85261	if res != nil && res.StatusCode == http.StatusNotModified {
85262		if res.Body != nil {
85263			res.Body.Close()
85264		}
85265		return nil, &googleapi.Error{
85266			Code:   res.StatusCode,
85267			Header: res.Header,
85268		}
85269	}
85270	if err != nil {
85271		return nil, err
85272	}
85273	defer googleapi.CloseBody(res)
85274	if err := googleapi.CheckResponse(res); err != nil {
85275		return nil, err
85276	}
85277	ret := &Operation{
85278		ServerResponse: googleapi.ServerResponse{
85279			Header:         res.Header,
85280			HTTPStatusCode: res.StatusCode,
85281		},
85282	}
85283	target := &ret
85284	if err := gensupport.DecodeResponse(target, res); err != nil {
85285		return nil, err
85286	}
85287	return ret, nil
85288	// {
85289	//   "description": "Updates a managed instance group using the information that you specify in the request. This operation is marked as DONE when the group is updated even if the instances in the group have not yet been updated. You must separately verify the status of the individual instances with the listManagedInstances method.",
85290	//   "httpMethod": "PUT",
85291	//   "id": "compute.instanceGroupManagers.update",
85292	//   "parameterOrder": [
85293	//     "project",
85294	//     "zone",
85295	//     "instanceGroupManager"
85296	//   ],
85297	//   "parameters": {
85298	//     "instanceGroupManager": {
85299	//       "description": "The name of the instance group manager.",
85300	//       "location": "path",
85301	//       "required": true,
85302	//       "type": "string"
85303	//     },
85304	//     "project": {
85305	//       "description": "Project ID for this request.",
85306	//       "location": "path",
85307	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85308	//       "required": true,
85309	//       "type": "string"
85310	//     },
85311	//     "requestId": {
85312	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
85313	//       "location": "query",
85314	//       "type": "string"
85315	//     },
85316	//     "zone": {
85317	//       "description": "The name of the zone where you want to create the managed instance group.",
85318	//       "location": "path",
85319	//       "required": true,
85320	//       "type": "string"
85321	//     }
85322	//   },
85323	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
85324	//   "request": {
85325	//     "$ref": "InstanceGroupManager"
85326	//   },
85327	//   "response": {
85328	//     "$ref": "Operation"
85329	//   },
85330	//   "scopes": [
85331	//     "https://www.googleapis.com/auth/cloud-platform",
85332	//     "https://www.googleapis.com/auth/compute"
85333	//   ]
85334	// }
85335
85336}
85337
85338// method id "compute.instanceGroupManagers.updatePerInstanceConfigs":
85339
85340type InstanceGroupManagersUpdatePerInstanceConfigsCall struct {
85341	s                                                *Service
85342	project                                          string
85343	zone                                             string
85344	instanceGroupManager                             string
85345	instancegroupmanagersupdateperinstanceconfigsreq *InstanceGroupManagersUpdatePerInstanceConfigsReq
85346	urlParams_                                       gensupport.URLParams
85347	ctx_                                             context.Context
85348	header_                                          http.Header
85349}
85350
85351// UpdatePerInstanceConfigs: Inserts or updates per-instance configs for
85352// the managed instance group. perInstanceConfig.name serves as a key
85353// used to distinguish whether to perform insert or patch.
85354func (r *InstanceGroupManagersService) UpdatePerInstanceConfigs(project string, zone string, instanceGroupManager string, instancegroupmanagersupdateperinstanceconfigsreq *InstanceGroupManagersUpdatePerInstanceConfigsReq) *InstanceGroupManagersUpdatePerInstanceConfigsCall {
85355	c := &InstanceGroupManagersUpdatePerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85356	c.project = project
85357	c.zone = zone
85358	c.instanceGroupManager = instanceGroupManager
85359	c.instancegroupmanagersupdateperinstanceconfigsreq = instancegroupmanagersupdateperinstanceconfigsreq
85360	return c
85361}
85362
85363// RequestId sets the optional parameter "requestId": An optional
85364// request ID to identify requests. Specify a unique request ID so that
85365// if you must retry your request, the server will know to ignore the
85366// request if it has already been completed.
85367//
85368// For example, consider a situation where you make an initial request
85369// and the request times out. If you make the request again with the
85370// same request ID, the server can check if original operation with the
85371// same request ID was received, and if so, will ignore the second
85372// request. This prevents clients from accidentally creating duplicate
85373// commitments.
85374//
85375// The request ID must be a valid UUID with the exception that zero UUID
85376// is not supported (00000000-0000-0000-0000-000000000000).
85377func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) RequestId(requestId string) *InstanceGroupManagersUpdatePerInstanceConfigsCall {
85378	c.urlParams_.Set("requestId", requestId)
85379	return c
85380}
85381
85382// Fields allows partial responses to be retrieved. See
85383// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85384// for more information.
85385func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersUpdatePerInstanceConfigsCall {
85386	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85387	return c
85388}
85389
85390// Context sets the context to be used in this call's Do method. Any
85391// pending HTTP request will be aborted if the provided context is
85392// canceled.
85393func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) Context(ctx context.Context) *InstanceGroupManagersUpdatePerInstanceConfigsCall {
85394	c.ctx_ = ctx
85395	return c
85396}
85397
85398// Header returns an http.Header that can be modified by the caller to
85399// add HTTP headers to the request.
85400func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) Header() http.Header {
85401	if c.header_ == nil {
85402		c.header_ = make(http.Header)
85403	}
85404	return c.header_
85405}
85406
85407func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
85408	reqHeaders := make(http.Header)
85409	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
85410	for k, v := range c.header_ {
85411		reqHeaders[k] = v
85412	}
85413	reqHeaders.Set("User-Agent", c.s.userAgent())
85414	var body io.Reader = nil
85415	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersupdateperinstanceconfigsreq)
85416	if err != nil {
85417		return nil, err
85418	}
85419	reqHeaders.Set("Content-Type", "application/json")
85420	c.urlParams_.Set("alt", alt)
85421	c.urlParams_.Set("prettyPrint", "false")
85422	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs")
85423	urls += "?" + c.urlParams_.Encode()
85424	req, err := http.NewRequest("POST", urls, body)
85425	if err != nil {
85426		return nil, err
85427	}
85428	req.Header = reqHeaders
85429	googleapi.Expand(req.URL, map[string]string{
85430		"project":              c.project,
85431		"zone":                 c.zone,
85432		"instanceGroupManager": c.instanceGroupManager,
85433	})
85434	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85435}
85436
85437// Do executes the "compute.instanceGroupManagers.updatePerInstanceConfigs" call.
85438// Exactly one of *Operation or error will be non-nil. Any non-2xx
85439// status code is an error. Response headers are in either
85440// *Operation.ServerResponse.Header or (if a response was returned at
85441// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
85442// to check whether the returned error was because
85443// http.StatusNotModified was returned.
85444func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
85445	gensupport.SetOptions(c.urlParams_, opts...)
85446	res, err := c.doRequest("json")
85447	if res != nil && res.StatusCode == http.StatusNotModified {
85448		if res.Body != nil {
85449			res.Body.Close()
85450		}
85451		return nil, &googleapi.Error{
85452			Code:   res.StatusCode,
85453			Header: res.Header,
85454		}
85455	}
85456	if err != nil {
85457		return nil, err
85458	}
85459	defer googleapi.CloseBody(res)
85460	if err := googleapi.CheckResponse(res); err != nil {
85461		return nil, err
85462	}
85463	ret := &Operation{
85464		ServerResponse: googleapi.ServerResponse{
85465			Header:         res.Header,
85466			HTTPStatusCode: res.StatusCode,
85467		},
85468	}
85469	target := &ret
85470	if err := gensupport.DecodeResponse(target, res); err != nil {
85471		return nil, err
85472	}
85473	return ret, nil
85474	// {
85475	//   "description": "Inserts or updates per-instance configs for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch.",
85476	//   "httpMethod": "POST",
85477	//   "id": "compute.instanceGroupManagers.updatePerInstanceConfigs",
85478	//   "parameterOrder": [
85479	//     "project",
85480	//     "zone",
85481	//     "instanceGroupManager"
85482	//   ],
85483	//   "parameters": {
85484	//     "instanceGroupManager": {
85485	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
85486	//       "location": "path",
85487	//       "required": true,
85488	//       "type": "string"
85489	//     },
85490	//     "project": {
85491	//       "description": "Project ID for this request.",
85492	//       "location": "path",
85493	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85494	//       "required": true,
85495	//       "type": "string"
85496	//     },
85497	//     "requestId": {
85498	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
85499	//       "location": "query",
85500	//       "type": "string"
85501	//     },
85502	//     "zone": {
85503	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
85504	//       "location": "path",
85505	//       "required": true,
85506	//       "type": "string"
85507	//     }
85508	//   },
85509	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs",
85510	//   "request": {
85511	//     "$ref": "InstanceGroupManagersUpdatePerInstanceConfigsReq"
85512	//   },
85513	//   "response": {
85514	//     "$ref": "Operation"
85515	//   },
85516	//   "scopes": [
85517	//     "https://www.googleapis.com/auth/cloud-platform",
85518	//     "https://www.googleapis.com/auth/compute"
85519	//   ]
85520	// }
85521
85522}
85523
85524// method id "compute.instanceGroups.addInstances":
85525
85526type InstanceGroupsAddInstancesCall struct {
85527	s                                 *Service
85528	project                           string
85529	zone                              string
85530	instanceGroup                     string
85531	instancegroupsaddinstancesrequest *InstanceGroupsAddInstancesRequest
85532	urlParams_                        gensupport.URLParams
85533	ctx_                              context.Context
85534	header_                           http.Header
85535}
85536
85537// AddInstances: Adds a list of instances to the specified instance
85538// group. All of the instances in the instance group must be in the same
85539// network/subnetwork. Read  Adding instances for more information.
85540func (r *InstanceGroupsService) AddInstances(project string, zone string, instanceGroup string, instancegroupsaddinstancesrequest *InstanceGroupsAddInstancesRequest) *InstanceGroupsAddInstancesCall {
85541	c := &InstanceGroupsAddInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85542	c.project = project
85543	c.zone = zone
85544	c.instanceGroup = instanceGroup
85545	c.instancegroupsaddinstancesrequest = instancegroupsaddinstancesrequest
85546	return c
85547}
85548
85549// RequestId sets the optional parameter "requestId": An optional
85550// request ID to identify requests. Specify a unique request ID so that
85551// if you must retry your request, the server will know to ignore the
85552// request if it has already been completed.
85553//
85554// For example, consider a situation where you make an initial request
85555// and the request times out. If you make the request again with the
85556// same request ID, the server can check if original operation with the
85557// same request ID was received, and if so, will ignore the second
85558// request. This prevents clients from accidentally creating duplicate
85559// commitments.
85560//
85561// The request ID must be a valid UUID with the exception that zero UUID
85562// is not supported (00000000-0000-0000-0000-000000000000).
85563func (c *InstanceGroupsAddInstancesCall) RequestId(requestId string) *InstanceGroupsAddInstancesCall {
85564	c.urlParams_.Set("requestId", requestId)
85565	return c
85566}
85567
85568// Fields allows partial responses to be retrieved. See
85569// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85570// for more information.
85571func (c *InstanceGroupsAddInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupsAddInstancesCall {
85572	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85573	return c
85574}
85575
85576// Context sets the context to be used in this call's Do method. Any
85577// pending HTTP request will be aborted if the provided context is
85578// canceled.
85579func (c *InstanceGroupsAddInstancesCall) Context(ctx context.Context) *InstanceGroupsAddInstancesCall {
85580	c.ctx_ = ctx
85581	return c
85582}
85583
85584// Header returns an http.Header that can be modified by the caller to
85585// add HTTP headers to the request.
85586func (c *InstanceGroupsAddInstancesCall) Header() http.Header {
85587	if c.header_ == nil {
85588		c.header_ = make(http.Header)
85589	}
85590	return c.header_
85591}
85592
85593func (c *InstanceGroupsAddInstancesCall) doRequest(alt string) (*http.Response, error) {
85594	reqHeaders := make(http.Header)
85595	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
85596	for k, v := range c.header_ {
85597		reqHeaders[k] = v
85598	}
85599	reqHeaders.Set("User-Agent", c.s.userAgent())
85600	var body io.Reader = nil
85601	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupsaddinstancesrequest)
85602	if err != nil {
85603		return nil, err
85604	}
85605	reqHeaders.Set("Content-Type", "application/json")
85606	c.urlParams_.Set("alt", alt)
85607	c.urlParams_.Set("prettyPrint", "false")
85608	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/addInstances")
85609	urls += "?" + c.urlParams_.Encode()
85610	req, err := http.NewRequest("POST", urls, body)
85611	if err != nil {
85612		return nil, err
85613	}
85614	req.Header = reqHeaders
85615	googleapi.Expand(req.URL, map[string]string{
85616		"project":       c.project,
85617		"zone":          c.zone,
85618		"instanceGroup": c.instanceGroup,
85619	})
85620	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85621}
85622
85623// Do executes the "compute.instanceGroups.addInstances" call.
85624// Exactly one of *Operation or error will be non-nil. Any non-2xx
85625// status code is an error. Response headers are in either
85626// *Operation.ServerResponse.Header or (if a response was returned at
85627// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
85628// to check whether the returned error was because
85629// http.StatusNotModified was returned.
85630func (c *InstanceGroupsAddInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
85631	gensupport.SetOptions(c.urlParams_, opts...)
85632	res, err := c.doRequest("json")
85633	if res != nil && res.StatusCode == http.StatusNotModified {
85634		if res.Body != nil {
85635			res.Body.Close()
85636		}
85637		return nil, &googleapi.Error{
85638			Code:   res.StatusCode,
85639			Header: res.Header,
85640		}
85641	}
85642	if err != nil {
85643		return nil, err
85644	}
85645	defer googleapi.CloseBody(res)
85646	if err := googleapi.CheckResponse(res); err != nil {
85647		return nil, err
85648	}
85649	ret := &Operation{
85650		ServerResponse: googleapi.ServerResponse{
85651			Header:         res.Header,
85652			HTTPStatusCode: res.StatusCode,
85653		},
85654	}
85655	target := &ret
85656	if err := gensupport.DecodeResponse(target, res); err != nil {
85657		return nil, err
85658	}
85659	return ret, nil
85660	// {
85661	//   "description": "Adds a list of instances to the specified instance group. All of the instances in the instance group must be in the same network/subnetwork. Read  Adding instances for more information.",
85662	//   "httpMethod": "POST",
85663	//   "id": "compute.instanceGroups.addInstances",
85664	//   "parameterOrder": [
85665	//     "project",
85666	//     "zone",
85667	//     "instanceGroup"
85668	//   ],
85669	//   "parameters": {
85670	//     "instanceGroup": {
85671	//       "description": "The name of the instance group where you are adding instances.",
85672	//       "location": "path",
85673	//       "required": true,
85674	//       "type": "string"
85675	//     },
85676	//     "project": {
85677	//       "description": "Project ID for this request.",
85678	//       "location": "path",
85679	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85680	//       "required": true,
85681	//       "type": "string"
85682	//     },
85683	//     "requestId": {
85684	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
85685	//       "location": "query",
85686	//       "type": "string"
85687	//     },
85688	//     "zone": {
85689	//       "description": "The name of the zone where the instance group is located.",
85690	//       "location": "path",
85691	//       "required": true,
85692	//       "type": "string"
85693	//     }
85694	//   },
85695	//   "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/addInstances",
85696	//   "request": {
85697	//     "$ref": "InstanceGroupsAddInstancesRequest"
85698	//   },
85699	//   "response": {
85700	//     "$ref": "Operation"
85701	//   },
85702	//   "scopes": [
85703	//     "https://www.googleapis.com/auth/cloud-platform",
85704	//     "https://www.googleapis.com/auth/compute"
85705	//   ]
85706	// }
85707
85708}
85709
85710// method id "compute.instanceGroups.aggregatedList":
85711
85712type InstanceGroupsAggregatedListCall struct {
85713	s            *Service
85714	project      string
85715	urlParams_   gensupport.URLParams
85716	ifNoneMatch_ string
85717	ctx_         context.Context
85718	header_      http.Header
85719}
85720
85721// AggregatedList: Retrieves the list of instance groups and sorts them
85722// by zone.
85723func (r *InstanceGroupsService) AggregatedList(project string) *InstanceGroupsAggregatedListCall {
85724	c := &InstanceGroupsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85725	c.project = project
85726	return c
85727}
85728
85729// Filter sets the optional parameter "filter": A filter expression that
85730// filters resources listed in the response. The expression must specify
85731// the field name, a comparison operator, and the value that you want to
85732// use for filtering. The value must be a string, a number, or a
85733// boolean. The comparison operator must be either `=`, `!=`, `>`, or
85734// `<`.
85735//
85736// For example, if you are filtering Compute Engine instances, you can
85737// exclude instances named `example-instance` by specifying `name !=
85738// example-instance`.
85739//
85740// You can also filter nested fields. For example, you could specify
85741// `scheduling.automaticRestart = false` to include instances only if
85742// they are not scheduled for automatic restarts. You can use filtering
85743// on nested fields to filter based on resource labels.
85744//
85745// To filter on multiple expressions, provide each separate expression
85746// within parentheses. For example: ``` (scheduling.automaticRestart =
85747// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
85748// is an `AND` expression. However, you can include `AND` and `OR`
85749// expressions explicitly. For example: ``` (cpuPlatform = "Intel
85750// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
85751// (scheduling.automaticRestart = true) ```
85752func (c *InstanceGroupsAggregatedListCall) Filter(filter string) *InstanceGroupsAggregatedListCall {
85753	c.urlParams_.Set("filter", filter)
85754	return c
85755}
85756
85757// IncludeAllScopes sets the optional parameter "includeAllScopes":
85758// Indicates whether every visible scope for each scope type (zone,
85759// region, global) should be included in the response. For new resource
85760// types added after this field, the flag has no effect as new resource
85761// types will always include every visible scope for each scope type in
85762// response. For resource types which predate this field, if this flag
85763// is omitted or false, only scopes of the scope types where the
85764// resource type is expected to be found will be included.
85765func (c *InstanceGroupsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *InstanceGroupsAggregatedListCall {
85766	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
85767	return c
85768}
85769
85770// MaxResults sets the optional parameter "maxResults": The maximum
85771// number of results per page that should be returned. If the number of
85772// available results is larger than `maxResults`, Compute Engine returns
85773// a `nextPageToken` that can be used to get the next page of results in
85774// subsequent list requests. Acceptable values are `0` to `500`,
85775// inclusive. (Default: `500`)
85776func (c *InstanceGroupsAggregatedListCall) MaxResults(maxResults int64) *InstanceGroupsAggregatedListCall {
85777	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
85778	return c
85779}
85780
85781// OrderBy sets the optional parameter "orderBy": Sorts list results by
85782// a certain order. By default, results are returned in alphanumerical
85783// order based on the resource name.
85784//
85785// You can also sort results in descending order based on the creation
85786// timestamp using `orderBy="creationTimestamp desc". This sorts
85787// results based on the `creationTimestamp` field in reverse
85788// chronological order (newest result first). Use this to sort resources
85789// like operations so that the newest operation is returned
85790// first.
85791//
85792// Currently, only sorting by `name` or `creationTimestamp desc` is
85793// supported.
85794func (c *InstanceGroupsAggregatedListCall) OrderBy(orderBy string) *InstanceGroupsAggregatedListCall {
85795	c.urlParams_.Set("orderBy", orderBy)
85796	return c
85797}
85798
85799// PageToken sets the optional parameter "pageToken": Specifies a page
85800// token to use. Set `pageToken` to the `nextPageToken` returned by a
85801// previous list request to get the next page of results.
85802func (c *InstanceGroupsAggregatedListCall) PageToken(pageToken string) *InstanceGroupsAggregatedListCall {
85803	c.urlParams_.Set("pageToken", pageToken)
85804	return c
85805}
85806
85807// ReturnPartialSuccess sets the optional parameter
85808// "returnPartialSuccess": Opt-in for partial success behavior which
85809// provides partial results in case of failure. The default value is
85810// false.
85811func (c *InstanceGroupsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupsAggregatedListCall {
85812	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
85813	return c
85814}
85815
85816// Fields allows partial responses to be retrieved. See
85817// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85818// for more information.
85819func (c *InstanceGroupsAggregatedListCall) Fields(s ...googleapi.Field) *InstanceGroupsAggregatedListCall {
85820	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85821	return c
85822}
85823
85824// IfNoneMatch sets the optional parameter which makes the operation
85825// fail if the object's ETag matches the given value. This is useful for
85826// getting updates only after the object has changed since the last
85827// request. Use googleapi.IsNotModified to check whether the response
85828// error from Do is the result of In-None-Match.
85829func (c *InstanceGroupsAggregatedListCall) IfNoneMatch(entityTag string) *InstanceGroupsAggregatedListCall {
85830	c.ifNoneMatch_ = entityTag
85831	return c
85832}
85833
85834// Context sets the context to be used in this call's Do method. Any
85835// pending HTTP request will be aborted if the provided context is
85836// canceled.
85837func (c *InstanceGroupsAggregatedListCall) Context(ctx context.Context) *InstanceGroupsAggregatedListCall {
85838	c.ctx_ = ctx
85839	return c
85840}
85841
85842// Header returns an http.Header that can be modified by the caller to
85843// add HTTP headers to the request.
85844func (c *InstanceGroupsAggregatedListCall) Header() http.Header {
85845	if c.header_ == nil {
85846		c.header_ = make(http.Header)
85847	}
85848	return c.header_
85849}
85850
85851func (c *InstanceGroupsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
85852	reqHeaders := make(http.Header)
85853	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
85854	for k, v := range c.header_ {
85855		reqHeaders[k] = v
85856	}
85857	reqHeaders.Set("User-Agent", c.s.userAgent())
85858	if c.ifNoneMatch_ != "" {
85859		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
85860	}
85861	var body io.Reader = nil
85862	c.urlParams_.Set("alt", alt)
85863	c.urlParams_.Set("prettyPrint", "false")
85864	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/instanceGroups")
85865	urls += "?" + c.urlParams_.Encode()
85866	req, err := http.NewRequest("GET", urls, body)
85867	if err != nil {
85868		return nil, err
85869	}
85870	req.Header = reqHeaders
85871	googleapi.Expand(req.URL, map[string]string{
85872		"project": c.project,
85873	})
85874	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85875}
85876
85877// Do executes the "compute.instanceGroups.aggregatedList" call.
85878// Exactly one of *InstanceGroupAggregatedList or error will be non-nil.
85879// Any non-2xx status code is an error. Response headers are in either
85880// *InstanceGroupAggregatedList.ServerResponse.Header or (if a response
85881// was returned at all) in error.(*googleapi.Error).Header. Use
85882// googleapi.IsNotModified to check whether the returned error was
85883// because http.StatusNotModified was returned.
85884func (c *InstanceGroupsAggregatedListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupAggregatedList, error) {
85885	gensupport.SetOptions(c.urlParams_, opts...)
85886	res, err := c.doRequest("json")
85887	if res != nil && res.StatusCode == http.StatusNotModified {
85888		if res.Body != nil {
85889			res.Body.Close()
85890		}
85891		return nil, &googleapi.Error{
85892			Code:   res.StatusCode,
85893			Header: res.Header,
85894		}
85895	}
85896	if err != nil {
85897		return nil, err
85898	}
85899	defer googleapi.CloseBody(res)
85900	if err := googleapi.CheckResponse(res); err != nil {
85901		return nil, err
85902	}
85903	ret := &InstanceGroupAggregatedList{
85904		ServerResponse: googleapi.ServerResponse{
85905			Header:         res.Header,
85906			HTTPStatusCode: res.StatusCode,
85907		},
85908	}
85909	target := &ret
85910	if err := gensupport.DecodeResponse(target, res); err != nil {
85911		return nil, err
85912	}
85913	return ret, nil
85914	// {
85915	//   "description": "Retrieves the list of instance groups and sorts them by zone.",
85916	//   "httpMethod": "GET",
85917	//   "id": "compute.instanceGroups.aggregatedList",
85918	//   "parameterOrder": [
85919	//     "project"
85920	//   ],
85921	//   "parameters": {
85922	//     "filter": {
85923	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
85924	//       "location": "query",
85925	//       "type": "string"
85926	//     },
85927	//     "includeAllScopes": {
85928	//       "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.",
85929	//       "location": "query",
85930	//       "type": "boolean"
85931	//     },
85932	//     "maxResults": {
85933	//       "default": "500",
85934	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
85935	//       "format": "uint32",
85936	//       "location": "query",
85937	//       "minimum": "0",
85938	//       "type": "integer"
85939	//     },
85940	//     "orderBy": {
85941	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
85942	//       "location": "query",
85943	//       "type": "string"
85944	//     },
85945	//     "pageToken": {
85946	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
85947	//       "location": "query",
85948	//       "type": "string"
85949	//     },
85950	//     "project": {
85951	//       "description": "Project ID for this request.",
85952	//       "location": "path",
85953	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85954	//       "required": true,
85955	//       "type": "string"
85956	//     },
85957	//     "returnPartialSuccess": {
85958	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
85959	//       "location": "query",
85960	//       "type": "boolean"
85961	//     }
85962	//   },
85963	//   "path": "projects/{project}/aggregated/instanceGroups",
85964	//   "response": {
85965	//     "$ref": "InstanceGroupAggregatedList"
85966	//   },
85967	//   "scopes": [
85968	//     "https://www.googleapis.com/auth/cloud-platform",
85969	//     "https://www.googleapis.com/auth/compute",
85970	//     "https://www.googleapis.com/auth/compute.readonly"
85971	//   ]
85972	// }
85973
85974}
85975
85976// Pages invokes f for each page of results.
85977// A non-nil error returned from f will halt the iteration.
85978// The provided context supersedes any context provided to the Context method.
85979func (c *InstanceGroupsAggregatedListCall) Pages(ctx context.Context, f func(*InstanceGroupAggregatedList) error) error {
85980	c.ctx_ = ctx
85981	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
85982	for {
85983		x, err := c.Do()
85984		if err != nil {
85985			return err
85986		}
85987		if err := f(x); err != nil {
85988			return err
85989		}
85990		if x.NextPageToken == "" {
85991			return nil
85992		}
85993		c.PageToken(x.NextPageToken)
85994	}
85995}
85996
85997// method id "compute.instanceGroups.delete":
85998
85999type InstanceGroupsDeleteCall struct {
86000	s             *Service
86001	project       string
86002	zone          string
86003	instanceGroup string
86004	urlParams_    gensupport.URLParams
86005	ctx_          context.Context
86006	header_       http.Header
86007}
86008
86009// Delete: Deletes the specified instance group. The instances in the
86010// group are not deleted. Note that instance group must not belong to a
86011// backend service. Read  Deleting an instance group for more
86012// information.
86013func (r *InstanceGroupsService) Delete(project string, zone string, instanceGroup string) *InstanceGroupsDeleteCall {
86014	c := &InstanceGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
86015	c.project = project
86016	c.zone = zone
86017	c.instanceGroup = instanceGroup
86018	return c
86019}
86020
86021// RequestId sets the optional parameter "requestId": An optional
86022// request ID to identify requests. Specify a unique request ID so that
86023// if you must retry your request, the server will know to ignore the
86024// request if it has already been completed.
86025//
86026// For example, consider a situation where you make an initial request
86027// and the request times out. If you make the request again with the
86028// same request ID, the server can check if original operation with the
86029// same request ID was received, and if so, will ignore the second
86030// request. This prevents clients from accidentally creating duplicate
86031// commitments.
86032//
86033// The request ID must be a valid UUID with the exception that zero UUID
86034// is not supported (00000000-0000-0000-0000-000000000000).
86035func (c *InstanceGroupsDeleteCall) RequestId(requestId string) *InstanceGroupsDeleteCall {
86036	c.urlParams_.Set("requestId", requestId)
86037	return c
86038}
86039
86040// Fields allows partial responses to be retrieved. See
86041// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86042// for more information.
86043func (c *InstanceGroupsDeleteCall) Fields(s ...googleapi.Field) *InstanceGroupsDeleteCall {
86044	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86045	return c
86046}
86047
86048// Context sets the context to be used in this call's Do method. Any
86049// pending HTTP request will be aborted if the provided context is
86050// canceled.
86051func (c *InstanceGroupsDeleteCall) Context(ctx context.Context) *InstanceGroupsDeleteCall {
86052	c.ctx_ = ctx
86053	return c
86054}
86055
86056// Header returns an http.Header that can be modified by the caller to
86057// add HTTP headers to the request.
86058func (c *InstanceGroupsDeleteCall) Header() http.Header {
86059	if c.header_ == nil {
86060		c.header_ = make(http.Header)
86061	}
86062	return c.header_
86063}
86064
86065func (c *InstanceGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
86066	reqHeaders := make(http.Header)
86067	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
86068	for k, v := range c.header_ {
86069		reqHeaders[k] = v
86070	}
86071	reqHeaders.Set("User-Agent", c.s.userAgent())
86072	var body io.Reader = nil
86073	c.urlParams_.Set("alt", alt)
86074	c.urlParams_.Set("prettyPrint", "false")
86075	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}")
86076	urls += "?" + c.urlParams_.Encode()
86077	req, err := http.NewRequest("DELETE", urls, body)
86078	if err != nil {
86079		return nil, err
86080	}
86081	req.Header = reqHeaders
86082	googleapi.Expand(req.URL, map[string]string{
86083		"project":       c.project,
86084		"zone":          c.zone,
86085		"instanceGroup": c.instanceGroup,
86086	})
86087	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86088}
86089
86090// Do executes the "compute.instanceGroups.delete" call.
86091// Exactly one of *Operation or error will be non-nil. Any non-2xx
86092// status code is an error. Response headers are in either
86093// *Operation.ServerResponse.Header or (if a response was returned at
86094// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
86095// to check whether the returned error was because
86096// http.StatusNotModified was returned.
86097func (c *InstanceGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
86098	gensupport.SetOptions(c.urlParams_, opts...)
86099	res, err := c.doRequest("json")
86100	if res != nil && res.StatusCode == http.StatusNotModified {
86101		if res.Body != nil {
86102			res.Body.Close()
86103		}
86104		return nil, &googleapi.Error{
86105			Code:   res.StatusCode,
86106			Header: res.Header,
86107		}
86108	}
86109	if err != nil {
86110		return nil, err
86111	}
86112	defer googleapi.CloseBody(res)
86113	if err := googleapi.CheckResponse(res); err != nil {
86114		return nil, err
86115	}
86116	ret := &Operation{
86117		ServerResponse: googleapi.ServerResponse{
86118			Header:         res.Header,
86119			HTTPStatusCode: res.StatusCode,
86120		},
86121	}
86122	target := &ret
86123	if err := gensupport.DecodeResponse(target, res); err != nil {
86124		return nil, err
86125	}
86126	return ret, nil
86127	// {
86128	//   "description": "Deletes the specified instance group. The instances in the group are not deleted. Note that instance group must not belong to a backend service. Read  Deleting an instance group for more information.",
86129	//   "httpMethod": "DELETE",
86130	//   "id": "compute.instanceGroups.delete",
86131	//   "parameterOrder": [
86132	//     "project",
86133	//     "zone",
86134	//     "instanceGroup"
86135	//   ],
86136	//   "parameters": {
86137	//     "instanceGroup": {
86138	//       "description": "The name of the instance group to delete.",
86139	//       "location": "path",
86140	//       "required": true,
86141	//       "type": "string"
86142	//     },
86143	//     "project": {
86144	//       "description": "Project ID for this request.",
86145	//       "location": "path",
86146	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86147	//       "required": true,
86148	//       "type": "string"
86149	//     },
86150	//     "requestId": {
86151	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
86152	//       "location": "query",
86153	//       "type": "string"
86154	//     },
86155	//     "zone": {
86156	//       "description": "The name of the zone where the instance group is located.",
86157	//       "location": "path",
86158	//       "required": true,
86159	//       "type": "string"
86160	//     }
86161	//   },
86162	//   "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}",
86163	//   "response": {
86164	//     "$ref": "Operation"
86165	//   },
86166	//   "scopes": [
86167	//     "https://www.googleapis.com/auth/cloud-platform",
86168	//     "https://www.googleapis.com/auth/compute"
86169	//   ]
86170	// }
86171
86172}
86173
86174// method id "compute.instanceGroups.get":
86175
86176type InstanceGroupsGetCall struct {
86177	s             *Service
86178	project       string
86179	zone          string
86180	instanceGroup string
86181	urlParams_    gensupport.URLParams
86182	ifNoneMatch_  string
86183	ctx_          context.Context
86184	header_       http.Header
86185}
86186
86187// Get: Returns the specified zonal instance group. Get a list of
86188// available zonal instance groups by making a list() request.
86189//
86190// For managed instance groups, use the instanceGroupManagers or
86191// regionInstanceGroupManagers methods instead.
86192func (r *InstanceGroupsService) Get(project string, zone string, instanceGroup string) *InstanceGroupsGetCall {
86193	c := &InstanceGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
86194	c.project = project
86195	c.zone = zone
86196	c.instanceGroup = instanceGroup
86197	return c
86198}
86199
86200// Fields allows partial responses to be retrieved. See
86201// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86202// for more information.
86203func (c *InstanceGroupsGetCall) Fields(s ...googleapi.Field) *InstanceGroupsGetCall {
86204	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86205	return c
86206}
86207
86208// IfNoneMatch sets the optional parameter which makes the operation
86209// fail if the object's ETag matches the given value. This is useful for
86210// getting updates only after the object has changed since the last
86211// request. Use googleapi.IsNotModified to check whether the response
86212// error from Do is the result of In-None-Match.
86213func (c *InstanceGroupsGetCall) IfNoneMatch(entityTag string) *InstanceGroupsGetCall {
86214	c.ifNoneMatch_ = entityTag
86215	return c
86216}
86217
86218// Context sets the context to be used in this call's Do method. Any
86219// pending HTTP request will be aborted if the provided context is
86220// canceled.
86221func (c *InstanceGroupsGetCall) Context(ctx context.Context) *InstanceGroupsGetCall {
86222	c.ctx_ = ctx
86223	return c
86224}
86225
86226// Header returns an http.Header that can be modified by the caller to
86227// add HTTP headers to the request.
86228func (c *InstanceGroupsGetCall) Header() http.Header {
86229	if c.header_ == nil {
86230		c.header_ = make(http.Header)
86231	}
86232	return c.header_
86233}
86234
86235func (c *InstanceGroupsGetCall) doRequest(alt string) (*http.Response, error) {
86236	reqHeaders := make(http.Header)
86237	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
86238	for k, v := range c.header_ {
86239		reqHeaders[k] = v
86240	}
86241	reqHeaders.Set("User-Agent", c.s.userAgent())
86242	if c.ifNoneMatch_ != "" {
86243		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
86244	}
86245	var body io.Reader = nil
86246	c.urlParams_.Set("alt", alt)
86247	c.urlParams_.Set("prettyPrint", "false")
86248	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}")
86249	urls += "?" + c.urlParams_.Encode()
86250	req, err := http.NewRequest("GET", urls, body)
86251	if err != nil {
86252		return nil, err
86253	}
86254	req.Header = reqHeaders
86255	googleapi.Expand(req.URL, map[string]string{
86256		"project":       c.project,
86257		"zone":          c.zone,
86258		"instanceGroup": c.instanceGroup,
86259	})
86260	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86261}
86262
86263// Do executes the "compute.instanceGroups.get" call.
86264// Exactly one of *InstanceGroup or error will be non-nil. Any non-2xx
86265// status code is an error. Response headers are in either
86266// *InstanceGroup.ServerResponse.Header or (if a response was returned
86267// at all) in error.(*googleapi.Error).Header. Use
86268// googleapi.IsNotModified to check whether the returned error was
86269// because http.StatusNotModified was returned.
86270func (c *InstanceGroupsGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroup, error) {
86271	gensupport.SetOptions(c.urlParams_, opts...)
86272	res, err := c.doRequest("json")
86273	if res != nil && res.StatusCode == http.StatusNotModified {
86274		if res.Body != nil {
86275			res.Body.Close()
86276		}
86277		return nil, &googleapi.Error{
86278			Code:   res.StatusCode,
86279			Header: res.Header,
86280		}
86281	}
86282	if err != nil {
86283		return nil, err
86284	}
86285	defer googleapi.CloseBody(res)
86286	if err := googleapi.CheckResponse(res); err != nil {
86287		return nil, err
86288	}
86289	ret := &InstanceGroup{
86290		ServerResponse: googleapi.ServerResponse{
86291			Header:         res.Header,
86292			HTTPStatusCode: res.StatusCode,
86293		},
86294	}
86295	target := &ret
86296	if err := gensupport.DecodeResponse(target, res); err != nil {
86297		return nil, err
86298	}
86299	return ret, nil
86300	// {
86301	//   "description": "Returns the specified zonal instance group. Get a list of available zonal instance groups by making a list() request.\n\nFor managed instance groups, use the instanceGroupManagers or regionInstanceGroupManagers methods instead.",
86302	//   "httpMethod": "GET",
86303	//   "id": "compute.instanceGroups.get",
86304	//   "parameterOrder": [
86305	//     "project",
86306	//     "zone",
86307	//     "instanceGroup"
86308	//   ],
86309	//   "parameters": {
86310	//     "instanceGroup": {
86311	//       "description": "The name of the instance group.",
86312	//       "location": "path",
86313	//       "required": true,
86314	//       "type": "string"
86315	//     },
86316	//     "project": {
86317	//       "description": "Project ID for this request.",
86318	//       "location": "path",
86319	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86320	//       "required": true,
86321	//       "type": "string"
86322	//     },
86323	//     "zone": {
86324	//       "description": "The name of the zone where the instance group is located.",
86325	//       "location": "path",
86326	//       "required": true,
86327	//       "type": "string"
86328	//     }
86329	//   },
86330	//   "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}",
86331	//   "response": {
86332	//     "$ref": "InstanceGroup"
86333	//   },
86334	//   "scopes": [
86335	//     "https://www.googleapis.com/auth/cloud-platform",
86336	//     "https://www.googleapis.com/auth/compute",
86337	//     "https://www.googleapis.com/auth/compute.readonly"
86338	//   ]
86339	// }
86340
86341}
86342
86343// method id "compute.instanceGroups.insert":
86344
86345type InstanceGroupsInsertCall struct {
86346	s             *Service
86347	project       string
86348	zone          string
86349	instancegroup *InstanceGroup
86350	urlParams_    gensupport.URLParams
86351	ctx_          context.Context
86352	header_       http.Header
86353}
86354
86355// Insert: Creates an instance group in the specified project using the
86356// parameters that are included in the request.
86357func (r *InstanceGroupsService) Insert(project string, zone string, instancegroup *InstanceGroup) *InstanceGroupsInsertCall {
86358	c := &InstanceGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
86359	c.project = project
86360	c.zone = zone
86361	c.instancegroup = instancegroup
86362	return c
86363}
86364
86365// RequestId sets the optional parameter "requestId": An optional
86366// request ID to identify requests. Specify a unique request ID so that
86367// if you must retry your request, the server will know to ignore the
86368// request if it has already been completed.
86369//
86370// For example, consider a situation where you make an initial request
86371// and the request times out. If you make the request again with the
86372// same request ID, the server can check if original operation with the
86373// same request ID was received, and if so, will ignore the second
86374// request. This prevents clients from accidentally creating duplicate
86375// commitments.
86376//
86377// The request ID must be a valid UUID with the exception that zero UUID
86378// is not supported (00000000-0000-0000-0000-000000000000).
86379func (c *InstanceGroupsInsertCall) RequestId(requestId string) *InstanceGroupsInsertCall {
86380	c.urlParams_.Set("requestId", requestId)
86381	return c
86382}
86383
86384// Fields allows partial responses to be retrieved. See
86385// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86386// for more information.
86387func (c *InstanceGroupsInsertCall) Fields(s ...googleapi.Field) *InstanceGroupsInsertCall {
86388	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86389	return c
86390}
86391
86392// Context sets the context to be used in this call's Do method. Any
86393// pending HTTP request will be aborted if the provided context is
86394// canceled.
86395func (c *InstanceGroupsInsertCall) Context(ctx context.Context) *InstanceGroupsInsertCall {
86396	c.ctx_ = ctx
86397	return c
86398}
86399
86400// Header returns an http.Header that can be modified by the caller to
86401// add HTTP headers to the request.
86402func (c *InstanceGroupsInsertCall) Header() http.Header {
86403	if c.header_ == nil {
86404		c.header_ = make(http.Header)
86405	}
86406	return c.header_
86407}
86408
86409func (c *InstanceGroupsInsertCall) doRequest(alt string) (*http.Response, error) {
86410	reqHeaders := make(http.Header)
86411	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
86412	for k, v := range c.header_ {
86413		reqHeaders[k] = v
86414	}
86415	reqHeaders.Set("User-Agent", c.s.userAgent())
86416	var body io.Reader = nil
86417	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroup)
86418	if err != nil {
86419		return nil, err
86420	}
86421	reqHeaders.Set("Content-Type", "application/json")
86422	c.urlParams_.Set("alt", alt)
86423	c.urlParams_.Set("prettyPrint", "false")
86424	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups")
86425	urls += "?" + c.urlParams_.Encode()
86426	req, err := http.NewRequest("POST", urls, body)
86427	if err != nil {
86428		return nil, err
86429	}
86430	req.Header = reqHeaders
86431	googleapi.Expand(req.URL, map[string]string{
86432		"project": c.project,
86433		"zone":    c.zone,
86434	})
86435	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86436}
86437
86438// Do executes the "compute.instanceGroups.insert" call.
86439// Exactly one of *Operation or error will be non-nil. Any non-2xx
86440// status code is an error. Response headers are in either
86441// *Operation.ServerResponse.Header or (if a response was returned at
86442// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
86443// to check whether the returned error was because
86444// http.StatusNotModified was returned.
86445func (c *InstanceGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
86446	gensupport.SetOptions(c.urlParams_, opts...)
86447	res, err := c.doRequest("json")
86448	if res != nil && res.StatusCode == http.StatusNotModified {
86449		if res.Body != nil {
86450			res.Body.Close()
86451		}
86452		return nil, &googleapi.Error{
86453			Code:   res.StatusCode,
86454			Header: res.Header,
86455		}
86456	}
86457	if err != nil {
86458		return nil, err
86459	}
86460	defer googleapi.CloseBody(res)
86461	if err := googleapi.CheckResponse(res); err != nil {
86462		return nil, err
86463	}
86464	ret := &Operation{
86465		ServerResponse: googleapi.ServerResponse{
86466			Header:         res.Header,
86467			HTTPStatusCode: res.StatusCode,
86468		},
86469	}
86470	target := &ret
86471	if err := gensupport.DecodeResponse(target, res); err != nil {
86472		return nil, err
86473	}
86474	return ret, nil
86475	// {
86476	//   "description": "Creates an instance group in the specified project using the parameters that are included in the request.",
86477	//   "httpMethod": "POST",
86478	//   "id": "compute.instanceGroups.insert",
86479	//   "parameterOrder": [
86480	//     "project",
86481	//     "zone"
86482	//   ],
86483	//   "parameters": {
86484	//     "project": {
86485	//       "description": "Project ID for this request.",
86486	//       "location": "path",
86487	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86488	//       "required": true,
86489	//       "type": "string"
86490	//     },
86491	//     "requestId": {
86492	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
86493	//       "location": "query",
86494	//       "type": "string"
86495	//     },
86496	//     "zone": {
86497	//       "description": "The name of the zone where you want to create the instance group.",
86498	//       "location": "path",
86499	//       "required": true,
86500	//       "type": "string"
86501	//     }
86502	//   },
86503	//   "path": "projects/{project}/zones/{zone}/instanceGroups",
86504	//   "request": {
86505	//     "$ref": "InstanceGroup"
86506	//   },
86507	//   "response": {
86508	//     "$ref": "Operation"
86509	//   },
86510	//   "scopes": [
86511	//     "https://www.googleapis.com/auth/cloud-platform",
86512	//     "https://www.googleapis.com/auth/compute"
86513	//   ]
86514	// }
86515
86516}
86517
86518// method id "compute.instanceGroups.list":
86519
86520type InstanceGroupsListCall struct {
86521	s            *Service
86522	project      string
86523	zone         string
86524	urlParams_   gensupport.URLParams
86525	ifNoneMatch_ string
86526	ctx_         context.Context
86527	header_      http.Header
86528}
86529
86530// List: Retrieves the list of zonal instance group resources contained
86531// within the specified zone.
86532//
86533// For managed instance groups, use the instanceGroupManagers or
86534// regionInstanceGroupManagers methods instead.
86535func (r *InstanceGroupsService) List(project string, zone string) *InstanceGroupsListCall {
86536	c := &InstanceGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
86537	c.project = project
86538	c.zone = zone
86539	return c
86540}
86541
86542// Filter sets the optional parameter "filter": A filter expression that
86543// filters resources listed in the response. The expression must specify
86544// the field name, a comparison operator, and the value that you want to
86545// use for filtering. The value must be a string, a number, or a
86546// boolean. The comparison operator must be either `=`, `!=`, `>`, or
86547// `<`.
86548//
86549// For example, if you are filtering Compute Engine instances, you can
86550// exclude instances named `example-instance` by specifying `name !=
86551// example-instance`.
86552//
86553// You can also filter nested fields. For example, you could specify
86554// `scheduling.automaticRestart = false` to include instances only if
86555// they are not scheduled for automatic restarts. You can use filtering
86556// on nested fields to filter based on resource labels.
86557//
86558// To filter on multiple expressions, provide each separate expression
86559// within parentheses. For example: ``` (scheduling.automaticRestart =
86560// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
86561// is an `AND` expression. However, you can include `AND` and `OR`
86562// expressions explicitly. For example: ``` (cpuPlatform = "Intel
86563// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
86564// (scheduling.automaticRestart = true) ```
86565func (c *InstanceGroupsListCall) Filter(filter string) *InstanceGroupsListCall {
86566	c.urlParams_.Set("filter", filter)
86567	return c
86568}
86569
86570// MaxResults sets the optional parameter "maxResults": The maximum
86571// number of results per page that should be returned. If the number of
86572// available results is larger than `maxResults`, Compute Engine returns
86573// a `nextPageToken` that can be used to get the next page of results in
86574// subsequent list requests. Acceptable values are `0` to `500`,
86575// inclusive. (Default: `500`)
86576func (c *InstanceGroupsListCall) MaxResults(maxResults int64) *InstanceGroupsListCall {
86577	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
86578	return c
86579}
86580
86581// OrderBy sets the optional parameter "orderBy": Sorts list results by
86582// a certain order. By default, results are returned in alphanumerical
86583// order based on the resource name.
86584//
86585// You can also sort results in descending order based on the creation
86586// timestamp using `orderBy="creationTimestamp desc". This sorts
86587// results based on the `creationTimestamp` field in reverse
86588// chronological order (newest result first). Use this to sort resources
86589// like operations so that the newest operation is returned
86590// first.
86591//
86592// Currently, only sorting by `name` or `creationTimestamp desc` is
86593// supported.
86594func (c *InstanceGroupsListCall) OrderBy(orderBy string) *InstanceGroupsListCall {
86595	c.urlParams_.Set("orderBy", orderBy)
86596	return c
86597}
86598
86599// PageToken sets the optional parameter "pageToken": Specifies a page
86600// token to use. Set `pageToken` to the `nextPageToken` returned by a
86601// previous list request to get the next page of results.
86602func (c *InstanceGroupsListCall) PageToken(pageToken string) *InstanceGroupsListCall {
86603	c.urlParams_.Set("pageToken", pageToken)
86604	return c
86605}
86606
86607// ReturnPartialSuccess sets the optional parameter
86608// "returnPartialSuccess": Opt-in for partial success behavior which
86609// provides partial results in case of failure. The default value is
86610// false.
86611func (c *InstanceGroupsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupsListCall {
86612	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
86613	return c
86614}
86615
86616// Fields allows partial responses to be retrieved. See
86617// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86618// for more information.
86619func (c *InstanceGroupsListCall) Fields(s ...googleapi.Field) *InstanceGroupsListCall {
86620	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86621	return c
86622}
86623
86624// IfNoneMatch sets the optional parameter which makes the operation
86625// fail if the object's ETag matches the given value. This is useful for
86626// getting updates only after the object has changed since the last
86627// request. Use googleapi.IsNotModified to check whether the response
86628// error from Do is the result of In-None-Match.
86629func (c *InstanceGroupsListCall) IfNoneMatch(entityTag string) *InstanceGroupsListCall {
86630	c.ifNoneMatch_ = entityTag
86631	return c
86632}
86633
86634// Context sets the context to be used in this call's Do method. Any
86635// pending HTTP request will be aborted if the provided context is
86636// canceled.
86637func (c *InstanceGroupsListCall) Context(ctx context.Context) *InstanceGroupsListCall {
86638	c.ctx_ = ctx
86639	return c
86640}
86641
86642// Header returns an http.Header that can be modified by the caller to
86643// add HTTP headers to the request.
86644func (c *InstanceGroupsListCall) Header() http.Header {
86645	if c.header_ == nil {
86646		c.header_ = make(http.Header)
86647	}
86648	return c.header_
86649}
86650
86651func (c *InstanceGroupsListCall) doRequest(alt string) (*http.Response, error) {
86652	reqHeaders := make(http.Header)
86653	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
86654	for k, v := range c.header_ {
86655		reqHeaders[k] = v
86656	}
86657	reqHeaders.Set("User-Agent", c.s.userAgent())
86658	if c.ifNoneMatch_ != "" {
86659		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
86660	}
86661	var body io.Reader = nil
86662	c.urlParams_.Set("alt", alt)
86663	c.urlParams_.Set("prettyPrint", "false")
86664	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups")
86665	urls += "?" + c.urlParams_.Encode()
86666	req, err := http.NewRequest("GET", urls, body)
86667	if err != nil {
86668		return nil, err
86669	}
86670	req.Header = reqHeaders
86671	googleapi.Expand(req.URL, map[string]string{
86672		"project": c.project,
86673		"zone":    c.zone,
86674	})
86675	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86676}
86677
86678// Do executes the "compute.instanceGroups.list" call.
86679// Exactly one of *InstanceGroupList or error will be non-nil. Any
86680// non-2xx status code is an error. Response headers are in either
86681// *InstanceGroupList.ServerResponse.Header or (if a response was
86682// returned at all) in error.(*googleapi.Error).Header. Use
86683// googleapi.IsNotModified to check whether the returned error was
86684// because http.StatusNotModified was returned.
86685func (c *InstanceGroupsListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupList, error) {
86686	gensupport.SetOptions(c.urlParams_, opts...)
86687	res, err := c.doRequest("json")
86688	if res != nil && res.StatusCode == http.StatusNotModified {
86689		if res.Body != nil {
86690			res.Body.Close()
86691		}
86692		return nil, &googleapi.Error{
86693			Code:   res.StatusCode,
86694			Header: res.Header,
86695		}
86696	}
86697	if err != nil {
86698		return nil, err
86699	}
86700	defer googleapi.CloseBody(res)
86701	if err := googleapi.CheckResponse(res); err != nil {
86702		return nil, err
86703	}
86704	ret := &InstanceGroupList{
86705		ServerResponse: googleapi.ServerResponse{
86706			Header:         res.Header,
86707			HTTPStatusCode: res.StatusCode,
86708		},
86709	}
86710	target := &ret
86711	if err := gensupport.DecodeResponse(target, res); err != nil {
86712		return nil, err
86713	}
86714	return ret, nil
86715	// {
86716	//   "description": "Retrieves the list of zonal instance group resources contained within the specified zone.\n\nFor managed instance groups, use the instanceGroupManagers or regionInstanceGroupManagers methods instead.",
86717	//   "httpMethod": "GET",
86718	//   "id": "compute.instanceGroups.list",
86719	//   "parameterOrder": [
86720	//     "project",
86721	//     "zone"
86722	//   ],
86723	//   "parameters": {
86724	//     "filter": {
86725	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
86726	//       "location": "query",
86727	//       "type": "string"
86728	//     },
86729	//     "maxResults": {
86730	//       "default": "500",
86731	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
86732	//       "format": "uint32",
86733	//       "location": "query",
86734	//       "minimum": "0",
86735	//       "type": "integer"
86736	//     },
86737	//     "orderBy": {
86738	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
86739	//       "location": "query",
86740	//       "type": "string"
86741	//     },
86742	//     "pageToken": {
86743	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
86744	//       "location": "query",
86745	//       "type": "string"
86746	//     },
86747	//     "project": {
86748	//       "description": "Project ID for this request.",
86749	//       "location": "path",
86750	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86751	//       "required": true,
86752	//       "type": "string"
86753	//     },
86754	//     "returnPartialSuccess": {
86755	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
86756	//       "location": "query",
86757	//       "type": "boolean"
86758	//     },
86759	//     "zone": {
86760	//       "description": "The name of the zone where the instance group is located.",
86761	//       "location": "path",
86762	//       "required": true,
86763	//       "type": "string"
86764	//     }
86765	//   },
86766	//   "path": "projects/{project}/zones/{zone}/instanceGroups",
86767	//   "response": {
86768	//     "$ref": "InstanceGroupList"
86769	//   },
86770	//   "scopes": [
86771	//     "https://www.googleapis.com/auth/cloud-platform",
86772	//     "https://www.googleapis.com/auth/compute",
86773	//     "https://www.googleapis.com/auth/compute.readonly"
86774	//   ]
86775	// }
86776
86777}
86778
86779// Pages invokes f for each page of results.
86780// A non-nil error returned from f will halt the iteration.
86781// The provided context supersedes any context provided to the Context method.
86782func (c *InstanceGroupsListCall) Pages(ctx context.Context, f func(*InstanceGroupList) error) error {
86783	c.ctx_ = ctx
86784	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
86785	for {
86786		x, err := c.Do()
86787		if err != nil {
86788			return err
86789		}
86790		if err := f(x); err != nil {
86791			return err
86792		}
86793		if x.NextPageToken == "" {
86794			return nil
86795		}
86796		c.PageToken(x.NextPageToken)
86797	}
86798}
86799
86800// method id "compute.instanceGroups.listInstances":
86801
86802type InstanceGroupsListInstancesCall struct {
86803	s                                  *Service
86804	project                            string
86805	zone                               string
86806	instanceGroup                      string
86807	instancegroupslistinstancesrequest *InstanceGroupsListInstancesRequest
86808	urlParams_                         gensupport.URLParams
86809	ctx_                               context.Context
86810	header_                            http.Header
86811}
86812
86813// ListInstances: Lists the instances in the specified instance group.
86814// The orderBy query parameter is not supported.
86815func (r *InstanceGroupsService) ListInstances(project string, zone string, instanceGroup string, instancegroupslistinstancesrequest *InstanceGroupsListInstancesRequest) *InstanceGroupsListInstancesCall {
86816	c := &InstanceGroupsListInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
86817	c.project = project
86818	c.zone = zone
86819	c.instanceGroup = instanceGroup
86820	c.instancegroupslistinstancesrequest = instancegroupslistinstancesrequest
86821	return c
86822}
86823
86824// Filter sets the optional parameter "filter": A filter expression that
86825// filters resources listed in the response. The expression must specify
86826// the field name, a comparison operator, and the value that you want to
86827// use for filtering. The value must be a string, a number, or a
86828// boolean. The comparison operator must be either `=`, `!=`, `>`, or
86829// `<`.
86830//
86831// For example, if you are filtering Compute Engine instances, you can
86832// exclude instances named `example-instance` by specifying `name !=
86833// example-instance`.
86834//
86835// You can also filter nested fields. For example, you could specify
86836// `scheduling.automaticRestart = false` to include instances only if
86837// they are not scheduled for automatic restarts. You can use filtering
86838// on nested fields to filter based on resource labels.
86839//
86840// To filter on multiple expressions, provide each separate expression
86841// within parentheses. For example: ``` (scheduling.automaticRestart =
86842// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
86843// is an `AND` expression. However, you can include `AND` and `OR`
86844// expressions explicitly. For example: ``` (cpuPlatform = "Intel
86845// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
86846// (scheduling.automaticRestart = true) ```
86847func (c *InstanceGroupsListInstancesCall) Filter(filter string) *InstanceGroupsListInstancesCall {
86848	c.urlParams_.Set("filter", filter)
86849	return c
86850}
86851
86852// MaxResults sets the optional parameter "maxResults": The maximum
86853// number of results per page that should be returned. If the number of
86854// available results is larger than `maxResults`, Compute Engine returns
86855// a `nextPageToken` that can be used to get the next page of results in
86856// subsequent list requests. Acceptable values are `0` to `500`,
86857// inclusive. (Default: `500`)
86858func (c *InstanceGroupsListInstancesCall) MaxResults(maxResults int64) *InstanceGroupsListInstancesCall {
86859	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
86860	return c
86861}
86862
86863// OrderBy sets the optional parameter "orderBy": Sorts list results by
86864// a certain order. By default, results are returned in alphanumerical
86865// order based on the resource name.
86866//
86867// You can also sort results in descending order based on the creation
86868// timestamp using `orderBy="creationTimestamp desc". This sorts
86869// results based on the `creationTimestamp` field in reverse
86870// chronological order (newest result first). Use this to sort resources
86871// like operations so that the newest operation is returned
86872// first.
86873//
86874// Currently, only sorting by `name` or `creationTimestamp desc` is
86875// supported.
86876func (c *InstanceGroupsListInstancesCall) OrderBy(orderBy string) *InstanceGroupsListInstancesCall {
86877	c.urlParams_.Set("orderBy", orderBy)
86878	return c
86879}
86880
86881// PageToken sets the optional parameter "pageToken": Specifies a page
86882// token to use. Set `pageToken` to the `nextPageToken` returned by a
86883// previous list request to get the next page of results.
86884func (c *InstanceGroupsListInstancesCall) PageToken(pageToken string) *InstanceGroupsListInstancesCall {
86885	c.urlParams_.Set("pageToken", pageToken)
86886	return c
86887}
86888
86889// ReturnPartialSuccess sets the optional parameter
86890// "returnPartialSuccess": Opt-in for partial success behavior which
86891// provides partial results in case of failure. The default value is
86892// false.
86893func (c *InstanceGroupsListInstancesCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupsListInstancesCall {
86894	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
86895	return c
86896}
86897
86898// Fields allows partial responses to be retrieved. See
86899// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86900// for more information.
86901func (c *InstanceGroupsListInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupsListInstancesCall {
86902	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86903	return c
86904}
86905
86906// Context sets the context to be used in this call's Do method. Any
86907// pending HTTP request will be aborted if the provided context is
86908// canceled.
86909func (c *InstanceGroupsListInstancesCall) Context(ctx context.Context) *InstanceGroupsListInstancesCall {
86910	c.ctx_ = ctx
86911	return c
86912}
86913
86914// Header returns an http.Header that can be modified by the caller to
86915// add HTTP headers to the request.
86916func (c *InstanceGroupsListInstancesCall) Header() http.Header {
86917	if c.header_ == nil {
86918		c.header_ = make(http.Header)
86919	}
86920	return c.header_
86921}
86922
86923func (c *InstanceGroupsListInstancesCall) doRequest(alt string) (*http.Response, error) {
86924	reqHeaders := make(http.Header)
86925	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
86926	for k, v := range c.header_ {
86927		reqHeaders[k] = v
86928	}
86929	reqHeaders.Set("User-Agent", c.s.userAgent())
86930	var body io.Reader = nil
86931	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupslistinstancesrequest)
86932	if err != nil {
86933		return nil, err
86934	}
86935	reqHeaders.Set("Content-Type", "application/json")
86936	c.urlParams_.Set("alt", alt)
86937	c.urlParams_.Set("prettyPrint", "false")
86938	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/listInstances")
86939	urls += "?" + c.urlParams_.Encode()
86940	req, err := http.NewRequest("POST", urls, body)
86941	if err != nil {
86942		return nil, err
86943	}
86944	req.Header = reqHeaders
86945	googleapi.Expand(req.URL, map[string]string{
86946		"project":       c.project,
86947		"zone":          c.zone,
86948		"instanceGroup": c.instanceGroup,
86949	})
86950	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86951}
86952
86953// Do executes the "compute.instanceGroups.listInstances" call.
86954// Exactly one of *InstanceGroupsListInstances or error will be non-nil.
86955// Any non-2xx status code is an error. Response headers are in either
86956// *InstanceGroupsListInstances.ServerResponse.Header or (if a response
86957// was returned at all) in error.(*googleapi.Error).Header. Use
86958// googleapi.IsNotModified to check whether the returned error was
86959// because http.StatusNotModified was returned.
86960func (c *InstanceGroupsListInstancesCall) Do(opts ...googleapi.CallOption) (*InstanceGroupsListInstances, error) {
86961	gensupport.SetOptions(c.urlParams_, opts...)
86962	res, err := c.doRequest("json")
86963	if res != nil && res.StatusCode == http.StatusNotModified {
86964		if res.Body != nil {
86965			res.Body.Close()
86966		}
86967		return nil, &googleapi.Error{
86968			Code:   res.StatusCode,
86969			Header: res.Header,
86970		}
86971	}
86972	if err != nil {
86973		return nil, err
86974	}
86975	defer googleapi.CloseBody(res)
86976	if err := googleapi.CheckResponse(res); err != nil {
86977		return nil, err
86978	}
86979	ret := &InstanceGroupsListInstances{
86980		ServerResponse: googleapi.ServerResponse{
86981			Header:         res.Header,
86982			HTTPStatusCode: res.StatusCode,
86983		},
86984	}
86985	target := &ret
86986	if err := gensupport.DecodeResponse(target, res); err != nil {
86987		return nil, err
86988	}
86989	return ret, nil
86990	// {
86991	//   "description": "Lists the instances in the specified instance group. The orderBy query parameter is not supported.",
86992	//   "httpMethod": "POST",
86993	//   "id": "compute.instanceGroups.listInstances",
86994	//   "parameterOrder": [
86995	//     "project",
86996	//     "zone",
86997	//     "instanceGroup"
86998	//   ],
86999	//   "parameters": {
87000	//     "filter": {
87001	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
87002	//       "location": "query",
87003	//       "type": "string"
87004	//     },
87005	//     "instanceGroup": {
87006	//       "description": "The name of the instance group from which you want to generate a list of included instances.",
87007	//       "location": "path",
87008	//       "required": true,
87009	//       "type": "string"
87010	//     },
87011	//     "maxResults": {
87012	//       "default": "500",
87013	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
87014	//       "format": "uint32",
87015	//       "location": "query",
87016	//       "minimum": "0",
87017	//       "type": "integer"
87018	//     },
87019	//     "orderBy": {
87020	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
87021	//       "location": "query",
87022	//       "type": "string"
87023	//     },
87024	//     "pageToken": {
87025	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
87026	//       "location": "query",
87027	//       "type": "string"
87028	//     },
87029	//     "project": {
87030	//       "description": "Project ID for this request.",
87031	//       "location": "path",
87032	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87033	//       "required": true,
87034	//       "type": "string"
87035	//     },
87036	//     "returnPartialSuccess": {
87037	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
87038	//       "location": "query",
87039	//       "type": "boolean"
87040	//     },
87041	//     "zone": {
87042	//       "description": "The name of the zone where the instance group is located.",
87043	//       "location": "path",
87044	//       "required": true,
87045	//       "type": "string"
87046	//     }
87047	//   },
87048	//   "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/listInstances",
87049	//   "request": {
87050	//     "$ref": "InstanceGroupsListInstancesRequest"
87051	//   },
87052	//   "response": {
87053	//     "$ref": "InstanceGroupsListInstances"
87054	//   },
87055	//   "scopes": [
87056	//     "https://www.googleapis.com/auth/cloud-platform",
87057	//     "https://www.googleapis.com/auth/compute",
87058	//     "https://www.googleapis.com/auth/compute.readonly"
87059	//   ]
87060	// }
87061
87062}
87063
87064// Pages invokes f for each page of results.
87065// A non-nil error returned from f will halt the iteration.
87066// The provided context supersedes any context provided to the Context method.
87067func (c *InstanceGroupsListInstancesCall) Pages(ctx context.Context, f func(*InstanceGroupsListInstances) error) error {
87068	c.ctx_ = ctx
87069	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
87070	for {
87071		x, err := c.Do()
87072		if err != nil {
87073			return err
87074		}
87075		if err := f(x); err != nil {
87076			return err
87077		}
87078		if x.NextPageToken == "" {
87079			return nil
87080		}
87081		c.PageToken(x.NextPageToken)
87082	}
87083}
87084
87085// method id "compute.instanceGroups.removeInstances":
87086
87087type InstanceGroupsRemoveInstancesCall struct {
87088	s                                    *Service
87089	project                              string
87090	zone                                 string
87091	instanceGroup                        string
87092	instancegroupsremoveinstancesrequest *InstanceGroupsRemoveInstancesRequest
87093	urlParams_                           gensupport.URLParams
87094	ctx_                                 context.Context
87095	header_                              http.Header
87096}
87097
87098// RemoveInstances: Removes one or more instances from the specified
87099// instance group, but does not delete those instances.
87100//
87101// If the group is part of a backend service that has enabled connection
87102// draining, it can take up to 60 seconds after the connection draining
87103// duration before the VM instance is removed or deleted.
87104func (r *InstanceGroupsService) RemoveInstances(project string, zone string, instanceGroup string, instancegroupsremoveinstancesrequest *InstanceGroupsRemoveInstancesRequest) *InstanceGroupsRemoveInstancesCall {
87105	c := &InstanceGroupsRemoveInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87106	c.project = project
87107	c.zone = zone
87108	c.instanceGroup = instanceGroup
87109	c.instancegroupsremoveinstancesrequest = instancegroupsremoveinstancesrequest
87110	return c
87111}
87112
87113// RequestId sets the optional parameter "requestId": An optional
87114// request ID to identify requests. Specify a unique request ID so that
87115// if you must retry your request, the server will know to ignore the
87116// request if it has already been completed.
87117//
87118// For example, consider a situation where you make an initial request
87119// and the request times out. If you make the request again with the
87120// same request ID, the server can check if original operation with the
87121// same request ID was received, and if so, will ignore the second
87122// request. This prevents clients from accidentally creating duplicate
87123// commitments.
87124//
87125// The request ID must be a valid UUID with the exception that zero UUID
87126// is not supported (00000000-0000-0000-0000-000000000000).
87127func (c *InstanceGroupsRemoveInstancesCall) RequestId(requestId string) *InstanceGroupsRemoveInstancesCall {
87128	c.urlParams_.Set("requestId", requestId)
87129	return c
87130}
87131
87132// Fields allows partial responses to be retrieved. See
87133// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87134// for more information.
87135func (c *InstanceGroupsRemoveInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupsRemoveInstancesCall {
87136	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87137	return c
87138}
87139
87140// Context sets the context to be used in this call's Do method. Any
87141// pending HTTP request will be aborted if the provided context is
87142// canceled.
87143func (c *InstanceGroupsRemoveInstancesCall) Context(ctx context.Context) *InstanceGroupsRemoveInstancesCall {
87144	c.ctx_ = ctx
87145	return c
87146}
87147
87148// Header returns an http.Header that can be modified by the caller to
87149// add HTTP headers to the request.
87150func (c *InstanceGroupsRemoveInstancesCall) Header() http.Header {
87151	if c.header_ == nil {
87152		c.header_ = make(http.Header)
87153	}
87154	return c.header_
87155}
87156
87157func (c *InstanceGroupsRemoveInstancesCall) doRequest(alt string) (*http.Response, error) {
87158	reqHeaders := make(http.Header)
87159	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
87160	for k, v := range c.header_ {
87161		reqHeaders[k] = v
87162	}
87163	reqHeaders.Set("User-Agent", c.s.userAgent())
87164	var body io.Reader = nil
87165	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupsremoveinstancesrequest)
87166	if err != nil {
87167		return nil, err
87168	}
87169	reqHeaders.Set("Content-Type", "application/json")
87170	c.urlParams_.Set("alt", alt)
87171	c.urlParams_.Set("prettyPrint", "false")
87172	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/removeInstances")
87173	urls += "?" + c.urlParams_.Encode()
87174	req, err := http.NewRequest("POST", urls, body)
87175	if err != nil {
87176		return nil, err
87177	}
87178	req.Header = reqHeaders
87179	googleapi.Expand(req.URL, map[string]string{
87180		"project":       c.project,
87181		"zone":          c.zone,
87182		"instanceGroup": c.instanceGroup,
87183	})
87184	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87185}
87186
87187// Do executes the "compute.instanceGroups.removeInstances" call.
87188// Exactly one of *Operation or error will be non-nil. Any non-2xx
87189// status code is an error. Response headers are in either
87190// *Operation.ServerResponse.Header or (if a response was returned at
87191// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
87192// to check whether the returned error was because
87193// http.StatusNotModified was returned.
87194func (c *InstanceGroupsRemoveInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
87195	gensupport.SetOptions(c.urlParams_, opts...)
87196	res, err := c.doRequest("json")
87197	if res != nil && res.StatusCode == http.StatusNotModified {
87198		if res.Body != nil {
87199			res.Body.Close()
87200		}
87201		return nil, &googleapi.Error{
87202			Code:   res.StatusCode,
87203			Header: res.Header,
87204		}
87205	}
87206	if err != nil {
87207		return nil, err
87208	}
87209	defer googleapi.CloseBody(res)
87210	if err := googleapi.CheckResponse(res); err != nil {
87211		return nil, err
87212	}
87213	ret := &Operation{
87214		ServerResponse: googleapi.ServerResponse{
87215			Header:         res.Header,
87216			HTTPStatusCode: res.StatusCode,
87217		},
87218	}
87219	target := &ret
87220	if err := gensupport.DecodeResponse(target, res); err != nil {
87221		return nil, err
87222	}
87223	return ret, nil
87224	// {
87225	//   "description": "Removes one or more instances from the specified instance group, but does not delete those instances.\n\nIf the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration before the VM instance is removed or deleted.",
87226	//   "httpMethod": "POST",
87227	//   "id": "compute.instanceGroups.removeInstances",
87228	//   "parameterOrder": [
87229	//     "project",
87230	//     "zone",
87231	//     "instanceGroup"
87232	//   ],
87233	//   "parameters": {
87234	//     "instanceGroup": {
87235	//       "description": "The name of the instance group where the specified instances will be removed.",
87236	//       "location": "path",
87237	//       "required": true,
87238	//       "type": "string"
87239	//     },
87240	//     "project": {
87241	//       "description": "Project ID for this request.",
87242	//       "location": "path",
87243	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87244	//       "required": true,
87245	//       "type": "string"
87246	//     },
87247	//     "requestId": {
87248	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
87249	//       "location": "query",
87250	//       "type": "string"
87251	//     },
87252	//     "zone": {
87253	//       "description": "The name of the zone where the instance group is located.",
87254	//       "location": "path",
87255	//       "required": true,
87256	//       "type": "string"
87257	//     }
87258	//   },
87259	//   "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/removeInstances",
87260	//   "request": {
87261	//     "$ref": "InstanceGroupsRemoveInstancesRequest"
87262	//   },
87263	//   "response": {
87264	//     "$ref": "Operation"
87265	//   },
87266	//   "scopes": [
87267	//     "https://www.googleapis.com/auth/cloud-platform",
87268	//     "https://www.googleapis.com/auth/compute"
87269	//   ]
87270	// }
87271
87272}
87273
87274// method id "compute.instanceGroups.setNamedPorts":
87275
87276type InstanceGroupsSetNamedPortsCall struct {
87277	s                                  *Service
87278	project                            string
87279	zone                               string
87280	instanceGroup                      string
87281	instancegroupssetnamedportsrequest *InstanceGroupsSetNamedPortsRequest
87282	urlParams_                         gensupport.URLParams
87283	ctx_                               context.Context
87284	header_                            http.Header
87285}
87286
87287// SetNamedPorts: Sets the named ports for the specified instance group.
87288func (r *InstanceGroupsService) SetNamedPorts(project string, zone string, instanceGroup string, instancegroupssetnamedportsrequest *InstanceGroupsSetNamedPortsRequest) *InstanceGroupsSetNamedPortsCall {
87289	c := &InstanceGroupsSetNamedPortsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87290	c.project = project
87291	c.zone = zone
87292	c.instanceGroup = instanceGroup
87293	c.instancegroupssetnamedportsrequest = instancegroupssetnamedportsrequest
87294	return c
87295}
87296
87297// RequestId sets the optional parameter "requestId": An optional
87298// request ID to identify requests. Specify a unique request ID so that
87299// if you must retry your request, the server will know to ignore the
87300// request if it has already been completed.
87301//
87302// For example, consider a situation where you make an initial request
87303// and the request times out. If you make the request again with the
87304// same request ID, the server can check if original operation with the
87305// same request ID was received, and if so, will ignore the second
87306// request. This prevents clients from accidentally creating duplicate
87307// commitments.
87308//
87309// The request ID must be a valid UUID with the exception that zero UUID
87310// is not supported (00000000-0000-0000-0000-000000000000).
87311func (c *InstanceGroupsSetNamedPortsCall) RequestId(requestId string) *InstanceGroupsSetNamedPortsCall {
87312	c.urlParams_.Set("requestId", requestId)
87313	return c
87314}
87315
87316// Fields allows partial responses to be retrieved. See
87317// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87318// for more information.
87319func (c *InstanceGroupsSetNamedPortsCall) Fields(s ...googleapi.Field) *InstanceGroupsSetNamedPortsCall {
87320	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87321	return c
87322}
87323
87324// Context sets the context to be used in this call's Do method. Any
87325// pending HTTP request will be aborted if the provided context is
87326// canceled.
87327func (c *InstanceGroupsSetNamedPortsCall) Context(ctx context.Context) *InstanceGroupsSetNamedPortsCall {
87328	c.ctx_ = ctx
87329	return c
87330}
87331
87332// Header returns an http.Header that can be modified by the caller to
87333// add HTTP headers to the request.
87334func (c *InstanceGroupsSetNamedPortsCall) Header() http.Header {
87335	if c.header_ == nil {
87336		c.header_ = make(http.Header)
87337	}
87338	return c.header_
87339}
87340
87341func (c *InstanceGroupsSetNamedPortsCall) doRequest(alt string) (*http.Response, error) {
87342	reqHeaders := make(http.Header)
87343	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
87344	for k, v := range c.header_ {
87345		reqHeaders[k] = v
87346	}
87347	reqHeaders.Set("User-Agent", c.s.userAgent())
87348	var body io.Reader = nil
87349	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupssetnamedportsrequest)
87350	if err != nil {
87351		return nil, err
87352	}
87353	reqHeaders.Set("Content-Type", "application/json")
87354	c.urlParams_.Set("alt", alt)
87355	c.urlParams_.Set("prettyPrint", "false")
87356	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/setNamedPorts")
87357	urls += "?" + c.urlParams_.Encode()
87358	req, err := http.NewRequest("POST", urls, body)
87359	if err != nil {
87360		return nil, err
87361	}
87362	req.Header = reqHeaders
87363	googleapi.Expand(req.URL, map[string]string{
87364		"project":       c.project,
87365		"zone":          c.zone,
87366		"instanceGroup": c.instanceGroup,
87367	})
87368	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87369}
87370
87371// Do executes the "compute.instanceGroups.setNamedPorts" call.
87372// Exactly one of *Operation or error will be non-nil. Any non-2xx
87373// status code is an error. Response headers are in either
87374// *Operation.ServerResponse.Header or (if a response was returned at
87375// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
87376// to check whether the returned error was because
87377// http.StatusNotModified was returned.
87378func (c *InstanceGroupsSetNamedPortsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
87379	gensupport.SetOptions(c.urlParams_, opts...)
87380	res, err := c.doRequest("json")
87381	if res != nil && res.StatusCode == http.StatusNotModified {
87382		if res.Body != nil {
87383			res.Body.Close()
87384		}
87385		return nil, &googleapi.Error{
87386			Code:   res.StatusCode,
87387			Header: res.Header,
87388		}
87389	}
87390	if err != nil {
87391		return nil, err
87392	}
87393	defer googleapi.CloseBody(res)
87394	if err := googleapi.CheckResponse(res); err != nil {
87395		return nil, err
87396	}
87397	ret := &Operation{
87398		ServerResponse: googleapi.ServerResponse{
87399			Header:         res.Header,
87400			HTTPStatusCode: res.StatusCode,
87401		},
87402	}
87403	target := &ret
87404	if err := gensupport.DecodeResponse(target, res); err != nil {
87405		return nil, err
87406	}
87407	return ret, nil
87408	// {
87409	//   "description": "Sets the named ports for the specified instance group.",
87410	//   "httpMethod": "POST",
87411	//   "id": "compute.instanceGroups.setNamedPorts",
87412	//   "parameterOrder": [
87413	//     "project",
87414	//     "zone",
87415	//     "instanceGroup"
87416	//   ],
87417	//   "parameters": {
87418	//     "instanceGroup": {
87419	//       "description": "The name of the instance group where the named ports are updated.",
87420	//       "location": "path",
87421	//       "required": true,
87422	//       "type": "string"
87423	//     },
87424	//     "project": {
87425	//       "description": "Project ID for this request.",
87426	//       "location": "path",
87427	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87428	//       "required": true,
87429	//       "type": "string"
87430	//     },
87431	//     "requestId": {
87432	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
87433	//       "location": "query",
87434	//       "type": "string"
87435	//     },
87436	//     "zone": {
87437	//       "description": "The name of the zone where the instance group is located.",
87438	//       "location": "path",
87439	//       "required": true,
87440	//       "type": "string"
87441	//     }
87442	//   },
87443	//   "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/setNamedPorts",
87444	//   "request": {
87445	//     "$ref": "InstanceGroupsSetNamedPortsRequest"
87446	//   },
87447	//   "response": {
87448	//     "$ref": "Operation"
87449	//   },
87450	//   "scopes": [
87451	//     "https://www.googleapis.com/auth/cloud-platform",
87452	//     "https://www.googleapis.com/auth/compute"
87453	//   ]
87454	// }
87455
87456}
87457
87458// method id "compute.instanceGroups.testIamPermissions":
87459
87460type InstanceGroupsTestIamPermissionsCall struct {
87461	s                      *Service
87462	project                string
87463	zone                   string
87464	resource               string
87465	testpermissionsrequest *TestPermissionsRequest
87466	urlParams_             gensupport.URLParams
87467	ctx_                   context.Context
87468	header_                http.Header
87469}
87470
87471// TestIamPermissions: Returns permissions that a caller has on the
87472// specified resource.
87473func (r *InstanceGroupsService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *InstanceGroupsTestIamPermissionsCall {
87474	c := &InstanceGroupsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87475	c.project = project
87476	c.zone = zone
87477	c.resource = resource
87478	c.testpermissionsrequest = testpermissionsrequest
87479	return c
87480}
87481
87482// Fields allows partial responses to be retrieved. See
87483// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87484// for more information.
87485func (c *InstanceGroupsTestIamPermissionsCall) Fields(s ...googleapi.Field) *InstanceGroupsTestIamPermissionsCall {
87486	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87487	return c
87488}
87489
87490// Context sets the context to be used in this call's Do method. Any
87491// pending HTTP request will be aborted if the provided context is
87492// canceled.
87493func (c *InstanceGroupsTestIamPermissionsCall) Context(ctx context.Context) *InstanceGroupsTestIamPermissionsCall {
87494	c.ctx_ = ctx
87495	return c
87496}
87497
87498// Header returns an http.Header that can be modified by the caller to
87499// add HTTP headers to the request.
87500func (c *InstanceGroupsTestIamPermissionsCall) Header() http.Header {
87501	if c.header_ == nil {
87502		c.header_ = make(http.Header)
87503	}
87504	return c.header_
87505}
87506
87507func (c *InstanceGroupsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
87508	reqHeaders := make(http.Header)
87509	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
87510	for k, v := range c.header_ {
87511		reqHeaders[k] = v
87512	}
87513	reqHeaders.Set("User-Agent", c.s.userAgent())
87514	var body io.Reader = nil
87515	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
87516	if err != nil {
87517		return nil, err
87518	}
87519	reqHeaders.Set("Content-Type", "application/json")
87520	c.urlParams_.Set("alt", alt)
87521	c.urlParams_.Set("prettyPrint", "false")
87522	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups/{resource}/testIamPermissions")
87523	urls += "?" + c.urlParams_.Encode()
87524	req, err := http.NewRequest("POST", urls, body)
87525	if err != nil {
87526		return nil, err
87527	}
87528	req.Header = reqHeaders
87529	googleapi.Expand(req.URL, map[string]string{
87530		"project":  c.project,
87531		"zone":     c.zone,
87532		"resource": c.resource,
87533	})
87534	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87535}
87536
87537// Do executes the "compute.instanceGroups.testIamPermissions" call.
87538// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
87539// non-2xx status code is an error. Response headers are in either
87540// *TestPermissionsResponse.ServerResponse.Header or (if a response was
87541// returned at all) in error.(*googleapi.Error).Header. Use
87542// googleapi.IsNotModified to check whether the returned error was
87543// because http.StatusNotModified was returned.
87544func (c *InstanceGroupsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
87545	gensupport.SetOptions(c.urlParams_, opts...)
87546	res, err := c.doRequest("json")
87547	if res != nil && res.StatusCode == http.StatusNotModified {
87548		if res.Body != nil {
87549			res.Body.Close()
87550		}
87551		return nil, &googleapi.Error{
87552			Code:   res.StatusCode,
87553			Header: res.Header,
87554		}
87555	}
87556	if err != nil {
87557		return nil, err
87558	}
87559	defer googleapi.CloseBody(res)
87560	if err := googleapi.CheckResponse(res); err != nil {
87561		return nil, err
87562	}
87563	ret := &TestPermissionsResponse{
87564		ServerResponse: googleapi.ServerResponse{
87565			Header:         res.Header,
87566			HTTPStatusCode: res.StatusCode,
87567		},
87568	}
87569	target := &ret
87570	if err := gensupport.DecodeResponse(target, res); err != nil {
87571		return nil, err
87572	}
87573	return ret, nil
87574	// {
87575	//   "description": "Returns permissions that a caller has on the specified resource.",
87576	//   "httpMethod": "POST",
87577	//   "id": "compute.instanceGroups.testIamPermissions",
87578	//   "parameterOrder": [
87579	//     "project",
87580	//     "zone",
87581	//     "resource"
87582	//   ],
87583	//   "parameters": {
87584	//     "project": {
87585	//       "description": "Project ID for this request.",
87586	//       "location": "path",
87587	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87588	//       "required": true,
87589	//       "type": "string"
87590	//     },
87591	//     "resource": {
87592	//       "description": "Name or id of the resource for this request.",
87593	//       "location": "path",
87594	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
87595	//       "required": true,
87596	//       "type": "string"
87597	//     },
87598	//     "zone": {
87599	//       "description": "The name of the zone for this request.",
87600	//       "location": "path",
87601	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
87602	//       "required": true,
87603	//       "type": "string"
87604	//     }
87605	//   },
87606	//   "path": "projects/{project}/zones/{zone}/instanceGroups/{resource}/testIamPermissions",
87607	//   "request": {
87608	//     "$ref": "TestPermissionsRequest"
87609	//   },
87610	//   "response": {
87611	//     "$ref": "TestPermissionsResponse"
87612	//   },
87613	//   "scopes": [
87614	//     "https://www.googleapis.com/auth/cloud-platform",
87615	//     "https://www.googleapis.com/auth/compute",
87616	//     "https://www.googleapis.com/auth/compute.readonly"
87617	//   ]
87618	// }
87619
87620}
87621
87622// method id "compute.instanceTemplates.delete":
87623
87624type InstanceTemplatesDeleteCall struct {
87625	s                *Service
87626	project          string
87627	instanceTemplate string
87628	urlParams_       gensupport.URLParams
87629	ctx_             context.Context
87630	header_          http.Header
87631}
87632
87633// Delete: Deletes the specified instance template. Deleting an instance
87634// template is permanent and cannot be undone. It is not possible to
87635// delete templates that are already in use by a managed instance group.
87636// For details, see https://cloud.google.com/compute/docs/reference/latest/instanceTemplates/delete
87637func (r *InstanceTemplatesService) Delete(project string, instanceTemplate string) *InstanceTemplatesDeleteCall {
87638	c := &InstanceTemplatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87639	c.project = project
87640	c.instanceTemplate = instanceTemplate
87641	return c
87642}
87643
87644// RequestId sets the optional parameter "requestId": An optional
87645// request ID to identify requests. Specify a unique request ID so that
87646// if you must retry your request, the server will know to ignore the
87647// request if it has already been completed.
87648//
87649// For example, consider a situation where you make an initial request
87650// and the request times out. If you make the request again with the
87651// same request ID, the server can check if original operation with the
87652// same request ID was received, and if so, will ignore the second
87653// request. This prevents clients from accidentally creating duplicate
87654// commitments.
87655//
87656// The request ID must be a valid UUID with the exception that zero UUID
87657// is not supported (00000000-0000-0000-0000-000000000000).
87658func (c *InstanceTemplatesDeleteCall) RequestId(requestId string) *InstanceTemplatesDeleteCall {
87659	c.urlParams_.Set("requestId", requestId)
87660	return c
87661}
87662
87663// Fields allows partial responses to be retrieved. See
87664// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87665// for more information.
87666func (c *InstanceTemplatesDeleteCall) Fields(s ...googleapi.Field) *InstanceTemplatesDeleteCall {
87667	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87668	return c
87669}
87670
87671// Context sets the context to be used in this call's Do method. Any
87672// pending HTTP request will be aborted if the provided context is
87673// canceled.
87674func (c *InstanceTemplatesDeleteCall) Context(ctx context.Context) *InstanceTemplatesDeleteCall {
87675	c.ctx_ = ctx
87676	return c
87677}
87678
87679// Header returns an http.Header that can be modified by the caller to
87680// add HTTP headers to the request.
87681func (c *InstanceTemplatesDeleteCall) Header() http.Header {
87682	if c.header_ == nil {
87683		c.header_ = make(http.Header)
87684	}
87685	return c.header_
87686}
87687
87688func (c *InstanceTemplatesDeleteCall) doRequest(alt string) (*http.Response, error) {
87689	reqHeaders := make(http.Header)
87690	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
87691	for k, v := range c.header_ {
87692		reqHeaders[k] = v
87693	}
87694	reqHeaders.Set("User-Agent", c.s.userAgent())
87695	var body io.Reader = nil
87696	c.urlParams_.Set("alt", alt)
87697	c.urlParams_.Set("prettyPrint", "false")
87698	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/instanceTemplates/{instanceTemplate}")
87699	urls += "?" + c.urlParams_.Encode()
87700	req, err := http.NewRequest("DELETE", urls, body)
87701	if err != nil {
87702		return nil, err
87703	}
87704	req.Header = reqHeaders
87705	googleapi.Expand(req.URL, map[string]string{
87706		"project":          c.project,
87707		"instanceTemplate": c.instanceTemplate,
87708	})
87709	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87710}
87711
87712// Do executes the "compute.instanceTemplates.delete" call.
87713// Exactly one of *Operation or error will be non-nil. Any non-2xx
87714// status code is an error. Response headers are in either
87715// *Operation.ServerResponse.Header or (if a response was returned at
87716// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
87717// to check whether the returned error was because
87718// http.StatusNotModified was returned.
87719func (c *InstanceTemplatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
87720	gensupport.SetOptions(c.urlParams_, opts...)
87721	res, err := c.doRequest("json")
87722	if res != nil && res.StatusCode == http.StatusNotModified {
87723		if res.Body != nil {
87724			res.Body.Close()
87725		}
87726		return nil, &googleapi.Error{
87727			Code:   res.StatusCode,
87728			Header: res.Header,
87729		}
87730	}
87731	if err != nil {
87732		return nil, err
87733	}
87734	defer googleapi.CloseBody(res)
87735	if err := googleapi.CheckResponse(res); err != nil {
87736		return nil, err
87737	}
87738	ret := &Operation{
87739		ServerResponse: googleapi.ServerResponse{
87740			Header:         res.Header,
87741			HTTPStatusCode: res.StatusCode,
87742		},
87743	}
87744	target := &ret
87745	if err := gensupport.DecodeResponse(target, res); err != nil {
87746		return nil, err
87747	}
87748	return ret, nil
87749	// {
87750	//   "description": "Deletes the specified instance template. Deleting an instance template is permanent and cannot be undone. It is not possible to delete templates that are already in use by a managed instance group.",
87751	//   "httpMethod": "DELETE",
87752	//   "id": "compute.instanceTemplates.delete",
87753	//   "parameterOrder": [
87754	//     "project",
87755	//     "instanceTemplate"
87756	//   ],
87757	//   "parameters": {
87758	//     "instanceTemplate": {
87759	//       "description": "The name of the instance template to delete.",
87760	//       "location": "path",
87761	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
87762	//       "required": true,
87763	//       "type": "string"
87764	//     },
87765	//     "project": {
87766	//       "description": "Project ID for this request.",
87767	//       "location": "path",
87768	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87769	//       "required": true,
87770	//       "type": "string"
87771	//     },
87772	//     "requestId": {
87773	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
87774	//       "location": "query",
87775	//       "type": "string"
87776	//     }
87777	//   },
87778	//   "path": "projects/{project}/global/instanceTemplates/{instanceTemplate}",
87779	//   "response": {
87780	//     "$ref": "Operation"
87781	//   },
87782	//   "scopes": [
87783	//     "https://www.googleapis.com/auth/cloud-platform",
87784	//     "https://www.googleapis.com/auth/compute"
87785	//   ]
87786	// }
87787
87788}
87789
87790// method id "compute.instanceTemplates.get":
87791
87792type InstanceTemplatesGetCall struct {
87793	s                *Service
87794	project          string
87795	instanceTemplate string
87796	urlParams_       gensupport.URLParams
87797	ifNoneMatch_     string
87798	ctx_             context.Context
87799	header_          http.Header
87800}
87801
87802// Get: Returns the specified instance template. Gets a list of
87803// available instance templates by making a list() request.
87804// For details, see https://cloud.google.com/compute/docs/reference/latest/instanceTemplates/get
87805func (r *InstanceTemplatesService) Get(project string, instanceTemplate string) *InstanceTemplatesGetCall {
87806	c := &InstanceTemplatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87807	c.project = project
87808	c.instanceTemplate = instanceTemplate
87809	return c
87810}
87811
87812// Fields allows partial responses to be retrieved. See
87813// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87814// for more information.
87815func (c *InstanceTemplatesGetCall) Fields(s ...googleapi.Field) *InstanceTemplatesGetCall {
87816	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87817	return c
87818}
87819
87820// IfNoneMatch sets the optional parameter which makes the operation
87821// fail if the object's ETag matches the given value. This is useful for
87822// getting updates only after the object has changed since the last
87823// request. Use googleapi.IsNotModified to check whether the response
87824// error from Do is the result of In-None-Match.
87825func (c *InstanceTemplatesGetCall) IfNoneMatch(entityTag string) *InstanceTemplatesGetCall {
87826	c.ifNoneMatch_ = entityTag
87827	return c
87828}
87829
87830// Context sets the context to be used in this call's Do method. Any
87831// pending HTTP request will be aborted if the provided context is
87832// canceled.
87833func (c *InstanceTemplatesGetCall) Context(ctx context.Context) *InstanceTemplatesGetCall {
87834	c.ctx_ = ctx
87835	return c
87836}
87837
87838// Header returns an http.Header that can be modified by the caller to
87839// add HTTP headers to the request.
87840func (c *InstanceTemplatesGetCall) Header() http.Header {
87841	if c.header_ == nil {
87842		c.header_ = make(http.Header)
87843	}
87844	return c.header_
87845}
87846
87847func (c *InstanceTemplatesGetCall) doRequest(alt string) (*http.Response, error) {
87848	reqHeaders := make(http.Header)
87849	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
87850	for k, v := range c.header_ {
87851		reqHeaders[k] = v
87852	}
87853	reqHeaders.Set("User-Agent", c.s.userAgent())
87854	if c.ifNoneMatch_ != "" {
87855		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
87856	}
87857	var body io.Reader = nil
87858	c.urlParams_.Set("alt", alt)
87859	c.urlParams_.Set("prettyPrint", "false")
87860	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/instanceTemplates/{instanceTemplate}")
87861	urls += "?" + c.urlParams_.Encode()
87862	req, err := http.NewRequest("GET", urls, body)
87863	if err != nil {
87864		return nil, err
87865	}
87866	req.Header = reqHeaders
87867	googleapi.Expand(req.URL, map[string]string{
87868		"project":          c.project,
87869		"instanceTemplate": c.instanceTemplate,
87870	})
87871	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87872}
87873
87874// Do executes the "compute.instanceTemplates.get" call.
87875// Exactly one of *InstanceTemplate or error will be non-nil. Any
87876// non-2xx status code is an error. Response headers are in either
87877// *InstanceTemplate.ServerResponse.Header or (if a response was
87878// returned at all) in error.(*googleapi.Error).Header. Use
87879// googleapi.IsNotModified to check whether the returned error was
87880// because http.StatusNotModified was returned.
87881func (c *InstanceTemplatesGetCall) Do(opts ...googleapi.CallOption) (*InstanceTemplate, error) {
87882	gensupport.SetOptions(c.urlParams_, opts...)
87883	res, err := c.doRequest("json")
87884	if res != nil && res.StatusCode == http.StatusNotModified {
87885		if res.Body != nil {
87886			res.Body.Close()
87887		}
87888		return nil, &googleapi.Error{
87889			Code:   res.StatusCode,
87890			Header: res.Header,
87891		}
87892	}
87893	if err != nil {
87894		return nil, err
87895	}
87896	defer googleapi.CloseBody(res)
87897	if err := googleapi.CheckResponse(res); err != nil {
87898		return nil, err
87899	}
87900	ret := &InstanceTemplate{
87901		ServerResponse: googleapi.ServerResponse{
87902			Header:         res.Header,
87903			HTTPStatusCode: res.StatusCode,
87904		},
87905	}
87906	target := &ret
87907	if err := gensupport.DecodeResponse(target, res); err != nil {
87908		return nil, err
87909	}
87910	return ret, nil
87911	// {
87912	//   "description": "Returns the specified instance template. Gets a list of available instance templates by making a list() request.",
87913	//   "httpMethod": "GET",
87914	//   "id": "compute.instanceTemplates.get",
87915	//   "parameterOrder": [
87916	//     "project",
87917	//     "instanceTemplate"
87918	//   ],
87919	//   "parameters": {
87920	//     "instanceTemplate": {
87921	//       "description": "The name of the instance template.",
87922	//       "location": "path",
87923	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
87924	//       "required": true,
87925	//       "type": "string"
87926	//     },
87927	//     "project": {
87928	//       "description": "Project ID for this request.",
87929	//       "location": "path",
87930	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87931	//       "required": true,
87932	//       "type": "string"
87933	//     }
87934	//   },
87935	//   "path": "projects/{project}/global/instanceTemplates/{instanceTemplate}",
87936	//   "response": {
87937	//     "$ref": "InstanceTemplate"
87938	//   },
87939	//   "scopes": [
87940	//     "https://www.googleapis.com/auth/cloud-platform",
87941	//     "https://www.googleapis.com/auth/compute",
87942	//     "https://www.googleapis.com/auth/compute.readonly"
87943	//   ]
87944	// }
87945
87946}
87947
87948// method id "compute.instanceTemplates.getIamPolicy":
87949
87950type InstanceTemplatesGetIamPolicyCall struct {
87951	s            *Service
87952	project      string
87953	resource     string
87954	urlParams_   gensupport.URLParams
87955	ifNoneMatch_ string
87956	ctx_         context.Context
87957	header_      http.Header
87958}
87959
87960// GetIamPolicy: Gets the access control policy for a resource. May be
87961// empty if no such policy or resource exists.
87962func (r *InstanceTemplatesService) GetIamPolicy(project string, resource string) *InstanceTemplatesGetIamPolicyCall {
87963	c := &InstanceTemplatesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87964	c.project = project
87965	c.resource = resource
87966	return c
87967}
87968
87969// OptionsRequestedPolicyVersion sets the optional parameter
87970// "optionsRequestedPolicyVersion": Requested IAM Policy version.
87971func (c *InstanceTemplatesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *InstanceTemplatesGetIamPolicyCall {
87972	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
87973	return c
87974}
87975
87976// Fields allows partial responses to be retrieved. See
87977// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87978// for more information.
87979func (c *InstanceTemplatesGetIamPolicyCall) Fields(s ...googleapi.Field) *InstanceTemplatesGetIamPolicyCall {
87980	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87981	return c
87982}
87983
87984// IfNoneMatch sets the optional parameter which makes the operation
87985// fail if the object's ETag matches the given value. This is useful for
87986// getting updates only after the object has changed since the last
87987// request. Use googleapi.IsNotModified to check whether the response
87988// error from Do is the result of In-None-Match.
87989func (c *InstanceTemplatesGetIamPolicyCall) IfNoneMatch(entityTag string) *InstanceTemplatesGetIamPolicyCall {
87990	c.ifNoneMatch_ = entityTag
87991	return c
87992}
87993
87994// Context sets the context to be used in this call's Do method. Any
87995// pending HTTP request will be aborted if the provided context is
87996// canceled.
87997func (c *InstanceTemplatesGetIamPolicyCall) Context(ctx context.Context) *InstanceTemplatesGetIamPolicyCall {
87998	c.ctx_ = ctx
87999	return c
88000}
88001
88002// Header returns an http.Header that can be modified by the caller to
88003// add HTTP headers to the request.
88004func (c *InstanceTemplatesGetIamPolicyCall) Header() http.Header {
88005	if c.header_ == nil {
88006		c.header_ = make(http.Header)
88007	}
88008	return c.header_
88009}
88010
88011func (c *InstanceTemplatesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
88012	reqHeaders := make(http.Header)
88013	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
88014	for k, v := range c.header_ {
88015		reqHeaders[k] = v
88016	}
88017	reqHeaders.Set("User-Agent", c.s.userAgent())
88018	if c.ifNoneMatch_ != "" {
88019		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
88020	}
88021	var body io.Reader = nil
88022	c.urlParams_.Set("alt", alt)
88023	c.urlParams_.Set("prettyPrint", "false")
88024	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/instanceTemplates/{resource}/getIamPolicy")
88025	urls += "?" + c.urlParams_.Encode()
88026	req, err := http.NewRequest("GET", urls, body)
88027	if err != nil {
88028		return nil, err
88029	}
88030	req.Header = reqHeaders
88031	googleapi.Expand(req.URL, map[string]string{
88032		"project":  c.project,
88033		"resource": c.resource,
88034	})
88035	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88036}
88037
88038// Do executes the "compute.instanceTemplates.getIamPolicy" call.
88039// Exactly one of *Policy or error will be non-nil. Any non-2xx status
88040// code is an error. Response headers are in either
88041// *Policy.ServerResponse.Header or (if a response was returned at all)
88042// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
88043// check whether the returned error was because http.StatusNotModified
88044// was returned.
88045func (c *InstanceTemplatesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
88046	gensupport.SetOptions(c.urlParams_, opts...)
88047	res, err := c.doRequest("json")
88048	if res != nil && res.StatusCode == http.StatusNotModified {
88049		if res.Body != nil {
88050			res.Body.Close()
88051		}
88052		return nil, &googleapi.Error{
88053			Code:   res.StatusCode,
88054			Header: res.Header,
88055		}
88056	}
88057	if err != nil {
88058		return nil, err
88059	}
88060	defer googleapi.CloseBody(res)
88061	if err := googleapi.CheckResponse(res); err != nil {
88062		return nil, err
88063	}
88064	ret := &Policy{
88065		ServerResponse: googleapi.ServerResponse{
88066			Header:         res.Header,
88067			HTTPStatusCode: res.StatusCode,
88068		},
88069	}
88070	target := &ret
88071	if err := gensupport.DecodeResponse(target, res); err != nil {
88072		return nil, err
88073	}
88074	return ret, nil
88075	// {
88076	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
88077	//   "httpMethod": "GET",
88078	//   "id": "compute.instanceTemplates.getIamPolicy",
88079	//   "parameterOrder": [
88080	//     "project",
88081	//     "resource"
88082	//   ],
88083	//   "parameters": {
88084	//     "optionsRequestedPolicyVersion": {
88085	//       "description": "Requested IAM Policy version.",
88086	//       "format": "int32",
88087	//       "location": "query",
88088	//       "type": "integer"
88089	//     },
88090	//     "project": {
88091	//       "description": "Project ID for this request.",
88092	//       "location": "path",
88093	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88094	//       "required": true,
88095	//       "type": "string"
88096	//     },
88097	//     "resource": {
88098	//       "description": "Name or id of the resource for this request.",
88099	//       "location": "path",
88100	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
88101	//       "required": true,
88102	//       "type": "string"
88103	//     }
88104	//   },
88105	//   "path": "projects/{project}/global/instanceTemplates/{resource}/getIamPolicy",
88106	//   "response": {
88107	//     "$ref": "Policy"
88108	//   },
88109	//   "scopes": [
88110	//     "https://www.googleapis.com/auth/cloud-platform",
88111	//     "https://www.googleapis.com/auth/compute",
88112	//     "https://www.googleapis.com/auth/compute.readonly"
88113	//   ]
88114	// }
88115
88116}
88117
88118// method id "compute.instanceTemplates.insert":
88119
88120type InstanceTemplatesInsertCall struct {
88121	s                *Service
88122	project          string
88123	instancetemplate *InstanceTemplate
88124	urlParams_       gensupport.URLParams
88125	ctx_             context.Context
88126	header_          http.Header
88127}
88128
88129// Insert: Creates an instance template in the specified project using
88130// the data that is included in the request. If you are creating a new
88131// template to update an existing instance group, your new instance
88132// template must use the same network or, if applicable, the same
88133// subnetwork as the original template.
88134// For details, see https://cloud.google.com/compute/docs/reference/latest/instanceTemplates/insert
88135func (r *InstanceTemplatesService) Insert(project string, instancetemplate *InstanceTemplate) *InstanceTemplatesInsertCall {
88136	c := &InstanceTemplatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88137	c.project = project
88138	c.instancetemplate = instancetemplate
88139	return c
88140}
88141
88142// RequestId sets the optional parameter "requestId": An optional
88143// request ID to identify requests. Specify a unique request ID so that
88144// if you must retry your request, the server will know to ignore the
88145// request if it has already been completed.
88146//
88147// For example, consider a situation where you make an initial request
88148// and the request times out. If you make the request again with the
88149// same request ID, the server can check if original operation with the
88150// same request ID was received, and if so, will ignore the second
88151// request. This prevents clients from accidentally creating duplicate
88152// commitments.
88153//
88154// The request ID must be a valid UUID with the exception that zero UUID
88155// is not supported (00000000-0000-0000-0000-000000000000).
88156func (c *InstanceTemplatesInsertCall) RequestId(requestId string) *InstanceTemplatesInsertCall {
88157	c.urlParams_.Set("requestId", requestId)
88158	return c
88159}
88160
88161// Fields allows partial responses to be retrieved. See
88162// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88163// for more information.
88164func (c *InstanceTemplatesInsertCall) Fields(s ...googleapi.Field) *InstanceTemplatesInsertCall {
88165	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88166	return c
88167}
88168
88169// Context sets the context to be used in this call's Do method. Any
88170// pending HTTP request will be aborted if the provided context is
88171// canceled.
88172func (c *InstanceTemplatesInsertCall) Context(ctx context.Context) *InstanceTemplatesInsertCall {
88173	c.ctx_ = ctx
88174	return c
88175}
88176
88177// Header returns an http.Header that can be modified by the caller to
88178// add HTTP headers to the request.
88179func (c *InstanceTemplatesInsertCall) Header() http.Header {
88180	if c.header_ == nil {
88181		c.header_ = make(http.Header)
88182	}
88183	return c.header_
88184}
88185
88186func (c *InstanceTemplatesInsertCall) doRequest(alt string) (*http.Response, error) {
88187	reqHeaders := make(http.Header)
88188	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
88189	for k, v := range c.header_ {
88190		reqHeaders[k] = v
88191	}
88192	reqHeaders.Set("User-Agent", c.s.userAgent())
88193	var body io.Reader = nil
88194	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancetemplate)
88195	if err != nil {
88196		return nil, err
88197	}
88198	reqHeaders.Set("Content-Type", "application/json")
88199	c.urlParams_.Set("alt", alt)
88200	c.urlParams_.Set("prettyPrint", "false")
88201	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/instanceTemplates")
88202	urls += "?" + c.urlParams_.Encode()
88203	req, err := http.NewRequest("POST", urls, body)
88204	if err != nil {
88205		return nil, err
88206	}
88207	req.Header = reqHeaders
88208	googleapi.Expand(req.URL, map[string]string{
88209		"project": c.project,
88210	})
88211	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88212}
88213
88214// Do executes the "compute.instanceTemplates.insert" call.
88215// Exactly one of *Operation or error will be non-nil. Any non-2xx
88216// status code is an error. Response headers are in either
88217// *Operation.ServerResponse.Header or (if a response was returned at
88218// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
88219// to check whether the returned error was because
88220// http.StatusNotModified was returned.
88221func (c *InstanceTemplatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
88222	gensupport.SetOptions(c.urlParams_, opts...)
88223	res, err := c.doRequest("json")
88224	if res != nil && res.StatusCode == http.StatusNotModified {
88225		if res.Body != nil {
88226			res.Body.Close()
88227		}
88228		return nil, &googleapi.Error{
88229			Code:   res.StatusCode,
88230			Header: res.Header,
88231		}
88232	}
88233	if err != nil {
88234		return nil, err
88235	}
88236	defer googleapi.CloseBody(res)
88237	if err := googleapi.CheckResponse(res); err != nil {
88238		return nil, err
88239	}
88240	ret := &Operation{
88241		ServerResponse: googleapi.ServerResponse{
88242			Header:         res.Header,
88243			HTTPStatusCode: res.StatusCode,
88244		},
88245	}
88246	target := &ret
88247	if err := gensupport.DecodeResponse(target, res); err != nil {
88248		return nil, err
88249	}
88250	return ret, nil
88251	// {
88252	//   "description": "Creates an instance template in the specified project using the data that is included in the request. If you are creating a new template to update an existing instance group, your new instance template must use the same network or, if applicable, the same subnetwork as the original template.",
88253	//   "httpMethod": "POST",
88254	//   "id": "compute.instanceTemplates.insert",
88255	//   "parameterOrder": [
88256	//     "project"
88257	//   ],
88258	//   "parameters": {
88259	//     "project": {
88260	//       "description": "Project ID for this request.",
88261	//       "location": "path",
88262	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88263	//       "required": true,
88264	//       "type": "string"
88265	//     },
88266	//     "requestId": {
88267	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
88268	//       "location": "query",
88269	//       "type": "string"
88270	//     }
88271	//   },
88272	//   "path": "projects/{project}/global/instanceTemplates",
88273	//   "request": {
88274	//     "$ref": "InstanceTemplate"
88275	//   },
88276	//   "response": {
88277	//     "$ref": "Operation"
88278	//   },
88279	//   "scopes": [
88280	//     "https://www.googleapis.com/auth/cloud-platform",
88281	//     "https://www.googleapis.com/auth/compute"
88282	//   ]
88283	// }
88284
88285}
88286
88287// method id "compute.instanceTemplates.list":
88288
88289type InstanceTemplatesListCall struct {
88290	s            *Service
88291	project      string
88292	urlParams_   gensupport.URLParams
88293	ifNoneMatch_ string
88294	ctx_         context.Context
88295	header_      http.Header
88296}
88297
88298// List: Retrieves a list of instance templates that are contained
88299// within the specified project.
88300// For details, see https://cloud.google.com/compute/docs/reference/latest/instanceTemplates/list
88301func (r *InstanceTemplatesService) List(project string) *InstanceTemplatesListCall {
88302	c := &InstanceTemplatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88303	c.project = project
88304	return c
88305}
88306
88307// Filter sets the optional parameter "filter": A filter expression that
88308// filters resources listed in the response. The expression must specify
88309// the field name, a comparison operator, and the value that you want to
88310// use for filtering. The value must be a string, a number, or a
88311// boolean. The comparison operator must be either `=`, `!=`, `>`, or
88312// `<`.
88313//
88314// For example, if you are filtering Compute Engine instances, you can
88315// exclude instances named `example-instance` by specifying `name !=
88316// example-instance`.
88317//
88318// You can also filter nested fields. For example, you could specify
88319// `scheduling.automaticRestart = false` to include instances only if
88320// they are not scheduled for automatic restarts. You can use filtering
88321// on nested fields to filter based on resource labels.
88322//
88323// To filter on multiple expressions, provide each separate expression
88324// within parentheses. For example: ``` (scheduling.automaticRestart =
88325// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
88326// is an `AND` expression. However, you can include `AND` and `OR`
88327// expressions explicitly. For example: ``` (cpuPlatform = "Intel
88328// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
88329// (scheduling.automaticRestart = true) ```
88330func (c *InstanceTemplatesListCall) Filter(filter string) *InstanceTemplatesListCall {
88331	c.urlParams_.Set("filter", filter)
88332	return c
88333}
88334
88335// MaxResults sets the optional parameter "maxResults": The maximum
88336// number of results per page that should be returned. If the number of
88337// available results is larger than `maxResults`, Compute Engine returns
88338// a `nextPageToken` that can be used to get the next page of results in
88339// subsequent list requests. Acceptable values are `0` to `500`,
88340// inclusive. (Default: `500`)
88341func (c *InstanceTemplatesListCall) MaxResults(maxResults int64) *InstanceTemplatesListCall {
88342	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
88343	return c
88344}
88345
88346// OrderBy sets the optional parameter "orderBy": Sorts list results by
88347// a certain order. By default, results are returned in alphanumerical
88348// order based on the resource name.
88349//
88350// You can also sort results in descending order based on the creation
88351// timestamp using `orderBy="creationTimestamp desc". This sorts
88352// results based on the `creationTimestamp` field in reverse
88353// chronological order (newest result first). Use this to sort resources
88354// like operations so that the newest operation is returned
88355// first.
88356//
88357// Currently, only sorting by `name` or `creationTimestamp desc` is
88358// supported.
88359func (c *InstanceTemplatesListCall) OrderBy(orderBy string) *InstanceTemplatesListCall {
88360	c.urlParams_.Set("orderBy", orderBy)
88361	return c
88362}
88363
88364// PageToken sets the optional parameter "pageToken": Specifies a page
88365// token to use. Set `pageToken` to the `nextPageToken` returned by a
88366// previous list request to get the next page of results.
88367func (c *InstanceTemplatesListCall) PageToken(pageToken string) *InstanceTemplatesListCall {
88368	c.urlParams_.Set("pageToken", pageToken)
88369	return c
88370}
88371
88372// ReturnPartialSuccess sets the optional parameter
88373// "returnPartialSuccess": Opt-in for partial success behavior which
88374// provides partial results in case of failure. The default value is
88375// false.
88376func (c *InstanceTemplatesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceTemplatesListCall {
88377	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
88378	return c
88379}
88380
88381// Fields allows partial responses to be retrieved. See
88382// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88383// for more information.
88384func (c *InstanceTemplatesListCall) Fields(s ...googleapi.Field) *InstanceTemplatesListCall {
88385	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88386	return c
88387}
88388
88389// IfNoneMatch sets the optional parameter which makes the operation
88390// fail if the object's ETag matches the given value. This is useful for
88391// getting updates only after the object has changed since the last
88392// request. Use googleapi.IsNotModified to check whether the response
88393// error from Do is the result of In-None-Match.
88394func (c *InstanceTemplatesListCall) IfNoneMatch(entityTag string) *InstanceTemplatesListCall {
88395	c.ifNoneMatch_ = entityTag
88396	return c
88397}
88398
88399// Context sets the context to be used in this call's Do method. Any
88400// pending HTTP request will be aborted if the provided context is
88401// canceled.
88402func (c *InstanceTemplatesListCall) Context(ctx context.Context) *InstanceTemplatesListCall {
88403	c.ctx_ = ctx
88404	return c
88405}
88406
88407// Header returns an http.Header that can be modified by the caller to
88408// add HTTP headers to the request.
88409func (c *InstanceTemplatesListCall) Header() http.Header {
88410	if c.header_ == nil {
88411		c.header_ = make(http.Header)
88412	}
88413	return c.header_
88414}
88415
88416func (c *InstanceTemplatesListCall) doRequest(alt string) (*http.Response, error) {
88417	reqHeaders := make(http.Header)
88418	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
88419	for k, v := range c.header_ {
88420		reqHeaders[k] = v
88421	}
88422	reqHeaders.Set("User-Agent", c.s.userAgent())
88423	if c.ifNoneMatch_ != "" {
88424		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
88425	}
88426	var body io.Reader = nil
88427	c.urlParams_.Set("alt", alt)
88428	c.urlParams_.Set("prettyPrint", "false")
88429	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/instanceTemplates")
88430	urls += "?" + c.urlParams_.Encode()
88431	req, err := http.NewRequest("GET", urls, body)
88432	if err != nil {
88433		return nil, err
88434	}
88435	req.Header = reqHeaders
88436	googleapi.Expand(req.URL, map[string]string{
88437		"project": c.project,
88438	})
88439	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88440}
88441
88442// Do executes the "compute.instanceTemplates.list" call.
88443// Exactly one of *InstanceTemplateList or error will be non-nil. Any
88444// non-2xx status code is an error. Response headers are in either
88445// *InstanceTemplateList.ServerResponse.Header or (if a response was
88446// returned at all) in error.(*googleapi.Error).Header. Use
88447// googleapi.IsNotModified to check whether the returned error was
88448// because http.StatusNotModified was returned.
88449func (c *InstanceTemplatesListCall) Do(opts ...googleapi.CallOption) (*InstanceTemplateList, error) {
88450	gensupport.SetOptions(c.urlParams_, opts...)
88451	res, err := c.doRequest("json")
88452	if res != nil && res.StatusCode == http.StatusNotModified {
88453		if res.Body != nil {
88454			res.Body.Close()
88455		}
88456		return nil, &googleapi.Error{
88457			Code:   res.StatusCode,
88458			Header: res.Header,
88459		}
88460	}
88461	if err != nil {
88462		return nil, err
88463	}
88464	defer googleapi.CloseBody(res)
88465	if err := googleapi.CheckResponse(res); err != nil {
88466		return nil, err
88467	}
88468	ret := &InstanceTemplateList{
88469		ServerResponse: googleapi.ServerResponse{
88470			Header:         res.Header,
88471			HTTPStatusCode: res.StatusCode,
88472		},
88473	}
88474	target := &ret
88475	if err := gensupport.DecodeResponse(target, res); err != nil {
88476		return nil, err
88477	}
88478	return ret, nil
88479	// {
88480	//   "description": "Retrieves a list of instance templates that are contained within the specified project.",
88481	//   "httpMethod": "GET",
88482	//   "id": "compute.instanceTemplates.list",
88483	//   "parameterOrder": [
88484	//     "project"
88485	//   ],
88486	//   "parameters": {
88487	//     "filter": {
88488	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
88489	//       "location": "query",
88490	//       "type": "string"
88491	//     },
88492	//     "maxResults": {
88493	//       "default": "500",
88494	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
88495	//       "format": "uint32",
88496	//       "location": "query",
88497	//       "minimum": "0",
88498	//       "type": "integer"
88499	//     },
88500	//     "orderBy": {
88501	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
88502	//       "location": "query",
88503	//       "type": "string"
88504	//     },
88505	//     "pageToken": {
88506	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
88507	//       "location": "query",
88508	//       "type": "string"
88509	//     },
88510	//     "project": {
88511	//       "description": "Project ID for this request.",
88512	//       "location": "path",
88513	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88514	//       "required": true,
88515	//       "type": "string"
88516	//     },
88517	//     "returnPartialSuccess": {
88518	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
88519	//       "location": "query",
88520	//       "type": "boolean"
88521	//     }
88522	//   },
88523	//   "path": "projects/{project}/global/instanceTemplates",
88524	//   "response": {
88525	//     "$ref": "InstanceTemplateList"
88526	//   },
88527	//   "scopes": [
88528	//     "https://www.googleapis.com/auth/cloud-platform",
88529	//     "https://www.googleapis.com/auth/compute",
88530	//     "https://www.googleapis.com/auth/compute.readonly"
88531	//   ]
88532	// }
88533
88534}
88535
88536// Pages invokes f for each page of results.
88537// A non-nil error returned from f will halt the iteration.
88538// The provided context supersedes any context provided to the Context method.
88539func (c *InstanceTemplatesListCall) Pages(ctx context.Context, f func(*InstanceTemplateList) error) error {
88540	c.ctx_ = ctx
88541	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
88542	for {
88543		x, err := c.Do()
88544		if err != nil {
88545			return err
88546		}
88547		if err := f(x); err != nil {
88548			return err
88549		}
88550		if x.NextPageToken == "" {
88551			return nil
88552		}
88553		c.PageToken(x.NextPageToken)
88554	}
88555}
88556
88557// method id "compute.instanceTemplates.setIamPolicy":
88558
88559type InstanceTemplatesSetIamPolicyCall struct {
88560	s                      *Service
88561	project                string
88562	resource               string
88563	globalsetpolicyrequest *GlobalSetPolicyRequest
88564	urlParams_             gensupport.URLParams
88565	ctx_                   context.Context
88566	header_                http.Header
88567}
88568
88569// SetIamPolicy: Sets the access control policy on the specified
88570// resource. Replaces any existing policy.
88571func (r *InstanceTemplatesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *InstanceTemplatesSetIamPolicyCall {
88572	c := &InstanceTemplatesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88573	c.project = project
88574	c.resource = resource
88575	c.globalsetpolicyrequest = globalsetpolicyrequest
88576	return c
88577}
88578
88579// Fields allows partial responses to be retrieved. See
88580// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88581// for more information.
88582func (c *InstanceTemplatesSetIamPolicyCall) Fields(s ...googleapi.Field) *InstanceTemplatesSetIamPolicyCall {
88583	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88584	return c
88585}
88586
88587// Context sets the context to be used in this call's Do method. Any
88588// pending HTTP request will be aborted if the provided context is
88589// canceled.
88590func (c *InstanceTemplatesSetIamPolicyCall) Context(ctx context.Context) *InstanceTemplatesSetIamPolicyCall {
88591	c.ctx_ = ctx
88592	return c
88593}
88594
88595// Header returns an http.Header that can be modified by the caller to
88596// add HTTP headers to the request.
88597func (c *InstanceTemplatesSetIamPolicyCall) Header() http.Header {
88598	if c.header_ == nil {
88599		c.header_ = make(http.Header)
88600	}
88601	return c.header_
88602}
88603
88604func (c *InstanceTemplatesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
88605	reqHeaders := make(http.Header)
88606	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
88607	for k, v := range c.header_ {
88608		reqHeaders[k] = v
88609	}
88610	reqHeaders.Set("User-Agent", c.s.userAgent())
88611	var body io.Reader = nil
88612	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
88613	if err != nil {
88614		return nil, err
88615	}
88616	reqHeaders.Set("Content-Type", "application/json")
88617	c.urlParams_.Set("alt", alt)
88618	c.urlParams_.Set("prettyPrint", "false")
88619	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/instanceTemplates/{resource}/setIamPolicy")
88620	urls += "?" + c.urlParams_.Encode()
88621	req, err := http.NewRequest("POST", urls, body)
88622	if err != nil {
88623		return nil, err
88624	}
88625	req.Header = reqHeaders
88626	googleapi.Expand(req.URL, map[string]string{
88627		"project":  c.project,
88628		"resource": c.resource,
88629	})
88630	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88631}
88632
88633// Do executes the "compute.instanceTemplates.setIamPolicy" call.
88634// Exactly one of *Policy or error will be non-nil. Any non-2xx status
88635// code is an error. Response headers are in either
88636// *Policy.ServerResponse.Header or (if a response was returned at all)
88637// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
88638// check whether the returned error was because http.StatusNotModified
88639// was returned.
88640func (c *InstanceTemplatesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
88641	gensupport.SetOptions(c.urlParams_, opts...)
88642	res, err := c.doRequest("json")
88643	if res != nil && res.StatusCode == http.StatusNotModified {
88644		if res.Body != nil {
88645			res.Body.Close()
88646		}
88647		return nil, &googleapi.Error{
88648			Code:   res.StatusCode,
88649			Header: res.Header,
88650		}
88651	}
88652	if err != nil {
88653		return nil, err
88654	}
88655	defer googleapi.CloseBody(res)
88656	if err := googleapi.CheckResponse(res); err != nil {
88657		return nil, err
88658	}
88659	ret := &Policy{
88660		ServerResponse: googleapi.ServerResponse{
88661			Header:         res.Header,
88662			HTTPStatusCode: res.StatusCode,
88663		},
88664	}
88665	target := &ret
88666	if err := gensupport.DecodeResponse(target, res); err != nil {
88667		return nil, err
88668	}
88669	return ret, nil
88670	// {
88671	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
88672	//   "httpMethod": "POST",
88673	//   "id": "compute.instanceTemplates.setIamPolicy",
88674	//   "parameterOrder": [
88675	//     "project",
88676	//     "resource"
88677	//   ],
88678	//   "parameters": {
88679	//     "project": {
88680	//       "description": "Project ID for this request.",
88681	//       "location": "path",
88682	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88683	//       "required": true,
88684	//       "type": "string"
88685	//     },
88686	//     "resource": {
88687	//       "description": "Name or id of the resource for this request.",
88688	//       "location": "path",
88689	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
88690	//       "required": true,
88691	//       "type": "string"
88692	//     }
88693	//   },
88694	//   "path": "projects/{project}/global/instanceTemplates/{resource}/setIamPolicy",
88695	//   "request": {
88696	//     "$ref": "GlobalSetPolicyRequest"
88697	//   },
88698	//   "response": {
88699	//     "$ref": "Policy"
88700	//   },
88701	//   "scopes": [
88702	//     "https://www.googleapis.com/auth/cloud-platform",
88703	//     "https://www.googleapis.com/auth/compute"
88704	//   ]
88705	// }
88706
88707}
88708
88709// method id "compute.instanceTemplates.testIamPermissions":
88710
88711type InstanceTemplatesTestIamPermissionsCall struct {
88712	s                      *Service
88713	project                string
88714	resource               string
88715	testpermissionsrequest *TestPermissionsRequest
88716	urlParams_             gensupport.URLParams
88717	ctx_                   context.Context
88718	header_                http.Header
88719}
88720
88721// TestIamPermissions: Returns permissions that a caller has on the
88722// specified resource.
88723func (r *InstanceTemplatesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *InstanceTemplatesTestIamPermissionsCall {
88724	c := &InstanceTemplatesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88725	c.project = project
88726	c.resource = resource
88727	c.testpermissionsrequest = testpermissionsrequest
88728	return c
88729}
88730
88731// Fields allows partial responses to be retrieved. See
88732// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88733// for more information.
88734func (c *InstanceTemplatesTestIamPermissionsCall) Fields(s ...googleapi.Field) *InstanceTemplatesTestIamPermissionsCall {
88735	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88736	return c
88737}
88738
88739// Context sets the context to be used in this call's Do method. Any
88740// pending HTTP request will be aborted if the provided context is
88741// canceled.
88742func (c *InstanceTemplatesTestIamPermissionsCall) Context(ctx context.Context) *InstanceTemplatesTestIamPermissionsCall {
88743	c.ctx_ = ctx
88744	return c
88745}
88746
88747// Header returns an http.Header that can be modified by the caller to
88748// add HTTP headers to the request.
88749func (c *InstanceTemplatesTestIamPermissionsCall) Header() http.Header {
88750	if c.header_ == nil {
88751		c.header_ = make(http.Header)
88752	}
88753	return c.header_
88754}
88755
88756func (c *InstanceTemplatesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
88757	reqHeaders := make(http.Header)
88758	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
88759	for k, v := range c.header_ {
88760		reqHeaders[k] = v
88761	}
88762	reqHeaders.Set("User-Agent", c.s.userAgent())
88763	var body io.Reader = nil
88764	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
88765	if err != nil {
88766		return nil, err
88767	}
88768	reqHeaders.Set("Content-Type", "application/json")
88769	c.urlParams_.Set("alt", alt)
88770	c.urlParams_.Set("prettyPrint", "false")
88771	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/instanceTemplates/{resource}/testIamPermissions")
88772	urls += "?" + c.urlParams_.Encode()
88773	req, err := http.NewRequest("POST", urls, body)
88774	if err != nil {
88775		return nil, err
88776	}
88777	req.Header = reqHeaders
88778	googleapi.Expand(req.URL, map[string]string{
88779		"project":  c.project,
88780		"resource": c.resource,
88781	})
88782	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88783}
88784
88785// Do executes the "compute.instanceTemplates.testIamPermissions" call.
88786// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
88787// non-2xx status code is an error. Response headers are in either
88788// *TestPermissionsResponse.ServerResponse.Header or (if a response was
88789// returned at all) in error.(*googleapi.Error).Header. Use
88790// googleapi.IsNotModified to check whether the returned error was
88791// because http.StatusNotModified was returned.
88792func (c *InstanceTemplatesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
88793	gensupport.SetOptions(c.urlParams_, opts...)
88794	res, err := c.doRequest("json")
88795	if res != nil && res.StatusCode == http.StatusNotModified {
88796		if res.Body != nil {
88797			res.Body.Close()
88798		}
88799		return nil, &googleapi.Error{
88800			Code:   res.StatusCode,
88801			Header: res.Header,
88802		}
88803	}
88804	if err != nil {
88805		return nil, err
88806	}
88807	defer googleapi.CloseBody(res)
88808	if err := googleapi.CheckResponse(res); err != nil {
88809		return nil, err
88810	}
88811	ret := &TestPermissionsResponse{
88812		ServerResponse: googleapi.ServerResponse{
88813			Header:         res.Header,
88814			HTTPStatusCode: res.StatusCode,
88815		},
88816	}
88817	target := &ret
88818	if err := gensupport.DecodeResponse(target, res); err != nil {
88819		return nil, err
88820	}
88821	return ret, nil
88822	// {
88823	//   "description": "Returns permissions that a caller has on the specified resource.",
88824	//   "httpMethod": "POST",
88825	//   "id": "compute.instanceTemplates.testIamPermissions",
88826	//   "parameterOrder": [
88827	//     "project",
88828	//     "resource"
88829	//   ],
88830	//   "parameters": {
88831	//     "project": {
88832	//       "description": "Project ID for this request.",
88833	//       "location": "path",
88834	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88835	//       "required": true,
88836	//       "type": "string"
88837	//     },
88838	//     "resource": {
88839	//       "description": "Name or id of the resource for this request.",
88840	//       "location": "path",
88841	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
88842	//       "required": true,
88843	//       "type": "string"
88844	//     }
88845	//   },
88846	//   "path": "projects/{project}/global/instanceTemplates/{resource}/testIamPermissions",
88847	//   "request": {
88848	//     "$ref": "TestPermissionsRequest"
88849	//   },
88850	//   "response": {
88851	//     "$ref": "TestPermissionsResponse"
88852	//   },
88853	//   "scopes": [
88854	//     "https://www.googleapis.com/auth/cloud-platform",
88855	//     "https://www.googleapis.com/auth/compute",
88856	//     "https://www.googleapis.com/auth/compute.readonly"
88857	//   ]
88858	// }
88859
88860}
88861
88862// method id "compute.instances.addAccessConfig":
88863
88864type InstancesAddAccessConfigCall struct {
88865	s            *Service
88866	project      string
88867	zone         string
88868	instance     string
88869	accessconfig *AccessConfig
88870	urlParams_   gensupport.URLParams
88871	ctx_         context.Context
88872	header_      http.Header
88873}
88874
88875// AddAccessConfig: Adds an access config to an instance's network
88876// interface.
88877// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/addAccessConfig
88878func (r *InstancesService) AddAccessConfig(project string, zone string, instance string, networkInterface string, accessconfig *AccessConfig) *InstancesAddAccessConfigCall {
88879	c := &InstancesAddAccessConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88880	c.project = project
88881	c.zone = zone
88882	c.instance = instance
88883	c.urlParams_.Set("networkInterface", networkInterface)
88884	c.accessconfig = accessconfig
88885	return c
88886}
88887
88888// RequestId sets the optional parameter "requestId": An optional
88889// request ID to identify requests. Specify a unique request ID so that
88890// if you must retry your request, the server will know to ignore the
88891// request if it has already been completed.
88892//
88893// For example, consider a situation where you make an initial request
88894// and the request times out. If you make the request again with the
88895// same request ID, the server can check if original operation with the
88896// same request ID was received, and if so, will ignore the second
88897// request. This prevents clients from accidentally creating duplicate
88898// commitments.
88899//
88900// The request ID must be a valid UUID with the exception that zero UUID
88901// is not supported (00000000-0000-0000-0000-000000000000).
88902func (c *InstancesAddAccessConfigCall) RequestId(requestId string) *InstancesAddAccessConfigCall {
88903	c.urlParams_.Set("requestId", requestId)
88904	return c
88905}
88906
88907// Fields allows partial responses to be retrieved. See
88908// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88909// for more information.
88910func (c *InstancesAddAccessConfigCall) Fields(s ...googleapi.Field) *InstancesAddAccessConfigCall {
88911	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88912	return c
88913}
88914
88915// Context sets the context to be used in this call's Do method. Any
88916// pending HTTP request will be aborted if the provided context is
88917// canceled.
88918func (c *InstancesAddAccessConfigCall) Context(ctx context.Context) *InstancesAddAccessConfigCall {
88919	c.ctx_ = ctx
88920	return c
88921}
88922
88923// Header returns an http.Header that can be modified by the caller to
88924// add HTTP headers to the request.
88925func (c *InstancesAddAccessConfigCall) Header() http.Header {
88926	if c.header_ == nil {
88927		c.header_ = make(http.Header)
88928	}
88929	return c.header_
88930}
88931
88932func (c *InstancesAddAccessConfigCall) doRequest(alt string) (*http.Response, error) {
88933	reqHeaders := make(http.Header)
88934	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
88935	for k, v := range c.header_ {
88936		reqHeaders[k] = v
88937	}
88938	reqHeaders.Set("User-Agent", c.s.userAgent())
88939	var body io.Reader = nil
88940	body, err := googleapi.WithoutDataWrapper.JSONReader(c.accessconfig)
88941	if err != nil {
88942		return nil, err
88943	}
88944	reqHeaders.Set("Content-Type", "application/json")
88945	c.urlParams_.Set("alt", alt)
88946	c.urlParams_.Set("prettyPrint", "false")
88947	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/addAccessConfig")
88948	urls += "?" + c.urlParams_.Encode()
88949	req, err := http.NewRequest("POST", urls, body)
88950	if err != nil {
88951		return nil, err
88952	}
88953	req.Header = reqHeaders
88954	googleapi.Expand(req.URL, map[string]string{
88955		"project":  c.project,
88956		"zone":     c.zone,
88957		"instance": c.instance,
88958	})
88959	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88960}
88961
88962// Do executes the "compute.instances.addAccessConfig" call.
88963// Exactly one of *Operation or error will be non-nil. Any non-2xx
88964// status code is an error. Response headers are in either
88965// *Operation.ServerResponse.Header or (if a response was returned at
88966// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
88967// to check whether the returned error was because
88968// http.StatusNotModified was returned.
88969func (c *InstancesAddAccessConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
88970	gensupport.SetOptions(c.urlParams_, opts...)
88971	res, err := c.doRequest("json")
88972	if res != nil && res.StatusCode == http.StatusNotModified {
88973		if res.Body != nil {
88974			res.Body.Close()
88975		}
88976		return nil, &googleapi.Error{
88977			Code:   res.StatusCode,
88978			Header: res.Header,
88979		}
88980	}
88981	if err != nil {
88982		return nil, err
88983	}
88984	defer googleapi.CloseBody(res)
88985	if err := googleapi.CheckResponse(res); err != nil {
88986		return nil, err
88987	}
88988	ret := &Operation{
88989		ServerResponse: googleapi.ServerResponse{
88990			Header:         res.Header,
88991			HTTPStatusCode: res.StatusCode,
88992		},
88993	}
88994	target := &ret
88995	if err := gensupport.DecodeResponse(target, res); err != nil {
88996		return nil, err
88997	}
88998	return ret, nil
88999	// {
89000	//   "description": "Adds an access config to an instance's network interface.",
89001	//   "httpMethod": "POST",
89002	//   "id": "compute.instances.addAccessConfig",
89003	//   "parameterOrder": [
89004	//     "project",
89005	//     "zone",
89006	//     "instance",
89007	//     "networkInterface"
89008	//   ],
89009	//   "parameters": {
89010	//     "instance": {
89011	//       "description": "The instance name for this request.",
89012	//       "location": "path",
89013	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
89014	//       "required": true,
89015	//       "type": "string"
89016	//     },
89017	//     "networkInterface": {
89018	//       "description": "The name of the network interface to add to this instance.",
89019	//       "location": "query",
89020	//       "required": true,
89021	//       "type": "string"
89022	//     },
89023	//     "project": {
89024	//       "description": "Project ID for this request.",
89025	//       "location": "path",
89026	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89027	//       "required": true,
89028	//       "type": "string"
89029	//     },
89030	//     "requestId": {
89031	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
89032	//       "location": "query",
89033	//       "type": "string"
89034	//     },
89035	//     "zone": {
89036	//       "description": "The name of the zone for this request.",
89037	//       "location": "path",
89038	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
89039	//       "required": true,
89040	//       "type": "string"
89041	//     }
89042	//   },
89043	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/addAccessConfig",
89044	//   "request": {
89045	//     "$ref": "AccessConfig"
89046	//   },
89047	//   "response": {
89048	//     "$ref": "Operation"
89049	//   },
89050	//   "scopes": [
89051	//     "https://www.googleapis.com/auth/cloud-platform",
89052	//     "https://www.googleapis.com/auth/compute"
89053	//   ]
89054	// }
89055
89056}
89057
89058// method id "compute.instances.addResourcePolicies":
89059
89060type InstancesAddResourcePoliciesCall struct {
89061	s                                   *Service
89062	project                             string
89063	zone                                string
89064	instance                            string
89065	instancesaddresourcepoliciesrequest *InstancesAddResourcePoliciesRequest
89066	urlParams_                          gensupport.URLParams
89067	ctx_                                context.Context
89068	header_                             http.Header
89069}
89070
89071// AddResourcePolicies: Adds existing resource policies to an instance.
89072// You can only add one policy right now which will be applied to this
89073// instance for scheduling live migrations.
89074func (r *InstancesService) AddResourcePolicies(project string, zone string, instance string, instancesaddresourcepoliciesrequest *InstancesAddResourcePoliciesRequest) *InstancesAddResourcePoliciesCall {
89075	c := &InstancesAddResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89076	c.project = project
89077	c.zone = zone
89078	c.instance = instance
89079	c.instancesaddresourcepoliciesrequest = instancesaddresourcepoliciesrequest
89080	return c
89081}
89082
89083// RequestId sets the optional parameter "requestId": An optional
89084// request ID to identify requests. Specify a unique request ID so that
89085// if you must retry your request, the server will know to ignore the
89086// request if it has already been completed.
89087//
89088// For example, consider a situation where you make an initial request
89089// and the request times out. If you make the request again with the
89090// same request ID, the server can check if original operation with the
89091// same request ID was received, and if so, will ignore the second
89092// request. This prevents clients from accidentally creating duplicate
89093// commitments.
89094//
89095// The request ID must be a valid UUID with the exception that zero UUID
89096// is not supported (00000000-0000-0000-0000-000000000000).
89097func (c *InstancesAddResourcePoliciesCall) RequestId(requestId string) *InstancesAddResourcePoliciesCall {
89098	c.urlParams_.Set("requestId", requestId)
89099	return c
89100}
89101
89102// Fields allows partial responses to be retrieved. See
89103// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89104// for more information.
89105func (c *InstancesAddResourcePoliciesCall) Fields(s ...googleapi.Field) *InstancesAddResourcePoliciesCall {
89106	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89107	return c
89108}
89109
89110// Context sets the context to be used in this call's Do method. Any
89111// pending HTTP request will be aborted if the provided context is
89112// canceled.
89113func (c *InstancesAddResourcePoliciesCall) Context(ctx context.Context) *InstancesAddResourcePoliciesCall {
89114	c.ctx_ = ctx
89115	return c
89116}
89117
89118// Header returns an http.Header that can be modified by the caller to
89119// add HTTP headers to the request.
89120func (c *InstancesAddResourcePoliciesCall) Header() http.Header {
89121	if c.header_ == nil {
89122		c.header_ = make(http.Header)
89123	}
89124	return c.header_
89125}
89126
89127func (c *InstancesAddResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
89128	reqHeaders := make(http.Header)
89129	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
89130	for k, v := range c.header_ {
89131		reqHeaders[k] = v
89132	}
89133	reqHeaders.Set("User-Agent", c.s.userAgent())
89134	var body io.Reader = nil
89135	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancesaddresourcepoliciesrequest)
89136	if err != nil {
89137		return nil, err
89138	}
89139	reqHeaders.Set("Content-Type", "application/json")
89140	c.urlParams_.Set("alt", alt)
89141	c.urlParams_.Set("prettyPrint", "false")
89142	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/addResourcePolicies")
89143	urls += "?" + c.urlParams_.Encode()
89144	req, err := http.NewRequest("POST", urls, body)
89145	if err != nil {
89146		return nil, err
89147	}
89148	req.Header = reqHeaders
89149	googleapi.Expand(req.URL, map[string]string{
89150		"project":  c.project,
89151		"zone":     c.zone,
89152		"instance": c.instance,
89153	})
89154	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89155}
89156
89157// Do executes the "compute.instances.addResourcePolicies" call.
89158// Exactly one of *Operation or error will be non-nil. Any non-2xx
89159// status code is an error. Response headers are in either
89160// *Operation.ServerResponse.Header or (if a response was returned at
89161// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
89162// to check whether the returned error was because
89163// http.StatusNotModified was returned.
89164func (c *InstancesAddResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
89165	gensupport.SetOptions(c.urlParams_, opts...)
89166	res, err := c.doRequest("json")
89167	if res != nil && res.StatusCode == http.StatusNotModified {
89168		if res.Body != nil {
89169			res.Body.Close()
89170		}
89171		return nil, &googleapi.Error{
89172			Code:   res.StatusCode,
89173			Header: res.Header,
89174		}
89175	}
89176	if err != nil {
89177		return nil, err
89178	}
89179	defer googleapi.CloseBody(res)
89180	if err := googleapi.CheckResponse(res); err != nil {
89181		return nil, err
89182	}
89183	ret := &Operation{
89184		ServerResponse: googleapi.ServerResponse{
89185			Header:         res.Header,
89186			HTTPStatusCode: res.StatusCode,
89187		},
89188	}
89189	target := &ret
89190	if err := gensupport.DecodeResponse(target, res); err != nil {
89191		return nil, err
89192	}
89193	return ret, nil
89194	// {
89195	//   "description": "Adds existing resource policies to an instance. You can only add one policy right now which will be applied to this instance for scheduling live migrations.",
89196	//   "httpMethod": "POST",
89197	//   "id": "compute.instances.addResourcePolicies",
89198	//   "parameterOrder": [
89199	//     "project",
89200	//     "zone",
89201	//     "instance"
89202	//   ],
89203	//   "parameters": {
89204	//     "instance": {
89205	//       "description": "The instance name for this request.",
89206	//       "location": "path",
89207	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
89208	//       "required": true,
89209	//       "type": "string"
89210	//     },
89211	//     "project": {
89212	//       "description": "Project ID for this request.",
89213	//       "location": "path",
89214	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89215	//       "required": true,
89216	//       "type": "string"
89217	//     },
89218	//     "requestId": {
89219	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
89220	//       "location": "query",
89221	//       "type": "string"
89222	//     },
89223	//     "zone": {
89224	//       "description": "The name of the zone for this request.",
89225	//       "location": "path",
89226	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
89227	//       "required": true,
89228	//       "type": "string"
89229	//     }
89230	//   },
89231	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/addResourcePolicies",
89232	//   "request": {
89233	//     "$ref": "InstancesAddResourcePoliciesRequest"
89234	//   },
89235	//   "response": {
89236	//     "$ref": "Operation"
89237	//   },
89238	//   "scopes": [
89239	//     "https://www.googleapis.com/auth/cloud-platform",
89240	//     "https://www.googleapis.com/auth/compute"
89241	//   ]
89242	// }
89243
89244}
89245
89246// method id "compute.instances.aggregatedList":
89247
89248type InstancesAggregatedListCall struct {
89249	s            *Service
89250	project      string
89251	urlParams_   gensupport.URLParams
89252	ifNoneMatch_ string
89253	ctx_         context.Context
89254	header_      http.Header
89255}
89256
89257// AggregatedList: Retrieves aggregated list of all of the instances in
89258// your project across all regions and zones.
89259// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/aggregatedList
89260func (r *InstancesService) AggregatedList(project string) *InstancesAggregatedListCall {
89261	c := &InstancesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89262	c.project = project
89263	return c
89264}
89265
89266// Filter sets the optional parameter "filter": A filter expression that
89267// filters resources listed in the response. The expression must specify
89268// the field name, a comparison operator, and the value that you want to
89269// use for filtering. The value must be a string, a number, or a
89270// boolean. The comparison operator must be either `=`, `!=`, `>`, or
89271// `<`.
89272//
89273// For example, if you are filtering Compute Engine instances, you can
89274// exclude instances named `example-instance` by specifying `name !=
89275// example-instance`.
89276//
89277// You can also filter nested fields. For example, you could specify
89278// `scheduling.automaticRestart = false` to include instances only if
89279// they are not scheduled for automatic restarts. You can use filtering
89280// on nested fields to filter based on resource labels.
89281//
89282// To filter on multiple expressions, provide each separate expression
89283// within parentheses. For example: ``` (scheduling.automaticRestart =
89284// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
89285// is an `AND` expression. However, you can include `AND` and `OR`
89286// expressions explicitly. For example: ``` (cpuPlatform = "Intel
89287// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
89288// (scheduling.automaticRestart = true) ```
89289func (c *InstancesAggregatedListCall) Filter(filter string) *InstancesAggregatedListCall {
89290	c.urlParams_.Set("filter", filter)
89291	return c
89292}
89293
89294// IncludeAllScopes sets the optional parameter "includeAllScopes":
89295// Indicates whether every visible scope for each scope type (zone,
89296// region, global) should be included in the response. For new resource
89297// types added after this field, the flag has no effect as new resource
89298// types will always include every visible scope for each scope type in
89299// response. For resource types which predate this field, if this flag
89300// is omitted or false, only scopes of the scope types where the
89301// resource type is expected to be found will be included.
89302func (c *InstancesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *InstancesAggregatedListCall {
89303	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
89304	return c
89305}
89306
89307// MaxResults sets the optional parameter "maxResults": The maximum
89308// number of results per page that should be returned. If the number of
89309// available results is larger than `maxResults`, Compute Engine returns
89310// a `nextPageToken` that can be used to get the next page of results in
89311// subsequent list requests. Acceptable values are `0` to `500`,
89312// inclusive. (Default: `500`)
89313func (c *InstancesAggregatedListCall) MaxResults(maxResults int64) *InstancesAggregatedListCall {
89314	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
89315	return c
89316}
89317
89318// OrderBy sets the optional parameter "orderBy": Sorts list results by
89319// a certain order. By default, results are returned in alphanumerical
89320// order based on the resource name.
89321//
89322// You can also sort results in descending order based on the creation
89323// timestamp using `orderBy="creationTimestamp desc". This sorts
89324// results based on the `creationTimestamp` field in reverse
89325// chronological order (newest result first). Use this to sort resources
89326// like operations so that the newest operation is returned
89327// first.
89328//
89329// Currently, only sorting by `name` or `creationTimestamp desc` is
89330// supported.
89331func (c *InstancesAggregatedListCall) OrderBy(orderBy string) *InstancesAggregatedListCall {
89332	c.urlParams_.Set("orderBy", orderBy)
89333	return c
89334}
89335
89336// PageToken sets the optional parameter "pageToken": Specifies a page
89337// token to use. Set `pageToken` to the `nextPageToken` returned by a
89338// previous list request to get the next page of results.
89339func (c *InstancesAggregatedListCall) PageToken(pageToken string) *InstancesAggregatedListCall {
89340	c.urlParams_.Set("pageToken", pageToken)
89341	return c
89342}
89343
89344// ReturnPartialSuccess sets the optional parameter
89345// "returnPartialSuccess": Opt-in for partial success behavior which
89346// provides partial results in case of failure. The default value is
89347// false.
89348func (c *InstancesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstancesAggregatedListCall {
89349	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
89350	return c
89351}
89352
89353// Fields allows partial responses to be retrieved. See
89354// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89355// for more information.
89356func (c *InstancesAggregatedListCall) Fields(s ...googleapi.Field) *InstancesAggregatedListCall {
89357	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89358	return c
89359}
89360
89361// IfNoneMatch sets the optional parameter which makes the operation
89362// fail if the object's ETag matches the given value. This is useful for
89363// getting updates only after the object has changed since the last
89364// request. Use googleapi.IsNotModified to check whether the response
89365// error from Do is the result of In-None-Match.
89366func (c *InstancesAggregatedListCall) IfNoneMatch(entityTag string) *InstancesAggregatedListCall {
89367	c.ifNoneMatch_ = entityTag
89368	return c
89369}
89370
89371// Context sets the context to be used in this call's Do method. Any
89372// pending HTTP request will be aborted if the provided context is
89373// canceled.
89374func (c *InstancesAggregatedListCall) Context(ctx context.Context) *InstancesAggregatedListCall {
89375	c.ctx_ = ctx
89376	return c
89377}
89378
89379// Header returns an http.Header that can be modified by the caller to
89380// add HTTP headers to the request.
89381func (c *InstancesAggregatedListCall) Header() http.Header {
89382	if c.header_ == nil {
89383		c.header_ = make(http.Header)
89384	}
89385	return c.header_
89386}
89387
89388func (c *InstancesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
89389	reqHeaders := make(http.Header)
89390	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
89391	for k, v := range c.header_ {
89392		reqHeaders[k] = v
89393	}
89394	reqHeaders.Set("User-Agent", c.s.userAgent())
89395	if c.ifNoneMatch_ != "" {
89396		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
89397	}
89398	var body io.Reader = nil
89399	c.urlParams_.Set("alt", alt)
89400	c.urlParams_.Set("prettyPrint", "false")
89401	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/instances")
89402	urls += "?" + c.urlParams_.Encode()
89403	req, err := http.NewRequest("GET", urls, body)
89404	if err != nil {
89405		return nil, err
89406	}
89407	req.Header = reqHeaders
89408	googleapi.Expand(req.URL, map[string]string{
89409		"project": c.project,
89410	})
89411	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89412}
89413
89414// Do executes the "compute.instances.aggregatedList" call.
89415// Exactly one of *InstanceAggregatedList or error will be non-nil. Any
89416// non-2xx status code is an error. Response headers are in either
89417// *InstanceAggregatedList.ServerResponse.Header or (if a response was
89418// returned at all) in error.(*googleapi.Error).Header. Use
89419// googleapi.IsNotModified to check whether the returned error was
89420// because http.StatusNotModified was returned.
89421func (c *InstancesAggregatedListCall) Do(opts ...googleapi.CallOption) (*InstanceAggregatedList, error) {
89422	gensupport.SetOptions(c.urlParams_, opts...)
89423	res, err := c.doRequest("json")
89424	if res != nil && res.StatusCode == http.StatusNotModified {
89425		if res.Body != nil {
89426			res.Body.Close()
89427		}
89428		return nil, &googleapi.Error{
89429			Code:   res.StatusCode,
89430			Header: res.Header,
89431		}
89432	}
89433	if err != nil {
89434		return nil, err
89435	}
89436	defer googleapi.CloseBody(res)
89437	if err := googleapi.CheckResponse(res); err != nil {
89438		return nil, err
89439	}
89440	ret := &InstanceAggregatedList{
89441		ServerResponse: googleapi.ServerResponse{
89442			Header:         res.Header,
89443			HTTPStatusCode: res.StatusCode,
89444		},
89445	}
89446	target := &ret
89447	if err := gensupport.DecodeResponse(target, res); err != nil {
89448		return nil, err
89449	}
89450	return ret, nil
89451	// {
89452	//   "description": "Retrieves aggregated list of all of the instances in your project across all regions and zones.",
89453	//   "httpMethod": "GET",
89454	//   "id": "compute.instances.aggregatedList",
89455	//   "parameterOrder": [
89456	//     "project"
89457	//   ],
89458	//   "parameters": {
89459	//     "filter": {
89460	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
89461	//       "location": "query",
89462	//       "type": "string"
89463	//     },
89464	//     "includeAllScopes": {
89465	//       "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.",
89466	//       "location": "query",
89467	//       "type": "boolean"
89468	//     },
89469	//     "maxResults": {
89470	//       "default": "500",
89471	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
89472	//       "format": "uint32",
89473	//       "location": "query",
89474	//       "minimum": "0",
89475	//       "type": "integer"
89476	//     },
89477	//     "orderBy": {
89478	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
89479	//       "location": "query",
89480	//       "type": "string"
89481	//     },
89482	//     "pageToken": {
89483	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
89484	//       "location": "query",
89485	//       "type": "string"
89486	//     },
89487	//     "project": {
89488	//       "description": "Project ID for this request.",
89489	//       "location": "path",
89490	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89491	//       "required": true,
89492	//       "type": "string"
89493	//     },
89494	//     "returnPartialSuccess": {
89495	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
89496	//       "location": "query",
89497	//       "type": "boolean"
89498	//     }
89499	//   },
89500	//   "path": "projects/{project}/aggregated/instances",
89501	//   "response": {
89502	//     "$ref": "InstanceAggregatedList"
89503	//   },
89504	//   "scopes": [
89505	//     "https://www.googleapis.com/auth/cloud-platform",
89506	//     "https://www.googleapis.com/auth/compute",
89507	//     "https://www.googleapis.com/auth/compute.readonly"
89508	//   ]
89509	// }
89510
89511}
89512
89513// Pages invokes f for each page of results.
89514// A non-nil error returned from f will halt the iteration.
89515// The provided context supersedes any context provided to the Context method.
89516func (c *InstancesAggregatedListCall) Pages(ctx context.Context, f func(*InstanceAggregatedList) error) error {
89517	c.ctx_ = ctx
89518	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
89519	for {
89520		x, err := c.Do()
89521		if err != nil {
89522			return err
89523		}
89524		if err := f(x); err != nil {
89525			return err
89526		}
89527		if x.NextPageToken == "" {
89528			return nil
89529		}
89530		c.PageToken(x.NextPageToken)
89531	}
89532}
89533
89534// method id "compute.instances.attachDisk":
89535
89536type InstancesAttachDiskCall struct {
89537	s            *Service
89538	project      string
89539	zone         string
89540	instance     string
89541	attacheddisk *AttachedDisk
89542	urlParams_   gensupport.URLParams
89543	ctx_         context.Context
89544	header_      http.Header
89545}
89546
89547// AttachDisk: Attaches an existing Disk resource to an instance. You
89548// must first create the disk before you can attach it. It is not
89549// possible to create and attach a disk at the same time. For more
89550// information, read Adding a persistent disk to your instance.
89551// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/attachDisk
89552func (r *InstancesService) AttachDisk(project string, zone string, instance string, attacheddisk *AttachedDisk) *InstancesAttachDiskCall {
89553	c := &InstancesAttachDiskCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89554	c.project = project
89555	c.zone = zone
89556	c.instance = instance
89557	c.attacheddisk = attacheddisk
89558	return c
89559}
89560
89561// ForceAttach sets the optional parameter "forceAttach": Whether to
89562// force attach the regional disk even if it's currently attached to
89563// another instance. If you try to force attach a zonal disk to an
89564// instance, you will receive an error.
89565func (c *InstancesAttachDiskCall) ForceAttach(forceAttach bool) *InstancesAttachDiskCall {
89566	c.urlParams_.Set("forceAttach", fmt.Sprint(forceAttach))
89567	return c
89568}
89569
89570// RequestId sets the optional parameter "requestId": An optional
89571// request ID to identify requests. Specify a unique request ID so that
89572// if you must retry your request, the server will know to ignore the
89573// request if it has already been completed.
89574//
89575// For example, consider a situation where you make an initial request
89576// and the request times out. If you make the request again with the
89577// same request ID, the server can check if original operation with the
89578// same request ID was received, and if so, will ignore the second
89579// request. This prevents clients from accidentally creating duplicate
89580// commitments.
89581//
89582// The request ID must be a valid UUID with the exception that zero UUID
89583// is not supported (00000000-0000-0000-0000-000000000000).
89584func (c *InstancesAttachDiskCall) RequestId(requestId string) *InstancesAttachDiskCall {
89585	c.urlParams_.Set("requestId", requestId)
89586	return c
89587}
89588
89589// Fields allows partial responses to be retrieved. See
89590// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89591// for more information.
89592func (c *InstancesAttachDiskCall) Fields(s ...googleapi.Field) *InstancesAttachDiskCall {
89593	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89594	return c
89595}
89596
89597// Context sets the context to be used in this call's Do method. Any
89598// pending HTTP request will be aborted if the provided context is
89599// canceled.
89600func (c *InstancesAttachDiskCall) Context(ctx context.Context) *InstancesAttachDiskCall {
89601	c.ctx_ = ctx
89602	return c
89603}
89604
89605// Header returns an http.Header that can be modified by the caller to
89606// add HTTP headers to the request.
89607func (c *InstancesAttachDiskCall) Header() http.Header {
89608	if c.header_ == nil {
89609		c.header_ = make(http.Header)
89610	}
89611	return c.header_
89612}
89613
89614func (c *InstancesAttachDiskCall) doRequest(alt string) (*http.Response, error) {
89615	reqHeaders := make(http.Header)
89616	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
89617	for k, v := range c.header_ {
89618		reqHeaders[k] = v
89619	}
89620	reqHeaders.Set("User-Agent", c.s.userAgent())
89621	var body io.Reader = nil
89622	body, err := googleapi.WithoutDataWrapper.JSONReader(c.attacheddisk)
89623	if err != nil {
89624		return nil, err
89625	}
89626	reqHeaders.Set("Content-Type", "application/json")
89627	c.urlParams_.Set("alt", alt)
89628	c.urlParams_.Set("prettyPrint", "false")
89629	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/attachDisk")
89630	urls += "?" + c.urlParams_.Encode()
89631	req, err := http.NewRequest("POST", urls, body)
89632	if err != nil {
89633		return nil, err
89634	}
89635	req.Header = reqHeaders
89636	googleapi.Expand(req.URL, map[string]string{
89637		"project":  c.project,
89638		"zone":     c.zone,
89639		"instance": c.instance,
89640	})
89641	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89642}
89643
89644// Do executes the "compute.instances.attachDisk" call.
89645// Exactly one of *Operation or error will be non-nil. Any non-2xx
89646// status code is an error. Response headers are in either
89647// *Operation.ServerResponse.Header or (if a response was returned at
89648// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
89649// to check whether the returned error was because
89650// http.StatusNotModified was returned.
89651func (c *InstancesAttachDiskCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
89652	gensupport.SetOptions(c.urlParams_, opts...)
89653	res, err := c.doRequest("json")
89654	if res != nil && res.StatusCode == http.StatusNotModified {
89655		if res.Body != nil {
89656			res.Body.Close()
89657		}
89658		return nil, &googleapi.Error{
89659			Code:   res.StatusCode,
89660			Header: res.Header,
89661		}
89662	}
89663	if err != nil {
89664		return nil, err
89665	}
89666	defer googleapi.CloseBody(res)
89667	if err := googleapi.CheckResponse(res); err != nil {
89668		return nil, err
89669	}
89670	ret := &Operation{
89671		ServerResponse: googleapi.ServerResponse{
89672			Header:         res.Header,
89673			HTTPStatusCode: res.StatusCode,
89674		},
89675	}
89676	target := &ret
89677	if err := gensupport.DecodeResponse(target, res); err != nil {
89678		return nil, err
89679	}
89680	return ret, nil
89681	// {
89682	//   "description": "Attaches an existing Disk resource to an instance. You must first create the disk before you can attach it. It is not possible to create and attach a disk at the same time. For more information, read Adding a persistent disk to your instance.",
89683	//   "httpMethod": "POST",
89684	//   "id": "compute.instances.attachDisk",
89685	//   "parameterOrder": [
89686	//     "project",
89687	//     "zone",
89688	//     "instance"
89689	//   ],
89690	//   "parameters": {
89691	//     "forceAttach": {
89692	//       "description": "Whether to force attach the regional disk even if it's currently attached to another instance. If you try to force attach a zonal disk to an instance, you will receive an error.",
89693	//       "location": "query",
89694	//       "type": "boolean"
89695	//     },
89696	//     "instance": {
89697	//       "description": "The instance name for this request.",
89698	//       "location": "path",
89699	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
89700	//       "required": true,
89701	//       "type": "string"
89702	//     },
89703	//     "project": {
89704	//       "description": "Project ID for this request.",
89705	//       "location": "path",
89706	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89707	//       "required": true,
89708	//       "type": "string"
89709	//     },
89710	//     "requestId": {
89711	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
89712	//       "location": "query",
89713	//       "type": "string"
89714	//     },
89715	//     "zone": {
89716	//       "description": "The name of the zone for this request.",
89717	//       "location": "path",
89718	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
89719	//       "required": true,
89720	//       "type": "string"
89721	//     }
89722	//   },
89723	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/attachDisk",
89724	//   "request": {
89725	//     "$ref": "AttachedDisk"
89726	//   },
89727	//   "response": {
89728	//     "$ref": "Operation"
89729	//   },
89730	//   "scopes": [
89731	//     "https://www.googleapis.com/auth/cloud-platform",
89732	//     "https://www.googleapis.com/auth/compute"
89733	//   ]
89734	// }
89735
89736}
89737
89738// method id "compute.instances.bulkInsert":
89739
89740type InstancesBulkInsertCall struct {
89741	s                          *Service
89742	project                    string
89743	zone                       string
89744	bulkinsertinstanceresource *BulkInsertInstanceResource
89745	urlParams_                 gensupport.URLParams
89746	ctx_                       context.Context
89747	header_                    http.Header
89748}
89749
89750// BulkInsert: Creates multiple instances. Count specifies the number of
89751// instances to create.
89752func (r *InstancesService) BulkInsert(project string, zone string, bulkinsertinstanceresource *BulkInsertInstanceResource) *InstancesBulkInsertCall {
89753	c := &InstancesBulkInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89754	c.project = project
89755	c.zone = zone
89756	c.bulkinsertinstanceresource = bulkinsertinstanceresource
89757	return c
89758}
89759
89760// RequestId sets the optional parameter "requestId": An optional
89761// request ID to identify requests. Specify a unique request ID so that
89762// if you must retry your request, the server will know to ignore the
89763// request if it has already been completed.
89764//
89765// For example, consider a situation where you make an initial request
89766// and the request times out. If you make the request again with the
89767// same request ID, the server can check if original operation with the
89768// same request ID was received, and if so, will ignore the second
89769// request. This prevents clients from accidentally creating duplicate
89770// commitments.
89771//
89772// The request ID must be a valid UUID with the exception that zero UUID
89773// is not supported (00000000-0000-0000-0000-000000000000).
89774func (c *InstancesBulkInsertCall) RequestId(requestId string) *InstancesBulkInsertCall {
89775	c.urlParams_.Set("requestId", requestId)
89776	return c
89777}
89778
89779// Fields allows partial responses to be retrieved. See
89780// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89781// for more information.
89782func (c *InstancesBulkInsertCall) Fields(s ...googleapi.Field) *InstancesBulkInsertCall {
89783	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89784	return c
89785}
89786
89787// Context sets the context to be used in this call's Do method. Any
89788// pending HTTP request will be aborted if the provided context is
89789// canceled.
89790func (c *InstancesBulkInsertCall) Context(ctx context.Context) *InstancesBulkInsertCall {
89791	c.ctx_ = ctx
89792	return c
89793}
89794
89795// Header returns an http.Header that can be modified by the caller to
89796// add HTTP headers to the request.
89797func (c *InstancesBulkInsertCall) Header() http.Header {
89798	if c.header_ == nil {
89799		c.header_ = make(http.Header)
89800	}
89801	return c.header_
89802}
89803
89804func (c *InstancesBulkInsertCall) doRequest(alt string) (*http.Response, error) {
89805	reqHeaders := make(http.Header)
89806	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
89807	for k, v := range c.header_ {
89808		reqHeaders[k] = v
89809	}
89810	reqHeaders.Set("User-Agent", c.s.userAgent())
89811	var body io.Reader = nil
89812	body, err := googleapi.WithoutDataWrapper.JSONReader(c.bulkinsertinstanceresource)
89813	if err != nil {
89814		return nil, err
89815	}
89816	reqHeaders.Set("Content-Type", "application/json")
89817	c.urlParams_.Set("alt", alt)
89818	c.urlParams_.Set("prettyPrint", "false")
89819	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/bulkInsert")
89820	urls += "?" + c.urlParams_.Encode()
89821	req, err := http.NewRequest("POST", urls, body)
89822	if err != nil {
89823		return nil, err
89824	}
89825	req.Header = reqHeaders
89826	googleapi.Expand(req.URL, map[string]string{
89827		"project": c.project,
89828		"zone":    c.zone,
89829	})
89830	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89831}
89832
89833// Do executes the "compute.instances.bulkInsert" call.
89834// Exactly one of *Operation or error will be non-nil. Any non-2xx
89835// status code is an error. Response headers are in either
89836// *Operation.ServerResponse.Header or (if a response was returned at
89837// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
89838// to check whether the returned error was because
89839// http.StatusNotModified was returned.
89840func (c *InstancesBulkInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
89841	gensupport.SetOptions(c.urlParams_, opts...)
89842	res, err := c.doRequest("json")
89843	if res != nil && res.StatusCode == http.StatusNotModified {
89844		if res.Body != nil {
89845			res.Body.Close()
89846		}
89847		return nil, &googleapi.Error{
89848			Code:   res.StatusCode,
89849			Header: res.Header,
89850		}
89851	}
89852	if err != nil {
89853		return nil, err
89854	}
89855	defer googleapi.CloseBody(res)
89856	if err := googleapi.CheckResponse(res); err != nil {
89857		return nil, err
89858	}
89859	ret := &Operation{
89860		ServerResponse: googleapi.ServerResponse{
89861			Header:         res.Header,
89862			HTTPStatusCode: res.StatusCode,
89863		},
89864	}
89865	target := &ret
89866	if err := gensupport.DecodeResponse(target, res); err != nil {
89867		return nil, err
89868	}
89869	return ret, nil
89870	// {
89871	//   "description": "Creates multiple instances. Count specifies the number of instances to create.",
89872	//   "httpMethod": "POST",
89873	//   "id": "compute.instances.bulkInsert",
89874	//   "parameterOrder": [
89875	//     "project",
89876	//     "zone"
89877	//   ],
89878	//   "parameters": {
89879	//     "project": {
89880	//       "description": "Project ID for this request.",
89881	//       "location": "path",
89882	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89883	//       "required": true,
89884	//       "type": "string"
89885	//     },
89886	//     "requestId": {
89887	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
89888	//       "location": "query",
89889	//       "type": "string"
89890	//     },
89891	//     "zone": {
89892	//       "description": "The name of the zone for this request.",
89893	//       "location": "path",
89894	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
89895	//       "required": true,
89896	//       "type": "string"
89897	//     }
89898	//   },
89899	//   "path": "projects/{project}/zones/{zone}/instances/bulkInsert",
89900	//   "request": {
89901	//     "$ref": "BulkInsertInstanceResource"
89902	//   },
89903	//   "response": {
89904	//     "$ref": "Operation"
89905	//   },
89906	//   "scopes": [
89907	//     "https://www.googleapis.com/auth/cloud-platform",
89908	//     "https://www.googleapis.com/auth/compute"
89909	//   ]
89910	// }
89911
89912}
89913
89914// method id "compute.instances.delete":
89915
89916type InstancesDeleteCall struct {
89917	s          *Service
89918	project    string
89919	zone       string
89920	instance   string
89921	urlParams_ gensupport.URLParams
89922	ctx_       context.Context
89923	header_    http.Header
89924}
89925
89926// Delete: Deletes the specified Instance resource. For more
89927// information, see Stopping or Deleting an Instance.
89928// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/delete
89929func (r *InstancesService) Delete(project string, zone string, instance string) *InstancesDeleteCall {
89930	c := &InstancesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89931	c.project = project
89932	c.zone = zone
89933	c.instance = instance
89934	return c
89935}
89936
89937// RequestId sets the optional parameter "requestId": An optional
89938// request ID to identify requests. Specify a unique request ID so that
89939// if you must retry your request, the server will know to ignore the
89940// request if it has already been completed.
89941//
89942// For example, consider a situation where you make an initial request
89943// and the request times out. If you make the request again with the
89944// same request ID, the server can check if original operation with the
89945// same request ID was received, and if so, will ignore the second
89946// request. This prevents clients from accidentally creating duplicate
89947// commitments.
89948//
89949// The request ID must be a valid UUID with the exception that zero UUID
89950// is not supported (00000000-0000-0000-0000-000000000000).
89951func (c *InstancesDeleteCall) RequestId(requestId string) *InstancesDeleteCall {
89952	c.urlParams_.Set("requestId", requestId)
89953	return c
89954}
89955
89956// Fields allows partial responses to be retrieved. See
89957// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89958// for more information.
89959func (c *InstancesDeleteCall) Fields(s ...googleapi.Field) *InstancesDeleteCall {
89960	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89961	return c
89962}
89963
89964// Context sets the context to be used in this call's Do method. Any
89965// pending HTTP request will be aborted if the provided context is
89966// canceled.
89967func (c *InstancesDeleteCall) Context(ctx context.Context) *InstancesDeleteCall {
89968	c.ctx_ = ctx
89969	return c
89970}
89971
89972// Header returns an http.Header that can be modified by the caller to
89973// add HTTP headers to the request.
89974func (c *InstancesDeleteCall) Header() http.Header {
89975	if c.header_ == nil {
89976		c.header_ = make(http.Header)
89977	}
89978	return c.header_
89979}
89980
89981func (c *InstancesDeleteCall) doRequest(alt string) (*http.Response, error) {
89982	reqHeaders := make(http.Header)
89983	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
89984	for k, v := range c.header_ {
89985		reqHeaders[k] = v
89986	}
89987	reqHeaders.Set("User-Agent", c.s.userAgent())
89988	var body io.Reader = nil
89989	c.urlParams_.Set("alt", alt)
89990	c.urlParams_.Set("prettyPrint", "false")
89991	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}")
89992	urls += "?" + c.urlParams_.Encode()
89993	req, err := http.NewRequest("DELETE", urls, body)
89994	if err != nil {
89995		return nil, err
89996	}
89997	req.Header = reqHeaders
89998	googleapi.Expand(req.URL, map[string]string{
89999		"project":  c.project,
90000		"zone":     c.zone,
90001		"instance": c.instance,
90002	})
90003	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90004}
90005
90006// Do executes the "compute.instances.delete" call.
90007// Exactly one of *Operation or error will be non-nil. Any non-2xx
90008// status code is an error. Response headers are in either
90009// *Operation.ServerResponse.Header or (if a response was returned at
90010// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
90011// to check whether the returned error was because
90012// http.StatusNotModified was returned.
90013func (c *InstancesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
90014	gensupport.SetOptions(c.urlParams_, opts...)
90015	res, err := c.doRequest("json")
90016	if res != nil && res.StatusCode == http.StatusNotModified {
90017		if res.Body != nil {
90018			res.Body.Close()
90019		}
90020		return nil, &googleapi.Error{
90021			Code:   res.StatusCode,
90022			Header: res.Header,
90023		}
90024	}
90025	if err != nil {
90026		return nil, err
90027	}
90028	defer googleapi.CloseBody(res)
90029	if err := googleapi.CheckResponse(res); err != nil {
90030		return nil, err
90031	}
90032	ret := &Operation{
90033		ServerResponse: googleapi.ServerResponse{
90034			Header:         res.Header,
90035			HTTPStatusCode: res.StatusCode,
90036		},
90037	}
90038	target := &ret
90039	if err := gensupport.DecodeResponse(target, res); err != nil {
90040		return nil, err
90041	}
90042	return ret, nil
90043	// {
90044	//   "description": "Deletes the specified Instance resource. For more information, see Stopping or Deleting an Instance.",
90045	//   "httpMethod": "DELETE",
90046	//   "id": "compute.instances.delete",
90047	//   "parameterOrder": [
90048	//     "project",
90049	//     "zone",
90050	//     "instance"
90051	//   ],
90052	//   "parameters": {
90053	//     "instance": {
90054	//       "description": "Name of the instance resource to delete.",
90055	//       "location": "path",
90056	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
90057	//       "required": true,
90058	//       "type": "string"
90059	//     },
90060	//     "project": {
90061	//       "description": "Project ID for this request.",
90062	//       "location": "path",
90063	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90064	//       "required": true,
90065	//       "type": "string"
90066	//     },
90067	//     "requestId": {
90068	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
90069	//       "location": "query",
90070	//       "type": "string"
90071	//     },
90072	//     "zone": {
90073	//       "description": "The name of the zone for this request.",
90074	//       "location": "path",
90075	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
90076	//       "required": true,
90077	//       "type": "string"
90078	//     }
90079	//   },
90080	//   "path": "projects/{project}/zones/{zone}/instances/{instance}",
90081	//   "response": {
90082	//     "$ref": "Operation"
90083	//   },
90084	//   "scopes": [
90085	//     "https://www.googleapis.com/auth/cloud-platform",
90086	//     "https://www.googleapis.com/auth/compute"
90087	//   ]
90088	// }
90089
90090}
90091
90092// method id "compute.instances.deleteAccessConfig":
90093
90094type InstancesDeleteAccessConfigCall struct {
90095	s          *Service
90096	project    string
90097	zone       string
90098	instance   string
90099	urlParams_ gensupport.URLParams
90100	ctx_       context.Context
90101	header_    http.Header
90102}
90103
90104// DeleteAccessConfig: Deletes an access config from an instance's
90105// network interface.
90106// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/deleteAccessConfig
90107func (r *InstancesService) DeleteAccessConfig(project string, zone string, instance string, accessConfig string, networkInterface string) *InstancesDeleteAccessConfigCall {
90108	c := &InstancesDeleteAccessConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90109	c.project = project
90110	c.zone = zone
90111	c.instance = instance
90112	c.urlParams_.Set("accessConfig", accessConfig)
90113	c.urlParams_.Set("networkInterface", networkInterface)
90114	return c
90115}
90116
90117// RequestId sets the optional parameter "requestId": An optional
90118// request ID to identify requests. Specify a unique request ID so that
90119// if you must retry your request, the server will know to ignore the
90120// request if it has already been completed.
90121//
90122// For example, consider a situation where you make an initial request
90123// and the request times out. If you make the request again with the
90124// same request ID, the server can check if original operation with the
90125// same request ID was received, and if so, will ignore the second
90126// request. This prevents clients from accidentally creating duplicate
90127// commitments.
90128//
90129// The request ID must be a valid UUID with the exception that zero UUID
90130// is not supported (00000000-0000-0000-0000-000000000000).
90131func (c *InstancesDeleteAccessConfigCall) RequestId(requestId string) *InstancesDeleteAccessConfigCall {
90132	c.urlParams_.Set("requestId", requestId)
90133	return c
90134}
90135
90136// Fields allows partial responses to be retrieved. See
90137// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90138// for more information.
90139func (c *InstancesDeleteAccessConfigCall) Fields(s ...googleapi.Field) *InstancesDeleteAccessConfigCall {
90140	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90141	return c
90142}
90143
90144// Context sets the context to be used in this call's Do method. Any
90145// pending HTTP request will be aborted if the provided context is
90146// canceled.
90147func (c *InstancesDeleteAccessConfigCall) Context(ctx context.Context) *InstancesDeleteAccessConfigCall {
90148	c.ctx_ = ctx
90149	return c
90150}
90151
90152// Header returns an http.Header that can be modified by the caller to
90153// add HTTP headers to the request.
90154func (c *InstancesDeleteAccessConfigCall) Header() http.Header {
90155	if c.header_ == nil {
90156		c.header_ = make(http.Header)
90157	}
90158	return c.header_
90159}
90160
90161func (c *InstancesDeleteAccessConfigCall) doRequest(alt string) (*http.Response, error) {
90162	reqHeaders := make(http.Header)
90163	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
90164	for k, v := range c.header_ {
90165		reqHeaders[k] = v
90166	}
90167	reqHeaders.Set("User-Agent", c.s.userAgent())
90168	var body io.Reader = nil
90169	c.urlParams_.Set("alt", alt)
90170	c.urlParams_.Set("prettyPrint", "false")
90171	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/deleteAccessConfig")
90172	urls += "?" + c.urlParams_.Encode()
90173	req, err := http.NewRequest("POST", urls, body)
90174	if err != nil {
90175		return nil, err
90176	}
90177	req.Header = reqHeaders
90178	googleapi.Expand(req.URL, map[string]string{
90179		"project":  c.project,
90180		"zone":     c.zone,
90181		"instance": c.instance,
90182	})
90183	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90184}
90185
90186// Do executes the "compute.instances.deleteAccessConfig" call.
90187// Exactly one of *Operation or error will be non-nil. Any non-2xx
90188// status code is an error. Response headers are in either
90189// *Operation.ServerResponse.Header or (if a response was returned at
90190// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
90191// to check whether the returned error was because
90192// http.StatusNotModified was returned.
90193func (c *InstancesDeleteAccessConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
90194	gensupport.SetOptions(c.urlParams_, opts...)
90195	res, err := c.doRequest("json")
90196	if res != nil && res.StatusCode == http.StatusNotModified {
90197		if res.Body != nil {
90198			res.Body.Close()
90199		}
90200		return nil, &googleapi.Error{
90201			Code:   res.StatusCode,
90202			Header: res.Header,
90203		}
90204	}
90205	if err != nil {
90206		return nil, err
90207	}
90208	defer googleapi.CloseBody(res)
90209	if err := googleapi.CheckResponse(res); err != nil {
90210		return nil, err
90211	}
90212	ret := &Operation{
90213		ServerResponse: googleapi.ServerResponse{
90214			Header:         res.Header,
90215			HTTPStatusCode: res.StatusCode,
90216		},
90217	}
90218	target := &ret
90219	if err := gensupport.DecodeResponse(target, res); err != nil {
90220		return nil, err
90221	}
90222	return ret, nil
90223	// {
90224	//   "description": "Deletes an access config from an instance's network interface.",
90225	//   "httpMethod": "POST",
90226	//   "id": "compute.instances.deleteAccessConfig",
90227	//   "parameterOrder": [
90228	//     "project",
90229	//     "zone",
90230	//     "instance",
90231	//     "accessConfig",
90232	//     "networkInterface"
90233	//   ],
90234	//   "parameters": {
90235	//     "accessConfig": {
90236	//       "description": "The name of the access config to delete.",
90237	//       "location": "query",
90238	//       "required": true,
90239	//       "type": "string"
90240	//     },
90241	//     "instance": {
90242	//       "description": "The instance name for this request.",
90243	//       "location": "path",
90244	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
90245	//       "required": true,
90246	//       "type": "string"
90247	//     },
90248	//     "networkInterface": {
90249	//       "description": "The name of the network interface.",
90250	//       "location": "query",
90251	//       "required": true,
90252	//       "type": "string"
90253	//     },
90254	//     "project": {
90255	//       "description": "Project ID for this request.",
90256	//       "location": "path",
90257	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90258	//       "required": true,
90259	//       "type": "string"
90260	//     },
90261	//     "requestId": {
90262	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
90263	//       "location": "query",
90264	//       "type": "string"
90265	//     },
90266	//     "zone": {
90267	//       "description": "The name of the zone for this request.",
90268	//       "location": "path",
90269	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
90270	//       "required": true,
90271	//       "type": "string"
90272	//     }
90273	//   },
90274	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/deleteAccessConfig",
90275	//   "response": {
90276	//     "$ref": "Operation"
90277	//   },
90278	//   "scopes": [
90279	//     "https://www.googleapis.com/auth/cloud-platform",
90280	//     "https://www.googleapis.com/auth/compute"
90281	//   ]
90282	// }
90283
90284}
90285
90286// method id "compute.instances.detachDisk":
90287
90288type InstancesDetachDiskCall struct {
90289	s          *Service
90290	project    string
90291	zone       string
90292	instance   string
90293	urlParams_ gensupport.URLParams
90294	ctx_       context.Context
90295	header_    http.Header
90296}
90297
90298// DetachDisk: Detaches a disk from an instance.
90299// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/detachDisk
90300func (r *InstancesService) DetachDisk(project string, zone string, instance string, deviceName string) *InstancesDetachDiskCall {
90301	c := &InstancesDetachDiskCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90302	c.project = project
90303	c.zone = zone
90304	c.instance = instance
90305	c.urlParams_.Set("deviceName", deviceName)
90306	return c
90307}
90308
90309// RequestId sets the optional parameter "requestId": An optional
90310// request ID to identify requests. Specify a unique request ID so that
90311// if you must retry your request, the server will know to ignore the
90312// request if it has already been completed.
90313//
90314// For example, consider a situation where you make an initial request
90315// and the request times out. If you make the request again with the
90316// same request ID, the server can check if original operation with the
90317// same request ID was received, and if so, will ignore the second
90318// request. This prevents clients from accidentally creating duplicate
90319// commitments.
90320//
90321// The request ID must be a valid UUID with the exception that zero UUID
90322// is not supported (00000000-0000-0000-0000-000000000000).
90323func (c *InstancesDetachDiskCall) RequestId(requestId string) *InstancesDetachDiskCall {
90324	c.urlParams_.Set("requestId", requestId)
90325	return c
90326}
90327
90328// Fields allows partial responses to be retrieved. See
90329// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90330// for more information.
90331func (c *InstancesDetachDiskCall) Fields(s ...googleapi.Field) *InstancesDetachDiskCall {
90332	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90333	return c
90334}
90335
90336// Context sets the context to be used in this call's Do method. Any
90337// pending HTTP request will be aborted if the provided context is
90338// canceled.
90339func (c *InstancesDetachDiskCall) Context(ctx context.Context) *InstancesDetachDiskCall {
90340	c.ctx_ = ctx
90341	return c
90342}
90343
90344// Header returns an http.Header that can be modified by the caller to
90345// add HTTP headers to the request.
90346func (c *InstancesDetachDiskCall) Header() http.Header {
90347	if c.header_ == nil {
90348		c.header_ = make(http.Header)
90349	}
90350	return c.header_
90351}
90352
90353func (c *InstancesDetachDiskCall) doRequest(alt string) (*http.Response, error) {
90354	reqHeaders := make(http.Header)
90355	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
90356	for k, v := range c.header_ {
90357		reqHeaders[k] = v
90358	}
90359	reqHeaders.Set("User-Agent", c.s.userAgent())
90360	var body io.Reader = nil
90361	c.urlParams_.Set("alt", alt)
90362	c.urlParams_.Set("prettyPrint", "false")
90363	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/detachDisk")
90364	urls += "?" + c.urlParams_.Encode()
90365	req, err := http.NewRequest("POST", urls, body)
90366	if err != nil {
90367		return nil, err
90368	}
90369	req.Header = reqHeaders
90370	googleapi.Expand(req.URL, map[string]string{
90371		"project":  c.project,
90372		"zone":     c.zone,
90373		"instance": c.instance,
90374	})
90375	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90376}
90377
90378// Do executes the "compute.instances.detachDisk" call.
90379// Exactly one of *Operation or error will be non-nil. Any non-2xx
90380// status code is an error. Response headers are in either
90381// *Operation.ServerResponse.Header or (if a response was returned at
90382// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
90383// to check whether the returned error was because
90384// http.StatusNotModified was returned.
90385func (c *InstancesDetachDiskCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
90386	gensupport.SetOptions(c.urlParams_, opts...)
90387	res, err := c.doRequest("json")
90388	if res != nil && res.StatusCode == http.StatusNotModified {
90389		if res.Body != nil {
90390			res.Body.Close()
90391		}
90392		return nil, &googleapi.Error{
90393			Code:   res.StatusCode,
90394			Header: res.Header,
90395		}
90396	}
90397	if err != nil {
90398		return nil, err
90399	}
90400	defer googleapi.CloseBody(res)
90401	if err := googleapi.CheckResponse(res); err != nil {
90402		return nil, err
90403	}
90404	ret := &Operation{
90405		ServerResponse: googleapi.ServerResponse{
90406			Header:         res.Header,
90407			HTTPStatusCode: res.StatusCode,
90408		},
90409	}
90410	target := &ret
90411	if err := gensupport.DecodeResponse(target, res); err != nil {
90412		return nil, err
90413	}
90414	return ret, nil
90415	// {
90416	//   "description": "Detaches a disk from an instance.",
90417	//   "httpMethod": "POST",
90418	//   "id": "compute.instances.detachDisk",
90419	//   "parameterOrder": [
90420	//     "project",
90421	//     "zone",
90422	//     "instance",
90423	//     "deviceName"
90424	//   ],
90425	//   "parameters": {
90426	//     "deviceName": {
90427	//       "description": "The device name of the disk to detach. Make a get() request on the instance to view currently attached disks and device names.",
90428	//       "location": "query",
90429	//       "required": true,
90430	//       "type": "string"
90431	//     },
90432	//     "instance": {
90433	//       "description": "Instance name for this request.",
90434	//       "location": "path",
90435	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
90436	//       "required": true,
90437	//       "type": "string"
90438	//     },
90439	//     "project": {
90440	//       "description": "Project ID for this request.",
90441	//       "location": "path",
90442	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90443	//       "required": true,
90444	//       "type": "string"
90445	//     },
90446	//     "requestId": {
90447	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
90448	//       "location": "query",
90449	//       "type": "string"
90450	//     },
90451	//     "zone": {
90452	//       "description": "The name of the zone for this request.",
90453	//       "location": "path",
90454	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
90455	//       "required": true,
90456	//       "type": "string"
90457	//     }
90458	//   },
90459	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/detachDisk",
90460	//   "response": {
90461	//     "$ref": "Operation"
90462	//   },
90463	//   "scopes": [
90464	//     "https://www.googleapis.com/auth/cloud-platform",
90465	//     "https://www.googleapis.com/auth/compute"
90466	//   ]
90467	// }
90468
90469}
90470
90471// method id "compute.instances.get":
90472
90473type InstancesGetCall struct {
90474	s            *Service
90475	project      string
90476	zone         string
90477	instance     string
90478	urlParams_   gensupport.URLParams
90479	ifNoneMatch_ string
90480	ctx_         context.Context
90481	header_      http.Header
90482}
90483
90484// Get: Returns the specified Instance resource. Gets a list of
90485// available instances by making a list() request.
90486// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/get
90487func (r *InstancesService) Get(project string, zone string, instance string) *InstancesGetCall {
90488	c := &InstancesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90489	c.project = project
90490	c.zone = zone
90491	c.instance = instance
90492	return c
90493}
90494
90495// Fields allows partial responses to be retrieved. See
90496// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90497// for more information.
90498func (c *InstancesGetCall) Fields(s ...googleapi.Field) *InstancesGetCall {
90499	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90500	return c
90501}
90502
90503// IfNoneMatch sets the optional parameter which makes the operation
90504// fail if the object's ETag matches the given value. This is useful for
90505// getting updates only after the object has changed since the last
90506// request. Use googleapi.IsNotModified to check whether the response
90507// error from Do is the result of In-None-Match.
90508func (c *InstancesGetCall) IfNoneMatch(entityTag string) *InstancesGetCall {
90509	c.ifNoneMatch_ = entityTag
90510	return c
90511}
90512
90513// Context sets the context to be used in this call's Do method. Any
90514// pending HTTP request will be aborted if the provided context is
90515// canceled.
90516func (c *InstancesGetCall) Context(ctx context.Context) *InstancesGetCall {
90517	c.ctx_ = ctx
90518	return c
90519}
90520
90521// Header returns an http.Header that can be modified by the caller to
90522// add HTTP headers to the request.
90523func (c *InstancesGetCall) Header() http.Header {
90524	if c.header_ == nil {
90525		c.header_ = make(http.Header)
90526	}
90527	return c.header_
90528}
90529
90530func (c *InstancesGetCall) doRequest(alt string) (*http.Response, error) {
90531	reqHeaders := make(http.Header)
90532	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
90533	for k, v := range c.header_ {
90534		reqHeaders[k] = v
90535	}
90536	reqHeaders.Set("User-Agent", c.s.userAgent())
90537	if c.ifNoneMatch_ != "" {
90538		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
90539	}
90540	var body io.Reader = nil
90541	c.urlParams_.Set("alt", alt)
90542	c.urlParams_.Set("prettyPrint", "false")
90543	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}")
90544	urls += "?" + c.urlParams_.Encode()
90545	req, err := http.NewRequest("GET", urls, body)
90546	if err != nil {
90547		return nil, err
90548	}
90549	req.Header = reqHeaders
90550	googleapi.Expand(req.URL, map[string]string{
90551		"project":  c.project,
90552		"zone":     c.zone,
90553		"instance": c.instance,
90554	})
90555	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90556}
90557
90558// Do executes the "compute.instances.get" call.
90559// Exactly one of *Instance or error will be non-nil. Any non-2xx status
90560// code is an error. Response headers are in either
90561// *Instance.ServerResponse.Header or (if a response was returned at
90562// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
90563// to check whether the returned error was because
90564// http.StatusNotModified was returned.
90565func (c *InstancesGetCall) Do(opts ...googleapi.CallOption) (*Instance, error) {
90566	gensupport.SetOptions(c.urlParams_, opts...)
90567	res, err := c.doRequest("json")
90568	if res != nil && res.StatusCode == http.StatusNotModified {
90569		if res.Body != nil {
90570			res.Body.Close()
90571		}
90572		return nil, &googleapi.Error{
90573			Code:   res.StatusCode,
90574			Header: res.Header,
90575		}
90576	}
90577	if err != nil {
90578		return nil, err
90579	}
90580	defer googleapi.CloseBody(res)
90581	if err := googleapi.CheckResponse(res); err != nil {
90582		return nil, err
90583	}
90584	ret := &Instance{
90585		ServerResponse: googleapi.ServerResponse{
90586			Header:         res.Header,
90587			HTTPStatusCode: res.StatusCode,
90588		},
90589	}
90590	target := &ret
90591	if err := gensupport.DecodeResponse(target, res); err != nil {
90592		return nil, err
90593	}
90594	return ret, nil
90595	// {
90596	//   "description": "Returns the specified Instance resource. Gets a list of available instances by making a list() request.",
90597	//   "httpMethod": "GET",
90598	//   "id": "compute.instances.get",
90599	//   "parameterOrder": [
90600	//     "project",
90601	//     "zone",
90602	//     "instance"
90603	//   ],
90604	//   "parameters": {
90605	//     "instance": {
90606	//       "description": "Name of the instance resource to return.",
90607	//       "location": "path",
90608	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
90609	//       "required": true,
90610	//       "type": "string"
90611	//     },
90612	//     "project": {
90613	//       "description": "Project ID for this request.",
90614	//       "location": "path",
90615	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90616	//       "required": true,
90617	//       "type": "string"
90618	//     },
90619	//     "zone": {
90620	//       "description": "The name of the zone for this request.",
90621	//       "location": "path",
90622	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
90623	//       "required": true,
90624	//       "type": "string"
90625	//     }
90626	//   },
90627	//   "path": "projects/{project}/zones/{zone}/instances/{instance}",
90628	//   "response": {
90629	//     "$ref": "Instance"
90630	//   },
90631	//   "scopes": [
90632	//     "https://www.googleapis.com/auth/cloud-platform",
90633	//     "https://www.googleapis.com/auth/compute",
90634	//     "https://www.googleapis.com/auth/compute.readonly"
90635	//   ]
90636	// }
90637
90638}
90639
90640// method id "compute.instances.getEffectiveFirewalls":
90641
90642type InstancesGetEffectiveFirewallsCall struct {
90643	s            *Service
90644	project      string
90645	zone         string
90646	instance     string
90647	urlParams_   gensupport.URLParams
90648	ifNoneMatch_ string
90649	ctx_         context.Context
90650	header_      http.Header
90651}
90652
90653// GetEffectiveFirewalls: Returns effective firewalls applied to an
90654// interface of the instance.
90655func (r *InstancesService) GetEffectiveFirewalls(project string, zone string, instance string, networkInterface string) *InstancesGetEffectiveFirewallsCall {
90656	c := &InstancesGetEffectiveFirewallsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90657	c.project = project
90658	c.zone = zone
90659	c.instance = instance
90660	c.urlParams_.Set("networkInterface", networkInterface)
90661	return c
90662}
90663
90664// Fields allows partial responses to be retrieved. See
90665// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90666// for more information.
90667func (c *InstancesGetEffectiveFirewallsCall) Fields(s ...googleapi.Field) *InstancesGetEffectiveFirewallsCall {
90668	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90669	return c
90670}
90671
90672// IfNoneMatch sets the optional parameter which makes the operation
90673// fail if the object's ETag matches the given value. This is useful for
90674// getting updates only after the object has changed since the last
90675// request. Use googleapi.IsNotModified to check whether the response
90676// error from Do is the result of In-None-Match.
90677func (c *InstancesGetEffectiveFirewallsCall) IfNoneMatch(entityTag string) *InstancesGetEffectiveFirewallsCall {
90678	c.ifNoneMatch_ = entityTag
90679	return c
90680}
90681
90682// Context sets the context to be used in this call's Do method. Any
90683// pending HTTP request will be aborted if the provided context is
90684// canceled.
90685func (c *InstancesGetEffectiveFirewallsCall) Context(ctx context.Context) *InstancesGetEffectiveFirewallsCall {
90686	c.ctx_ = ctx
90687	return c
90688}
90689
90690// Header returns an http.Header that can be modified by the caller to
90691// add HTTP headers to the request.
90692func (c *InstancesGetEffectiveFirewallsCall) Header() http.Header {
90693	if c.header_ == nil {
90694		c.header_ = make(http.Header)
90695	}
90696	return c.header_
90697}
90698
90699func (c *InstancesGetEffectiveFirewallsCall) doRequest(alt string) (*http.Response, error) {
90700	reqHeaders := make(http.Header)
90701	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
90702	for k, v := range c.header_ {
90703		reqHeaders[k] = v
90704	}
90705	reqHeaders.Set("User-Agent", c.s.userAgent())
90706	if c.ifNoneMatch_ != "" {
90707		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
90708	}
90709	var body io.Reader = nil
90710	c.urlParams_.Set("alt", alt)
90711	c.urlParams_.Set("prettyPrint", "false")
90712	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/getEffectiveFirewalls")
90713	urls += "?" + c.urlParams_.Encode()
90714	req, err := http.NewRequest("GET", urls, body)
90715	if err != nil {
90716		return nil, err
90717	}
90718	req.Header = reqHeaders
90719	googleapi.Expand(req.URL, map[string]string{
90720		"project":  c.project,
90721		"zone":     c.zone,
90722		"instance": c.instance,
90723	})
90724	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90725}
90726
90727// Do executes the "compute.instances.getEffectiveFirewalls" call.
90728// Exactly one of *InstancesGetEffectiveFirewallsResponse or error will
90729// be non-nil. Any non-2xx status code is an error. Response headers are
90730// in either
90731// *InstancesGetEffectiveFirewallsResponse.ServerResponse.Header or (if
90732// a response was returned at all) in error.(*googleapi.Error).Header.
90733// Use googleapi.IsNotModified to check whether the returned error was
90734// because http.StatusNotModified was returned.
90735func (c *InstancesGetEffectiveFirewallsCall) Do(opts ...googleapi.CallOption) (*InstancesGetEffectiveFirewallsResponse, error) {
90736	gensupport.SetOptions(c.urlParams_, opts...)
90737	res, err := c.doRequest("json")
90738	if res != nil && res.StatusCode == http.StatusNotModified {
90739		if res.Body != nil {
90740			res.Body.Close()
90741		}
90742		return nil, &googleapi.Error{
90743			Code:   res.StatusCode,
90744			Header: res.Header,
90745		}
90746	}
90747	if err != nil {
90748		return nil, err
90749	}
90750	defer googleapi.CloseBody(res)
90751	if err := googleapi.CheckResponse(res); err != nil {
90752		return nil, err
90753	}
90754	ret := &InstancesGetEffectiveFirewallsResponse{
90755		ServerResponse: googleapi.ServerResponse{
90756			Header:         res.Header,
90757			HTTPStatusCode: res.StatusCode,
90758		},
90759	}
90760	target := &ret
90761	if err := gensupport.DecodeResponse(target, res); err != nil {
90762		return nil, err
90763	}
90764	return ret, nil
90765	// {
90766	//   "description": "Returns effective firewalls applied to an interface of the instance.",
90767	//   "httpMethod": "GET",
90768	//   "id": "compute.instances.getEffectiveFirewalls",
90769	//   "parameterOrder": [
90770	//     "project",
90771	//     "zone",
90772	//     "instance",
90773	//     "networkInterface"
90774	//   ],
90775	//   "parameters": {
90776	//     "instance": {
90777	//       "description": "Name of the instance scoping this request.",
90778	//       "location": "path",
90779	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
90780	//       "required": true,
90781	//       "type": "string"
90782	//     },
90783	//     "networkInterface": {
90784	//       "description": "The name of the network interface to get the effective firewalls.",
90785	//       "location": "query",
90786	//       "required": true,
90787	//       "type": "string"
90788	//     },
90789	//     "project": {
90790	//       "description": "Project ID for this request.",
90791	//       "location": "path",
90792	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90793	//       "required": true,
90794	//       "type": "string"
90795	//     },
90796	//     "zone": {
90797	//       "description": "The name of the zone for this request.",
90798	//       "location": "path",
90799	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
90800	//       "required": true,
90801	//       "type": "string"
90802	//     }
90803	//   },
90804	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/getEffectiveFirewalls",
90805	//   "response": {
90806	//     "$ref": "InstancesGetEffectiveFirewallsResponse"
90807	//   },
90808	//   "scopes": [
90809	//     "https://www.googleapis.com/auth/cloud-platform",
90810	//     "https://www.googleapis.com/auth/compute",
90811	//     "https://www.googleapis.com/auth/compute.readonly"
90812	//   ]
90813	// }
90814
90815}
90816
90817// method id "compute.instances.getGuestAttributes":
90818
90819type InstancesGetGuestAttributesCall struct {
90820	s            *Service
90821	project      string
90822	zone         string
90823	instance     string
90824	urlParams_   gensupport.URLParams
90825	ifNoneMatch_ string
90826	ctx_         context.Context
90827	header_      http.Header
90828}
90829
90830// GetGuestAttributes: Returns the specified guest attributes entry.
90831func (r *InstancesService) GetGuestAttributes(project string, zone string, instance string) *InstancesGetGuestAttributesCall {
90832	c := &InstancesGetGuestAttributesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90833	c.project = project
90834	c.zone = zone
90835	c.instance = instance
90836	return c
90837}
90838
90839// QueryPath sets the optional parameter "queryPath": Specifies the
90840// guest attributes path to be queried.
90841func (c *InstancesGetGuestAttributesCall) QueryPath(queryPath string) *InstancesGetGuestAttributesCall {
90842	c.urlParams_.Set("queryPath", queryPath)
90843	return c
90844}
90845
90846// VariableKey sets the optional parameter "variableKey": Specifies the
90847// key for the guest attributes entry.
90848func (c *InstancesGetGuestAttributesCall) VariableKey(variableKey string) *InstancesGetGuestAttributesCall {
90849	c.urlParams_.Set("variableKey", variableKey)
90850	return c
90851}
90852
90853// Fields allows partial responses to be retrieved. See
90854// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90855// for more information.
90856func (c *InstancesGetGuestAttributesCall) Fields(s ...googleapi.Field) *InstancesGetGuestAttributesCall {
90857	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90858	return c
90859}
90860
90861// IfNoneMatch sets the optional parameter which makes the operation
90862// fail if the object's ETag matches the given value. This is useful for
90863// getting updates only after the object has changed since the last
90864// request. Use googleapi.IsNotModified to check whether the response
90865// error from Do is the result of In-None-Match.
90866func (c *InstancesGetGuestAttributesCall) IfNoneMatch(entityTag string) *InstancesGetGuestAttributesCall {
90867	c.ifNoneMatch_ = entityTag
90868	return c
90869}
90870
90871// Context sets the context to be used in this call's Do method. Any
90872// pending HTTP request will be aborted if the provided context is
90873// canceled.
90874func (c *InstancesGetGuestAttributesCall) Context(ctx context.Context) *InstancesGetGuestAttributesCall {
90875	c.ctx_ = ctx
90876	return c
90877}
90878
90879// Header returns an http.Header that can be modified by the caller to
90880// add HTTP headers to the request.
90881func (c *InstancesGetGuestAttributesCall) Header() http.Header {
90882	if c.header_ == nil {
90883		c.header_ = make(http.Header)
90884	}
90885	return c.header_
90886}
90887
90888func (c *InstancesGetGuestAttributesCall) doRequest(alt string) (*http.Response, error) {
90889	reqHeaders := make(http.Header)
90890	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
90891	for k, v := range c.header_ {
90892		reqHeaders[k] = v
90893	}
90894	reqHeaders.Set("User-Agent", c.s.userAgent())
90895	if c.ifNoneMatch_ != "" {
90896		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
90897	}
90898	var body io.Reader = nil
90899	c.urlParams_.Set("alt", alt)
90900	c.urlParams_.Set("prettyPrint", "false")
90901	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/getGuestAttributes")
90902	urls += "?" + c.urlParams_.Encode()
90903	req, err := http.NewRequest("GET", urls, body)
90904	if err != nil {
90905		return nil, err
90906	}
90907	req.Header = reqHeaders
90908	googleapi.Expand(req.URL, map[string]string{
90909		"project":  c.project,
90910		"zone":     c.zone,
90911		"instance": c.instance,
90912	})
90913	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90914}
90915
90916// Do executes the "compute.instances.getGuestAttributes" call.
90917// Exactly one of *GuestAttributes or error will be non-nil. Any non-2xx
90918// status code is an error. Response headers are in either
90919// *GuestAttributes.ServerResponse.Header or (if a response was returned
90920// at all) in error.(*googleapi.Error).Header. Use
90921// googleapi.IsNotModified to check whether the returned error was
90922// because http.StatusNotModified was returned.
90923func (c *InstancesGetGuestAttributesCall) Do(opts ...googleapi.CallOption) (*GuestAttributes, error) {
90924	gensupport.SetOptions(c.urlParams_, opts...)
90925	res, err := c.doRequest("json")
90926	if res != nil && res.StatusCode == http.StatusNotModified {
90927		if res.Body != nil {
90928			res.Body.Close()
90929		}
90930		return nil, &googleapi.Error{
90931			Code:   res.StatusCode,
90932			Header: res.Header,
90933		}
90934	}
90935	if err != nil {
90936		return nil, err
90937	}
90938	defer googleapi.CloseBody(res)
90939	if err := googleapi.CheckResponse(res); err != nil {
90940		return nil, err
90941	}
90942	ret := &GuestAttributes{
90943		ServerResponse: googleapi.ServerResponse{
90944			Header:         res.Header,
90945			HTTPStatusCode: res.StatusCode,
90946		},
90947	}
90948	target := &ret
90949	if err := gensupport.DecodeResponse(target, res); err != nil {
90950		return nil, err
90951	}
90952	return ret, nil
90953	// {
90954	//   "description": "Returns the specified guest attributes entry.",
90955	//   "httpMethod": "GET",
90956	//   "id": "compute.instances.getGuestAttributes",
90957	//   "parameterOrder": [
90958	//     "project",
90959	//     "zone",
90960	//     "instance"
90961	//   ],
90962	//   "parameters": {
90963	//     "instance": {
90964	//       "description": "Name of the instance scoping this request.",
90965	//       "location": "path",
90966	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
90967	//       "required": true,
90968	//       "type": "string"
90969	//     },
90970	//     "project": {
90971	//       "description": "Project ID for this request.",
90972	//       "location": "path",
90973	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90974	//       "required": true,
90975	//       "type": "string"
90976	//     },
90977	//     "queryPath": {
90978	//       "description": "Specifies the guest attributes path to be queried.",
90979	//       "location": "query",
90980	//       "type": "string"
90981	//     },
90982	//     "variableKey": {
90983	//       "description": "Specifies the key for the guest attributes entry.",
90984	//       "location": "query",
90985	//       "type": "string"
90986	//     },
90987	//     "zone": {
90988	//       "description": "The name of the zone for this request.",
90989	//       "location": "path",
90990	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
90991	//       "required": true,
90992	//       "type": "string"
90993	//     }
90994	//   },
90995	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/getGuestAttributes",
90996	//   "response": {
90997	//     "$ref": "GuestAttributes"
90998	//   },
90999	//   "scopes": [
91000	//     "https://www.googleapis.com/auth/cloud-platform",
91001	//     "https://www.googleapis.com/auth/compute",
91002	//     "https://www.googleapis.com/auth/compute.readonly"
91003	//   ]
91004	// }
91005
91006}
91007
91008// method id "compute.instances.getIamPolicy":
91009
91010type InstancesGetIamPolicyCall struct {
91011	s            *Service
91012	project      string
91013	zone         string
91014	resource     string
91015	urlParams_   gensupport.URLParams
91016	ifNoneMatch_ string
91017	ctx_         context.Context
91018	header_      http.Header
91019}
91020
91021// GetIamPolicy: Gets the access control policy for a resource. May be
91022// empty if no such policy or resource exists.
91023func (r *InstancesService) GetIamPolicy(project string, zone string, resource string) *InstancesGetIamPolicyCall {
91024	c := &InstancesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91025	c.project = project
91026	c.zone = zone
91027	c.resource = resource
91028	return c
91029}
91030
91031// OptionsRequestedPolicyVersion sets the optional parameter
91032// "optionsRequestedPolicyVersion": Requested IAM Policy version.
91033func (c *InstancesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *InstancesGetIamPolicyCall {
91034	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
91035	return c
91036}
91037
91038// Fields allows partial responses to be retrieved. See
91039// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91040// for more information.
91041func (c *InstancesGetIamPolicyCall) Fields(s ...googleapi.Field) *InstancesGetIamPolicyCall {
91042	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91043	return c
91044}
91045
91046// IfNoneMatch sets the optional parameter which makes the operation
91047// fail if the object's ETag matches the given value. This is useful for
91048// getting updates only after the object has changed since the last
91049// request. Use googleapi.IsNotModified to check whether the response
91050// error from Do is the result of In-None-Match.
91051func (c *InstancesGetIamPolicyCall) IfNoneMatch(entityTag string) *InstancesGetIamPolicyCall {
91052	c.ifNoneMatch_ = entityTag
91053	return c
91054}
91055
91056// Context sets the context to be used in this call's Do method. Any
91057// pending HTTP request will be aborted if the provided context is
91058// canceled.
91059func (c *InstancesGetIamPolicyCall) Context(ctx context.Context) *InstancesGetIamPolicyCall {
91060	c.ctx_ = ctx
91061	return c
91062}
91063
91064// Header returns an http.Header that can be modified by the caller to
91065// add HTTP headers to the request.
91066func (c *InstancesGetIamPolicyCall) Header() http.Header {
91067	if c.header_ == nil {
91068		c.header_ = make(http.Header)
91069	}
91070	return c.header_
91071}
91072
91073func (c *InstancesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
91074	reqHeaders := make(http.Header)
91075	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
91076	for k, v := range c.header_ {
91077		reqHeaders[k] = v
91078	}
91079	reqHeaders.Set("User-Agent", c.s.userAgent())
91080	if c.ifNoneMatch_ != "" {
91081		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
91082	}
91083	var body io.Reader = nil
91084	c.urlParams_.Set("alt", alt)
91085	c.urlParams_.Set("prettyPrint", "false")
91086	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{resource}/getIamPolicy")
91087	urls += "?" + c.urlParams_.Encode()
91088	req, err := http.NewRequest("GET", urls, body)
91089	if err != nil {
91090		return nil, err
91091	}
91092	req.Header = reqHeaders
91093	googleapi.Expand(req.URL, map[string]string{
91094		"project":  c.project,
91095		"zone":     c.zone,
91096		"resource": c.resource,
91097	})
91098	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91099}
91100
91101// Do executes the "compute.instances.getIamPolicy" call.
91102// Exactly one of *Policy or error will be non-nil. Any non-2xx status
91103// code is an error. Response headers are in either
91104// *Policy.ServerResponse.Header or (if a response was returned at all)
91105// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
91106// check whether the returned error was because http.StatusNotModified
91107// was returned.
91108func (c *InstancesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
91109	gensupport.SetOptions(c.urlParams_, opts...)
91110	res, err := c.doRequest("json")
91111	if res != nil && res.StatusCode == http.StatusNotModified {
91112		if res.Body != nil {
91113			res.Body.Close()
91114		}
91115		return nil, &googleapi.Error{
91116			Code:   res.StatusCode,
91117			Header: res.Header,
91118		}
91119	}
91120	if err != nil {
91121		return nil, err
91122	}
91123	defer googleapi.CloseBody(res)
91124	if err := googleapi.CheckResponse(res); err != nil {
91125		return nil, err
91126	}
91127	ret := &Policy{
91128		ServerResponse: googleapi.ServerResponse{
91129			Header:         res.Header,
91130			HTTPStatusCode: res.StatusCode,
91131		},
91132	}
91133	target := &ret
91134	if err := gensupport.DecodeResponse(target, res); err != nil {
91135		return nil, err
91136	}
91137	return ret, nil
91138	// {
91139	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
91140	//   "httpMethod": "GET",
91141	//   "id": "compute.instances.getIamPolicy",
91142	//   "parameterOrder": [
91143	//     "project",
91144	//     "zone",
91145	//     "resource"
91146	//   ],
91147	//   "parameters": {
91148	//     "optionsRequestedPolicyVersion": {
91149	//       "description": "Requested IAM Policy version.",
91150	//       "format": "int32",
91151	//       "location": "query",
91152	//       "type": "integer"
91153	//     },
91154	//     "project": {
91155	//       "description": "Project ID for this request.",
91156	//       "location": "path",
91157	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91158	//       "required": true,
91159	//       "type": "string"
91160	//     },
91161	//     "resource": {
91162	//       "description": "Name or id of the resource for this request.",
91163	//       "location": "path",
91164	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
91165	//       "required": true,
91166	//       "type": "string"
91167	//     },
91168	//     "zone": {
91169	//       "description": "The name of the zone for this request.",
91170	//       "location": "path",
91171	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
91172	//       "required": true,
91173	//       "type": "string"
91174	//     }
91175	//   },
91176	//   "path": "projects/{project}/zones/{zone}/instances/{resource}/getIamPolicy",
91177	//   "response": {
91178	//     "$ref": "Policy"
91179	//   },
91180	//   "scopes": [
91181	//     "https://www.googleapis.com/auth/cloud-platform",
91182	//     "https://www.googleapis.com/auth/compute",
91183	//     "https://www.googleapis.com/auth/compute.readonly"
91184	//   ]
91185	// }
91186
91187}
91188
91189// method id "compute.instances.getScreenshot":
91190
91191type InstancesGetScreenshotCall struct {
91192	s            *Service
91193	project      string
91194	zone         string
91195	instance     string
91196	urlParams_   gensupport.URLParams
91197	ifNoneMatch_ string
91198	ctx_         context.Context
91199	header_      http.Header
91200}
91201
91202// GetScreenshot: Returns the screenshot from the specified instance.
91203func (r *InstancesService) GetScreenshot(project string, zone string, instance string) *InstancesGetScreenshotCall {
91204	c := &InstancesGetScreenshotCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91205	c.project = project
91206	c.zone = zone
91207	c.instance = instance
91208	return c
91209}
91210
91211// Fields allows partial responses to be retrieved. See
91212// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91213// for more information.
91214func (c *InstancesGetScreenshotCall) Fields(s ...googleapi.Field) *InstancesGetScreenshotCall {
91215	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91216	return c
91217}
91218
91219// IfNoneMatch sets the optional parameter which makes the operation
91220// fail if the object's ETag matches the given value. This is useful for
91221// getting updates only after the object has changed since the last
91222// request. Use googleapi.IsNotModified to check whether the response
91223// error from Do is the result of In-None-Match.
91224func (c *InstancesGetScreenshotCall) IfNoneMatch(entityTag string) *InstancesGetScreenshotCall {
91225	c.ifNoneMatch_ = entityTag
91226	return c
91227}
91228
91229// Context sets the context to be used in this call's Do method. Any
91230// pending HTTP request will be aborted if the provided context is
91231// canceled.
91232func (c *InstancesGetScreenshotCall) Context(ctx context.Context) *InstancesGetScreenshotCall {
91233	c.ctx_ = ctx
91234	return c
91235}
91236
91237// Header returns an http.Header that can be modified by the caller to
91238// add HTTP headers to the request.
91239func (c *InstancesGetScreenshotCall) Header() http.Header {
91240	if c.header_ == nil {
91241		c.header_ = make(http.Header)
91242	}
91243	return c.header_
91244}
91245
91246func (c *InstancesGetScreenshotCall) doRequest(alt string) (*http.Response, error) {
91247	reqHeaders := make(http.Header)
91248	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
91249	for k, v := range c.header_ {
91250		reqHeaders[k] = v
91251	}
91252	reqHeaders.Set("User-Agent", c.s.userAgent())
91253	if c.ifNoneMatch_ != "" {
91254		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
91255	}
91256	var body io.Reader = nil
91257	c.urlParams_.Set("alt", alt)
91258	c.urlParams_.Set("prettyPrint", "false")
91259	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/screenshot")
91260	urls += "?" + c.urlParams_.Encode()
91261	req, err := http.NewRequest("GET", urls, body)
91262	if err != nil {
91263		return nil, err
91264	}
91265	req.Header = reqHeaders
91266	googleapi.Expand(req.URL, map[string]string{
91267		"project":  c.project,
91268		"zone":     c.zone,
91269		"instance": c.instance,
91270	})
91271	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91272}
91273
91274// Do executes the "compute.instances.getScreenshot" call.
91275// Exactly one of *Screenshot or error will be non-nil. Any non-2xx
91276// status code is an error. Response headers are in either
91277// *Screenshot.ServerResponse.Header or (if a response was returned at
91278// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
91279// to check whether the returned error was because
91280// http.StatusNotModified was returned.
91281func (c *InstancesGetScreenshotCall) Do(opts ...googleapi.CallOption) (*Screenshot, error) {
91282	gensupport.SetOptions(c.urlParams_, opts...)
91283	res, err := c.doRequest("json")
91284	if res != nil && res.StatusCode == http.StatusNotModified {
91285		if res.Body != nil {
91286			res.Body.Close()
91287		}
91288		return nil, &googleapi.Error{
91289			Code:   res.StatusCode,
91290			Header: res.Header,
91291		}
91292	}
91293	if err != nil {
91294		return nil, err
91295	}
91296	defer googleapi.CloseBody(res)
91297	if err := googleapi.CheckResponse(res); err != nil {
91298		return nil, err
91299	}
91300	ret := &Screenshot{
91301		ServerResponse: googleapi.ServerResponse{
91302			Header:         res.Header,
91303			HTTPStatusCode: res.StatusCode,
91304		},
91305	}
91306	target := &ret
91307	if err := gensupport.DecodeResponse(target, res); err != nil {
91308		return nil, err
91309	}
91310	return ret, nil
91311	// {
91312	//   "description": "Returns the screenshot from the specified instance.",
91313	//   "httpMethod": "GET",
91314	//   "id": "compute.instances.getScreenshot",
91315	//   "parameterOrder": [
91316	//     "project",
91317	//     "zone",
91318	//     "instance"
91319	//   ],
91320	//   "parameters": {
91321	//     "instance": {
91322	//       "description": "Name of the instance scoping this request.",
91323	//       "location": "path",
91324	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
91325	//       "required": true,
91326	//       "type": "string"
91327	//     },
91328	//     "project": {
91329	//       "description": "Project ID for this request.",
91330	//       "location": "path",
91331	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91332	//       "required": true,
91333	//       "type": "string"
91334	//     },
91335	//     "zone": {
91336	//       "description": "The name of the zone for this request.",
91337	//       "location": "path",
91338	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
91339	//       "required": true,
91340	//       "type": "string"
91341	//     }
91342	//   },
91343	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/screenshot",
91344	//   "response": {
91345	//     "$ref": "Screenshot"
91346	//   },
91347	//   "scopes": [
91348	//     "https://www.googleapis.com/auth/cloud-platform",
91349	//     "https://www.googleapis.com/auth/compute",
91350	//     "https://www.googleapis.com/auth/compute.readonly"
91351	//   ]
91352	// }
91353
91354}
91355
91356// method id "compute.instances.getSerialPortOutput":
91357
91358type InstancesGetSerialPortOutputCall struct {
91359	s            *Service
91360	project      string
91361	zone         string
91362	instance     string
91363	urlParams_   gensupport.URLParams
91364	ifNoneMatch_ string
91365	ctx_         context.Context
91366	header_      http.Header
91367}
91368
91369// GetSerialPortOutput: Returns the last 1 MB of serial port output from
91370// the specified instance.
91371// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/getSerialPortOutput
91372func (r *InstancesService) GetSerialPortOutput(project string, zone string, instance string) *InstancesGetSerialPortOutputCall {
91373	c := &InstancesGetSerialPortOutputCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91374	c.project = project
91375	c.zone = zone
91376	c.instance = instance
91377	return c
91378}
91379
91380// Port sets the optional parameter "port": Specifies which COM or
91381// serial port to retrieve data from.
91382func (c *InstancesGetSerialPortOutputCall) Port(port int64) *InstancesGetSerialPortOutputCall {
91383	c.urlParams_.Set("port", fmt.Sprint(port))
91384	return c
91385}
91386
91387// Start sets the optional parameter "start": Specifies the starting
91388// byte position of the output to return. To start with the first byte
91389// of output to the specified port, omit this field or set it to
91390// `0`.
91391//
91392// If the output for that byte position is available, this field matches
91393// the `start` parameter sent with the request. If the amount of serial
91394// console output exceeds the size of the buffer (1 MB), the oldest
91395// output is discarded and is no longer available. If the requested
91396// start position refers to discarded output, the start position is
91397// adjusted to the oldest output still available, and the adjusted start
91398// position is returned as the `start` property value.
91399//
91400// You can also provide a negative start position, which translates to
91401// the most recent number of bytes written to the serial port. For
91402// example, -3 is interpreted as the most recent 3 bytes written to the
91403// serial console.
91404func (c *InstancesGetSerialPortOutputCall) Start(start int64) *InstancesGetSerialPortOutputCall {
91405	c.urlParams_.Set("start", fmt.Sprint(start))
91406	return c
91407}
91408
91409// Fields allows partial responses to be retrieved. See
91410// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91411// for more information.
91412func (c *InstancesGetSerialPortOutputCall) Fields(s ...googleapi.Field) *InstancesGetSerialPortOutputCall {
91413	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91414	return c
91415}
91416
91417// IfNoneMatch sets the optional parameter which makes the operation
91418// fail if the object's ETag matches the given value. This is useful for
91419// getting updates only after the object has changed since the last
91420// request. Use googleapi.IsNotModified to check whether the response
91421// error from Do is the result of In-None-Match.
91422func (c *InstancesGetSerialPortOutputCall) IfNoneMatch(entityTag string) *InstancesGetSerialPortOutputCall {
91423	c.ifNoneMatch_ = entityTag
91424	return c
91425}
91426
91427// Context sets the context to be used in this call's Do method. Any
91428// pending HTTP request will be aborted if the provided context is
91429// canceled.
91430func (c *InstancesGetSerialPortOutputCall) Context(ctx context.Context) *InstancesGetSerialPortOutputCall {
91431	c.ctx_ = ctx
91432	return c
91433}
91434
91435// Header returns an http.Header that can be modified by the caller to
91436// add HTTP headers to the request.
91437func (c *InstancesGetSerialPortOutputCall) Header() http.Header {
91438	if c.header_ == nil {
91439		c.header_ = make(http.Header)
91440	}
91441	return c.header_
91442}
91443
91444func (c *InstancesGetSerialPortOutputCall) doRequest(alt string) (*http.Response, error) {
91445	reqHeaders := make(http.Header)
91446	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
91447	for k, v := range c.header_ {
91448		reqHeaders[k] = v
91449	}
91450	reqHeaders.Set("User-Agent", c.s.userAgent())
91451	if c.ifNoneMatch_ != "" {
91452		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
91453	}
91454	var body io.Reader = nil
91455	c.urlParams_.Set("alt", alt)
91456	c.urlParams_.Set("prettyPrint", "false")
91457	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/serialPort")
91458	urls += "?" + c.urlParams_.Encode()
91459	req, err := http.NewRequest("GET", urls, body)
91460	if err != nil {
91461		return nil, err
91462	}
91463	req.Header = reqHeaders
91464	googleapi.Expand(req.URL, map[string]string{
91465		"project":  c.project,
91466		"zone":     c.zone,
91467		"instance": c.instance,
91468	})
91469	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91470}
91471
91472// Do executes the "compute.instances.getSerialPortOutput" call.
91473// Exactly one of *SerialPortOutput or error will be non-nil. Any
91474// non-2xx status code is an error. Response headers are in either
91475// *SerialPortOutput.ServerResponse.Header or (if a response was
91476// returned at all) in error.(*googleapi.Error).Header. Use
91477// googleapi.IsNotModified to check whether the returned error was
91478// because http.StatusNotModified was returned.
91479func (c *InstancesGetSerialPortOutputCall) Do(opts ...googleapi.CallOption) (*SerialPortOutput, error) {
91480	gensupport.SetOptions(c.urlParams_, opts...)
91481	res, err := c.doRequest("json")
91482	if res != nil && res.StatusCode == http.StatusNotModified {
91483		if res.Body != nil {
91484			res.Body.Close()
91485		}
91486		return nil, &googleapi.Error{
91487			Code:   res.StatusCode,
91488			Header: res.Header,
91489		}
91490	}
91491	if err != nil {
91492		return nil, err
91493	}
91494	defer googleapi.CloseBody(res)
91495	if err := googleapi.CheckResponse(res); err != nil {
91496		return nil, err
91497	}
91498	ret := &SerialPortOutput{
91499		ServerResponse: googleapi.ServerResponse{
91500			Header:         res.Header,
91501			HTTPStatusCode: res.StatusCode,
91502		},
91503	}
91504	target := &ret
91505	if err := gensupport.DecodeResponse(target, res); err != nil {
91506		return nil, err
91507	}
91508	return ret, nil
91509	// {
91510	//   "description": "Returns the last 1 MB of serial port output from the specified instance.",
91511	//   "httpMethod": "GET",
91512	//   "id": "compute.instances.getSerialPortOutput",
91513	//   "parameterOrder": [
91514	//     "project",
91515	//     "zone",
91516	//     "instance"
91517	//   ],
91518	//   "parameters": {
91519	//     "instance": {
91520	//       "description": "Name of the instance for this request.",
91521	//       "location": "path",
91522	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
91523	//       "required": true,
91524	//       "type": "string"
91525	//     },
91526	//     "port": {
91527	//       "default": "1",
91528	//       "description": "Specifies which COM or serial port to retrieve data from.",
91529	//       "format": "int32",
91530	//       "location": "query",
91531	//       "maximum": "4",
91532	//       "minimum": "1",
91533	//       "type": "integer"
91534	//     },
91535	//     "project": {
91536	//       "description": "Project ID for this request.",
91537	//       "location": "path",
91538	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91539	//       "required": true,
91540	//       "type": "string"
91541	//     },
91542	//     "start": {
91543	//       "description": "Specifies the starting byte position of the output to return. To start with the first byte of output to the specified port, omit this field or set it to `0`.\n\nIf the output for that byte position is available, this field matches the `start` parameter sent with the request. If the amount of serial console output exceeds the size of the buffer (1 MB), the oldest output is discarded and is no longer available. If the requested start position refers to discarded output, the start position is adjusted to the oldest output still available, and the adjusted start position is returned as the `start` property value.\n\nYou can also provide a negative start position, which translates to the most recent number of bytes written to the serial port. For example, -3 is interpreted as the most recent 3 bytes written to the serial console.",
91544	//       "format": "int64",
91545	//       "location": "query",
91546	//       "type": "string"
91547	//     },
91548	//     "zone": {
91549	//       "description": "The name of the zone for this request.",
91550	//       "location": "path",
91551	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
91552	//       "required": true,
91553	//       "type": "string"
91554	//     }
91555	//   },
91556	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/serialPort",
91557	//   "response": {
91558	//     "$ref": "SerialPortOutput"
91559	//   },
91560	//   "scopes": [
91561	//     "https://www.googleapis.com/auth/cloud-platform",
91562	//     "https://www.googleapis.com/auth/compute",
91563	//     "https://www.googleapis.com/auth/compute.readonly"
91564	//   ]
91565	// }
91566
91567}
91568
91569// method id "compute.instances.getShieldedInstanceIdentity":
91570
91571type InstancesGetShieldedInstanceIdentityCall struct {
91572	s            *Service
91573	project      string
91574	zone         string
91575	instance     string
91576	urlParams_   gensupport.URLParams
91577	ifNoneMatch_ string
91578	ctx_         context.Context
91579	header_      http.Header
91580}
91581
91582// GetShieldedInstanceIdentity: Returns the Shielded Instance Identity
91583// of an instance
91584func (r *InstancesService) GetShieldedInstanceIdentity(project string, zone string, instance string) *InstancesGetShieldedInstanceIdentityCall {
91585	c := &InstancesGetShieldedInstanceIdentityCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91586	c.project = project
91587	c.zone = zone
91588	c.instance = instance
91589	return c
91590}
91591
91592// Fields allows partial responses to be retrieved. See
91593// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91594// for more information.
91595func (c *InstancesGetShieldedInstanceIdentityCall) Fields(s ...googleapi.Field) *InstancesGetShieldedInstanceIdentityCall {
91596	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91597	return c
91598}
91599
91600// IfNoneMatch sets the optional parameter which makes the operation
91601// fail if the object's ETag matches the given value. This is useful for
91602// getting updates only after the object has changed since the last
91603// request. Use googleapi.IsNotModified to check whether the response
91604// error from Do is the result of In-None-Match.
91605func (c *InstancesGetShieldedInstanceIdentityCall) IfNoneMatch(entityTag string) *InstancesGetShieldedInstanceIdentityCall {
91606	c.ifNoneMatch_ = entityTag
91607	return c
91608}
91609
91610// Context sets the context to be used in this call's Do method. Any
91611// pending HTTP request will be aborted if the provided context is
91612// canceled.
91613func (c *InstancesGetShieldedInstanceIdentityCall) Context(ctx context.Context) *InstancesGetShieldedInstanceIdentityCall {
91614	c.ctx_ = ctx
91615	return c
91616}
91617
91618// Header returns an http.Header that can be modified by the caller to
91619// add HTTP headers to the request.
91620func (c *InstancesGetShieldedInstanceIdentityCall) Header() http.Header {
91621	if c.header_ == nil {
91622		c.header_ = make(http.Header)
91623	}
91624	return c.header_
91625}
91626
91627func (c *InstancesGetShieldedInstanceIdentityCall) doRequest(alt string) (*http.Response, error) {
91628	reqHeaders := make(http.Header)
91629	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
91630	for k, v := range c.header_ {
91631		reqHeaders[k] = v
91632	}
91633	reqHeaders.Set("User-Agent", c.s.userAgent())
91634	if c.ifNoneMatch_ != "" {
91635		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
91636	}
91637	var body io.Reader = nil
91638	c.urlParams_.Set("alt", alt)
91639	c.urlParams_.Set("prettyPrint", "false")
91640	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/getShieldedInstanceIdentity")
91641	urls += "?" + c.urlParams_.Encode()
91642	req, err := http.NewRequest("GET", urls, body)
91643	if err != nil {
91644		return nil, err
91645	}
91646	req.Header = reqHeaders
91647	googleapi.Expand(req.URL, map[string]string{
91648		"project":  c.project,
91649		"zone":     c.zone,
91650		"instance": c.instance,
91651	})
91652	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91653}
91654
91655// Do executes the "compute.instances.getShieldedInstanceIdentity" call.
91656// Exactly one of *ShieldedInstanceIdentity or error will be non-nil.
91657// Any non-2xx status code is an error. Response headers are in either
91658// *ShieldedInstanceIdentity.ServerResponse.Header or (if a response was
91659// returned at all) in error.(*googleapi.Error).Header. Use
91660// googleapi.IsNotModified to check whether the returned error was
91661// because http.StatusNotModified was returned.
91662func (c *InstancesGetShieldedInstanceIdentityCall) Do(opts ...googleapi.CallOption) (*ShieldedInstanceIdentity, error) {
91663	gensupport.SetOptions(c.urlParams_, opts...)
91664	res, err := c.doRequest("json")
91665	if res != nil && res.StatusCode == http.StatusNotModified {
91666		if res.Body != nil {
91667			res.Body.Close()
91668		}
91669		return nil, &googleapi.Error{
91670			Code:   res.StatusCode,
91671			Header: res.Header,
91672		}
91673	}
91674	if err != nil {
91675		return nil, err
91676	}
91677	defer googleapi.CloseBody(res)
91678	if err := googleapi.CheckResponse(res); err != nil {
91679		return nil, err
91680	}
91681	ret := &ShieldedInstanceIdentity{
91682		ServerResponse: googleapi.ServerResponse{
91683			Header:         res.Header,
91684			HTTPStatusCode: res.StatusCode,
91685		},
91686	}
91687	target := &ret
91688	if err := gensupport.DecodeResponse(target, res); err != nil {
91689		return nil, err
91690	}
91691	return ret, nil
91692	// {
91693	//   "description": "Returns the Shielded Instance Identity of an instance",
91694	//   "httpMethod": "GET",
91695	//   "id": "compute.instances.getShieldedInstanceIdentity",
91696	//   "parameterOrder": [
91697	//     "project",
91698	//     "zone",
91699	//     "instance"
91700	//   ],
91701	//   "parameters": {
91702	//     "instance": {
91703	//       "description": "Name or id of the instance scoping this request.",
91704	//       "location": "path",
91705	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
91706	//       "required": true,
91707	//       "type": "string"
91708	//     },
91709	//     "project": {
91710	//       "description": "Project ID for this request.",
91711	//       "location": "path",
91712	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91713	//       "required": true,
91714	//       "type": "string"
91715	//     },
91716	//     "zone": {
91717	//       "description": "The name of the zone for this request.",
91718	//       "location": "path",
91719	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
91720	//       "required": true,
91721	//       "type": "string"
91722	//     }
91723	//   },
91724	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/getShieldedInstanceIdentity",
91725	//   "response": {
91726	//     "$ref": "ShieldedInstanceIdentity"
91727	//   },
91728	//   "scopes": [
91729	//     "https://www.googleapis.com/auth/cloud-platform",
91730	//     "https://www.googleapis.com/auth/compute",
91731	//     "https://www.googleapis.com/auth/compute.readonly"
91732	//   ]
91733	// }
91734
91735}
91736
91737// method id "compute.instances.getShieldedVmIdentity":
91738
91739type InstancesGetShieldedVmIdentityCall struct {
91740	s            *Service
91741	project      string
91742	zone         string
91743	instance     string
91744	urlParams_   gensupport.URLParams
91745	ifNoneMatch_ string
91746	ctx_         context.Context
91747	header_      http.Header
91748}
91749
91750// GetShieldedVmIdentity: Returns the Shielded VM Identity of an
91751// instance
91752func (r *InstancesService) GetShieldedVmIdentity(project string, zone string, instance string) *InstancesGetShieldedVmIdentityCall {
91753	c := &InstancesGetShieldedVmIdentityCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91754	c.project = project
91755	c.zone = zone
91756	c.instance = instance
91757	return c
91758}
91759
91760// Fields allows partial responses to be retrieved. See
91761// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91762// for more information.
91763func (c *InstancesGetShieldedVmIdentityCall) Fields(s ...googleapi.Field) *InstancesGetShieldedVmIdentityCall {
91764	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91765	return c
91766}
91767
91768// IfNoneMatch sets the optional parameter which makes the operation
91769// fail if the object's ETag matches the given value. This is useful for
91770// getting updates only after the object has changed since the last
91771// request. Use googleapi.IsNotModified to check whether the response
91772// error from Do is the result of In-None-Match.
91773func (c *InstancesGetShieldedVmIdentityCall) IfNoneMatch(entityTag string) *InstancesGetShieldedVmIdentityCall {
91774	c.ifNoneMatch_ = entityTag
91775	return c
91776}
91777
91778// Context sets the context to be used in this call's Do method. Any
91779// pending HTTP request will be aborted if the provided context is
91780// canceled.
91781func (c *InstancesGetShieldedVmIdentityCall) Context(ctx context.Context) *InstancesGetShieldedVmIdentityCall {
91782	c.ctx_ = ctx
91783	return c
91784}
91785
91786// Header returns an http.Header that can be modified by the caller to
91787// add HTTP headers to the request.
91788func (c *InstancesGetShieldedVmIdentityCall) Header() http.Header {
91789	if c.header_ == nil {
91790		c.header_ = make(http.Header)
91791	}
91792	return c.header_
91793}
91794
91795func (c *InstancesGetShieldedVmIdentityCall) doRequest(alt string) (*http.Response, error) {
91796	reqHeaders := make(http.Header)
91797	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
91798	for k, v := range c.header_ {
91799		reqHeaders[k] = v
91800	}
91801	reqHeaders.Set("User-Agent", c.s.userAgent())
91802	if c.ifNoneMatch_ != "" {
91803		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
91804	}
91805	var body io.Reader = nil
91806	c.urlParams_.Set("alt", alt)
91807	c.urlParams_.Set("prettyPrint", "false")
91808	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/getShieldedVmIdentity")
91809	urls += "?" + c.urlParams_.Encode()
91810	req, err := http.NewRequest("GET", urls, body)
91811	if err != nil {
91812		return nil, err
91813	}
91814	req.Header = reqHeaders
91815	googleapi.Expand(req.URL, map[string]string{
91816		"project":  c.project,
91817		"zone":     c.zone,
91818		"instance": c.instance,
91819	})
91820	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91821}
91822
91823// Do executes the "compute.instances.getShieldedVmIdentity" call.
91824// Exactly one of *ShieldedVmIdentity or error will be non-nil. Any
91825// non-2xx status code is an error. Response headers are in either
91826// *ShieldedVmIdentity.ServerResponse.Header or (if a response was
91827// returned at all) in error.(*googleapi.Error).Header. Use
91828// googleapi.IsNotModified to check whether the returned error was
91829// because http.StatusNotModified was returned.
91830func (c *InstancesGetShieldedVmIdentityCall) Do(opts ...googleapi.CallOption) (*ShieldedVmIdentity, error) {
91831	gensupport.SetOptions(c.urlParams_, opts...)
91832	res, err := c.doRequest("json")
91833	if res != nil && res.StatusCode == http.StatusNotModified {
91834		if res.Body != nil {
91835			res.Body.Close()
91836		}
91837		return nil, &googleapi.Error{
91838			Code:   res.StatusCode,
91839			Header: res.Header,
91840		}
91841	}
91842	if err != nil {
91843		return nil, err
91844	}
91845	defer googleapi.CloseBody(res)
91846	if err := googleapi.CheckResponse(res); err != nil {
91847		return nil, err
91848	}
91849	ret := &ShieldedVmIdentity{
91850		ServerResponse: googleapi.ServerResponse{
91851			Header:         res.Header,
91852			HTTPStatusCode: res.StatusCode,
91853		},
91854	}
91855	target := &ret
91856	if err := gensupport.DecodeResponse(target, res); err != nil {
91857		return nil, err
91858	}
91859	return ret, nil
91860	// {
91861	//   "description": "Returns the Shielded VM Identity of an instance",
91862	//   "httpMethod": "GET",
91863	//   "id": "compute.instances.getShieldedVmIdentity",
91864	//   "parameterOrder": [
91865	//     "project",
91866	//     "zone",
91867	//     "instance"
91868	//   ],
91869	//   "parameters": {
91870	//     "instance": {
91871	//       "description": "Name of the instance scoping this request.",
91872	//       "location": "path",
91873	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
91874	//       "required": true,
91875	//       "type": "string"
91876	//     },
91877	//     "project": {
91878	//       "description": "Project ID for this request.",
91879	//       "location": "path",
91880	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91881	//       "required": true,
91882	//       "type": "string"
91883	//     },
91884	//     "zone": {
91885	//       "description": "The name of the zone for this request.",
91886	//       "location": "path",
91887	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
91888	//       "required": true,
91889	//       "type": "string"
91890	//     }
91891	//   },
91892	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/getShieldedVmIdentity",
91893	//   "response": {
91894	//     "$ref": "ShieldedVmIdentity"
91895	//   },
91896	//   "scopes": [
91897	//     "https://www.googleapis.com/auth/cloud-platform",
91898	//     "https://www.googleapis.com/auth/compute",
91899	//     "https://www.googleapis.com/auth/compute.readonly"
91900	//   ]
91901	// }
91902
91903}
91904
91905// method id "compute.instances.insert":
91906
91907type InstancesInsertCall struct {
91908	s          *Service
91909	project    string
91910	zone       string
91911	instance   *Instance
91912	urlParams_ gensupport.URLParams
91913	ctx_       context.Context
91914	header_    http.Header
91915}
91916
91917// Insert: Creates an instance resource in the specified project using
91918// the data included in the request.
91919// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/insert
91920func (r *InstancesService) Insert(project string, zone string, instance *Instance) *InstancesInsertCall {
91921	c := &InstancesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91922	c.project = project
91923	c.zone = zone
91924	c.instance = instance
91925	return c
91926}
91927
91928// RequestId sets the optional parameter "requestId": An optional
91929// request ID to identify requests. Specify a unique request ID so that
91930// if you must retry your request, the server will know to ignore the
91931// request if it has already been completed.
91932//
91933// For example, consider a situation where you make an initial request
91934// and the request times out. If you make the request again with the
91935// same request ID, the server can check if original operation with the
91936// same request ID was received, and if so, will ignore the second
91937// request. This prevents clients from accidentally creating duplicate
91938// commitments.
91939//
91940// The request ID must be a valid UUID with the exception that zero UUID
91941// is not supported (00000000-0000-0000-0000-000000000000).
91942func (c *InstancesInsertCall) RequestId(requestId string) *InstancesInsertCall {
91943	c.urlParams_.Set("requestId", requestId)
91944	return c
91945}
91946
91947// SourceInstanceTemplate sets the optional parameter
91948// "sourceInstanceTemplate": Specifies instance template to create the
91949// instance.
91950//
91951// This field is optional. It can be a full or partial URL. For example,
91952// the following are all valid URLs to an instance template:
91953// -
91954// https://www.googleapis.com/compute/v1/projects/project/global/instanceTemplates/instanceTemplate
91955//
91956// - projects/project/global/instanceTemplates/instanceTemplate
91957// - global/instanceTemplates/instanceTemplate
91958func (c *InstancesInsertCall) SourceInstanceTemplate(sourceInstanceTemplate string) *InstancesInsertCall {
91959	c.urlParams_.Set("sourceInstanceTemplate", sourceInstanceTemplate)
91960	return c
91961}
91962
91963// SourceMachineImage sets the optional parameter "sourceMachineImage":
91964// Specifies the machine image to use to create the instance.
91965//
91966// This field is optional. It can be a full or partial URL. For example,
91967// the following are all valid URLs to a machine image:
91968// -
91969// https://www.googleapis.com/compute/v1/projects/project/global/global/machineImages/machineImage
91970//
91971// - projects/project/global/global/machineImages/machineImage
91972// - global/machineImages/machineImage
91973func (c *InstancesInsertCall) SourceMachineImage(sourceMachineImage string) *InstancesInsertCall {
91974	c.urlParams_.Set("sourceMachineImage", sourceMachineImage)
91975	return c
91976}
91977
91978// Fields allows partial responses to be retrieved. See
91979// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91980// for more information.
91981func (c *InstancesInsertCall) Fields(s ...googleapi.Field) *InstancesInsertCall {
91982	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91983	return c
91984}
91985
91986// Context sets the context to be used in this call's Do method. Any
91987// pending HTTP request will be aborted if the provided context is
91988// canceled.
91989func (c *InstancesInsertCall) Context(ctx context.Context) *InstancesInsertCall {
91990	c.ctx_ = ctx
91991	return c
91992}
91993
91994// Header returns an http.Header that can be modified by the caller to
91995// add HTTP headers to the request.
91996func (c *InstancesInsertCall) Header() http.Header {
91997	if c.header_ == nil {
91998		c.header_ = make(http.Header)
91999	}
92000	return c.header_
92001}
92002
92003func (c *InstancesInsertCall) doRequest(alt string) (*http.Response, error) {
92004	reqHeaders := make(http.Header)
92005	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
92006	for k, v := range c.header_ {
92007		reqHeaders[k] = v
92008	}
92009	reqHeaders.Set("User-Agent", c.s.userAgent())
92010	var body io.Reader = nil
92011	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instance)
92012	if err != nil {
92013		return nil, err
92014	}
92015	reqHeaders.Set("Content-Type", "application/json")
92016	c.urlParams_.Set("alt", alt)
92017	c.urlParams_.Set("prettyPrint", "false")
92018	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances")
92019	urls += "?" + c.urlParams_.Encode()
92020	req, err := http.NewRequest("POST", urls, body)
92021	if err != nil {
92022		return nil, err
92023	}
92024	req.Header = reqHeaders
92025	googleapi.Expand(req.URL, map[string]string{
92026		"project": c.project,
92027		"zone":    c.zone,
92028	})
92029	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92030}
92031
92032// Do executes the "compute.instances.insert" call.
92033// Exactly one of *Operation or error will be non-nil. Any non-2xx
92034// status code is an error. Response headers are in either
92035// *Operation.ServerResponse.Header or (if a response was returned at
92036// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
92037// to check whether the returned error was because
92038// http.StatusNotModified was returned.
92039func (c *InstancesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
92040	gensupport.SetOptions(c.urlParams_, opts...)
92041	res, err := c.doRequest("json")
92042	if res != nil && res.StatusCode == http.StatusNotModified {
92043		if res.Body != nil {
92044			res.Body.Close()
92045		}
92046		return nil, &googleapi.Error{
92047			Code:   res.StatusCode,
92048			Header: res.Header,
92049		}
92050	}
92051	if err != nil {
92052		return nil, err
92053	}
92054	defer googleapi.CloseBody(res)
92055	if err := googleapi.CheckResponse(res); err != nil {
92056		return nil, err
92057	}
92058	ret := &Operation{
92059		ServerResponse: googleapi.ServerResponse{
92060			Header:         res.Header,
92061			HTTPStatusCode: res.StatusCode,
92062		},
92063	}
92064	target := &ret
92065	if err := gensupport.DecodeResponse(target, res); err != nil {
92066		return nil, err
92067	}
92068	return ret, nil
92069	// {
92070	//   "description": "Creates an instance resource in the specified project using the data included in the request.",
92071	//   "httpMethod": "POST",
92072	//   "id": "compute.instances.insert",
92073	//   "parameterOrder": [
92074	//     "project",
92075	//     "zone"
92076	//   ],
92077	//   "parameters": {
92078	//     "project": {
92079	//       "description": "Project ID for this request.",
92080	//       "location": "path",
92081	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92082	//       "required": true,
92083	//       "type": "string"
92084	//     },
92085	//     "requestId": {
92086	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
92087	//       "location": "query",
92088	//       "type": "string"
92089	//     },
92090	//     "sourceInstanceTemplate": {
92091	//       "description": "Specifies instance template to create the instance.\n\nThis field is optional. It can be a full or partial URL. For example, the following are all valid URLs to an instance template:  \n- https://www.googleapis.com/compute/v1/projects/project/global/instanceTemplates/instanceTemplate \n- projects/project/global/instanceTemplates/instanceTemplate \n- global/instanceTemplates/instanceTemplate",
92092	//       "location": "query",
92093	//       "type": "string"
92094	//     },
92095	//     "sourceMachineImage": {
92096	//       "description": "Specifies the machine image to use to create the instance.\n\nThis field is optional. It can be a full or partial URL. For example, the following are all valid URLs to a machine image:  \n- https://www.googleapis.com/compute/v1/projects/project/global/global/machineImages/machineImage \n- projects/project/global/global/machineImages/machineImage \n- global/machineImages/machineImage",
92097	//       "location": "query",
92098	//       "type": "string"
92099	//     },
92100	//     "zone": {
92101	//       "description": "The name of the zone for this request.",
92102	//       "location": "path",
92103	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
92104	//       "required": true,
92105	//       "type": "string"
92106	//     }
92107	//   },
92108	//   "path": "projects/{project}/zones/{zone}/instances",
92109	//   "request": {
92110	//     "$ref": "Instance"
92111	//   },
92112	//   "response": {
92113	//     "$ref": "Operation"
92114	//   },
92115	//   "scopes": [
92116	//     "https://www.googleapis.com/auth/cloud-platform",
92117	//     "https://www.googleapis.com/auth/compute"
92118	//   ]
92119	// }
92120
92121}
92122
92123// method id "compute.instances.list":
92124
92125type InstancesListCall struct {
92126	s            *Service
92127	project      string
92128	zone         string
92129	urlParams_   gensupport.URLParams
92130	ifNoneMatch_ string
92131	ctx_         context.Context
92132	header_      http.Header
92133}
92134
92135// List: Retrieves the list of instances contained within the specified
92136// zone.
92137// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/list
92138func (r *InstancesService) List(project string, zone string) *InstancesListCall {
92139	c := &InstancesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92140	c.project = project
92141	c.zone = zone
92142	return c
92143}
92144
92145// Filter sets the optional parameter "filter": A filter expression that
92146// filters resources listed in the response. The expression must specify
92147// the field name, a comparison operator, and the value that you want to
92148// use for filtering. The value must be a string, a number, or a
92149// boolean. The comparison operator must be either `=`, `!=`, `>`, or
92150// `<`.
92151//
92152// For example, if you are filtering Compute Engine instances, you can
92153// exclude instances named `example-instance` by specifying `name !=
92154// example-instance`.
92155//
92156// You can also filter nested fields. For example, you could specify
92157// `scheduling.automaticRestart = false` to include instances only if
92158// they are not scheduled for automatic restarts. You can use filtering
92159// on nested fields to filter based on resource labels.
92160//
92161// To filter on multiple expressions, provide each separate expression
92162// within parentheses. For example: ``` (scheduling.automaticRestart =
92163// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
92164// is an `AND` expression. However, you can include `AND` and `OR`
92165// expressions explicitly. For example: ``` (cpuPlatform = "Intel
92166// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
92167// (scheduling.automaticRestart = true) ```
92168func (c *InstancesListCall) Filter(filter string) *InstancesListCall {
92169	c.urlParams_.Set("filter", filter)
92170	return c
92171}
92172
92173// MaxResults sets the optional parameter "maxResults": The maximum
92174// number of results per page that should be returned. If the number of
92175// available results is larger than `maxResults`, Compute Engine returns
92176// a `nextPageToken` that can be used to get the next page of results in
92177// subsequent list requests. Acceptable values are `0` to `500`,
92178// inclusive. (Default: `500`)
92179func (c *InstancesListCall) MaxResults(maxResults int64) *InstancesListCall {
92180	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
92181	return c
92182}
92183
92184// OrderBy sets the optional parameter "orderBy": Sorts list results by
92185// a certain order. By default, results are returned in alphanumerical
92186// order based on the resource name.
92187//
92188// You can also sort results in descending order based on the creation
92189// timestamp using `orderBy="creationTimestamp desc". This sorts
92190// results based on the `creationTimestamp` field in reverse
92191// chronological order (newest result first). Use this to sort resources
92192// like operations so that the newest operation is returned
92193// first.
92194//
92195// Currently, only sorting by `name` or `creationTimestamp desc` is
92196// supported.
92197func (c *InstancesListCall) OrderBy(orderBy string) *InstancesListCall {
92198	c.urlParams_.Set("orderBy", orderBy)
92199	return c
92200}
92201
92202// PageToken sets the optional parameter "pageToken": Specifies a page
92203// token to use. Set `pageToken` to the `nextPageToken` returned by a
92204// previous list request to get the next page of results.
92205func (c *InstancesListCall) PageToken(pageToken string) *InstancesListCall {
92206	c.urlParams_.Set("pageToken", pageToken)
92207	return c
92208}
92209
92210// ReturnPartialSuccess sets the optional parameter
92211// "returnPartialSuccess": Opt-in for partial success behavior which
92212// provides partial results in case of failure. The default value is
92213// false.
92214func (c *InstancesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstancesListCall {
92215	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
92216	return c
92217}
92218
92219// Fields allows partial responses to be retrieved. See
92220// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92221// for more information.
92222func (c *InstancesListCall) Fields(s ...googleapi.Field) *InstancesListCall {
92223	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92224	return c
92225}
92226
92227// IfNoneMatch sets the optional parameter which makes the operation
92228// fail if the object's ETag matches the given value. This is useful for
92229// getting updates only after the object has changed since the last
92230// request. Use googleapi.IsNotModified to check whether the response
92231// error from Do is the result of In-None-Match.
92232func (c *InstancesListCall) IfNoneMatch(entityTag string) *InstancesListCall {
92233	c.ifNoneMatch_ = entityTag
92234	return c
92235}
92236
92237// Context sets the context to be used in this call's Do method. Any
92238// pending HTTP request will be aborted if the provided context is
92239// canceled.
92240func (c *InstancesListCall) Context(ctx context.Context) *InstancesListCall {
92241	c.ctx_ = ctx
92242	return c
92243}
92244
92245// Header returns an http.Header that can be modified by the caller to
92246// add HTTP headers to the request.
92247func (c *InstancesListCall) Header() http.Header {
92248	if c.header_ == nil {
92249		c.header_ = make(http.Header)
92250	}
92251	return c.header_
92252}
92253
92254func (c *InstancesListCall) doRequest(alt string) (*http.Response, error) {
92255	reqHeaders := make(http.Header)
92256	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
92257	for k, v := range c.header_ {
92258		reqHeaders[k] = v
92259	}
92260	reqHeaders.Set("User-Agent", c.s.userAgent())
92261	if c.ifNoneMatch_ != "" {
92262		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
92263	}
92264	var body io.Reader = nil
92265	c.urlParams_.Set("alt", alt)
92266	c.urlParams_.Set("prettyPrint", "false")
92267	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances")
92268	urls += "?" + c.urlParams_.Encode()
92269	req, err := http.NewRequest("GET", urls, body)
92270	if err != nil {
92271		return nil, err
92272	}
92273	req.Header = reqHeaders
92274	googleapi.Expand(req.URL, map[string]string{
92275		"project": c.project,
92276		"zone":    c.zone,
92277	})
92278	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92279}
92280
92281// Do executes the "compute.instances.list" call.
92282// Exactly one of *InstanceList or error will be non-nil. Any non-2xx
92283// status code is an error. Response headers are in either
92284// *InstanceList.ServerResponse.Header or (if a response was returned at
92285// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
92286// to check whether the returned error was because
92287// http.StatusNotModified was returned.
92288func (c *InstancesListCall) Do(opts ...googleapi.CallOption) (*InstanceList, error) {
92289	gensupport.SetOptions(c.urlParams_, opts...)
92290	res, err := c.doRequest("json")
92291	if res != nil && res.StatusCode == http.StatusNotModified {
92292		if res.Body != nil {
92293			res.Body.Close()
92294		}
92295		return nil, &googleapi.Error{
92296			Code:   res.StatusCode,
92297			Header: res.Header,
92298		}
92299	}
92300	if err != nil {
92301		return nil, err
92302	}
92303	defer googleapi.CloseBody(res)
92304	if err := googleapi.CheckResponse(res); err != nil {
92305		return nil, err
92306	}
92307	ret := &InstanceList{
92308		ServerResponse: googleapi.ServerResponse{
92309			Header:         res.Header,
92310			HTTPStatusCode: res.StatusCode,
92311		},
92312	}
92313	target := &ret
92314	if err := gensupport.DecodeResponse(target, res); err != nil {
92315		return nil, err
92316	}
92317	return ret, nil
92318	// {
92319	//   "description": "Retrieves the list of instances contained within the specified zone.",
92320	//   "httpMethod": "GET",
92321	//   "id": "compute.instances.list",
92322	//   "parameterOrder": [
92323	//     "project",
92324	//     "zone"
92325	//   ],
92326	//   "parameters": {
92327	//     "filter": {
92328	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
92329	//       "location": "query",
92330	//       "type": "string"
92331	//     },
92332	//     "maxResults": {
92333	//       "default": "500",
92334	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
92335	//       "format": "uint32",
92336	//       "location": "query",
92337	//       "minimum": "0",
92338	//       "type": "integer"
92339	//     },
92340	//     "orderBy": {
92341	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
92342	//       "location": "query",
92343	//       "type": "string"
92344	//     },
92345	//     "pageToken": {
92346	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
92347	//       "location": "query",
92348	//       "type": "string"
92349	//     },
92350	//     "project": {
92351	//       "description": "Project ID for this request.",
92352	//       "location": "path",
92353	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92354	//       "required": true,
92355	//       "type": "string"
92356	//     },
92357	//     "returnPartialSuccess": {
92358	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
92359	//       "location": "query",
92360	//       "type": "boolean"
92361	//     },
92362	//     "zone": {
92363	//       "description": "The name of the zone for this request.",
92364	//       "location": "path",
92365	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
92366	//       "required": true,
92367	//       "type": "string"
92368	//     }
92369	//   },
92370	//   "path": "projects/{project}/zones/{zone}/instances",
92371	//   "response": {
92372	//     "$ref": "InstanceList"
92373	//   },
92374	//   "scopes": [
92375	//     "https://www.googleapis.com/auth/cloud-platform",
92376	//     "https://www.googleapis.com/auth/compute",
92377	//     "https://www.googleapis.com/auth/compute.readonly"
92378	//   ]
92379	// }
92380
92381}
92382
92383// Pages invokes f for each page of results.
92384// A non-nil error returned from f will halt the iteration.
92385// The provided context supersedes any context provided to the Context method.
92386func (c *InstancesListCall) Pages(ctx context.Context, f func(*InstanceList) error) error {
92387	c.ctx_ = ctx
92388	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
92389	for {
92390		x, err := c.Do()
92391		if err != nil {
92392			return err
92393		}
92394		if err := f(x); err != nil {
92395			return err
92396		}
92397		if x.NextPageToken == "" {
92398			return nil
92399		}
92400		c.PageToken(x.NextPageToken)
92401	}
92402}
92403
92404// method id "compute.instances.listReferrers":
92405
92406type InstancesListReferrersCall struct {
92407	s            *Service
92408	project      string
92409	zone         string
92410	instance     string
92411	urlParams_   gensupport.URLParams
92412	ifNoneMatch_ string
92413	ctx_         context.Context
92414	header_      http.Header
92415}
92416
92417// ListReferrers: Retrieves a list of resources that refer to the VM
92418// instance specified in the request. For example, if the VM instance is
92419// part of a managed or unmanaged instance group, the referrers list
92420// includes the instance group. For more information, read Viewing
92421// referrers to VM instances.
92422func (r *InstancesService) ListReferrers(project string, zone string, instance string) *InstancesListReferrersCall {
92423	c := &InstancesListReferrersCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92424	c.project = project
92425	c.zone = zone
92426	c.instance = instance
92427	return c
92428}
92429
92430// Filter sets the optional parameter "filter": A filter expression that
92431// filters resources listed in the response. The expression must specify
92432// the field name, a comparison operator, and the value that you want to
92433// use for filtering. The value must be a string, a number, or a
92434// boolean. The comparison operator must be either `=`, `!=`, `>`, or
92435// `<`.
92436//
92437// For example, if you are filtering Compute Engine instances, you can
92438// exclude instances named `example-instance` by specifying `name !=
92439// example-instance`.
92440//
92441// You can also filter nested fields. For example, you could specify
92442// `scheduling.automaticRestart = false` to include instances only if
92443// they are not scheduled for automatic restarts. You can use filtering
92444// on nested fields to filter based on resource labels.
92445//
92446// To filter on multiple expressions, provide each separate expression
92447// within parentheses. For example: ``` (scheduling.automaticRestart =
92448// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
92449// is an `AND` expression. However, you can include `AND` and `OR`
92450// expressions explicitly. For example: ``` (cpuPlatform = "Intel
92451// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
92452// (scheduling.automaticRestart = true) ```
92453func (c *InstancesListReferrersCall) Filter(filter string) *InstancesListReferrersCall {
92454	c.urlParams_.Set("filter", filter)
92455	return c
92456}
92457
92458// MaxResults sets the optional parameter "maxResults": The maximum
92459// number of results per page that should be returned. If the number of
92460// available results is larger than `maxResults`, Compute Engine returns
92461// a `nextPageToken` that can be used to get the next page of results in
92462// subsequent list requests. Acceptable values are `0` to `500`,
92463// inclusive. (Default: `500`)
92464func (c *InstancesListReferrersCall) MaxResults(maxResults int64) *InstancesListReferrersCall {
92465	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
92466	return c
92467}
92468
92469// OrderBy sets the optional parameter "orderBy": Sorts list results by
92470// a certain order. By default, results are returned in alphanumerical
92471// order based on the resource name.
92472//
92473// You can also sort results in descending order based on the creation
92474// timestamp using `orderBy="creationTimestamp desc". This sorts
92475// results based on the `creationTimestamp` field in reverse
92476// chronological order (newest result first). Use this to sort resources
92477// like operations so that the newest operation is returned
92478// first.
92479//
92480// Currently, only sorting by `name` or `creationTimestamp desc` is
92481// supported.
92482func (c *InstancesListReferrersCall) OrderBy(orderBy string) *InstancesListReferrersCall {
92483	c.urlParams_.Set("orderBy", orderBy)
92484	return c
92485}
92486
92487// PageToken sets the optional parameter "pageToken": Specifies a page
92488// token to use. Set `pageToken` to the `nextPageToken` returned by a
92489// previous list request to get the next page of results.
92490func (c *InstancesListReferrersCall) PageToken(pageToken string) *InstancesListReferrersCall {
92491	c.urlParams_.Set("pageToken", pageToken)
92492	return c
92493}
92494
92495// ReturnPartialSuccess sets the optional parameter
92496// "returnPartialSuccess": Opt-in for partial success behavior which
92497// provides partial results in case of failure. The default value is
92498// false.
92499func (c *InstancesListReferrersCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstancesListReferrersCall {
92500	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
92501	return c
92502}
92503
92504// Fields allows partial responses to be retrieved. See
92505// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92506// for more information.
92507func (c *InstancesListReferrersCall) Fields(s ...googleapi.Field) *InstancesListReferrersCall {
92508	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92509	return c
92510}
92511
92512// IfNoneMatch sets the optional parameter which makes the operation
92513// fail if the object's ETag matches the given value. This is useful for
92514// getting updates only after the object has changed since the last
92515// request. Use googleapi.IsNotModified to check whether the response
92516// error from Do is the result of In-None-Match.
92517func (c *InstancesListReferrersCall) IfNoneMatch(entityTag string) *InstancesListReferrersCall {
92518	c.ifNoneMatch_ = entityTag
92519	return c
92520}
92521
92522// Context sets the context to be used in this call's Do method. Any
92523// pending HTTP request will be aborted if the provided context is
92524// canceled.
92525func (c *InstancesListReferrersCall) Context(ctx context.Context) *InstancesListReferrersCall {
92526	c.ctx_ = ctx
92527	return c
92528}
92529
92530// Header returns an http.Header that can be modified by the caller to
92531// add HTTP headers to the request.
92532func (c *InstancesListReferrersCall) Header() http.Header {
92533	if c.header_ == nil {
92534		c.header_ = make(http.Header)
92535	}
92536	return c.header_
92537}
92538
92539func (c *InstancesListReferrersCall) doRequest(alt string) (*http.Response, error) {
92540	reqHeaders := make(http.Header)
92541	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
92542	for k, v := range c.header_ {
92543		reqHeaders[k] = v
92544	}
92545	reqHeaders.Set("User-Agent", c.s.userAgent())
92546	if c.ifNoneMatch_ != "" {
92547		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
92548	}
92549	var body io.Reader = nil
92550	c.urlParams_.Set("alt", alt)
92551	c.urlParams_.Set("prettyPrint", "false")
92552	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/referrers")
92553	urls += "?" + c.urlParams_.Encode()
92554	req, err := http.NewRequest("GET", urls, body)
92555	if err != nil {
92556		return nil, err
92557	}
92558	req.Header = reqHeaders
92559	googleapi.Expand(req.URL, map[string]string{
92560		"project":  c.project,
92561		"zone":     c.zone,
92562		"instance": c.instance,
92563	})
92564	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92565}
92566
92567// Do executes the "compute.instances.listReferrers" call.
92568// Exactly one of *InstanceListReferrers or error will be non-nil. Any
92569// non-2xx status code is an error. Response headers are in either
92570// *InstanceListReferrers.ServerResponse.Header or (if a response was
92571// returned at all) in error.(*googleapi.Error).Header. Use
92572// googleapi.IsNotModified to check whether the returned error was
92573// because http.StatusNotModified was returned.
92574func (c *InstancesListReferrersCall) Do(opts ...googleapi.CallOption) (*InstanceListReferrers, error) {
92575	gensupport.SetOptions(c.urlParams_, opts...)
92576	res, err := c.doRequest("json")
92577	if res != nil && res.StatusCode == http.StatusNotModified {
92578		if res.Body != nil {
92579			res.Body.Close()
92580		}
92581		return nil, &googleapi.Error{
92582			Code:   res.StatusCode,
92583			Header: res.Header,
92584		}
92585	}
92586	if err != nil {
92587		return nil, err
92588	}
92589	defer googleapi.CloseBody(res)
92590	if err := googleapi.CheckResponse(res); err != nil {
92591		return nil, err
92592	}
92593	ret := &InstanceListReferrers{
92594		ServerResponse: googleapi.ServerResponse{
92595			Header:         res.Header,
92596			HTTPStatusCode: res.StatusCode,
92597		},
92598	}
92599	target := &ret
92600	if err := gensupport.DecodeResponse(target, res); err != nil {
92601		return nil, err
92602	}
92603	return ret, nil
92604	// {
92605	//   "description": "Retrieves a list of resources that refer to the VM instance specified in the request. For example, if the VM instance is part of a managed or unmanaged instance group, the referrers list includes the instance group. For more information, read Viewing referrers to VM instances.",
92606	//   "httpMethod": "GET",
92607	//   "id": "compute.instances.listReferrers",
92608	//   "parameterOrder": [
92609	//     "project",
92610	//     "zone",
92611	//     "instance"
92612	//   ],
92613	//   "parameters": {
92614	//     "filter": {
92615	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
92616	//       "location": "query",
92617	//       "type": "string"
92618	//     },
92619	//     "instance": {
92620	//       "description": "Name of the target instance scoping this request, or '-' if the request should span over all instances in the container.",
92621	//       "location": "path",
92622	//       "pattern": "-|[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
92623	//       "required": true,
92624	//       "type": "string"
92625	//     },
92626	//     "maxResults": {
92627	//       "default": "500",
92628	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
92629	//       "format": "uint32",
92630	//       "location": "query",
92631	//       "minimum": "0",
92632	//       "type": "integer"
92633	//     },
92634	//     "orderBy": {
92635	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
92636	//       "location": "query",
92637	//       "type": "string"
92638	//     },
92639	//     "pageToken": {
92640	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
92641	//       "location": "query",
92642	//       "type": "string"
92643	//     },
92644	//     "project": {
92645	//       "description": "Project ID for this request.",
92646	//       "location": "path",
92647	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92648	//       "required": true,
92649	//       "type": "string"
92650	//     },
92651	//     "returnPartialSuccess": {
92652	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
92653	//       "location": "query",
92654	//       "type": "boolean"
92655	//     },
92656	//     "zone": {
92657	//       "description": "The name of the zone for this request.",
92658	//       "location": "path",
92659	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
92660	//       "required": true,
92661	//       "type": "string"
92662	//     }
92663	//   },
92664	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/referrers",
92665	//   "response": {
92666	//     "$ref": "InstanceListReferrers"
92667	//   },
92668	//   "scopes": [
92669	//     "https://www.googleapis.com/auth/cloud-platform",
92670	//     "https://www.googleapis.com/auth/compute",
92671	//     "https://www.googleapis.com/auth/compute.readonly"
92672	//   ]
92673	// }
92674
92675}
92676
92677// Pages invokes f for each page of results.
92678// A non-nil error returned from f will halt the iteration.
92679// The provided context supersedes any context provided to the Context method.
92680func (c *InstancesListReferrersCall) Pages(ctx context.Context, f func(*InstanceListReferrers) error) error {
92681	c.ctx_ = ctx
92682	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
92683	for {
92684		x, err := c.Do()
92685		if err != nil {
92686			return err
92687		}
92688		if err := f(x); err != nil {
92689			return err
92690		}
92691		if x.NextPageToken == "" {
92692			return nil
92693		}
92694		c.PageToken(x.NextPageToken)
92695	}
92696}
92697
92698// method id "compute.instances.removeResourcePolicies":
92699
92700type InstancesRemoveResourcePoliciesCall struct {
92701	s                                      *Service
92702	project                                string
92703	zone                                   string
92704	instance                               string
92705	instancesremoveresourcepoliciesrequest *InstancesRemoveResourcePoliciesRequest
92706	urlParams_                             gensupport.URLParams
92707	ctx_                                   context.Context
92708	header_                                http.Header
92709}
92710
92711// RemoveResourcePolicies: Removes resource policies from an instance.
92712func (r *InstancesService) RemoveResourcePolicies(project string, zone string, instance string, instancesremoveresourcepoliciesrequest *InstancesRemoveResourcePoliciesRequest) *InstancesRemoveResourcePoliciesCall {
92713	c := &InstancesRemoveResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92714	c.project = project
92715	c.zone = zone
92716	c.instance = instance
92717	c.instancesremoveresourcepoliciesrequest = instancesremoveresourcepoliciesrequest
92718	return c
92719}
92720
92721// RequestId sets the optional parameter "requestId": An optional
92722// request ID to identify requests. Specify a unique request ID so that
92723// if you must retry your request, the server will know to ignore the
92724// request if it has already been completed.
92725//
92726// For example, consider a situation where you make an initial request
92727// and the request times out. If you make the request again with the
92728// same request ID, the server can check if original operation with the
92729// same request ID was received, and if so, will ignore the second
92730// request. This prevents clients from accidentally creating duplicate
92731// commitments.
92732//
92733// The request ID must be a valid UUID with the exception that zero UUID
92734// is not supported (00000000-0000-0000-0000-000000000000).
92735func (c *InstancesRemoveResourcePoliciesCall) RequestId(requestId string) *InstancesRemoveResourcePoliciesCall {
92736	c.urlParams_.Set("requestId", requestId)
92737	return c
92738}
92739
92740// Fields allows partial responses to be retrieved. See
92741// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92742// for more information.
92743func (c *InstancesRemoveResourcePoliciesCall) Fields(s ...googleapi.Field) *InstancesRemoveResourcePoliciesCall {
92744	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92745	return c
92746}
92747
92748// Context sets the context to be used in this call's Do method. Any
92749// pending HTTP request will be aborted if the provided context is
92750// canceled.
92751func (c *InstancesRemoveResourcePoliciesCall) Context(ctx context.Context) *InstancesRemoveResourcePoliciesCall {
92752	c.ctx_ = ctx
92753	return c
92754}
92755
92756// Header returns an http.Header that can be modified by the caller to
92757// add HTTP headers to the request.
92758func (c *InstancesRemoveResourcePoliciesCall) Header() http.Header {
92759	if c.header_ == nil {
92760		c.header_ = make(http.Header)
92761	}
92762	return c.header_
92763}
92764
92765func (c *InstancesRemoveResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
92766	reqHeaders := make(http.Header)
92767	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
92768	for k, v := range c.header_ {
92769		reqHeaders[k] = v
92770	}
92771	reqHeaders.Set("User-Agent", c.s.userAgent())
92772	var body io.Reader = nil
92773	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancesremoveresourcepoliciesrequest)
92774	if err != nil {
92775		return nil, err
92776	}
92777	reqHeaders.Set("Content-Type", "application/json")
92778	c.urlParams_.Set("alt", alt)
92779	c.urlParams_.Set("prettyPrint", "false")
92780	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/removeResourcePolicies")
92781	urls += "?" + c.urlParams_.Encode()
92782	req, err := http.NewRequest("POST", urls, body)
92783	if err != nil {
92784		return nil, err
92785	}
92786	req.Header = reqHeaders
92787	googleapi.Expand(req.URL, map[string]string{
92788		"project":  c.project,
92789		"zone":     c.zone,
92790		"instance": c.instance,
92791	})
92792	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92793}
92794
92795// Do executes the "compute.instances.removeResourcePolicies" call.
92796// Exactly one of *Operation or error will be non-nil. Any non-2xx
92797// status code is an error. Response headers are in either
92798// *Operation.ServerResponse.Header or (if a response was returned at
92799// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
92800// to check whether the returned error was because
92801// http.StatusNotModified was returned.
92802func (c *InstancesRemoveResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
92803	gensupport.SetOptions(c.urlParams_, opts...)
92804	res, err := c.doRequest("json")
92805	if res != nil && res.StatusCode == http.StatusNotModified {
92806		if res.Body != nil {
92807			res.Body.Close()
92808		}
92809		return nil, &googleapi.Error{
92810			Code:   res.StatusCode,
92811			Header: res.Header,
92812		}
92813	}
92814	if err != nil {
92815		return nil, err
92816	}
92817	defer googleapi.CloseBody(res)
92818	if err := googleapi.CheckResponse(res); err != nil {
92819		return nil, err
92820	}
92821	ret := &Operation{
92822		ServerResponse: googleapi.ServerResponse{
92823			Header:         res.Header,
92824			HTTPStatusCode: res.StatusCode,
92825		},
92826	}
92827	target := &ret
92828	if err := gensupport.DecodeResponse(target, res); err != nil {
92829		return nil, err
92830	}
92831	return ret, nil
92832	// {
92833	//   "description": "Removes resource policies from an instance.",
92834	//   "httpMethod": "POST",
92835	//   "id": "compute.instances.removeResourcePolicies",
92836	//   "parameterOrder": [
92837	//     "project",
92838	//     "zone",
92839	//     "instance"
92840	//   ],
92841	//   "parameters": {
92842	//     "instance": {
92843	//       "description": "The instance name for this request.",
92844	//       "location": "path",
92845	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
92846	//       "required": true,
92847	//       "type": "string"
92848	//     },
92849	//     "project": {
92850	//       "description": "Project ID for this request.",
92851	//       "location": "path",
92852	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92853	//       "required": true,
92854	//       "type": "string"
92855	//     },
92856	//     "requestId": {
92857	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
92858	//       "location": "query",
92859	//       "type": "string"
92860	//     },
92861	//     "zone": {
92862	//       "description": "The name of the zone for this request.",
92863	//       "location": "path",
92864	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
92865	//       "required": true,
92866	//       "type": "string"
92867	//     }
92868	//   },
92869	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/removeResourcePolicies",
92870	//   "request": {
92871	//     "$ref": "InstancesRemoveResourcePoliciesRequest"
92872	//   },
92873	//   "response": {
92874	//     "$ref": "Operation"
92875	//   },
92876	//   "scopes": [
92877	//     "https://www.googleapis.com/auth/cloud-platform",
92878	//     "https://www.googleapis.com/auth/compute"
92879	//   ]
92880	// }
92881
92882}
92883
92884// method id "compute.instances.reset":
92885
92886type InstancesResetCall struct {
92887	s          *Service
92888	project    string
92889	zone       string
92890	instance   string
92891	urlParams_ gensupport.URLParams
92892	ctx_       context.Context
92893	header_    http.Header
92894}
92895
92896// Reset: Performs a reset on the instance. This is a hard reset the VM
92897// does not do a graceful shutdown. For more information, see Resetting
92898// an instance.
92899// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/reset
92900func (r *InstancesService) Reset(project string, zone string, instance string) *InstancesResetCall {
92901	c := &InstancesResetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92902	c.project = project
92903	c.zone = zone
92904	c.instance = instance
92905	return c
92906}
92907
92908// RequestId sets the optional parameter "requestId": An optional
92909// request ID to identify requests. Specify a unique request ID so that
92910// if you must retry your request, the server will know to ignore the
92911// request if it has already been completed.
92912//
92913// For example, consider a situation where you make an initial request
92914// and the request times out. If you make the request again with the
92915// same request ID, the server can check if original operation with the
92916// same request ID was received, and if so, will ignore the second
92917// request. This prevents clients from accidentally creating duplicate
92918// commitments.
92919//
92920// The request ID must be a valid UUID with the exception that zero UUID
92921// is not supported (00000000-0000-0000-0000-000000000000).
92922func (c *InstancesResetCall) RequestId(requestId string) *InstancesResetCall {
92923	c.urlParams_.Set("requestId", requestId)
92924	return c
92925}
92926
92927// Fields allows partial responses to be retrieved. See
92928// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92929// for more information.
92930func (c *InstancesResetCall) Fields(s ...googleapi.Field) *InstancesResetCall {
92931	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92932	return c
92933}
92934
92935// Context sets the context to be used in this call's Do method. Any
92936// pending HTTP request will be aborted if the provided context is
92937// canceled.
92938func (c *InstancesResetCall) Context(ctx context.Context) *InstancesResetCall {
92939	c.ctx_ = ctx
92940	return c
92941}
92942
92943// Header returns an http.Header that can be modified by the caller to
92944// add HTTP headers to the request.
92945func (c *InstancesResetCall) Header() http.Header {
92946	if c.header_ == nil {
92947		c.header_ = make(http.Header)
92948	}
92949	return c.header_
92950}
92951
92952func (c *InstancesResetCall) doRequest(alt string) (*http.Response, error) {
92953	reqHeaders := make(http.Header)
92954	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
92955	for k, v := range c.header_ {
92956		reqHeaders[k] = v
92957	}
92958	reqHeaders.Set("User-Agent", c.s.userAgent())
92959	var body io.Reader = nil
92960	c.urlParams_.Set("alt", alt)
92961	c.urlParams_.Set("prettyPrint", "false")
92962	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/reset")
92963	urls += "?" + c.urlParams_.Encode()
92964	req, err := http.NewRequest("POST", urls, body)
92965	if err != nil {
92966		return nil, err
92967	}
92968	req.Header = reqHeaders
92969	googleapi.Expand(req.URL, map[string]string{
92970		"project":  c.project,
92971		"zone":     c.zone,
92972		"instance": c.instance,
92973	})
92974	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92975}
92976
92977// Do executes the "compute.instances.reset" call.
92978// Exactly one of *Operation or error will be non-nil. Any non-2xx
92979// status code is an error. Response headers are in either
92980// *Operation.ServerResponse.Header or (if a response was returned at
92981// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
92982// to check whether the returned error was because
92983// http.StatusNotModified was returned.
92984func (c *InstancesResetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
92985	gensupport.SetOptions(c.urlParams_, opts...)
92986	res, err := c.doRequest("json")
92987	if res != nil && res.StatusCode == http.StatusNotModified {
92988		if res.Body != nil {
92989			res.Body.Close()
92990		}
92991		return nil, &googleapi.Error{
92992			Code:   res.StatusCode,
92993			Header: res.Header,
92994		}
92995	}
92996	if err != nil {
92997		return nil, err
92998	}
92999	defer googleapi.CloseBody(res)
93000	if err := googleapi.CheckResponse(res); err != nil {
93001		return nil, err
93002	}
93003	ret := &Operation{
93004		ServerResponse: googleapi.ServerResponse{
93005			Header:         res.Header,
93006			HTTPStatusCode: res.StatusCode,
93007		},
93008	}
93009	target := &ret
93010	if err := gensupport.DecodeResponse(target, res); err != nil {
93011		return nil, err
93012	}
93013	return ret, nil
93014	// {
93015	//   "description": "Performs a reset on the instance. This is a hard reset the VM does not do a graceful shutdown. For more information, see Resetting an instance.",
93016	//   "httpMethod": "POST",
93017	//   "id": "compute.instances.reset",
93018	//   "parameterOrder": [
93019	//     "project",
93020	//     "zone",
93021	//     "instance"
93022	//   ],
93023	//   "parameters": {
93024	//     "instance": {
93025	//       "description": "Name of the instance scoping this request.",
93026	//       "location": "path",
93027	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
93028	//       "required": true,
93029	//       "type": "string"
93030	//     },
93031	//     "project": {
93032	//       "description": "Project ID for this request.",
93033	//       "location": "path",
93034	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93035	//       "required": true,
93036	//       "type": "string"
93037	//     },
93038	//     "requestId": {
93039	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
93040	//       "location": "query",
93041	//       "type": "string"
93042	//     },
93043	//     "zone": {
93044	//       "description": "The name of the zone for this request.",
93045	//       "location": "path",
93046	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
93047	//       "required": true,
93048	//       "type": "string"
93049	//     }
93050	//   },
93051	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/reset",
93052	//   "response": {
93053	//     "$ref": "Operation"
93054	//   },
93055	//   "scopes": [
93056	//     "https://www.googleapis.com/auth/cloud-platform",
93057	//     "https://www.googleapis.com/auth/compute"
93058	//   ]
93059	// }
93060
93061}
93062
93063// method id "compute.instances.resume":
93064
93065type InstancesResumeCall struct {
93066	s                      *Service
93067	project                string
93068	zone                   string
93069	instance               string
93070	instancesresumerequest *InstancesResumeRequest
93071	urlParams_             gensupport.URLParams
93072	ctx_                   context.Context
93073	header_                http.Header
93074}
93075
93076// Resume: Resumes an instance that was suspended using the
93077// instances().suspend method.
93078func (r *InstancesService) Resume(project string, zone string, instance string, instancesresumerequest *InstancesResumeRequest) *InstancesResumeCall {
93079	c := &InstancesResumeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93080	c.project = project
93081	c.zone = zone
93082	c.instance = instance
93083	c.instancesresumerequest = instancesresumerequest
93084	return c
93085}
93086
93087// RequestId sets the optional parameter "requestId": An optional
93088// request ID to identify requests. Specify a unique request ID so that
93089// if you must retry your request, the server will know to ignore the
93090// request if it has already been completed.
93091//
93092// For example, consider a situation where you make an initial request
93093// and the request times out. If you make the request again with the
93094// same request ID, the server can check if original operation with the
93095// same request ID was received, and if so, will ignore the second
93096// request. This prevents clients from accidentally creating duplicate
93097// commitments.
93098//
93099// The request ID must be a valid UUID with the exception that zero UUID
93100// is not supported (00000000-0000-0000-0000-000000000000).
93101func (c *InstancesResumeCall) RequestId(requestId string) *InstancesResumeCall {
93102	c.urlParams_.Set("requestId", requestId)
93103	return c
93104}
93105
93106// Fields allows partial responses to be retrieved. See
93107// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93108// for more information.
93109func (c *InstancesResumeCall) Fields(s ...googleapi.Field) *InstancesResumeCall {
93110	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93111	return c
93112}
93113
93114// Context sets the context to be used in this call's Do method. Any
93115// pending HTTP request will be aborted if the provided context is
93116// canceled.
93117func (c *InstancesResumeCall) Context(ctx context.Context) *InstancesResumeCall {
93118	c.ctx_ = ctx
93119	return c
93120}
93121
93122// Header returns an http.Header that can be modified by the caller to
93123// add HTTP headers to the request.
93124func (c *InstancesResumeCall) Header() http.Header {
93125	if c.header_ == nil {
93126		c.header_ = make(http.Header)
93127	}
93128	return c.header_
93129}
93130
93131func (c *InstancesResumeCall) doRequest(alt string) (*http.Response, error) {
93132	reqHeaders := make(http.Header)
93133	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
93134	for k, v := range c.header_ {
93135		reqHeaders[k] = v
93136	}
93137	reqHeaders.Set("User-Agent", c.s.userAgent())
93138	var body io.Reader = nil
93139	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancesresumerequest)
93140	if err != nil {
93141		return nil, err
93142	}
93143	reqHeaders.Set("Content-Type", "application/json")
93144	c.urlParams_.Set("alt", alt)
93145	c.urlParams_.Set("prettyPrint", "false")
93146	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/resume")
93147	urls += "?" + c.urlParams_.Encode()
93148	req, err := http.NewRequest("POST", urls, body)
93149	if err != nil {
93150		return nil, err
93151	}
93152	req.Header = reqHeaders
93153	googleapi.Expand(req.URL, map[string]string{
93154		"project":  c.project,
93155		"zone":     c.zone,
93156		"instance": c.instance,
93157	})
93158	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93159}
93160
93161// Do executes the "compute.instances.resume" call.
93162// Exactly one of *Operation or error will be non-nil. Any non-2xx
93163// status code is an error. Response headers are in either
93164// *Operation.ServerResponse.Header or (if a response was returned at
93165// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
93166// to check whether the returned error was because
93167// http.StatusNotModified was returned.
93168func (c *InstancesResumeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
93169	gensupport.SetOptions(c.urlParams_, opts...)
93170	res, err := c.doRequest("json")
93171	if res != nil && res.StatusCode == http.StatusNotModified {
93172		if res.Body != nil {
93173			res.Body.Close()
93174		}
93175		return nil, &googleapi.Error{
93176			Code:   res.StatusCode,
93177			Header: res.Header,
93178		}
93179	}
93180	if err != nil {
93181		return nil, err
93182	}
93183	defer googleapi.CloseBody(res)
93184	if err := googleapi.CheckResponse(res); err != nil {
93185		return nil, err
93186	}
93187	ret := &Operation{
93188		ServerResponse: googleapi.ServerResponse{
93189			Header:         res.Header,
93190			HTTPStatusCode: res.StatusCode,
93191		},
93192	}
93193	target := &ret
93194	if err := gensupport.DecodeResponse(target, res); err != nil {
93195		return nil, err
93196	}
93197	return ret, nil
93198	// {
93199	//   "description": "Resumes an instance that was suspended using the instances().suspend method.",
93200	//   "httpMethod": "POST",
93201	//   "id": "compute.instances.resume",
93202	//   "parameterOrder": [
93203	//     "project",
93204	//     "zone",
93205	//     "instance"
93206	//   ],
93207	//   "parameters": {
93208	//     "instance": {
93209	//       "description": "Name of the instance resource to resume.",
93210	//       "location": "path",
93211	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
93212	//       "required": true,
93213	//       "type": "string"
93214	//     },
93215	//     "project": {
93216	//       "description": "Project ID for this request.",
93217	//       "location": "path",
93218	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93219	//       "required": true,
93220	//       "type": "string"
93221	//     },
93222	//     "requestId": {
93223	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
93224	//       "location": "query",
93225	//       "type": "string"
93226	//     },
93227	//     "zone": {
93228	//       "description": "The name of the zone for this request.",
93229	//       "location": "path",
93230	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
93231	//       "required": true,
93232	//       "type": "string"
93233	//     }
93234	//   },
93235	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/resume",
93236	//   "request": {
93237	//     "$ref": "InstancesResumeRequest"
93238	//   },
93239	//   "response": {
93240	//     "$ref": "Operation"
93241	//   },
93242	//   "scopes": [
93243	//     "https://www.googleapis.com/auth/cloud-platform",
93244	//     "https://www.googleapis.com/auth/compute"
93245	//   ]
93246	// }
93247
93248}
93249
93250// method id "compute.instances.setDeletionProtection":
93251
93252type InstancesSetDeletionProtectionCall struct {
93253	s          *Service
93254	project    string
93255	zone       string
93256	resource   string
93257	urlParams_ gensupport.URLParams
93258	ctx_       context.Context
93259	header_    http.Header
93260}
93261
93262// SetDeletionProtection: Sets deletion protection on the instance.
93263func (r *InstancesService) SetDeletionProtection(project string, zone string, resource string) *InstancesSetDeletionProtectionCall {
93264	c := &InstancesSetDeletionProtectionCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93265	c.project = project
93266	c.zone = zone
93267	c.resource = resource
93268	return c
93269}
93270
93271// DeletionProtection sets the optional parameter "deletionProtection":
93272// Whether the resource should be protected against deletion.
93273func (c *InstancesSetDeletionProtectionCall) DeletionProtection(deletionProtection bool) *InstancesSetDeletionProtectionCall {
93274	c.urlParams_.Set("deletionProtection", fmt.Sprint(deletionProtection))
93275	return c
93276}
93277
93278// RequestId sets the optional parameter "requestId": An optional
93279// request ID to identify requests. Specify a unique request ID so that
93280// if you must retry your request, the server will know to ignore the
93281// request if it has already been completed.
93282//
93283// For example, consider a situation where you make an initial request
93284// and the request times out. If you make the request again with the
93285// same request ID, the server can check if original operation with the
93286// same request ID was received, and if so, will ignore the second
93287// request. This prevents clients from accidentally creating duplicate
93288// commitments.
93289//
93290// The request ID must be a valid UUID with the exception that zero UUID
93291// is not supported (00000000-0000-0000-0000-000000000000).
93292func (c *InstancesSetDeletionProtectionCall) RequestId(requestId string) *InstancesSetDeletionProtectionCall {
93293	c.urlParams_.Set("requestId", requestId)
93294	return c
93295}
93296
93297// Fields allows partial responses to be retrieved. See
93298// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93299// for more information.
93300func (c *InstancesSetDeletionProtectionCall) Fields(s ...googleapi.Field) *InstancesSetDeletionProtectionCall {
93301	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93302	return c
93303}
93304
93305// Context sets the context to be used in this call's Do method. Any
93306// pending HTTP request will be aborted if the provided context is
93307// canceled.
93308func (c *InstancesSetDeletionProtectionCall) Context(ctx context.Context) *InstancesSetDeletionProtectionCall {
93309	c.ctx_ = ctx
93310	return c
93311}
93312
93313// Header returns an http.Header that can be modified by the caller to
93314// add HTTP headers to the request.
93315func (c *InstancesSetDeletionProtectionCall) Header() http.Header {
93316	if c.header_ == nil {
93317		c.header_ = make(http.Header)
93318	}
93319	return c.header_
93320}
93321
93322func (c *InstancesSetDeletionProtectionCall) doRequest(alt string) (*http.Response, error) {
93323	reqHeaders := make(http.Header)
93324	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
93325	for k, v := range c.header_ {
93326		reqHeaders[k] = v
93327	}
93328	reqHeaders.Set("User-Agent", c.s.userAgent())
93329	var body io.Reader = nil
93330	c.urlParams_.Set("alt", alt)
93331	c.urlParams_.Set("prettyPrint", "false")
93332	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{resource}/setDeletionProtection")
93333	urls += "?" + c.urlParams_.Encode()
93334	req, err := http.NewRequest("POST", urls, body)
93335	if err != nil {
93336		return nil, err
93337	}
93338	req.Header = reqHeaders
93339	googleapi.Expand(req.URL, map[string]string{
93340		"project":  c.project,
93341		"zone":     c.zone,
93342		"resource": c.resource,
93343	})
93344	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93345}
93346
93347// Do executes the "compute.instances.setDeletionProtection" call.
93348// Exactly one of *Operation or error will be non-nil. Any non-2xx
93349// status code is an error. Response headers are in either
93350// *Operation.ServerResponse.Header or (if a response was returned at
93351// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
93352// to check whether the returned error was because
93353// http.StatusNotModified was returned.
93354func (c *InstancesSetDeletionProtectionCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
93355	gensupport.SetOptions(c.urlParams_, opts...)
93356	res, err := c.doRequest("json")
93357	if res != nil && res.StatusCode == http.StatusNotModified {
93358		if res.Body != nil {
93359			res.Body.Close()
93360		}
93361		return nil, &googleapi.Error{
93362			Code:   res.StatusCode,
93363			Header: res.Header,
93364		}
93365	}
93366	if err != nil {
93367		return nil, err
93368	}
93369	defer googleapi.CloseBody(res)
93370	if err := googleapi.CheckResponse(res); err != nil {
93371		return nil, err
93372	}
93373	ret := &Operation{
93374		ServerResponse: googleapi.ServerResponse{
93375			Header:         res.Header,
93376			HTTPStatusCode: res.StatusCode,
93377		},
93378	}
93379	target := &ret
93380	if err := gensupport.DecodeResponse(target, res); err != nil {
93381		return nil, err
93382	}
93383	return ret, nil
93384	// {
93385	//   "description": "Sets deletion protection on the instance.",
93386	//   "httpMethod": "POST",
93387	//   "id": "compute.instances.setDeletionProtection",
93388	//   "parameterOrder": [
93389	//     "project",
93390	//     "zone",
93391	//     "resource"
93392	//   ],
93393	//   "parameters": {
93394	//     "deletionProtection": {
93395	//       "default": "true",
93396	//       "description": "Whether the resource should be protected against deletion.",
93397	//       "location": "query",
93398	//       "type": "boolean"
93399	//     },
93400	//     "project": {
93401	//       "description": "Project ID for this request.",
93402	//       "location": "path",
93403	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93404	//       "required": true,
93405	//       "type": "string"
93406	//     },
93407	//     "requestId": {
93408	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
93409	//       "location": "query",
93410	//       "type": "string"
93411	//     },
93412	//     "resource": {
93413	//       "description": "Name or id of the resource for this request.",
93414	//       "location": "path",
93415	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
93416	//       "required": true,
93417	//       "type": "string"
93418	//     },
93419	//     "zone": {
93420	//       "description": "The name of the zone for this request.",
93421	//       "location": "path",
93422	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
93423	//       "required": true,
93424	//       "type": "string"
93425	//     }
93426	//   },
93427	//   "path": "projects/{project}/zones/{zone}/instances/{resource}/setDeletionProtection",
93428	//   "response": {
93429	//     "$ref": "Operation"
93430	//   },
93431	//   "scopes": [
93432	//     "https://www.googleapis.com/auth/cloud-platform",
93433	//     "https://www.googleapis.com/auth/compute"
93434	//   ]
93435	// }
93436
93437}
93438
93439// method id "compute.instances.setDiskAutoDelete":
93440
93441type InstancesSetDiskAutoDeleteCall struct {
93442	s          *Service
93443	project    string
93444	zone       string
93445	instance   string
93446	urlParams_ gensupport.URLParams
93447	ctx_       context.Context
93448	header_    http.Header
93449}
93450
93451// SetDiskAutoDelete: Sets the auto-delete flag for a disk attached to
93452// an instance.
93453// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/setDiskAutoDelete
93454func (r *InstancesService) SetDiskAutoDelete(project string, zone string, instance string, autoDelete bool, deviceName string) *InstancesSetDiskAutoDeleteCall {
93455	c := &InstancesSetDiskAutoDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93456	c.project = project
93457	c.zone = zone
93458	c.instance = instance
93459	c.urlParams_.Set("autoDelete", fmt.Sprint(autoDelete))
93460	c.urlParams_.Set("deviceName", deviceName)
93461	return c
93462}
93463
93464// RequestId sets the optional parameter "requestId": An optional
93465// request ID to identify requests. Specify a unique request ID so that
93466// if you must retry your request, the server will know to ignore the
93467// request if it has already been completed.
93468//
93469// For example, consider a situation where you make an initial request
93470// and the request times out. If you make the request again with the
93471// same request ID, the server can check if original operation with the
93472// same request ID was received, and if so, will ignore the second
93473// request. This prevents clients from accidentally creating duplicate
93474// commitments.
93475//
93476// The request ID must be a valid UUID with the exception that zero UUID
93477// is not supported (00000000-0000-0000-0000-000000000000).
93478func (c *InstancesSetDiskAutoDeleteCall) RequestId(requestId string) *InstancesSetDiskAutoDeleteCall {
93479	c.urlParams_.Set("requestId", requestId)
93480	return c
93481}
93482
93483// Fields allows partial responses to be retrieved. See
93484// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93485// for more information.
93486func (c *InstancesSetDiskAutoDeleteCall) Fields(s ...googleapi.Field) *InstancesSetDiskAutoDeleteCall {
93487	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93488	return c
93489}
93490
93491// Context sets the context to be used in this call's Do method. Any
93492// pending HTTP request will be aborted if the provided context is
93493// canceled.
93494func (c *InstancesSetDiskAutoDeleteCall) Context(ctx context.Context) *InstancesSetDiskAutoDeleteCall {
93495	c.ctx_ = ctx
93496	return c
93497}
93498
93499// Header returns an http.Header that can be modified by the caller to
93500// add HTTP headers to the request.
93501func (c *InstancesSetDiskAutoDeleteCall) Header() http.Header {
93502	if c.header_ == nil {
93503		c.header_ = make(http.Header)
93504	}
93505	return c.header_
93506}
93507
93508func (c *InstancesSetDiskAutoDeleteCall) doRequest(alt string) (*http.Response, error) {
93509	reqHeaders := make(http.Header)
93510	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
93511	for k, v := range c.header_ {
93512		reqHeaders[k] = v
93513	}
93514	reqHeaders.Set("User-Agent", c.s.userAgent())
93515	var body io.Reader = nil
93516	c.urlParams_.Set("alt", alt)
93517	c.urlParams_.Set("prettyPrint", "false")
93518	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete")
93519	urls += "?" + c.urlParams_.Encode()
93520	req, err := http.NewRequest("POST", urls, body)
93521	if err != nil {
93522		return nil, err
93523	}
93524	req.Header = reqHeaders
93525	googleapi.Expand(req.URL, map[string]string{
93526		"project":  c.project,
93527		"zone":     c.zone,
93528		"instance": c.instance,
93529	})
93530	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93531}
93532
93533// Do executes the "compute.instances.setDiskAutoDelete" call.
93534// Exactly one of *Operation or error will be non-nil. Any non-2xx
93535// status code is an error. Response headers are in either
93536// *Operation.ServerResponse.Header or (if a response was returned at
93537// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
93538// to check whether the returned error was because
93539// http.StatusNotModified was returned.
93540func (c *InstancesSetDiskAutoDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
93541	gensupport.SetOptions(c.urlParams_, opts...)
93542	res, err := c.doRequest("json")
93543	if res != nil && res.StatusCode == http.StatusNotModified {
93544		if res.Body != nil {
93545			res.Body.Close()
93546		}
93547		return nil, &googleapi.Error{
93548			Code:   res.StatusCode,
93549			Header: res.Header,
93550		}
93551	}
93552	if err != nil {
93553		return nil, err
93554	}
93555	defer googleapi.CloseBody(res)
93556	if err := googleapi.CheckResponse(res); err != nil {
93557		return nil, err
93558	}
93559	ret := &Operation{
93560		ServerResponse: googleapi.ServerResponse{
93561			Header:         res.Header,
93562			HTTPStatusCode: res.StatusCode,
93563		},
93564	}
93565	target := &ret
93566	if err := gensupport.DecodeResponse(target, res); err != nil {
93567		return nil, err
93568	}
93569	return ret, nil
93570	// {
93571	//   "description": "Sets the auto-delete flag for a disk attached to an instance.",
93572	//   "httpMethod": "POST",
93573	//   "id": "compute.instances.setDiskAutoDelete",
93574	//   "parameterOrder": [
93575	//     "project",
93576	//     "zone",
93577	//     "instance",
93578	//     "autoDelete",
93579	//     "deviceName"
93580	//   ],
93581	//   "parameters": {
93582	//     "autoDelete": {
93583	//       "description": "Whether to auto-delete the disk when the instance is deleted.",
93584	//       "location": "query",
93585	//       "required": true,
93586	//       "type": "boolean"
93587	//     },
93588	//     "deviceName": {
93589	//       "description": "The device name of the disk to modify. Make a get() request on the instance to view currently attached disks and device names.",
93590	//       "location": "query",
93591	//       "pattern": "\\w[\\w.-]{0,254}",
93592	//       "required": true,
93593	//       "type": "string"
93594	//     },
93595	//     "instance": {
93596	//       "description": "The instance name for this request.",
93597	//       "location": "path",
93598	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
93599	//       "required": true,
93600	//       "type": "string"
93601	//     },
93602	//     "project": {
93603	//       "description": "Project ID for this request.",
93604	//       "location": "path",
93605	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93606	//       "required": true,
93607	//       "type": "string"
93608	//     },
93609	//     "requestId": {
93610	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
93611	//       "location": "query",
93612	//       "type": "string"
93613	//     },
93614	//     "zone": {
93615	//       "description": "The name of the zone for this request.",
93616	//       "location": "path",
93617	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
93618	//       "required": true,
93619	//       "type": "string"
93620	//     }
93621	//   },
93622	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete",
93623	//   "response": {
93624	//     "$ref": "Operation"
93625	//   },
93626	//   "scopes": [
93627	//     "https://www.googleapis.com/auth/cloud-platform",
93628	//     "https://www.googleapis.com/auth/compute"
93629	//   ]
93630	// }
93631
93632}
93633
93634// method id "compute.instances.setIamPolicy":
93635
93636type InstancesSetIamPolicyCall struct {
93637	s                    *Service
93638	project              string
93639	zone                 string
93640	resource             string
93641	zonesetpolicyrequest *ZoneSetPolicyRequest
93642	urlParams_           gensupport.URLParams
93643	ctx_                 context.Context
93644	header_              http.Header
93645}
93646
93647// SetIamPolicy: Sets the access control policy on the specified
93648// resource. Replaces any existing policy.
93649func (r *InstancesService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *InstancesSetIamPolicyCall {
93650	c := &InstancesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93651	c.project = project
93652	c.zone = zone
93653	c.resource = resource
93654	c.zonesetpolicyrequest = zonesetpolicyrequest
93655	return c
93656}
93657
93658// Fields allows partial responses to be retrieved. See
93659// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93660// for more information.
93661func (c *InstancesSetIamPolicyCall) Fields(s ...googleapi.Field) *InstancesSetIamPolicyCall {
93662	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93663	return c
93664}
93665
93666// Context sets the context to be used in this call's Do method. Any
93667// pending HTTP request will be aborted if the provided context is
93668// canceled.
93669func (c *InstancesSetIamPolicyCall) Context(ctx context.Context) *InstancesSetIamPolicyCall {
93670	c.ctx_ = ctx
93671	return c
93672}
93673
93674// Header returns an http.Header that can be modified by the caller to
93675// add HTTP headers to the request.
93676func (c *InstancesSetIamPolicyCall) Header() http.Header {
93677	if c.header_ == nil {
93678		c.header_ = make(http.Header)
93679	}
93680	return c.header_
93681}
93682
93683func (c *InstancesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
93684	reqHeaders := make(http.Header)
93685	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
93686	for k, v := range c.header_ {
93687		reqHeaders[k] = v
93688	}
93689	reqHeaders.Set("User-Agent", c.s.userAgent())
93690	var body io.Reader = nil
93691	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetpolicyrequest)
93692	if err != nil {
93693		return nil, err
93694	}
93695	reqHeaders.Set("Content-Type", "application/json")
93696	c.urlParams_.Set("alt", alt)
93697	c.urlParams_.Set("prettyPrint", "false")
93698	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{resource}/setIamPolicy")
93699	urls += "?" + c.urlParams_.Encode()
93700	req, err := http.NewRequest("POST", urls, body)
93701	if err != nil {
93702		return nil, err
93703	}
93704	req.Header = reqHeaders
93705	googleapi.Expand(req.URL, map[string]string{
93706		"project":  c.project,
93707		"zone":     c.zone,
93708		"resource": c.resource,
93709	})
93710	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93711}
93712
93713// Do executes the "compute.instances.setIamPolicy" call.
93714// Exactly one of *Policy or error will be non-nil. Any non-2xx status
93715// code is an error. Response headers are in either
93716// *Policy.ServerResponse.Header or (if a response was returned at all)
93717// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
93718// check whether the returned error was because http.StatusNotModified
93719// was returned.
93720func (c *InstancesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
93721	gensupport.SetOptions(c.urlParams_, opts...)
93722	res, err := c.doRequest("json")
93723	if res != nil && res.StatusCode == http.StatusNotModified {
93724		if res.Body != nil {
93725			res.Body.Close()
93726		}
93727		return nil, &googleapi.Error{
93728			Code:   res.StatusCode,
93729			Header: res.Header,
93730		}
93731	}
93732	if err != nil {
93733		return nil, err
93734	}
93735	defer googleapi.CloseBody(res)
93736	if err := googleapi.CheckResponse(res); err != nil {
93737		return nil, err
93738	}
93739	ret := &Policy{
93740		ServerResponse: googleapi.ServerResponse{
93741			Header:         res.Header,
93742			HTTPStatusCode: res.StatusCode,
93743		},
93744	}
93745	target := &ret
93746	if err := gensupport.DecodeResponse(target, res); err != nil {
93747		return nil, err
93748	}
93749	return ret, nil
93750	// {
93751	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
93752	//   "httpMethod": "POST",
93753	//   "id": "compute.instances.setIamPolicy",
93754	//   "parameterOrder": [
93755	//     "project",
93756	//     "zone",
93757	//     "resource"
93758	//   ],
93759	//   "parameters": {
93760	//     "project": {
93761	//       "description": "Project ID for this request.",
93762	//       "location": "path",
93763	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93764	//       "required": true,
93765	//       "type": "string"
93766	//     },
93767	//     "resource": {
93768	//       "description": "Name or id of the resource for this request.",
93769	//       "location": "path",
93770	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
93771	//       "required": true,
93772	//       "type": "string"
93773	//     },
93774	//     "zone": {
93775	//       "description": "The name of the zone for this request.",
93776	//       "location": "path",
93777	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
93778	//       "required": true,
93779	//       "type": "string"
93780	//     }
93781	//   },
93782	//   "path": "projects/{project}/zones/{zone}/instances/{resource}/setIamPolicy",
93783	//   "request": {
93784	//     "$ref": "ZoneSetPolicyRequest"
93785	//   },
93786	//   "response": {
93787	//     "$ref": "Policy"
93788	//   },
93789	//   "scopes": [
93790	//     "https://www.googleapis.com/auth/cloud-platform",
93791	//     "https://www.googleapis.com/auth/compute"
93792	//   ]
93793	// }
93794
93795}
93796
93797// method id "compute.instances.setLabels":
93798
93799type InstancesSetLabelsCall struct {
93800	s                         *Service
93801	project                   string
93802	zone                      string
93803	instance                  string
93804	instancessetlabelsrequest *InstancesSetLabelsRequest
93805	urlParams_                gensupport.URLParams
93806	ctx_                      context.Context
93807	header_                   http.Header
93808}
93809
93810// SetLabels: Sets labels on an instance. To learn more about labels,
93811// read the Labeling Resources documentation.
93812func (r *InstancesService) SetLabels(project string, zone string, instance string, instancessetlabelsrequest *InstancesSetLabelsRequest) *InstancesSetLabelsCall {
93813	c := &InstancesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93814	c.project = project
93815	c.zone = zone
93816	c.instance = instance
93817	c.instancessetlabelsrequest = instancessetlabelsrequest
93818	return c
93819}
93820
93821// RequestId sets the optional parameter "requestId": An optional
93822// request ID to identify requests. Specify a unique request ID so that
93823// if you must retry your request, the server will know to ignore the
93824// request if it has already been completed.
93825//
93826// For example, consider a situation where you make an initial request
93827// and the request times out. If you make the request again with the
93828// same request ID, the server can check if original operation with the
93829// same request ID was received, and if so, will ignore the second
93830// request. This prevents clients from accidentally creating duplicate
93831// commitments.
93832//
93833// The request ID must be a valid UUID with the exception that zero UUID
93834// is not supported (00000000-0000-0000-0000-000000000000).
93835func (c *InstancesSetLabelsCall) RequestId(requestId string) *InstancesSetLabelsCall {
93836	c.urlParams_.Set("requestId", requestId)
93837	return c
93838}
93839
93840// Fields allows partial responses to be retrieved. See
93841// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93842// for more information.
93843func (c *InstancesSetLabelsCall) Fields(s ...googleapi.Field) *InstancesSetLabelsCall {
93844	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93845	return c
93846}
93847
93848// Context sets the context to be used in this call's Do method. Any
93849// pending HTTP request will be aborted if the provided context is
93850// canceled.
93851func (c *InstancesSetLabelsCall) Context(ctx context.Context) *InstancesSetLabelsCall {
93852	c.ctx_ = ctx
93853	return c
93854}
93855
93856// Header returns an http.Header that can be modified by the caller to
93857// add HTTP headers to the request.
93858func (c *InstancesSetLabelsCall) Header() http.Header {
93859	if c.header_ == nil {
93860		c.header_ = make(http.Header)
93861	}
93862	return c.header_
93863}
93864
93865func (c *InstancesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
93866	reqHeaders := make(http.Header)
93867	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
93868	for k, v := range c.header_ {
93869		reqHeaders[k] = v
93870	}
93871	reqHeaders.Set("User-Agent", c.s.userAgent())
93872	var body io.Reader = nil
93873	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetlabelsrequest)
93874	if err != nil {
93875		return nil, err
93876	}
93877	reqHeaders.Set("Content-Type", "application/json")
93878	c.urlParams_.Set("alt", alt)
93879	c.urlParams_.Set("prettyPrint", "false")
93880	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setLabels")
93881	urls += "?" + c.urlParams_.Encode()
93882	req, err := http.NewRequest("POST", urls, body)
93883	if err != nil {
93884		return nil, err
93885	}
93886	req.Header = reqHeaders
93887	googleapi.Expand(req.URL, map[string]string{
93888		"project":  c.project,
93889		"zone":     c.zone,
93890		"instance": c.instance,
93891	})
93892	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93893}
93894
93895// Do executes the "compute.instances.setLabels" call.
93896// Exactly one of *Operation or error will be non-nil. Any non-2xx
93897// status code is an error. Response headers are in either
93898// *Operation.ServerResponse.Header or (if a response was returned at
93899// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
93900// to check whether the returned error was because
93901// http.StatusNotModified was returned.
93902func (c *InstancesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
93903	gensupport.SetOptions(c.urlParams_, opts...)
93904	res, err := c.doRequest("json")
93905	if res != nil && res.StatusCode == http.StatusNotModified {
93906		if res.Body != nil {
93907			res.Body.Close()
93908		}
93909		return nil, &googleapi.Error{
93910			Code:   res.StatusCode,
93911			Header: res.Header,
93912		}
93913	}
93914	if err != nil {
93915		return nil, err
93916	}
93917	defer googleapi.CloseBody(res)
93918	if err := googleapi.CheckResponse(res); err != nil {
93919		return nil, err
93920	}
93921	ret := &Operation{
93922		ServerResponse: googleapi.ServerResponse{
93923			Header:         res.Header,
93924			HTTPStatusCode: res.StatusCode,
93925		},
93926	}
93927	target := &ret
93928	if err := gensupport.DecodeResponse(target, res); err != nil {
93929		return nil, err
93930	}
93931	return ret, nil
93932	// {
93933	//   "description": "Sets labels on an instance. To learn more about labels, read the Labeling Resources documentation.",
93934	//   "httpMethod": "POST",
93935	//   "id": "compute.instances.setLabels",
93936	//   "parameterOrder": [
93937	//     "project",
93938	//     "zone",
93939	//     "instance"
93940	//   ],
93941	//   "parameters": {
93942	//     "instance": {
93943	//       "description": "Name of the instance scoping this request.",
93944	//       "location": "path",
93945	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
93946	//       "required": true,
93947	//       "type": "string"
93948	//     },
93949	//     "project": {
93950	//       "description": "Project ID for this request.",
93951	//       "location": "path",
93952	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93953	//       "required": true,
93954	//       "type": "string"
93955	//     },
93956	//     "requestId": {
93957	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
93958	//       "location": "query",
93959	//       "type": "string"
93960	//     },
93961	//     "zone": {
93962	//       "description": "The name of the zone for this request.",
93963	//       "location": "path",
93964	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
93965	//       "required": true,
93966	//       "type": "string"
93967	//     }
93968	//   },
93969	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/setLabels",
93970	//   "request": {
93971	//     "$ref": "InstancesSetLabelsRequest"
93972	//   },
93973	//   "response": {
93974	//     "$ref": "Operation"
93975	//   },
93976	//   "scopes": [
93977	//     "https://www.googleapis.com/auth/cloud-platform",
93978	//     "https://www.googleapis.com/auth/compute"
93979	//   ]
93980	// }
93981
93982}
93983
93984// method id "compute.instances.setMachineResources":
93985
93986type InstancesSetMachineResourcesCall struct {
93987	s                                   *Service
93988	project                             string
93989	zone                                string
93990	instance                            string
93991	instancessetmachineresourcesrequest *InstancesSetMachineResourcesRequest
93992	urlParams_                          gensupport.URLParams
93993	ctx_                                context.Context
93994	header_                             http.Header
93995}
93996
93997// SetMachineResources: Changes the number and/or type of accelerator
93998// for a stopped instance to the values specified in the request.
93999func (r *InstancesService) SetMachineResources(project string, zone string, instance string, instancessetmachineresourcesrequest *InstancesSetMachineResourcesRequest) *InstancesSetMachineResourcesCall {
94000	c := &InstancesSetMachineResourcesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94001	c.project = project
94002	c.zone = zone
94003	c.instance = instance
94004	c.instancessetmachineresourcesrequest = instancessetmachineresourcesrequest
94005	return c
94006}
94007
94008// RequestId sets the optional parameter "requestId": An optional
94009// request ID to identify requests. Specify a unique request ID so that
94010// if you must retry your request, the server will know to ignore the
94011// request if it has already been completed.
94012//
94013// For example, consider a situation where you make an initial request
94014// and the request times out. If you make the request again with the
94015// same request ID, the server can check if original operation with the
94016// same request ID was received, and if so, will ignore the second
94017// request. This prevents clients from accidentally creating duplicate
94018// commitments.
94019//
94020// The request ID must be a valid UUID with the exception that zero UUID
94021// is not supported (00000000-0000-0000-0000-000000000000).
94022func (c *InstancesSetMachineResourcesCall) RequestId(requestId string) *InstancesSetMachineResourcesCall {
94023	c.urlParams_.Set("requestId", requestId)
94024	return c
94025}
94026
94027// Fields allows partial responses to be retrieved. See
94028// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94029// for more information.
94030func (c *InstancesSetMachineResourcesCall) Fields(s ...googleapi.Field) *InstancesSetMachineResourcesCall {
94031	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94032	return c
94033}
94034
94035// Context sets the context to be used in this call's Do method. Any
94036// pending HTTP request will be aborted if the provided context is
94037// canceled.
94038func (c *InstancesSetMachineResourcesCall) Context(ctx context.Context) *InstancesSetMachineResourcesCall {
94039	c.ctx_ = ctx
94040	return c
94041}
94042
94043// Header returns an http.Header that can be modified by the caller to
94044// add HTTP headers to the request.
94045func (c *InstancesSetMachineResourcesCall) Header() http.Header {
94046	if c.header_ == nil {
94047		c.header_ = make(http.Header)
94048	}
94049	return c.header_
94050}
94051
94052func (c *InstancesSetMachineResourcesCall) doRequest(alt string) (*http.Response, error) {
94053	reqHeaders := make(http.Header)
94054	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
94055	for k, v := range c.header_ {
94056		reqHeaders[k] = v
94057	}
94058	reqHeaders.Set("User-Agent", c.s.userAgent())
94059	var body io.Reader = nil
94060	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetmachineresourcesrequest)
94061	if err != nil {
94062		return nil, err
94063	}
94064	reqHeaders.Set("Content-Type", "application/json")
94065	c.urlParams_.Set("alt", alt)
94066	c.urlParams_.Set("prettyPrint", "false")
94067	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setMachineResources")
94068	urls += "?" + c.urlParams_.Encode()
94069	req, err := http.NewRequest("POST", urls, body)
94070	if err != nil {
94071		return nil, err
94072	}
94073	req.Header = reqHeaders
94074	googleapi.Expand(req.URL, map[string]string{
94075		"project":  c.project,
94076		"zone":     c.zone,
94077		"instance": c.instance,
94078	})
94079	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94080}
94081
94082// Do executes the "compute.instances.setMachineResources" call.
94083// Exactly one of *Operation or error will be non-nil. Any non-2xx
94084// status code is an error. Response headers are in either
94085// *Operation.ServerResponse.Header or (if a response was returned at
94086// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
94087// to check whether the returned error was because
94088// http.StatusNotModified was returned.
94089func (c *InstancesSetMachineResourcesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
94090	gensupport.SetOptions(c.urlParams_, opts...)
94091	res, err := c.doRequest("json")
94092	if res != nil && res.StatusCode == http.StatusNotModified {
94093		if res.Body != nil {
94094			res.Body.Close()
94095		}
94096		return nil, &googleapi.Error{
94097			Code:   res.StatusCode,
94098			Header: res.Header,
94099		}
94100	}
94101	if err != nil {
94102		return nil, err
94103	}
94104	defer googleapi.CloseBody(res)
94105	if err := googleapi.CheckResponse(res); err != nil {
94106		return nil, err
94107	}
94108	ret := &Operation{
94109		ServerResponse: googleapi.ServerResponse{
94110			Header:         res.Header,
94111			HTTPStatusCode: res.StatusCode,
94112		},
94113	}
94114	target := &ret
94115	if err := gensupport.DecodeResponse(target, res); err != nil {
94116		return nil, err
94117	}
94118	return ret, nil
94119	// {
94120	//   "description": "Changes the number and/or type of accelerator for a stopped instance to the values specified in the request.",
94121	//   "httpMethod": "POST",
94122	//   "id": "compute.instances.setMachineResources",
94123	//   "parameterOrder": [
94124	//     "project",
94125	//     "zone",
94126	//     "instance"
94127	//   ],
94128	//   "parameters": {
94129	//     "instance": {
94130	//       "description": "Name of the instance scoping this request.",
94131	//       "location": "path",
94132	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
94133	//       "required": true,
94134	//       "type": "string"
94135	//     },
94136	//     "project": {
94137	//       "description": "Project ID for this request.",
94138	//       "location": "path",
94139	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94140	//       "required": true,
94141	//       "type": "string"
94142	//     },
94143	//     "requestId": {
94144	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
94145	//       "location": "query",
94146	//       "type": "string"
94147	//     },
94148	//     "zone": {
94149	//       "description": "The name of the zone for this request.",
94150	//       "location": "path",
94151	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
94152	//       "required": true,
94153	//       "type": "string"
94154	//     }
94155	//   },
94156	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/setMachineResources",
94157	//   "request": {
94158	//     "$ref": "InstancesSetMachineResourcesRequest"
94159	//   },
94160	//   "response": {
94161	//     "$ref": "Operation"
94162	//   },
94163	//   "scopes": [
94164	//     "https://www.googleapis.com/auth/cloud-platform",
94165	//     "https://www.googleapis.com/auth/compute"
94166	//   ]
94167	// }
94168
94169}
94170
94171// method id "compute.instances.setMachineType":
94172
94173type InstancesSetMachineTypeCall struct {
94174	s                              *Service
94175	project                        string
94176	zone                           string
94177	instance                       string
94178	instancessetmachinetyperequest *InstancesSetMachineTypeRequest
94179	urlParams_                     gensupport.URLParams
94180	ctx_                           context.Context
94181	header_                        http.Header
94182}
94183
94184// SetMachineType: Changes the machine type for a stopped instance to
94185// the machine type specified in the request.
94186func (r *InstancesService) SetMachineType(project string, zone string, instance string, instancessetmachinetyperequest *InstancesSetMachineTypeRequest) *InstancesSetMachineTypeCall {
94187	c := &InstancesSetMachineTypeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94188	c.project = project
94189	c.zone = zone
94190	c.instance = instance
94191	c.instancessetmachinetyperequest = instancessetmachinetyperequest
94192	return c
94193}
94194
94195// RequestId sets the optional parameter "requestId": An optional
94196// request ID to identify requests. Specify a unique request ID so that
94197// if you must retry your request, the server will know to ignore the
94198// request if it has already been completed.
94199//
94200// For example, consider a situation where you make an initial request
94201// and the request times out. If you make the request again with the
94202// same request ID, the server can check if original operation with the
94203// same request ID was received, and if so, will ignore the second
94204// request. This prevents clients from accidentally creating duplicate
94205// commitments.
94206//
94207// The request ID must be a valid UUID with the exception that zero UUID
94208// is not supported (00000000-0000-0000-0000-000000000000).
94209func (c *InstancesSetMachineTypeCall) RequestId(requestId string) *InstancesSetMachineTypeCall {
94210	c.urlParams_.Set("requestId", requestId)
94211	return c
94212}
94213
94214// Fields allows partial responses to be retrieved. See
94215// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94216// for more information.
94217func (c *InstancesSetMachineTypeCall) Fields(s ...googleapi.Field) *InstancesSetMachineTypeCall {
94218	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94219	return c
94220}
94221
94222// Context sets the context to be used in this call's Do method. Any
94223// pending HTTP request will be aborted if the provided context is
94224// canceled.
94225func (c *InstancesSetMachineTypeCall) Context(ctx context.Context) *InstancesSetMachineTypeCall {
94226	c.ctx_ = ctx
94227	return c
94228}
94229
94230// Header returns an http.Header that can be modified by the caller to
94231// add HTTP headers to the request.
94232func (c *InstancesSetMachineTypeCall) Header() http.Header {
94233	if c.header_ == nil {
94234		c.header_ = make(http.Header)
94235	}
94236	return c.header_
94237}
94238
94239func (c *InstancesSetMachineTypeCall) doRequest(alt string) (*http.Response, error) {
94240	reqHeaders := make(http.Header)
94241	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
94242	for k, v := range c.header_ {
94243		reqHeaders[k] = v
94244	}
94245	reqHeaders.Set("User-Agent", c.s.userAgent())
94246	var body io.Reader = nil
94247	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetmachinetyperequest)
94248	if err != nil {
94249		return nil, err
94250	}
94251	reqHeaders.Set("Content-Type", "application/json")
94252	c.urlParams_.Set("alt", alt)
94253	c.urlParams_.Set("prettyPrint", "false")
94254	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setMachineType")
94255	urls += "?" + c.urlParams_.Encode()
94256	req, err := http.NewRequest("POST", urls, body)
94257	if err != nil {
94258		return nil, err
94259	}
94260	req.Header = reqHeaders
94261	googleapi.Expand(req.URL, map[string]string{
94262		"project":  c.project,
94263		"zone":     c.zone,
94264		"instance": c.instance,
94265	})
94266	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94267}
94268
94269// Do executes the "compute.instances.setMachineType" call.
94270// Exactly one of *Operation or error will be non-nil. Any non-2xx
94271// status code is an error. Response headers are in either
94272// *Operation.ServerResponse.Header or (if a response was returned at
94273// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
94274// to check whether the returned error was because
94275// http.StatusNotModified was returned.
94276func (c *InstancesSetMachineTypeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
94277	gensupport.SetOptions(c.urlParams_, opts...)
94278	res, err := c.doRequest("json")
94279	if res != nil && res.StatusCode == http.StatusNotModified {
94280		if res.Body != nil {
94281			res.Body.Close()
94282		}
94283		return nil, &googleapi.Error{
94284			Code:   res.StatusCode,
94285			Header: res.Header,
94286		}
94287	}
94288	if err != nil {
94289		return nil, err
94290	}
94291	defer googleapi.CloseBody(res)
94292	if err := googleapi.CheckResponse(res); err != nil {
94293		return nil, err
94294	}
94295	ret := &Operation{
94296		ServerResponse: googleapi.ServerResponse{
94297			Header:         res.Header,
94298			HTTPStatusCode: res.StatusCode,
94299		},
94300	}
94301	target := &ret
94302	if err := gensupport.DecodeResponse(target, res); err != nil {
94303		return nil, err
94304	}
94305	return ret, nil
94306	// {
94307	//   "description": "Changes the machine type for a stopped instance to the machine type specified in the request.",
94308	//   "httpMethod": "POST",
94309	//   "id": "compute.instances.setMachineType",
94310	//   "parameterOrder": [
94311	//     "project",
94312	//     "zone",
94313	//     "instance"
94314	//   ],
94315	//   "parameters": {
94316	//     "instance": {
94317	//       "description": "Name of the instance scoping this request.",
94318	//       "location": "path",
94319	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
94320	//       "required": true,
94321	//       "type": "string"
94322	//     },
94323	//     "project": {
94324	//       "description": "Project ID for this request.",
94325	//       "location": "path",
94326	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94327	//       "required": true,
94328	//       "type": "string"
94329	//     },
94330	//     "requestId": {
94331	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
94332	//       "location": "query",
94333	//       "type": "string"
94334	//     },
94335	//     "zone": {
94336	//       "description": "The name of the zone for this request.",
94337	//       "location": "path",
94338	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
94339	//       "required": true,
94340	//       "type": "string"
94341	//     }
94342	//   },
94343	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/setMachineType",
94344	//   "request": {
94345	//     "$ref": "InstancesSetMachineTypeRequest"
94346	//   },
94347	//   "response": {
94348	//     "$ref": "Operation"
94349	//   },
94350	//   "scopes": [
94351	//     "https://www.googleapis.com/auth/cloud-platform",
94352	//     "https://www.googleapis.com/auth/compute"
94353	//   ]
94354	// }
94355
94356}
94357
94358// method id "compute.instances.setMetadata":
94359
94360type InstancesSetMetadataCall struct {
94361	s          *Service
94362	project    string
94363	zone       string
94364	instance   string
94365	metadata   *Metadata
94366	urlParams_ gensupport.URLParams
94367	ctx_       context.Context
94368	header_    http.Header
94369}
94370
94371// SetMetadata: Sets metadata for the specified instance to the data
94372// included in the request.
94373// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/setMetadata
94374func (r *InstancesService) SetMetadata(project string, zone string, instance string, metadata *Metadata) *InstancesSetMetadataCall {
94375	c := &InstancesSetMetadataCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94376	c.project = project
94377	c.zone = zone
94378	c.instance = instance
94379	c.metadata = metadata
94380	return c
94381}
94382
94383// RequestId sets the optional parameter "requestId": An optional
94384// request ID to identify requests. Specify a unique request ID so that
94385// if you must retry your request, the server will know to ignore the
94386// request if it has already been completed.
94387//
94388// For example, consider a situation where you make an initial request
94389// and the request times out. If you make the request again with the
94390// same request ID, the server can check if original operation with the
94391// same request ID was received, and if so, will ignore the second
94392// request. This prevents clients from accidentally creating duplicate
94393// commitments.
94394//
94395// The request ID must be a valid UUID with the exception that zero UUID
94396// is not supported (00000000-0000-0000-0000-000000000000).
94397func (c *InstancesSetMetadataCall) RequestId(requestId string) *InstancesSetMetadataCall {
94398	c.urlParams_.Set("requestId", requestId)
94399	return c
94400}
94401
94402// Fields allows partial responses to be retrieved. See
94403// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94404// for more information.
94405func (c *InstancesSetMetadataCall) Fields(s ...googleapi.Field) *InstancesSetMetadataCall {
94406	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94407	return c
94408}
94409
94410// Context sets the context to be used in this call's Do method. Any
94411// pending HTTP request will be aborted if the provided context is
94412// canceled.
94413func (c *InstancesSetMetadataCall) Context(ctx context.Context) *InstancesSetMetadataCall {
94414	c.ctx_ = ctx
94415	return c
94416}
94417
94418// Header returns an http.Header that can be modified by the caller to
94419// add HTTP headers to the request.
94420func (c *InstancesSetMetadataCall) Header() http.Header {
94421	if c.header_ == nil {
94422		c.header_ = make(http.Header)
94423	}
94424	return c.header_
94425}
94426
94427func (c *InstancesSetMetadataCall) doRequest(alt string) (*http.Response, error) {
94428	reqHeaders := make(http.Header)
94429	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
94430	for k, v := range c.header_ {
94431		reqHeaders[k] = v
94432	}
94433	reqHeaders.Set("User-Agent", c.s.userAgent())
94434	var body io.Reader = nil
94435	body, err := googleapi.WithoutDataWrapper.JSONReader(c.metadata)
94436	if err != nil {
94437		return nil, err
94438	}
94439	reqHeaders.Set("Content-Type", "application/json")
94440	c.urlParams_.Set("alt", alt)
94441	c.urlParams_.Set("prettyPrint", "false")
94442	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setMetadata")
94443	urls += "?" + c.urlParams_.Encode()
94444	req, err := http.NewRequest("POST", urls, body)
94445	if err != nil {
94446		return nil, err
94447	}
94448	req.Header = reqHeaders
94449	googleapi.Expand(req.URL, map[string]string{
94450		"project":  c.project,
94451		"zone":     c.zone,
94452		"instance": c.instance,
94453	})
94454	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94455}
94456
94457// Do executes the "compute.instances.setMetadata" call.
94458// Exactly one of *Operation or error will be non-nil. Any non-2xx
94459// status code is an error. Response headers are in either
94460// *Operation.ServerResponse.Header or (if a response was returned at
94461// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
94462// to check whether the returned error was because
94463// http.StatusNotModified was returned.
94464func (c *InstancesSetMetadataCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
94465	gensupport.SetOptions(c.urlParams_, opts...)
94466	res, err := c.doRequest("json")
94467	if res != nil && res.StatusCode == http.StatusNotModified {
94468		if res.Body != nil {
94469			res.Body.Close()
94470		}
94471		return nil, &googleapi.Error{
94472			Code:   res.StatusCode,
94473			Header: res.Header,
94474		}
94475	}
94476	if err != nil {
94477		return nil, err
94478	}
94479	defer googleapi.CloseBody(res)
94480	if err := googleapi.CheckResponse(res); err != nil {
94481		return nil, err
94482	}
94483	ret := &Operation{
94484		ServerResponse: googleapi.ServerResponse{
94485			Header:         res.Header,
94486			HTTPStatusCode: res.StatusCode,
94487		},
94488	}
94489	target := &ret
94490	if err := gensupport.DecodeResponse(target, res); err != nil {
94491		return nil, err
94492	}
94493	return ret, nil
94494	// {
94495	//   "description": "Sets metadata for the specified instance to the data included in the request.",
94496	//   "httpMethod": "POST",
94497	//   "id": "compute.instances.setMetadata",
94498	//   "parameterOrder": [
94499	//     "project",
94500	//     "zone",
94501	//     "instance"
94502	//   ],
94503	//   "parameters": {
94504	//     "instance": {
94505	//       "description": "Name of the instance scoping this request.",
94506	//       "location": "path",
94507	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
94508	//       "required": true,
94509	//       "type": "string"
94510	//     },
94511	//     "project": {
94512	//       "description": "Project ID for this request.",
94513	//       "location": "path",
94514	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94515	//       "required": true,
94516	//       "type": "string"
94517	//     },
94518	//     "requestId": {
94519	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
94520	//       "location": "query",
94521	//       "type": "string"
94522	//     },
94523	//     "zone": {
94524	//       "description": "The name of the zone for this request.",
94525	//       "location": "path",
94526	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
94527	//       "required": true,
94528	//       "type": "string"
94529	//     }
94530	//   },
94531	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/setMetadata",
94532	//   "request": {
94533	//     "$ref": "Metadata"
94534	//   },
94535	//   "response": {
94536	//     "$ref": "Operation"
94537	//   },
94538	//   "scopes": [
94539	//     "https://www.googleapis.com/auth/cloud-platform",
94540	//     "https://www.googleapis.com/auth/compute"
94541	//   ]
94542	// }
94543
94544}
94545
94546// method id "compute.instances.setMinCpuPlatform":
94547
94548type InstancesSetMinCpuPlatformCall struct {
94549	s                                 *Service
94550	project                           string
94551	zone                              string
94552	instance                          string
94553	instancessetmincpuplatformrequest *InstancesSetMinCpuPlatformRequest
94554	urlParams_                        gensupport.URLParams
94555	ctx_                              context.Context
94556	header_                           http.Header
94557}
94558
94559// SetMinCpuPlatform: Changes the minimum CPU platform that this
94560// instance should use. This method can only be called on a stopped
94561// instance. For more information, read Specifying a Minimum CPU
94562// Platform.
94563func (r *InstancesService) SetMinCpuPlatform(project string, zone string, instance string, instancessetmincpuplatformrequest *InstancesSetMinCpuPlatformRequest) *InstancesSetMinCpuPlatformCall {
94564	c := &InstancesSetMinCpuPlatformCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94565	c.project = project
94566	c.zone = zone
94567	c.instance = instance
94568	c.instancessetmincpuplatformrequest = instancessetmincpuplatformrequest
94569	return c
94570}
94571
94572// RequestId sets the optional parameter "requestId": An optional
94573// request ID to identify requests. Specify a unique request ID so that
94574// if you must retry your request, the server will know to ignore the
94575// request if it has already been completed.
94576//
94577// For example, consider a situation where you make an initial request
94578// and the request times out. If you make the request again with the
94579// same request ID, the server can check if original operation with the
94580// same request ID was received, and if so, will ignore the second
94581// request. This prevents clients from accidentally creating duplicate
94582// commitments.
94583//
94584// The request ID must be a valid UUID with the exception that zero UUID
94585// is not supported (00000000-0000-0000-0000-000000000000).
94586func (c *InstancesSetMinCpuPlatformCall) RequestId(requestId string) *InstancesSetMinCpuPlatformCall {
94587	c.urlParams_.Set("requestId", requestId)
94588	return c
94589}
94590
94591// Fields allows partial responses to be retrieved. See
94592// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94593// for more information.
94594func (c *InstancesSetMinCpuPlatformCall) Fields(s ...googleapi.Field) *InstancesSetMinCpuPlatformCall {
94595	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94596	return c
94597}
94598
94599// Context sets the context to be used in this call's Do method. Any
94600// pending HTTP request will be aborted if the provided context is
94601// canceled.
94602func (c *InstancesSetMinCpuPlatformCall) Context(ctx context.Context) *InstancesSetMinCpuPlatformCall {
94603	c.ctx_ = ctx
94604	return c
94605}
94606
94607// Header returns an http.Header that can be modified by the caller to
94608// add HTTP headers to the request.
94609func (c *InstancesSetMinCpuPlatformCall) Header() http.Header {
94610	if c.header_ == nil {
94611		c.header_ = make(http.Header)
94612	}
94613	return c.header_
94614}
94615
94616func (c *InstancesSetMinCpuPlatformCall) doRequest(alt string) (*http.Response, error) {
94617	reqHeaders := make(http.Header)
94618	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
94619	for k, v := range c.header_ {
94620		reqHeaders[k] = v
94621	}
94622	reqHeaders.Set("User-Agent", c.s.userAgent())
94623	var body io.Reader = nil
94624	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetmincpuplatformrequest)
94625	if err != nil {
94626		return nil, err
94627	}
94628	reqHeaders.Set("Content-Type", "application/json")
94629	c.urlParams_.Set("alt", alt)
94630	c.urlParams_.Set("prettyPrint", "false")
94631	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform")
94632	urls += "?" + c.urlParams_.Encode()
94633	req, err := http.NewRequest("POST", urls, body)
94634	if err != nil {
94635		return nil, err
94636	}
94637	req.Header = reqHeaders
94638	googleapi.Expand(req.URL, map[string]string{
94639		"project":  c.project,
94640		"zone":     c.zone,
94641		"instance": c.instance,
94642	})
94643	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94644}
94645
94646// Do executes the "compute.instances.setMinCpuPlatform" call.
94647// Exactly one of *Operation or error will be non-nil. Any non-2xx
94648// status code is an error. Response headers are in either
94649// *Operation.ServerResponse.Header or (if a response was returned at
94650// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
94651// to check whether the returned error was because
94652// http.StatusNotModified was returned.
94653func (c *InstancesSetMinCpuPlatformCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
94654	gensupport.SetOptions(c.urlParams_, opts...)
94655	res, err := c.doRequest("json")
94656	if res != nil && res.StatusCode == http.StatusNotModified {
94657		if res.Body != nil {
94658			res.Body.Close()
94659		}
94660		return nil, &googleapi.Error{
94661			Code:   res.StatusCode,
94662			Header: res.Header,
94663		}
94664	}
94665	if err != nil {
94666		return nil, err
94667	}
94668	defer googleapi.CloseBody(res)
94669	if err := googleapi.CheckResponse(res); err != nil {
94670		return nil, err
94671	}
94672	ret := &Operation{
94673		ServerResponse: googleapi.ServerResponse{
94674			Header:         res.Header,
94675			HTTPStatusCode: res.StatusCode,
94676		},
94677	}
94678	target := &ret
94679	if err := gensupport.DecodeResponse(target, res); err != nil {
94680		return nil, err
94681	}
94682	return ret, nil
94683	// {
94684	//   "description": "Changes the minimum CPU platform that this instance should use. This method can only be called on a stopped instance. For more information, read Specifying a Minimum CPU Platform.",
94685	//   "httpMethod": "POST",
94686	//   "id": "compute.instances.setMinCpuPlatform",
94687	//   "parameterOrder": [
94688	//     "project",
94689	//     "zone",
94690	//     "instance"
94691	//   ],
94692	//   "parameters": {
94693	//     "instance": {
94694	//       "description": "Name of the instance scoping this request.",
94695	//       "location": "path",
94696	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
94697	//       "required": true,
94698	//       "type": "string"
94699	//     },
94700	//     "project": {
94701	//       "description": "Project ID for this request.",
94702	//       "location": "path",
94703	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94704	//       "required": true,
94705	//       "type": "string"
94706	//     },
94707	//     "requestId": {
94708	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
94709	//       "location": "query",
94710	//       "type": "string"
94711	//     },
94712	//     "zone": {
94713	//       "description": "The name of the zone for this request.",
94714	//       "location": "path",
94715	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
94716	//       "required": true,
94717	//       "type": "string"
94718	//     }
94719	//   },
94720	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform",
94721	//   "request": {
94722	//     "$ref": "InstancesSetMinCpuPlatformRequest"
94723	//   },
94724	//   "response": {
94725	//     "$ref": "Operation"
94726	//   },
94727	//   "scopes": [
94728	//     "https://www.googleapis.com/auth/cloud-platform",
94729	//     "https://www.googleapis.com/auth/compute"
94730	//   ]
94731	// }
94732
94733}
94734
94735// method id "compute.instances.setName":
94736
94737type InstancesSetNameCall struct {
94738	s                       *Service
94739	project                 string
94740	zone                    string
94741	instance                string
94742	instancessetnamerequest *InstancesSetNameRequest
94743	urlParams_              gensupport.URLParams
94744	ctx_                    context.Context
94745	header_                 http.Header
94746}
94747
94748// SetName: Sets name of an instance.
94749func (r *InstancesService) SetName(project string, zone string, instance string, instancessetnamerequest *InstancesSetNameRequest) *InstancesSetNameCall {
94750	c := &InstancesSetNameCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94751	c.project = project
94752	c.zone = zone
94753	c.instance = instance
94754	c.instancessetnamerequest = instancessetnamerequest
94755	return c
94756}
94757
94758// RequestId sets the optional parameter "requestId": An optional
94759// request ID to identify requests. Specify a unique request ID so that
94760// if you must retry your request, the server will know to ignore the
94761// request if it has already been completed.
94762//
94763// For example, consider a situation where you make an initial request
94764// and the request times out. If you make the request again with the
94765// same request ID, the server can check if original operation with the
94766// same request ID was received, and if so, will ignore the second
94767// request. This prevents clients from accidentally creating duplicate
94768// commitments.
94769//
94770// The request ID must be a valid UUID with the exception that zero UUID
94771// is not supported (00000000-0000-0000-0000-000000000000).
94772func (c *InstancesSetNameCall) RequestId(requestId string) *InstancesSetNameCall {
94773	c.urlParams_.Set("requestId", requestId)
94774	return c
94775}
94776
94777// Fields allows partial responses to be retrieved. See
94778// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94779// for more information.
94780func (c *InstancesSetNameCall) Fields(s ...googleapi.Field) *InstancesSetNameCall {
94781	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94782	return c
94783}
94784
94785// Context sets the context to be used in this call's Do method. Any
94786// pending HTTP request will be aborted if the provided context is
94787// canceled.
94788func (c *InstancesSetNameCall) Context(ctx context.Context) *InstancesSetNameCall {
94789	c.ctx_ = ctx
94790	return c
94791}
94792
94793// Header returns an http.Header that can be modified by the caller to
94794// add HTTP headers to the request.
94795func (c *InstancesSetNameCall) Header() http.Header {
94796	if c.header_ == nil {
94797		c.header_ = make(http.Header)
94798	}
94799	return c.header_
94800}
94801
94802func (c *InstancesSetNameCall) doRequest(alt string) (*http.Response, error) {
94803	reqHeaders := make(http.Header)
94804	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
94805	for k, v := range c.header_ {
94806		reqHeaders[k] = v
94807	}
94808	reqHeaders.Set("User-Agent", c.s.userAgent())
94809	var body io.Reader = nil
94810	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetnamerequest)
94811	if err != nil {
94812		return nil, err
94813	}
94814	reqHeaders.Set("Content-Type", "application/json")
94815	c.urlParams_.Set("alt", alt)
94816	c.urlParams_.Set("prettyPrint", "false")
94817	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setName")
94818	urls += "?" + c.urlParams_.Encode()
94819	req, err := http.NewRequest("POST", urls, body)
94820	if err != nil {
94821		return nil, err
94822	}
94823	req.Header = reqHeaders
94824	googleapi.Expand(req.URL, map[string]string{
94825		"project":  c.project,
94826		"zone":     c.zone,
94827		"instance": c.instance,
94828	})
94829	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94830}
94831
94832// Do executes the "compute.instances.setName" call.
94833// Exactly one of *Operation or error will be non-nil. Any non-2xx
94834// status code is an error. Response headers are in either
94835// *Operation.ServerResponse.Header or (if a response was returned at
94836// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
94837// to check whether the returned error was because
94838// http.StatusNotModified was returned.
94839func (c *InstancesSetNameCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
94840	gensupport.SetOptions(c.urlParams_, opts...)
94841	res, err := c.doRequest("json")
94842	if res != nil && res.StatusCode == http.StatusNotModified {
94843		if res.Body != nil {
94844			res.Body.Close()
94845		}
94846		return nil, &googleapi.Error{
94847			Code:   res.StatusCode,
94848			Header: res.Header,
94849		}
94850	}
94851	if err != nil {
94852		return nil, err
94853	}
94854	defer googleapi.CloseBody(res)
94855	if err := googleapi.CheckResponse(res); err != nil {
94856		return nil, err
94857	}
94858	ret := &Operation{
94859		ServerResponse: googleapi.ServerResponse{
94860			Header:         res.Header,
94861			HTTPStatusCode: res.StatusCode,
94862		},
94863	}
94864	target := &ret
94865	if err := gensupport.DecodeResponse(target, res); err != nil {
94866		return nil, err
94867	}
94868	return ret, nil
94869	// {
94870	//   "description": "Sets name of an instance.",
94871	//   "httpMethod": "POST",
94872	//   "id": "compute.instances.setName",
94873	//   "parameterOrder": [
94874	//     "project",
94875	//     "zone",
94876	//     "instance"
94877	//   ],
94878	//   "parameters": {
94879	//     "instance": {
94880	//       "description": "The instance name for this request.",
94881	//       "location": "path",
94882	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
94883	//       "required": true,
94884	//       "type": "string"
94885	//     },
94886	//     "project": {
94887	//       "description": "Project ID for this request.",
94888	//       "location": "path",
94889	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94890	//       "required": true,
94891	//       "type": "string"
94892	//     },
94893	//     "requestId": {
94894	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
94895	//       "location": "query",
94896	//       "type": "string"
94897	//     },
94898	//     "zone": {
94899	//       "description": "The name of the zone for this request.",
94900	//       "location": "path",
94901	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
94902	//       "required": true,
94903	//       "type": "string"
94904	//     }
94905	//   },
94906	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/setName",
94907	//   "request": {
94908	//     "$ref": "InstancesSetNameRequest"
94909	//   },
94910	//   "response": {
94911	//     "$ref": "Operation"
94912	//   },
94913	//   "scopes": [
94914	//     "https://www.googleapis.com/auth/cloud-platform",
94915	//     "https://www.googleapis.com/auth/compute"
94916	//   ]
94917	// }
94918
94919}
94920
94921// method id "compute.instances.setScheduling":
94922
94923type InstancesSetSchedulingCall struct {
94924	s          *Service
94925	project    string
94926	zone       string
94927	instance   string
94928	scheduling *Scheduling
94929	urlParams_ gensupport.URLParams
94930	ctx_       context.Context
94931	header_    http.Header
94932}
94933
94934// SetScheduling: Sets an instance's scheduling options. You can only
94935// call this method on a stopped instance, that is, a VM instance that
94936// is in a `TERMINATED` state. See Instance Life Cycle for more
94937// information on the possible instance states.
94938// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/setScheduling
94939func (r *InstancesService) SetScheduling(project string, zone string, instance string, scheduling *Scheduling) *InstancesSetSchedulingCall {
94940	c := &InstancesSetSchedulingCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94941	c.project = project
94942	c.zone = zone
94943	c.instance = instance
94944	c.scheduling = scheduling
94945	return c
94946}
94947
94948// RequestId sets the optional parameter "requestId": An optional
94949// request ID to identify requests. Specify a unique request ID so that
94950// if you must retry your request, the server will know to ignore the
94951// request if it has already been completed.
94952//
94953// For example, consider a situation where you make an initial request
94954// and the request times out. If you make the request again with the
94955// same request ID, the server can check if original operation with the
94956// same request ID was received, and if so, will ignore the second
94957// request. This prevents clients from accidentally creating duplicate
94958// commitments.
94959//
94960// The request ID must be a valid UUID with the exception that zero UUID
94961// is not supported (00000000-0000-0000-0000-000000000000).
94962func (c *InstancesSetSchedulingCall) RequestId(requestId string) *InstancesSetSchedulingCall {
94963	c.urlParams_.Set("requestId", requestId)
94964	return c
94965}
94966
94967// Fields allows partial responses to be retrieved. See
94968// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94969// for more information.
94970func (c *InstancesSetSchedulingCall) Fields(s ...googleapi.Field) *InstancesSetSchedulingCall {
94971	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94972	return c
94973}
94974
94975// Context sets the context to be used in this call's Do method. Any
94976// pending HTTP request will be aborted if the provided context is
94977// canceled.
94978func (c *InstancesSetSchedulingCall) Context(ctx context.Context) *InstancesSetSchedulingCall {
94979	c.ctx_ = ctx
94980	return c
94981}
94982
94983// Header returns an http.Header that can be modified by the caller to
94984// add HTTP headers to the request.
94985func (c *InstancesSetSchedulingCall) Header() http.Header {
94986	if c.header_ == nil {
94987		c.header_ = make(http.Header)
94988	}
94989	return c.header_
94990}
94991
94992func (c *InstancesSetSchedulingCall) doRequest(alt string) (*http.Response, error) {
94993	reqHeaders := make(http.Header)
94994	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
94995	for k, v := range c.header_ {
94996		reqHeaders[k] = v
94997	}
94998	reqHeaders.Set("User-Agent", c.s.userAgent())
94999	var body io.Reader = nil
95000	body, err := googleapi.WithoutDataWrapper.JSONReader(c.scheduling)
95001	if err != nil {
95002		return nil, err
95003	}
95004	reqHeaders.Set("Content-Type", "application/json")
95005	c.urlParams_.Set("alt", alt)
95006	c.urlParams_.Set("prettyPrint", "false")
95007	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setScheduling")
95008	urls += "?" + c.urlParams_.Encode()
95009	req, err := http.NewRequest("POST", urls, body)
95010	if err != nil {
95011		return nil, err
95012	}
95013	req.Header = reqHeaders
95014	googleapi.Expand(req.URL, map[string]string{
95015		"project":  c.project,
95016		"zone":     c.zone,
95017		"instance": c.instance,
95018	})
95019	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95020}
95021
95022// Do executes the "compute.instances.setScheduling" call.
95023// Exactly one of *Operation or error will be non-nil. Any non-2xx
95024// status code is an error. Response headers are in either
95025// *Operation.ServerResponse.Header or (if a response was returned at
95026// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
95027// to check whether the returned error was because
95028// http.StatusNotModified was returned.
95029func (c *InstancesSetSchedulingCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
95030	gensupport.SetOptions(c.urlParams_, opts...)
95031	res, err := c.doRequest("json")
95032	if res != nil && res.StatusCode == http.StatusNotModified {
95033		if res.Body != nil {
95034			res.Body.Close()
95035		}
95036		return nil, &googleapi.Error{
95037			Code:   res.StatusCode,
95038			Header: res.Header,
95039		}
95040	}
95041	if err != nil {
95042		return nil, err
95043	}
95044	defer googleapi.CloseBody(res)
95045	if err := googleapi.CheckResponse(res); err != nil {
95046		return nil, err
95047	}
95048	ret := &Operation{
95049		ServerResponse: googleapi.ServerResponse{
95050			Header:         res.Header,
95051			HTTPStatusCode: res.StatusCode,
95052		},
95053	}
95054	target := &ret
95055	if err := gensupport.DecodeResponse(target, res); err != nil {
95056		return nil, err
95057	}
95058	return ret, nil
95059	// {
95060	//   "description": "Sets an instance's scheduling options. You can only call this method on a stopped instance, that is, a VM instance that is in a `TERMINATED` state. See Instance Life Cycle for more information on the possible instance states.",
95061	//   "httpMethod": "POST",
95062	//   "id": "compute.instances.setScheduling",
95063	//   "parameterOrder": [
95064	//     "project",
95065	//     "zone",
95066	//     "instance"
95067	//   ],
95068	//   "parameters": {
95069	//     "instance": {
95070	//       "description": "Instance name for this request.",
95071	//       "location": "path",
95072	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
95073	//       "required": true,
95074	//       "type": "string"
95075	//     },
95076	//     "project": {
95077	//       "description": "Project ID for this request.",
95078	//       "location": "path",
95079	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95080	//       "required": true,
95081	//       "type": "string"
95082	//     },
95083	//     "requestId": {
95084	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
95085	//       "location": "query",
95086	//       "type": "string"
95087	//     },
95088	//     "zone": {
95089	//       "description": "The name of the zone for this request.",
95090	//       "location": "path",
95091	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
95092	//       "required": true,
95093	//       "type": "string"
95094	//     }
95095	//   },
95096	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/setScheduling",
95097	//   "request": {
95098	//     "$ref": "Scheduling"
95099	//   },
95100	//   "response": {
95101	//     "$ref": "Operation"
95102	//   },
95103	//   "scopes": [
95104	//     "https://www.googleapis.com/auth/cloud-platform",
95105	//     "https://www.googleapis.com/auth/compute"
95106	//   ]
95107	// }
95108
95109}
95110
95111// method id "compute.instances.setServiceAccount":
95112
95113type InstancesSetServiceAccountCall struct {
95114	s                                 *Service
95115	project                           string
95116	zone                              string
95117	instance                          string
95118	instancessetserviceaccountrequest *InstancesSetServiceAccountRequest
95119	urlParams_                        gensupport.URLParams
95120	ctx_                              context.Context
95121	header_                           http.Header
95122}
95123
95124// SetServiceAccount: Sets the service account on the instance. For more
95125// information, read Changing the service account and access scopes for
95126// an instance.
95127func (r *InstancesService) SetServiceAccount(project string, zone string, instance string, instancessetserviceaccountrequest *InstancesSetServiceAccountRequest) *InstancesSetServiceAccountCall {
95128	c := &InstancesSetServiceAccountCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95129	c.project = project
95130	c.zone = zone
95131	c.instance = instance
95132	c.instancessetserviceaccountrequest = instancessetserviceaccountrequest
95133	return c
95134}
95135
95136// RequestId sets the optional parameter "requestId": An optional
95137// request ID to identify requests. Specify a unique request ID so that
95138// if you must retry your request, the server will know to ignore the
95139// request if it has already been completed.
95140//
95141// For example, consider a situation where you make an initial request
95142// and the request times out. If you make the request again with the
95143// same request ID, the server can check if original operation with the
95144// same request ID was received, and if so, will ignore the second
95145// request. This prevents clients from accidentally creating duplicate
95146// commitments.
95147//
95148// The request ID must be a valid UUID with the exception that zero UUID
95149// is not supported (00000000-0000-0000-0000-000000000000).
95150func (c *InstancesSetServiceAccountCall) RequestId(requestId string) *InstancesSetServiceAccountCall {
95151	c.urlParams_.Set("requestId", requestId)
95152	return c
95153}
95154
95155// Fields allows partial responses to be retrieved. See
95156// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95157// for more information.
95158func (c *InstancesSetServiceAccountCall) Fields(s ...googleapi.Field) *InstancesSetServiceAccountCall {
95159	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95160	return c
95161}
95162
95163// Context sets the context to be used in this call's Do method. Any
95164// pending HTTP request will be aborted if the provided context is
95165// canceled.
95166func (c *InstancesSetServiceAccountCall) Context(ctx context.Context) *InstancesSetServiceAccountCall {
95167	c.ctx_ = ctx
95168	return c
95169}
95170
95171// Header returns an http.Header that can be modified by the caller to
95172// add HTTP headers to the request.
95173func (c *InstancesSetServiceAccountCall) Header() http.Header {
95174	if c.header_ == nil {
95175		c.header_ = make(http.Header)
95176	}
95177	return c.header_
95178}
95179
95180func (c *InstancesSetServiceAccountCall) doRequest(alt string) (*http.Response, error) {
95181	reqHeaders := make(http.Header)
95182	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
95183	for k, v := range c.header_ {
95184		reqHeaders[k] = v
95185	}
95186	reqHeaders.Set("User-Agent", c.s.userAgent())
95187	var body io.Reader = nil
95188	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetserviceaccountrequest)
95189	if err != nil {
95190		return nil, err
95191	}
95192	reqHeaders.Set("Content-Type", "application/json")
95193	c.urlParams_.Set("alt", alt)
95194	c.urlParams_.Set("prettyPrint", "false")
95195	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setServiceAccount")
95196	urls += "?" + c.urlParams_.Encode()
95197	req, err := http.NewRequest("POST", urls, body)
95198	if err != nil {
95199		return nil, err
95200	}
95201	req.Header = reqHeaders
95202	googleapi.Expand(req.URL, map[string]string{
95203		"project":  c.project,
95204		"zone":     c.zone,
95205		"instance": c.instance,
95206	})
95207	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95208}
95209
95210// Do executes the "compute.instances.setServiceAccount" call.
95211// Exactly one of *Operation or error will be non-nil. Any non-2xx
95212// status code is an error. Response headers are in either
95213// *Operation.ServerResponse.Header or (if a response was returned at
95214// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
95215// to check whether the returned error was because
95216// http.StatusNotModified was returned.
95217func (c *InstancesSetServiceAccountCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
95218	gensupport.SetOptions(c.urlParams_, opts...)
95219	res, err := c.doRequest("json")
95220	if res != nil && res.StatusCode == http.StatusNotModified {
95221		if res.Body != nil {
95222			res.Body.Close()
95223		}
95224		return nil, &googleapi.Error{
95225			Code:   res.StatusCode,
95226			Header: res.Header,
95227		}
95228	}
95229	if err != nil {
95230		return nil, err
95231	}
95232	defer googleapi.CloseBody(res)
95233	if err := googleapi.CheckResponse(res); err != nil {
95234		return nil, err
95235	}
95236	ret := &Operation{
95237		ServerResponse: googleapi.ServerResponse{
95238			Header:         res.Header,
95239			HTTPStatusCode: res.StatusCode,
95240		},
95241	}
95242	target := &ret
95243	if err := gensupport.DecodeResponse(target, res); err != nil {
95244		return nil, err
95245	}
95246	return ret, nil
95247	// {
95248	//   "description": "Sets the service account on the instance. For more information, read Changing the service account and access scopes for an instance.",
95249	//   "httpMethod": "POST",
95250	//   "id": "compute.instances.setServiceAccount",
95251	//   "parameterOrder": [
95252	//     "project",
95253	//     "zone",
95254	//     "instance"
95255	//   ],
95256	//   "parameters": {
95257	//     "instance": {
95258	//       "description": "Name of the instance resource to start.",
95259	//       "location": "path",
95260	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
95261	//       "required": true,
95262	//       "type": "string"
95263	//     },
95264	//     "project": {
95265	//       "description": "Project ID for this request.",
95266	//       "location": "path",
95267	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95268	//       "required": true,
95269	//       "type": "string"
95270	//     },
95271	//     "requestId": {
95272	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
95273	//       "location": "query",
95274	//       "type": "string"
95275	//     },
95276	//     "zone": {
95277	//       "description": "The name of the zone for this request.",
95278	//       "location": "path",
95279	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
95280	//       "required": true,
95281	//       "type": "string"
95282	//     }
95283	//   },
95284	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/setServiceAccount",
95285	//   "request": {
95286	//     "$ref": "InstancesSetServiceAccountRequest"
95287	//   },
95288	//   "response": {
95289	//     "$ref": "Operation"
95290	//   },
95291	//   "scopes": [
95292	//     "https://www.googleapis.com/auth/cloud-platform",
95293	//     "https://www.googleapis.com/auth/compute"
95294	//   ]
95295	// }
95296
95297}
95298
95299// method id "compute.instances.setShieldedInstanceIntegrityPolicy":
95300
95301type InstancesSetShieldedInstanceIntegrityPolicyCall struct {
95302	s                               *Service
95303	project                         string
95304	zone                            string
95305	instance                        string
95306	shieldedinstanceintegritypolicy *ShieldedInstanceIntegrityPolicy
95307	urlParams_                      gensupport.URLParams
95308	ctx_                            context.Context
95309	header_                         http.Header
95310}
95311
95312// SetShieldedInstanceIntegrityPolicy: Sets the Shielded Instance
95313// integrity policy for an instance. You can only use this method on a
95314// running instance. This method supports PATCH semantics and uses the
95315// JSON merge patch format and processing rules.
95316func (r *InstancesService) SetShieldedInstanceIntegrityPolicy(project string, zone string, instance string, shieldedinstanceintegritypolicy *ShieldedInstanceIntegrityPolicy) *InstancesSetShieldedInstanceIntegrityPolicyCall {
95317	c := &InstancesSetShieldedInstanceIntegrityPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95318	c.project = project
95319	c.zone = zone
95320	c.instance = instance
95321	c.shieldedinstanceintegritypolicy = shieldedinstanceintegritypolicy
95322	return c
95323}
95324
95325// RequestId sets the optional parameter "requestId": An optional
95326// request ID to identify requests. Specify a unique request ID so that
95327// if you must retry your request, the server will know to ignore the
95328// request if it has already been completed.
95329//
95330// For example, consider a situation where you make an initial request
95331// and the request times out. If you make the request again with the
95332// same request ID, the server can check if original operation with the
95333// same request ID was received, and if so, will ignore the second
95334// request. This prevents clients from accidentally creating duplicate
95335// commitments.
95336//
95337// The request ID must be a valid UUID with the exception that zero UUID
95338// is not supported (00000000-0000-0000-0000-000000000000).
95339func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) RequestId(requestId string) *InstancesSetShieldedInstanceIntegrityPolicyCall {
95340	c.urlParams_.Set("requestId", requestId)
95341	return c
95342}
95343
95344// Fields allows partial responses to be retrieved. See
95345// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95346// for more information.
95347func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) Fields(s ...googleapi.Field) *InstancesSetShieldedInstanceIntegrityPolicyCall {
95348	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95349	return c
95350}
95351
95352// Context sets the context to be used in this call's Do method. Any
95353// pending HTTP request will be aborted if the provided context is
95354// canceled.
95355func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) Context(ctx context.Context) *InstancesSetShieldedInstanceIntegrityPolicyCall {
95356	c.ctx_ = ctx
95357	return c
95358}
95359
95360// Header returns an http.Header that can be modified by the caller to
95361// add HTTP headers to the request.
95362func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) Header() http.Header {
95363	if c.header_ == nil {
95364		c.header_ = make(http.Header)
95365	}
95366	return c.header_
95367}
95368
95369func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) doRequest(alt string) (*http.Response, error) {
95370	reqHeaders := make(http.Header)
95371	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
95372	for k, v := range c.header_ {
95373		reqHeaders[k] = v
95374	}
95375	reqHeaders.Set("User-Agent", c.s.userAgent())
95376	var body io.Reader = nil
95377	body, err := googleapi.WithoutDataWrapper.JSONReader(c.shieldedinstanceintegritypolicy)
95378	if err != nil {
95379		return nil, err
95380	}
95381	reqHeaders.Set("Content-Type", "application/json")
95382	c.urlParams_.Set("alt", alt)
95383	c.urlParams_.Set("prettyPrint", "false")
95384	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setShieldedInstanceIntegrityPolicy")
95385	urls += "?" + c.urlParams_.Encode()
95386	req, err := http.NewRequest("PATCH", urls, body)
95387	if err != nil {
95388		return nil, err
95389	}
95390	req.Header = reqHeaders
95391	googleapi.Expand(req.URL, map[string]string{
95392		"project":  c.project,
95393		"zone":     c.zone,
95394		"instance": c.instance,
95395	})
95396	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95397}
95398
95399// Do executes the "compute.instances.setShieldedInstanceIntegrityPolicy" call.
95400// Exactly one of *Operation or error will be non-nil. Any non-2xx
95401// status code is an error. Response headers are in either
95402// *Operation.ServerResponse.Header or (if a response was returned at
95403// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
95404// to check whether the returned error was because
95405// http.StatusNotModified was returned.
95406func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
95407	gensupport.SetOptions(c.urlParams_, opts...)
95408	res, err := c.doRequest("json")
95409	if res != nil && res.StatusCode == http.StatusNotModified {
95410		if res.Body != nil {
95411			res.Body.Close()
95412		}
95413		return nil, &googleapi.Error{
95414			Code:   res.StatusCode,
95415			Header: res.Header,
95416		}
95417	}
95418	if err != nil {
95419		return nil, err
95420	}
95421	defer googleapi.CloseBody(res)
95422	if err := googleapi.CheckResponse(res); err != nil {
95423		return nil, err
95424	}
95425	ret := &Operation{
95426		ServerResponse: googleapi.ServerResponse{
95427			Header:         res.Header,
95428			HTTPStatusCode: res.StatusCode,
95429		},
95430	}
95431	target := &ret
95432	if err := gensupport.DecodeResponse(target, res); err != nil {
95433		return nil, err
95434	}
95435	return ret, nil
95436	// {
95437	//   "description": "Sets the Shielded Instance integrity policy for an instance. You can only use this method on a running instance. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.",
95438	//   "httpMethod": "PATCH",
95439	//   "id": "compute.instances.setShieldedInstanceIntegrityPolicy",
95440	//   "parameterOrder": [
95441	//     "project",
95442	//     "zone",
95443	//     "instance"
95444	//   ],
95445	//   "parameters": {
95446	//     "instance": {
95447	//       "description": "Name or id of the instance scoping this request.",
95448	//       "location": "path",
95449	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
95450	//       "required": true,
95451	//       "type": "string"
95452	//     },
95453	//     "project": {
95454	//       "description": "Project ID for this request.",
95455	//       "location": "path",
95456	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95457	//       "required": true,
95458	//       "type": "string"
95459	//     },
95460	//     "requestId": {
95461	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
95462	//       "location": "query",
95463	//       "type": "string"
95464	//     },
95465	//     "zone": {
95466	//       "description": "The name of the zone for this request.",
95467	//       "location": "path",
95468	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
95469	//       "required": true,
95470	//       "type": "string"
95471	//     }
95472	//   },
95473	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/setShieldedInstanceIntegrityPolicy",
95474	//   "request": {
95475	//     "$ref": "ShieldedInstanceIntegrityPolicy"
95476	//   },
95477	//   "response": {
95478	//     "$ref": "Operation"
95479	//   },
95480	//   "scopes": [
95481	//     "https://www.googleapis.com/auth/cloud-platform",
95482	//     "https://www.googleapis.com/auth/compute"
95483	//   ]
95484	// }
95485
95486}
95487
95488// method id "compute.instances.setShieldedVmIntegrityPolicy":
95489
95490type InstancesSetShieldedVmIntegrityPolicyCall struct {
95491	s                         *Service
95492	project                   string
95493	zone                      string
95494	instance                  string
95495	shieldedvmintegritypolicy *ShieldedVmIntegrityPolicy
95496	urlParams_                gensupport.URLParams
95497	ctx_                      context.Context
95498	header_                   http.Header
95499}
95500
95501// SetShieldedVmIntegrityPolicy: Sets the Shielded VM integrity policy
95502// for a VM instance. You can only use this method on a running VM
95503// instance. This method supports PATCH semantics and uses the JSON
95504// merge patch format and processing rules.
95505func (r *InstancesService) SetShieldedVmIntegrityPolicy(project string, zone string, instance string, shieldedvmintegritypolicy *ShieldedVmIntegrityPolicy) *InstancesSetShieldedVmIntegrityPolicyCall {
95506	c := &InstancesSetShieldedVmIntegrityPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95507	c.project = project
95508	c.zone = zone
95509	c.instance = instance
95510	c.shieldedvmintegritypolicy = shieldedvmintegritypolicy
95511	return c
95512}
95513
95514// RequestId sets the optional parameter "requestId": An optional
95515// request ID to identify requests. Specify a unique request ID so that
95516// if you must retry your request, the server will know to ignore the
95517// request if it has already been completed.
95518//
95519// For example, consider a situation where you make an initial request
95520// and the request times out. If you make the request again with the
95521// same request ID, the server can check if original operation with the
95522// same request ID was received, and if so, will ignore the second
95523// request. This prevents clients from accidentally creating duplicate
95524// commitments.
95525//
95526// The request ID must be a valid UUID with the exception that zero UUID
95527// is not supported (00000000-0000-0000-0000-000000000000).
95528func (c *InstancesSetShieldedVmIntegrityPolicyCall) RequestId(requestId string) *InstancesSetShieldedVmIntegrityPolicyCall {
95529	c.urlParams_.Set("requestId", requestId)
95530	return c
95531}
95532
95533// Fields allows partial responses to be retrieved. See
95534// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95535// for more information.
95536func (c *InstancesSetShieldedVmIntegrityPolicyCall) Fields(s ...googleapi.Field) *InstancesSetShieldedVmIntegrityPolicyCall {
95537	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95538	return c
95539}
95540
95541// Context sets the context to be used in this call's Do method. Any
95542// pending HTTP request will be aborted if the provided context is
95543// canceled.
95544func (c *InstancesSetShieldedVmIntegrityPolicyCall) Context(ctx context.Context) *InstancesSetShieldedVmIntegrityPolicyCall {
95545	c.ctx_ = ctx
95546	return c
95547}
95548
95549// Header returns an http.Header that can be modified by the caller to
95550// add HTTP headers to the request.
95551func (c *InstancesSetShieldedVmIntegrityPolicyCall) Header() http.Header {
95552	if c.header_ == nil {
95553		c.header_ = make(http.Header)
95554	}
95555	return c.header_
95556}
95557
95558func (c *InstancesSetShieldedVmIntegrityPolicyCall) doRequest(alt string) (*http.Response, error) {
95559	reqHeaders := make(http.Header)
95560	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
95561	for k, v := range c.header_ {
95562		reqHeaders[k] = v
95563	}
95564	reqHeaders.Set("User-Agent", c.s.userAgent())
95565	var body io.Reader = nil
95566	body, err := googleapi.WithoutDataWrapper.JSONReader(c.shieldedvmintegritypolicy)
95567	if err != nil {
95568		return nil, err
95569	}
95570	reqHeaders.Set("Content-Type", "application/json")
95571	c.urlParams_.Set("alt", alt)
95572	c.urlParams_.Set("prettyPrint", "false")
95573	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setShieldedVmIntegrityPolicy")
95574	urls += "?" + c.urlParams_.Encode()
95575	req, err := http.NewRequest("PATCH", urls, body)
95576	if err != nil {
95577		return nil, err
95578	}
95579	req.Header = reqHeaders
95580	googleapi.Expand(req.URL, map[string]string{
95581		"project":  c.project,
95582		"zone":     c.zone,
95583		"instance": c.instance,
95584	})
95585	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95586}
95587
95588// Do executes the "compute.instances.setShieldedVmIntegrityPolicy" call.
95589// Exactly one of *Operation or error will be non-nil. Any non-2xx
95590// status code is an error. Response headers are in either
95591// *Operation.ServerResponse.Header or (if a response was returned at
95592// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
95593// to check whether the returned error was because
95594// http.StatusNotModified was returned.
95595func (c *InstancesSetShieldedVmIntegrityPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
95596	gensupport.SetOptions(c.urlParams_, opts...)
95597	res, err := c.doRequest("json")
95598	if res != nil && res.StatusCode == http.StatusNotModified {
95599		if res.Body != nil {
95600			res.Body.Close()
95601		}
95602		return nil, &googleapi.Error{
95603			Code:   res.StatusCode,
95604			Header: res.Header,
95605		}
95606	}
95607	if err != nil {
95608		return nil, err
95609	}
95610	defer googleapi.CloseBody(res)
95611	if err := googleapi.CheckResponse(res); err != nil {
95612		return nil, err
95613	}
95614	ret := &Operation{
95615		ServerResponse: googleapi.ServerResponse{
95616			Header:         res.Header,
95617			HTTPStatusCode: res.StatusCode,
95618		},
95619	}
95620	target := &ret
95621	if err := gensupport.DecodeResponse(target, res); err != nil {
95622		return nil, err
95623	}
95624	return ret, nil
95625	// {
95626	//   "description": "Sets the Shielded VM integrity policy for a VM instance. You can only use this method on a running VM instance. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.",
95627	//   "httpMethod": "PATCH",
95628	//   "id": "compute.instances.setShieldedVmIntegrityPolicy",
95629	//   "parameterOrder": [
95630	//     "project",
95631	//     "zone",
95632	//     "instance"
95633	//   ],
95634	//   "parameters": {
95635	//     "instance": {
95636	//       "description": "Name of the instance scoping this request.",
95637	//       "location": "path",
95638	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
95639	//       "required": true,
95640	//       "type": "string"
95641	//     },
95642	//     "project": {
95643	//       "description": "Project ID for this request.",
95644	//       "location": "path",
95645	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95646	//       "required": true,
95647	//       "type": "string"
95648	//     },
95649	//     "requestId": {
95650	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
95651	//       "location": "query",
95652	//       "type": "string"
95653	//     },
95654	//     "zone": {
95655	//       "description": "The name of the zone for this request.",
95656	//       "location": "path",
95657	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
95658	//       "required": true,
95659	//       "type": "string"
95660	//     }
95661	//   },
95662	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/setShieldedVmIntegrityPolicy",
95663	//   "request": {
95664	//     "$ref": "ShieldedVmIntegrityPolicy"
95665	//   },
95666	//   "response": {
95667	//     "$ref": "Operation"
95668	//   },
95669	//   "scopes": [
95670	//     "https://www.googleapis.com/auth/cloud-platform",
95671	//     "https://www.googleapis.com/auth/compute"
95672	//   ]
95673	// }
95674
95675}
95676
95677// method id "compute.instances.setTags":
95678
95679type InstancesSetTagsCall struct {
95680	s          *Service
95681	project    string
95682	zone       string
95683	instance   string
95684	tags       *Tags
95685	urlParams_ gensupport.URLParams
95686	ctx_       context.Context
95687	header_    http.Header
95688}
95689
95690// SetTags: Sets network tags for the specified instance to the data
95691// included in the request.
95692// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/setTags
95693func (r *InstancesService) SetTags(project string, zone string, instance string, tags *Tags) *InstancesSetTagsCall {
95694	c := &InstancesSetTagsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95695	c.project = project
95696	c.zone = zone
95697	c.instance = instance
95698	c.tags = tags
95699	return c
95700}
95701
95702// RequestId sets the optional parameter "requestId": An optional
95703// request ID to identify requests. Specify a unique request ID so that
95704// if you must retry your request, the server will know to ignore the
95705// request if it has already been completed.
95706//
95707// For example, consider a situation where you make an initial request
95708// and the request times out. If you make the request again with the
95709// same request ID, the server can check if original operation with the
95710// same request ID was received, and if so, will ignore the second
95711// request. This prevents clients from accidentally creating duplicate
95712// commitments.
95713//
95714// The request ID must be a valid UUID with the exception that zero UUID
95715// is not supported (00000000-0000-0000-0000-000000000000).
95716func (c *InstancesSetTagsCall) RequestId(requestId string) *InstancesSetTagsCall {
95717	c.urlParams_.Set("requestId", requestId)
95718	return c
95719}
95720
95721// Fields allows partial responses to be retrieved. See
95722// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95723// for more information.
95724func (c *InstancesSetTagsCall) Fields(s ...googleapi.Field) *InstancesSetTagsCall {
95725	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95726	return c
95727}
95728
95729// Context sets the context to be used in this call's Do method. Any
95730// pending HTTP request will be aborted if the provided context is
95731// canceled.
95732func (c *InstancesSetTagsCall) Context(ctx context.Context) *InstancesSetTagsCall {
95733	c.ctx_ = ctx
95734	return c
95735}
95736
95737// Header returns an http.Header that can be modified by the caller to
95738// add HTTP headers to the request.
95739func (c *InstancesSetTagsCall) Header() http.Header {
95740	if c.header_ == nil {
95741		c.header_ = make(http.Header)
95742	}
95743	return c.header_
95744}
95745
95746func (c *InstancesSetTagsCall) doRequest(alt string) (*http.Response, error) {
95747	reqHeaders := make(http.Header)
95748	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
95749	for k, v := range c.header_ {
95750		reqHeaders[k] = v
95751	}
95752	reqHeaders.Set("User-Agent", c.s.userAgent())
95753	var body io.Reader = nil
95754	body, err := googleapi.WithoutDataWrapper.JSONReader(c.tags)
95755	if err != nil {
95756		return nil, err
95757	}
95758	reqHeaders.Set("Content-Type", "application/json")
95759	c.urlParams_.Set("alt", alt)
95760	c.urlParams_.Set("prettyPrint", "false")
95761	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setTags")
95762	urls += "?" + c.urlParams_.Encode()
95763	req, err := http.NewRequest("POST", urls, body)
95764	if err != nil {
95765		return nil, err
95766	}
95767	req.Header = reqHeaders
95768	googleapi.Expand(req.URL, map[string]string{
95769		"project":  c.project,
95770		"zone":     c.zone,
95771		"instance": c.instance,
95772	})
95773	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95774}
95775
95776// Do executes the "compute.instances.setTags" call.
95777// Exactly one of *Operation or error will be non-nil. Any non-2xx
95778// status code is an error. Response headers are in either
95779// *Operation.ServerResponse.Header or (if a response was returned at
95780// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
95781// to check whether the returned error was because
95782// http.StatusNotModified was returned.
95783func (c *InstancesSetTagsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
95784	gensupport.SetOptions(c.urlParams_, opts...)
95785	res, err := c.doRequest("json")
95786	if res != nil && res.StatusCode == http.StatusNotModified {
95787		if res.Body != nil {
95788			res.Body.Close()
95789		}
95790		return nil, &googleapi.Error{
95791			Code:   res.StatusCode,
95792			Header: res.Header,
95793		}
95794	}
95795	if err != nil {
95796		return nil, err
95797	}
95798	defer googleapi.CloseBody(res)
95799	if err := googleapi.CheckResponse(res); err != nil {
95800		return nil, err
95801	}
95802	ret := &Operation{
95803		ServerResponse: googleapi.ServerResponse{
95804			Header:         res.Header,
95805			HTTPStatusCode: res.StatusCode,
95806		},
95807	}
95808	target := &ret
95809	if err := gensupport.DecodeResponse(target, res); err != nil {
95810		return nil, err
95811	}
95812	return ret, nil
95813	// {
95814	//   "description": "Sets network tags for the specified instance to the data included in the request.",
95815	//   "httpMethod": "POST",
95816	//   "id": "compute.instances.setTags",
95817	//   "parameterOrder": [
95818	//     "project",
95819	//     "zone",
95820	//     "instance"
95821	//   ],
95822	//   "parameters": {
95823	//     "instance": {
95824	//       "description": "Name of the instance scoping this request.",
95825	//       "location": "path",
95826	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
95827	//       "required": true,
95828	//       "type": "string"
95829	//     },
95830	//     "project": {
95831	//       "description": "Project ID for this request.",
95832	//       "location": "path",
95833	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95834	//       "required": true,
95835	//       "type": "string"
95836	//     },
95837	//     "requestId": {
95838	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
95839	//       "location": "query",
95840	//       "type": "string"
95841	//     },
95842	//     "zone": {
95843	//       "description": "The name of the zone for this request.",
95844	//       "location": "path",
95845	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
95846	//       "required": true,
95847	//       "type": "string"
95848	//     }
95849	//   },
95850	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/setTags",
95851	//   "request": {
95852	//     "$ref": "Tags"
95853	//   },
95854	//   "response": {
95855	//     "$ref": "Operation"
95856	//   },
95857	//   "scopes": [
95858	//     "https://www.googleapis.com/auth/cloud-platform",
95859	//     "https://www.googleapis.com/auth/compute"
95860	//   ]
95861	// }
95862
95863}
95864
95865// method id "compute.instances.simulateMaintenanceEvent":
95866
95867type InstancesSimulateMaintenanceEventCall struct {
95868	s          *Service
95869	project    string
95870	zone       string
95871	instance   string
95872	urlParams_ gensupport.URLParams
95873	ctx_       context.Context
95874	header_    http.Header
95875}
95876
95877// SimulateMaintenanceEvent: Simulates a maintenance event on the
95878// instance.
95879func (r *InstancesService) SimulateMaintenanceEvent(project string, zone string, instance string) *InstancesSimulateMaintenanceEventCall {
95880	c := &InstancesSimulateMaintenanceEventCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95881	c.project = project
95882	c.zone = zone
95883	c.instance = instance
95884	return c
95885}
95886
95887// Fields allows partial responses to be retrieved. See
95888// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95889// for more information.
95890func (c *InstancesSimulateMaintenanceEventCall) Fields(s ...googleapi.Field) *InstancesSimulateMaintenanceEventCall {
95891	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95892	return c
95893}
95894
95895// Context sets the context to be used in this call's Do method. Any
95896// pending HTTP request will be aborted if the provided context is
95897// canceled.
95898func (c *InstancesSimulateMaintenanceEventCall) Context(ctx context.Context) *InstancesSimulateMaintenanceEventCall {
95899	c.ctx_ = ctx
95900	return c
95901}
95902
95903// Header returns an http.Header that can be modified by the caller to
95904// add HTTP headers to the request.
95905func (c *InstancesSimulateMaintenanceEventCall) Header() http.Header {
95906	if c.header_ == nil {
95907		c.header_ = make(http.Header)
95908	}
95909	return c.header_
95910}
95911
95912func (c *InstancesSimulateMaintenanceEventCall) doRequest(alt string) (*http.Response, error) {
95913	reqHeaders := make(http.Header)
95914	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
95915	for k, v := range c.header_ {
95916		reqHeaders[k] = v
95917	}
95918	reqHeaders.Set("User-Agent", c.s.userAgent())
95919	var body io.Reader = nil
95920	c.urlParams_.Set("alt", alt)
95921	c.urlParams_.Set("prettyPrint", "false")
95922	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/simulateMaintenanceEvent")
95923	urls += "?" + c.urlParams_.Encode()
95924	req, err := http.NewRequest("POST", urls, body)
95925	if err != nil {
95926		return nil, err
95927	}
95928	req.Header = reqHeaders
95929	googleapi.Expand(req.URL, map[string]string{
95930		"project":  c.project,
95931		"zone":     c.zone,
95932		"instance": c.instance,
95933	})
95934	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95935}
95936
95937// Do executes the "compute.instances.simulateMaintenanceEvent" call.
95938// Exactly one of *Operation or error will be non-nil. Any non-2xx
95939// status code is an error. Response headers are in either
95940// *Operation.ServerResponse.Header or (if a response was returned at
95941// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
95942// to check whether the returned error was because
95943// http.StatusNotModified was returned.
95944func (c *InstancesSimulateMaintenanceEventCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
95945	gensupport.SetOptions(c.urlParams_, opts...)
95946	res, err := c.doRequest("json")
95947	if res != nil && res.StatusCode == http.StatusNotModified {
95948		if res.Body != nil {
95949			res.Body.Close()
95950		}
95951		return nil, &googleapi.Error{
95952			Code:   res.StatusCode,
95953			Header: res.Header,
95954		}
95955	}
95956	if err != nil {
95957		return nil, err
95958	}
95959	defer googleapi.CloseBody(res)
95960	if err := googleapi.CheckResponse(res); err != nil {
95961		return nil, err
95962	}
95963	ret := &Operation{
95964		ServerResponse: googleapi.ServerResponse{
95965			Header:         res.Header,
95966			HTTPStatusCode: res.StatusCode,
95967		},
95968	}
95969	target := &ret
95970	if err := gensupport.DecodeResponse(target, res); err != nil {
95971		return nil, err
95972	}
95973	return ret, nil
95974	// {
95975	//   "description": "Simulates a maintenance event on the instance.",
95976	//   "httpMethod": "POST",
95977	//   "id": "compute.instances.simulateMaintenanceEvent",
95978	//   "parameterOrder": [
95979	//     "project",
95980	//     "zone",
95981	//     "instance"
95982	//   ],
95983	//   "parameters": {
95984	//     "instance": {
95985	//       "description": "Name of the instance scoping this request.",
95986	//       "location": "path",
95987	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
95988	//       "required": true,
95989	//       "type": "string"
95990	//     },
95991	//     "project": {
95992	//       "description": "Project ID for this request.",
95993	//       "location": "path",
95994	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95995	//       "required": true,
95996	//       "type": "string"
95997	//     },
95998	//     "zone": {
95999	//       "description": "The name of the zone for this request.",
96000	//       "location": "path",
96001	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
96002	//       "required": true,
96003	//       "type": "string"
96004	//     }
96005	//   },
96006	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/simulateMaintenanceEvent",
96007	//   "response": {
96008	//     "$ref": "Operation"
96009	//   },
96010	//   "scopes": [
96011	//     "https://www.googleapis.com/auth/cloud-platform",
96012	//     "https://www.googleapis.com/auth/compute"
96013	//   ]
96014	// }
96015
96016}
96017
96018// method id "compute.instances.start":
96019
96020type InstancesStartCall struct {
96021	s          *Service
96022	project    string
96023	zone       string
96024	instance   string
96025	urlParams_ gensupport.URLParams
96026	ctx_       context.Context
96027	header_    http.Header
96028}
96029
96030// Start: Starts an instance that was stopped using the instances().stop
96031// method. For more information, see Restart an instance.
96032// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/start
96033func (r *InstancesService) Start(project string, zone string, instance string) *InstancesStartCall {
96034	c := &InstancesStartCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96035	c.project = project
96036	c.zone = zone
96037	c.instance = instance
96038	return c
96039}
96040
96041// RequestId sets the optional parameter "requestId": An optional
96042// request ID to identify requests. Specify a unique request ID so that
96043// if you must retry your request, the server will know to ignore the
96044// request if it has already been completed.
96045//
96046// For example, consider a situation where you make an initial request
96047// and the request times out. If you make the request again with the
96048// same request ID, the server can check if original operation with the
96049// same request ID was received, and if so, will ignore the second
96050// request. This prevents clients from accidentally creating duplicate
96051// commitments.
96052//
96053// The request ID must be a valid UUID with the exception that zero UUID
96054// is not supported (00000000-0000-0000-0000-000000000000).
96055func (c *InstancesStartCall) RequestId(requestId string) *InstancesStartCall {
96056	c.urlParams_.Set("requestId", requestId)
96057	return c
96058}
96059
96060// Fields allows partial responses to be retrieved. See
96061// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96062// for more information.
96063func (c *InstancesStartCall) Fields(s ...googleapi.Field) *InstancesStartCall {
96064	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96065	return c
96066}
96067
96068// Context sets the context to be used in this call's Do method. Any
96069// pending HTTP request will be aborted if the provided context is
96070// canceled.
96071func (c *InstancesStartCall) Context(ctx context.Context) *InstancesStartCall {
96072	c.ctx_ = ctx
96073	return c
96074}
96075
96076// Header returns an http.Header that can be modified by the caller to
96077// add HTTP headers to the request.
96078func (c *InstancesStartCall) Header() http.Header {
96079	if c.header_ == nil {
96080		c.header_ = make(http.Header)
96081	}
96082	return c.header_
96083}
96084
96085func (c *InstancesStartCall) doRequest(alt string) (*http.Response, error) {
96086	reqHeaders := make(http.Header)
96087	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
96088	for k, v := range c.header_ {
96089		reqHeaders[k] = v
96090	}
96091	reqHeaders.Set("User-Agent", c.s.userAgent())
96092	var body io.Reader = nil
96093	c.urlParams_.Set("alt", alt)
96094	c.urlParams_.Set("prettyPrint", "false")
96095	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/start")
96096	urls += "?" + c.urlParams_.Encode()
96097	req, err := http.NewRequest("POST", urls, body)
96098	if err != nil {
96099		return nil, err
96100	}
96101	req.Header = reqHeaders
96102	googleapi.Expand(req.URL, map[string]string{
96103		"project":  c.project,
96104		"zone":     c.zone,
96105		"instance": c.instance,
96106	})
96107	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96108}
96109
96110// Do executes the "compute.instances.start" call.
96111// Exactly one of *Operation or error will be non-nil. Any non-2xx
96112// status code is an error. Response headers are in either
96113// *Operation.ServerResponse.Header or (if a response was returned at
96114// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
96115// to check whether the returned error was because
96116// http.StatusNotModified was returned.
96117func (c *InstancesStartCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
96118	gensupport.SetOptions(c.urlParams_, opts...)
96119	res, err := c.doRequest("json")
96120	if res != nil && res.StatusCode == http.StatusNotModified {
96121		if res.Body != nil {
96122			res.Body.Close()
96123		}
96124		return nil, &googleapi.Error{
96125			Code:   res.StatusCode,
96126			Header: res.Header,
96127		}
96128	}
96129	if err != nil {
96130		return nil, err
96131	}
96132	defer googleapi.CloseBody(res)
96133	if err := googleapi.CheckResponse(res); err != nil {
96134		return nil, err
96135	}
96136	ret := &Operation{
96137		ServerResponse: googleapi.ServerResponse{
96138			Header:         res.Header,
96139			HTTPStatusCode: res.StatusCode,
96140		},
96141	}
96142	target := &ret
96143	if err := gensupport.DecodeResponse(target, res); err != nil {
96144		return nil, err
96145	}
96146	return ret, nil
96147	// {
96148	//   "description": "Starts an instance that was stopped using the instances().stop method. For more information, see Restart an instance.",
96149	//   "httpMethod": "POST",
96150	//   "id": "compute.instances.start",
96151	//   "parameterOrder": [
96152	//     "project",
96153	//     "zone",
96154	//     "instance"
96155	//   ],
96156	//   "parameters": {
96157	//     "instance": {
96158	//       "description": "Name of the instance resource to start.",
96159	//       "location": "path",
96160	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
96161	//       "required": true,
96162	//       "type": "string"
96163	//     },
96164	//     "project": {
96165	//       "description": "Project ID for this request.",
96166	//       "location": "path",
96167	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96168	//       "required": true,
96169	//       "type": "string"
96170	//     },
96171	//     "requestId": {
96172	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
96173	//       "location": "query",
96174	//       "type": "string"
96175	//     },
96176	//     "zone": {
96177	//       "description": "The name of the zone for this request.",
96178	//       "location": "path",
96179	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
96180	//       "required": true,
96181	//       "type": "string"
96182	//     }
96183	//   },
96184	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/start",
96185	//   "response": {
96186	//     "$ref": "Operation"
96187	//   },
96188	//   "scopes": [
96189	//     "https://www.googleapis.com/auth/cloud-platform",
96190	//     "https://www.googleapis.com/auth/compute"
96191	//   ]
96192	// }
96193
96194}
96195
96196// method id "compute.instances.startWithEncryptionKey":
96197
96198type InstancesStartWithEncryptionKeyCall struct {
96199	s                                      *Service
96200	project                                string
96201	zone                                   string
96202	instance                               string
96203	instancesstartwithencryptionkeyrequest *InstancesStartWithEncryptionKeyRequest
96204	urlParams_                             gensupport.URLParams
96205	ctx_                                   context.Context
96206	header_                                http.Header
96207}
96208
96209// StartWithEncryptionKey: Starts an instance that was stopped using the
96210// instances().stop method. For more information, see Restart an
96211// instance.
96212func (r *InstancesService) StartWithEncryptionKey(project string, zone string, instance string, instancesstartwithencryptionkeyrequest *InstancesStartWithEncryptionKeyRequest) *InstancesStartWithEncryptionKeyCall {
96213	c := &InstancesStartWithEncryptionKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96214	c.project = project
96215	c.zone = zone
96216	c.instance = instance
96217	c.instancesstartwithencryptionkeyrequest = instancesstartwithencryptionkeyrequest
96218	return c
96219}
96220
96221// RequestId sets the optional parameter "requestId": An optional
96222// request ID to identify requests. Specify a unique request ID so that
96223// if you must retry your request, the server will know to ignore the
96224// request if it has already been completed.
96225//
96226// For example, consider a situation where you make an initial request
96227// and the request times out. If you make the request again with the
96228// same request ID, the server can check if original operation with the
96229// same request ID was received, and if so, will ignore the second
96230// request. This prevents clients from accidentally creating duplicate
96231// commitments.
96232//
96233// The request ID must be a valid UUID with the exception that zero UUID
96234// is not supported (00000000-0000-0000-0000-000000000000).
96235func (c *InstancesStartWithEncryptionKeyCall) RequestId(requestId string) *InstancesStartWithEncryptionKeyCall {
96236	c.urlParams_.Set("requestId", requestId)
96237	return c
96238}
96239
96240// Fields allows partial responses to be retrieved. See
96241// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96242// for more information.
96243func (c *InstancesStartWithEncryptionKeyCall) Fields(s ...googleapi.Field) *InstancesStartWithEncryptionKeyCall {
96244	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96245	return c
96246}
96247
96248// Context sets the context to be used in this call's Do method. Any
96249// pending HTTP request will be aborted if the provided context is
96250// canceled.
96251func (c *InstancesStartWithEncryptionKeyCall) Context(ctx context.Context) *InstancesStartWithEncryptionKeyCall {
96252	c.ctx_ = ctx
96253	return c
96254}
96255
96256// Header returns an http.Header that can be modified by the caller to
96257// add HTTP headers to the request.
96258func (c *InstancesStartWithEncryptionKeyCall) Header() http.Header {
96259	if c.header_ == nil {
96260		c.header_ = make(http.Header)
96261	}
96262	return c.header_
96263}
96264
96265func (c *InstancesStartWithEncryptionKeyCall) doRequest(alt string) (*http.Response, error) {
96266	reqHeaders := make(http.Header)
96267	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
96268	for k, v := range c.header_ {
96269		reqHeaders[k] = v
96270	}
96271	reqHeaders.Set("User-Agent", c.s.userAgent())
96272	var body io.Reader = nil
96273	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancesstartwithencryptionkeyrequest)
96274	if err != nil {
96275		return nil, err
96276	}
96277	reqHeaders.Set("Content-Type", "application/json")
96278	c.urlParams_.Set("alt", alt)
96279	c.urlParams_.Set("prettyPrint", "false")
96280	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/startWithEncryptionKey")
96281	urls += "?" + c.urlParams_.Encode()
96282	req, err := http.NewRequest("POST", urls, body)
96283	if err != nil {
96284		return nil, err
96285	}
96286	req.Header = reqHeaders
96287	googleapi.Expand(req.URL, map[string]string{
96288		"project":  c.project,
96289		"zone":     c.zone,
96290		"instance": c.instance,
96291	})
96292	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96293}
96294
96295// Do executes the "compute.instances.startWithEncryptionKey" call.
96296// Exactly one of *Operation or error will be non-nil. Any non-2xx
96297// status code is an error. Response headers are in either
96298// *Operation.ServerResponse.Header or (if a response was returned at
96299// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
96300// to check whether the returned error was because
96301// http.StatusNotModified was returned.
96302func (c *InstancesStartWithEncryptionKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
96303	gensupport.SetOptions(c.urlParams_, opts...)
96304	res, err := c.doRequest("json")
96305	if res != nil && res.StatusCode == http.StatusNotModified {
96306		if res.Body != nil {
96307			res.Body.Close()
96308		}
96309		return nil, &googleapi.Error{
96310			Code:   res.StatusCode,
96311			Header: res.Header,
96312		}
96313	}
96314	if err != nil {
96315		return nil, err
96316	}
96317	defer googleapi.CloseBody(res)
96318	if err := googleapi.CheckResponse(res); err != nil {
96319		return nil, err
96320	}
96321	ret := &Operation{
96322		ServerResponse: googleapi.ServerResponse{
96323			Header:         res.Header,
96324			HTTPStatusCode: res.StatusCode,
96325		},
96326	}
96327	target := &ret
96328	if err := gensupport.DecodeResponse(target, res); err != nil {
96329		return nil, err
96330	}
96331	return ret, nil
96332	// {
96333	//   "description": "Starts an instance that was stopped using the instances().stop method. For more information, see Restart an instance.",
96334	//   "httpMethod": "POST",
96335	//   "id": "compute.instances.startWithEncryptionKey",
96336	//   "parameterOrder": [
96337	//     "project",
96338	//     "zone",
96339	//     "instance"
96340	//   ],
96341	//   "parameters": {
96342	//     "instance": {
96343	//       "description": "Name of the instance resource to start.",
96344	//       "location": "path",
96345	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
96346	//       "required": true,
96347	//       "type": "string"
96348	//     },
96349	//     "project": {
96350	//       "description": "Project ID for this request.",
96351	//       "location": "path",
96352	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96353	//       "required": true,
96354	//       "type": "string"
96355	//     },
96356	//     "requestId": {
96357	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
96358	//       "location": "query",
96359	//       "type": "string"
96360	//     },
96361	//     "zone": {
96362	//       "description": "The name of the zone for this request.",
96363	//       "location": "path",
96364	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
96365	//       "required": true,
96366	//       "type": "string"
96367	//     }
96368	//   },
96369	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/startWithEncryptionKey",
96370	//   "request": {
96371	//     "$ref": "InstancesStartWithEncryptionKeyRequest"
96372	//   },
96373	//   "response": {
96374	//     "$ref": "Operation"
96375	//   },
96376	//   "scopes": [
96377	//     "https://www.googleapis.com/auth/cloud-platform",
96378	//     "https://www.googleapis.com/auth/compute"
96379	//   ]
96380	// }
96381
96382}
96383
96384// method id "compute.instances.stop":
96385
96386type InstancesStopCall struct {
96387	s          *Service
96388	project    string
96389	zone       string
96390	instance   string
96391	urlParams_ gensupport.URLParams
96392	ctx_       context.Context
96393	header_    http.Header
96394}
96395
96396// Stop: Stops a running instance, shutting it down cleanly, and allows
96397// you to restart the instance at a later time. Stopped instances do not
96398// incur VM usage charges while they are stopped. However, resources
96399// that the VM is using, such as persistent disks and static IP
96400// addresses, will continue to be charged until they are deleted. For
96401// more information, see Stopping an instance.
96402// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/stop
96403func (r *InstancesService) Stop(project string, zone string, instance string) *InstancesStopCall {
96404	c := &InstancesStopCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96405	c.project = project
96406	c.zone = zone
96407	c.instance = instance
96408	return c
96409}
96410
96411// RequestId sets the optional parameter "requestId": An optional
96412// request ID to identify requests. Specify a unique request ID so that
96413// if you must retry your request, the server will know to ignore the
96414// request if it has already been completed.
96415//
96416// For example, consider a situation where you make an initial request
96417// and the request times out. If you make the request again with the
96418// same request ID, the server can check if original operation with the
96419// same request ID was received, and if so, will ignore the second
96420// request. This prevents clients from accidentally creating duplicate
96421// commitments.
96422//
96423// The request ID must be a valid UUID with the exception that zero UUID
96424// is not supported (00000000-0000-0000-0000-000000000000).
96425func (c *InstancesStopCall) RequestId(requestId string) *InstancesStopCall {
96426	c.urlParams_.Set("requestId", requestId)
96427	return c
96428}
96429
96430// Fields allows partial responses to be retrieved. See
96431// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96432// for more information.
96433func (c *InstancesStopCall) Fields(s ...googleapi.Field) *InstancesStopCall {
96434	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96435	return c
96436}
96437
96438// Context sets the context to be used in this call's Do method. Any
96439// pending HTTP request will be aborted if the provided context is
96440// canceled.
96441func (c *InstancesStopCall) Context(ctx context.Context) *InstancesStopCall {
96442	c.ctx_ = ctx
96443	return c
96444}
96445
96446// Header returns an http.Header that can be modified by the caller to
96447// add HTTP headers to the request.
96448func (c *InstancesStopCall) Header() http.Header {
96449	if c.header_ == nil {
96450		c.header_ = make(http.Header)
96451	}
96452	return c.header_
96453}
96454
96455func (c *InstancesStopCall) doRequest(alt string) (*http.Response, error) {
96456	reqHeaders := make(http.Header)
96457	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
96458	for k, v := range c.header_ {
96459		reqHeaders[k] = v
96460	}
96461	reqHeaders.Set("User-Agent", c.s.userAgent())
96462	var body io.Reader = nil
96463	c.urlParams_.Set("alt", alt)
96464	c.urlParams_.Set("prettyPrint", "false")
96465	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/stop")
96466	urls += "?" + c.urlParams_.Encode()
96467	req, err := http.NewRequest("POST", urls, body)
96468	if err != nil {
96469		return nil, err
96470	}
96471	req.Header = reqHeaders
96472	googleapi.Expand(req.URL, map[string]string{
96473		"project":  c.project,
96474		"zone":     c.zone,
96475		"instance": c.instance,
96476	})
96477	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96478}
96479
96480// Do executes the "compute.instances.stop" call.
96481// Exactly one of *Operation or error will be non-nil. Any non-2xx
96482// status code is an error. Response headers are in either
96483// *Operation.ServerResponse.Header or (if a response was returned at
96484// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
96485// to check whether the returned error was because
96486// http.StatusNotModified was returned.
96487func (c *InstancesStopCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
96488	gensupport.SetOptions(c.urlParams_, opts...)
96489	res, err := c.doRequest("json")
96490	if res != nil && res.StatusCode == http.StatusNotModified {
96491		if res.Body != nil {
96492			res.Body.Close()
96493		}
96494		return nil, &googleapi.Error{
96495			Code:   res.StatusCode,
96496			Header: res.Header,
96497		}
96498	}
96499	if err != nil {
96500		return nil, err
96501	}
96502	defer googleapi.CloseBody(res)
96503	if err := googleapi.CheckResponse(res); err != nil {
96504		return nil, err
96505	}
96506	ret := &Operation{
96507		ServerResponse: googleapi.ServerResponse{
96508			Header:         res.Header,
96509			HTTPStatusCode: res.StatusCode,
96510		},
96511	}
96512	target := &ret
96513	if err := gensupport.DecodeResponse(target, res); err != nil {
96514		return nil, err
96515	}
96516	return ret, nil
96517	// {
96518	//   "description": "Stops a running instance, shutting it down cleanly, and allows you to restart the instance at a later time. Stopped instances do not incur VM usage charges while they are stopped. However, resources that the VM is using, such as persistent disks and static IP addresses, will continue to be charged until they are deleted. For more information, see Stopping an instance.",
96519	//   "httpMethod": "POST",
96520	//   "id": "compute.instances.stop",
96521	//   "parameterOrder": [
96522	//     "project",
96523	//     "zone",
96524	//     "instance"
96525	//   ],
96526	//   "parameters": {
96527	//     "instance": {
96528	//       "description": "Name of the instance resource to stop.",
96529	//       "location": "path",
96530	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
96531	//       "required": true,
96532	//       "type": "string"
96533	//     },
96534	//     "project": {
96535	//       "description": "Project ID for this request.",
96536	//       "location": "path",
96537	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96538	//       "required": true,
96539	//       "type": "string"
96540	//     },
96541	//     "requestId": {
96542	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
96543	//       "location": "query",
96544	//       "type": "string"
96545	//     },
96546	//     "zone": {
96547	//       "description": "The name of the zone for this request.",
96548	//       "location": "path",
96549	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
96550	//       "required": true,
96551	//       "type": "string"
96552	//     }
96553	//   },
96554	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/stop",
96555	//   "response": {
96556	//     "$ref": "Operation"
96557	//   },
96558	//   "scopes": [
96559	//     "https://www.googleapis.com/auth/cloud-platform",
96560	//     "https://www.googleapis.com/auth/compute"
96561	//   ]
96562	// }
96563
96564}
96565
96566// method id "compute.instances.suspend":
96567
96568type InstancesSuspendCall struct {
96569	s          *Service
96570	project    string
96571	zone       string
96572	instance   string
96573	urlParams_ gensupport.URLParams
96574	ctx_       context.Context
96575	header_    http.Header
96576}
96577
96578// Suspend: This method suspends a running instance, saving its state to
96579// persistent storage, and allows you to resume the instance at a later
96580// time. Suspended instances incur reduced per-minute, virtual machine
96581// usage charges while they are suspended. Any resources the virtual
96582// machine is using, such as persistent disks and static IP addresses,
96583// will continue to be charged until they are deleted.
96584func (r *InstancesService) Suspend(project string, zone string, instance string) *InstancesSuspendCall {
96585	c := &InstancesSuspendCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96586	c.project = project
96587	c.zone = zone
96588	c.instance = instance
96589	return c
96590}
96591
96592// DiscardLocalSsd sets the optional parameter "discardLocalSsd": If
96593// true, discard the contents of any attached localSSD partitions.
96594// Default value is false (== preserve localSSD data).
96595func (c *InstancesSuspendCall) DiscardLocalSsd(discardLocalSsd bool) *InstancesSuspendCall {
96596	c.urlParams_.Set("discardLocalSsd", fmt.Sprint(discardLocalSsd))
96597	return c
96598}
96599
96600// RequestId sets the optional parameter "requestId": An optional
96601// request ID to identify requests. Specify a unique request ID so that
96602// if you must retry your request, the server will know to ignore the
96603// request if it has already been completed.
96604//
96605// For example, consider a situation where you make an initial request
96606// and the request times out. If you make the request again with the
96607// same request ID, the server can check if original operation with the
96608// same request ID was received, and if so, will ignore the second
96609// request. This prevents clients from accidentally creating duplicate
96610// commitments.
96611//
96612// The request ID must be a valid UUID with the exception that zero UUID
96613// is not supported (00000000-0000-0000-0000-000000000000).
96614func (c *InstancesSuspendCall) RequestId(requestId string) *InstancesSuspendCall {
96615	c.urlParams_.Set("requestId", requestId)
96616	return c
96617}
96618
96619// Fields allows partial responses to be retrieved. See
96620// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96621// for more information.
96622func (c *InstancesSuspendCall) Fields(s ...googleapi.Field) *InstancesSuspendCall {
96623	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96624	return c
96625}
96626
96627// Context sets the context to be used in this call's Do method. Any
96628// pending HTTP request will be aborted if the provided context is
96629// canceled.
96630func (c *InstancesSuspendCall) Context(ctx context.Context) *InstancesSuspendCall {
96631	c.ctx_ = ctx
96632	return c
96633}
96634
96635// Header returns an http.Header that can be modified by the caller to
96636// add HTTP headers to the request.
96637func (c *InstancesSuspendCall) Header() http.Header {
96638	if c.header_ == nil {
96639		c.header_ = make(http.Header)
96640	}
96641	return c.header_
96642}
96643
96644func (c *InstancesSuspendCall) doRequest(alt string) (*http.Response, error) {
96645	reqHeaders := make(http.Header)
96646	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
96647	for k, v := range c.header_ {
96648		reqHeaders[k] = v
96649	}
96650	reqHeaders.Set("User-Agent", c.s.userAgent())
96651	var body io.Reader = nil
96652	c.urlParams_.Set("alt", alt)
96653	c.urlParams_.Set("prettyPrint", "false")
96654	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/suspend")
96655	urls += "?" + c.urlParams_.Encode()
96656	req, err := http.NewRequest("POST", urls, body)
96657	if err != nil {
96658		return nil, err
96659	}
96660	req.Header = reqHeaders
96661	googleapi.Expand(req.URL, map[string]string{
96662		"project":  c.project,
96663		"zone":     c.zone,
96664		"instance": c.instance,
96665	})
96666	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96667}
96668
96669// Do executes the "compute.instances.suspend" call.
96670// Exactly one of *Operation or error will be non-nil. Any non-2xx
96671// status code is an error. Response headers are in either
96672// *Operation.ServerResponse.Header or (if a response was returned at
96673// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
96674// to check whether the returned error was because
96675// http.StatusNotModified was returned.
96676func (c *InstancesSuspendCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
96677	gensupport.SetOptions(c.urlParams_, opts...)
96678	res, err := c.doRequest("json")
96679	if res != nil && res.StatusCode == http.StatusNotModified {
96680		if res.Body != nil {
96681			res.Body.Close()
96682		}
96683		return nil, &googleapi.Error{
96684			Code:   res.StatusCode,
96685			Header: res.Header,
96686		}
96687	}
96688	if err != nil {
96689		return nil, err
96690	}
96691	defer googleapi.CloseBody(res)
96692	if err := googleapi.CheckResponse(res); err != nil {
96693		return nil, err
96694	}
96695	ret := &Operation{
96696		ServerResponse: googleapi.ServerResponse{
96697			Header:         res.Header,
96698			HTTPStatusCode: res.StatusCode,
96699		},
96700	}
96701	target := &ret
96702	if err := gensupport.DecodeResponse(target, res); err != nil {
96703		return nil, err
96704	}
96705	return ret, nil
96706	// {
96707	//   "description": "This method suspends a running instance, saving its state to persistent storage, and allows you to resume the instance at a later time. Suspended instances incur reduced per-minute, virtual machine usage charges while they are suspended. Any resources the virtual machine is using, such as persistent disks and static IP addresses, will continue to be charged until they are deleted.",
96708	//   "httpMethod": "POST",
96709	//   "id": "compute.instances.suspend",
96710	//   "parameterOrder": [
96711	//     "project",
96712	//     "zone",
96713	//     "instance"
96714	//   ],
96715	//   "parameters": {
96716	//     "discardLocalSsd": {
96717	//       "description": "If true, discard the contents of any attached localSSD partitions. Default value is false (== preserve localSSD data).",
96718	//       "location": "query",
96719	//       "type": "boolean"
96720	//     },
96721	//     "instance": {
96722	//       "description": "Name of the instance resource to suspend.",
96723	//       "location": "path",
96724	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
96725	//       "required": true,
96726	//       "type": "string"
96727	//     },
96728	//     "project": {
96729	//       "description": "Project ID for this request.",
96730	//       "location": "path",
96731	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96732	//       "required": true,
96733	//       "type": "string"
96734	//     },
96735	//     "requestId": {
96736	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
96737	//       "location": "query",
96738	//       "type": "string"
96739	//     },
96740	//     "zone": {
96741	//       "description": "The name of the zone for this request.",
96742	//       "location": "path",
96743	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
96744	//       "required": true,
96745	//       "type": "string"
96746	//     }
96747	//   },
96748	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/suspend",
96749	//   "response": {
96750	//     "$ref": "Operation"
96751	//   },
96752	//   "scopes": [
96753	//     "https://www.googleapis.com/auth/cloud-platform",
96754	//     "https://www.googleapis.com/auth/compute"
96755	//   ]
96756	// }
96757
96758}
96759
96760// method id "compute.instances.testIamPermissions":
96761
96762type InstancesTestIamPermissionsCall struct {
96763	s                      *Service
96764	project                string
96765	zone                   string
96766	resource               string
96767	testpermissionsrequest *TestPermissionsRequest
96768	urlParams_             gensupport.URLParams
96769	ctx_                   context.Context
96770	header_                http.Header
96771}
96772
96773// TestIamPermissions: Returns permissions that a caller has on the
96774// specified resource.
96775func (r *InstancesService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *InstancesTestIamPermissionsCall {
96776	c := &InstancesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96777	c.project = project
96778	c.zone = zone
96779	c.resource = resource
96780	c.testpermissionsrequest = testpermissionsrequest
96781	return c
96782}
96783
96784// Fields allows partial responses to be retrieved. See
96785// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96786// for more information.
96787func (c *InstancesTestIamPermissionsCall) Fields(s ...googleapi.Field) *InstancesTestIamPermissionsCall {
96788	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96789	return c
96790}
96791
96792// Context sets the context to be used in this call's Do method. Any
96793// pending HTTP request will be aborted if the provided context is
96794// canceled.
96795func (c *InstancesTestIamPermissionsCall) Context(ctx context.Context) *InstancesTestIamPermissionsCall {
96796	c.ctx_ = ctx
96797	return c
96798}
96799
96800// Header returns an http.Header that can be modified by the caller to
96801// add HTTP headers to the request.
96802func (c *InstancesTestIamPermissionsCall) Header() http.Header {
96803	if c.header_ == nil {
96804		c.header_ = make(http.Header)
96805	}
96806	return c.header_
96807}
96808
96809func (c *InstancesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
96810	reqHeaders := make(http.Header)
96811	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
96812	for k, v := range c.header_ {
96813		reqHeaders[k] = v
96814	}
96815	reqHeaders.Set("User-Agent", c.s.userAgent())
96816	var body io.Reader = nil
96817	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
96818	if err != nil {
96819		return nil, err
96820	}
96821	reqHeaders.Set("Content-Type", "application/json")
96822	c.urlParams_.Set("alt", alt)
96823	c.urlParams_.Set("prettyPrint", "false")
96824	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{resource}/testIamPermissions")
96825	urls += "?" + c.urlParams_.Encode()
96826	req, err := http.NewRequest("POST", urls, body)
96827	if err != nil {
96828		return nil, err
96829	}
96830	req.Header = reqHeaders
96831	googleapi.Expand(req.URL, map[string]string{
96832		"project":  c.project,
96833		"zone":     c.zone,
96834		"resource": c.resource,
96835	})
96836	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96837}
96838
96839// Do executes the "compute.instances.testIamPermissions" call.
96840// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
96841// non-2xx status code is an error. Response headers are in either
96842// *TestPermissionsResponse.ServerResponse.Header or (if a response was
96843// returned at all) in error.(*googleapi.Error).Header. Use
96844// googleapi.IsNotModified to check whether the returned error was
96845// because http.StatusNotModified was returned.
96846func (c *InstancesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
96847	gensupport.SetOptions(c.urlParams_, opts...)
96848	res, err := c.doRequest("json")
96849	if res != nil && res.StatusCode == http.StatusNotModified {
96850		if res.Body != nil {
96851			res.Body.Close()
96852		}
96853		return nil, &googleapi.Error{
96854			Code:   res.StatusCode,
96855			Header: res.Header,
96856		}
96857	}
96858	if err != nil {
96859		return nil, err
96860	}
96861	defer googleapi.CloseBody(res)
96862	if err := googleapi.CheckResponse(res); err != nil {
96863		return nil, err
96864	}
96865	ret := &TestPermissionsResponse{
96866		ServerResponse: googleapi.ServerResponse{
96867			Header:         res.Header,
96868			HTTPStatusCode: res.StatusCode,
96869		},
96870	}
96871	target := &ret
96872	if err := gensupport.DecodeResponse(target, res); err != nil {
96873		return nil, err
96874	}
96875	return ret, nil
96876	// {
96877	//   "description": "Returns permissions that a caller has on the specified resource.",
96878	//   "httpMethod": "POST",
96879	//   "id": "compute.instances.testIamPermissions",
96880	//   "parameterOrder": [
96881	//     "project",
96882	//     "zone",
96883	//     "resource"
96884	//   ],
96885	//   "parameters": {
96886	//     "project": {
96887	//       "description": "Project ID for this request.",
96888	//       "location": "path",
96889	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96890	//       "required": true,
96891	//       "type": "string"
96892	//     },
96893	//     "resource": {
96894	//       "description": "Name or id of the resource for this request.",
96895	//       "location": "path",
96896	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
96897	//       "required": true,
96898	//       "type": "string"
96899	//     },
96900	//     "zone": {
96901	//       "description": "The name of the zone for this request.",
96902	//       "location": "path",
96903	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
96904	//       "required": true,
96905	//       "type": "string"
96906	//     }
96907	//   },
96908	//   "path": "projects/{project}/zones/{zone}/instances/{resource}/testIamPermissions",
96909	//   "request": {
96910	//     "$ref": "TestPermissionsRequest"
96911	//   },
96912	//   "response": {
96913	//     "$ref": "TestPermissionsResponse"
96914	//   },
96915	//   "scopes": [
96916	//     "https://www.googleapis.com/auth/cloud-platform",
96917	//     "https://www.googleapis.com/auth/compute",
96918	//     "https://www.googleapis.com/auth/compute.readonly"
96919	//   ]
96920	// }
96921
96922}
96923
96924// method id "compute.instances.update":
96925
96926type InstancesUpdateCall struct {
96927	s          *Service
96928	project    string
96929	zone       string
96930	instance   string
96931	instance2  *Instance
96932	urlParams_ gensupport.URLParams
96933	ctx_       context.Context
96934	header_    http.Header
96935}
96936
96937// Update: Updates an instance only if the necessary resources are
96938// available. This method can update only a specific set of instance
96939// properties. See  Updating a running instance for a list of updatable
96940// instance properties.
96941func (r *InstancesService) Update(project string, zone string, instance string, instance2 *Instance) *InstancesUpdateCall {
96942	c := &InstancesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96943	c.project = project
96944	c.zone = zone
96945	c.instance = instance
96946	c.instance2 = instance2
96947	return c
96948}
96949
96950// MinimalAction sets the optional parameter "minimalAction": Specifies
96951// the action to take when updating an instance even if the updated
96952// properties do not require it. If not specified, then Compute Engine
96953// acts based on the minimum action that the updated properties require.
96954//
96955// Possible values:
96956//   "INVALID"
96957//   "NO_EFFECT"
96958//   "REFRESH"
96959//   "RESTART"
96960func (c *InstancesUpdateCall) MinimalAction(minimalAction string) *InstancesUpdateCall {
96961	c.urlParams_.Set("minimalAction", minimalAction)
96962	return c
96963}
96964
96965// MostDisruptiveAllowedAction sets the optional parameter
96966// "mostDisruptiveAllowedAction": Specifies the most disruptive action
96967// that can be taken on the instance as part of the update. Compute
96968// Engine returns an error if the instance properties require a more
96969// disruptive action as part of the instance update. Valid options from
96970// lowest to highest are NO_EFFECT, REFRESH, and RESTART.
96971//
96972// Possible values:
96973//   "INVALID"
96974//   "NO_EFFECT"
96975//   "REFRESH"
96976//   "RESTART"
96977func (c *InstancesUpdateCall) MostDisruptiveAllowedAction(mostDisruptiveAllowedAction string) *InstancesUpdateCall {
96978	c.urlParams_.Set("mostDisruptiveAllowedAction", mostDisruptiveAllowedAction)
96979	return c
96980}
96981
96982// RequestId sets the optional parameter "requestId": An optional
96983// request ID to identify requests. Specify a unique request ID so that
96984// if you must retry your request, the server will know to ignore the
96985// request if it has already been completed.
96986//
96987// For example, consider a situation where you make an initial request
96988// and the request times out. If you make the request again with the
96989// same request ID, the server can check if original operation with the
96990// same request ID was received, and if so, will ignore the second
96991// request. This prevents clients from accidentally creating duplicate
96992// commitments.
96993//
96994// The request ID must be a valid UUID with the exception that zero UUID
96995// is not supported (00000000-0000-0000-0000-000000000000).
96996func (c *InstancesUpdateCall) RequestId(requestId string) *InstancesUpdateCall {
96997	c.urlParams_.Set("requestId", requestId)
96998	return c
96999}
97000
97001// Fields allows partial responses to be retrieved. See
97002// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97003// for more information.
97004func (c *InstancesUpdateCall) Fields(s ...googleapi.Field) *InstancesUpdateCall {
97005	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97006	return c
97007}
97008
97009// Context sets the context to be used in this call's Do method. Any
97010// pending HTTP request will be aborted if the provided context is
97011// canceled.
97012func (c *InstancesUpdateCall) Context(ctx context.Context) *InstancesUpdateCall {
97013	c.ctx_ = ctx
97014	return c
97015}
97016
97017// Header returns an http.Header that can be modified by the caller to
97018// add HTTP headers to the request.
97019func (c *InstancesUpdateCall) Header() http.Header {
97020	if c.header_ == nil {
97021		c.header_ = make(http.Header)
97022	}
97023	return c.header_
97024}
97025
97026func (c *InstancesUpdateCall) doRequest(alt string) (*http.Response, error) {
97027	reqHeaders := make(http.Header)
97028	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
97029	for k, v := range c.header_ {
97030		reqHeaders[k] = v
97031	}
97032	reqHeaders.Set("User-Agent", c.s.userAgent())
97033	var body io.Reader = nil
97034	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instance2)
97035	if err != nil {
97036		return nil, err
97037	}
97038	reqHeaders.Set("Content-Type", "application/json")
97039	c.urlParams_.Set("alt", alt)
97040	c.urlParams_.Set("prettyPrint", "false")
97041	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}")
97042	urls += "?" + c.urlParams_.Encode()
97043	req, err := http.NewRequest("PUT", urls, body)
97044	if err != nil {
97045		return nil, err
97046	}
97047	req.Header = reqHeaders
97048	googleapi.Expand(req.URL, map[string]string{
97049		"project":  c.project,
97050		"zone":     c.zone,
97051		"instance": c.instance,
97052	})
97053	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97054}
97055
97056// Do executes the "compute.instances.update" call.
97057// Exactly one of *Operation or error will be non-nil. Any non-2xx
97058// status code is an error. Response headers are in either
97059// *Operation.ServerResponse.Header or (if a response was returned at
97060// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
97061// to check whether the returned error was because
97062// http.StatusNotModified was returned.
97063func (c *InstancesUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
97064	gensupport.SetOptions(c.urlParams_, opts...)
97065	res, err := c.doRequest("json")
97066	if res != nil && res.StatusCode == http.StatusNotModified {
97067		if res.Body != nil {
97068			res.Body.Close()
97069		}
97070		return nil, &googleapi.Error{
97071			Code:   res.StatusCode,
97072			Header: res.Header,
97073		}
97074	}
97075	if err != nil {
97076		return nil, err
97077	}
97078	defer googleapi.CloseBody(res)
97079	if err := googleapi.CheckResponse(res); err != nil {
97080		return nil, err
97081	}
97082	ret := &Operation{
97083		ServerResponse: googleapi.ServerResponse{
97084			Header:         res.Header,
97085			HTTPStatusCode: res.StatusCode,
97086		},
97087	}
97088	target := &ret
97089	if err := gensupport.DecodeResponse(target, res); err != nil {
97090		return nil, err
97091	}
97092	return ret, nil
97093	// {
97094	//   "description": "Updates an instance only if the necessary resources are available. This method can update only a specific set of instance properties. See  Updating a running instance for a list of updatable instance properties.",
97095	//   "httpMethod": "PUT",
97096	//   "id": "compute.instances.update",
97097	//   "parameterOrder": [
97098	//     "project",
97099	//     "zone",
97100	//     "instance"
97101	//   ],
97102	//   "parameters": {
97103	//     "instance": {
97104	//       "description": "Name of the instance resource to update.",
97105	//       "location": "path",
97106	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
97107	//       "required": true,
97108	//       "type": "string"
97109	//     },
97110	//     "minimalAction": {
97111	//       "description": "Specifies the action to take when updating an instance even if the updated properties do not require it. If not specified, then Compute Engine acts based on the minimum action that the updated properties require.",
97112	//       "enum": [
97113	//         "INVALID",
97114	//         "NO_EFFECT",
97115	//         "REFRESH",
97116	//         "RESTART"
97117	//       ],
97118	//       "enumDescriptions": [
97119	//         "",
97120	//         "",
97121	//         "",
97122	//         ""
97123	//       ],
97124	//       "location": "query",
97125	//       "type": "string"
97126	//     },
97127	//     "mostDisruptiveAllowedAction": {
97128	//       "description": "Specifies the most disruptive action that can be taken on the instance as part of the update. Compute Engine returns an error if the instance properties require a more disruptive action as part of the instance update. Valid options from lowest to highest are NO_EFFECT, REFRESH, and RESTART.",
97129	//       "enum": [
97130	//         "INVALID",
97131	//         "NO_EFFECT",
97132	//         "REFRESH",
97133	//         "RESTART"
97134	//       ],
97135	//       "enumDescriptions": [
97136	//         "",
97137	//         "",
97138	//         "",
97139	//         ""
97140	//       ],
97141	//       "location": "query",
97142	//       "type": "string"
97143	//     },
97144	//     "project": {
97145	//       "description": "Project ID for this request.",
97146	//       "location": "path",
97147	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97148	//       "required": true,
97149	//       "type": "string"
97150	//     },
97151	//     "requestId": {
97152	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
97153	//       "location": "query",
97154	//       "type": "string"
97155	//     },
97156	//     "zone": {
97157	//       "description": "The name of the zone for this request.",
97158	//       "location": "path",
97159	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
97160	//       "required": true,
97161	//       "type": "string"
97162	//     }
97163	//   },
97164	//   "path": "projects/{project}/zones/{zone}/instances/{instance}",
97165	//   "request": {
97166	//     "$ref": "Instance"
97167	//   },
97168	//   "response": {
97169	//     "$ref": "Operation"
97170	//   },
97171	//   "scopes": [
97172	//     "https://www.googleapis.com/auth/cloud-platform",
97173	//     "https://www.googleapis.com/auth/compute"
97174	//   ]
97175	// }
97176
97177}
97178
97179// method id "compute.instances.updateAccessConfig":
97180
97181type InstancesUpdateAccessConfigCall struct {
97182	s            *Service
97183	project      string
97184	zone         string
97185	instance     string
97186	accessconfig *AccessConfig
97187	urlParams_   gensupport.URLParams
97188	ctx_         context.Context
97189	header_      http.Header
97190}
97191
97192// UpdateAccessConfig: Updates the specified access config from an
97193// instance's network interface with the data included in the request.
97194// This method supports PATCH semantics and uses the JSON merge patch
97195// format and processing rules.
97196func (r *InstancesService) UpdateAccessConfig(project string, zone string, instance string, networkInterface string, accessconfig *AccessConfig) *InstancesUpdateAccessConfigCall {
97197	c := &InstancesUpdateAccessConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97198	c.project = project
97199	c.zone = zone
97200	c.instance = instance
97201	c.urlParams_.Set("networkInterface", networkInterface)
97202	c.accessconfig = accessconfig
97203	return c
97204}
97205
97206// RequestId sets the optional parameter "requestId": An optional
97207// request ID to identify requests. Specify a unique request ID so that
97208// if you must retry your request, the server will know to ignore the
97209// request if it has already been completed.
97210//
97211// For example, consider a situation where you make an initial request
97212// and the request times out. If you make the request again with the
97213// same request ID, the server can check if original operation with the
97214// same request ID was received, and if so, will ignore the second
97215// request. This prevents clients from accidentally creating duplicate
97216// commitments.
97217//
97218// The request ID must be a valid UUID with the exception that zero UUID
97219// is not supported (00000000-0000-0000-0000-000000000000).
97220func (c *InstancesUpdateAccessConfigCall) RequestId(requestId string) *InstancesUpdateAccessConfigCall {
97221	c.urlParams_.Set("requestId", requestId)
97222	return c
97223}
97224
97225// Fields allows partial responses to be retrieved. See
97226// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97227// for more information.
97228func (c *InstancesUpdateAccessConfigCall) Fields(s ...googleapi.Field) *InstancesUpdateAccessConfigCall {
97229	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97230	return c
97231}
97232
97233// Context sets the context to be used in this call's Do method. Any
97234// pending HTTP request will be aborted if the provided context is
97235// canceled.
97236func (c *InstancesUpdateAccessConfigCall) Context(ctx context.Context) *InstancesUpdateAccessConfigCall {
97237	c.ctx_ = ctx
97238	return c
97239}
97240
97241// Header returns an http.Header that can be modified by the caller to
97242// add HTTP headers to the request.
97243func (c *InstancesUpdateAccessConfigCall) Header() http.Header {
97244	if c.header_ == nil {
97245		c.header_ = make(http.Header)
97246	}
97247	return c.header_
97248}
97249
97250func (c *InstancesUpdateAccessConfigCall) doRequest(alt string) (*http.Response, error) {
97251	reqHeaders := make(http.Header)
97252	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
97253	for k, v := range c.header_ {
97254		reqHeaders[k] = v
97255	}
97256	reqHeaders.Set("User-Agent", c.s.userAgent())
97257	var body io.Reader = nil
97258	body, err := googleapi.WithoutDataWrapper.JSONReader(c.accessconfig)
97259	if err != nil {
97260		return nil, err
97261	}
97262	reqHeaders.Set("Content-Type", "application/json")
97263	c.urlParams_.Set("alt", alt)
97264	c.urlParams_.Set("prettyPrint", "false")
97265	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/updateAccessConfig")
97266	urls += "?" + c.urlParams_.Encode()
97267	req, err := http.NewRequest("POST", urls, body)
97268	if err != nil {
97269		return nil, err
97270	}
97271	req.Header = reqHeaders
97272	googleapi.Expand(req.URL, map[string]string{
97273		"project":  c.project,
97274		"zone":     c.zone,
97275		"instance": c.instance,
97276	})
97277	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97278}
97279
97280// Do executes the "compute.instances.updateAccessConfig" call.
97281// Exactly one of *Operation or error will be non-nil. Any non-2xx
97282// status code is an error. Response headers are in either
97283// *Operation.ServerResponse.Header or (if a response was returned at
97284// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
97285// to check whether the returned error was because
97286// http.StatusNotModified was returned.
97287func (c *InstancesUpdateAccessConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
97288	gensupport.SetOptions(c.urlParams_, opts...)
97289	res, err := c.doRequest("json")
97290	if res != nil && res.StatusCode == http.StatusNotModified {
97291		if res.Body != nil {
97292			res.Body.Close()
97293		}
97294		return nil, &googleapi.Error{
97295			Code:   res.StatusCode,
97296			Header: res.Header,
97297		}
97298	}
97299	if err != nil {
97300		return nil, err
97301	}
97302	defer googleapi.CloseBody(res)
97303	if err := googleapi.CheckResponse(res); err != nil {
97304		return nil, err
97305	}
97306	ret := &Operation{
97307		ServerResponse: googleapi.ServerResponse{
97308			Header:         res.Header,
97309			HTTPStatusCode: res.StatusCode,
97310		},
97311	}
97312	target := &ret
97313	if err := gensupport.DecodeResponse(target, res); err != nil {
97314		return nil, err
97315	}
97316	return ret, nil
97317	// {
97318	//   "description": "Updates the specified access config from an instance's network interface with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.",
97319	//   "httpMethod": "POST",
97320	//   "id": "compute.instances.updateAccessConfig",
97321	//   "parameterOrder": [
97322	//     "project",
97323	//     "zone",
97324	//     "instance",
97325	//     "networkInterface"
97326	//   ],
97327	//   "parameters": {
97328	//     "instance": {
97329	//       "description": "The instance name for this request.",
97330	//       "location": "path",
97331	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
97332	//       "required": true,
97333	//       "type": "string"
97334	//     },
97335	//     "networkInterface": {
97336	//       "description": "The name of the network interface where the access config is attached.",
97337	//       "location": "query",
97338	//       "required": true,
97339	//       "type": "string"
97340	//     },
97341	//     "project": {
97342	//       "description": "Project ID for this request.",
97343	//       "location": "path",
97344	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97345	//       "required": true,
97346	//       "type": "string"
97347	//     },
97348	//     "requestId": {
97349	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
97350	//       "location": "query",
97351	//       "type": "string"
97352	//     },
97353	//     "zone": {
97354	//       "description": "The name of the zone for this request.",
97355	//       "location": "path",
97356	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
97357	//       "required": true,
97358	//       "type": "string"
97359	//     }
97360	//   },
97361	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/updateAccessConfig",
97362	//   "request": {
97363	//     "$ref": "AccessConfig"
97364	//   },
97365	//   "response": {
97366	//     "$ref": "Operation"
97367	//   },
97368	//   "scopes": [
97369	//     "https://www.googleapis.com/auth/cloud-platform",
97370	//     "https://www.googleapis.com/auth/compute"
97371	//   ]
97372	// }
97373
97374}
97375
97376// method id "compute.instances.updateDisplayDevice":
97377
97378type InstancesUpdateDisplayDeviceCall struct {
97379	s             *Service
97380	project       string
97381	zone          string
97382	instance      string
97383	displaydevice *DisplayDevice
97384	urlParams_    gensupport.URLParams
97385	ctx_          context.Context
97386	header_       http.Header
97387}
97388
97389// UpdateDisplayDevice: Updates the Display config for a VM instance.
97390// You can only use this method on a stopped VM instance. This method
97391// supports PATCH semantics and uses the JSON merge patch format and
97392// processing rules.
97393func (r *InstancesService) UpdateDisplayDevice(project string, zone string, instance string, displaydevice *DisplayDevice) *InstancesUpdateDisplayDeviceCall {
97394	c := &InstancesUpdateDisplayDeviceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97395	c.project = project
97396	c.zone = zone
97397	c.instance = instance
97398	c.displaydevice = displaydevice
97399	return c
97400}
97401
97402// RequestId sets the optional parameter "requestId": An optional
97403// request ID to identify requests. Specify a unique request ID so that
97404// if you must retry your request, the server will know to ignore the
97405// request if it has already been completed.
97406//
97407// For example, consider a situation where you make an initial request
97408// and the request times out. If you make the request again with the
97409// same request ID, the server can check if original operation with the
97410// same request ID was received, and if so, will ignore the second
97411// request. This prevents clients from accidentally creating duplicate
97412// commitments.
97413//
97414// The request ID must be a valid UUID with the exception that zero UUID
97415// is not supported (00000000-0000-0000-0000-000000000000).
97416func (c *InstancesUpdateDisplayDeviceCall) RequestId(requestId string) *InstancesUpdateDisplayDeviceCall {
97417	c.urlParams_.Set("requestId", requestId)
97418	return c
97419}
97420
97421// Fields allows partial responses to be retrieved. See
97422// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97423// for more information.
97424func (c *InstancesUpdateDisplayDeviceCall) Fields(s ...googleapi.Field) *InstancesUpdateDisplayDeviceCall {
97425	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97426	return c
97427}
97428
97429// Context sets the context to be used in this call's Do method. Any
97430// pending HTTP request will be aborted if the provided context is
97431// canceled.
97432func (c *InstancesUpdateDisplayDeviceCall) Context(ctx context.Context) *InstancesUpdateDisplayDeviceCall {
97433	c.ctx_ = ctx
97434	return c
97435}
97436
97437// Header returns an http.Header that can be modified by the caller to
97438// add HTTP headers to the request.
97439func (c *InstancesUpdateDisplayDeviceCall) Header() http.Header {
97440	if c.header_ == nil {
97441		c.header_ = make(http.Header)
97442	}
97443	return c.header_
97444}
97445
97446func (c *InstancesUpdateDisplayDeviceCall) doRequest(alt string) (*http.Response, error) {
97447	reqHeaders := make(http.Header)
97448	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
97449	for k, v := range c.header_ {
97450		reqHeaders[k] = v
97451	}
97452	reqHeaders.Set("User-Agent", c.s.userAgent())
97453	var body io.Reader = nil
97454	body, err := googleapi.WithoutDataWrapper.JSONReader(c.displaydevice)
97455	if err != nil {
97456		return nil, err
97457	}
97458	reqHeaders.Set("Content-Type", "application/json")
97459	c.urlParams_.Set("alt", alt)
97460	c.urlParams_.Set("prettyPrint", "false")
97461	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/updateDisplayDevice")
97462	urls += "?" + c.urlParams_.Encode()
97463	req, err := http.NewRequest("PATCH", urls, body)
97464	if err != nil {
97465		return nil, err
97466	}
97467	req.Header = reqHeaders
97468	googleapi.Expand(req.URL, map[string]string{
97469		"project":  c.project,
97470		"zone":     c.zone,
97471		"instance": c.instance,
97472	})
97473	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97474}
97475
97476// Do executes the "compute.instances.updateDisplayDevice" call.
97477// Exactly one of *Operation or error will be non-nil. Any non-2xx
97478// status code is an error. Response headers are in either
97479// *Operation.ServerResponse.Header or (if a response was returned at
97480// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
97481// to check whether the returned error was because
97482// http.StatusNotModified was returned.
97483func (c *InstancesUpdateDisplayDeviceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
97484	gensupport.SetOptions(c.urlParams_, opts...)
97485	res, err := c.doRequest("json")
97486	if res != nil && res.StatusCode == http.StatusNotModified {
97487		if res.Body != nil {
97488			res.Body.Close()
97489		}
97490		return nil, &googleapi.Error{
97491			Code:   res.StatusCode,
97492			Header: res.Header,
97493		}
97494	}
97495	if err != nil {
97496		return nil, err
97497	}
97498	defer googleapi.CloseBody(res)
97499	if err := googleapi.CheckResponse(res); err != nil {
97500		return nil, err
97501	}
97502	ret := &Operation{
97503		ServerResponse: googleapi.ServerResponse{
97504			Header:         res.Header,
97505			HTTPStatusCode: res.StatusCode,
97506		},
97507	}
97508	target := &ret
97509	if err := gensupport.DecodeResponse(target, res); err != nil {
97510		return nil, err
97511	}
97512	return ret, nil
97513	// {
97514	//   "description": "Updates the Display config for a VM instance. You can only use this method on a stopped VM instance. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.",
97515	//   "httpMethod": "PATCH",
97516	//   "id": "compute.instances.updateDisplayDevice",
97517	//   "parameterOrder": [
97518	//     "project",
97519	//     "zone",
97520	//     "instance"
97521	//   ],
97522	//   "parameters": {
97523	//     "instance": {
97524	//       "description": "Name of the instance scoping this request.",
97525	//       "location": "path",
97526	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
97527	//       "required": true,
97528	//       "type": "string"
97529	//     },
97530	//     "project": {
97531	//       "description": "Project ID for this request.",
97532	//       "location": "path",
97533	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97534	//       "required": true,
97535	//       "type": "string"
97536	//     },
97537	//     "requestId": {
97538	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
97539	//       "location": "query",
97540	//       "type": "string"
97541	//     },
97542	//     "zone": {
97543	//       "description": "The name of the zone for this request.",
97544	//       "location": "path",
97545	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
97546	//       "required": true,
97547	//       "type": "string"
97548	//     }
97549	//   },
97550	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/updateDisplayDevice",
97551	//   "request": {
97552	//     "$ref": "DisplayDevice"
97553	//   },
97554	//   "response": {
97555	//     "$ref": "Operation"
97556	//   },
97557	//   "scopes": [
97558	//     "https://www.googleapis.com/auth/cloud-platform",
97559	//     "https://www.googleapis.com/auth/compute"
97560	//   ]
97561	// }
97562
97563}
97564
97565// method id "compute.instances.updateNetworkInterface":
97566
97567type InstancesUpdateNetworkInterfaceCall struct {
97568	s                *Service
97569	project          string
97570	zone             string
97571	instance         string
97572	networkinterface *NetworkInterface
97573	urlParams_       gensupport.URLParams
97574	ctx_             context.Context
97575	header_          http.Header
97576}
97577
97578// UpdateNetworkInterface: Updates an instance's network interface. This
97579// method can only update an interface's alias IP range and attached
97580// network. See Modifying alias IP ranges for an existing instance for
97581// instructions on changing alias IP ranges. See Migrating a VM between
97582// networks for instructions on migrating an interface. This method
97583// follows PATCH semantics.
97584func (r *InstancesService) UpdateNetworkInterface(project string, zone string, instance string, networkInterface string, networkinterface *NetworkInterface) *InstancesUpdateNetworkInterfaceCall {
97585	c := &InstancesUpdateNetworkInterfaceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97586	c.project = project
97587	c.zone = zone
97588	c.instance = instance
97589	c.urlParams_.Set("networkInterface", networkInterface)
97590	c.networkinterface = networkinterface
97591	return c
97592}
97593
97594// RequestId sets the optional parameter "requestId": An optional
97595// request ID to identify requests. Specify a unique request ID so that
97596// if you must retry your request, the server will know to ignore the
97597// request if it has already been completed.
97598//
97599// For example, consider a situation where you make an initial request
97600// and the request times out. If you make the request again with the
97601// same request ID, the server can check if original operation with the
97602// same request ID was received, and if so, will ignore the second
97603// request. This prevents clients from accidentally creating duplicate
97604// commitments.
97605//
97606// The request ID must be a valid UUID with the exception that zero UUID
97607// is not supported (00000000-0000-0000-0000-000000000000).
97608func (c *InstancesUpdateNetworkInterfaceCall) RequestId(requestId string) *InstancesUpdateNetworkInterfaceCall {
97609	c.urlParams_.Set("requestId", requestId)
97610	return c
97611}
97612
97613// Fields allows partial responses to be retrieved. See
97614// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97615// for more information.
97616func (c *InstancesUpdateNetworkInterfaceCall) Fields(s ...googleapi.Field) *InstancesUpdateNetworkInterfaceCall {
97617	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97618	return c
97619}
97620
97621// Context sets the context to be used in this call's Do method. Any
97622// pending HTTP request will be aborted if the provided context is
97623// canceled.
97624func (c *InstancesUpdateNetworkInterfaceCall) Context(ctx context.Context) *InstancesUpdateNetworkInterfaceCall {
97625	c.ctx_ = ctx
97626	return c
97627}
97628
97629// Header returns an http.Header that can be modified by the caller to
97630// add HTTP headers to the request.
97631func (c *InstancesUpdateNetworkInterfaceCall) Header() http.Header {
97632	if c.header_ == nil {
97633		c.header_ = make(http.Header)
97634	}
97635	return c.header_
97636}
97637
97638func (c *InstancesUpdateNetworkInterfaceCall) doRequest(alt string) (*http.Response, error) {
97639	reqHeaders := make(http.Header)
97640	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
97641	for k, v := range c.header_ {
97642		reqHeaders[k] = v
97643	}
97644	reqHeaders.Set("User-Agent", c.s.userAgent())
97645	var body io.Reader = nil
97646	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkinterface)
97647	if err != nil {
97648		return nil, err
97649	}
97650	reqHeaders.Set("Content-Type", "application/json")
97651	c.urlParams_.Set("alt", alt)
97652	c.urlParams_.Set("prettyPrint", "false")
97653	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/updateNetworkInterface")
97654	urls += "?" + c.urlParams_.Encode()
97655	req, err := http.NewRequest("PATCH", urls, body)
97656	if err != nil {
97657		return nil, err
97658	}
97659	req.Header = reqHeaders
97660	googleapi.Expand(req.URL, map[string]string{
97661		"project":  c.project,
97662		"zone":     c.zone,
97663		"instance": c.instance,
97664	})
97665	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97666}
97667
97668// Do executes the "compute.instances.updateNetworkInterface" call.
97669// Exactly one of *Operation or error will be non-nil. Any non-2xx
97670// status code is an error. Response headers are in either
97671// *Operation.ServerResponse.Header or (if a response was returned at
97672// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
97673// to check whether the returned error was because
97674// http.StatusNotModified was returned.
97675func (c *InstancesUpdateNetworkInterfaceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
97676	gensupport.SetOptions(c.urlParams_, opts...)
97677	res, err := c.doRequest("json")
97678	if res != nil && res.StatusCode == http.StatusNotModified {
97679		if res.Body != nil {
97680			res.Body.Close()
97681		}
97682		return nil, &googleapi.Error{
97683			Code:   res.StatusCode,
97684			Header: res.Header,
97685		}
97686	}
97687	if err != nil {
97688		return nil, err
97689	}
97690	defer googleapi.CloseBody(res)
97691	if err := googleapi.CheckResponse(res); err != nil {
97692		return nil, err
97693	}
97694	ret := &Operation{
97695		ServerResponse: googleapi.ServerResponse{
97696			Header:         res.Header,
97697			HTTPStatusCode: res.StatusCode,
97698		},
97699	}
97700	target := &ret
97701	if err := gensupport.DecodeResponse(target, res); err != nil {
97702		return nil, err
97703	}
97704	return ret, nil
97705	// {
97706	//   "description": "Updates an instance's network interface. This method can only update an interface's alias IP range and attached network. See Modifying alias IP ranges for an existing instance for instructions on changing alias IP ranges. See Migrating a VM between networks for instructions on migrating an interface. This method follows PATCH semantics.",
97707	//   "httpMethod": "PATCH",
97708	//   "id": "compute.instances.updateNetworkInterface",
97709	//   "parameterOrder": [
97710	//     "project",
97711	//     "zone",
97712	//     "instance",
97713	//     "networkInterface"
97714	//   ],
97715	//   "parameters": {
97716	//     "instance": {
97717	//       "description": "The instance name for this request.",
97718	//       "location": "path",
97719	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
97720	//       "required": true,
97721	//       "type": "string"
97722	//     },
97723	//     "networkInterface": {
97724	//       "description": "The name of the network interface to update.",
97725	//       "location": "query",
97726	//       "required": true,
97727	//       "type": "string"
97728	//     },
97729	//     "project": {
97730	//       "description": "Project ID for this request.",
97731	//       "location": "path",
97732	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97733	//       "required": true,
97734	//       "type": "string"
97735	//     },
97736	//     "requestId": {
97737	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
97738	//       "location": "query",
97739	//       "type": "string"
97740	//     },
97741	//     "zone": {
97742	//       "description": "The name of the zone for this request.",
97743	//       "location": "path",
97744	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
97745	//       "required": true,
97746	//       "type": "string"
97747	//     }
97748	//   },
97749	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/updateNetworkInterface",
97750	//   "request": {
97751	//     "$ref": "NetworkInterface"
97752	//   },
97753	//   "response": {
97754	//     "$ref": "Operation"
97755	//   },
97756	//   "scopes": [
97757	//     "https://www.googleapis.com/auth/cloud-platform",
97758	//     "https://www.googleapis.com/auth/compute"
97759	//   ]
97760	// }
97761
97762}
97763
97764// method id "compute.instances.updateShieldedInstanceConfig":
97765
97766type InstancesUpdateShieldedInstanceConfigCall struct {
97767	s                      *Service
97768	project                string
97769	zone                   string
97770	instance               string
97771	shieldedinstanceconfig *ShieldedInstanceConfig
97772	urlParams_             gensupport.URLParams
97773	ctx_                   context.Context
97774	header_                http.Header
97775}
97776
97777// UpdateShieldedInstanceConfig: Updates the Shielded Instance config
97778// for an instance. You can only use this method on a stopped instance.
97779// This method supports PATCH semantics and uses the JSON merge patch
97780// format and processing rules.
97781func (r *InstancesService) UpdateShieldedInstanceConfig(project string, zone string, instance string, shieldedinstanceconfig *ShieldedInstanceConfig) *InstancesUpdateShieldedInstanceConfigCall {
97782	c := &InstancesUpdateShieldedInstanceConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97783	c.project = project
97784	c.zone = zone
97785	c.instance = instance
97786	c.shieldedinstanceconfig = shieldedinstanceconfig
97787	return c
97788}
97789
97790// RequestId sets the optional parameter "requestId": An optional
97791// request ID to identify requests. Specify a unique request ID so that
97792// if you must retry your request, the server will know to ignore the
97793// request if it has already been completed.
97794//
97795// For example, consider a situation where you make an initial request
97796// and the request times out. If you make the request again with the
97797// same request ID, the server can check if original operation with the
97798// same request ID was received, and if so, will ignore the second
97799// request. This prevents clients from accidentally creating duplicate
97800// commitments.
97801//
97802// The request ID must be a valid UUID with the exception that zero UUID
97803// is not supported (00000000-0000-0000-0000-000000000000).
97804func (c *InstancesUpdateShieldedInstanceConfigCall) RequestId(requestId string) *InstancesUpdateShieldedInstanceConfigCall {
97805	c.urlParams_.Set("requestId", requestId)
97806	return c
97807}
97808
97809// Fields allows partial responses to be retrieved. See
97810// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97811// for more information.
97812func (c *InstancesUpdateShieldedInstanceConfigCall) Fields(s ...googleapi.Field) *InstancesUpdateShieldedInstanceConfigCall {
97813	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97814	return c
97815}
97816
97817// Context sets the context to be used in this call's Do method. Any
97818// pending HTTP request will be aborted if the provided context is
97819// canceled.
97820func (c *InstancesUpdateShieldedInstanceConfigCall) Context(ctx context.Context) *InstancesUpdateShieldedInstanceConfigCall {
97821	c.ctx_ = ctx
97822	return c
97823}
97824
97825// Header returns an http.Header that can be modified by the caller to
97826// add HTTP headers to the request.
97827func (c *InstancesUpdateShieldedInstanceConfigCall) Header() http.Header {
97828	if c.header_ == nil {
97829		c.header_ = make(http.Header)
97830	}
97831	return c.header_
97832}
97833
97834func (c *InstancesUpdateShieldedInstanceConfigCall) doRequest(alt string) (*http.Response, error) {
97835	reqHeaders := make(http.Header)
97836	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
97837	for k, v := range c.header_ {
97838		reqHeaders[k] = v
97839	}
97840	reqHeaders.Set("User-Agent", c.s.userAgent())
97841	var body io.Reader = nil
97842	body, err := googleapi.WithoutDataWrapper.JSONReader(c.shieldedinstanceconfig)
97843	if err != nil {
97844		return nil, err
97845	}
97846	reqHeaders.Set("Content-Type", "application/json")
97847	c.urlParams_.Set("alt", alt)
97848	c.urlParams_.Set("prettyPrint", "false")
97849	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/updateShieldedInstanceConfig")
97850	urls += "?" + c.urlParams_.Encode()
97851	req, err := http.NewRequest("PATCH", urls, body)
97852	if err != nil {
97853		return nil, err
97854	}
97855	req.Header = reqHeaders
97856	googleapi.Expand(req.URL, map[string]string{
97857		"project":  c.project,
97858		"zone":     c.zone,
97859		"instance": c.instance,
97860	})
97861	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97862}
97863
97864// Do executes the "compute.instances.updateShieldedInstanceConfig" call.
97865// Exactly one of *Operation or error will be non-nil. Any non-2xx
97866// status code is an error. Response headers are in either
97867// *Operation.ServerResponse.Header or (if a response was returned at
97868// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
97869// to check whether the returned error was because
97870// http.StatusNotModified was returned.
97871func (c *InstancesUpdateShieldedInstanceConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
97872	gensupport.SetOptions(c.urlParams_, opts...)
97873	res, err := c.doRequest("json")
97874	if res != nil && res.StatusCode == http.StatusNotModified {
97875		if res.Body != nil {
97876			res.Body.Close()
97877		}
97878		return nil, &googleapi.Error{
97879			Code:   res.StatusCode,
97880			Header: res.Header,
97881		}
97882	}
97883	if err != nil {
97884		return nil, err
97885	}
97886	defer googleapi.CloseBody(res)
97887	if err := googleapi.CheckResponse(res); err != nil {
97888		return nil, err
97889	}
97890	ret := &Operation{
97891		ServerResponse: googleapi.ServerResponse{
97892			Header:         res.Header,
97893			HTTPStatusCode: res.StatusCode,
97894		},
97895	}
97896	target := &ret
97897	if err := gensupport.DecodeResponse(target, res); err != nil {
97898		return nil, err
97899	}
97900	return ret, nil
97901	// {
97902	//   "description": "Updates the Shielded Instance config for an instance. You can only use this method on a stopped instance. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.",
97903	//   "httpMethod": "PATCH",
97904	//   "id": "compute.instances.updateShieldedInstanceConfig",
97905	//   "parameterOrder": [
97906	//     "project",
97907	//     "zone",
97908	//     "instance"
97909	//   ],
97910	//   "parameters": {
97911	//     "instance": {
97912	//       "description": "Name or id of the instance scoping this request.",
97913	//       "location": "path",
97914	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
97915	//       "required": true,
97916	//       "type": "string"
97917	//     },
97918	//     "project": {
97919	//       "description": "Project ID for this request.",
97920	//       "location": "path",
97921	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97922	//       "required": true,
97923	//       "type": "string"
97924	//     },
97925	//     "requestId": {
97926	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
97927	//       "location": "query",
97928	//       "type": "string"
97929	//     },
97930	//     "zone": {
97931	//       "description": "The name of the zone for this request.",
97932	//       "location": "path",
97933	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
97934	//       "required": true,
97935	//       "type": "string"
97936	//     }
97937	//   },
97938	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/updateShieldedInstanceConfig",
97939	//   "request": {
97940	//     "$ref": "ShieldedInstanceConfig"
97941	//   },
97942	//   "response": {
97943	//     "$ref": "Operation"
97944	//   },
97945	//   "scopes": [
97946	//     "https://www.googleapis.com/auth/cloud-platform",
97947	//     "https://www.googleapis.com/auth/compute"
97948	//   ]
97949	// }
97950
97951}
97952
97953// method id "compute.instances.updateShieldedVmConfig":
97954
97955type InstancesUpdateShieldedVmConfigCall struct {
97956	s                *Service
97957	project          string
97958	zone             string
97959	instance         string
97960	shieldedvmconfig *ShieldedVmConfig
97961	urlParams_       gensupport.URLParams
97962	ctx_             context.Context
97963	header_          http.Header
97964}
97965
97966// UpdateShieldedVmConfig: Updates the Shielded VM config for a VM
97967// instance. You can only use this method on a stopped VM instance. This
97968// method supports PATCH semantics and uses the JSON merge patch format
97969// and processing rules.
97970func (r *InstancesService) UpdateShieldedVmConfig(project string, zone string, instance string, shieldedvmconfig *ShieldedVmConfig) *InstancesUpdateShieldedVmConfigCall {
97971	c := &InstancesUpdateShieldedVmConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97972	c.project = project
97973	c.zone = zone
97974	c.instance = instance
97975	c.shieldedvmconfig = shieldedvmconfig
97976	return c
97977}
97978
97979// RequestId sets the optional parameter "requestId": An optional
97980// request ID to identify requests. Specify a unique request ID so that
97981// if you must retry your request, the server will know to ignore the
97982// request if it has already been completed.
97983//
97984// For example, consider a situation where you make an initial request
97985// and the request times out. If you make the request again with the
97986// same request ID, the server can check if original operation with the
97987// same request ID was received, and if so, will ignore the second
97988// request. This prevents clients from accidentally creating duplicate
97989// commitments.
97990//
97991// The request ID must be a valid UUID with the exception that zero UUID
97992// is not supported (00000000-0000-0000-0000-000000000000).
97993func (c *InstancesUpdateShieldedVmConfigCall) RequestId(requestId string) *InstancesUpdateShieldedVmConfigCall {
97994	c.urlParams_.Set("requestId", requestId)
97995	return c
97996}
97997
97998// Fields allows partial responses to be retrieved. See
97999// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98000// for more information.
98001func (c *InstancesUpdateShieldedVmConfigCall) Fields(s ...googleapi.Field) *InstancesUpdateShieldedVmConfigCall {
98002	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98003	return c
98004}
98005
98006// Context sets the context to be used in this call's Do method. Any
98007// pending HTTP request will be aborted if the provided context is
98008// canceled.
98009func (c *InstancesUpdateShieldedVmConfigCall) Context(ctx context.Context) *InstancesUpdateShieldedVmConfigCall {
98010	c.ctx_ = ctx
98011	return c
98012}
98013
98014// Header returns an http.Header that can be modified by the caller to
98015// add HTTP headers to the request.
98016func (c *InstancesUpdateShieldedVmConfigCall) Header() http.Header {
98017	if c.header_ == nil {
98018		c.header_ = make(http.Header)
98019	}
98020	return c.header_
98021}
98022
98023func (c *InstancesUpdateShieldedVmConfigCall) doRequest(alt string) (*http.Response, error) {
98024	reqHeaders := make(http.Header)
98025	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
98026	for k, v := range c.header_ {
98027		reqHeaders[k] = v
98028	}
98029	reqHeaders.Set("User-Agent", c.s.userAgent())
98030	var body io.Reader = nil
98031	body, err := googleapi.WithoutDataWrapper.JSONReader(c.shieldedvmconfig)
98032	if err != nil {
98033		return nil, err
98034	}
98035	reqHeaders.Set("Content-Type", "application/json")
98036	c.urlParams_.Set("alt", alt)
98037	c.urlParams_.Set("prettyPrint", "false")
98038	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/updateShieldedVmConfig")
98039	urls += "?" + c.urlParams_.Encode()
98040	req, err := http.NewRequest("PATCH", urls, body)
98041	if err != nil {
98042		return nil, err
98043	}
98044	req.Header = reqHeaders
98045	googleapi.Expand(req.URL, map[string]string{
98046		"project":  c.project,
98047		"zone":     c.zone,
98048		"instance": c.instance,
98049	})
98050	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98051}
98052
98053// Do executes the "compute.instances.updateShieldedVmConfig" call.
98054// Exactly one of *Operation or error will be non-nil. Any non-2xx
98055// status code is an error. Response headers are in either
98056// *Operation.ServerResponse.Header or (if a response was returned at
98057// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
98058// to check whether the returned error was because
98059// http.StatusNotModified was returned.
98060func (c *InstancesUpdateShieldedVmConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
98061	gensupport.SetOptions(c.urlParams_, opts...)
98062	res, err := c.doRequest("json")
98063	if res != nil && res.StatusCode == http.StatusNotModified {
98064		if res.Body != nil {
98065			res.Body.Close()
98066		}
98067		return nil, &googleapi.Error{
98068			Code:   res.StatusCode,
98069			Header: res.Header,
98070		}
98071	}
98072	if err != nil {
98073		return nil, err
98074	}
98075	defer googleapi.CloseBody(res)
98076	if err := googleapi.CheckResponse(res); err != nil {
98077		return nil, err
98078	}
98079	ret := &Operation{
98080		ServerResponse: googleapi.ServerResponse{
98081			Header:         res.Header,
98082			HTTPStatusCode: res.StatusCode,
98083		},
98084	}
98085	target := &ret
98086	if err := gensupport.DecodeResponse(target, res); err != nil {
98087		return nil, err
98088	}
98089	return ret, nil
98090	// {
98091	//   "description": "Updates the Shielded VM config for a VM instance. You can only use this method on a stopped VM instance. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.",
98092	//   "httpMethod": "PATCH",
98093	//   "id": "compute.instances.updateShieldedVmConfig",
98094	//   "parameterOrder": [
98095	//     "project",
98096	//     "zone",
98097	//     "instance"
98098	//   ],
98099	//   "parameters": {
98100	//     "instance": {
98101	//       "description": "Name of the instance scoping this request.",
98102	//       "location": "path",
98103	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
98104	//       "required": true,
98105	//       "type": "string"
98106	//     },
98107	//     "project": {
98108	//       "description": "Project ID for this request.",
98109	//       "location": "path",
98110	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98111	//       "required": true,
98112	//       "type": "string"
98113	//     },
98114	//     "requestId": {
98115	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
98116	//       "location": "query",
98117	//       "type": "string"
98118	//     },
98119	//     "zone": {
98120	//       "description": "The name of the zone for this request.",
98121	//       "location": "path",
98122	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
98123	//       "required": true,
98124	//       "type": "string"
98125	//     }
98126	//   },
98127	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/updateShieldedVmConfig",
98128	//   "request": {
98129	//     "$ref": "ShieldedVmConfig"
98130	//   },
98131	//   "response": {
98132	//     "$ref": "Operation"
98133	//   },
98134	//   "scopes": [
98135	//     "https://www.googleapis.com/auth/cloud-platform",
98136	//     "https://www.googleapis.com/auth/compute"
98137	//   ]
98138	// }
98139
98140}
98141
98142// method id "compute.interconnectAttachments.aggregatedList":
98143
98144type InterconnectAttachmentsAggregatedListCall struct {
98145	s            *Service
98146	project      string
98147	urlParams_   gensupport.URLParams
98148	ifNoneMatch_ string
98149	ctx_         context.Context
98150	header_      http.Header
98151}
98152
98153// AggregatedList: Retrieves an aggregated list of interconnect
98154// attachments.
98155func (r *InterconnectAttachmentsService) AggregatedList(project string) *InterconnectAttachmentsAggregatedListCall {
98156	c := &InterconnectAttachmentsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98157	c.project = project
98158	return c
98159}
98160
98161// Filter sets the optional parameter "filter": A filter expression that
98162// filters resources listed in the response. The expression must specify
98163// the field name, a comparison operator, and the value that you want to
98164// use for filtering. The value must be a string, a number, or a
98165// boolean. The comparison operator must be either `=`, `!=`, `>`, or
98166// `<`.
98167//
98168// For example, if you are filtering Compute Engine instances, you can
98169// exclude instances named `example-instance` by specifying `name !=
98170// example-instance`.
98171//
98172// You can also filter nested fields. For example, you could specify
98173// `scheduling.automaticRestart = false` to include instances only if
98174// they are not scheduled for automatic restarts. You can use filtering
98175// on nested fields to filter based on resource labels.
98176//
98177// To filter on multiple expressions, provide each separate expression
98178// within parentheses. For example: ``` (scheduling.automaticRestart =
98179// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
98180// is an `AND` expression. However, you can include `AND` and `OR`
98181// expressions explicitly. For example: ``` (cpuPlatform = "Intel
98182// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
98183// (scheduling.automaticRestart = true) ```
98184func (c *InterconnectAttachmentsAggregatedListCall) Filter(filter string) *InterconnectAttachmentsAggregatedListCall {
98185	c.urlParams_.Set("filter", filter)
98186	return c
98187}
98188
98189// IncludeAllScopes sets the optional parameter "includeAllScopes":
98190// Indicates whether every visible scope for each scope type (zone,
98191// region, global) should be included in the response. For new resource
98192// types added after this field, the flag has no effect as new resource
98193// types will always include every visible scope for each scope type in
98194// response. For resource types which predate this field, if this flag
98195// is omitted or false, only scopes of the scope types where the
98196// resource type is expected to be found will be included.
98197func (c *InterconnectAttachmentsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *InterconnectAttachmentsAggregatedListCall {
98198	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
98199	return c
98200}
98201
98202// MaxResults sets the optional parameter "maxResults": The maximum
98203// number of results per page that should be returned. If the number of
98204// available results is larger than `maxResults`, Compute Engine returns
98205// a `nextPageToken` that can be used to get the next page of results in
98206// subsequent list requests. Acceptable values are `0` to `500`,
98207// inclusive. (Default: `500`)
98208func (c *InterconnectAttachmentsAggregatedListCall) MaxResults(maxResults int64) *InterconnectAttachmentsAggregatedListCall {
98209	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
98210	return c
98211}
98212
98213// OrderBy sets the optional parameter "orderBy": Sorts list results by
98214// a certain order. By default, results are returned in alphanumerical
98215// order based on the resource name.
98216//
98217// You can also sort results in descending order based on the creation
98218// timestamp using `orderBy="creationTimestamp desc". This sorts
98219// results based on the `creationTimestamp` field in reverse
98220// chronological order (newest result first). Use this to sort resources
98221// like operations so that the newest operation is returned
98222// first.
98223//
98224// Currently, only sorting by `name` or `creationTimestamp desc` is
98225// supported.
98226func (c *InterconnectAttachmentsAggregatedListCall) OrderBy(orderBy string) *InterconnectAttachmentsAggregatedListCall {
98227	c.urlParams_.Set("orderBy", orderBy)
98228	return c
98229}
98230
98231// PageToken sets the optional parameter "pageToken": Specifies a page
98232// token to use. Set `pageToken` to the `nextPageToken` returned by a
98233// previous list request to get the next page of results.
98234func (c *InterconnectAttachmentsAggregatedListCall) PageToken(pageToken string) *InterconnectAttachmentsAggregatedListCall {
98235	c.urlParams_.Set("pageToken", pageToken)
98236	return c
98237}
98238
98239// ReturnPartialSuccess sets the optional parameter
98240// "returnPartialSuccess": Opt-in for partial success behavior which
98241// provides partial results in case of failure. The default value is
98242// false.
98243func (c *InterconnectAttachmentsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InterconnectAttachmentsAggregatedListCall {
98244	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
98245	return c
98246}
98247
98248// Fields allows partial responses to be retrieved. See
98249// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98250// for more information.
98251func (c *InterconnectAttachmentsAggregatedListCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsAggregatedListCall {
98252	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98253	return c
98254}
98255
98256// IfNoneMatch sets the optional parameter which makes the operation
98257// fail if the object's ETag matches the given value. This is useful for
98258// getting updates only after the object has changed since the last
98259// request. Use googleapi.IsNotModified to check whether the response
98260// error from Do is the result of In-None-Match.
98261func (c *InterconnectAttachmentsAggregatedListCall) IfNoneMatch(entityTag string) *InterconnectAttachmentsAggregatedListCall {
98262	c.ifNoneMatch_ = entityTag
98263	return c
98264}
98265
98266// Context sets the context to be used in this call's Do method. Any
98267// pending HTTP request will be aborted if the provided context is
98268// canceled.
98269func (c *InterconnectAttachmentsAggregatedListCall) Context(ctx context.Context) *InterconnectAttachmentsAggregatedListCall {
98270	c.ctx_ = ctx
98271	return c
98272}
98273
98274// Header returns an http.Header that can be modified by the caller to
98275// add HTTP headers to the request.
98276func (c *InterconnectAttachmentsAggregatedListCall) Header() http.Header {
98277	if c.header_ == nil {
98278		c.header_ = make(http.Header)
98279	}
98280	return c.header_
98281}
98282
98283func (c *InterconnectAttachmentsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
98284	reqHeaders := make(http.Header)
98285	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
98286	for k, v := range c.header_ {
98287		reqHeaders[k] = v
98288	}
98289	reqHeaders.Set("User-Agent", c.s.userAgent())
98290	if c.ifNoneMatch_ != "" {
98291		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
98292	}
98293	var body io.Reader = nil
98294	c.urlParams_.Set("alt", alt)
98295	c.urlParams_.Set("prettyPrint", "false")
98296	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/interconnectAttachments")
98297	urls += "?" + c.urlParams_.Encode()
98298	req, err := http.NewRequest("GET", urls, body)
98299	if err != nil {
98300		return nil, err
98301	}
98302	req.Header = reqHeaders
98303	googleapi.Expand(req.URL, map[string]string{
98304		"project": c.project,
98305	})
98306	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98307}
98308
98309// Do executes the "compute.interconnectAttachments.aggregatedList" call.
98310// Exactly one of *InterconnectAttachmentAggregatedList or error will be
98311// non-nil. Any non-2xx status code is an error. Response headers are in
98312// either *InterconnectAttachmentAggregatedList.ServerResponse.Header or
98313// (if a response was returned at all) in
98314// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
98315// whether the returned error was because http.StatusNotModified was
98316// returned.
98317func (c *InterconnectAttachmentsAggregatedListCall) Do(opts ...googleapi.CallOption) (*InterconnectAttachmentAggregatedList, error) {
98318	gensupport.SetOptions(c.urlParams_, opts...)
98319	res, err := c.doRequest("json")
98320	if res != nil && res.StatusCode == http.StatusNotModified {
98321		if res.Body != nil {
98322			res.Body.Close()
98323		}
98324		return nil, &googleapi.Error{
98325			Code:   res.StatusCode,
98326			Header: res.Header,
98327		}
98328	}
98329	if err != nil {
98330		return nil, err
98331	}
98332	defer googleapi.CloseBody(res)
98333	if err := googleapi.CheckResponse(res); err != nil {
98334		return nil, err
98335	}
98336	ret := &InterconnectAttachmentAggregatedList{
98337		ServerResponse: googleapi.ServerResponse{
98338			Header:         res.Header,
98339			HTTPStatusCode: res.StatusCode,
98340		},
98341	}
98342	target := &ret
98343	if err := gensupport.DecodeResponse(target, res); err != nil {
98344		return nil, err
98345	}
98346	return ret, nil
98347	// {
98348	//   "description": "Retrieves an aggregated list of interconnect attachments.",
98349	//   "httpMethod": "GET",
98350	//   "id": "compute.interconnectAttachments.aggregatedList",
98351	//   "parameterOrder": [
98352	//     "project"
98353	//   ],
98354	//   "parameters": {
98355	//     "filter": {
98356	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
98357	//       "location": "query",
98358	//       "type": "string"
98359	//     },
98360	//     "includeAllScopes": {
98361	//       "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.",
98362	//       "location": "query",
98363	//       "type": "boolean"
98364	//     },
98365	//     "maxResults": {
98366	//       "default": "500",
98367	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
98368	//       "format": "uint32",
98369	//       "location": "query",
98370	//       "minimum": "0",
98371	//       "type": "integer"
98372	//     },
98373	//     "orderBy": {
98374	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
98375	//       "location": "query",
98376	//       "type": "string"
98377	//     },
98378	//     "pageToken": {
98379	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
98380	//       "location": "query",
98381	//       "type": "string"
98382	//     },
98383	//     "project": {
98384	//       "description": "Project ID for this request.",
98385	//       "location": "path",
98386	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98387	//       "required": true,
98388	//       "type": "string"
98389	//     },
98390	//     "returnPartialSuccess": {
98391	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
98392	//       "location": "query",
98393	//       "type": "boolean"
98394	//     }
98395	//   },
98396	//   "path": "projects/{project}/aggregated/interconnectAttachments",
98397	//   "response": {
98398	//     "$ref": "InterconnectAttachmentAggregatedList"
98399	//   },
98400	//   "scopes": [
98401	//     "https://www.googleapis.com/auth/cloud-platform",
98402	//     "https://www.googleapis.com/auth/compute",
98403	//     "https://www.googleapis.com/auth/compute.readonly"
98404	//   ]
98405	// }
98406
98407}
98408
98409// Pages invokes f for each page of results.
98410// A non-nil error returned from f will halt the iteration.
98411// The provided context supersedes any context provided to the Context method.
98412func (c *InterconnectAttachmentsAggregatedListCall) Pages(ctx context.Context, f func(*InterconnectAttachmentAggregatedList) error) error {
98413	c.ctx_ = ctx
98414	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
98415	for {
98416		x, err := c.Do()
98417		if err != nil {
98418			return err
98419		}
98420		if err := f(x); err != nil {
98421			return err
98422		}
98423		if x.NextPageToken == "" {
98424			return nil
98425		}
98426		c.PageToken(x.NextPageToken)
98427	}
98428}
98429
98430// method id "compute.interconnectAttachments.delete":
98431
98432type InterconnectAttachmentsDeleteCall struct {
98433	s                      *Service
98434	project                string
98435	region                 string
98436	interconnectAttachment string
98437	urlParams_             gensupport.URLParams
98438	ctx_                   context.Context
98439	header_                http.Header
98440}
98441
98442// Delete: Deletes the specified interconnect attachment.
98443func (r *InterconnectAttachmentsService) Delete(project string, region string, interconnectAttachment string) *InterconnectAttachmentsDeleteCall {
98444	c := &InterconnectAttachmentsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98445	c.project = project
98446	c.region = region
98447	c.interconnectAttachment = interconnectAttachment
98448	return c
98449}
98450
98451// RequestId sets the optional parameter "requestId": An optional
98452// request ID to identify requests. Specify a unique request ID so that
98453// if you must retry your request, the server will know to ignore the
98454// request if it has already been completed.
98455//
98456// For example, consider a situation where you make an initial request
98457// and the request times out. If you make the request again with the
98458// same request ID, the server can check if original operation with the
98459// same request ID was received, and if so, will ignore the second
98460// request. This prevents clients from accidentally creating duplicate
98461// commitments.
98462//
98463// The request ID must be a valid UUID with the exception that zero UUID
98464// is not supported (00000000-0000-0000-0000-000000000000).
98465func (c *InterconnectAttachmentsDeleteCall) RequestId(requestId string) *InterconnectAttachmentsDeleteCall {
98466	c.urlParams_.Set("requestId", requestId)
98467	return c
98468}
98469
98470// Fields allows partial responses to be retrieved. See
98471// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98472// for more information.
98473func (c *InterconnectAttachmentsDeleteCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsDeleteCall {
98474	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98475	return c
98476}
98477
98478// Context sets the context to be used in this call's Do method. Any
98479// pending HTTP request will be aborted if the provided context is
98480// canceled.
98481func (c *InterconnectAttachmentsDeleteCall) Context(ctx context.Context) *InterconnectAttachmentsDeleteCall {
98482	c.ctx_ = ctx
98483	return c
98484}
98485
98486// Header returns an http.Header that can be modified by the caller to
98487// add HTTP headers to the request.
98488func (c *InterconnectAttachmentsDeleteCall) Header() http.Header {
98489	if c.header_ == nil {
98490		c.header_ = make(http.Header)
98491	}
98492	return c.header_
98493}
98494
98495func (c *InterconnectAttachmentsDeleteCall) doRequest(alt string) (*http.Response, error) {
98496	reqHeaders := make(http.Header)
98497	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
98498	for k, v := range c.header_ {
98499		reqHeaders[k] = v
98500	}
98501	reqHeaders.Set("User-Agent", c.s.userAgent())
98502	var body io.Reader = nil
98503	c.urlParams_.Set("alt", alt)
98504	c.urlParams_.Set("prettyPrint", "false")
98505	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}")
98506	urls += "?" + c.urlParams_.Encode()
98507	req, err := http.NewRequest("DELETE", urls, body)
98508	if err != nil {
98509		return nil, err
98510	}
98511	req.Header = reqHeaders
98512	googleapi.Expand(req.URL, map[string]string{
98513		"project":                c.project,
98514		"region":                 c.region,
98515		"interconnectAttachment": c.interconnectAttachment,
98516	})
98517	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98518}
98519
98520// Do executes the "compute.interconnectAttachments.delete" call.
98521// Exactly one of *Operation or error will be non-nil. Any non-2xx
98522// status code is an error. Response headers are in either
98523// *Operation.ServerResponse.Header or (if a response was returned at
98524// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
98525// to check whether the returned error was because
98526// http.StatusNotModified was returned.
98527func (c *InterconnectAttachmentsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
98528	gensupport.SetOptions(c.urlParams_, opts...)
98529	res, err := c.doRequest("json")
98530	if res != nil && res.StatusCode == http.StatusNotModified {
98531		if res.Body != nil {
98532			res.Body.Close()
98533		}
98534		return nil, &googleapi.Error{
98535			Code:   res.StatusCode,
98536			Header: res.Header,
98537		}
98538	}
98539	if err != nil {
98540		return nil, err
98541	}
98542	defer googleapi.CloseBody(res)
98543	if err := googleapi.CheckResponse(res); err != nil {
98544		return nil, err
98545	}
98546	ret := &Operation{
98547		ServerResponse: googleapi.ServerResponse{
98548			Header:         res.Header,
98549			HTTPStatusCode: res.StatusCode,
98550		},
98551	}
98552	target := &ret
98553	if err := gensupport.DecodeResponse(target, res); err != nil {
98554		return nil, err
98555	}
98556	return ret, nil
98557	// {
98558	//   "description": "Deletes the specified interconnect attachment.",
98559	//   "httpMethod": "DELETE",
98560	//   "id": "compute.interconnectAttachments.delete",
98561	//   "parameterOrder": [
98562	//     "project",
98563	//     "region",
98564	//     "interconnectAttachment"
98565	//   ],
98566	//   "parameters": {
98567	//     "interconnectAttachment": {
98568	//       "description": "Name of the interconnect attachment to delete.",
98569	//       "location": "path",
98570	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
98571	//       "required": true,
98572	//       "type": "string"
98573	//     },
98574	//     "project": {
98575	//       "description": "Project ID for this request.",
98576	//       "location": "path",
98577	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98578	//       "required": true,
98579	//       "type": "string"
98580	//     },
98581	//     "region": {
98582	//       "description": "Name of the region for this request.",
98583	//       "location": "path",
98584	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
98585	//       "required": true,
98586	//       "type": "string"
98587	//     },
98588	//     "requestId": {
98589	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
98590	//       "location": "query",
98591	//       "type": "string"
98592	//     }
98593	//   },
98594	//   "path": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}",
98595	//   "response": {
98596	//     "$ref": "Operation"
98597	//   },
98598	//   "scopes": [
98599	//     "https://www.googleapis.com/auth/cloud-platform",
98600	//     "https://www.googleapis.com/auth/compute"
98601	//   ]
98602	// }
98603
98604}
98605
98606// method id "compute.interconnectAttachments.get":
98607
98608type InterconnectAttachmentsGetCall struct {
98609	s                      *Service
98610	project                string
98611	region                 string
98612	interconnectAttachment string
98613	urlParams_             gensupport.URLParams
98614	ifNoneMatch_           string
98615	ctx_                   context.Context
98616	header_                http.Header
98617}
98618
98619// Get: Returns the specified interconnect attachment.
98620func (r *InterconnectAttachmentsService) Get(project string, region string, interconnectAttachment string) *InterconnectAttachmentsGetCall {
98621	c := &InterconnectAttachmentsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98622	c.project = project
98623	c.region = region
98624	c.interconnectAttachment = interconnectAttachment
98625	return c
98626}
98627
98628// Fields allows partial responses to be retrieved. See
98629// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98630// for more information.
98631func (c *InterconnectAttachmentsGetCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsGetCall {
98632	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98633	return c
98634}
98635
98636// IfNoneMatch sets the optional parameter which makes the operation
98637// fail if the object's ETag matches the given value. This is useful for
98638// getting updates only after the object has changed since the last
98639// request. Use googleapi.IsNotModified to check whether the response
98640// error from Do is the result of In-None-Match.
98641func (c *InterconnectAttachmentsGetCall) IfNoneMatch(entityTag string) *InterconnectAttachmentsGetCall {
98642	c.ifNoneMatch_ = entityTag
98643	return c
98644}
98645
98646// Context sets the context to be used in this call's Do method. Any
98647// pending HTTP request will be aborted if the provided context is
98648// canceled.
98649func (c *InterconnectAttachmentsGetCall) Context(ctx context.Context) *InterconnectAttachmentsGetCall {
98650	c.ctx_ = ctx
98651	return c
98652}
98653
98654// Header returns an http.Header that can be modified by the caller to
98655// add HTTP headers to the request.
98656func (c *InterconnectAttachmentsGetCall) Header() http.Header {
98657	if c.header_ == nil {
98658		c.header_ = make(http.Header)
98659	}
98660	return c.header_
98661}
98662
98663func (c *InterconnectAttachmentsGetCall) doRequest(alt string) (*http.Response, error) {
98664	reqHeaders := make(http.Header)
98665	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
98666	for k, v := range c.header_ {
98667		reqHeaders[k] = v
98668	}
98669	reqHeaders.Set("User-Agent", c.s.userAgent())
98670	if c.ifNoneMatch_ != "" {
98671		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
98672	}
98673	var body io.Reader = nil
98674	c.urlParams_.Set("alt", alt)
98675	c.urlParams_.Set("prettyPrint", "false")
98676	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}")
98677	urls += "?" + c.urlParams_.Encode()
98678	req, err := http.NewRequest("GET", urls, body)
98679	if err != nil {
98680		return nil, err
98681	}
98682	req.Header = reqHeaders
98683	googleapi.Expand(req.URL, map[string]string{
98684		"project":                c.project,
98685		"region":                 c.region,
98686		"interconnectAttachment": c.interconnectAttachment,
98687	})
98688	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98689}
98690
98691// Do executes the "compute.interconnectAttachments.get" call.
98692// Exactly one of *InterconnectAttachment or error will be non-nil. Any
98693// non-2xx status code is an error. Response headers are in either
98694// *InterconnectAttachment.ServerResponse.Header or (if a response was
98695// returned at all) in error.(*googleapi.Error).Header. Use
98696// googleapi.IsNotModified to check whether the returned error was
98697// because http.StatusNotModified was returned.
98698func (c *InterconnectAttachmentsGetCall) Do(opts ...googleapi.CallOption) (*InterconnectAttachment, error) {
98699	gensupport.SetOptions(c.urlParams_, opts...)
98700	res, err := c.doRequest("json")
98701	if res != nil && res.StatusCode == http.StatusNotModified {
98702		if res.Body != nil {
98703			res.Body.Close()
98704		}
98705		return nil, &googleapi.Error{
98706			Code:   res.StatusCode,
98707			Header: res.Header,
98708		}
98709	}
98710	if err != nil {
98711		return nil, err
98712	}
98713	defer googleapi.CloseBody(res)
98714	if err := googleapi.CheckResponse(res); err != nil {
98715		return nil, err
98716	}
98717	ret := &InterconnectAttachment{
98718		ServerResponse: googleapi.ServerResponse{
98719			Header:         res.Header,
98720			HTTPStatusCode: res.StatusCode,
98721		},
98722	}
98723	target := &ret
98724	if err := gensupport.DecodeResponse(target, res); err != nil {
98725		return nil, err
98726	}
98727	return ret, nil
98728	// {
98729	//   "description": "Returns the specified interconnect attachment.",
98730	//   "httpMethod": "GET",
98731	//   "id": "compute.interconnectAttachments.get",
98732	//   "parameterOrder": [
98733	//     "project",
98734	//     "region",
98735	//     "interconnectAttachment"
98736	//   ],
98737	//   "parameters": {
98738	//     "interconnectAttachment": {
98739	//       "description": "Name of the interconnect attachment to return.",
98740	//       "location": "path",
98741	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
98742	//       "required": true,
98743	//       "type": "string"
98744	//     },
98745	//     "project": {
98746	//       "description": "Project ID for this request.",
98747	//       "location": "path",
98748	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98749	//       "required": true,
98750	//       "type": "string"
98751	//     },
98752	//     "region": {
98753	//       "description": "Name of the region for this request.",
98754	//       "location": "path",
98755	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
98756	//       "required": true,
98757	//       "type": "string"
98758	//     }
98759	//   },
98760	//   "path": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}",
98761	//   "response": {
98762	//     "$ref": "InterconnectAttachment"
98763	//   },
98764	//   "scopes": [
98765	//     "https://www.googleapis.com/auth/cloud-platform",
98766	//     "https://www.googleapis.com/auth/compute",
98767	//     "https://www.googleapis.com/auth/compute.readonly"
98768	//   ]
98769	// }
98770
98771}
98772
98773// method id "compute.interconnectAttachments.insert":
98774
98775type InterconnectAttachmentsInsertCall struct {
98776	s                      *Service
98777	project                string
98778	region                 string
98779	interconnectattachment *InterconnectAttachment
98780	urlParams_             gensupport.URLParams
98781	ctx_                   context.Context
98782	header_                http.Header
98783}
98784
98785// Insert: Creates an InterconnectAttachment in the specified project
98786// using the data included in the request.
98787func (r *InterconnectAttachmentsService) Insert(project string, region string, interconnectattachment *InterconnectAttachment) *InterconnectAttachmentsInsertCall {
98788	c := &InterconnectAttachmentsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98789	c.project = project
98790	c.region = region
98791	c.interconnectattachment = interconnectattachment
98792	return c
98793}
98794
98795// RequestId sets the optional parameter "requestId": An optional
98796// request ID to identify requests. Specify a unique request ID so that
98797// if you must retry your request, the server will know to ignore the
98798// request if it has already been completed.
98799//
98800// For example, consider a situation where you make an initial request
98801// and the request times out. If you make the request again with the
98802// same request ID, the server can check if original operation with the
98803// same request ID was received, and if so, will ignore the second
98804// request. This prevents clients from accidentally creating duplicate
98805// commitments.
98806//
98807// The request ID must be a valid UUID with the exception that zero UUID
98808// is not supported (00000000-0000-0000-0000-000000000000).
98809func (c *InterconnectAttachmentsInsertCall) RequestId(requestId string) *InterconnectAttachmentsInsertCall {
98810	c.urlParams_.Set("requestId", requestId)
98811	return c
98812}
98813
98814// ValidateOnly sets the optional parameter "validateOnly": If true, the
98815// request will not be committed.
98816func (c *InterconnectAttachmentsInsertCall) ValidateOnly(validateOnly bool) *InterconnectAttachmentsInsertCall {
98817	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
98818	return c
98819}
98820
98821// Fields allows partial responses to be retrieved. See
98822// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98823// for more information.
98824func (c *InterconnectAttachmentsInsertCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsInsertCall {
98825	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98826	return c
98827}
98828
98829// Context sets the context to be used in this call's Do method. Any
98830// pending HTTP request will be aborted if the provided context is
98831// canceled.
98832func (c *InterconnectAttachmentsInsertCall) Context(ctx context.Context) *InterconnectAttachmentsInsertCall {
98833	c.ctx_ = ctx
98834	return c
98835}
98836
98837// Header returns an http.Header that can be modified by the caller to
98838// add HTTP headers to the request.
98839func (c *InterconnectAttachmentsInsertCall) Header() http.Header {
98840	if c.header_ == nil {
98841		c.header_ = make(http.Header)
98842	}
98843	return c.header_
98844}
98845
98846func (c *InterconnectAttachmentsInsertCall) doRequest(alt string) (*http.Response, error) {
98847	reqHeaders := make(http.Header)
98848	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
98849	for k, v := range c.header_ {
98850		reqHeaders[k] = v
98851	}
98852	reqHeaders.Set("User-Agent", c.s.userAgent())
98853	var body io.Reader = nil
98854	body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnectattachment)
98855	if err != nil {
98856		return nil, err
98857	}
98858	reqHeaders.Set("Content-Type", "application/json")
98859	c.urlParams_.Set("alt", alt)
98860	c.urlParams_.Set("prettyPrint", "false")
98861	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/interconnectAttachments")
98862	urls += "?" + c.urlParams_.Encode()
98863	req, err := http.NewRequest("POST", urls, body)
98864	if err != nil {
98865		return nil, err
98866	}
98867	req.Header = reqHeaders
98868	googleapi.Expand(req.URL, map[string]string{
98869		"project": c.project,
98870		"region":  c.region,
98871	})
98872	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98873}
98874
98875// Do executes the "compute.interconnectAttachments.insert" call.
98876// Exactly one of *Operation or error will be non-nil. Any non-2xx
98877// status code is an error. Response headers are in either
98878// *Operation.ServerResponse.Header or (if a response was returned at
98879// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
98880// to check whether the returned error was because
98881// http.StatusNotModified was returned.
98882func (c *InterconnectAttachmentsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
98883	gensupport.SetOptions(c.urlParams_, opts...)
98884	res, err := c.doRequest("json")
98885	if res != nil && res.StatusCode == http.StatusNotModified {
98886		if res.Body != nil {
98887			res.Body.Close()
98888		}
98889		return nil, &googleapi.Error{
98890			Code:   res.StatusCode,
98891			Header: res.Header,
98892		}
98893	}
98894	if err != nil {
98895		return nil, err
98896	}
98897	defer googleapi.CloseBody(res)
98898	if err := googleapi.CheckResponse(res); err != nil {
98899		return nil, err
98900	}
98901	ret := &Operation{
98902		ServerResponse: googleapi.ServerResponse{
98903			Header:         res.Header,
98904			HTTPStatusCode: res.StatusCode,
98905		},
98906	}
98907	target := &ret
98908	if err := gensupport.DecodeResponse(target, res); err != nil {
98909		return nil, err
98910	}
98911	return ret, nil
98912	// {
98913	//   "description": "Creates an InterconnectAttachment in the specified project using the data included in the request.",
98914	//   "httpMethod": "POST",
98915	//   "id": "compute.interconnectAttachments.insert",
98916	//   "parameterOrder": [
98917	//     "project",
98918	//     "region"
98919	//   ],
98920	//   "parameters": {
98921	//     "project": {
98922	//       "description": "Project ID for this request.",
98923	//       "location": "path",
98924	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98925	//       "required": true,
98926	//       "type": "string"
98927	//     },
98928	//     "region": {
98929	//       "description": "Name of the region for this request.",
98930	//       "location": "path",
98931	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
98932	//       "required": true,
98933	//       "type": "string"
98934	//     },
98935	//     "requestId": {
98936	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
98937	//       "location": "query",
98938	//       "type": "string"
98939	//     },
98940	//     "validateOnly": {
98941	//       "description": "If true, the request will not be committed.",
98942	//       "location": "query",
98943	//       "type": "boolean"
98944	//     }
98945	//   },
98946	//   "path": "projects/{project}/regions/{region}/interconnectAttachments",
98947	//   "request": {
98948	//     "$ref": "InterconnectAttachment"
98949	//   },
98950	//   "response": {
98951	//     "$ref": "Operation"
98952	//   },
98953	//   "scopes": [
98954	//     "https://www.googleapis.com/auth/cloud-platform",
98955	//     "https://www.googleapis.com/auth/compute"
98956	//   ]
98957	// }
98958
98959}
98960
98961// method id "compute.interconnectAttachments.list":
98962
98963type InterconnectAttachmentsListCall struct {
98964	s            *Service
98965	project      string
98966	region       string
98967	urlParams_   gensupport.URLParams
98968	ifNoneMatch_ string
98969	ctx_         context.Context
98970	header_      http.Header
98971}
98972
98973// List: Retrieves the list of interconnect attachments contained within
98974// the specified region.
98975func (r *InterconnectAttachmentsService) List(project string, region string) *InterconnectAttachmentsListCall {
98976	c := &InterconnectAttachmentsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98977	c.project = project
98978	c.region = region
98979	return c
98980}
98981
98982// Filter sets the optional parameter "filter": A filter expression that
98983// filters resources listed in the response. The expression must specify
98984// the field name, a comparison operator, and the value that you want to
98985// use for filtering. The value must be a string, a number, or a
98986// boolean. The comparison operator must be either `=`, `!=`, `>`, or
98987// `<`.
98988//
98989// For example, if you are filtering Compute Engine instances, you can
98990// exclude instances named `example-instance` by specifying `name !=
98991// example-instance`.
98992//
98993// You can also filter nested fields. For example, you could specify
98994// `scheduling.automaticRestart = false` to include instances only if
98995// they are not scheduled for automatic restarts. You can use filtering
98996// on nested fields to filter based on resource labels.
98997//
98998// To filter on multiple expressions, provide each separate expression
98999// within parentheses. For example: ``` (scheduling.automaticRestart =
99000// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
99001// is an `AND` expression. However, you can include `AND` and `OR`
99002// expressions explicitly. For example: ``` (cpuPlatform = "Intel
99003// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
99004// (scheduling.automaticRestart = true) ```
99005func (c *InterconnectAttachmentsListCall) Filter(filter string) *InterconnectAttachmentsListCall {
99006	c.urlParams_.Set("filter", filter)
99007	return c
99008}
99009
99010// MaxResults sets the optional parameter "maxResults": The maximum
99011// number of results per page that should be returned. If the number of
99012// available results is larger than `maxResults`, Compute Engine returns
99013// a `nextPageToken` that can be used to get the next page of results in
99014// subsequent list requests. Acceptable values are `0` to `500`,
99015// inclusive. (Default: `500`)
99016func (c *InterconnectAttachmentsListCall) MaxResults(maxResults int64) *InterconnectAttachmentsListCall {
99017	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
99018	return c
99019}
99020
99021// OrderBy sets the optional parameter "orderBy": Sorts list results by
99022// a certain order. By default, results are returned in alphanumerical
99023// order based on the resource name.
99024//
99025// You can also sort results in descending order based on the creation
99026// timestamp using `orderBy="creationTimestamp desc". This sorts
99027// results based on the `creationTimestamp` field in reverse
99028// chronological order (newest result first). Use this to sort resources
99029// like operations so that the newest operation is returned
99030// first.
99031//
99032// Currently, only sorting by `name` or `creationTimestamp desc` is
99033// supported.
99034func (c *InterconnectAttachmentsListCall) OrderBy(orderBy string) *InterconnectAttachmentsListCall {
99035	c.urlParams_.Set("orderBy", orderBy)
99036	return c
99037}
99038
99039// PageToken sets the optional parameter "pageToken": Specifies a page
99040// token to use. Set `pageToken` to the `nextPageToken` returned by a
99041// previous list request to get the next page of results.
99042func (c *InterconnectAttachmentsListCall) PageToken(pageToken string) *InterconnectAttachmentsListCall {
99043	c.urlParams_.Set("pageToken", pageToken)
99044	return c
99045}
99046
99047// ReturnPartialSuccess sets the optional parameter
99048// "returnPartialSuccess": Opt-in for partial success behavior which
99049// provides partial results in case of failure. The default value is
99050// false.
99051func (c *InterconnectAttachmentsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InterconnectAttachmentsListCall {
99052	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
99053	return c
99054}
99055
99056// Fields allows partial responses to be retrieved. See
99057// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99058// for more information.
99059func (c *InterconnectAttachmentsListCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsListCall {
99060	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99061	return c
99062}
99063
99064// IfNoneMatch sets the optional parameter which makes the operation
99065// fail if the object's ETag matches the given value. This is useful for
99066// getting updates only after the object has changed since the last
99067// request. Use googleapi.IsNotModified to check whether the response
99068// error from Do is the result of In-None-Match.
99069func (c *InterconnectAttachmentsListCall) IfNoneMatch(entityTag string) *InterconnectAttachmentsListCall {
99070	c.ifNoneMatch_ = entityTag
99071	return c
99072}
99073
99074// Context sets the context to be used in this call's Do method. Any
99075// pending HTTP request will be aborted if the provided context is
99076// canceled.
99077func (c *InterconnectAttachmentsListCall) Context(ctx context.Context) *InterconnectAttachmentsListCall {
99078	c.ctx_ = ctx
99079	return c
99080}
99081
99082// Header returns an http.Header that can be modified by the caller to
99083// add HTTP headers to the request.
99084func (c *InterconnectAttachmentsListCall) Header() http.Header {
99085	if c.header_ == nil {
99086		c.header_ = make(http.Header)
99087	}
99088	return c.header_
99089}
99090
99091func (c *InterconnectAttachmentsListCall) doRequest(alt string) (*http.Response, error) {
99092	reqHeaders := make(http.Header)
99093	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
99094	for k, v := range c.header_ {
99095		reqHeaders[k] = v
99096	}
99097	reqHeaders.Set("User-Agent", c.s.userAgent())
99098	if c.ifNoneMatch_ != "" {
99099		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
99100	}
99101	var body io.Reader = nil
99102	c.urlParams_.Set("alt", alt)
99103	c.urlParams_.Set("prettyPrint", "false")
99104	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/interconnectAttachments")
99105	urls += "?" + c.urlParams_.Encode()
99106	req, err := http.NewRequest("GET", urls, body)
99107	if err != nil {
99108		return nil, err
99109	}
99110	req.Header = reqHeaders
99111	googleapi.Expand(req.URL, map[string]string{
99112		"project": c.project,
99113		"region":  c.region,
99114	})
99115	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99116}
99117
99118// Do executes the "compute.interconnectAttachments.list" call.
99119// Exactly one of *InterconnectAttachmentList or error will be non-nil.
99120// Any non-2xx status code is an error. Response headers are in either
99121// *InterconnectAttachmentList.ServerResponse.Header or (if a response
99122// was returned at all) in error.(*googleapi.Error).Header. Use
99123// googleapi.IsNotModified to check whether the returned error was
99124// because http.StatusNotModified was returned.
99125func (c *InterconnectAttachmentsListCall) Do(opts ...googleapi.CallOption) (*InterconnectAttachmentList, error) {
99126	gensupport.SetOptions(c.urlParams_, opts...)
99127	res, err := c.doRequest("json")
99128	if res != nil && res.StatusCode == http.StatusNotModified {
99129		if res.Body != nil {
99130			res.Body.Close()
99131		}
99132		return nil, &googleapi.Error{
99133			Code:   res.StatusCode,
99134			Header: res.Header,
99135		}
99136	}
99137	if err != nil {
99138		return nil, err
99139	}
99140	defer googleapi.CloseBody(res)
99141	if err := googleapi.CheckResponse(res); err != nil {
99142		return nil, err
99143	}
99144	ret := &InterconnectAttachmentList{
99145		ServerResponse: googleapi.ServerResponse{
99146			Header:         res.Header,
99147			HTTPStatusCode: res.StatusCode,
99148		},
99149	}
99150	target := &ret
99151	if err := gensupport.DecodeResponse(target, res); err != nil {
99152		return nil, err
99153	}
99154	return ret, nil
99155	// {
99156	//   "description": "Retrieves the list of interconnect attachments contained within the specified region.",
99157	//   "httpMethod": "GET",
99158	//   "id": "compute.interconnectAttachments.list",
99159	//   "parameterOrder": [
99160	//     "project",
99161	//     "region"
99162	//   ],
99163	//   "parameters": {
99164	//     "filter": {
99165	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
99166	//       "location": "query",
99167	//       "type": "string"
99168	//     },
99169	//     "maxResults": {
99170	//       "default": "500",
99171	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
99172	//       "format": "uint32",
99173	//       "location": "query",
99174	//       "minimum": "0",
99175	//       "type": "integer"
99176	//     },
99177	//     "orderBy": {
99178	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
99179	//       "location": "query",
99180	//       "type": "string"
99181	//     },
99182	//     "pageToken": {
99183	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
99184	//       "location": "query",
99185	//       "type": "string"
99186	//     },
99187	//     "project": {
99188	//       "description": "Project ID for this request.",
99189	//       "location": "path",
99190	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99191	//       "required": true,
99192	//       "type": "string"
99193	//     },
99194	//     "region": {
99195	//       "description": "Name of the region for this request.",
99196	//       "location": "path",
99197	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
99198	//       "required": true,
99199	//       "type": "string"
99200	//     },
99201	//     "returnPartialSuccess": {
99202	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
99203	//       "location": "query",
99204	//       "type": "boolean"
99205	//     }
99206	//   },
99207	//   "path": "projects/{project}/regions/{region}/interconnectAttachments",
99208	//   "response": {
99209	//     "$ref": "InterconnectAttachmentList"
99210	//   },
99211	//   "scopes": [
99212	//     "https://www.googleapis.com/auth/cloud-platform",
99213	//     "https://www.googleapis.com/auth/compute",
99214	//     "https://www.googleapis.com/auth/compute.readonly"
99215	//   ]
99216	// }
99217
99218}
99219
99220// Pages invokes f for each page of results.
99221// A non-nil error returned from f will halt the iteration.
99222// The provided context supersedes any context provided to the Context method.
99223func (c *InterconnectAttachmentsListCall) Pages(ctx context.Context, f func(*InterconnectAttachmentList) error) error {
99224	c.ctx_ = ctx
99225	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
99226	for {
99227		x, err := c.Do()
99228		if err != nil {
99229			return err
99230		}
99231		if err := f(x); err != nil {
99232			return err
99233		}
99234		if x.NextPageToken == "" {
99235			return nil
99236		}
99237		c.PageToken(x.NextPageToken)
99238	}
99239}
99240
99241// method id "compute.interconnectAttachments.patch":
99242
99243type InterconnectAttachmentsPatchCall struct {
99244	s                      *Service
99245	project                string
99246	region                 string
99247	interconnectAttachment string
99248	interconnectattachment *InterconnectAttachment
99249	urlParams_             gensupport.URLParams
99250	ctx_                   context.Context
99251	header_                http.Header
99252}
99253
99254// Patch: Updates the specified interconnect attachment with the data
99255// included in the request. This method supports PATCH semantics and
99256// uses the JSON merge patch format and processing rules.
99257func (r *InterconnectAttachmentsService) Patch(project string, region string, interconnectAttachment string, interconnectattachment *InterconnectAttachment) *InterconnectAttachmentsPatchCall {
99258	c := &InterconnectAttachmentsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99259	c.project = project
99260	c.region = region
99261	c.interconnectAttachment = interconnectAttachment
99262	c.interconnectattachment = interconnectattachment
99263	return c
99264}
99265
99266// RequestId sets the optional parameter "requestId": An optional
99267// request ID to identify requests. Specify a unique request ID so that
99268// if you must retry your request, the server will know to ignore the
99269// request if it has already been completed.
99270//
99271// For example, consider a situation where you make an initial request
99272// and the request times out. If you make the request again with the
99273// same request ID, the server can check if original operation with the
99274// same request ID was received, and if so, will ignore the second
99275// request. This prevents clients from accidentally creating duplicate
99276// commitments.
99277//
99278// The request ID must be a valid UUID with the exception that zero UUID
99279// is not supported (00000000-0000-0000-0000-000000000000).
99280func (c *InterconnectAttachmentsPatchCall) RequestId(requestId string) *InterconnectAttachmentsPatchCall {
99281	c.urlParams_.Set("requestId", requestId)
99282	return c
99283}
99284
99285// Fields allows partial responses to be retrieved. See
99286// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99287// for more information.
99288func (c *InterconnectAttachmentsPatchCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsPatchCall {
99289	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99290	return c
99291}
99292
99293// Context sets the context to be used in this call's Do method. Any
99294// pending HTTP request will be aborted if the provided context is
99295// canceled.
99296func (c *InterconnectAttachmentsPatchCall) Context(ctx context.Context) *InterconnectAttachmentsPatchCall {
99297	c.ctx_ = ctx
99298	return c
99299}
99300
99301// Header returns an http.Header that can be modified by the caller to
99302// add HTTP headers to the request.
99303func (c *InterconnectAttachmentsPatchCall) Header() http.Header {
99304	if c.header_ == nil {
99305		c.header_ = make(http.Header)
99306	}
99307	return c.header_
99308}
99309
99310func (c *InterconnectAttachmentsPatchCall) doRequest(alt string) (*http.Response, error) {
99311	reqHeaders := make(http.Header)
99312	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
99313	for k, v := range c.header_ {
99314		reqHeaders[k] = v
99315	}
99316	reqHeaders.Set("User-Agent", c.s.userAgent())
99317	var body io.Reader = nil
99318	body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnectattachment)
99319	if err != nil {
99320		return nil, err
99321	}
99322	reqHeaders.Set("Content-Type", "application/json")
99323	c.urlParams_.Set("alt", alt)
99324	c.urlParams_.Set("prettyPrint", "false")
99325	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}")
99326	urls += "?" + c.urlParams_.Encode()
99327	req, err := http.NewRequest("PATCH", urls, body)
99328	if err != nil {
99329		return nil, err
99330	}
99331	req.Header = reqHeaders
99332	googleapi.Expand(req.URL, map[string]string{
99333		"project":                c.project,
99334		"region":                 c.region,
99335		"interconnectAttachment": c.interconnectAttachment,
99336	})
99337	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99338}
99339
99340// Do executes the "compute.interconnectAttachments.patch" call.
99341// Exactly one of *Operation or error will be non-nil. Any non-2xx
99342// status code is an error. Response headers are in either
99343// *Operation.ServerResponse.Header or (if a response was returned at
99344// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
99345// to check whether the returned error was because
99346// http.StatusNotModified was returned.
99347func (c *InterconnectAttachmentsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
99348	gensupport.SetOptions(c.urlParams_, opts...)
99349	res, err := c.doRequest("json")
99350	if res != nil && res.StatusCode == http.StatusNotModified {
99351		if res.Body != nil {
99352			res.Body.Close()
99353		}
99354		return nil, &googleapi.Error{
99355			Code:   res.StatusCode,
99356			Header: res.Header,
99357		}
99358	}
99359	if err != nil {
99360		return nil, err
99361	}
99362	defer googleapi.CloseBody(res)
99363	if err := googleapi.CheckResponse(res); err != nil {
99364		return nil, err
99365	}
99366	ret := &Operation{
99367		ServerResponse: googleapi.ServerResponse{
99368			Header:         res.Header,
99369			HTTPStatusCode: res.StatusCode,
99370		},
99371	}
99372	target := &ret
99373	if err := gensupport.DecodeResponse(target, res); err != nil {
99374		return nil, err
99375	}
99376	return ret, nil
99377	// {
99378	//   "description": "Updates the specified interconnect attachment with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.",
99379	//   "httpMethod": "PATCH",
99380	//   "id": "compute.interconnectAttachments.patch",
99381	//   "parameterOrder": [
99382	//     "project",
99383	//     "region",
99384	//     "interconnectAttachment"
99385	//   ],
99386	//   "parameters": {
99387	//     "interconnectAttachment": {
99388	//       "description": "Name of the interconnect attachment to patch.",
99389	//       "location": "path",
99390	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
99391	//       "required": true,
99392	//       "type": "string"
99393	//     },
99394	//     "project": {
99395	//       "description": "Project ID for this request.",
99396	//       "location": "path",
99397	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99398	//       "required": true,
99399	//       "type": "string"
99400	//     },
99401	//     "region": {
99402	//       "description": "Name of the region scoping this request.",
99403	//       "location": "path",
99404	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
99405	//       "required": true,
99406	//       "type": "string"
99407	//     },
99408	//     "requestId": {
99409	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
99410	//       "location": "query",
99411	//       "type": "string"
99412	//     }
99413	//   },
99414	//   "path": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}",
99415	//   "request": {
99416	//     "$ref": "InterconnectAttachment"
99417	//   },
99418	//   "response": {
99419	//     "$ref": "Operation"
99420	//   },
99421	//   "scopes": [
99422	//     "https://www.googleapis.com/auth/cloud-platform",
99423	//     "https://www.googleapis.com/auth/compute"
99424	//   ]
99425	// }
99426
99427}
99428
99429// method id "compute.interconnectAttachments.setLabels":
99430
99431type InterconnectAttachmentsSetLabelsCall struct {
99432	s                      *Service
99433	project                string
99434	region                 string
99435	resource               string
99436	regionsetlabelsrequest *RegionSetLabelsRequest
99437	urlParams_             gensupport.URLParams
99438	ctx_                   context.Context
99439	header_                http.Header
99440}
99441
99442// SetLabels: Sets the labels on an InterconnectAttachment. To learn
99443// more about labels, read the Labeling Resources documentation.
99444func (r *InterconnectAttachmentsService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *InterconnectAttachmentsSetLabelsCall {
99445	c := &InterconnectAttachmentsSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99446	c.project = project
99447	c.region = region
99448	c.resource = resource
99449	c.regionsetlabelsrequest = regionsetlabelsrequest
99450	return c
99451}
99452
99453// RequestId sets the optional parameter "requestId": An optional
99454// request ID to identify requests. Specify a unique request ID so that
99455// if you must retry your request, the server will know to ignore the
99456// request if it has already been completed.
99457//
99458// For example, consider a situation where you make an initial request
99459// and the request times out. If you make the request again with the
99460// same request ID, the server can check if original operation with the
99461// same request ID was received, and if so, will ignore the second
99462// request. This prevents clients from accidentally creating duplicate
99463// commitments.
99464//
99465// The request ID must be a valid UUID with the exception that zero UUID
99466// is not supported (00000000-0000-0000-0000-000000000000).
99467func (c *InterconnectAttachmentsSetLabelsCall) RequestId(requestId string) *InterconnectAttachmentsSetLabelsCall {
99468	c.urlParams_.Set("requestId", requestId)
99469	return c
99470}
99471
99472// Fields allows partial responses to be retrieved. See
99473// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99474// for more information.
99475func (c *InterconnectAttachmentsSetLabelsCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsSetLabelsCall {
99476	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99477	return c
99478}
99479
99480// Context sets the context to be used in this call's Do method. Any
99481// pending HTTP request will be aborted if the provided context is
99482// canceled.
99483func (c *InterconnectAttachmentsSetLabelsCall) Context(ctx context.Context) *InterconnectAttachmentsSetLabelsCall {
99484	c.ctx_ = ctx
99485	return c
99486}
99487
99488// Header returns an http.Header that can be modified by the caller to
99489// add HTTP headers to the request.
99490func (c *InterconnectAttachmentsSetLabelsCall) Header() http.Header {
99491	if c.header_ == nil {
99492		c.header_ = make(http.Header)
99493	}
99494	return c.header_
99495}
99496
99497func (c *InterconnectAttachmentsSetLabelsCall) doRequest(alt string) (*http.Response, error) {
99498	reqHeaders := make(http.Header)
99499	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
99500	for k, v := range c.header_ {
99501		reqHeaders[k] = v
99502	}
99503	reqHeaders.Set("User-Agent", c.s.userAgent())
99504	var body io.Reader = nil
99505	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
99506	if err != nil {
99507		return nil, err
99508	}
99509	reqHeaders.Set("Content-Type", "application/json")
99510	c.urlParams_.Set("alt", alt)
99511	c.urlParams_.Set("prettyPrint", "false")
99512	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/interconnectAttachments/{resource}/setLabels")
99513	urls += "?" + c.urlParams_.Encode()
99514	req, err := http.NewRequest("POST", urls, body)
99515	if err != nil {
99516		return nil, err
99517	}
99518	req.Header = reqHeaders
99519	googleapi.Expand(req.URL, map[string]string{
99520		"project":  c.project,
99521		"region":   c.region,
99522		"resource": c.resource,
99523	})
99524	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99525}
99526
99527// Do executes the "compute.interconnectAttachments.setLabels" call.
99528// Exactly one of *Operation or error will be non-nil. Any non-2xx
99529// status code is an error. Response headers are in either
99530// *Operation.ServerResponse.Header or (if a response was returned at
99531// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
99532// to check whether the returned error was because
99533// http.StatusNotModified was returned.
99534func (c *InterconnectAttachmentsSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
99535	gensupport.SetOptions(c.urlParams_, opts...)
99536	res, err := c.doRequest("json")
99537	if res != nil && res.StatusCode == http.StatusNotModified {
99538		if res.Body != nil {
99539			res.Body.Close()
99540		}
99541		return nil, &googleapi.Error{
99542			Code:   res.StatusCode,
99543			Header: res.Header,
99544		}
99545	}
99546	if err != nil {
99547		return nil, err
99548	}
99549	defer googleapi.CloseBody(res)
99550	if err := googleapi.CheckResponse(res); err != nil {
99551		return nil, err
99552	}
99553	ret := &Operation{
99554		ServerResponse: googleapi.ServerResponse{
99555			Header:         res.Header,
99556			HTTPStatusCode: res.StatusCode,
99557		},
99558	}
99559	target := &ret
99560	if err := gensupport.DecodeResponse(target, res); err != nil {
99561		return nil, err
99562	}
99563	return ret, nil
99564	// {
99565	//   "description": "Sets the labels on an InterconnectAttachment. To learn more about labels, read the Labeling Resources documentation.",
99566	//   "httpMethod": "POST",
99567	//   "id": "compute.interconnectAttachments.setLabels",
99568	//   "parameterOrder": [
99569	//     "project",
99570	//     "region",
99571	//     "resource"
99572	//   ],
99573	//   "parameters": {
99574	//     "project": {
99575	//       "description": "Project ID for this request.",
99576	//       "location": "path",
99577	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99578	//       "required": true,
99579	//       "type": "string"
99580	//     },
99581	//     "region": {
99582	//       "description": "The region for this request.",
99583	//       "location": "path",
99584	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
99585	//       "required": true,
99586	//       "type": "string"
99587	//     },
99588	//     "requestId": {
99589	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
99590	//       "location": "query",
99591	//       "type": "string"
99592	//     },
99593	//     "resource": {
99594	//       "description": "Name or id of the resource for this request.",
99595	//       "location": "path",
99596	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
99597	//       "required": true,
99598	//       "type": "string"
99599	//     }
99600	//   },
99601	//   "path": "projects/{project}/regions/{region}/interconnectAttachments/{resource}/setLabels",
99602	//   "request": {
99603	//     "$ref": "RegionSetLabelsRequest"
99604	//   },
99605	//   "response": {
99606	//     "$ref": "Operation"
99607	//   },
99608	//   "scopes": [
99609	//     "https://www.googleapis.com/auth/cloud-platform",
99610	//     "https://www.googleapis.com/auth/compute"
99611	//   ]
99612	// }
99613
99614}
99615
99616// method id "compute.interconnectAttachments.testIamPermissions":
99617
99618type InterconnectAttachmentsTestIamPermissionsCall struct {
99619	s                      *Service
99620	project                string
99621	region                 string
99622	resource               string
99623	testpermissionsrequest *TestPermissionsRequest
99624	urlParams_             gensupport.URLParams
99625	ctx_                   context.Context
99626	header_                http.Header
99627}
99628
99629// TestIamPermissions: Returns permissions that a caller has on the
99630// specified resource.
99631func (r *InterconnectAttachmentsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *InterconnectAttachmentsTestIamPermissionsCall {
99632	c := &InterconnectAttachmentsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99633	c.project = project
99634	c.region = region
99635	c.resource = resource
99636	c.testpermissionsrequest = testpermissionsrequest
99637	return c
99638}
99639
99640// Fields allows partial responses to be retrieved. See
99641// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99642// for more information.
99643func (c *InterconnectAttachmentsTestIamPermissionsCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsTestIamPermissionsCall {
99644	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99645	return c
99646}
99647
99648// Context sets the context to be used in this call's Do method. Any
99649// pending HTTP request will be aborted if the provided context is
99650// canceled.
99651func (c *InterconnectAttachmentsTestIamPermissionsCall) Context(ctx context.Context) *InterconnectAttachmentsTestIamPermissionsCall {
99652	c.ctx_ = ctx
99653	return c
99654}
99655
99656// Header returns an http.Header that can be modified by the caller to
99657// add HTTP headers to the request.
99658func (c *InterconnectAttachmentsTestIamPermissionsCall) Header() http.Header {
99659	if c.header_ == nil {
99660		c.header_ = make(http.Header)
99661	}
99662	return c.header_
99663}
99664
99665func (c *InterconnectAttachmentsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
99666	reqHeaders := make(http.Header)
99667	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
99668	for k, v := range c.header_ {
99669		reqHeaders[k] = v
99670	}
99671	reqHeaders.Set("User-Agent", c.s.userAgent())
99672	var body io.Reader = nil
99673	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
99674	if err != nil {
99675		return nil, err
99676	}
99677	reqHeaders.Set("Content-Type", "application/json")
99678	c.urlParams_.Set("alt", alt)
99679	c.urlParams_.Set("prettyPrint", "false")
99680	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/interconnectAttachments/{resource}/testIamPermissions")
99681	urls += "?" + c.urlParams_.Encode()
99682	req, err := http.NewRequest("POST", urls, body)
99683	if err != nil {
99684		return nil, err
99685	}
99686	req.Header = reqHeaders
99687	googleapi.Expand(req.URL, map[string]string{
99688		"project":  c.project,
99689		"region":   c.region,
99690		"resource": c.resource,
99691	})
99692	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99693}
99694
99695// Do executes the "compute.interconnectAttachments.testIamPermissions" call.
99696// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
99697// non-2xx status code is an error. Response headers are in either
99698// *TestPermissionsResponse.ServerResponse.Header or (if a response was
99699// returned at all) in error.(*googleapi.Error).Header. Use
99700// googleapi.IsNotModified to check whether the returned error was
99701// because http.StatusNotModified was returned.
99702func (c *InterconnectAttachmentsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
99703	gensupport.SetOptions(c.urlParams_, opts...)
99704	res, err := c.doRequest("json")
99705	if res != nil && res.StatusCode == http.StatusNotModified {
99706		if res.Body != nil {
99707			res.Body.Close()
99708		}
99709		return nil, &googleapi.Error{
99710			Code:   res.StatusCode,
99711			Header: res.Header,
99712		}
99713	}
99714	if err != nil {
99715		return nil, err
99716	}
99717	defer googleapi.CloseBody(res)
99718	if err := googleapi.CheckResponse(res); err != nil {
99719		return nil, err
99720	}
99721	ret := &TestPermissionsResponse{
99722		ServerResponse: googleapi.ServerResponse{
99723			Header:         res.Header,
99724			HTTPStatusCode: res.StatusCode,
99725		},
99726	}
99727	target := &ret
99728	if err := gensupport.DecodeResponse(target, res); err != nil {
99729		return nil, err
99730	}
99731	return ret, nil
99732	// {
99733	//   "description": "Returns permissions that a caller has on the specified resource.",
99734	//   "httpMethod": "POST",
99735	//   "id": "compute.interconnectAttachments.testIamPermissions",
99736	//   "parameterOrder": [
99737	//     "project",
99738	//     "region",
99739	//     "resource"
99740	//   ],
99741	//   "parameters": {
99742	//     "project": {
99743	//       "description": "Project ID for this request.",
99744	//       "location": "path",
99745	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99746	//       "required": true,
99747	//       "type": "string"
99748	//     },
99749	//     "region": {
99750	//       "description": "The name of the region for this request.",
99751	//       "location": "path",
99752	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
99753	//       "required": true,
99754	//       "type": "string"
99755	//     },
99756	//     "resource": {
99757	//       "description": "Name or id of the resource for this request.",
99758	//       "location": "path",
99759	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
99760	//       "required": true,
99761	//       "type": "string"
99762	//     }
99763	//   },
99764	//   "path": "projects/{project}/regions/{region}/interconnectAttachments/{resource}/testIamPermissions",
99765	//   "request": {
99766	//     "$ref": "TestPermissionsRequest"
99767	//   },
99768	//   "response": {
99769	//     "$ref": "TestPermissionsResponse"
99770	//   },
99771	//   "scopes": [
99772	//     "https://www.googleapis.com/auth/cloud-platform",
99773	//     "https://www.googleapis.com/auth/compute",
99774	//     "https://www.googleapis.com/auth/compute.readonly"
99775	//   ]
99776	// }
99777
99778}
99779
99780// method id "compute.interconnectLocations.get":
99781
99782type InterconnectLocationsGetCall struct {
99783	s                    *Service
99784	project              string
99785	interconnectLocation string
99786	urlParams_           gensupport.URLParams
99787	ifNoneMatch_         string
99788	ctx_                 context.Context
99789	header_              http.Header
99790}
99791
99792// Get: Returns the details for the specified interconnect location.
99793// Gets a list of available interconnect locations by making a list()
99794// request.
99795func (r *InterconnectLocationsService) Get(project string, interconnectLocation string) *InterconnectLocationsGetCall {
99796	c := &InterconnectLocationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99797	c.project = project
99798	c.interconnectLocation = interconnectLocation
99799	return c
99800}
99801
99802// Fields allows partial responses to be retrieved. See
99803// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99804// for more information.
99805func (c *InterconnectLocationsGetCall) Fields(s ...googleapi.Field) *InterconnectLocationsGetCall {
99806	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99807	return c
99808}
99809
99810// IfNoneMatch sets the optional parameter which makes the operation
99811// fail if the object's ETag matches the given value. This is useful for
99812// getting updates only after the object has changed since the last
99813// request. Use googleapi.IsNotModified to check whether the response
99814// error from Do is the result of In-None-Match.
99815func (c *InterconnectLocationsGetCall) IfNoneMatch(entityTag string) *InterconnectLocationsGetCall {
99816	c.ifNoneMatch_ = entityTag
99817	return c
99818}
99819
99820// Context sets the context to be used in this call's Do method. Any
99821// pending HTTP request will be aborted if the provided context is
99822// canceled.
99823func (c *InterconnectLocationsGetCall) Context(ctx context.Context) *InterconnectLocationsGetCall {
99824	c.ctx_ = ctx
99825	return c
99826}
99827
99828// Header returns an http.Header that can be modified by the caller to
99829// add HTTP headers to the request.
99830func (c *InterconnectLocationsGetCall) Header() http.Header {
99831	if c.header_ == nil {
99832		c.header_ = make(http.Header)
99833	}
99834	return c.header_
99835}
99836
99837func (c *InterconnectLocationsGetCall) doRequest(alt string) (*http.Response, error) {
99838	reqHeaders := make(http.Header)
99839	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
99840	for k, v := range c.header_ {
99841		reqHeaders[k] = v
99842	}
99843	reqHeaders.Set("User-Agent", c.s.userAgent())
99844	if c.ifNoneMatch_ != "" {
99845		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
99846	}
99847	var body io.Reader = nil
99848	c.urlParams_.Set("alt", alt)
99849	c.urlParams_.Set("prettyPrint", "false")
99850	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnectLocations/{interconnectLocation}")
99851	urls += "?" + c.urlParams_.Encode()
99852	req, err := http.NewRequest("GET", urls, body)
99853	if err != nil {
99854		return nil, err
99855	}
99856	req.Header = reqHeaders
99857	googleapi.Expand(req.URL, map[string]string{
99858		"project":              c.project,
99859		"interconnectLocation": c.interconnectLocation,
99860	})
99861	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99862}
99863
99864// Do executes the "compute.interconnectLocations.get" call.
99865// Exactly one of *InterconnectLocation or error will be non-nil. Any
99866// non-2xx status code is an error. Response headers are in either
99867// *InterconnectLocation.ServerResponse.Header or (if a response was
99868// returned at all) in error.(*googleapi.Error).Header. Use
99869// googleapi.IsNotModified to check whether the returned error was
99870// because http.StatusNotModified was returned.
99871func (c *InterconnectLocationsGetCall) Do(opts ...googleapi.CallOption) (*InterconnectLocation, error) {
99872	gensupport.SetOptions(c.urlParams_, opts...)
99873	res, err := c.doRequest("json")
99874	if res != nil && res.StatusCode == http.StatusNotModified {
99875		if res.Body != nil {
99876			res.Body.Close()
99877		}
99878		return nil, &googleapi.Error{
99879			Code:   res.StatusCode,
99880			Header: res.Header,
99881		}
99882	}
99883	if err != nil {
99884		return nil, err
99885	}
99886	defer googleapi.CloseBody(res)
99887	if err := googleapi.CheckResponse(res); err != nil {
99888		return nil, err
99889	}
99890	ret := &InterconnectLocation{
99891		ServerResponse: googleapi.ServerResponse{
99892			Header:         res.Header,
99893			HTTPStatusCode: res.StatusCode,
99894		},
99895	}
99896	target := &ret
99897	if err := gensupport.DecodeResponse(target, res); err != nil {
99898		return nil, err
99899	}
99900	return ret, nil
99901	// {
99902	//   "description": "Returns the details for the specified interconnect location. Gets a list of available interconnect locations by making a list() request.",
99903	//   "httpMethod": "GET",
99904	//   "id": "compute.interconnectLocations.get",
99905	//   "parameterOrder": [
99906	//     "project",
99907	//     "interconnectLocation"
99908	//   ],
99909	//   "parameters": {
99910	//     "interconnectLocation": {
99911	//       "description": "Name of the interconnect location to return.",
99912	//       "location": "path",
99913	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
99914	//       "required": true,
99915	//       "type": "string"
99916	//     },
99917	//     "project": {
99918	//       "description": "Project ID for this request.",
99919	//       "location": "path",
99920	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99921	//       "required": true,
99922	//       "type": "string"
99923	//     }
99924	//   },
99925	//   "path": "projects/{project}/global/interconnectLocations/{interconnectLocation}",
99926	//   "response": {
99927	//     "$ref": "InterconnectLocation"
99928	//   },
99929	//   "scopes": [
99930	//     "https://www.googleapis.com/auth/cloud-platform",
99931	//     "https://www.googleapis.com/auth/compute",
99932	//     "https://www.googleapis.com/auth/compute.readonly"
99933	//   ]
99934	// }
99935
99936}
99937
99938// method id "compute.interconnectLocations.list":
99939
99940type InterconnectLocationsListCall struct {
99941	s            *Service
99942	project      string
99943	urlParams_   gensupport.URLParams
99944	ifNoneMatch_ string
99945	ctx_         context.Context
99946	header_      http.Header
99947}
99948
99949// List: Retrieves the list of interconnect locations available to the
99950// specified project.
99951func (r *InterconnectLocationsService) List(project string) *InterconnectLocationsListCall {
99952	c := &InterconnectLocationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99953	c.project = project
99954	return c
99955}
99956
99957// Filter sets the optional parameter "filter": A filter expression that
99958// filters resources listed in the response. The expression must specify
99959// the field name, a comparison operator, and the value that you want to
99960// use for filtering. The value must be a string, a number, or a
99961// boolean. The comparison operator must be either `=`, `!=`, `>`, or
99962// `<`.
99963//
99964// For example, if you are filtering Compute Engine instances, you can
99965// exclude instances named `example-instance` by specifying `name !=
99966// example-instance`.
99967//
99968// You can also filter nested fields. For example, you could specify
99969// `scheduling.automaticRestart = false` to include instances only if
99970// they are not scheduled for automatic restarts. You can use filtering
99971// on nested fields to filter based on resource labels.
99972//
99973// To filter on multiple expressions, provide each separate expression
99974// within parentheses. For example: ``` (scheduling.automaticRestart =
99975// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
99976// is an `AND` expression. However, you can include `AND` and `OR`
99977// expressions explicitly. For example: ``` (cpuPlatform = "Intel
99978// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
99979// (scheduling.automaticRestart = true) ```
99980func (c *InterconnectLocationsListCall) Filter(filter string) *InterconnectLocationsListCall {
99981	c.urlParams_.Set("filter", filter)
99982	return c
99983}
99984
99985// MaxResults sets the optional parameter "maxResults": The maximum
99986// number of results per page that should be returned. If the number of
99987// available results is larger than `maxResults`, Compute Engine returns
99988// a `nextPageToken` that can be used to get the next page of results in
99989// subsequent list requests. Acceptable values are `0` to `500`,
99990// inclusive. (Default: `500`)
99991func (c *InterconnectLocationsListCall) MaxResults(maxResults int64) *InterconnectLocationsListCall {
99992	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
99993	return c
99994}
99995
99996// OrderBy sets the optional parameter "orderBy": Sorts list results by
99997// a certain order. By default, results are returned in alphanumerical
99998// order based on the resource name.
99999//
100000// You can also sort results in descending order based on the creation
100001// timestamp using `orderBy="creationTimestamp desc". This sorts
100002// results based on the `creationTimestamp` field in reverse
100003// chronological order (newest result first). Use this to sort resources
100004// like operations so that the newest operation is returned
100005// first.
100006//
100007// Currently, only sorting by `name` or `creationTimestamp desc` is
100008// supported.
100009func (c *InterconnectLocationsListCall) OrderBy(orderBy string) *InterconnectLocationsListCall {
100010	c.urlParams_.Set("orderBy", orderBy)
100011	return c
100012}
100013
100014// PageToken sets the optional parameter "pageToken": Specifies a page
100015// token to use. Set `pageToken` to the `nextPageToken` returned by a
100016// previous list request to get the next page of results.
100017func (c *InterconnectLocationsListCall) PageToken(pageToken string) *InterconnectLocationsListCall {
100018	c.urlParams_.Set("pageToken", pageToken)
100019	return c
100020}
100021
100022// ReturnPartialSuccess sets the optional parameter
100023// "returnPartialSuccess": Opt-in for partial success behavior which
100024// provides partial results in case of failure. The default value is
100025// false.
100026func (c *InterconnectLocationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InterconnectLocationsListCall {
100027	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
100028	return c
100029}
100030
100031// Fields allows partial responses to be retrieved. See
100032// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100033// for more information.
100034func (c *InterconnectLocationsListCall) Fields(s ...googleapi.Field) *InterconnectLocationsListCall {
100035	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100036	return c
100037}
100038
100039// IfNoneMatch sets the optional parameter which makes the operation
100040// fail if the object's ETag matches the given value. This is useful for
100041// getting updates only after the object has changed since the last
100042// request. Use googleapi.IsNotModified to check whether the response
100043// error from Do is the result of In-None-Match.
100044func (c *InterconnectLocationsListCall) IfNoneMatch(entityTag string) *InterconnectLocationsListCall {
100045	c.ifNoneMatch_ = entityTag
100046	return c
100047}
100048
100049// Context sets the context to be used in this call's Do method. Any
100050// pending HTTP request will be aborted if the provided context is
100051// canceled.
100052func (c *InterconnectLocationsListCall) Context(ctx context.Context) *InterconnectLocationsListCall {
100053	c.ctx_ = ctx
100054	return c
100055}
100056
100057// Header returns an http.Header that can be modified by the caller to
100058// add HTTP headers to the request.
100059func (c *InterconnectLocationsListCall) Header() http.Header {
100060	if c.header_ == nil {
100061		c.header_ = make(http.Header)
100062	}
100063	return c.header_
100064}
100065
100066func (c *InterconnectLocationsListCall) doRequest(alt string) (*http.Response, error) {
100067	reqHeaders := make(http.Header)
100068	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
100069	for k, v := range c.header_ {
100070		reqHeaders[k] = v
100071	}
100072	reqHeaders.Set("User-Agent", c.s.userAgent())
100073	if c.ifNoneMatch_ != "" {
100074		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
100075	}
100076	var body io.Reader = nil
100077	c.urlParams_.Set("alt", alt)
100078	c.urlParams_.Set("prettyPrint", "false")
100079	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnectLocations")
100080	urls += "?" + c.urlParams_.Encode()
100081	req, err := http.NewRequest("GET", urls, body)
100082	if err != nil {
100083		return nil, err
100084	}
100085	req.Header = reqHeaders
100086	googleapi.Expand(req.URL, map[string]string{
100087		"project": c.project,
100088	})
100089	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100090}
100091
100092// Do executes the "compute.interconnectLocations.list" call.
100093// Exactly one of *InterconnectLocationList or error will be non-nil.
100094// Any non-2xx status code is an error. Response headers are in either
100095// *InterconnectLocationList.ServerResponse.Header or (if a response was
100096// returned at all) in error.(*googleapi.Error).Header. Use
100097// googleapi.IsNotModified to check whether the returned error was
100098// because http.StatusNotModified was returned.
100099func (c *InterconnectLocationsListCall) Do(opts ...googleapi.CallOption) (*InterconnectLocationList, error) {
100100	gensupport.SetOptions(c.urlParams_, opts...)
100101	res, err := c.doRequest("json")
100102	if res != nil && res.StatusCode == http.StatusNotModified {
100103		if res.Body != nil {
100104			res.Body.Close()
100105		}
100106		return nil, &googleapi.Error{
100107			Code:   res.StatusCode,
100108			Header: res.Header,
100109		}
100110	}
100111	if err != nil {
100112		return nil, err
100113	}
100114	defer googleapi.CloseBody(res)
100115	if err := googleapi.CheckResponse(res); err != nil {
100116		return nil, err
100117	}
100118	ret := &InterconnectLocationList{
100119		ServerResponse: googleapi.ServerResponse{
100120			Header:         res.Header,
100121			HTTPStatusCode: res.StatusCode,
100122		},
100123	}
100124	target := &ret
100125	if err := gensupport.DecodeResponse(target, res); err != nil {
100126		return nil, err
100127	}
100128	return ret, nil
100129	// {
100130	//   "description": "Retrieves the list of interconnect locations available to the specified project.",
100131	//   "httpMethod": "GET",
100132	//   "id": "compute.interconnectLocations.list",
100133	//   "parameterOrder": [
100134	//     "project"
100135	//   ],
100136	//   "parameters": {
100137	//     "filter": {
100138	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
100139	//       "location": "query",
100140	//       "type": "string"
100141	//     },
100142	//     "maxResults": {
100143	//       "default": "500",
100144	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
100145	//       "format": "uint32",
100146	//       "location": "query",
100147	//       "minimum": "0",
100148	//       "type": "integer"
100149	//     },
100150	//     "orderBy": {
100151	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
100152	//       "location": "query",
100153	//       "type": "string"
100154	//     },
100155	//     "pageToken": {
100156	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
100157	//       "location": "query",
100158	//       "type": "string"
100159	//     },
100160	//     "project": {
100161	//       "description": "Project ID for this request.",
100162	//       "location": "path",
100163	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100164	//       "required": true,
100165	//       "type": "string"
100166	//     },
100167	//     "returnPartialSuccess": {
100168	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
100169	//       "location": "query",
100170	//       "type": "boolean"
100171	//     }
100172	//   },
100173	//   "path": "projects/{project}/global/interconnectLocations",
100174	//   "response": {
100175	//     "$ref": "InterconnectLocationList"
100176	//   },
100177	//   "scopes": [
100178	//     "https://www.googleapis.com/auth/cloud-platform",
100179	//     "https://www.googleapis.com/auth/compute",
100180	//     "https://www.googleapis.com/auth/compute.readonly"
100181	//   ]
100182	// }
100183
100184}
100185
100186// Pages invokes f for each page of results.
100187// A non-nil error returned from f will halt the iteration.
100188// The provided context supersedes any context provided to the Context method.
100189func (c *InterconnectLocationsListCall) Pages(ctx context.Context, f func(*InterconnectLocationList) error) error {
100190	c.ctx_ = ctx
100191	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
100192	for {
100193		x, err := c.Do()
100194		if err != nil {
100195			return err
100196		}
100197		if err := f(x); err != nil {
100198			return err
100199		}
100200		if x.NextPageToken == "" {
100201			return nil
100202		}
100203		c.PageToken(x.NextPageToken)
100204	}
100205}
100206
100207// method id "compute.interconnects.delete":
100208
100209type InterconnectsDeleteCall struct {
100210	s            *Service
100211	project      string
100212	interconnect string
100213	urlParams_   gensupport.URLParams
100214	ctx_         context.Context
100215	header_      http.Header
100216}
100217
100218// Delete: Deletes the specified interconnect.
100219func (r *InterconnectsService) Delete(project string, interconnect string) *InterconnectsDeleteCall {
100220	c := &InterconnectsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
100221	c.project = project
100222	c.interconnect = interconnect
100223	return c
100224}
100225
100226// RequestId sets the optional parameter "requestId": An optional
100227// request ID to identify requests. Specify a unique request ID so that
100228// if you must retry your request, the server will know to ignore the
100229// request if it has already been completed.
100230//
100231// For example, consider a situation where you make an initial request
100232// and the request times out. If you make the request again with the
100233// same request ID, the server can check if original operation with the
100234// same request ID was received, and if so, will ignore the second
100235// request. This prevents clients from accidentally creating duplicate
100236// commitments.
100237//
100238// The request ID must be a valid UUID with the exception that zero UUID
100239// is not supported (00000000-0000-0000-0000-000000000000).
100240func (c *InterconnectsDeleteCall) RequestId(requestId string) *InterconnectsDeleteCall {
100241	c.urlParams_.Set("requestId", requestId)
100242	return c
100243}
100244
100245// Fields allows partial responses to be retrieved. See
100246// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100247// for more information.
100248func (c *InterconnectsDeleteCall) Fields(s ...googleapi.Field) *InterconnectsDeleteCall {
100249	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100250	return c
100251}
100252
100253// Context sets the context to be used in this call's Do method. Any
100254// pending HTTP request will be aborted if the provided context is
100255// canceled.
100256func (c *InterconnectsDeleteCall) Context(ctx context.Context) *InterconnectsDeleteCall {
100257	c.ctx_ = ctx
100258	return c
100259}
100260
100261// Header returns an http.Header that can be modified by the caller to
100262// add HTTP headers to the request.
100263func (c *InterconnectsDeleteCall) Header() http.Header {
100264	if c.header_ == nil {
100265		c.header_ = make(http.Header)
100266	}
100267	return c.header_
100268}
100269
100270func (c *InterconnectsDeleteCall) doRequest(alt string) (*http.Response, error) {
100271	reqHeaders := make(http.Header)
100272	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
100273	for k, v := range c.header_ {
100274		reqHeaders[k] = v
100275	}
100276	reqHeaders.Set("User-Agent", c.s.userAgent())
100277	var body io.Reader = nil
100278	c.urlParams_.Set("alt", alt)
100279	c.urlParams_.Set("prettyPrint", "false")
100280	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnects/{interconnect}")
100281	urls += "?" + c.urlParams_.Encode()
100282	req, err := http.NewRequest("DELETE", urls, body)
100283	if err != nil {
100284		return nil, err
100285	}
100286	req.Header = reqHeaders
100287	googleapi.Expand(req.URL, map[string]string{
100288		"project":      c.project,
100289		"interconnect": c.interconnect,
100290	})
100291	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100292}
100293
100294// Do executes the "compute.interconnects.delete" call.
100295// Exactly one of *Operation or error will be non-nil. Any non-2xx
100296// status code is an error. Response headers are in either
100297// *Operation.ServerResponse.Header or (if a response was returned at
100298// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
100299// to check whether the returned error was because
100300// http.StatusNotModified was returned.
100301func (c *InterconnectsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
100302	gensupport.SetOptions(c.urlParams_, opts...)
100303	res, err := c.doRequest("json")
100304	if res != nil && res.StatusCode == http.StatusNotModified {
100305		if res.Body != nil {
100306			res.Body.Close()
100307		}
100308		return nil, &googleapi.Error{
100309			Code:   res.StatusCode,
100310			Header: res.Header,
100311		}
100312	}
100313	if err != nil {
100314		return nil, err
100315	}
100316	defer googleapi.CloseBody(res)
100317	if err := googleapi.CheckResponse(res); err != nil {
100318		return nil, err
100319	}
100320	ret := &Operation{
100321		ServerResponse: googleapi.ServerResponse{
100322			Header:         res.Header,
100323			HTTPStatusCode: res.StatusCode,
100324		},
100325	}
100326	target := &ret
100327	if err := gensupport.DecodeResponse(target, res); err != nil {
100328		return nil, err
100329	}
100330	return ret, nil
100331	// {
100332	//   "description": "Deletes the specified interconnect.",
100333	//   "httpMethod": "DELETE",
100334	//   "id": "compute.interconnects.delete",
100335	//   "parameterOrder": [
100336	//     "project",
100337	//     "interconnect"
100338	//   ],
100339	//   "parameters": {
100340	//     "interconnect": {
100341	//       "description": "Name of the interconnect to delete.",
100342	//       "location": "path",
100343	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
100344	//       "required": true,
100345	//       "type": "string"
100346	//     },
100347	//     "project": {
100348	//       "description": "Project ID for this request.",
100349	//       "location": "path",
100350	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100351	//       "required": true,
100352	//       "type": "string"
100353	//     },
100354	//     "requestId": {
100355	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
100356	//       "location": "query",
100357	//       "type": "string"
100358	//     }
100359	//   },
100360	//   "path": "projects/{project}/global/interconnects/{interconnect}",
100361	//   "response": {
100362	//     "$ref": "Operation"
100363	//   },
100364	//   "scopes": [
100365	//     "https://www.googleapis.com/auth/cloud-platform",
100366	//     "https://www.googleapis.com/auth/compute"
100367	//   ]
100368	// }
100369
100370}
100371
100372// method id "compute.interconnects.get":
100373
100374type InterconnectsGetCall struct {
100375	s            *Service
100376	project      string
100377	interconnect string
100378	urlParams_   gensupport.URLParams
100379	ifNoneMatch_ string
100380	ctx_         context.Context
100381	header_      http.Header
100382}
100383
100384// Get: Returns the specified interconnect. Get a list of available
100385// interconnects by making a list() request.
100386func (r *InterconnectsService) Get(project string, interconnect string) *InterconnectsGetCall {
100387	c := &InterconnectsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
100388	c.project = project
100389	c.interconnect = interconnect
100390	return c
100391}
100392
100393// Fields allows partial responses to be retrieved. See
100394// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100395// for more information.
100396func (c *InterconnectsGetCall) Fields(s ...googleapi.Field) *InterconnectsGetCall {
100397	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100398	return c
100399}
100400
100401// IfNoneMatch sets the optional parameter which makes the operation
100402// fail if the object's ETag matches the given value. This is useful for
100403// getting updates only after the object has changed since the last
100404// request. Use googleapi.IsNotModified to check whether the response
100405// error from Do is the result of In-None-Match.
100406func (c *InterconnectsGetCall) IfNoneMatch(entityTag string) *InterconnectsGetCall {
100407	c.ifNoneMatch_ = entityTag
100408	return c
100409}
100410
100411// Context sets the context to be used in this call's Do method. Any
100412// pending HTTP request will be aborted if the provided context is
100413// canceled.
100414func (c *InterconnectsGetCall) Context(ctx context.Context) *InterconnectsGetCall {
100415	c.ctx_ = ctx
100416	return c
100417}
100418
100419// Header returns an http.Header that can be modified by the caller to
100420// add HTTP headers to the request.
100421func (c *InterconnectsGetCall) Header() http.Header {
100422	if c.header_ == nil {
100423		c.header_ = make(http.Header)
100424	}
100425	return c.header_
100426}
100427
100428func (c *InterconnectsGetCall) doRequest(alt string) (*http.Response, error) {
100429	reqHeaders := make(http.Header)
100430	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
100431	for k, v := range c.header_ {
100432		reqHeaders[k] = v
100433	}
100434	reqHeaders.Set("User-Agent", c.s.userAgent())
100435	if c.ifNoneMatch_ != "" {
100436		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
100437	}
100438	var body io.Reader = nil
100439	c.urlParams_.Set("alt", alt)
100440	c.urlParams_.Set("prettyPrint", "false")
100441	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnects/{interconnect}")
100442	urls += "?" + c.urlParams_.Encode()
100443	req, err := http.NewRequest("GET", urls, body)
100444	if err != nil {
100445		return nil, err
100446	}
100447	req.Header = reqHeaders
100448	googleapi.Expand(req.URL, map[string]string{
100449		"project":      c.project,
100450		"interconnect": c.interconnect,
100451	})
100452	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100453}
100454
100455// Do executes the "compute.interconnects.get" call.
100456// Exactly one of *Interconnect or error will be non-nil. Any non-2xx
100457// status code is an error. Response headers are in either
100458// *Interconnect.ServerResponse.Header or (if a response was returned at
100459// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
100460// to check whether the returned error was because
100461// http.StatusNotModified was returned.
100462func (c *InterconnectsGetCall) Do(opts ...googleapi.CallOption) (*Interconnect, error) {
100463	gensupport.SetOptions(c.urlParams_, opts...)
100464	res, err := c.doRequest("json")
100465	if res != nil && res.StatusCode == http.StatusNotModified {
100466		if res.Body != nil {
100467			res.Body.Close()
100468		}
100469		return nil, &googleapi.Error{
100470			Code:   res.StatusCode,
100471			Header: res.Header,
100472		}
100473	}
100474	if err != nil {
100475		return nil, err
100476	}
100477	defer googleapi.CloseBody(res)
100478	if err := googleapi.CheckResponse(res); err != nil {
100479		return nil, err
100480	}
100481	ret := &Interconnect{
100482		ServerResponse: googleapi.ServerResponse{
100483			Header:         res.Header,
100484			HTTPStatusCode: res.StatusCode,
100485		},
100486	}
100487	target := &ret
100488	if err := gensupport.DecodeResponse(target, res); err != nil {
100489		return nil, err
100490	}
100491	return ret, nil
100492	// {
100493	//   "description": "Returns the specified interconnect. Get a list of available interconnects by making a list() request.",
100494	//   "httpMethod": "GET",
100495	//   "id": "compute.interconnects.get",
100496	//   "parameterOrder": [
100497	//     "project",
100498	//     "interconnect"
100499	//   ],
100500	//   "parameters": {
100501	//     "interconnect": {
100502	//       "description": "Name of the interconnect to return.",
100503	//       "location": "path",
100504	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
100505	//       "required": true,
100506	//       "type": "string"
100507	//     },
100508	//     "project": {
100509	//       "description": "Project ID for this request.",
100510	//       "location": "path",
100511	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100512	//       "required": true,
100513	//       "type": "string"
100514	//     }
100515	//   },
100516	//   "path": "projects/{project}/global/interconnects/{interconnect}",
100517	//   "response": {
100518	//     "$ref": "Interconnect"
100519	//   },
100520	//   "scopes": [
100521	//     "https://www.googleapis.com/auth/cloud-platform",
100522	//     "https://www.googleapis.com/auth/compute",
100523	//     "https://www.googleapis.com/auth/compute.readonly"
100524	//   ]
100525	// }
100526
100527}
100528
100529// method id "compute.interconnects.getDiagnostics":
100530
100531type InterconnectsGetDiagnosticsCall struct {
100532	s            *Service
100533	project      string
100534	interconnect string
100535	urlParams_   gensupport.URLParams
100536	ifNoneMatch_ string
100537	ctx_         context.Context
100538	header_      http.Header
100539}
100540
100541// GetDiagnostics: Returns the interconnectDiagnostics for the specified
100542// interconnect.
100543func (r *InterconnectsService) GetDiagnostics(project string, interconnect string) *InterconnectsGetDiagnosticsCall {
100544	c := &InterconnectsGetDiagnosticsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
100545	c.project = project
100546	c.interconnect = interconnect
100547	return c
100548}
100549
100550// Fields allows partial responses to be retrieved. See
100551// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100552// for more information.
100553func (c *InterconnectsGetDiagnosticsCall) Fields(s ...googleapi.Field) *InterconnectsGetDiagnosticsCall {
100554	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100555	return c
100556}
100557
100558// IfNoneMatch sets the optional parameter which makes the operation
100559// fail if the object's ETag matches the given value. This is useful for
100560// getting updates only after the object has changed since the last
100561// request. Use googleapi.IsNotModified to check whether the response
100562// error from Do is the result of In-None-Match.
100563func (c *InterconnectsGetDiagnosticsCall) IfNoneMatch(entityTag string) *InterconnectsGetDiagnosticsCall {
100564	c.ifNoneMatch_ = entityTag
100565	return c
100566}
100567
100568// Context sets the context to be used in this call's Do method. Any
100569// pending HTTP request will be aborted if the provided context is
100570// canceled.
100571func (c *InterconnectsGetDiagnosticsCall) Context(ctx context.Context) *InterconnectsGetDiagnosticsCall {
100572	c.ctx_ = ctx
100573	return c
100574}
100575
100576// Header returns an http.Header that can be modified by the caller to
100577// add HTTP headers to the request.
100578func (c *InterconnectsGetDiagnosticsCall) Header() http.Header {
100579	if c.header_ == nil {
100580		c.header_ = make(http.Header)
100581	}
100582	return c.header_
100583}
100584
100585func (c *InterconnectsGetDiagnosticsCall) doRequest(alt string) (*http.Response, error) {
100586	reqHeaders := make(http.Header)
100587	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
100588	for k, v := range c.header_ {
100589		reqHeaders[k] = v
100590	}
100591	reqHeaders.Set("User-Agent", c.s.userAgent())
100592	if c.ifNoneMatch_ != "" {
100593		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
100594	}
100595	var body io.Reader = nil
100596	c.urlParams_.Set("alt", alt)
100597	c.urlParams_.Set("prettyPrint", "false")
100598	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnects/{interconnect}/getDiagnostics")
100599	urls += "?" + c.urlParams_.Encode()
100600	req, err := http.NewRequest("GET", urls, body)
100601	if err != nil {
100602		return nil, err
100603	}
100604	req.Header = reqHeaders
100605	googleapi.Expand(req.URL, map[string]string{
100606		"project":      c.project,
100607		"interconnect": c.interconnect,
100608	})
100609	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100610}
100611
100612// Do executes the "compute.interconnects.getDiagnostics" call.
100613// Exactly one of *InterconnectsGetDiagnosticsResponse or error will be
100614// non-nil. Any non-2xx status code is an error. Response headers are in
100615// either *InterconnectsGetDiagnosticsResponse.ServerResponse.Header or
100616// (if a response was returned at all) in
100617// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
100618// whether the returned error was because http.StatusNotModified was
100619// returned.
100620func (c *InterconnectsGetDiagnosticsCall) Do(opts ...googleapi.CallOption) (*InterconnectsGetDiagnosticsResponse, error) {
100621	gensupport.SetOptions(c.urlParams_, opts...)
100622	res, err := c.doRequest("json")
100623	if res != nil && res.StatusCode == http.StatusNotModified {
100624		if res.Body != nil {
100625			res.Body.Close()
100626		}
100627		return nil, &googleapi.Error{
100628			Code:   res.StatusCode,
100629			Header: res.Header,
100630		}
100631	}
100632	if err != nil {
100633		return nil, err
100634	}
100635	defer googleapi.CloseBody(res)
100636	if err := googleapi.CheckResponse(res); err != nil {
100637		return nil, err
100638	}
100639	ret := &InterconnectsGetDiagnosticsResponse{
100640		ServerResponse: googleapi.ServerResponse{
100641			Header:         res.Header,
100642			HTTPStatusCode: res.StatusCode,
100643		},
100644	}
100645	target := &ret
100646	if err := gensupport.DecodeResponse(target, res); err != nil {
100647		return nil, err
100648	}
100649	return ret, nil
100650	// {
100651	//   "description": "Returns the interconnectDiagnostics for the specified interconnect.",
100652	//   "httpMethod": "GET",
100653	//   "id": "compute.interconnects.getDiagnostics",
100654	//   "parameterOrder": [
100655	//     "project",
100656	//     "interconnect"
100657	//   ],
100658	//   "parameters": {
100659	//     "interconnect": {
100660	//       "description": "Name of the interconnect resource to query.",
100661	//       "location": "path",
100662	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
100663	//       "required": true,
100664	//       "type": "string"
100665	//     },
100666	//     "project": {
100667	//       "description": "Project ID for this request.",
100668	//       "location": "path",
100669	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100670	//       "required": true,
100671	//       "type": "string"
100672	//     }
100673	//   },
100674	//   "path": "projects/{project}/global/interconnects/{interconnect}/getDiagnostics",
100675	//   "response": {
100676	//     "$ref": "InterconnectsGetDiagnosticsResponse"
100677	//   },
100678	//   "scopes": [
100679	//     "https://www.googleapis.com/auth/cloud-platform",
100680	//     "https://www.googleapis.com/auth/compute",
100681	//     "https://www.googleapis.com/auth/compute.readonly"
100682	//   ]
100683	// }
100684
100685}
100686
100687// method id "compute.interconnects.insert":
100688
100689type InterconnectsInsertCall struct {
100690	s            *Service
100691	project      string
100692	interconnect *Interconnect
100693	urlParams_   gensupport.URLParams
100694	ctx_         context.Context
100695	header_      http.Header
100696}
100697
100698// Insert: Creates a Interconnect in the specified project using the
100699// data included in the request.
100700func (r *InterconnectsService) Insert(project string, interconnect *Interconnect) *InterconnectsInsertCall {
100701	c := &InterconnectsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
100702	c.project = project
100703	c.interconnect = interconnect
100704	return c
100705}
100706
100707// RequestId sets the optional parameter "requestId": An optional
100708// request ID to identify requests. Specify a unique request ID so that
100709// if you must retry your request, the server will know to ignore the
100710// request if it has already been completed.
100711//
100712// For example, consider a situation where you make an initial request
100713// and the request times out. If you make the request again with the
100714// same request ID, the server can check if original operation with the
100715// same request ID was received, and if so, will ignore the second
100716// request. This prevents clients from accidentally creating duplicate
100717// commitments.
100718//
100719// The request ID must be a valid UUID with the exception that zero UUID
100720// is not supported (00000000-0000-0000-0000-000000000000).
100721func (c *InterconnectsInsertCall) RequestId(requestId string) *InterconnectsInsertCall {
100722	c.urlParams_.Set("requestId", requestId)
100723	return c
100724}
100725
100726// Fields allows partial responses to be retrieved. See
100727// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100728// for more information.
100729func (c *InterconnectsInsertCall) Fields(s ...googleapi.Field) *InterconnectsInsertCall {
100730	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100731	return c
100732}
100733
100734// Context sets the context to be used in this call's Do method. Any
100735// pending HTTP request will be aborted if the provided context is
100736// canceled.
100737func (c *InterconnectsInsertCall) Context(ctx context.Context) *InterconnectsInsertCall {
100738	c.ctx_ = ctx
100739	return c
100740}
100741
100742// Header returns an http.Header that can be modified by the caller to
100743// add HTTP headers to the request.
100744func (c *InterconnectsInsertCall) Header() http.Header {
100745	if c.header_ == nil {
100746		c.header_ = make(http.Header)
100747	}
100748	return c.header_
100749}
100750
100751func (c *InterconnectsInsertCall) doRequest(alt string) (*http.Response, error) {
100752	reqHeaders := make(http.Header)
100753	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
100754	for k, v := range c.header_ {
100755		reqHeaders[k] = v
100756	}
100757	reqHeaders.Set("User-Agent", c.s.userAgent())
100758	var body io.Reader = nil
100759	body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnect)
100760	if err != nil {
100761		return nil, err
100762	}
100763	reqHeaders.Set("Content-Type", "application/json")
100764	c.urlParams_.Set("alt", alt)
100765	c.urlParams_.Set("prettyPrint", "false")
100766	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnects")
100767	urls += "?" + c.urlParams_.Encode()
100768	req, err := http.NewRequest("POST", urls, body)
100769	if err != nil {
100770		return nil, err
100771	}
100772	req.Header = reqHeaders
100773	googleapi.Expand(req.URL, map[string]string{
100774		"project": c.project,
100775	})
100776	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100777}
100778
100779// Do executes the "compute.interconnects.insert" call.
100780// Exactly one of *Operation or error will be non-nil. Any non-2xx
100781// status code is an error. Response headers are in either
100782// *Operation.ServerResponse.Header or (if a response was returned at
100783// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
100784// to check whether the returned error was because
100785// http.StatusNotModified was returned.
100786func (c *InterconnectsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
100787	gensupport.SetOptions(c.urlParams_, opts...)
100788	res, err := c.doRequest("json")
100789	if res != nil && res.StatusCode == http.StatusNotModified {
100790		if res.Body != nil {
100791			res.Body.Close()
100792		}
100793		return nil, &googleapi.Error{
100794			Code:   res.StatusCode,
100795			Header: res.Header,
100796		}
100797	}
100798	if err != nil {
100799		return nil, err
100800	}
100801	defer googleapi.CloseBody(res)
100802	if err := googleapi.CheckResponse(res); err != nil {
100803		return nil, err
100804	}
100805	ret := &Operation{
100806		ServerResponse: googleapi.ServerResponse{
100807			Header:         res.Header,
100808			HTTPStatusCode: res.StatusCode,
100809		},
100810	}
100811	target := &ret
100812	if err := gensupport.DecodeResponse(target, res); err != nil {
100813		return nil, err
100814	}
100815	return ret, nil
100816	// {
100817	//   "description": "Creates a Interconnect in the specified project using the data included in the request.",
100818	//   "httpMethod": "POST",
100819	//   "id": "compute.interconnects.insert",
100820	//   "parameterOrder": [
100821	//     "project"
100822	//   ],
100823	//   "parameters": {
100824	//     "project": {
100825	//       "description": "Project ID for this request.",
100826	//       "location": "path",
100827	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100828	//       "required": true,
100829	//       "type": "string"
100830	//     },
100831	//     "requestId": {
100832	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
100833	//       "location": "query",
100834	//       "type": "string"
100835	//     }
100836	//   },
100837	//   "path": "projects/{project}/global/interconnects",
100838	//   "request": {
100839	//     "$ref": "Interconnect"
100840	//   },
100841	//   "response": {
100842	//     "$ref": "Operation"
100843	//   },
100844	//   "scopes": [
100845	//     "https://www.googleapis.com/auth/cloud-platform",
100846	//     "https://www.googleapis.com/auth/compute"
100847	//   ]
100848	// }
100849
100850}
100851
100852// method id "compute.interconnects.list":
100853
100854type InterconnectsListCall struct {
100855	s            *Service
100856	project      string
100857	urlParams_   gensupport.URLParams
100858	ifNoneMatch_ string
100859	ctx_         context.Context
100860	header_      http.Header
100861}
100862
100863// List: Retrieves the list of interconnect available to the specified
100864// project.
100865func (r *InterconnectsService) List(project string) *InterconnectsListCall {
100866	c := &InterconnectsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
100867	c.project = project
100868	return c
100869}
100870
100871// Filter sets the optional parameter "filter": A filter expression that
100872// filters resources listed in the response. The expression must specify
100873// the field name, a comparison operator, and the value that you want to
100874// use for filtering. The value must be a string, a number, or a
100875// boolean. The comparison operator must be either `=`, `!=`, `>`, or
100876// `<`.
100877//
100878// For example, if you are filtering Compute Engine instances, you can
100879// exclude instances named `example-instance` by specifying `name !=
100880// example-instance`.
100881//
100882// You can also filter nested fields. For example, you could specify
100883// `scheduling.automaticRestart = false` to include instances only if
100884// they are not scheduled for automatic restarts. You can use filtering
100885// on nested fields to filter based on resource labels.
100886//
100887// To filter on multiple expressions, provide each separate expression
100888// within parentheses. For example: ``` (scheduling.automaticRestart =
100889// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
100890// is an `AND` expression. However, you can include `AND` and `OR`
100891// expressions explicitly. For example: ``` (cpuPlatform = "Intel
100892// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
100893// (scheduling.automaticRestart = true) ```
100894func (c *InterconnectsListCall) Filter(filter string) *InterconnectsListCall {
100895	c.urlParams_.Set("filter", filter)
100896	return c
100897}
100898
100899// MaxResults sets the optional parameter "maxResults": The maximum
100900// number of results per page that should be returned. If the number of
100901// available results is larger than `maxResults`, Compute Engine returns
100902// a `nextPageToken` that can be used to get the next page of results in
100903// subsequent list requests. Acceptable values are `0` to `500`,
100904// inclusive. (Default: `500`)
100905func (c *InterconnectsListCall) MaxResults(maxResults int64) *InterconnectsListCall {
100906	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
100907	return c
100908}
100909
100910// OrderBy sets the optional parameter "orderBy": Sorts list results by
100911// a certain order. By default, results are returned in alphanumerical
100912// order based on the resource name.
100913//
100914// You can also sort results in descending order based on the creation
100915// timestamp using `orderBy="creationTimestamp desc". This sorts
100916// results based on the `creationTimestamp` field in reverse
100917// chronological order (newest result first). Use this to sort resources
100918// like operations so that the newest operation is returned
100919// first.
100920//
100921// Currently, only sorting by `name` or `creationTimestamp desc` is
100922// supported.
100923func (c *InterconnectsListCall) OrderBy(orderBy string) *InterconnectsListCall {
100924	c.urlParams_.Set("orderBy", orderBy)
100925	return c
100926}
100927
100928// PageToken sets the optional parameter "pageToken": Specifies a page
100929// token to use. Set `pageToken` to the `nextPageToken` returned by a
100930// previous list request to get the next page of results.
100931func (c *InterconnectsListCall) PageToken(pageToken string) *InterconnectsListCall {
100932	c.urlParams_.Set("pageToken", pageToken)
100933	return c
100934}
100935
100936// ReturnPartialSuccess sets the optional parameter
100937// "returnPartialSuccess": Opt-in for partial success behavior which
100938// provides partial results in case of failure. The default value is
100939// false.
100940func (c *InterconnectsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InterconnectsListCall {
100941	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
100942	return c
100943}
100944
100945// Fields allows partial responses to be retrieved. See
100946// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100947// for more information.
100948func (c *InterconnectsListCall) Fields(s ...googleapi.Field) *InterconnectsListCall {
100949	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100950	return c
100951}
100952
100953// IfNoneMatch sets the optional parameter which makes the operation
100954// fail if the object's ETag matches the given value. This is useful for
100955// getting updates only after the object has changed since the last
100956// request. Use googleapi.IsNotModified to check whether the response
100957// error from Do is the result of In-None-Match.
100958func (c *InterconnectsListCall) IfNoneMatch(entityTag string) *InterconnectsListCall {
100959	c.ifNoneMatch_ = entityTag
100960	return c
100961}
100962
100963// Context sets the context to be used in this call's Do method. Any
100964// pending HTTP request will be aborted if the provided context is
100965// canceled.
100966func (c *InterconnectsListCall) Context(ctx context.Context) *InterconnectsListCall {
100967	c.ctx_ = ctx
100968	return c
100969}
100970
100971// Header returns an http.Header that can be modified by the caller to
100972// add HTTP headers to the request.
100973func (c *InterconnectsListCall) Header() http.Header {
100974	if c.header_ == nil {
100975		c.header_ = make(http.Header)
100976	}
100977	return c.header_
100978}
100979
100980func (c *InterconnectsListCall) doRequest(alt string) (*http.Response, error) {
100981	reqHeaders := make(http.Header)
100982	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
100983	for k, v := range c.header_ {
100984		reqHeaders[k] = v
100985	}
100986	reqHeaders.Set("User-Agent", c.s.userAgent())
100987	if c.ifNoneMatch_ != "" {
100988		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
100989	}
100990	var body io.Reader = nil
100991	c.urlParams_.Set("alt", alt)
100992	c.urlParams_.Set("prettyPrint", "false")
100993	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnects")
100994	urls += "?" + c.urlParams_.Encode()
100995	req, err := http.NewRequest("GET", urls, body)
100996	if err != nil {
100997		return nil, err
100998	}
100999	req.Header = reqHeaders
101000	googleapi.Expand(req.URL, map[string]string{
101001		"project": c.project,
101002	})
101003	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101004}
101005
101006// Do executes the "compute.interconnects.list" call.
101007// Exactly one of *InterconnectList or error will be non-nil. Any
101008// non-2xx status code is an error. Response headers are in either
101009// *InterconnectList.ServerResponse.Header or (if a response was
101010// returned at all) in error.(*googleapi.Error).Header. Use
101011// googleapi.IsNotModified to check whether the returned error was
101012// because http.StatusNotModified was returned.
101013func (c *InterconnectsListCall) Do(opts ...googleapi.CallOption) (*InterconnectList, error) {
101014	gensupport.SetOptions(c.urlParams_, opts...)
101015	res, err := c.doRequest("json")
101016	if res != nil && res.StatusCode == http.StatusNotModified {
101017		if res.Body != nil {
101018			res.Body.Close()
101019		}
101020		return nil, &googleapi.Error{
101021			Code:   res.StatusCode,
101022			Header: res.Header,
101023		}
101024	}
101025	if err != nil {
101026		return nil, err
101027	}
101028	defer googleapi.CloseBody(res)
101029	if err := googleapi.CheckResponse(res); err != nil {
101030		return nil, err
101031	}
101032	ret := &InterconnectList{
101033		ServerResponse: googleapi.ServerResponse{
101034			Header:         res.Header,
101035			HTTPStatusCode: res.StatusCode,
101036		},
101037	}
101038	target := &ret
101039	if err := gensupport.DecodeResponse(target, res); err != nil {
101040		return nil, err
101041	}
101042	return ret, nil
101043	// {
101044	//   "description": "Retrieves the list of interconnect available to the specified project.",
101045	//   "httpMethod": "GET",
101046	//   "id": "compute.interconnects.list",
101047	//   "parameterOrder": [
101048	//     "project"
101049	//   ],
101050	//   "parameters": {
101051	//     "filter": {
101052	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
101053	//       "location": "query",
101054	//       "type": "string"
101055	//     },
101056	//     "maxResults": {
101057	//       "default": "500",
101058	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
101059	//       "format": "uint32",
101060	//       "location": "query",
101061	//       "minimum": "0",
101062	//       "type": "integer"
101063	//     },
101064	//     "orderBy": {
101065	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
101066	//       "location": "query",
101067	//       "type": "string"
101068	//     },
101069	//     "pageToken": {
101070	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
101071	//       "location": "query",
101072	//       "type": "string"
101073	//     },
101074	//     "project": {
101075	//       "description": "Project ID for this request.",
101076	//       "location": "path",
101077	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101078	//       "required": true,
101079	//       "type": "string"
101080	//     },
101081	//     "returnPartialSuccess": {
101082	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
101083	//       "location": "query",
101084	//       "type": "boolean"
101085	//     }
101086	//   },
101087	//   "path": "projects/{project}/global/interconnects",
101088	//   "response": {
101089	//     "$ref": "InterconnectList"
101090	//   },
101091	//   "scopes": [
101092	//     "https://www.googleapis.com/auth/cloud-platform",
101093	//     "https://www.googleapis.com/auth/compute",
101094	//     "https://www.googleapis.com/auth/compute.readonly"
101095	//   ]
101096	// }
101097
101098}
101099
101100// Pages invokes f for each page of results.
101101// A non-nil error returned from f will halt the iteration.
101102// The provided context supersedes any context provided to the Context method.
101103func (c *InterconnectsListCall) Pages(ctx context.Context, f func(*InterconnectList) error) error {
101104	c.ctx_ = ctx
101105	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
101106	for {
101107		x, err := c.Do()
101108		if err != nil {
101109			return err
101110		}
101111		if err := f(x); err != nil {
101112			return err
101113		}
101114		if x.NextPageToken == "" {
101115			return nil
101116		}
101117		c.PageToken(x.NextPageToken)
101118	}
101119}
101120
101121// method id "compute.interconnects.patch":
101122
101123type InterconnectsPatchCall struct {
101124	s             *Service
101125	project       string
101126	interconnect  string
101127	interconnect2 *Interconnect
101128	urlParams_    gensupport.URLParams
101129	ctx_          context.Context
101130	header_       http.Header
101131}
101132
101133// Patch: Updates the specified interconnect with the data included in
101134// the request. This method supports PATCH semantics and uses the JSON
101135// merge patch format and processing rules.
101136func (r *InterconnectsService) Patch(project string, interconnect string, interconnect2 *Interconnect) *InterconnectsPatchCall {
101137	c := &InterconnectsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101138	c.project = project
101139	c.interconnect = interconnect
101140	c.interconnect2 = interconnect2
101141	return c
101142}
101143
101144// RequestId sets the optional parameter "requestId": An optional
101145// request ID to identify requests. Specify a unique request ID so that
101146// if you must retry your request, the server will know to ignore the
101147// request if it has already been completed.
101148//
101149// For example, consider a situation where you make an initial request
101150// and the request times out. If you make the request again with the
101151// same request ID, the server can check if original operation with the
101152// same request ID was received, and if so, will ignore the second
101153// request. This prevents clients from accidentally creating duplicate
101154// commitments.
101155//
101156// The request ID must be a valid UUID with the exception that zero UUID
101157// is not supported (00000000-0000-0000-0000-000000000000).
101158func (c *InterconnectsPatchCall) RequestId(requestId string) *InterconnectsPatchCall {
101159	c.urlParams_.Set("requestId", requestId)
101160	return c
101161}
101162
101163// Fields allows partial responses to be retrieved. See
101164// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101165// for more information.
101166func (c *InterconnectsPatchCall) Fields(s ...googleapi.Field) *InterconnectsPatchCall {
101167	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101168	return c
101169}
101170
101171// Context sets the context to be used in this call's Do method. Any
101172// pending HTTP request will be aborted if the provided context is
101173// canceled.
101174func (c *InterconnectsPatchCall) Context(ctx context.Context) *InterconnectsPatchCall {
101175	c.ctx_ = ctx
101176	return c
101177}
101178
101179// Header returns an http.Header that can be modified by the caller to
101180// add HTTP headers to the request.
101181func (c *InterconnectsPatchCall) Header() http.Header {
101182	if c.header_ == nil {
101183		c.header_ = make(http.Header)
101184	}
101185	return c.header_
101186}
101187
101188func (c *InterconnectsPatchCall) doRequest(alt string) (*http.Response, error) {
101189	reqHeaders := make(http.Header)
101190	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
101191	for k, v := range c.header_ {
101192		reqHeaders[k] = v
101193	}
101194	reqHeaders.Set("User-Agent", c.s.userAgent())
101195	var body io.Reader = nil
101196	body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnect2)
101197	if err != nil {
101198		return nil, err
101199	}
101200	reqHeaders.Set("Content-Type", "application/json")
101201	c.urlParams_.Set("alt", alt)
101202	c.urlParams_.Set("prettyPrint", "false")
101203	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnects/{interconnect}")
101204	urls += "?" + c.urlParams_.Encode()
101205	req, err := http.NewRequest("PATCH", urls, body)
101206	if err != nil {
101207		return nil, err
101208	}
101209	req.Header = reqHeaders
101210	googleapi.Expand(req.URL, map[string]string{
101211		"project":      c.project,
101212		"interconnect": c.interconnect,
101213	})
101214	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101215}
101216
101217// Do executes the "compute.interconnects.patch" call.
101218// Exactly one of *Operation or error will be non-nil. Any non-2xx
101219// status code is an error. Response headers are in either
101220// *Operation.ServerResponse.Header or (if a response was returned at
101221// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
101222// to check whether the returned error was because
101223// http.StatusNotModified was returned.
101224func (c *InterconnectsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
101225	gensupport.SetOptions(c.urlParams_, opts...)
101226	res, err := c.doRequest("json")
101227	if res != nil && res.StatusCode == http.StatusNotModified {
101228		if res.Body != nil {
101229			res.Body.Close()
101230		}
101231		return nil, &googleapi.Error{
101232			Code:   res.StatusCode,
101233			Header: res.Header,
101234		}
101235	}
101236	if err != nil {
101237		return nil, err
101238	}
101239	defer googleapi.CloseBody(res)
101240	if err := googleapi.CheckResponse(res); err != nil {
101241		return nil, err
101242	}
101243	ret := &Operation{
101244		ServerResponse: googleapi.ServerResponse{
101245			Header:         res.Header,
101246			HTTPStatusCode: res.StatusCode,
101247		},
101248	}
101249	target := &ret
101250	if err := gensupport.DecodeResponse(target, res); err != nil {
101251		return nil, err
101252	}
101253	return ret, nil
101254	// {
101255	//   "description": "Updates the specified interconnect with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.",
101256	//   "httpMethod": "PATCH",
101257	//   "id": "compute.interconnects.patch",
101258	//   "parameterOrder": [
101259	//     "project",
101260	//     "interconnect"
101261	//   ],
101262	//   "parameters": {
101263	//     "interconnect": {
101264	//       "description": "Name of the interconnect to update.",
101265	//       "location": "path",
101266	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
101267	//       "required": true,
101268	//       "type": "string"
101269	//     },
101270	//     "project": {
101271	//       "description": "Project ID for this request.",
101272	//       "location": "path",
101273	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101274	//       "required": true,
101275	//       "type": "string"
101276	//     },
101277	//     "requestId": {
101278	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
101279	//       "location": "query",
101280	//       "type": "string"
101281	//     }
101282	//   },
101283	//   "path": "projects/{project}/global/interconnects/{interconnect}",
101284	//   "request": {
101285	//     "$ref": "Interconnect"
101286	//   },
101287	//   "response": {
101288	//     "$ref": "Operation"
101289	//   },
101290	//   "scopes": [
101291	//     "https://www.googleapis.com/auth/cloud-platform",
101292	//     "https://www.googleapis.com/auth/compute"
101293	//   ]
101294	// }
101295
101296}
101297
101298// method id "compute.interconnects.setLabels":
101299
101300type InterconnectsSetLabelsCall struct {
101301	s                      *Service
101302	project                string
101303	resource               string
101304	globalsetlabelsrequest *GlobalSetLabelsRequest
101305	urlParams_             gensupport.URLParams
101306	ctx_                   context.Context
101307	header_                http.Header
101308}
101309
101310// SetLabels: Sets the labels on an Interconnect. To learn more about
101311// labels, read the Labeling Resources documentation.
101312func (r *InterconnectsService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *InterconnectsSetLabelsCall {
101313	c := &InterconnectsSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101314	c.project = project
101315	c.resource = resource
101316	c.globalsetlabelsrequest = globalsetlabelsrequest
101317	return c
101318}
101319
101320// Fields allows partial responses to be retrieved. See
101321// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101322// for more information.
101323func (c *InterconnectsSetLabelsCall) Fields(s ...googleapi.Field) *InterconnectsSetLabelsCall {
101324	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101325	return c
101326}
101327
101328// Context sets the context to be used in this call's Do method. Any
101329// pending HTTP request will be aborted if the provided context is
101330// canceled.
101331func (c *InterconnectsSetLabelsCall) Context(ctx context.Context) *InterconnectsSetLabelsCall {
101332	c.ctx_ = ctx
101333	return c
101334}
101335
101336// Header returns an http.Header that can be modified by the caller to
101337// add HTTP headers to the request.
101338func (c *InterconnectsSetLabelsCall) Header() http.Header {
101339	if c.header_ == nil {
101340		c.header_ = make(http.Header)
101341	}
101342	return c.header_
101343}
101344
101345func (c *InterconnectsSetLabelsCall) doRequest(alt string) (*http.Response, error) {
101346	reqHeaders := make(http.Header)
101347	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
101348	for k, v := range c.header_ {
101349		reqHeaders[k] = v
101350	}
101351	reqHeaders.Set("User-Agent", c.s.userAgent())
101352	var body io.Reader = nil
101353	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
101354	if err != nil {
101355		return nil, err
101356	}
101357	reqHeaders.Set("Content-Type", "application/json")
101358	c.urlParams_.Set("alt", alt)
101359	c.urlParams_.Set("prettyPrint", "false")
101360	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnects/{resource}/setLabels")
101361	urls += "?" + c.urlParams_.Encode()
101362	req, err := http.NewRequest("POST", urls, body)
101363	if err != nil {
101364		return nil, err
101365	}
101366	req.Header = reqHeaders
101367	googleapi.Expand(req.URL, map[string]string{
101368		"project":  c.project,
101369		"resource": c.resource,
101370	})
101371	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101372}
101373
101374// Do executes the "compute.interconnects.setLabels" call.
101375// Exactly one of *Operation or error will be non-nil. Any non-2xx
101376// status code is an error. Response headers are in either
101377// *Operation.ServerResponse.Header or (if a response was returned at
101378// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
101379// to check whether the returned error was because
101380// http.StatusNotModified was returned.
101381func (c *InterconnectsSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
101382	gensupport.SetOptions(c.urlParams_, opts...)
101383	res, err := c.doRequest("json")
101384	if res != nil && res.StatusCode == http.StatusNotModified {
101385		if res.Body != nil {
101386			res.Body.Close()
101387		}
101388		return nil, &googleapi.Error{
101389			Code:   res.StatusCode,
101390			Header: res.Header,
101391		}
101392	}
101393	if err != nil {
101394		return nil, err
101395	}
101396	defer googleapi.CloseBody(res)
101397	if err := googleapi.CheckResponse(res); err != nil {
101398		return nil, err
101399	}
101400	ret := &Operation{
101401		ServerResponse: googleapi.ServerResponse{
101402			Header:         res.Header,
101403			HTTPStatusCode: res.StatusCode,
101404		},
101405	}
101406	target := &ret
101407	if err := gensupport.DecodeResponse(target, res); err != nil {
101408		return nil, err
101409	}
101410	return ret, nil
101411	// {
101412	//   "description": "Sets the labels on an Interconnect. To learn more about labels, read the Labeling Resources documentation.",
101413	//   "httpMethod": "POST",
101414	//   "id": "compute.interconnects.setLabels",
101415	//   "parameterOrder": [
101416	//     "project",
101417	//     "resource"
101418	//   ],
101419	//   "parameters": {
101420	//     "project": {
101421	//       "description": "Project ID for this request.",
101422	//       "location": "path",
101423	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101424	//       "required": true,
101425	//       "type": "string"
101426	//     },
101427	//     "resource": {
101428	//       "description": "Name or id of the resource for this request.",
101429	//       "location": "path",
101430	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
101431	//       "required": true,
101432	//       "type": "string"
101433	//     }
101434	//   },
101435	//   "path": "projects/{project}/global/interconnects/{resource}/setLabels",
101436	//   "request": {
101437	//     "$ref": "GlobalSetLabelsRequest"
101438	//   },
101439	//   "response": {
101440	//     "$ref": "Operation"
101441	//   },
101442	//   "scopes": [
101443	//     "https://www.googleapis.com/auth/cloud-platform",
101444	//     "https://www.googleapis.com/auth/compute"
101445	//   ]
101446	// }
101447
101448}
101449
101450// method id "compute.interconnects.testIamPermissions":
101451
101452type InterconnectsTestIamPermissionsCall struct {
101453	s                      *Service
101454	project                string
101455	resource               string
101456	testpermissionsrequest *TestPermissionsRequest
101457	urlParams_             gensupport.URLParams
101458	ctx_                   context.Context
101459	header_                http.Header
101460}
101461
101462// TestIamPermissions: Returns permissions that a caller has on the
101463// specified resource.
101464func (r *InterconnectsService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *InterconnectsTestIamPermissionsCall {
101465	c := &InterconnectsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101466	c.project = project
101467	c.resource = resource
101468	c.testpermissionsrequest = testpermissionsrequest
101469	return c
101470}
101471
101472// Fields allows partial responses to be retrieved. See
101473// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101474// for more information.
101475func (c *InterconnectsTestIamPermissionsCall) Fields(s ...googleapi.Field) *InterconnectsTestIamPermissionsCall {
101476	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101477	return c
101478}
101479
101480// Context sets the context to be used in this call's Do method. Any
101481// pending HTTP request will be aborted if the provided context is
101482// canceled.
101483func (c *InterconnectsTestIamPermissionsCall) Context(ctx context.Context) *InterconnectsTestIamPermissionsCall {
101484	c.ctx_ = ctx
101485	return c
101486}
101487
101488// Header returns an http.Header that can be modified by the caller to
101489// add HTTP headers to the request.
101490func (c *InterconnectsTestIamPermissionsCall) Header() http.Header {
101491	if c.header_ == nil {
101492		c.header_ = make(http.Header)
101493	}
101494	return c.header_
101495}
101496
101497func (c *InterconnectsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
101498	reqHeaders := make(http.Header)
101499	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
101500	for k, v := range c.header_ {
101501		reqHeaders[k] = v
101502	}
101503	reqHeaders.Set("User-Agent", c.s.userAgent())
101504	var body io.Reader = nil
101505	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
101506	if err != nil {
101507		return nil, err
101508	}
101509	reqHeaders.Set("Content-Type", "application/json")
101510	c.urlParams_.Set("alt", alt)
101511	c.urlParams_.Set("prettyPrint", "false")
101512	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnects/{resource}/testIamPermissions")
101513	urls += "?" + c.urlParams_.Encode()
101514	req, err := http.NewRequest("POST", urls, body)
101515	if err != nil {
101516		return nil, err
101517	}
101518	req.Header = reqHeaders
101519	googleapi.Expand(req.URL, map[string]string{
101520		"project":  c.project,
101521		"resource": c.resource,
101522	})
101523	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101524}
101525
101526// Do executes the "compute.interconnects.testIamPermissions" call.
101527// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
101528// non-2xx status code is an error. Response headers are in either
101529// *TestPermissionsResponse.ServerResponse.Header or (if a response was
101530// returned at all) in error.(*googleapi.Error).Header. Use
101531// googleapi.IsNotModified to check whether the returned error was
101532// because http.StatusNotModified was returned.
101533func (c *InterconnectsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
101534	gensupport.SetOptions(c.urlParams_, opts...)
101535	res, err := c.doRequest("json")
101536	if res != nil && res.StatusCode == http.StatusNotModified {
101537		if res.Body != nil {
101538			res.Body.Close()
101539		}
101540		return nil, &googleapi.Error{
101541			Code:   res.StatusCode,
101542			Header: res.Header,
101543		}
101544	}
101545	if err != nil {
101546		return nil, err
101547	}
101548	defer googleapi.CloseBody(res)
101549	if err := googleapi.CheckResponse(res); err != nil {
101550		return nil, err
101551	}
101552	ret := &TestPermissionsResponse{
101553		ServerResponse: googleapi.ServerResponse{
101554			Header:         res.Header,
101555			HTTPStatusCode: res.StatusCode,
101556		},
101557	}
101558	target := &ret
101559	if err := gensupport.DecodeResponse(target, res); err != nil {
101560		return nil, err
101561	}
101562	return ret, nil
101563	// {
101564	//   "description": "Returns permissions that a caller has on the specified resource.",
101565	//   "httpMethod": "POST",
101566	//   "id": "compute.interconnects.testIamPermissions",
101567	//   "parameterOrder": [
101568	//     "project",
101569	//     "resource"
101570	//   ],
101571	//   "parameters": {
101572	//     "project": {
101573	//       "description": "Project ID for this request.",
101574	//       "location": "path",
101575	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101576	//       "required": true,
101577	//       "type": "string"
101578	//     },
101579	//     "resource": {
101580	//       "description": "Name or id of the resource for this request.",
101581	//       "location": "path",
101582	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
101583	//       "required": true,
101584	//       "type": "string"
101585	//     }
101586	//   },
101587	//   "path": "projects/{project}/global/interconnects/{resource}/testIamPermissions",
101588	//   "request": {
101589	//     "$ref": "TestPermissionsRequest"
101590	//   },
101591	//   "response": {
101592	//     "$ref": "TestPermissionsResponse"
101593	//   },
101594	//   "scopes": [
101595	//     "https://www.googleapis.com/auth/cloud-platform",
101596	//     "https://www.googleapis.com/auth/compute",
101597	//     "https://www.googleapis.com/auth/compute.readonly"
101598	//   ]
101599	// }
101600
101601}
101602
101603// method id "compute.licenseCodes.get":
101604
101605type LicenseCodesGetCall struct {
101606	s            *Service
101607	project      string
101608	licenseCode  string
101609	urlParams_   gensupport.URLParams
101610	ifNoneMatch_ string
101611	ctx_         context.Context
101612	header_      http.Header
101613}
101614
101615// Get: Return a specified license code. License codes are mirrored
101616// across all projects that have permissions to read the License Code.
101617// Caution This resource is intended for use only by third-party
101618// partners who are creating Cloud Marketplace images.
101619func (r *LicenseCodesService) Get(project string, licenseCode string) *LicenseCodesGetCall {
101620	c := &LicenseCodesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101621	c.project = project
101622	c.licenseCode = licenseCode
101623	return c
101624}
101625
101626// Fields allows partial responses to be retrieved. See
101627// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101628// for more information.
101629func (c *LicenseCodesGetCall) Fields(s ...googleapi.Field) *LicenseCodesGetCall {
101630	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101631	return c
101632}
101633
101634// IfNoneMatch sets the optional parameter which makes the operation
101635// fail if the object's ETag matches the given value. This is useful for
101636// getting updates only after the object has changed since the last
101637// request. Use googleapi.IsNotModified to check whether the response
101638// error from Do is the result of In-None-Match.
101639func (c *LicenseCodesGetCall) IfNoneMatch(entityTag string) *LicenseCodesGetCall {
101640	c.ifNoneMatch_ = entityTag
101641	return c
101642}
101643
101644// Context sets the context to be used in this call's Do method. Any
101645// pending HTTP request will be aborted if the provided context is
101646// canceled.
101647func (c *LicenseCodesGetCall) Context(ctx context.Context) *LicenseCodesGetCall {
101648	c.ctx_ = ctx
101649	return c
101650}
101651
101652// Header returns an http.Header that can be modified by the caller to
101653// add HTTP headers to the request.
101654func (c *LicenseCodesGetCall) Header() http.Header {
101655	if c.header_ == nil {
101656		c.header_ = make(http.Header)
101657	}
101658	return c.header_
101659}
101660
101661func (c *LicenseCodesGetCall) doRequest(alt string) (*http.Response, error) {
101662	reqHeaders := make(http.Header)
101663	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
101664	for k, v := range c.header_ {
101665		reqHeaders[k] = v
101666	}
101667	reqHeaders.Set("User-Agent", c.s.userAgent())
101668	if c.ifNoneMatch_ != "" {
101669		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
101670	}
101671	var body io.Reader = nil
101672	c.urlParams_.Set("alt", alt)
101673	c.urlParams_.Set("prettyPrint", "false")
101674	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenseCodes/{licenseCode}")
101675	urls += "?" + c.urlParams_.Encode()
101676	req, err := http.NewRequest("GET", urls, body)
101677	if err != nil {
101678		return nil, err
101679	}
101680	req.Header = reqHeaders
101681	googleapi.Expand(req.URL, map[string]string{
101682		"project":     c.project,
101683		"licenseCode": c.licenseCode,
101684	})
101685	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101686}
101687
101688// Do executes the "compute.licenseCodes.get" call.
101689// Exactly one of *LicenseCode or error will be non-nil. Any non-2xx
101690// status code is an error. Response headers are in either
101691// *LicenseCode.ServerResponse.Header or (if a response was returned at
101692// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
101693// to check whether the returned error was because
101694// http.StatusNotModified was returned.
101695func (c *LicenseCodesGetCall) Do(opts ...googleapi.CallOption) (*LicenseCode, error) {
101696	gensupport.SetOptions(c.urlParams_, opts...)
101697	res, err := c.doRequest("json")
101698	if res != nil && res.StatusCode == http.StatusNotModified {
101699		if res.Body != nil {
101700			res.Body.Close()
101701		}
101702		return nil, &googleapi.Error{
101703			Code:   res.StatusCode,
101704			Header: res.Header,
101705		}
101706	}
101707	if err != nil {
101708		return nil, err
101709	}
101710	defer googleapi.CloseBody(res)
101711	if err := googleapi.CheckResponse(res); err != nil {
101712		return nil, err
101713	}
101714	ret := &LicenseCode{
101715		ServerResponse: googleapi.ServerResponse{
101716			Header:         res.Header,
101717			HTTPStatusCode: res.StatusCode,
101718		},
101719	}
101720	target := &ret
101721	if err := gensupport.DecodeResponse(target, res); err != nil {
101722		return nil, err
101723	}
101724	return ret, nil
101725	// {
101726	//   "description": "Return a specified license code. License codes are mirrored across all projects that have permissions to read the License Code.  Caution This resource is intended for use only by third-party partners who are creating Cloud Marketplace images.",
101727	//   "httpMethod": "GET",
101728	//   "id": "compute.licenseCodes.get",
101729	//   "parameterOrder": [
101730	//     "project",
101731	//     "licenseCode"
101732	//   ],
101733	//   "parameters": {
101734	//     "licenseCode": {
101735	//       "description": "Number corresponding to the License code resource to return.",
101736	//       "location": "path",
101737	//       "pattern": "[0-9]{0,61}?",
101738	//       "required": true,
101739	//       "type": "string"
101740	//     },
101741	//     "project": {
101742	//       "description": "Project ID for this request.",
101743	//       "location": "path",
101744	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101745	//       "required": true,
101746	//       "type": "string"
101747	//     }
101748	//   },
101749	//   "path": "projects/{project}/global/licenseCodes/{licenseCode}",
101750	//   "response": {
101751	//     "$ref": "LicenseCode"
101752	//   },
101753	//   "scopes": [
101754	//     "https://www.googleapis.com/auth/cloud-platform",
101755	//     "https://www.googleapis.com/auth/compute",
101756	//     "https://www.googleapis.com/auth/compute.readonly"
101757	//   ]
101758	// }
101759
101760}
101761
101762// method id "compute.licenseCodes.testIamPermissions":
101763
101764type LicenseCodesTestIamPermissionsCall struct {
101765	s                      *Service
101766	project                string
101767	resource               string
101768	testpermissionsrequest *TestPermissionsRequest
101769	urlParams_             gensupport.URLParams
101770	ctx_                   context.Context
101771	header_                http.Header
101772}
101773
101774// TestIamPermissions: Returns permissions that a caller has on the
101775// specified resource.  Caution This resource is intended for use only
101776// by third-party partners who are creating Cloud Marketplace images.
101777func (r *LicenseCodesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *LicenseCodesTestIamPermissionsCall {
101778	c := &LicenseCodesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101779	c.project = project
101780	c.resource = resource
101781	c.testpermissionsrequest = testpermissionsrequest
101782	return c
101783}
101784
101785// Fields allows partial responses to be retrieved. See
101786// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101787// for more information.
101788func (c *LicenseCodesTestIamPermissionsCall) Fields(s ...googleapi.Field) *LicenseCodesTestIamPermissionsCall {
101789	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101790	return c
101791}
101792
101793// Context sets the context to be used in this call's Do method. Any
101794// pending HTTP request will be aborted if the provided context is
101795// canceled.
101796func (c *LicenseCodesTestIamPermissionsCall) Context(ctx context.Context) *LicenseCodesTestIamPermissionsCall {
101797	c.ctx_ = ctx
101798	return c
101799}
101800
101801// Header returns an http.Header that can be modified by the caller to
101802// add HTTP headers to the request.
101803func (c *LicenseCodesTestIamPermissionsCall) Header() http.Header {
101804	if c.header_ == nil {
101805		c.header_ = make(http.Header)
101806	}
101807	return c.header_
101808}
101809
101810func (c *LicenseCodesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
101811	reqHeaders := make(http.Header)
101812	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
101813	for k, v := range c.header_ {
101814		reqHeaders[k] = v
101815	}
101816	reqHeaders.Set("User-Agent", c.s.userAgent())
101817	var body io.Reader = nil
101818	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
101819	if err != nil {
101820		return nil, err
101821	}
101822	reqHeaders.Set("Content-Type", "application/json")
101823	c.urlParams_.Set("alt", alt)
101824	c.urlParams_.Set("prettyPrint", "false")
101825	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenseCodes/{resource}/testIamPermissions")
101826	urls += "?" + c.urlParams_.Encode()
101827	req, err := http.NewRequest("POST", urls, body)
101828	if err != nil {
101829		return nil, err
101830	}
101831	req.Header = reqHeaders
101832	googleapi.Expand(req.URL, map[string]string{
101833		"project":  c.project,
101834		"resource": c.resource,
101835	})
101836	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101837}
101838
101839// Do executes the "compute.licenseCodes.testIamPermissions" call.
101840// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
101841// non-2xx status code is an error. Response headers are in either
101842// *TestPermissionsResponse.ServerResponse.Header or (if a response was
101843// returned at all) in error.(*googleapi.Error).Header. Use
101844// googleapi.IsNotModified to check whether the returned error was
101845// because http.StatusNotModified was returned.
101846func (c *LicenseCodesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
101847	gensupport.SetOptions(c.urlParams_, opts...)
101848	res, err := c.doRequest("json")
101849	if res != nil && res.StatusCode == http.StatusNotModified {
101850		if res.Body != nil {
101851			res.Body.Close()
101852		}
101853		return nil, &googleapi.Error{
101854			Code:   res.StatusCode,
101855			Header: res.Header,
101856		}
101857	}
101858	if err != nil {
101859		return nil, err
101860	}
101861	defer googleapi.CloseBody(res)
101862	if err := googleapi.CheckResponse(res); err != nil {
101863		return nil, err
101864	}
101865	ret := &TestPermissionsResponse{
101866		ServerResponse: googleapi.ServerResponse{
101867			Header:         res.Header,
101868			HTTPStatusCode: res.StatusCode,
101869		},
101870	}
101871	target := &ret
101872	if err := gensupport.DecodeResponse(target, res); err != nil {
101873		return nil, err
101874	}
101875	return ret, nil
101876	// {
101877	//   "description": "Returns permissions that a caller has on the specified resource.  Caution This resource is intended for use only by third-party partners who are creating Cloud Marketplace images.",
101878	//   "httpMethod": "POST",
101879	//   "id": "compute.licenseCodes.testIamPermissions",
101880	//   "parameterOrder": [
101881	//     "project",
101882	//     "resource"
101883	//   ],
101884	//   "parameters": {
101885	//     "project": {
101886	//       "description": "Project ID for this request.",
101887	//       "location": "path",
101888	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101889	//       "required": true,
101890	//       "type": "string"
101891	//     },
101892	//     "resource": {
101893	//       "description": "Name or id of the resource for this request.",
101894	//       "location": "path",
101895	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
101896	//       "required": true,
101897	//       "type": "string"
101898	//     }
101899	//   },
101900	//   "path": "projects/{project}/global/licenseCodes/{resource}/testIamPermissions",
101901	//   "request": {
101902	//     "$ref": "TestPermissionsRequest"
101903	//   },
101904	//   "response": {
101905	//     "$ref": "TestPermissionsResponse"
101906	//   },
101907	//   "scopes": [
101908	//     "https://www.googleapis.com/auth/cloud-platform",
101909	//     "https://www.googleapis.com/auth/compute",
101910	//     "https://www.googleapis.com/auth/compute.readonly"
101911	//   ]
101912	// }
101913
101914}
101915
101916// method id "compute.licenses.delete":
101917
101918type LicensesDeleteCall struct {
101919	s          *Service
101920	project    string
101921	license    string
101922	urlParams_ gensupport.URLParams
101923	ctx_       context.Context
101924	header_    http.Header
101925}
101926
101927// Delete: Deletes the specified license.  Caution This resource is
101928// intended for use only by third-party partners who are creating Cloud
101929// Marketplace images.
101930func (r *LicensesService) Delete(project string, license string) *LicensesDeleteCall {
101931	c := &LicensesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101932	c.project = project
101933	c.license = license
101934	return c
101935}
101936
101937// RequestId sets the optional parameter "requestId": An optional
101938// request ID to identify requests. Specify a unique request ID so that
101939// if you must retry your request, the server will know to ignore the
101940// request if it has already been completed.
101941//
101942// For example, consider a situation where you make an initial request
101943// and the request times out. If you make the request again with the
101944// same request ID, the server can check if original operation with the
101945// same request ID was received, and if so, will ignore the second
101946// request. This prevents clients from accidentally creating duplicate
101947// commitments.
101948//
101949// The request ID must be a valid UUID with the exception that zero UUID
101950// is not supported (00000000-0000-0000-0000-000000000000).
101951func (c *LicensesDeleteCall) RequestId(requestId string) *LicensesDeleteCall {
101952	c.urlParams_.Set("requestId", requestId)
101953	return c
101954}
101955
101956// Fields allows partial responses to be retrieved. See
101957// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101958// for more information.
101959func (c *LicensesDeleteCall) Fields(s ...googleapi.Field) *LicensesDeleteCall {
101960	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101961	return c
101962}
101963
101964// Context sets the context to be used in this call's Do method. Any
101965// pending HTTP request will be aborted if the provided context is
101966// canceled.
101967func (c *LicensesDeleteCall) Context(ctx context.Context) *LicensesDeleteCall {
101968	c.ctx_ = ctx
101969	return c
101970}
101971
101972// Header returns an http.Header that can be modified by the caller to
101973// add HTTP headers to the request.
101974func (c *LicensesDeleteCall) Header() http.Header {
101975	if c.header_ == nil {
101976		c.header_ = make(http.Header)
101977	}
101978	return c.header_
101979}
101980
101981func (c *LicensesDeleteCall) doRequest(alt string) (*http.Response, error) {
101982	reqHeaders := make(http.Header)
101983	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
101984	for k, v := range c.header_ {
101985		reqHeaders[k] = v
101986	}
101987	reqHeaders.Set("User-Agent", c.s.userAgent())
101988	var body io.Reader = nil
101989	c.urlParams_.Set("alt", alt)
101990	c.urlParams_.Set("prettyPrint", "false")
101991	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenses/{license}")
101992	urls += "?" + c.urlParams_.Encode()
101993	req, err := http.NewRequest("DELETE", urls, body)
101994	if err != nil {
101995		return nil, err
101996	}
101997	req.Header = reqHeaders
101998	googleapi.Expand(req.URL, map[string]string{
101999		"project": c.project,
102000		"license": c.license,
102001	})
102002	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102003}
102004
102005// Do executes the "compute.licenses.delete" call.
102006// Exactly one of *Operation or error will be non-nil. Any non-2xx
102007// status code is an error. Response headers are in either
102008// *Operation.ServerResponse.Header or (if a response was returned at
102009// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
102010// to check whether the returned error was because
102011// http.StatusNotModified was returned.
102012func (c *LicensesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
102013	gensupport.SetOptions(c.urlParams_, opts...)
102014	res, err := c.doRequest("json")
102015	if res != nil && res.StatusCode == http.StatusNotModified {
102016		if res.Body != nil {
102017			res.Body.Close()
102018		}
102019		return nil, &googleapi.Error{
102020			Code:   res.StatusCode,
102021			Header: res.Header,
102022		}
102023	}
102024	if err != nil {
102025		return nil, err
102026	}
102027	defer googleapi.CloseBody(res)
102028	if err := googleapi.CheckResponse(res); err != nil {
102029		return nil, err
102030	}
102031	ret := &Operation{
102032		ServerResponse: googleapi.ServerResponse{
102033			Header:         res.Header,
102034			HTTPStatusCode: res.StatusCode,
102035		},
102036	}
102037	target := &ret
102038	if err := gensupport.DecodeResponse(target, res); err != nil {
102039		return nil, err
102040	}
102041	return ret, nil
102042	// {
102043	//   "description": "Deletes the specified license.  Caution This resource is intended for use only by third-party partners who are creating Cloud Marketplace images.",
102044	//   "httpMethod": "DELETE",
102045	//   "id": "compute.licenses.delete",
102046	//   "parameterOrder": [
102047	//     "project",
102048	//     "license"
102049	//   ],
102050	//   "parameters": {
102051	//     "license": {
102052	//       "description": "Name of the license resource to delete.",
102053	//       "location": "path",
102054	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
102055	//       "required": true,
102056	//       "type": "string"
102057	//     },
102058	//     "project": {
102059	//       "description": "Project ID for this request.",
102060	//       "location": "path",
102061	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102062	//       "required": true,
102063	//       "type": "string"
102064	//     },
102065	//     "requestId": {
102066	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
102067	//       "location": "query",
102068	//       "type": "string"
102069	//     }
102070	//   },
102071	//   "path": "projects/{project}/global/licenses/{license}",
102072	//   "response": {
102073	//     "$ref": "Operation"
102074	//   },
102075	//   "scopes": [
102076	//     "https://www.googleapis.com/auth/cloud-platform",
102077	//     "https://www.googleapis.com/auth/compute"
102078	//   ]
102079	// }
102080
102081}
102082
102083// method id "compute.licenses.get":
102084
102085type LicensesGetCall struct {
102086	s            *Service
102087	project      string
102088	license      string
102089	urlParams_   gensupport.URLParams
102090	ifNoneMatch_ string
102091	ctx_         context.Context
102092	header_      http.Header
102093}
102094
102095// Get: Returns the specified License resource.  Caution This resource
102096// is intended for use only by third-party partners who are creating
102097// Cloud Marketplace images.
102098// For details, see https://cloud.google.com/compute/docs/reference/latest/licenses/get
102099func (r *LicensesService) Get(project string, license string) *LicensesGetCall {
102100	c := &LicensesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102101	c.project = project
102102	c.license = license
102103	return c
102104}
102105
102106// Fields allows partial responses to be retrieved. See
102107// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102108// for more information.
102109func (c *LicensesGetCall) Fields(s ...googleapi.Field) *LicensesGetCall {
102110	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102111	return c
102112}
102113
102114// IfNoneMatch sets the optional parameter which makes the operation
102115// fail if the object's ETag matches the given value. This is useful for
102116// getting updates only after the object has changed since the last
102117// request. Use googleapi.IsNotModified to check whether the response
102118// error from Do is the result of In-None-Match.
102119func (c *LicensesGetCall) IfNoneMatch(entityTag string) *LicensesGetCall {
102120	c.ifNoneMatch_ = entityTag
102121	return c
102122}
102123
102124// Context sets the context to be used in this call's Do method. Any
102125// pending HTTP request will be aborted if the provided context is
102126// canceled.
102127func (c *LicensesGetCall) Context(ctx context.Context) *LicensesGetCall {
102128	c.ctx_ = ctx
102129	return c
102130}
102131
102132// Header returns an http.Header that can be modified by the caller to
102133// add HTTP headers to the request.
102134func (c *LicensesGetCall) Header() http.Header {
102135	if c.header_ == nil {
102136		c.header_ = make(http.Header)
102137	}
102138	return c.header_
102139}
102140
102141func (c *LicensesGetCall) doRequest(alt string) (*http.Response, error) {
102142	reqHeaders := make(http.Header)
102143	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
102144	for k, v := range c.header_ {
102145		reqHeaders[k] = v
102146	}
102147	reqHeaders.Set("User-Agent", c.s.userAgent())
102148	if c.ifNoneMatch_ != "" {
102149		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
102150	}
102151	var body io.Reader = nil
102152	c.urlParams_.Set("alt", alt)
102153	c.urlParams_.Set("prettyPrint", "false")
102154	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenses/{license}")
102155	urls += "?" + c.urlParams_.Encode()
102156	req, err := http.NewRequest("GET", urls, body)
102157	if err != nil {
102158		return nil, err
102159	}
102160	req.Header = reqHeaders
102161	googleapi.Expand(req.URL, map[string]string{
102162		"project": c.project,
102163		"license": c.license,
102164	})
102165	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102166}
102167
102168// Do executes the "compute.licenses.get" call.
102169// Exactly one of *License or error will be non-nil. Any non-2xx status
102170// code is an error. Response headers are in either
102171// *License.ServerResponse.Header or (if a response was returned at all)
102172// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
102173// check whether the returned error was because http.StatusNotModified
102174// was returned.
102175func (c *LicensesGetCall) Do(opts ...googleapi.CallOption) (*License, error) {
102176	gensupport.SetOptions(c.urlParams_, opts...)
102177	res, err := c.doRequest("json")
102178	if res != nil && res.StatusCode == http.StatusNotModified {
102179		if res.Body != nil {
102180			res.Body.Close()
102181		}
102182		return nil, &googleapi.Error{
102183			Code:   res.StatusCode,
102184			Header: res.Header,
102185		}
102186	}
102187	if err != nil {
102188		return nil, err
102189	}
102190	defer googleapi.CloseBody(res)
102191	if err := googleapi.CheckResponse(res); err != nil {
102192		return nil, err
102193	}
102194	ret := &License{
102195		ServerResponse: googleapi.ServerResponse{
102196			Header:         res.Header,
102197			HTTPStatusCode: res.StatusCode,
102198		},
102199	}
102200	target := &ret
102201	if err := gensupport.DecodeResponse(target, res); err != nil {
102202		return nil, err
102203	}
102204	return ret, nil
102205	// {
102206	//   "description": "Returns the specified License resource.  Caution This resource is intended for use only by third-party partners who are creating Cloud Marketplace images.",
102207	//   "httpMethod": "GET",
102208	//   "id": "compute.licenses.get",
102209	//   "parameterOrder": [
102210	//     "project",
102211	//     "license"
102212	//   ],
102213	//   "parameters": {
102214	//     "license": {
102215	//       "description": "Name of the License resource to return.",
102216	//       "location": "path",
102217	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
102218	//       "required": true,
102219	//       "type": "string"
102220	//     },
102221	//     "project": {
102222	//       "description": "Project ID for this request.",
102223	//       "location": "path",
102224	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102225	//       "required": true,
102226	//       "type": "string"
102227	//     }
102228	//   },
102229	//   "path": "projects/{project}/global/licenses/{license}",
102230	//   "response": {
102231	//     "$ref": "License"
102232	//   },
102233	//   "scopes": [
102234	//     "https://www.googleapis.com/auth/cloud-platform",
102235	//     "https://www.googleapis.com/auth/compute",
102236	//     "https://www.googleapis.com/auth/compute.readonly"
102237	//   ]
102238	// }
102239
102240}
102241
102242// method id "compute.licenses.getIamPolicy":
102243
102244type LicensesGetIamPolicyCall struct {
102245	s            *Service
102246	project      string
102247	resource     string
102248	urlParams_   gensupport.URLParams
102249	ifNoneMatch_ string
102250	ctx_         context.Context
102251	header_      http.Header
102252}
102253
102254// GetIamPolicy: Gets the access control policy for a resource. May be
102255// empty if no such policy or resource exists.  Caution This resource is
102256// intended for use only by third-party partners who are creating Cloud
102257// Marketplace images.
102258func (r *LicensesService) GetIamPolicy(project string, resource string) *LicensesGetIamPolicyCall {
102259	c := &LicensesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102260	c.project = project
102261	c.resource = resource
102262	return c
102263}
102264
102265// OptionsRequestedPolicyVersion sets the optional parameter
102266// "optionsRequestedPolicyVersion": Requested IAM Policy version.
102267func (c *LicensesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *LicensesGetIamPolicyCall {
102268	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
102269	return c
102270}
102271
102272// Fields allows partial responses to be retrieved. See
102273// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102274// for more information.
102275func (c *LicensesGetIamPolicyCall) Fields(s ...googleapi.Field) *LicensesGetIamPolicyCall {
102276	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102277	return c
102278}
102279
102280// IfNoneMatch sets the optional parameter which makes the operation
102281// fail if the object's ETag matches the given value. This is useful for
102282// getting updates only after the object has changed since the last
102283// request. Use googleapi.IsNotModified to check whether the response
102284// error from Do is the result of In-None-Match.
102285func (c *LicensesGetIamPolicyCall) IfNoneMatch(entityTag string) *LicensesGetIamPolicyCall {
102286	c.ifNoneMatch_ = entityTag
102287	return c
102288}
102289
102290// Context sets the context to be used in this call's Do method. Any
102291// pending HTTP request will be aborted if the provided context is
102292// canceled.
102293func (c *LicensesGetIamPolicyCall) Context(ctx context.Context) *LicensesGetIamPolicyCall {
102294	c.ctx_ = ctx
102295	return c
102296}
102297
102298// Header returns an http.Header that can be modified by the caller to
102299// add HTTP headers to the request.
102300func (c *LicensesGetIamPolicyCall) Header() http.Header {
102301	if c.header_ == nil {
102302		c.header_ = make(http.Header)
102303	}
102304	return c.header_
102305}
102306
102307func (c *LicensesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
102308	reqHeaders := make(http.Header)
102309	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
102310	for k, v := range c.header_ {
102311		reqHeaders[k] = v
102312	}
102313	reqHeaders.Set("User-Agent", c.s.userAgent())
102314	if c.ifNoneMatch_ != "" {
102315		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
102316	}
102317	var body io.Reader = nil
102318	c.urlParams_.Set("alt", alt)
102319	c.urlParams_.Set("prettyPrint", "false")
102320	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenses/{resource}/getIamPolicy")
102321	urls += "?" + c.urlParams_.Encode()
102322	req, err := http.NewRequest("GET", urls, body)
102323	if err != nil {
102324		return nil, err
102325	}
102326	req.Header = reqHeaders
102327	googleapi.Expand(req.URL, map[string]string{
102328		"project":  c.project,
102329		"resource": c.resource,
102330	})
102331	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102332}
102333
102334// Do executes the "compute.licenses.getIamPolicy" call.
102335// Exactly one of *Policy or error will be non-nil. Any non-2xx status
102336// code is an error. Response headers are in either
102337// *Policy.ServerResponse.Header or (if a response was returned at all)
102338// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
102339// check whether the returned error was because http.StatusNotModified
102340// was returned.
102341func (c *LicensesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
102342	gensupport.SetOptions(c.urlParams_, opts...)
102343	res, err := c.doRequest("json")
102344	if res != nil && res.StatusCode == http.StatusNotModified {
102345		if res.Body != nil {
102346			res.Body.Close()
102347		}
102348		return nil, &googleapi.Error{
102349			Code:   res.StatusCode,
102350			Header: res.Header,
102351		}
102352	}
102353	if err != nil {
102354		return nil, err
102355	}
102356	defer googleapi.CloseBody(res)
102357	if err := googleapi.CheckResponse(res); err != nil {
102358		return nil, err
102359	}
102360	ret := &Policy{
102361		ServerResponse: googleapi.ServerResponse{
102362			Header:         res.Header,
102363			HTTPStatusCode: res.StatusCode,
102364		},
102365	}
102366	target := &ret
102367	if err := gensupport.DecodeResponse(target, res); err != nil {
102368		return nil, err
102369	}
102370	return ret, nil
102371	// {
102372	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.  Caution This resource is intended for use only by third-party partners who are creating Cloud Marketplace images.",
102373	//   "httpMethod": "GET",
102374	//   "id": "compute.licenses.getIamPolicy",
102375	//   "parameterOrder": [
102376	//     "project",
102377	//     "resource"
102378	//   ],
102379	//   "parameters": {
102380	//     "optionsRequestedPolicyVersion": {
102381	//       "description": "Requested IAM Policy version.",
102382	//       "format": "int32",
102383	//       "location": "query",
102384	//       "type": "integer"
102385	//     },
102386	//     "project": {
102387	//       "description": "Project ID for this request.",
102388	//       "location": "path",
102389	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102390	//       "required": true,
102391	//       "type": "string"
102392	//     },
102393	//     "resource": {
102394	//       "description": "Name or id of the resource for this request.",
102395	//       "location": "path",
102396	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
102397	//       "required": true,
102398	//       "type": "string"
102399	//     }
102400	//   },
102401	//   "path": "projects/{project}/global/licenses/{resource}/getIamPolicy",
102402	//   "response": {
102403	//     "$ref": "Policy"
102404	//   },
102405	//   "scopes": [
102406	//     "https://www.googleapis.com/auth/cloud-platform",
102407	//     "https://www.googleapis.com/auth/compute",
102408	//     "https://www.googleapis.com/auth/compute.readonly"
102409	//   ]
102410	// }
102411
102412}
102413
102414// method id "compute.licenses.insert":
102415
102416type LicensesInsertCall struct {
102417	s          *Service
102418	project    string
102419	license    *License
102420	urlParams_ gensupport.URLParams
102421	ctx_       context.Context
102422	header_    http.Header
102423}
102424
102425// Insert: Create a License resource in the specified project.  Caution
102426// This resource is intended for use only by third-party partners who
102427// are creating Cloud Marketplace images.
102428func (r *LicensesService) Insert(project string, license *License) *LicensesInsertCall {
102429	c := &LicensesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102430	c.project = project
102431	c.license = license
102432	return c
102433}
102434
102435// RequestId sets the optional parameter "requestId": An optional
102436// request ID to identify requests. Specify a unique request ID so that
102437// if you must retry your request, the server will know to ignore the
102438// request if it has already been completed.
102439//
102440// For example, consider a situation where you make an initial request
102441// and the request times out. If you make the request again with the
102442// same request ID, the server can check if original operation with the
102443// same request ID was received, and if so, will ignore the second
102444// request. This prevents clients from accidentally creating duplicate
102445// commitments.
102446//
102447// The request ID must be a valid UUID with the exception that zero UUID
102448// is not supported (00000000-0000-0000-0000-000000000000).
102449func (c *LicensesInsertCall) RequestId(requestId string) *LicensesInsertCall {
102450	c.urlParams_.Set("requestId", requestId)
102451	return c
102452}
102453
102454// Fields allows partial responses to be retrieved. See
102455// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102456// for more information.
102457func (c *LicensesInsertCall) Fields(s ...googleapi.Field) *LicensesInsertCall {
102458	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102459	return c
102460}
102461
102462// Context sets the context to be used in this call's Do method. Any
102463// pending HTTP request will be aborted if the provided context is
102464// canceled.
102465func (c *LicensesInsertCall) Context(ctx context.Context) *LicensesInsertCall {
102466	c.ctx_ = ctx
102467	return c
102468}
102469
102470// Header returns an http.Header that can be modified by the caller to
102471// add HTTP headers to the request.
102472func (c *LicensesInsertCall) Header() http.Header {
102473	if c.header_ == nil {
102474		c.header_ = make(http.Header)
102475	}
102476	return c.header_
102477}
102478
102479func (c *LicensesInsertCall) doRequest(alt string) (*http.Response, error) {
102480	reqHeaders := make(http.Header)
102481	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
102482	for k, v := range c.header_ {
102483		reqHeaders[k] = v
102484	}
102485	reqHeaders.Set("User-Agent", c.s.userAgent())
102486	var body io.Reader = nil
102487	body, err := googleapi.WithoutDataWrapper.JSONReader(c.license)
102488	if err != nil {
102489		return nil, err
102490	}
102491	reqHeaders.Set("Content-Type", "application/json")
102492	c.urlParams_.Set("alt", alt)
102493	c.urlParams_.Set("prettyPrint", "false")
102494	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenses")
102495	urls += "?" + c.urlParams_.Encode()
102496	req, err := http.NewRequest("POST", urls, body)
102497	if err != nil {
102498		return nil, err
102499	}
102500	req.Header = reqHeaders
102501	googleapi.Expand(req.URL, map[string]string{
102502		"project": c.project,
102503	})
102504	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102505}
102506
102507// Do executes the "compute.licenses.insert" call.
102508// Exactly one of *Operation or error will be non-nil. Any non-2xx
102509// status code is an error. Response headers are in either
102510// *Operation.ServerResponse.Header or (if a response was returned at
102511// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
102512// to check whether the returned error was because
102513// http.StatusNotModified was returned.
102514func (c *LicensesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
102515	gensupport.SetOptions(c.urlParams_, opts...)
102516	res, err := c.doRequest("json")
102517	if res != nil && res.StatusCode == http.StatusNotModified {
102518		if res.Body != nil {
102519			res.Body.Close()
102520		}
102521		return nil, &googleapi.Error{
102522			Code:   res.StatusCode,
102523			Header: res.Header,
102524		}
102525	}
102526	if err != nil {
102527		return nil, err
102528	}
102529	defer googleapi.CloseBody(res)
102530	if err := googleapi.CheckResponse(res); err != nil {
102531		return nil, err
102532	}
102533	ret := &Operation{
102534		ServerResponse: googleapi.ServerResponse{
102535			Header:         res.Header,
102536			HTTPStatusCode: res.StatusCode,
102537		},
102538	}
102539	target := &ret
102540	if err := gensupport.DecodeResponse(target, res); err != nil {
102541		return nil, err
102542	}
102543	return ret, nil
102544	// {
102545	//   "description": "Create a License resource in the specified project.  Caution This resource is intended for use only by third-party partners who are creating Cloud Marketplace images.",
102546	//   "httpMethod": "POST",
102547	//   "id": "compute.licenses.insert",
102548	//   "parameterOrder": [
102549	//     "project"
102550	//   ],
102551	//   "parameters": {
102552	//     "project": {
102553	//       "description": "Project ID for this request.",
102554	//       "location": "path",
102555	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102556	//       "required": true,
102557	//       "type": "string"
102558	//     },
102559	//     "requestId": {
102560	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
102561	//       "location": "query",
102562	//       "type": "string"
102563	//     }
102564	//   },
102565	//   "path": "projects/{project}/global/licenses",
102566	//   "request": {
102567	//     "$ref": "License"
102568	//   },
102569	//   "response": {
102570	//     "$ref": "Operation"
102571	//   },
102572	//   "scopes": [
102573	//     "https://www.googleapis.com/auth/cloud-platform",
102574	//     "https://www.googleapis.com/auth/compute",
102575	//     "https://www.googleapis.com/auth/devstorage.full_control",
102576	//     "https://www.googleapis.com/auth/devstorage.read_only",
102577	//     "https://www.googleapis.com/auth/devstorage.read_write"
102578	//   ]
102579	// }
102580
102581}
102582
102583// method id "compute.licenses.list":
102584
102585type LicensesListCall struct {
102586	s            *Service
102587	project      string
102588	urlParams_   gensupport.URLParams
102589	ifNoneMatch_ string
102590	ctx_         context.Context
102591	header_      http.Header
102592}
102593
102594// List: Retrieves the list of licenses available in the specified
102595// project. This method does not get any licenses that belong to other
102596// projects, including licenses attached to publicly-available images,
102597// like Debian 9. If you want to get a list of publicly-available
102598// licenses, use this method to make a request to the respective image
102599// project, such as debian-cloud or windows-cloud.  Caution This
102600// resource is intended for use only by third-party partners who are
102601// creating Cloud Marketplace images.
102602func (r *LicensesService) List(project string) *LicensesListCall {
102603	c := &LicensesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102604	c.project = project
102605	return c
102606}
102607
102608// Filter sets the optional parameter "filter": A filter expression that
102609// filters resources listed in the response. The expression must specify
102610// the field name, a comparison operator, and the value that you want to
102611// use for filtering. The value must be a string, a number, or a
102612// boolean. The comparison operator must be either `=`, `!=`, `>`, or
102613// `<`.
102614//
102615// For example, if you are filtering Compute Engine instances, you can
102616// exclude instances named `example-instance` by specifying `name !=
102617// example-instance`.
102618//
102619// You can also filter nested fields. For example, you could specify
102620// `scheduling.automaticRestart = false` to include instances only if
102621// they are not scheduled for automatic restarts. You can use filtering
102622// on nested fields to filter based on resource labels.
102623//
102624// To filter on multiple expressions, provide each separate expression
102625// within parentheses. For example: ``` (scheduling.automaticRestart =
102626// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
102627// is an `AND` expression. However, you can include `AND` and `OR`
102628// expressions explicitly. For example: ``` (cpuPlatform = "Intel
102629// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
102630// (scheduling.automaticRestart = true) ```
102631func (c *LicensesListCall) Filter(filter string) *LicensesListCall {
102632	c.urlParams_.Set("filter", filter)
102633	return c
102634}
102635
102636// MaxResults sets the optional parameter "maxResults": The maximum
102637// number of results per page that should be returned. If the number of
102638// available results is larger than `maxResults`, Compute Engine returns
102639// a `nextPageToken` that can be used to get the next page of results in
102640// subsequent list requests. Acceptable values are `0` to `500`,
102641// inclusive. (Default: `500`)
102642func (c *LicensesListCall) MaxResults(maxResults int64) *LicensesListCall {
102643	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
102644	return c
102645}
102646
102647// OrderBy sets the optional parameter "orderBy": Sorts list results by
102648// a certain order. By default, results are returned in alphanumerical
102649// order based on the resource name.
102650//
102651// You can also sort results in descending order based on the creation
102652// timestamp using `orderBy="creationTimestamp desc". This sorts
102653// results based on the `creationTimestamp` field in reverse
102654// chronological order (newest result first). Use this to sort resources
102655// like operations so that the newest operation is returned
102656// first.
102657//
102658// Currently, only sorting by `name` or `creationTimestamp desc` is
102659// supported.
102660func (c *LicensesListCall) OrderBy(orderBy string) *LicensesListCall {
102661	c.urlParams_.Set("orderBy", orderBy)
102662	return c
102663}
102664
102665// PageToken sets the optional parameter "pageToken": Specifies a page
102666// token to use. Set `pageToken` to the `nextPageToken` returned by a
102667// previous list request to get the next page of results.
102668func (c *LicensesListCall) PageToken(pageToken string) *LicensesListCall {
102669	c.urlParams_.Set("pageToken", pageToken)
102670	return c
102671}
102672
102673// ReturnPartialSuccess sets the optional parameter
102674// "returnPartialSuccess": Opt-in for partial success behavior which
102675// provides partial results in case of failure. The default value is
102676// false.
102677func (c *LicensesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *LicensesListCall {
102678	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
102679	return c
102680}
102681
102682// Fields allows partial responses to be retrieved. See
102683// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102684// for more information.
102685func (c *LicensesListCall) Fields(s ...googleapi.Field) *LicensesListCall {
102686	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102687	return c
102688}
102689
102690// IfNoneMatch sets the optional parameter which makes the operation
102691// fail if the object's ETag matches the given value. This is useful for
102692// getting updates only after the object has changed since the last
102693// request. Use googleapi.IsNotModified to check whether the response
102694// error from Do is the result of In-None-Match.
102695func (c *LicensesListCall) IfNoneMatch(entityTag string) *LicensesListCall {
102696	c.ifNoneMatch_ = entityTag
102697	return c
102698}
102699
102700// Context sets the context to be used in this call's Do method. Any
102701// pending HTTP request will be aborted if the provided context is
102702// canceled.
102703func (c *LicensesListCall) Context(ctx context.Context) *LicensesListCall {
102704	c.ctx_ = ctx
102705	return c
102706}
102707
102708// Header returns an http.Header that can be modified by the caller to
102709// add HTTP headers to the request.
102710func (c *LicensesListCall) Header() http.Header {
102711	if c.header_ == nil {
102712		c.header_ = make(http.Header)
102713	}
102714	return c.header_
102715}
102716
102717func (c *LicensesListCall) doRequest(alt string) (*http.Response, error) {
102718	reqHeaders := make(http.Header)
102719	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
102720	for k, v := range c.header_ {
102721		reqHeaders[k] = v
102722	}
102723	reqHeaders.Set("User-Agent", c.s.userAgent())
102724	if c.ifNoneMatch_ != "" {
102725		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
102726	}
102727	var body io.Reader = nil
102728	c.urlParams_.Set("alt", alt)
102729	c.urlParams_.Set("prettyPrint", "false")
102730	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenses")
102731	urls += "?" + c.urlParams_.Encode()
102732	req, err := http.NewRequest("GET", urls, body)
102733	if err != nil {
102734		return nil, err
102735	}
102736	req.Header = reqHeaders
102737	googleapi.Expand(req.URL, map[string]string{
102738		"project": c.project,
102739	})
102740	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102741}
102742
102743// Do executes the "compute.licenses.list" call.
102744// Exactly one of *LicensesListResponse or error will be non-nil. Any
102745// non-2xx status code is an error. Response headers are in either
102746// *LicensesListResponse.ServerResponse.Header or (if a response was
102747// returned at all) in error.(*googleapi.Error).Header. Use
102748// googleapi.IsNotModified to check whether the returned error was
102749// because http.StatusNotModified was returned.
102750func (c *LicensesListCall) Do(opts ...googleapi.CallOption) (*LicensesListResponse, error) {
102751	gensupport.SetOptions(c.urlParams_, opts...)
102752	res, err := c.doRequest("json")
102753	if res != nil && res.StatusCode == http.StatusNotModified {
102754		if res.Body != nil {
102755			res.Body.Close()
102756		}
102757		return nil, &googleapi.Error{
102758			Code:   res.StatusCode,
102759			Header: res.Header,
102760		}
102761	}
102762	if err != nil {
102763		return nil, err
102764	}
102765	defer googleapi.CloseBody(res)
102766	if err := googleapi.CheckResponse(res); err != nil {
102767		return nil, err
102768	}
102769	ret := &LicensesListResponse{
102770		ServerResponse: googleapi.ServerResponse{
102771			Header:         res.Header,
102772			HTTPStatusCode: res.StatusCode,
102773		},
102774	}
102775	target := &ret
102776	if err := gensupport.DecodeResponse(target, res); err != nil {
102777		return nil, err
102778	}
102779	return ret, nil
102780	// {
102781	//   "description": "Retrieves the list of licenses available in the specified project. This method does not get any licenses that belong to other projects, including licenses attached to publicly-available images, like Debian 9. If you want to get a list of publicly-available licenses, use this method to make a request to the respective image project, such as debian-cloud or windows-cloud.  Caution This resource is intended for use only by third-party partners who are creating Cloud Marketplace images.",
102782	//   "httpMethod": "GET",
102783	//   "id": "compute.licenses.list",
102784	//   "parameterOrder": [
102785	//     "project"
102786	//   ],
102787	//   "parameters": {
102788	//     "filter": {
102789	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
102790	//       "location": "query",
102791	//       "type": "string"
102792	//     },
102793	//     "maxResults": {
102794	//       "default": "500",
102795	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
102796	//       "format": "uint32",
102797	//       "location": "query",
102798	//       "minimum": "0",
102799	//       "type": "integer"
102800	//     },
102801	//     "orderBy": {
102802	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
102803	//       "location": "query",
102804	//       "type": "string"
102805	//     },
102806	//     "pageToken": {
102807	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
102808	//       "location": "query",
102809	//       "type": "string"
102810	//     },
102811	//     "project": {
102812	//       "description": "Project ID for this request.",
102813	//       "location": "path",
102814	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102815	//       "required": true,
102816	//       "type": "string"
102817	//     },
102818	//     "returnPartialSuccess": {
102819	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
102820	//       "location": "query",
102821	//       "type": "boolean"
102822	//     }
102823	//   },
102824	//   "path": "projects/{project}/global/licenses",
102825	//   "response": {
102826	//     "$ref": "LicensesListResponse"
102827	//   },
102828	//   "scopes": [
102829	//     "https://www.googleapis.com/auth/cloud-platform",
102830	//     "https://www.googleapis.com/auth/compute",
102831	//     "https://www.googleapis.com/auth/compute.readonly"
102832	//   ]
102833	// }
102834
102835}
102836
102837// Pages invokes f for each page of results.
102838// A non-nil error returned from f will halt the iteration.
102839// The provided context supersedes any context provided to the Context method.
102840func (c *LicensesListCall) Pages(ctx context.Context, f func(*LicensesListResponse) error) error {
102841	c.ctx_ = ctx
102842	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
102843	for {
102844		x, err := c.Do()
102845		if err != nil {
102846			return err
102847		}
102848		if err := f(x); err != nil {
102849			return err
102850		}
102851		if x.NextPageToken == "" {
102852			return nil
102853		}
102854		c.PageToken(x.NextPageToken)
102855	}
102856}
102857
102858// method id "compute.licenses.setIamPolicy":
102859
102860type LicensesSetIamPolicyCall struct {
102861	s                      *Service
102862	project                string
102863	resource               string
102864	globalsetpolicyrequest *GlobalSetPolicyRequest
102865	urlParams_             gensupport.URLParams
102866	ctx_                   context.Context
102867	header_                http.Header
102868}
102869
102870// SetIamPolicy: Sets the access control policy on the specified
102871// resource. Replaces any existing policy.  Caution This resource is
102872// intended for use only by third-party partners who are creating Cloud
102873// Marketplace images.
102874func (r *LicensesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *LicensesSetIamPolicyCall {
102875	c := &LicensesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102876	c.project = project
102877	c.resource = resource
102878	c.globalsetpolicyrequest = globalsetpolicyrequest
102879	return c
102880}
102881
102882// Fields allows partial responses to be retrieved. See
102883// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102884// for more information.
102885func (c *LicensesSetIamPolicyCall) Fields(s ...googleapi.Field) *LicensesSetIamPolicyCall {
102886	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102887	return c
102888}
102889
102890// Context sets the context to be used in this call's Do method. Any
102891// pending HTTP request will be aborted if the provided context is
102892// canceled.
102893func (c *LicensesSetIamPolicyCall) Context(ctx context.Context) *LicensesSetIamPolicyCall {
102894	c.ctx_ = ctx
102895	return c
102896}
102897
102898// Header returns an http.Header that can be modified by the caller to
102899// add HTTP headers to the request.
102900func (c *LicensesSetIamPolicyCall) Header() http.Header {
102901	if c.header_ == nil {
102902		c.header_ = make(http.Header)
102903	}
102904	return c.header_
102905}
102906
102907func (c *LicensesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
102908	reqHeaders := make(http.Header)
102909	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
102910	for k, v := range c.header_ {
102911		reqHeaders[k] = v
102912	}
102913	reqHeaders.Set("User-Agent", c.s.userAgent())
102914	var body io.Reader = nil
102915	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
102916	if err != nil {
102917		return nil, err
102918	}
102919	reqHeaders.Set("Content-Type", "application/json")
102920	c.urlParams_.Set("alt", alt)
102921	c.urlParams_.Set("prettyPrint", "false")
102922	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenses/{resource}/setIamPolicy")
102923	urls += "?" + c.urlParams_.Encode()
102924	req, err := http.NewRequest("POST", urls, body)
102925	if err != nil {
102926		return nil, err
102927	}
102928	req.Header = reqHeaders
102929	googleapi.Expand(req.URL, map[string]string{
102930		"project":  c.project,
102931		"resource": c.resource,
102932	})
102933	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102934}
102935
102936// Do executes the "compute.licenses.setIamPolicy" call.
102937// Exactly one of *Policy or error will be non-nil. Any non-2xx status
102938// code is an error. Response headers are in either
102939// *Policy.ServerResponse.Header or (if a response was returned at all)
102940// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
102941// check whether the returned error was because http.StatusNotModified
102942// was returned.
102943func (c *LicensesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
102944	gensupport.SetOptions(c.urlParams_, opts...)
102945	res, err := c.doRequest("json")
102946	if res != nil && res.StatusCode == http.StatusNotModified {
102947		if res.Body != nil {
102948			res.Body.Close()
102949		}
102950		return nil, &googleapi.Error{
102951			Code:   res.StatusCode,
102952			Header: res.Header,
102953		}
102954	}
102955	if err != nil {
102956		return nil, err
102957	}
102958	defer googleapi.CloseBody(res)
102959	if err := googleapi.CheckResponse(res); err != nil {
102960		return nil, err
102961	}
102962	ret := &Policy{
102963		ServerResponse: googleapi.ServerResponse{
102964			Header:         res.Header,
102965			HTTPStatusCode: res.StatusCode,
102966		},
102967	}
102968	target := &ret
102969	if err := gensupport.DecodeResponse(target, res); err != nil {
102970		return nil, err
102971	}
102972	return ret, nil
102973	// {
102974	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.  Caution This resource is intended for use only by third-party partners who are creating Cloud Marketplace images.",
102975	//   "httpMethod": "POST",
102976	//   "id": "compute.licenses.setIamPolicy",
102977	//   "parameterOrder": [
102978	//     "project",
102979	//     "resource"
102980	//   ],
102981	//   "parameters": {
102982	//     "project": {
102983	//       "description": "Project ID for this request.",
102984	//       "location": "path",
102985	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102986	//       "required": true,
102987	//       "type": "string"
102988	//     },
102989	//     "resource": {
102990	//       "description": "Name or id of the resource for this request.",
102991	//       "location": "path",
102992	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
102993	//       "required": true,
102994	//       "type": "string"
102995	//     }
102996	//   },
102997	//   "path": "projects/{project}/global/licenses/{resource}/setIamPolicy",
102998	//   "request": {
102999	//     "$ref": "GlobalSetPolicyRequest"
103000	//   },
103001	//   "response": {
103002	//     "$ref": "Policy"
103003	//   },
103004	//   "scopes": [
103005	//     "https://www.googleapis.com/auth/cloud-platform",
103006	//     "https://www.googleapis.com/auth/compute"
103007	//   ]
103008	// }
103009
103010}
103011
103012// method id "compute.licenses.testIamPermissions":
103013
103014type LicensesTestIamPermissionsCall struct {
103015	s                      *Service
103016	project                string
103017	resource               string
103018	testpermissionsrequest *TestPermissionsRequest
103019	urlParams_             gensupport.URLParams
103020	ctx_                   context.Context
103021	header_                http.Header
103022}
103023
103024// TestIamPermissions: Returns permissions that a caller has on the
103025// specified resource.  Caution This resource is intended for use only
103026// by third-party partners who are creating Cloud Marketplace images.
103027func (r *LicensesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *LicensesTestIamPermissionsCall {
103028	c := &LicensesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103029	c.project = project
103030	c.resource = resource
103031	c.testpermissionsrequest = testpermissionsrequest
103032	return c
103033}
103034
103035// Fields allows partial responses to be retrieved. See
103036// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103037// for more information.
103038func (c *LicensesTestIamPermissionsCall) Fields(s ...googleapi.Field) *LicensesTestIamPermissionsCall {
103039	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103040	return c
103041}
103042
103043// Context sets the context to be used in this call's Do method. Any
103044// pending HTTP request will be aborted if the provided context is
103045// canceled.
103046func (c *LicensesTestIamPermissionsCall) Context(ctx context.Context) *LicensesTestIamPermissionsCall {
103047	c.ctx_ = ctx
103048	return c
103049}
103050
103051// Header returns an http.Header that can be modified by the caller to
103052// add HTTP headers to the request.
103053func (c *LicensesTestIamPermissionsCall) Header() http.Header {
103054	if c.header_ == nil {
103055		c.header_ = make(http.Header)
103056	}
103057	return c.header_
103058}
103059
103060func (c *LicensesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
103061	reqHeaders := make(http.Header)
103062	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
103063	for k, v := range c.header_ {
103064		reqHeaders[k] = v
103065	}
103066	reqHeaders.Set("User-Agent", c.s.userAgent())
103067	var body io.Reader = nil
103068	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
103069	if err != nil {
103070		return nil, err
103071	}
103072	reqHeaders.Set("Content-Type", "application/json")
103073	c.urlParams_.Set("alt", alt)
103074	c.urlParams_.Set("prettyPrint", "false")
103075	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenses/{resource}/testIamPermissions")
103076	urls += "?" + c.urlParams_.Encode()
103077	req, err := http.NewRequest("POST", urls, body)
103078	if err != nil {
103079		return nil, err
103080	}
103081	req.Header = reqHeaders
103082	googleapi.Expand(req.URL, map[string]string{
103083		"project":  c.project,
103084		"resource": c.resource,
103085	})
103086	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103087}
103088
103089// Do executes the "compute.licenses.testIamPermissions" call.
103090// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
103091// non-2xx status code is an error. Response headers are in either
103092// *TestPermissionsResponse.ServerResponse.Header or (if a response was
103093// returned at all) in error.(*googleapi.Error).Header. Use
103094// googleapi.IsNotModified to check whether the returned error was
103095// because http.StatusNotModified was returned.
103096func (c *LicensesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
103097	gensupport.SetOptions(c.urlParams_, opts...)
103098	res, err := c.doRequest("json")
103099	if res != nil && res.StatusCode == http.StatusNotModified {
103100		if res.Body != nil {
103101			res.Body.Close()
103102		}
103103		return nil, &googleapi.Error{
103104			Code:   res.StatusCode,
103105			Header: res.Header,
103106		}
103107	}
103108	if err != nil {
103109		return nil, err
103110	}
103111	defer googleapi.CloseBody(res)
103112	if err := googleapi.CheckResponse(res); err != nil {
103113		return nil, err
103114	}
103115	ret := &TestPermissionsResponse{
103116		ServerResponse: googleapi.ServerResponse{
103117			Header:         res.Header,
103118			HTTPStatusCode: res.StatusCode,
103119		},
103120	}
103121	target := &ret
103122	if err := gensupport.DecodeResponse(target, res); err != nil {
103123		return nil, err
103124	}
103125	return ret, nil
103126	// {
103127	//   "description": "Returns permissions that a caller has on the specified resource.  Caution This resource is intended for use only by third-party partners who are creating Cloud Marketplace images.",
103128	//   "httpMethod": "POST",
103129	//   "id": "compute.licenses.testIamPermissions",
103130	//   "parameterOrder": [
103131	//     "project",
103132	//     "resource"
103133	//   ],
103134	//   "parameters": {
103135	//     "project": {
103136	//       "description": "Project ID for this request.",
103137	//       "location": "path",
103138	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
103139	//       "required": true,
103140	//       "type": "string"
103141	//     },
103142	//     "resource": {
103143	//       "description": "Name or id of the resource for this request.",
103144	//       "location": "path",
103145	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
103146	//       "required": true,
103147	//       "type": "string"
103148	//     }
103149	//   },
103150	//   "path": "projects/{project}/global/licenses/{resource}/testIamPermissions",
103151	//   "request": {
103152	//     "$ref": "TestPermissionsRequest"
103153	//   },
103154	//   "response": {
103155	//     "$ref": "TestPermissionsResponse"
103156	//   },
103157	//   "scopes": [
103158	//     "https://www.googleapis.com/auth/cloud-platform",
103159	//     "https://www.googleapis.com/auth/compute",
103160	//     "https://www.googleapis.com/auth/compute.readonly"
103161	//   ]
103162	// }
103163
103164}
103165
103166// method id "compute.machineImages.delete":
103167
103168type MachineImagesDeleteCall struct {
103169	s            *Service
103170	project      string
103171	machineImage string
103172	urlParams_   gensupport.URLParams
103173	ctx_         context.Context
103174	header_      http.Header
103175}
103176
103177// Delete: Deletes the specified machine image. Deleting a machine image
103178// is permanent and cannot be undone.
103179func (r *MachineImagesService) Delete(project string, machineImage string) *MachineImagesDeleteCall {
103180	c := &MachineImagesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103181	c.project = project
103182	c.machineImage = machineImage
103183	return c
103184}
103185
103186// RequestId sets the optional parameter "requestId": An optional
103187// request ID to identify requests. Specify a unique request ID so that
103188// if you must retry your request, the server will know to ignore the
103189// request if it has already been completed.
103190//
103191// For example, consider a situation where you make an initial request
103192// and the request times out. If you make the request again with the
103193// same request ID, the server can check if original operation with the
103194// same request ID was received, and if so, will ignore the second
103195// request. This prevents clients from accidentally creating duplicate
103196// commitments.
103197//
103198// The request ID must be a valid UUID with the exception that zero UUID
103199// is not supported (00000000-0000-0000-0000-000000000000).
103200func (c *MachineImagesDeleteCall) RequestId(requestId string) *MachineImagesDeleteCall {
103201	c.urlParams_.Set("requestId", requestId)
103202	return c
103203}
103204
103205// Fields allows partial responses to be retrieved. See
103206// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103207// for more information.
103208func (c *MachineImagesDeleteCall) Fields(s ...googleapi.Field) *MachineImagesDeleteCall {
103209	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103210	return c
103211}
103212
103213// Context sets the context to be used in this call's Do method. Any
103214// pending HTTP request will be aborted if the provided context is
103215// canceled.
103216func (c *MachineImagesDeleteCall) Context(ctx context.Context) *MachineImagesDeleteCall {
103217	c.ctx_ = ctx
103218	return c
103219}
103220
103221// Header returns an http.Header that can be modified by the caller to
103222// add HTTP headers to the request.
103223func (c *MachineImagesDeleteCall) Header() http.Header {
103224	if c.header_ == nil {
103225		c.header_ = make(http.Header)
103226	}
103227	return c.header_
103228}
103229
103230func (c *MachineImagesDeleteCall) doRequest(alt string) (*http.Response, error) {
103231	reqHeaders := make(http.Header)
103232	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
103233	for k, v := range c.header_ {
103234		reqHeaders[k] = v
103235	}
103236	reqHeaders.Set("User-Agent", c.s.userAgent())
103237	var body io.Reader = nil
103238	c.urlParams_.Set("alt", alt)
103239	c.urlParams_.Set("prettyPrint", "false")
103240	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/machineImages/{machineImage}")
103241	urls += "?" + c.urlParams_.Encode()
103242	req, err := http.NewRequest("DELETE", urls, body)
103243	if err != nil {
103244		return nil, err
103245	}
103246	req.Header = reqHeaders
103247	googleapi.Expand(req.URL, map[string]string{
103248		"project":      c.project,
103249		"machineImage": c.machineImage,
103250	})
103251	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103252}
103253
103254// Do executes the "compute.machineImages.delete" call.
103255// Exactly one of *Operation or error will be non-nil. Any non-2xx
103256// status code is an error. Response headers are in either
103257// *Operation.ServerResponse.Header or (if a response was returned at
103258// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
103259// to check whether the returned error was because
103260// http.StatusNotModified was returned.
103261func (c *MachineImagesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
103262	gensupport.SetOptions(c.urlParams_, opts...)
103263	res, err := c.doRequest("json")
103264	if res != nil && res.StatusCode == http.StatusNotModified {
103265		if res.Body != nil {
103266			res.Body.Close()
103267		}
103268		return nil, &googleapi.Error{
103269			Code:   res.StatusCode,
103270			Header: res.Header,
103271		}
103272	}
103273	if err != nil {
103274		return nil, err
103275	}
103276	defer googleapi.CloseBody(res)
103277	if err := googleapi.CheckResponse(res); err != nil {
103278		return nil, err
103279	}
103280	ret := &Operation{
103281		ServerResponse: googleapi.ServerResponse{
103282			Header:         res.Header,
103283			HTTPStatusCode: res.StatusCode,
103284		},
103285	}
103286	target := &ret
103287	if err := gensupport.DecodeResponse(target, res); err != nil {
103288		return nil, err
103289	}
103290	return ret, nil
103291	// {
103292	//   "description": "Deletes the specified machine image. Deleting a machine image is permanent and cannot be undone.",
103293	//   "httpMethod": "DELETE",
103294	//   "id": "compute.machineImages.delete",
103295	//   "parameterOrder": [
103296	//     "project",
103297	//     "machineImage"
103298	//   ],
103299	//   "parameters": {
103300	//     "machineImage": {
103301	//       "description": "The name of the machine image to delete.",
103302	//       "location": "path",
103303	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
103304	//       "required": true,
103305	//       "type": "string"
103306	//     },
103307	//     "project": {
103308	//       "description": "Project ID for this request.",
103309	//       "location": "path",
103310	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
103311	//       "required": true,
103312	//       "type": "string"
103313	//     },
103314	//     "requestId": {
103315	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
103316	//       "location": "query",
103317	//       "type": "string"
103318	//     }
103319	//   },
103320	//   "path": "projects/{project}/global/machineImages/{machineImage}",
103321	//   "response": {
103322	//     "$ref": "Operation"
103323	//   },
103324	//   "scopes": [
103325	//     "https://www.googleapis.com/auth/cloud-platform",
103326	//     "https://www.googleapis.com/auth/compute"
103327	//   ]
103328	// }
103329
103330}
103331
103332// method id "compute.machineImages.get":
103333
103334type MachineImagesGetCall struct {
103335	s            *Service
103336	project      string
103337	machineImage string
103338	urlParams_   gensupport.URLParams
103339	ifNoneMatch_ string
103340	ctx_         context.Context
103341	header_      http.Header
103342}
103343
103344// Get: Returns the specified machine image. Gets a list of available
103345// machine images by making a list() request.
103346func (r *MachineImagesService) Get(project string, machineImage string) *MachineImagesGetCall {
103347	c := &MachineImagesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103348	c.project = project
103349	c.machineImage = machineImage
103350	return c
103351}
103352
103353// Fields allows partial responses to be retrieved. See
103354// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103355// for more information.
103356func (c *MachineImagesGetCall) Fields(s ...googleapi.Field) *MachineImagesGetCall {
103357	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103358	return c
103359}
103360
103361// IfNoneMatch sets the optional parameter which makes the operation
103362// fail if the object's ETag matches the given value. This is useful for
103363// getting updates only after the object has changed since the last
103364// request. Use googleapi.IsNotModified to check whether the response
103365// error from Do is the result of In-None-Match.
103366func (c *MachineImagesGetCall) IfNoneMatch(entityTag string) *MachineImagesGetCall {
103367	c.ifNoneMatch_ = entityTag
103368	return c
103369}
103370
103371// Context sets the context to be used in this call's Do method. Any
103372// pending HTTP request will be aborted if the provided context is
103373// canceled.
103374func (c *MachineImagesGetCall) Context(ctx context.Context) *MachineImagesGetCall {
103375	c.ctx_ = ctx
103376	return c
103377}
103378
103379// Header returns an http.Header that can be modified by the caller to
103380// add HTTP headers to the request.
103381func (c *MachineImagesGetCall) Header() http.Header {
103382	if c.header_ == nil {
103383		c.header_ = make(http.Header)
103384	}
103385	return c.header_
103386}
103387
103388func (c *MachineImagesGetCall) doRequest(alt string) (*http.Response, error) {
103389	reqHeaders := make(http.Header)
103390	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
103391	for k, v := range c.header_ {
103392		reqHeaders[k] = v
103393	}
103394	reqHeaders.Set("User-Agent", c.s.userAgent())
103395	if c.ifNoneMatch_ != "" {
103396		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
103397	}
103398	var body io.Reader = nil
103399	c.urlParams_.Set("alt", alt)
103400	c.urlParams_.Set("prettyPrint", "false")
103401	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/machineImages/{machineImage}")
103402	urls += "?" + c.urlParams_.Encode()
103403	req, err := http.NewRequest("GET", urls, body)
103404	if err != nil {
103405		return nil, err
103406	}
103407	req.Header = reqHeaders
103408	googleapi.Expand(req.URL, map[string]string{
103409		"project":      c.project,
103410		"machineImage": c.machineImage,
103411	})
103412	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103413}
103414
103415// Do executes the "compute.machineImages.get" call.
103416// Exactly one of *MachineImage or error will be non-nil. Any non-2xx
103417// status code is an error. Response headers are in either
103418// *MachineImage.ServerResponse.Header or (if a response was returned at
103419// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
103420// to check whether the returned error was because
103421// http.StatusNotModified was returned.
103422func (c *MachineImagesGetCall) Do(opts ...googleapi.CallOption) (*MachineImage, error) {
103423	gensupport.SetOptions(c.urlParams_, opts...)
103424	res, err := c.doRequest("json")
103425	if res != nil && res.StatusCode == http.StatusNotModified {
103426		if res.Body != nil {
103427			res.Body.Close()
103428		}
103429		return nil, &googleapi.Error{
103430			Code:   res.StatusCode,
103431			Header: res.Header,
103432		}
103433	}
103434	if err != nil {
103435		return nil, err
103436	}
103437	defer googleapi.CloseBody(res)
103438	if err := googleapi.CheckResponse(res); err != nil {
103439		return nil, err
103440	}
103441	ret := &MachineImage{
103442		ServerResponse: googleapi.ServerResponse{
103443			Header:         res.Header,
103444			HTTPStatusCode: res.StatusCode,
103445		},
103446	}
103447	target := &ret
103448	if err := gensupport.DecodeResponse(target, res); err != nil {
103449		return nil, err
103450	}
103451	return ret, nil
103452	// {
103453	//   "description": "Returns the specified machine image. Gets a list of available machine images by making a list() request.",
103454	//   "httpMethod": "GET",
103455	//   "id": "compute.machineImages.get",
103456	//   "parameterOrder": [
103457	//     "project",
103458	//     "machineImage"
103459	//   ],
103460	//   "parameters": {
103461	//     "machineImage": {
103462	//       "description": "The name of the machine image.",
103463	//       "location": "path",
103464	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
103465	//       "required": true,
103466	//       "type": "string"
103467	//     },
103468	//     "project": {
103469	//       "description": "Project ID for this request.",
103470	//       "location": "path",
103471	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
103472	//       "required": true,
103473	//       "type": "string"
103474	//     }
103475	//   },
103476	//   "path": "projects/{project}/global/machineImages/{machineImage}",
103477	//   "response": {
103478	//     "$ref": "MachineImage"
103479	//   },
103480	//   "scopes": [
103481	//     "https://www.googleapis.com/auth/cloud-platform",
103482	//     "https://www.googleapis.com/auth/compute",
103483	//     "https://www.googleapis.com/auth/compute.readonly"
103484	//   ]
103485	// }
103486
103487}
103488
103489// method id "compute.machineImages.getIamPolicy":
103490
103491type MachineImagesGetIamPolicyCall struct {
103492	s            *Service
103493	project      string
103494	resource     string
103495	urlParams_   gensupport.URLParams
103496	ifNoneMatch_ string
103497	ctx_         context.Context
103498	header_      http.Header
103499}
103500
103501// GetIamPolicy: Gets the access control policy for a resource. May be
103502// empty if no such policy or resource exists.
103503func (r *MachineImagesService) GetIamPolicy(project string, resource string) *MachineImagesGetIamPolicyCall {
103504	c := &MachineImagesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103505	c.project = project
103506	c.resource = resource
103507	return c
103508}
103509
103510// OptionsRequestedPolicyVersion sets the optional parameter
103511// "optionsRequestedPolicyVersion": Requested IAM Policy version.
103512func (c *MachineImagesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *MachineImagesGetIamPolicyCall {
103513	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
103514	return c
103515}
103516
103517// Fields allows partial responses to be retrieved. See
103518// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103519// for more information.
103520func (c *MachineImagesGetIamPolicyCall) Fields(s ...googleapi.Field) *MachineImagesGetIamPolicyCall {
103521	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103522	return c
103523}
103524
103525// IfNoneMatch sets the optional parameter which makes the operation
103526// fail if the object's ETag matches the given value. This is useful for
103527// getting updates only after the object has changed since the last
103528// request. Use googleapi.IsNotModified to check whether the response
103529// error from Do is the result of In-None-Match.
103530func (c *MachineImagesGetIamPolicyCall) IfNoneMatch(entityTag string) *MachineImagesGetIamPolicyCall {
103531	c.ifNoneMatch_ = entityTag
103532	return c
103533}
103534
103535// Context sets the context to be used in this call's Do method. Any
103536// pending HTTP request will be aborted if the provided context is
103537// canceled.
103538func (c *MachineImagesGetIamPolicyCall) Context(ctx context.Context) *MachineImagesGetIamPolicyCall {
103539	c.ctx_ = ctx
103540	return c
103541}
103542
103543// Header returns an http.Header that can be modified by the caller to
103544// add HTTP headers to the request.
103545func (c *MachineImagesGetIamPolicyCall) Header() http.Header {
103546	if c.header_ == nil {
103547		c.header_ = make(http.Header)
103548	}
103549	return c.header_
103550}
103551
103552func (c *MachineImagesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
103553	reqHeaders := make(http.Header)
103554	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
103555	for k, v := range c.header_ {
103556		reqHeaders[k] = v
103557	}
103558	reqHeaders.Set("User-Agent", c.s.userAgent())
103559	if c.ifNoneMatch_ != "" {
103560		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
103561	}
103562	var body io.Reader = nil
103563	c.urlParams_.Set("alt", alt)
103564	c.urlParams_.Set("prettyPrint", "false")
103565	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/machineImages/{resource}/getIamPolicy")
103566	urls += "?" + c.urlParams_.Encode()
103567	req, err := http.NewRequest("GET", urls, body)
103568	if err != nil {
103569		return nil, err
103570	}
103571	req.Header = reqHeaders
103572	googleapi.Expand(req.URL, map[string]string{
103573		"project":  c.project,
103574		"resource": c.resource,
103575	})
103576	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103577}
103578
103579// Do executes the "compute.machineImages.getIamPolicy" call.
103580// Exactly one of *Policy or error will be non-nil. Any non-2xx status
103581// code is an error. Response headers are in either
103582// *Policy.ServerResponse.Header or (if a response was returned at all)
103583// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
103584// check whether the returned error was because http.StatusNotModified
103585// was returned.
103586func (c *MachineImagesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
103587	gensupport.SetOptions(c.urlParams_, opts...)
103588	res, err := c.doRequest("json")
103589	if res != nil && res.StatusCode == http.StatusNotModified {
103590		if res.Body != nil {
103591			res.Body.Close()
103592		}
103593		return nil, &googleapi.Error{
103594			Code:   res.StatusCode,
103595			Header: res.Header,
103596		}
103597	}
103598	if err != nil {
103599		return nil, err
103600	}
103601	defer googleapi.CloseBody(res)
103602	if err := googleapi.CheckResponse(res); err != nil {
103603		return nil, err
103604	}
103605	ret := &Policy{
103606		ServerResponse: googleapi.ServerResponse{
103607			Header:         res.Header,
103608			HTTPStatusCode: res.StatusCode,
103609		},
103610	}
103611	target := &ret
103612	if err := gensupport.DecodeResponse(target, res); err != nil {
103613		return nil, err
103614	}
103615	return ret, nil
103616	// {
103617	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
103618	//   "httpMethod": "GET",
103619	//   "id": "compute.machineImages.getIamPolicy",
103620	//   "parameterOrder": [
103621	//     "project",
103622	//     "resource"
103623	//   ],
103624	//   "parameters": {
103625	//     "optionsRequestedPolicyVersion": {
103626	//       "description": "Requested IAM Policy version.",
103627	//       "format": "int32",
103628	//       "location": "query",
103629	//       "type": "integer"
103630	//     },
103631	//     "project": {
103632	//       "description": "Project ID for this request.",
103633	//       "location": "path",
103634	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
103635	//       "required": true,
103636	//       "type": "string"
103637	//     },
103638	//     "resource": {
103639	//       "description": "Name or id of the resource for this request.",
103640	//       "location": "path",
103641	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
103642	//       "required": true,
103643	//       "type": "string"
103644	//     }
103645	//   },
103646	//   "path": "projects/{project}/global/machineImages/{resource}/getIamPolicy",
103647	//   "response": {
103648	//     "$ref": "Policy"
103649	//   },
103650	//   "scopes": [
103651	//     "https://www.googleapis.com/auth/cloud-platform",
103652	//     "https://www.googleapis.com/auth/compute",
103653	//     "https://www.googleapis.com/auth/compute.readonly"
103654	//   ]
103655	// }
103656
103657}
103658
103659// method id "compute.machineImages.insert":
103660
103661type MachineImagesInsertCall struct {
103662	s            *Service
103663	project      string
103664	machineimage *MachineImage
103665	urlParams_   gensupport.URLParams
103666	ctx_         context.Context
103667	header_      http.Header
103668}
103669
103670// Insert: Creates a machine image in the specified project using the
103671// data that is included in the request. If you are creating a new
103672// machine image to update an existing instance, your new machine image
103673// should use the same network or, if applicable, the same subnetwork as
103674// the original instance.
103675func (r *MachineImagesService) Insert(project string, machineimage *MachineImage) *MachineImagesInsertCall {
103676	c := &MachineImagesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103677	c.project = project
103678	c.machineimage = machineimage
103679	return c
103680}
103681
103682// RequestId sets the optional parameter "requestId": An optional
103683// request ID to identify requests. Specify a unique request ID so that
103684// if you must retry your request, the server will know to ignore the
103685// request if it has already been completed.
103686//
103687// For example, consider a situation where you make an initial request
103688// and the request times out. If you make the request again with the
103689// same request ID, the server can check if original operation with the
103690// same request ID was received, and if so, will ignore the second
103691// request. This prevents clients from accidentally creating duplicate
103692// commitments.
103693//
103694// The request ID must be a valid UUID with the exception that zero UUID
103695// is not supported (00000000-0000-0000-0000-000000000000).
103696func (c *MachineImagesInsertCall) RequestId(requestId string) *MachineImagesInsertCall {
103697	c.urlParams_.Set("requestId", requestId)
103698	return c
103699}
103700
103701// SourceInstance sets the optional parameter "sourceInstance":
103702// Required. Source instance that is used to create the machine image
103703// from.
103704func (c *MachineImagesInsertCall) SourceInstance(sourceInstance string) *MachineImagesInsertCall {
103705	c.urlParams_.Set("sourceInstance", sourceInstance)
103706	return c
103707}
103708
103709// Fields allows partial responses to be retrieved. See
103710// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103711// for more information.
103712func (c *MachineImagesInsertCall) Fields(s ...googleapi.Field) *MachineImagesInsertCall {
103713	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103714	return c
103715}
103716
103717// Context sets the context to be used in this call's Do method. Any
103718// pending HTTP request will be aborted if the provided context is
103719// canceled.
103720func (c *MachineImagesInsertCall) Context(ctx context.Context) *MachineImagesInsertCall {
103721	c.ctx_ = ctx
103722	return c
103723}
103724
103725// Header returns an http.Header that can be modified by the caller to
103726// add HTTP headers to the request.
103727func (c *MachineImagesInsertCall) Header() http.Header {
103728	if c.header_ == nil {
103729		c.header_ = make(http.Header)
103730	}
103731	return c.header_
103732}
103733
103734func (c *MachineImagesInsertCall) doRequest(alt string) (*http.Response, error) {
103735	reqHeaders := make(http.Header)
103736	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
103737	for k, v := range c.header_ {
103738		reqHeaders[k] = v
103739	}
103740	reqHeaders.Set("User-Agent", c.s.userAgent())
103741	var body io.Reader = nil
103742	body, err := googleapi.WithoutDataWrapper.JSONReader(c.machineimage)
103743	if err != nil {
103744		return nil, err
103745	}
103746	reqHeaders.Set("Content-Type", "application/json")
103747	c.urlParams_.Set("alt", alt)
103748	c.urlParams_.Set("prettyPrint", "false")
103749	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/machineImages")
103750	urls += "?" + c.urlParams_.Encode()
103751	req, err := http.NewRequest("POST", urls, body)
103752	if err != nil {
103753		return nil, err
103754	}
103755	req.Header = reqHeaders
103756	googleapi.Expand(req.URL, map[string]string{
103757		"project": c.project,
103758	})
103759	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103760}
103761
103762// Do executes the "compute.machineImages.insert" call.
103763// Exactly one of *Operation or error will be non-nil. Any non-2xx
103764// status code is an error. Response headers are in either
103765// *Operation.ServerResponse.Header or (if a response was returned at
103766// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
103767// to check whether the returned error was because
103768// http.StatusNotModified was returned.
103769func (c *MachineImagesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
103770	gensupport.SetOptions(c.urlParams_, opts...)
103771	res, err := c.doRequest("json")
103772	if res != nil && res.StatusCode == http.StatusNotModified {
103773		if res.Body != nil {
103774			res.Body.Close()
103775		}
103776		return nil, &googleapi.Error{
103777			Code:   res.StatusCode,
103778			Header: res.Header,
103779		}
103780	}
103781	if err != nil {
103782		return nil, err
103783	}
103784	defer googleapi.CloseBody(res)
103785	if err := googleapi.CheckResponse(res); err != nil {
103786		return nil, err
103787	}
103788	ret := &Operation{
103789		ServerResponse: googleapi.ServerResponse{
103790			Header:         res.Header,
103791			HTTPStatusCode: res.StatusCode,
103792		},
103793	}
103794	target := &ret
103795	if err := gensupport.DecodeResponse(target, res); err != nil {
103796		return nil, err
103797	}
103798	return ret, nil
103799	// {
103800	//   "description": "Creates a machine image in the specified project using the data that is included in the request. If you are creating a new machine image to update an existing instance, your new machine image should use the same network or, if applicable, the same subnetwork as the original instance.",
103801	//   "httpMethod": "POST",
103802	//   "id": "compute.machineImages.insert",
103803	//   "parameterOrder": [
103804	//     "project"
103805	//   ],
103806	//   "parameters": {
103807	//     "project": {
103808	//       "description": "Project ID for this request.",
103809	//       "location": "path",
103810	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
103811	//       "required": true,
103812	//       "type": "string"
103813	//     },
103814	//     "requestId": {
103815	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
103816	//       "location": "query",
103817	//       "type": "string"
103818	//     },
103819	//     "sourceInstance": {
103820	//       "description": "Required. Source instance that is used to create the machine image from.",
103821	//       "location": "query",
103822	//       "type": "string"
103823	//     }
103824	//   },
103825	//   "path": "projects/{project}/global/machineImages",
103826	//   "request": {
103827	//     "$ref": "MachineImage"
103828	//   },
103829	//   "response": {
103830	//     "$ref": "Operation"
103831	//   },
103832	//   "scopes": [
103833	//     "https://www.googleapis.com/auth/cloud-platform",
103834	//     "https://www.googleapis.com/auth/compute"
103835	//   ]
103836	// }
103837
103838}
103839
103840// method id "compute.machineImages.list":
103841
103842type MachineImagesListCall struct {
103843	s            *Service
103844	project      string
103845	urlParams_   gensupport.URLParams
103846	ifNoneMatch_ string
103847	ctx_         context.Context
103848	header_      http.Header
103849}
103850
103851// List: Retrieves a list of machine images that are contained within
103852// the specified project.
103853func (r *MachineImagesService) List(project string) *MachineImagesListCall {
103854	c := &MachineImagesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103855	c.project = project
103856	return c
103857}
103858
103859// Filter sets the optional parameter "filter": A filter expression that
103860// filters resources listed in the response. The expression must specify
103861// the field name, a comparison operator, and the value that you want to
103862// use for filtering. The value must be a string, a number, or a
103863// boolean. The comparison operator must be either `=`, `!=`, `>`, or
103864// `<`.
103865//
103866// For example, if you are filtering Compute Engine instances, you can
103867// exclude instances named `example-instance` by specifying `name !=
103868// example-instance`.
103869//
103870// You can also filter nested fields. For example, you could specify
103871// `scheduling.automaticRestart = false` to include instances only if
103872// they are not scheduled for automatic restarts. You can use filtering
103873// on nested fields to filter based on resource labels.
103874//
103875// To filter on multiple expressions, provide each separate expression
103876// within parentheses. For example: ``` (scheduling.automaticRestart =
103877// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
103878// is an `AND` expression. However, you can include `AND` and `OR`
103879// expressions explicitly. For example: ``` (cpuPlatform = "Intel
103880// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
103881// (scheduling.automaticRestart = true) ```
103882func (c *MachineImagesListCall) Filter(filter string) *MachineImagesListCall {
103883	c.urlParams_.Set("filter", filter)
103884	return c
103885}
103886
103887// MaxResults sets the optional parameter "maxResults": The maximum
103888// number of results per page that should be returned. If the number of
103889// available results is larger than `maxResults`, Compute Engine returns
103890// a `nextPageToken` that can be used to get the next page of results in
103891// subsequent list requests. Acceptable values are `0` to `500`,
103892// inclusive. (Default: `500`)
103893func (c *MachineImagesListCall) MaxResults(maxResults int64) *MachineImagesListCall {
103894	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
103895	return c
103896}
103897
103898// OrderBy sets the optional parameter "orderBy": Sorts list results by
103899// a certain order. By default, results are returned in alphanumerical
103900// order based on the resource name.
103901//
103902// You can also sort results in descending order based on the creation
103903// timestamp using `orderBy="creationTimestamp desc". This sorts
103904// results based on the `creationTimestamp` field in reverse
103905// chronological order (newest result first). Use this to sort resources
103906// like operations so that the newest operation is returned
103907// first.
103908//
103909// Currently, only sorting by `name` or `creationTimestamp desc` is
103910// supported.
103911func (c *MachineImagesListCall) OrderBy(orderBy string) *MachineImagesListCall {
103912	c.urlParams_.Set("orderBy", orderBy)
103913	return c
103914}
103915
103916// PageToken sets the optional parameter "pageToken": Specifies a page
103917// token to use. Set `pageToken` to the `nextPageToken` returned by a
103918// previous list request to get the next page of results.
103919func (c *MachineImagesListCall) PageToken(pageToken string) *MachineImagesListCall {
103920	c.urlParams_.Set("pageToken", pageToken)
103921	return c
103922}
103923
103924// ReturnPartialSuccess sets the optional parameter
103925// "returnPartialSuccess": Opt-in for partial success behavior which
103926// provides partial results in case of failure. The default value is
103927// false.
103928func (c *MachineImagesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *MachineImagesListCall {
103929	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
103930	return c
103931}
103932
103933// Fields allows partial responses to be retrieved. See
103934// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103935// for more information.
103936func (c *MachineImagesListCall) Fields(s ...googleapi.Field) *MachineImagesListCall {
103937	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103938	return c
103939}
103940
103941// IfNoneMatch sets the optional parameter which makes the operation
103942// fail if the object's ETag matches the given value. This is useful for
103943// getting updates only after the object has changed since the last
103944// request. Use googleapi.IsNotModified to check whether the response
103945// error from Do is the result of In-None-Match.
103946func (c *MachineImagesListCall) IfNoneMatch(entityTag string) *MachineImagesListCall {
103947	c.ifNoneMatch_ = entityTag
103948	return c
103949}
103950
103951// Context sets the context to be used in this call's Do method. Any
103952// pending HTTP request will be aborted if the provided context is
103953// canceled.
103954func (c *MachineImagesListCall) Context(ctx context.Context) *MachineImagesListCall {
103955	c.ctx_ = ctx
103956	return c
103957}
103958
103959// Header returns an http.Header that can be modified by the caller to
103960// add HTTP headers to the request.
103961func (c *MachineImagesListCall) Header() http.Header {
103962	if c.header_ == nil {
103963		c.header_ = make(http.Header)
103964	}
103965	return c.header_
103966}
103967
103968func (c *MachineImagesListCall) doRequest(alt string) (*http.Response, error) {
103969	reqHeaders := make(http.Header)
103970	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
103971	for k, v := range c.header_ {
103972		reqHeaders[k] = v
103973	}
103974	reqHeaders.Set("User-Agent", c.s.userAgent())
103975	if c.ifNoneMatch_ != "" {
103976		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
103977	}
103978	var body io.Reader = nil
103979	c.urlParams_.Set("alt", alt)
103980	c.urlParams_.Set("prettyPrint", "false")
103981	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/machineImages")
103982	urls += "?" + c.urlParams_.Encode()
103983	req, err := http.NewRequest("GET", urls, body)
103984	if err != nil {
103985		return nil, err
103986	}
103987	req.Header = reqHeaders
103988	googleapi.Expand(req.URL, map[string]string{
103989		"project": c.project,
103990	})
103991	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103992}
103993
103994// Do executes the "compute.machineImages.list" call.
103995// Exactly one of *MachineImageList or error will be non-nil. Any
103996// non-2xx status code is an error. Response headers are in either
103997// *MachineImageList.ServerResponse.Header or (if a response was
103998// returned at all) in error.(*googleapi.Error).Header. Use
103999// googleapi.IsNotModified to check whether the returned error was
104000// because http.StatusNotModified was returned.
104001func (c *MachineImagesListCall) Do(opts ...googleapi.CallOption) (*MachineImageList, error) {
104002	gensupport.SetOptions(c.urlParams_, opts...)
104003	res, err := c.doRequest("json")
104004	if res != nil && res.StatusCode == http.StatusNotModified {
104005		if res.Body != nil {
104006			res.Body.Close()
104007		}
104008		return nil, &googleapi.Error{
104009			Code:   res.StatusCode,
104010			Header: res.Header,
104011		}
104012	}
104013	if err != nil {
104014		return nil, err
104015	}
104016	defer googleapi.CloseBody(res)
104017	if err := googleapi.CheckResponse(res); err != nil {
104018		return nil, err
104019	}
104020	ret := &MachineImageList{
104021		ServerResponse: googleapi.ServerResponse{
104022			Header:         res.Header,
104023			HTTPStatusCode: res.StatusCode,
104024		},
104025	}
104026	target := &ret
104027	if err := gensupport.DecodeResponse(target, res); err != nil {
104028		return nil, err
104029	}
104030	return ret, nil
104031	// {
104032	//   "description": "Retrieves a list of machine images that are contained within the specified project.",
104033	//   "httpMethod": "GET",
104034	//   "id": "compute.machineImages.list",
104035	//   "parameterOrder": [
104036	//     "project"
104037	//   ],
104038	//   "parameters": {
104039	//     "filter": {
104040	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
104041	//       "location": "query",
104042	//       "type": "string"
104043	//     },
104044	//     "maxResults": {
104045	//       "default": "500",
104046	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
104047	//       "format": "uint32",
104048	//       "location": "query",
104049	//       "minimum": "0",
104050	//       "type": "integer"
104051	//     },
104052	//     "orderBy": {
104053	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
104054	//       "location": "query",
104055	//       "type": "string"
104056	//     },
104057	//     "pageToken": {
104058	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
104059	//       "location": "query",
104060	//       "type": "string"
104061	//     },
104062	//     "project": {
104063	//       "description": "Project ID for this request.",
104064	//       "location": "path",
104065	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
104066	//       "required": true,
104067	//       "type": "string"
104068	//     },
104069	//     "returnPartialSuccess": {
104070	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
104071	//       "location": "query",
104072	//       "type": "boolean"
104073	//     }
104074	//   },
104075	//   "path": "projects/{project}/global/machineImages",
104076	//   "response": {
104077	//     "$ref": "MachineImageList"
104078	//   },
104079	//   "scopes": [
104080	//     "https://www.googleapis.com/auth/cloud-platform",
104081	//     "https://www.googleapis.com/auth/compute",
104082	//     "https://www.googleapis.com/auth/compute.readonly"
104083	//   ]
104084	// }
104085
104086}
104087
104088// Pages invokes f for each page of results.
104089// A non-nil error returned from f will halt the iteration.
104090// The provided context supersedes any context provided to the Context method.
104091func (c *MachineImagesListCall) Pages(ctx context.Context, f func(*MachineImageList) error) error {
104092	c.ctx_ = ctx
104093	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
104094	for {
104095		x, err := c.Do()
104096		if err != nil {
104097			return err
104098		}
104099		if err := f(x); err != nil {
104100			return err
104101		}
104102		if x.NextPageToken == "" {
104103			return nil
104104		}
104105		c.PageToken(x.NextPageToken)
104106	}
104107}
104108
104109// method id "compute.machineImages.setIamPolicy":
104110
104111type MachineImagesSetIamPolicyCall struct {
104112	s                      *Service
104113	project                string
104114	resource               string
104115	globalsetpolicyrequest *GlobalSetPolicyRequest
104116	urlParams_             gensupport.URLParams
104117	ctx_                   context.Context
104118	header_                http.Header
104119}
104120
104121// SetIamPolicy: Sets the access control policy on the specified
104122// resource. Replaces any existing policy.
104123func (r *MachineImagesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *MachineImagesSetIamPolicyCall {
104124	c := &MachineImagesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104125	c.project = project
104126	c.resource = resource
104127	c.globalsetpolicyrequest = globalsetpolicyrequest
104128	return c
104129}
104130
104131// Fields allows partial responses to be retrieved. See
104132// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104133// for more information.
104134func (c *MachineImagesSetIamPolicyCall) Fields(s ...googleapi.Field) *MachineImagesSetIamPolicyCall {
104135	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104136	return c
104137}
104138
104139// Context sets the context to be used in this call's Do method. Any
104140// pending HTTP request will be aborted if the provided context is
104141// canceled.
104142func (c *MachineImagesSetIamPolicyCall) Context(ctx context.Context) *MachineImagesSetIamPolicyCall {
104143	c.ctx_ = ctx
104144	return c
104145}
104146
104147// Header returns an http.Header that can be modified by the caller to
104148// add HTTP headers to the request.
104149func (c *MachineImagesSetIamPolicyCall) Header() http.Header {
104150	if c.header_ == nil {
104151		c.header_ = make(http.Header)
104152	}
104153	return c.header_
104154}
104155
104156func (c *MachineImagesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
104157	reqHeaders := make(http.Header)
104158	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
104159	for k, v := range c.header_ {
104160		reqHeaders[k] = v
104161	}
104162	reqHeaders.Set("User-Agent", c.s.userAgent())
104163	var body io.Reader = nil
104164	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
104165	if err != nil {
104166		return nil, err
104167	}
104168	reqHeaders.Set("Content-Type", "application/json")
104169	c.urlParams_.Set("alt", alt)
104170	c.urlParams_.Set("prettyPrint", "false")
104171	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/machineImages/{resource}/setIamPolicy")
104172	urls += "?" + c.urlParams_.Encode()
104173	req, err := http.NewRequest("POST", urls, body)
104174	if err != nil {
104175		return nil, err
104176	}
104177	req.Header = reqHeaders
104178	googleapi.Expand(req.URL, map[string]string{
104179		"project":  c.project,
104180		"resource": c.resource,
104181	})
104182	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104183}
104184
104185// Do executes the "compute.machineImages.setIamPolicy" call.
104186// Exactly one of *Policy or error will be non-nil. Any non-2xx status
104187// code is an error. Response headers are in either
104188// *Policy.ServerResponse.Header or (if a response was returned at all)
104189// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
104190// check whether the returned error was because http.StatusNotModified
104191// was returned.
104192func (c *MachineImagesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
104193	gensupport.SetOptions(c.urlParams_, opts...)
104194	res, err := c.doRequest("json")
104195	if res != nil && res.StatusCode == http.StatusNotModified {
104196		if res.Body != nil {
104197			res.Body.Close()
104198		}
104199		return nil, &googleapi.Error{
104200			Code:   res.StatusCode,
104201			Header: res.Header,
104202		}
104203	}
104204	if err != nil {
104205		return nil, err
104206	}
104207	defer googleapi.CloseBody(res)
104208	if err := googleapi.CheckResponse(res); err != nil {
104209		return nil, err
104210	}
104211	ret := &Policy{
104212		ServerResponse: googleapi.ServerResponse{
104213			Header:         res.Header,
104214			HTTPStatusCode: res.StatusCode,
104215		},
104216	}
104217	target := &ret
104218	if err := gensupport.DecodeResponse(target, res); err != nil {
104219		return nil, err
104220	}
104221	return ret, nil
104222	// {
104223	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
104224	//   "httpMethod": "POST",
104225	//   "id": "compute.machineImages.setIamPolicy",
104226	//   "parameterOrder": [
104227	//     "project",
104228	//     "resource"
104229	//   ],
104230	//   "parameters": {
104231	//     "project": {
104232	//       "description": "Project ID for this request.",
104233	//       "location": "path",
104234	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
104235	//       "required": true,
104236	//       "type": "string"
104237	//     },
104238	//     "resource": {
104239	//       "description": "Name or id of the resource for this request.",
104240	//       "location": "path",
104241	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
104242	//       "required": true,
104243	//       "type": "string"
104244	//     }
104245	//   },
104246	//   "path": "projects/{project}/global/machineImages/{resource}/setIamPolicy",
104247	//   "request": {
104248	//     "$ref": "GlobalSetPolicyRequest"
104249	//   },
104250	//   "response": {
104251	//     "$ref": "Policy"
104252	//   },
104253	//   "scopes": [
104254	//     "https://www.googleapis.com/auth/cloud-platform",
104255	//     "https://www.googleapis.com/auth/compute"
104256	//   ]
104257	// }
104258
104259}
104260
104261// method id "compute.machineImages.testIamPermissions":
104262
104263type MachineImagesTestIamPermissionsCall struct {
104264	s                      *Service
104265	project                string
104266	resource               string
104267	testpermissionsrequest *TestPermissionsRequest
104268	urlParams_             gensupport.URLParams
104269	ctx_                   context.Context
104270	header_                http.Header
104271}
104272
104273// TestIamPermissions: Returns permissions that a caller has on the
104274// specified resource.
104275func (r *MachineImagesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *MachineImagesTestIamPermissionsCall {
104276	c := &MachineImagesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104277	c.project = project
104278	c.resource = resource
104279	c.testpermissionsrequest = testpermissionsrequest
104280	return c
104281}
104282
104283// Fields allows partial responses to be retrieved. See
104284// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104285// for more information.
104286func (c *MachineImagesTestIamPermissionsCall) Fields(s ...googleapi.Field) *MachineImagesTestIamPermissionsCall {
104287	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104288	return c
104289}
104290
104291// Context sets the context to be used in this call's Do method. Any
104292// pending HTTP request will be aborted if the provided context is
104293// canceled.
104294func (c *MachineImagesTestIamPermissionsCall) Context(ctx context.Context) *MachineImagesTestIamPermissionsCall {
104295	c.ctx_ = ctx
104296	return c
104297}
104298
104299// Header returns an http.Header that can be modified by the caller to
104300// add HTTP headers to the request.
104301func (c *MachineImagesTestIamPermissionsCall) Header() http.Header {
104302	if c.header_ == nil {
104303		c.header_ = make(http.Header)
104304	}
104305	return c.header_
104306}
104307
104308func (c *MachineImagesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
104309	reqHeaders := make(http.Header)
104310	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
104311	for k, v := range c.header_ {
104312		reqHeaders[k] = v
104313	}
104314	reqHeaders.Set("User-Agent", c.s.userAgent())
104315	var body io.Reader = nil
104316	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
104317	if err != nil {
104318		return nil, err
104319	}
104320	reqHeaders.Set("Content-Type", "application/json")
104321	c.urlParams_.Set("alt", alt)
104322	c.urlParams_.Set("prettyPrint", "false")
104323	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/machineImages/{resource}/testIamPermissions")
104324	urls += "?" + c.urlParams_.Encode()
104325	req, err := http.NewRequest("POST", urls, body)
104326	if err != nil {
104327		return nil, err
104328	}
104329	req.Header = reqHeaders
104330	googleapi.Expand(req.URL, map[string]string{
104331		"project":  c.project,
104332		"resource": c.resource,
104333	})
104334	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104335}
104336
104337// Do executes the "compute.machineImages.testIamPermissions" call.
104338// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
104339// non-2xx status code is an error. Response headers are in either
104340// *TestPermissionsResponse.ServerResponse.Header or (if a response was
104341// returned at all) in error.(*googleapi.Error).Header. Use
104342// googleapi.IsNotModified to check whether the returned error was
104343// because http.StatusNotModified was returned.
104344func (c *MachineImagesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
104345	gensupport.SetOptions(c.urlParams_, opts...)
104346	res, err := c.doRequest("json")
104347	if res != nil && res.StatusCode == http.StatusNotModified {
104348		if res.Body != nil {
104349			res.Body.Close()
104350		}
104351		return nil, &googleapi.Error{
104352			Code:   res.StatusCode,
104353			Header: res.Header,
104354		}
104355	}
104356	if err != nil {
104357		return nil, err
104358	}
104359	defer googleapi.CloseBody(res)
104360	if err := googleapi.CheckResponse(res); err != nil {
104361		return nil, err
104362	}
104363	ret := &TestPermissionsResponse{
104364		ServerResponse: googleapi.ServerResponse{
104365			Header:         res.Header,
104366			HTTPStatusCode: res.StatusCode,
104367		},
104368	}
104369	target := &ret
104370	if err := gensupport.DecodeResponse(target, res); err != nil {
104371		return nil, err
104372	}
104373	return ret, nil
104374	// {
104375	//   "description": "Returns permissions that a caller has on the specified resource.",
104376	//   "httpMethod": "POST",
104377	//   "id": "compute.machineImages.testIamPermissions",
104378	//   "parameterOrder": [
104379	//     "project",
104380	//     "resource"
104381	//   ],
104382	//   "parameters": {
104383	//     "project": {
104384	//       "description": "Project ID for this request.",
104385	//       "location": "path",
104386	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
104387	//       "required": true,
104388	//       "type": "string"
104389	//     },
104390	//     "resource": {
104391	//       "description": "Name or id of the resource for this request.",
104392	//       "location": "path",
104393	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
104394	//       "required": true,
104395	//       "type": "string"
104396	//     }
104397	//   },
104398	//   "path": "projects/{project}/global/machineImages/{resource}/testIamPermissions",
104399	//   "request": {
104400	//     "$ref": "TestPermissionsRequest"
104401	//   },
104402	//   "response": {
104403	//     "$ref": "TestPermissionsResponse"
104404	//   },
104405	//   "scopes": [
104406	//     "https://www.googleapis.com/auth/cloud-platform",
104407	//     "https://www.googleapis.com/auth/compute",
104408	//     "https://www.googleapis.com/auth/compute.readonly"
104409	//   ]
104410	// }
104411
104412}
104413
104414// method id "compute.machineTypes.aggregatedList":
104415
104416type MachineTypesAggregatedListCall struct {
104417	s            *Service
104418	project      string
104419	urlParams_   gensupport.URLParams
104420	ifNoneMatch_ string
104421	ctx_         context.Context
104422	header_      http.Header
104423}
104424
104425// AggregatedList: Retrieves an aggregated list of machine types.
104426// For details, see https://cloud.google.com/compute/docs/reference/latest/machineTypes/aggregatedList
104427func (r *MachineTypesService) AggregatedList(project string) *MachineTypesAggregatedListCall {
104428	c := &MachineTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104429	c.project = project
104430	return c
104431}
104432
104433// Filter sets the optional parameter "filter": A filter expression that
104434// filters resources listed in the response. The expression must specify
104435// the field name, a comparison operator, and the value that you want to
104436// use for filtering. The value must be a string, a number, or a
104437// boolean. The comparison operator must be either `=`, `!=`, `>`, or
104438// `<`.
104439//
104440// For example, if you are filtering Compute Engine instances, you can
104441// exclude instances named `example-instance` by specifying `name !=
104442// example-instance`.
104443//
104444// You can also filter nested fields. For example, you could specify
104445// `scheduling.automaticRestart = false` to include instances only if
104446// they are not scheduled for automatic restarts. You can use filtering
104447// on nested fields to filter based on resource labels.
104448//
104449// To filter on multiple expressions, provide each separate expression
104450// within parentheses. For example: ``` (scheduling.automaticRestart =
104451// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
104452// is an `AND` expression. However, you can include `AND` and `OR`
104453// expressions explicitly. For example: ``` (cpuPlatform = "Intel
104454// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
104455// (scheduling.automaticRestart = true) ```
104456func (c *MachineTypesAggregatedListCall) Filter(filter string) *MachineTypesAggregatedListCall {
104457	c.urlParams_.Set("filter", filter)
104458	return c
104459}
104460
104461// IncludeAllScopes sets the optional parameter "includeAllScopes":
104462// Indicates whether every visible scope for each scope type (zone,
104463// region, global) should be included in the response. For new resource
104464// types added after this field, the flag has no effect as new resource
104465// types will always include every visible scope for each scope type in
104466// response. For resource types which predate this field, if this flag
104467// is omitted or false, only scopes of the scope types where the
104468// resource type is expected to be found will be included.
104469func (c *MachineTypesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *MachineTypesAggregatedListCall {
104470	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
104471	return c
104472}
104473
104474// MaxResults sets the optional parameter "maxResults": The maximum
104475// number of results per page that should be returned. If the number of
104476// available results is larger than `maxResults`, Compute Engine returns
104477// a `nextPageToken` that can be used to get the next page of results in
104478// subsequent list requests. Acceptable values are `0` to `500`,
104479// inclusive. (Default: `500`)
104480func (c *MachineTypesAggregatedListCall) MaxResults(maxResults int64) *MachineTypesAggregatedListCall {
104481	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
104482	return c
104483}
104484
104485// OrderBy sets the optional parameter "orderBy": Sorts list results by
104486// a certain order. By default, results are returned in alphanumerical
104487// order based on the resource name.
104488//
104489// You can also sort results in descending order based on the creation
104490// timestamp using `orderBy="creationTimestamp desc". This sorts
104491// results based on the `creationTimestamp` field in reverse
104492// chronological order (newest result first). Use this to sort resources
104493// like operations so that the newest operation is returned
104494// first.
104495//
104496// Currently, only sorting by `name` or `creationTimestamp desc` is
104497// supported.
104498func (c *MachineTypesAggregatedListCall) OrderBy(orderBy string) *MachineTypesAggregatedListCall {
104499	c.urlParams_.Set("orderBy", orderBy)
104500	return c
104501}
104502
104503// PageToken sets the optional parameter "pageToken": Specifies a page
104504// token to use. Set `pageToken` to the `nextPageToken` returned by a
104505// previous list request to get the next page of results.
104506func (c *MachineTypesAggregatedListCall) PageToken(pageToken string) *MachineTypesAggregatedListCall {
104507	c.urlParams_.Set("pageToken", pageToken)
104508	return c
104509}
104510
104511// ReturnPartialSuccess sets the optional parameter
104512// "returnPartialSuccess": Opt-in for partial success behavior which
104513// provides partial results in case of failure. The default value is
104514// false.
104515func (c *MachineTypesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *MachineTypesAggregatedListCall {
104516	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
104517	return c
104518}
104519
104520// Fields allows partial responses to be retrieved. See
104521// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104522// for more information.
104523func (c *MachineTypesAggregatedListCall) Fields(s ...googleapi.Field) *MachineTypesAggregatedListCall {
104524	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104525	return c
104526}
104527
104528// IfNoneMatch sets the optional parameter which makes the operation
104529// fail if the object's ETag matches the given value. This is useful for
104530// getting updates only after the object has changed since the last
104531// request. Use googleapi.IsNotModified to check whether the response
104532// error from Do is the result of In-None-Match.
104533func (c *MachineTypesAggregatedListCall) IfNoneMatch(entityTag string) *MachineTypesAggregatedListCall {
104534	c.ifNoneMatch_ = entityTag
104535	return c
104536}
104537
104538// Context sets the context to be used in this call's Do method. Any
104539// pending HTTP request will be aborted if the provided context is
104540// canceled.
104541func (c *MachineTypesAggregatedListCall) Context(ctx context.Context) *MachineTypesAggregatedListCall {
104542	c.ctx_ = ctx
104543	return c
104544}
104545
104546// Header returns an http.Header that can be modified by the caller to
104547// add HTTP headers to the request.
104548func (c *MachineTypesAggregatedListCall) Header() http.Header {
104549	if c.header_ == nil {
104550		c.header_ = make(http.Header)
104551	}
104552	return c.header_
104553}
104554
104555func (c *MachineTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
104556	reqHeaders := make(http.Header)
104557	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
104558	for k, v := range c.header_ {
104559		reqHeaders[k] = v
104560	}
104561	reqHeaders.Set("User-Agent", c.s.userAgent())
104562	if c.ifNoneMatch_ != "" {
104563		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
104564	}
104565	var body io.Reader = nil
104566	c.urlParams_.Set("alt", alt)
104567	c.urlParams_.Set("prettyPrint", "false")
104568	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/machineTypes")
104569	urls += "?" + c.urlParams_.Encode()
104570	req, err := http.NewRequest("GET", urls, body)
104571	if err != nil {
104572		return nil, err
104573	}
104574	req.Header = reqHeaders
104575	googleapi.Expand(req.URL, map[string]string{
104576		"project": c.project,
104577	})
104578	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104579}
104580
104581// Do executes the "compute.machineTypes.aggregatedList" call.
104582// Exactly one of *MachineTypeAggregatedList or error will be non-nil.
104583// Any non-2xx status code is an error. Response headers are in either
104584// *MachineTypeAggregatedList.ServerResponse.Header or (if a response
104585// was returned at all) in error.(*googleapi.Error).Header. Use
104586// googleapi.IsNotModified to check whether the returned error was
104587// because http.StatusNotModified was returned.
104588func (c *MachineTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*MachineTypeAggregatedList, error) {
104589	gensupport.SetOptions(c.urlParams_, opts...)
104590	res, err := c.doRequest("json")
104591	if res != nil && res.StatusCode == http.StatusNotModified {
104592		if res.Body != nil {
104593			res.Body.Close()
104594		}
104595		return nil, &googleapi.Error{
104596			Code:   res.StatusCode,
104597			Header: res.Header,
104598		}
104599	}
104600	if err != nil {
104601		return nil, err
104602	}
104603	defer googleapi.CloseBody(res)
104604	if err := googleapi.CheckResponse(res); err != nil {
104605		return nil, err
104606	}
104607	ret := &MachineTypeAggregatedList{
104608		ServerResponse: googleapi.ServerResponse{
104609			Header:         res.Header,
104610			HTTPStatusCode: res.StatusCode,
104611		},
104612	}
104613	target := &ret
104614	if err := gensupport.DecodeResponse(target, res); err != nil {
104615		return nil, err
104616	}
104617	return ret, nil
104618	// {
104619	//   "description": "Retrieves an aggregated list of machine types.",
104620	//   "httpMethod": "GET",
104621	//   "id": "compute.machineTypes.aggregatedList",
104622	//   "parameterOrder": [
104623	//     "project"
104624	//   ],
104625	//   "parameters": {
104626	//     "filter": {
104627	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
104628	//       "location": "query",
104629	//       "type": "string"
104630	//     },
104631	//     "includeAllScopes": {
104632	//       "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.",
104633	//       "location": "query",
104634	//       "type": "boolean"
104635	//     },
104636	//     "maxResults": {
104637	//       "default": "500",
104638	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
104639	//       "format": "uint32",
104640	//       "location": "query",
104641	//       "minimum": "0",
104642	//       "type": "integer"
104643	//     },
104644	//     "orderBy": {
104645	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
104646	//       "location": "query",
104647	//       "type": "string"
104648	//     },
104649	//     "pageToken": {
104650	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
104651	//       "location": "query",
104652	//       "type": "string"
104653	//     },
104654	//     "project": {
104655	//       "description": "Project ID for this request.",
104656	//       "location": "path",
104657	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
104658	//       "required": true,
104659	//       "type": "string"
104660	//     },
104661	//     "returnPartialSuccess": {
104662	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
104663	//       "location": "query",
104664	//       "type": "boolean"
104665	//     }
104666	//   },
104667	//   "path": "projects/{project}/aggregated/machineTypes",
104668	//   "response": {
104669	//     "$ref": "MachineTypeAggregatedList"
104670	//   },
104671	//   "scopes": [
104672	//     "https://www.googleapis.com/auth/cloud-platform",
104673	//     "https://www.googleapis.com/auth/compute",
104674	//     "https://www.googleapis.com/auth/compute.readonly"
104675	//   ]
104676	// }
104677
104678}
104679
104680// Pages invokes f for each page of results.
104681// A non-nil error returned from f will halt the iteration.
104682// The provided context supersedes any context provided to the Context method.
104683func (c *MachineTypesAggregatedListCall) Pages(ctx context.Context, f func(*MachineTypeAggregatedList) error) error {
104684	c.ctx_ = ctx
104685	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
104686	for {
104687		x, err := c.Do()
104688		if err != nil {
104689			return err
104690		}
104691		if err := f(x); err != nil {
104692			return err
104693		}
104694		if x.NextPageToken == "" {
104695			return nil
104696		}
104697		c.PageToken(x.NextPageToken)
104698	}
104699}
104700
104701// method id "compute.machineTypes.get":
104702
104703type MachineTypesGetCall struct {
104704	s            *Service
104705	project      string
104706	zone         string
104707	machineType  string
104708	urlParams_   gensupport.URLParams
104709	ifNoneMatch_ string
104710	ctx_         context.Context
104711	header_      http.Header
104712}
104713
104714// Get: Returns the specified machine type. Gets a list of available
104715// machine types by making a list() request.
104716// For details, see https://cloud.google.com/compute/docs/reference/latest/machineTypes/get
104717func (r *MachineTypesService) Get(project string, zone string, machineType string) *MachineTypesGetCall {
104718	c := &MachineTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104719	c.project = project
104720	c.zone = zone
104721	c.machineType = machineType
104722	return c
104723}
104724
104725// Fields allows partial responses to be retrieved. See
104726// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104727// for more information.
104728func (c *MachineTypesGetCall) Fields(s ...googleapi.Field) *MachineTypesGetCall {
104729	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104730	return c
104731}
104732
104733// IfNoneMatch sets the optional parameter which makes the operation
104734// fail if the object's ETag matches the given value. This is useful for
104735// getting updates only after the object has changed since the last
104736// request. Use googleapi.IsNotModified to check whether the response
104737// error from Do is the result of In-None-Match.
104738func (c *MachineTypesGetCall) IfNoneMatch(entityTag string) *MachineTypesGetCall {
104739	c.ifNoneMatch_ = entityTag
104740	return c
104741}
104742
104743// Context sets the context to be used in this call's Do method. Any
104744// pending HTTP request will be aborted if the provided context is
104745// canceled.
104746func (c *MachineTypesGetCall) Context(ctx context.Context) *MachineTypesGetCall {
104747	c.ctx_ = ctx
104748	return c
104749}
104750
104751// Header returns an http.Header that can be modified by the caller to
104752// add HTTP headers to the request.
104753func (c *MachineTypesGetCall) Header() http.Header {
104754	if c.header_ == nil {
104755		c.header_ = make(http.Header)
104756	}
104757	return c.header_
104758}
104759
104760func (c *MachineTypesGetCall) doRequest(alt string) (*http.Response, error) {
104761	reqHeaders := make(http.Header)
104762	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
104763	for k, v := range c.header_ {
104764		reqHeaders[k] = v
104765	}
104766	reqHeaders.Set("User-Agent", c.s.userAgent())
104767	if c.ifNoneMatch_ != "" {
104768		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
104769	}
104770	var body io.Reader = nil
104771	c.urlParams_.Set("alt", alt)
104772	c.urlParams_.Set("prettyPrint", "false")
104773	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/machineTypes/{machineType}")
104774	urls += "?" + c.urlParams_.Encode()
104775	req, err := http.NewRequest("GET", urls, body)
104776	if err != nil {
104777		return nil, err
104778	}
104779	req.Header = reqHeaders
104780	googleapi.Expand(req.URL, map[string]string{
104781		"project":     c.project,
104782		"zone":        c.zone,
104783		"machineType": c.machineType,
104784	})
104785	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104786}
104787
104788// Do executes the "compute.machineTypes.get" call.
104789// Exactly one of *MachineType or error will be non-nil. Any non-2xx
104790// status code is an error. Response headers are in either
104791// *MachineType.ServerResponse.Header or (if a response was returned at
104792// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
104793// to check whether the returned error was because
104794// http.StatusNotModified was returned.
104795func (c *MachineTypesGetCall) Do(opts ...googleapi.CallOption) (*MachineType, error) {
104796	gensupport.SetOptions(c.urlParams_, opts...)
104797	res, err := c.doRequest("json")
104798	if res != nil && res.StatusCode == http.StatusNotModified {
104799		if res.Body != nil {
104800			res.Body.Close()
104801		}
104802		return nil, &googleapi.Error{
104803			Code:   res.StatusCode,
104804			Header: res.Header,
104805		}
104806	}
104807	if err != nil {
104808		return nil, err
104809	}
104810	defer googleapi.CloseBody(res)
104811	if err := googleapi.CheckResponse(res); err != nil {
104812		return nil, err
104813	}
104814	ret := &MachineType{
104815		ServerResponse: googleapi.ServerResponse{
104816			Header:         res.Header,
104817			HTTPStatusCode: res.StatusCode,
104818		},
104819	}
104820	target := &ret
104821	if err := gensupport.DecodeResponse(target, res); err != nil {
104822		return nil, err
104823	}
104824	return ret, nil
104825	// {
104826	//   "description": "Returns the specified machine type. Gets a list of available machine types by making a list() request.",
104827	//   "httpMethod": "GET",
104828	//   "id": "compute.machineTypes.get",
104829	//   "parameterOrder": [
104830	//     "project",
104831	//     "zone",
104832	//     "machineType"
104833	//   ],
104834	//   "parameters": {
104835	//     "machineType": {
104836	//       "description": "Name of the machine type to return.",
104837	//       "location": "path",
104838	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
104839	//       "required": true,
104840	//       "type": "string"
104841	//     },
104842	//     "project": {
104843	//       "description": "Project ID for this request.",
104844	//       "location": "path",
104845	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
104846	//       "required": true,
104847	//       "type": "string"
104848	//     },
104849	//     "zone": {
104850	//       "description": "The name of the zone for this request.",
104851	//       "location": "path",
104852	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
104853	//       "required": true,
104854	//       "type": "string"
104855	//     }
104856	//   },
104857	//   "path": "projects/{project}/zones/{zone}/machineTypes/{machineType}",
104858	//   "response": {
104859	//     "$ref": "MachineType"
104860	//   },
104861	//   "scopes": [
104862	//     "https://www.googleapis.com/auth/cloud-platform",
104863	//     "https://www.googleapis.com/auth/compute",
104864	//     "https://www.googleapis.com/auth/compute.readonly"
104865	//   ]
104866	// }
104867
104868}
104869
104870// method id "compute.machineTypes.list":
104871
104872type MachineTypesListCall struct {
104873	s            *Service
104874	project      string
104875	zone         string
104876	urlParams_   gensupport.URLParams
104877	ifNoneMatch_ string
104878	ctx_         context.Context
104879	header_      http.Header
104880}
104881
104882// List: Retrieves a list of machine types available to the specified
104883// project.
104884// For details, see https://cloud.google.com/compute/docs/reference/latest/machineTypes/list
104885func (r *MachineTypesService) List(project string, zone string) *MachineTypesListCall {
104886	c := &MachineTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104887	c.project = project
104888	c.zone = zone
104889	return c
104890}
104891
104892// Filter sets the optional parameter "filter": A filter expression that
104893// filters resources listed in the response. The expression must specify
104894// the field name, a comparison operator, and the value that you want to
104895// use for filtering. The value must be a string, a number, or a
104896// boolean. The comparison operator must be either `=`, `!=`, `>`, or
104897// `<`.
104898//
104899// For example, if you are filtering Compute Engine instances, you can
104900// exclude instances named `example-instance` by specifying `name !=
104901// example-instance`.
104902//
104903// You can also filter nested fields. For example, you could specify
104904// `scheduling.automaticRestart = false` to include instances only if
104905// they are not scheduled for automatic restarts. You can use filtering
104906// on nested fields to filter based on resource labels.
104907//
104908// To filter on multiple expressions, provide each separate expression
104909// within parentheses. For example: ``` (scheduling.automaticRestart =
104910// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
104911// is an `AND` expression. However, you can include `AND` and `OR`
104912// expressions explicitly. For example: ``` (cpuPlatform = "Intel
104913// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
104914// (scheduling.automaticRestart = true) ```
104915func (c *MachineTypesListCall) Filter(filter string) *MachineTypesListCall {
104916	c.urlParams_.Set("filter", filter)
104917	return c
104918}
104919
104920// MaxResults sets the optional parameter "maxResults": The maximum
104921// number of results per page that should be returned. If the number of
104922// available results is larger than `maxResults`, Compute Engine returns
104923// a `nextPageToken` that can be used to get the next page of results in
104924// subsequent list requests. Acceptable values are `0` to `500`,
104925// inclusive. (Default: `500`)
104926func (c *MachineTypesListCall) MaxResults(maxResults int64) *MachineTypesListCall {
104927	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
104928	return c
104929}
104930
104931// OrderBy sets the optional parameter "orderBy": Sorts list results by
104932// a certain order. By default, results are returned in alphanumerical
104933// order based on the resource name.
104934//
104935// You can also sort results in descending order based on the creation
104936// timestamp using `orderBy="creationTimestamp desc". This sorts
104937// results based on the `creationTimestamp` field in reverse
104938// chronological order (newest result first). Use this to sort resources
104939// like operations so that the newest operation is returned
104940// first.
104941//
104942// Currently, only sorting by `name` or `creationTimestamp desc` is
104943// supported.
104944func (c *MachineTypesListCall) OrderBy(orderBy string) *MachineTypesListCall {
104945	c.urlParams_.Set("orderBy", orderBy)
104946	return c
104947}
104948
104949// PageToken sets the optional parameter "pageToken": Specifies a page
104950// token to use. Set `pageToken` to the `nextPageToken` returned by a
104951// previous list request to get the next page of results.
104952func (c *MachineTypesListCall) PageToken(pageToken string) *MachineTypesListCall {
104953	c.urlParams_.Set("pageToken", pageToken)
104954	return c
104955}
104956
104957// ReturnPartialSuccess sets the optional parameter
104958// "returnPartialSuccess": Opt-in for partial success behavior which
104959// provides partial results in case of failure. The default value is
104960// false.
104961func (c *MachineTypesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *MachineTypesListCall {
104962	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
104963	return c
104964}
104965
104966// Fields allows partial responses to be retrieved. See
104967// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104968// for more information.
104969func (c *MachineTypesListCall) Fields(s ...googleapi.Field) *MachineTypesListCall {
104970	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104971	return c
104972}
104973
104974// IfNoneMatch sets the optional parameter which makes the operation
104975// fail if the object's ETag matches the given value. This is useful for
104976// getting updates only after the object has changed since the last
104977// request. Use googleapi.IsNotModified to check whether the response
104978// error from Do is the result of In-None-Match.
104979func (c *MachineTypesListCall) IfNoneMatch(entityTag string) *MachineTypesListCall {
104980	c.ifNoneMatch_ = entityTag
104981	return c
104982}
104983
104984// Context sets the context to be used in this call's Do method. Any
104985// pending HTTP request will be aborted if the provided context is
104986// canceled.
104987func (c *MachineTypesListCall) Context(ctx context.Context) *MachineTypesListCall {
104988	c.ctx_ = ctx
104989	return c
104990}
104991
104992// Header returns an http.Header that can be modified by the caller to
104993// add HTTP headers to the request.
104994func (c *MachineTypesListCall) Header() http.Header {
104995	if c.header_ == nil {
104996		c.header_ = make(http.Header)
104997	}
104998	return c.header_
104999}
105000
105001func (c *MachineTypesListCall) doRequest(alt string) (*http.Response, error) {
105002	reqHeaders := make(http.Header)
105003	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
105004	for k, v := range c.header_ {
105005		reqHeaders[k] = v
105006	}
105007	reqHeaders.Set("User-Agent", c.s.userAgent())
105008	if c.ifNoneMatch_ != "" {
105009		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
105010	}
105011	var body io.Reader = nil
105012	c.urlParams_.Set("alt", alt)
105013	c.urlParams_.Set("prettyPrint", "false")
105014	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/machineTypes")
105015	urls += "?" + c.urlParams_.Encode()
105016	req, err := http.NewRequest("GET", urls, body)
105017	if err != nil {
105018		return nil, err
105019	}
105020	req.Header = reqHeaders
105021	googleapi.Expand(req.URL, map[string]string{
105022		"project": c.project,
105023		"zone":    c.zone,
105024	})
105025	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105026}
105027
105028// Do executes the "compute.machineTypes.list" call.
105029// Exactly one of *MachineTypeList or error will be non-nil. Any non-2xx
105030// status code is an error. Response headers are in either
105031// *MachineTypeList.ServerResponse.Header or (if a response was returned
105032// at all) in error.(*googleapi.Error).Header. Use
105033// googleapi.IsNotModified to check whether the returned error was
105034// because http.StatusNotModified was returned.
105035func (c *MachineTypesListCall) Do(opts ...googleapi.CallOption) (*MachineTypeList, error) {
105036	gensupport.SetOptions(c.urlParams_, opts...)
105037	res, err := c.doRequest("json")
105038	if res != nil && res.StatusCode == http.StatusNotModified {
105039		if res.Body != nil {
105040			res.Body.Close()
105041		}
105042		return nil, &googleapi.Error{
105043			Code:   res.StatusCode,
105044			Header: res.Header,
105045		}
105046	}
105047	if err != nil {
105048		return nil, err
105049	}
105050	defer googleapi.CloseBody(res)
105051	if err := googleapi.CheckResponse(res); err != nil {
105052		return nil, err
105053	}
105054	ret := &MachineTypeList{
105055		ServerResponse: googleapi.ServerResponse{
105056			Header:         res.Header,
105057			HTTPStatusCode: res.StatusCode,
105058		},
105059	}
105060	target := &ret
105061	if err := gensupport.DecodeResponse(target, res); err != nil {
105062		return nil, err
105063	}
105064	return ret, nil
105065	// {
105066	//   "description": "Retrieves a list of machine types available to the specified project.",
105067	//   "httpMethod": "GET",
105068	//   "id": "compute.machineTypes.list",
105069	//   "parameterOrder": [
105070	//     "project",
105071	//     "zone"
105072	//   ],
105073	//   "parameters": {
105074	//     "filter": {
105075	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
105076	//       "location": "query",
105077	//       "type": "string"
105078	//     },
105079	//     "maxResults": {
105080	//       "default": "500",
105081	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
105082	//       "format": "uint32",
105083	//       "location": "query",
105084	//       "minimum": "0",
105085	//       "type": "integer"
105086	//     },
105087	//     "orderBy": {
105088	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
105089	//       "location": "query",
105090	//       "type": "string"
105091	//     },
105092	//     "pageToken": {
105093	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
105094	//       "location": "query",
105095	//       "type": "string"
105096	//     },
105097	//     "project": {
105098	//       "description": "Project ID for this request.",
105099	//       "location": "path",
105100	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
105101	//       "required": true,
105102	//       "type": "string"
105103	//     },
105104	//     "returnPartialSuccess": {
105105	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
105106	//       "location": "query",
105107	//       "type": "boolean"
105108	//     },
105109	//     "zone": {
105110	//       "description": "The name of the zone for this request.",
105111	//       "location": "path",
105112	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
105113	//       "required": true,
105114	//       "type": "string"
105115	//     }
105116	//   },
105117	//   "path": "projects/{project}/zones/{zone}/machineTypes",
105118	//   "response": {
105119	//     "$ref": "MachineTypeList"
105120	//   },
105121	//   "scopes": [
105122	//     "https://www.googleapis.com/auth/cloud-platform",
105123	//     "https://www.googleapis.com/auth/compute",
105124	//     "https://www.googleapis.com/auth/compute.readonly"
105125	//   ]
105126	// }
105127
105128}
105129
105130// Pages invokes f for each page of results.
105131// A non-nil error returned from f will halt the iteration.
105132// The provided context supersedes any context provided to the Context method.
105133func (c *MachineTypesListCall) Pages(ctx context.Context, f func(*MachineTypeList) error) error {
105134	c.ctx_ = ctx
105135	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
105136	for {
105137		x, err := c.Do()
105138		if err != nil {
105139			return err
105140		}
105141		if err := f(x); err != nil {
105142			return err
105143		}
105144		if x.NextPageToken == "" {
105145			return nil
105146		}
105147		c.PageToken(x.NextPageToken)
105148	}
105149}
105150
105151// method id "compute.networkEndpointGroups.aggregatedList":
105152
105153type NetworkEndpointGroupsAggregatedListCall struct {
105154	s            *Service
105155	project      string
105156	urlParams_   gensupport.URLParams
105157	ifNoneMatch_ string
105158	ctx_         context.Context
105159	header_      http.Header
105160}
105161
105162// AggregatedList: Retrieves the list of network endpoint groups and
105163// sorts them by zone.
105164func (r *NetworkEndpointGroupsService) AggregatedList(project string) *NetworkEndpointGroupsAggregatedListCall {
105165	c := &NetworkEndpointGroupsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105166	c.project = project
105167	return c
105168}
105169
105170// Filter sets the optional parameter "filter": A filter expression that
105171// filters resources listed in the response. The expression must specify
105172// the field name, a comparison operator, and the value that you want to
105173// use for filtering. The value must be a string, a number, or a
105174// boolean. The comparison operator must be either `=`, `!=`, `>`, or
105175// `<`.
105176//
105177// For example, if you are filtering Compute Engine instances, you can
105178// exclude instances named `example-instance` by specifying `name !=
105179// example-instance`.
105180//
105181// You can also filter nested fields. For example, you could specify
105182// `scheduling.automaticRestart = false` to include instances only if
105183// they are not scheduled for automatic restarts. You can use filtering
105184// on nested fields to filter based on resource labels.
105185//
105186// To filter on multiple expressions, provide each separate expression
105187// within parentheses. For example: ``` (scheduling.automaticRestart =
105188// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
105189// is an `AND` expression. However, you can include `AND` and `OR`
105190// expressions explicitly. For example: ``` (cpuPlatform = "Intel
105191// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
105192// (scheduling.automaticRestart = true) ```
105193func (c *NetworkEndpointGroupsAggregatedListCall) Filter(filter string) *NetworkEndpointGroupsAggregatedListCall {
105194	c.urlParams_.Set("filter", filter)
105195	return c
105196}
105197
105198// IncludeAllScopes sets the optional parameter "includeAllScopes":
105199// Indicates whether every visible scope for each scope type (zone,
105200// region, global) should be included in the response. For new resource
105201// types added after this field, the flag has no effect as new resource
105202// types will always include every visible scope for each scope type in
105203// response. For resource types which predate this field, if this flag
105204// is omitted or false, only scopes of the scope types where the
105205// resource type is expected to be found will be included.
105206func (c *NetworkEndpointGroupsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *NetworkEndpointGroupsAggregatedListCall {
105207	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
105208	return c
105209}
105210
105211// MaxResults sets the optional parameter "maxResults": The maximum
105212// number of results per page that should be returned. If the number of
105213// available results is larger than `maxResults`, Compute Engine returns
105214// a `nextPageToken` that can be used to get the next page of results in
105215// subsequent list requests. Acceptable values are `0` to `500`,
105216// inclusive. (Default: `500`)
105217func (c *NetworkEndpointGroupsAggregatedListCall) MaxResults(maxResults int64) *NetworkEndpointGroupsAggregatedListCall {
105218	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
105219	return c
105220}
105221
105222// OrderBy sets the optional parameter "orderBy": Sorts list results by
105223// a certain order. By default, results are returned in alphanumerical
105224// order based on the resource name.
105225//
105226// You can also sort results in descending order based on the creation
105227// timestamp using `orderBy="creationTimestamp desc". This sorts
105228// results based on the `creationTimestamp` field in reverse
105229// chronological order (newest result first). Use this to sort resources
105230// like operations so that the newest operation is returned
105231// first.
105232//
105233// Currently, only sorting by `name` or `creationTimestamp desc` is
105234// supported.
105235func (c *NetworkEndpointGroupsAggregatedListCall) OrderBy(orderBy string) *NetworkEndpointGroupsAggregatedListCall {
105236	c.urlParams_.Set("orderBy", orderBy)
105237	return c
105238}
105239
105240// PageToken sets the optional parameter "pageToken": Specifies a page
105241// token to use. Set `pageToken` to the `nextPageToken` returned by a
105242// previous list request to get the next page of results.
105243func (c *NetworkEndpointGroupsAggregatedListCall) PageToken(pageToken string) *NetworkEndpointGroupsAggregatedListCall {
105244	c.urlParams_.Set("pageToken", pageToken)
105245	return c
105246}
105247
105248// ReturnPartialSuccess sets the optional parameter
105249// "returnPartialSuccess": Opt-in for partial success behavior which
105250// provides partial results in case of failure. The default value is
105251// false.
105252func (c *NetworkEndpointGroupsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NetworkEndpointGroupsAggregatedListCall {
105253	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
105254	return c
105255}
105256
105257// Fields allows partial responses to be retrieved. See
105258// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105259// for more information.
105260func (c *NetworkEndpointGroupsAggregatedListCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsAggregatedListCall {
105261	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105262	return c
105263}
105264
105265// IfNoneMatch sets the optional parameter which makes the operation
105266// fail if the object's ETag matches the given value. This is useful for
105267// getting updates only after the object has changed since the last
105268// request. Use googleapi.IsNotModified to check whether the response
105269// error from Do is the result of In-None-Match.
105270func (c *NetworkEndpointGroupsAggregatedListCall) IfNoneMatch(entityTag string) *NetworkEndpointGroupsAggregatedListCall {
105271	c.ifNoneMatch_ = entityTag
105272	return c
105273}
105274
105275// Context sets the context to be used in this call's Do method. Any
105276// pending HTTP request will be aborted if the provided context is
105277// canceled.
105278func (c *NetworkEndpointGroupsAggregatedListCall) Context(ctx context.Context) *NetworkEndpointGroupsAggregatedListCall {
105279	c.ctx_ = ctx
105280	return c
105281}
105282
105283// Header returns an http.Header that can be modified by the caller to
105284// add HTTP headers to the request.
105285func (c *NetworkEndpointGroupsAggregatedListCall) Header() http.Header {
105286	if c.header_ == nil {
105287		c.header_ = make(http.Header)
105288	}
105289	return c.header_
105290}
105291
105292func (c *NetworkEndpointGroupsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
105293	reqHeaders := make(http.Header)
105294	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
105295	for k, v := range c.header_ {
105296		reqHeaders[k] = v
105297	}
105298	reqHeaders.Set("User-Agent", c.s.userAgent())
105299	if c.ifNoneMatch_ != "" {
105300		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
105301	}
105302	var body io.Reader = nil
105303	c.urlParams_.Set("alt", alt)
105304	c.urlParams_.Set("prettyPrint", "false")
105305	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/networkEndpointGroups")
105306	urls += "?" + c.urlParams_.Encode()
105307	req, err := http.NewRequest("GET", urls, body)
105308	if err != nil {
105309		return nil, err
105310	}
105311	req.Header = reqHeaders
105312	googleapi.Expand(req.URL, map[string]string{
105313		"project": c.project,
105314	})
105315	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105316}
105317
105318// Do executes the "compute.networkEndpointGroups.aggregatedList" call.
105319// Exactly one of *NetworkEndpointGroupAggregatedList or error will be
105320// non-nil. Any non-2xx status code is an error. Response headers are in
105321// either *NetworkEndpointGroupAggregatedList.ServerResponse.Header or
105322// (if a response was returned at all) in
105323// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
105324// whether the returned error was because http.StatusNotModified was
105325// returned.
105326func (c *NetworkEndpointGroupsAggregatedListCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupAggregatedList, error) {
105327	gensupport.SetOptions(c.urlParams_, opts...)
105328	res, err := c.doRequest("json")
105329	if res != nil && res.StatusCode == http.StatusNotModified {
105330		if res.Body != nil {
105331			res.Body.Close()
105332		}
105333		return nil, &googleapi.Error{
105334			Code:   res.StatusCode,
105335			Header: res.Header,
105336		}
105337	}
105338	if err != nil {
105339		return nil, err
105340	}
105341	defer googleapi.CloseBody(res)
105342	if err := googleapi.CheckResponse(res); err != nil {
105343		return nil, err
105344	}
105345	ret := &NetworkEndpointGroupAggregatedList{
105346		ServerResponse: googleapi.ServerResponse{
105347			Header:         res.Header,
105348			HTTPStatusCode: res.StatusCode,
105349		},
105350	}
105351	target := &ret
105352	if err := gensupport.DecodeResponse(target, res); err != nil {
105353		return nil, err
105354	}
105355	return ret, nil
105356	// {
105357	//   "description": "Retrieves the list of network endpoint groups and sorts them by zone.",
105358	//   "httpMethod": "GET",
105359	//   "id": "compute.networkEndpointGroups.aggregatedList",
105360	//   "parameterOrder": [
105361	//     "project"
105362	//   ],
105363	//   "parameters": {
105364	//     "filter": {
105365	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
105366	//       "location": "query",
105367	//       "type": "string"
105368	//     },
105369	//     "includeAllScopes": {
105370	//       "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.",
105371	//       "location": "query",
105372	//       "type": "boolean"
105373	//     },
105374	//     "maxResults": {
105375	//       "default": "500",
105376	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
105377	//       "format": "uint32",
105378	//       "location": "query",
105379	//       "minimum": "0",
105380	//       "type": "integer"
105381	//     },
105382	//     "orderBy": {
105383	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
105384	//       "location": "query",
105385	//       "type": "string"
105386	//     },
105387	//     "pageToken": {
105388	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
105389	//       "location": "query",
105390	//       "type": "string"
105391	//     },
105392	//     "project": {
105393	//       "description": "Project ID for this request.",
105394	//       "location": "path",
105395	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
105396	//       "required": true,
105397	//       "type": "string"
105398	//     },
105399	//     "returnPartialSuccess": {
105400	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
105401	//       "location": "query",
105402	//       "type": "boolean"
105403	//     }
105404	//   },
105405	//   "path": "projects/{project}/aggregated/networkEndpointGroups",
105406	//   "response": {
105407	//     "$ref": "NetworkEndpointGroupAggregatedList"
105408	//   },
105409	//   "scopes": [
105410	//     "https://www.googleapis.com/auth/cloud-platform",
105411	//     "https://www.googleapis.com/auth/compute",
105412	//     "https://www.googleapis.com/auth/compute.readonly"
105413	//   ]
105414	// }
105415
105416}
105417
105418// Pages invokes f for each page of results.
105419// A non-nil error returned from f will halt the iteration.
105420// The provided context supersedes any context provided to the Context method.
105421func (c *NetworkEndpointGroupsAggregatedListCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupAggregatedList) error) error {
105422	c.ctx_ = ctx
105423	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
105424	for {
105425		x, err := c.Do()
105426		if err != nil {
105427			return err
105428		}
105429		if err := f(x); err != nil {
105430			return err
105431		}
105432		if x.NextPageToken == "" {
105433			return nil
105434		}
105435		c.PageToken(x.NextPageToken)
105436	}
105437}
105438
105439// method id "compute.networkEndpointGroups.attachNetworkEndpoints":
105440
105441type NetworkEndpointGroupsAttachNetworkEndpointsCall struct {
105442	s                                           *Service
105443	project                                     string
105444	zone                                        string
105445	networkEndpointGroup                        string
105446	networkendpointgroupsattachendpointsrequest *NetworkEndpointGroupsAttachEndpointsRequest
105447	urlParams_                                  gensupport.URLParams
105448	ctx_                                        context.Context
105449	header_                                     http.Header
105450}
105451
105452// AttachNetworkEndpoints: Attach a list of network endpoints to the
105453// specified network endpoint group.
105454func (r *NetworkEndpointGroupsService) AttachNetworkEndpoints(project string, zone string, networkEndpointGroup string, networkendpointgroupsattachendpointsrequest *NetworkEndpointGroupsAttachEndpointsRequest) *NetworkEndpointGroupsAttachNetworkEndpointsCall {
105455	c := &NetworkEndpointGroupsAttachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105456	c.project = project
105457	c.zone = zone
105458	c.networkEndpointGroup = networkEndpointGroup
105459	c.networkendpointgroupsattachendpointsrequest = networkendpointgroupsattachendpointsrequest
105460	return c
105461}
105462
105463// RequestId sets the optional parameter "requestId": An optional
105464// request ID to identify requests. Specify a unique request ID so that
105465// if you must retry your request, the server will know to ignore the
105466// request if it has already been completed.
105467//
105468// For example, consider a situation where you make an initial request
105469// and the request times out. If you make the request again with the
105470// same request ID, the server can check if original operation with the
105471// same request ID was received, and if so, will ignore the second
105472// request. This prevents clients from accidentally creating duplicate
105473// commitments.
105474//
105475// The request ID must be a valid UUID with the exception that zero UUID
105476// is not supported (00000000-0000-0000-0000-000000000000).
105477func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) RequestId(requestId string) *NetworkEndpointGroupsAttachNetworkEndpointsCall {
105478	c.urlParams_.Set("requestId", requestId)
105479	return c
105480}
105481
105482// Fields allows partial responses to be retrieved. See
105483// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105484// for more information.
105485func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsAttachNetworkEndpointsCall {
105486	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105487	return c
105488}
105489
105490// Context sets the context to be used in this call's Do method. Any
105491// pending HTTP request will be aborted if the provided context is
105492// canceled.
105493func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) Context(ctx context.Context) *NetworkEndpointGroupsAttachNetworkEndpointsCall {
105494	c.ctx_ = ctx
105495	return c
105496}
105497
105498// Header returns an http.Header that can be modified by the caller to
105499// add HTTP headers to the request.
105500func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) Header() http.Header {
105501	if c.header_ == nil {
105502		c.header_ = make(http.Header)
105503	}
105504	return c.header_
105505}
105506
105507func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
105508	reqHeaders := make(http.Header)
105509	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
105510	for k, v := range c.header_ {
105511		reqHeaders[k] = v
105512	}
105513	reqHeaders.Set("User-Agent", c.s.userAgent())
105514	var body io.Reader = nil
105515	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroupsattachendpointsrequest)
105516	if err != nil {
105517		return nil, err
105518	}
105519	reqHeaders.Set("Content-Type", "application/json")
105520	c.urlParams_.Set("alt", alt)
105521	c.urlParams_.Set("prettyPrint", "false")
105522	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints")
105523	urls += "?" + c.urlParams_.Encode()
105524	req, err := http.NewRequest("POST", urls, body)
105525	if err != nil {
105526		return nil, err
105527	}
105528	req.Header = reqHeaders
105529	googleapi.Expand(req.URL, map[string]string{
105530		"project":              c.project,
105531		"zone":                 c.zone,
105532		"networkEndpointGroup": c.networkEndpointGroup,
105533	})
105534	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105535}
105536
105537// Do executes the "compute.networkEndpointGroups.attachNetworkEndpoints" call.
105538// Exactly one of *Operation or error will be non-nil. Any non-2xx
105539// status code is an error. Response headers are in either
105540// *Operation.ServerResponse.Header or (if a response was returned at
105541// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
105542// to check whether the returned error was because
105543// http.StatusNotModified was returned.
105544func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
105545	gensupport.SetOptions(c.urlParams_, opts...)
105546	res, err := c.doRequest("json")
105547	if res != nil && res.StatusCode == http.StatusNotModified {
105548		if res.Body != nil {
105549			res.Body.Close()
105550		}
105551		return nil, &googleapi.Error{
105552			Code:   res.StatusCode,
105553			Header: res.Header,
105554		}
105555	}
105556	if err != nil {
105557		return nil, err
105558	}
105559	defer googleapi.CloseBody(res)
105560	if err := googleapi.CheckResponse(res); err != nil {
105561		return nil, err
105562	}
105563	ret := &Operation{
105564		ServerResponse: googleapi.ServerResponse{
105565			Header:         res.Header,
105566			HTTPStatusCode: res.StatusCode,
105567		},
105568	}
105569	target := &ret
105570	if err := gensupport.DecodeResponse(target, res); err != nil {
105571		return nil, err
105572	}
105573	return ret, nil
105574	// {
105575	//   "description": "Attach a list of network endpoints to the specified network endpoint group.",
105576	//   "httpMethod": "POST",
105577	//   "id": "compute.networkEndpointGroups.attachNetworkEndpoints",
105578	//   "parameterOrder": [
105579	//     "project",
105580	//     "zone",
105581	//     "networkEndpointGroup"
105582	//   ],
105583	//   "parameters": {
105584	//     "networkEndpointGroup": {
105585	//       "description": "The name of the network endpoint group where you are attaching network endpoints to. It should comply with RFC1035.",
105586	//       "location": "path",
105587	//       "required": true,
105588	//       "type": "string"
105589	//     },
105590	//     "project": {
105591	//       "description": "Project ID for this request.",
105592	//       "location": "path",
105593	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
105594	//       "required": true,
105595	//       "type": "string"
105596	//     },
105597	//     "requestId": {
105598	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
105599	//       "location": "query",
105600	//       "type": "string"
105601	//     },
105602	//     "zone": {
105603	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
105604	//       "location": "path",
105605	//       "required": true,
105606	//       "type": "string"
105607	//     }
105608	//   },
105609	//   "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints",
105610	//   "request": {
105611	//     "$ref": "NetworkEndpointGroupsAttachEndpointsRequest"
105612	//   },
105613	//   "response": {
105614	//     "$ref": "Operation"
105615	//   },
105616	//   "scopes": [
105617	//     "https://www.googleapis.com/auth/cloud-platform",
105618	//     "https://www.googleapis.com/auth/compute"
105619	//   ]
105620	// }
105621
105622}
105623
105624// method id "compute.networkEndpointGroups.delete":
105625
105626type NetworkEndpointGroupsDeleteCall struct {
105627	s                    *Service
105628	project              string
105629	zone                 string
105630	networkEndpointGroup string
105631	urlParams_           gensupport.URLParams
105632	ctx_                 context.Context
105633	header_              http.Header
105634}
105635
105636// Delete: Deletes the specified network endpoint group. The network
105637// endpoints in the NEG and the VM instances they belong to are not
105638// terminated when the NEG is deleted. Note that the NEG cannot be
105639// deleted if there are backend services referencing it.
105640func (r *NetworkEndpointGroupsService) Delete(project string, zone string, networkEndpointGroup string) *NetworkEndpointGroupsDeleteCall {
105641	c := &NetworkEndpointGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105642	c.project = project
105643	c.zone = zone
105644	c.networkEndpointGroup = networkEndpointGroup
105645	return c
105646}
105647
105648// RequestId sets the optional parameter "requestId": An optional
105649// request ID to identify requests. Specify a unique request ID so that
105650// if you must retry your request, the server will know to ignore the
105651// request if it has already been completed.
105652//
105653// For example, consider a situation where you make an initial request
105654// and the request times out. If you make the request again with the
105655// same request ID, the server can check if original operation with the
105656// same request ID was received, and if so, will ignore the second
105657// request. This prevents clients from accidentally creating duplicate
105658// commitments.
105659//
105660// The request ID must be a valid UUID with the exception that zero UUID
105661// is not supported (00000000-0000-0000-0000-000000000000).
105662func (c *NetworkEndpointGroupsDeleteCall) RequestId(requestId string) *NetworkEndpointGroupsDeleteCall {
105663	c.urlParams_.Set("requestId", requestId)
105664	return c
105665}
105666
105667// Fields allows partial responses to be retrieved. See
105668// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105669// for more information.
105670func (c *NetworkEndpointGroupsDeleteCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsDeleteCall {
105671	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105672	return c
105673}
105674
105675// Context sets the context to be used in this call's Do method. Any
105676// pending HTTP request will be aborted if the provided context is
105677// canceled.
105678func (c *NetworkEndpointGroupsDeleteCall) Context(ctx context.Context) *NetworkEndpointGroupsDeleteCall {
105679	c.ctx_ = ctx
105680	return c
105681}
105682
105683// Header returns an http.Header that can be modified by the caller to
105684// add HTTP headers to the request.
105685func (c *NetworkEndpointGroupsDeleteCall) Header() http.Header {
105686	if c.header_ == nil {
105687		c.header_ = make(http.Header)
105688	}
105689	return c.header_
105690}
105691
105692func (c *NetworkEndpointGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
105693	reqHeaders := make(http.Header)
105694	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
105695	for k, v := range c.header_ {
105696		reqHeaders[k] = v
105697	}
105698	reqHeaders.Set("User-Agent", c.s.userAgent())
105699	var body io.Reader = nil
105700	c.urlParams_.Set("alt", alt)
105701	c.urlParams_.Set("prettyPrint", "false")
105702	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}")
105703	urls += "?" + c.urlParams_.Encode()
105704	req, err := http.NewRequest("DELETE", urls, body)
105705	if err != nil {
105706		return nil, err
105707	}
105708	req.Header = reqHeaders
105709	googleapi.Expand(req.URL, map[string]string{
105710		"project":              c.project,
105711		"zone":                 c.zone,
105712		"networkEndpointGroup": c.networkEndpointGroup,
105713	})
105714	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105715}
105716
105717// Do executes the "compute.networkEndpointGroups.delete" call.
105718// Exactly one of *Operation or error will be non-nil. Any non-2xx
105719// status code is an error. Response headers are in either
105720// *Operation.ServerResponse.Header or (if a response was returned at
105721// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
105722// to check whether the returned error was because
105723// http.StatusNotModified was returned.
105724func (c *NetworkEndpointGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
105725	gensupport.SetOptions(c.urlParams_, opts...)
105726	res, err := c.doRequest("json")
105727	if res != nil && res.StatusCode == http.StatusNotModified {
105728		if res.Body != nil {
105729			res.Body.Close()
105730		}
105731		return nil, &googleapi.Error{
105732			Code:   res.StatusCode,
105733			Header: res.Header,
105734		}
105735	}
105736	if err != nil {
105737		return nil, err
105738	}
105739	defer googleapi.CloseBody(res)
105740	if err := googleapi.CheckResponse(res); err != nil {
105741		return nil, err
105742	}
105743	ret := &Operation{
105744		ServerResponse: googleapi.ServerResponse{
105745			Header:         res.Header,
105746			HTTPStatusCode: res.StatusCode,
105747		},
105748	}
105749	target := &ret
105750	if err := gensupport.DecodeResponse(target, res); err != nil {
105751		return nil, err
105752	}
105753	return ret, nil
105754	// {
105755	//   "description": "Deletes the specified network endpoint group. The network endpoints in the NEG and the VM instances they belong to are not terminated when the NEG is deleted. Note that the NEG cannot be deleted if there are backend services referencing it.",
105756	//   "httpMethod": "DELETE",
105757	//   "id": "compute.networkEndpointGroups.delete",
105758	//   "parameterOrder": [
105759	//     "project",
105760	//     "zone",
105761	//     "networkEndpointGroup"
105762	//   ],
105763	//   "parameters": {
105764	//     "networkEndpointGroup": {
105765	//       "description": "The name of the network endpoint group to delete. It should comply with RFC1035.",
105766	//       "location": "path",
105767	//       "required": true,
105768	//       "type": "string"
105769	//     },
105770	//     "project": {
105771	//       "description": "Project ID for this request.",
105772	//       "location": "path",
105773	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
105774	//       "required": true,
105775	//       "type": "string"
105776	//     },
105777	//     "requestId": {
105778	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
105779	//       "location": "query",
105780	//       "type": "string"
105781	//     },
105782	//     "zone": {
105783	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
105784	//       "location": "path",
105785	//       "required": true,
105786	//       "type": "string"
105787	//     }
105788	//   },
105789	//   "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}",
105790	//   "response": {
105791	//     "$ref": "Operation"
105792	//   },
105793	//   "scopes": [
105794	//     "https://www.googleapis.com/auth/cloud-platform",
105795	//     "https://www.googleapis.com/auth/compute"
105796	//   ]
105797	// }
105798
105799}
105800
105801// method id "compute.networkEndpointGroups.detachNetworkEndpoints":
105802
105803type NetworkEndpointGroupsDetachNetworkEndpointsCall struct {
105804	s                                           *Service
105805	project                                     string
105806	zone                                        string
105807	networkEndpointGroup                        string
105808	networkendpointgroupsdetachendpointsrequest *NetworkEndpointGroupsDetachEndpointsRequest
105809	urlParams_                                  gensupport.URLParams
105810	ctx_                                        context.Context
105811	header_                                     http.Header
105812}
105813
105814// DetachNetworkEndpoints: Detach a list of network endpoints from the
105815// specified network endpoint group.
105816func (r *NetworkEndpointGroupsService) DetachNetworkEndpoints(project string, zone string, networkEndpointGroup string, networkendpointgroupsdetachendpointsrequest *NetworkEndpointGroupsDetachEndpointsRequest) *NetworkEndpointGroupsDetachNetworkEndpointsCall {
105817	c := &NetworkEndpointGroupsDetachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105818	c.project = project
105819	c.zone = zone
105820	c.networkEndpointGroup = networkEndpointGroup
105821	c.networkendpointgroupsdetachendpointsrequest = networkendpointgroupsdetachendpointsrequest
105822	return c
105823}
105824
105825// RequestId sets the optional parameter "requestId": An optional
105826// request ID to identify requests. Specify a unique request ID so that
105827// if you must retry your request, the server will know to ignore the
105828// request if it has already been completed.
105829//
105830// For example, consider a situation where you make an initial request
105831// and the request times out. If you make the request again with the
105832// same request ID, the server can check if original operation with the
105833// same request ID was received, and if so, will ignore the second
105834// request. This prevents clients from accidentally creating duplicate
105835// commitments.
105836//
105837// The request ID must be a valid UUID with the exception that zero UUID
105838// is not supported (00000000-0000-0000-0000-000000000000).
105839func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) RequestId(requestId string) *NetworkEndpointGroupsDetachNetworkEndpointsCall {
105840	c.urlParams_.Set("requestId", requestId)
105841	return c
105842}
105843
105844// Fields allows partial responses to be retrieved. See
105845// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105846// for more information.
105847func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsDetachNetworkEndpointsCall {
105848	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105849	return c
105850}
105851
105852// Context sets the context to be used in this call's Do method. Any
105853// pending HTTP request will be aborted if the provided context is
105854// canceled.
105855func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) Context(ctx context.Context) *NetworkEndpointGroupsDetachNetworkEndpointsCall {
105856	c.ctx_ = ctx
105857	return c
105858}
105859
105860// Header returns an http.Header that can be modified by the caller to
105861// add HTTP headers to the request.
105862func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) Header() http.Header {
105863	if c.header_ == nil {
105864		c.header_ = make(http.Header)
105865	}
105866	return c.header_
105867}
105868
105869func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
105870	reqHeaders := make(http.Header)
105871	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
105872	for k, v := range c.header_ {
105873		reqHeaders[k] = v
105874	}
105875	reqHeaders.Set("User-Agent", c.s.userAgent())
105876	var body io.Reader = nil
105877	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroupsdetachendpointsrequest)
105878	if err != nil {
105879		return nil, err
105880	}
105881	reqHeaders.Set("Content-Type", "application/json")
105882	c.urlParams_.Set("alt", alt)
105883	c.urlParams_.Set("prettyPrint", "false")
105884	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints")
105885	urls += "?" + c.urlParams_.Encode()
105886	req, err := http.NewRequest("POST", urls, body)
105887	if err != nil {
105888		return nil, err
105889	}
105890	req.Header = reqHeaders
105891	googleapi.Expand(req.URL, map[string]string{
105892		"project":              c.project,
105893		"zone":                 c.zone,
105894		"networkEndpointGroup": c.networkEndpointGroup,
105895	})
105896	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105897}
105898
105899// Do executes the "compute.networkEndpointGroups.detachNetworkEndpoints" call.
105900// Exactly one of *Operation or error will be non-nil. Any non-2xx
105901// status code is an error. Response headers are in either
105902// *Operation.ServerResponse.Header or (if a response was returned at
105903// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
105904// to check whether the returned error was because
105905// http.StatusNotModified was returned.
105906func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
105907	gensupport.SetOptions(c.urlParams_, opts...)
105908	res, err := c.doRequest("json")
105909	if res != nil && res.StatusCode == http.StatusNotModified {
105910		if res.Body != nil {
105911			res.Body.Close()
105912		}
105913		return nil, &googleapi.Error{
105914			Code:   res.StatusCode,
105915			Header: res.Header,
105916		}
105917	}
105918	if err != nil {
105919		return nil, err
105920	}
105921	defer googleapi.CloseBody(res)
105922	if err := googleapi.CheckResponse(res); err != nil {
105923		return nil, err
105924	}
105925	ret := &Operation{
105926		ServerResponse: googleapi.ServerResponse{
105927			Header:         res.Header,
105928			HTTPStatusCode: res.StatusCode,
105929		},
105930	}
105931	target := &ret
105932	if err := gensupport.DecodeResponse(target, res); err != nil {
105933		return nil, err
105934	}
105935	return ret, nil
105936	// {
105937	//   "description": "Detach a list of network endpoints from the specified network endpoint group.",
105938	//   "httpMethod": "POST",
105939	//   "id": "compute.networkEndpointGroups.detachNetworkEndpoints",
105940	//   "parameterOrder": [
105941	//     "project",
105942	//     "zone",
105943	//     "networkEndpointGroup"
105944	//   ],
105945	//   "parameters": {
105946	//     "networkEndpointGroup": {
105947	//       "description": "The name of the network endpoint group where you are removing network endpoints. It should comply with RFC1035.",
105948	//       "location": "path",
105949	//       "required": true,
105950	//       "type": "string"
105951	//     },
105952	//     "project": {
105953	//       "description": "Project ID for this request.",
105954	//       "location": "path",
105955	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
105956	//       "required": true,
105957	//       "type": "string"
105958	//     },
105959	//     "requestId": {
105960	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
105961	//       "location": "query",
105962	//       "type": "string"
105963	//     },
105964	//     "zone": {
105965	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
105966	//       "location": "path",
105967	//       "required": true,
105968	//       "type": "string"
105969	//     }
105970	//   },
105971	//   "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints",
105972	//   "request": {
105973	//     "$ref": "NetworkEndpointGroupsDetachEndpointsRequest"
105974	//   },
105975	//   "response": {
105976	//     "$ref": "Operation"
105977	//   },
105978	//   "scopes": [
105979	//     "https://www.googleapis.com/auth/cloud-platform",
105980	//     "https://www.googleapis.com/auth/compute"
105981	//   ]
105982	// }
105983
105984}
105985
105986// method id "compute.networkEndpointGroups.get":
105987
105988type NetworkEndpointGroupsGetCall struct {
105989	s                    *Service
105990	project              string
105991	zone                 string
105992	networkEndpointGroup string
105993	urlParams_           gensupport.URLParams
105994	ifNoneMatch_         string
105995	ctx_                 context.Context
105996	header_              http.Header
105997}
105998
105999// Get: Returns the specified network endpoint group. Gets a list of
106000// available network endpoint groups by making a list() request.
106001func (r *NetworkEndpointGroupsService) Get(project string, zone string, networkEndpointGroup string) *NetworkEndpointGroupsGetCall {
106002	c := &NetworkEndpointGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
106003	c.project = project
106004	c.zone = zone
106005	c.networkEndpointGroup = networkEndpointGroup
106006	return c
106007}
106008
106009// Fields allows partial responses to be retrieved. See
106010// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
106011// for more information.
106012func (c *NetworkEndpointGroupsGetCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsGetCall {
106013	c.urlParams_.Set("fields", googleapi.CombineFields(s))
106014	return c
106015}
106016
106017// IfNoneMatch sets the optional parameter which makes the operation
106018// fail if the object's ETag matches the given value. This is useful for
106019// getting updates only after the object has changed since the last
106020// request. Use googleapi.IsNotModified to check whether the response
106021// error from Do is the result of In-None-Match.
106022func (c *NetworkEndpointGroupsGetCall) IfNoneMatch(entityTag string) *NetworkEndpointGroupsGetCall {
106023	c.ifNoneMatch_ = entityTag
106024	return c
106025}
106026
106027// Context sets the context to be used in this call's Do method. Any
106028// pending HTTP request will be aborted if the provided context is
106029// canceled.
106030func (c *NetworkEndpointGroupsGetCall) Context(ctx context.Context) *NetworkEndpointGroupsGetCall {
106031	c.ctx_ = ctx
106032	return c
106033}
106034
106035// Header returns an http.Header that can be modified by the caller to
106036// add HTTP headers to the request.
106037func (c *NetworkEndpointGroupsGetCall) Header() http.Header {
106038	if c.header_ == nil {
106039		c.header_ = make(http.Header)
106040	}
106041	return c.header_
106042}
106043
106044func (c *NetworkEndpointGroupsGetCall) doRequest(alt string) (*http.Response, error) {
106045	reqHeaders := make(http.Header)
106046	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
106047	for k, v := range c.header_ {
106048		reqHeaders[k] = v
106049	}
106050	reqHeaders.Set("User-Agent", c.s.userAgent())
106051	if c.ifNoneMatch_ != "" {
106052		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
106053	}
106054	var body io.Reader = nil
106055	c.urlParams_.Set("alt", alt)
106056	c.urlParams_.Set("prettyPrint", "false")
106057	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}")
106058	urls += "?" + c.urlParams_.Encode()
106059	req, err := http.NewRequest("GET", urls, body)
106060	if err != nil {
106061		return nil, err
106062	}
106063	req.Header = reqHeaders
106064	googleapi.Expand(req.URL, map[string]string{
106065		"project":              c.project,
106066		"zone":                 c.zone,
106067		"networkEndpointGroup": c.networkEndpointGroup,
106068	})
106069	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106070}
106071
106072// Do executes the "compute.networkEndpointGroups.get" call.
106073// Exactly one of *NetworkEndpointGroup or error will be non-nil. Any
106074// non-2xx status code is an error. Response headers are in either
106075// *NetworkEndpointGroup.ServerResponse.Header or (if a response was
106076// returned at all) in error.(*googleapi.Error).Header. Use
106077// googleapi.IsNotModified to check whether the returned error was
106078// because http.StatusNotModified was returned.
106079func (c *NetworkEndpointGroupsGetCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroup, error) {
106080	gensupport.SetOptions(c.urlParams_, opts...)
106081	res, err := c.doRequest("json")
106082	if res != nil && res.StatusCode == http.StatusNotModified {
106083		if res.Body != nil {
106084			res.Body.Close()
106085		}
106086		return nil, &googleapi.Error{
106087			Code:   res.StatusCode,
106088			Header: res.Header,
106089		}
106090	}
106091	if err != nil {
106092		return nil, err
106093	}
106094	defer googleapi.CloseBody(res)
106095	if err := googleapi.CheckResponse(res); err != nil {
106096		return nil, err
106097	}
106098	ret := &NetworkEndpointGroup{
106099		ServerResponse: googleapi.ServerResponse{
106100			Header:         res.Header,
106101			HTTPStatusCode: res.StatusCode,
106102		},
106103	}
106104	target := &ret
106105	if err := gensupport.DecodeResponse(target, res); err != nil {
106106		return nil, err
106107	}
106108	return ret, nil
106109	// {
106110	//   "description": "Returns the specified network endpoint group. Gets a list of available network endpoint groups by making a list() request.",
106111	//   "httpMethod": "GET",
106112	//   "id": "compute.networkEndpointGroups.get",
106113	//   "parameterOrder": [
106114	//     "project",
106115	//     "zone",
106116	//     "networkEndpointGroup"
106117	//   ],
106118	//   "parameters": {
106119	//     "networkEndpointGroup": {
106120	//       "description": "The name of the network endpoint group. It should comply with RFC1035.",
106121	//       "location": "path",
106122	//       "required": true,
106123	//       "type": "string"
106124	//     },
106125	//     "project": {
106126	//       "description": "Project ID for this request.",
106127	//       "location": "path",
106128	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106129	//       "required": true,
106130	//       "type": "string"
106131	//     },
106132	//     "zone": {
106133	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
106134	//       "location": "path",
106135	//       "required": true,
106136	//       "type": "string"
106137	//     }
106138	//   },
106139	//   "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}",
106140	//   "response": {
106141	//     "$ref": "NetworkEndpointGroup"
106142	//   },
106143	//   "scopes": [
106144	//     "https://www.googleapis.com/auth/cloud-platform",
106145	//     "https://www.googleapis.com/auth/compute",
106146	//     "https://www.googleapis.com/auth/compute.readonly"
106147	//   ]
106148	// }
106149
106150}
106151
106152// method id "compute.networkEndpointGroups.insert":
106153
106154type NetworkEndpointGroupsInsertCall struct {
106155	s                    *Service
106156	project              string
106157	zone                 string
106158	networkendpointgroup *NetworkEndpointGroup
106159	urlParams_           gensupport.URLParams
106160	ctx_                 context.Context
106161	header_              http.Header
106162}
106163
106164// Insert: Creates a network endpoint group in the specified project
106165// using the parameters that are included in the request.
106166func (r *NetworkEndpointGroupsService) Insert(project string, zone string, networkendpointgroup *NetworkEndpointGroup) *NetworkEndpointGroupsInsertCall {
106167	c := &NetworkEndpointGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
106168	c.project = project
106169	c.zone = zone
106170	c.networkendpointgroup = networkendpointgroup
106171	return c
106172}
106173
106174// RequestId sets the optional parameter "requestId": An optional
106175// request ID to identify requests. Specify a unique request ID so that
106176// if you must retry your request, the server will know to ignore the
106177// request if it has already been completed.
106178//
106179// For example, consider a situation where you make an initial request
106180// and the request times out. If you make the request again with the
106181// same request ID, the server can check if original operation with the
106182// same request ID was received, and if so, will ignore the second
106183// request. This prevents clients from accidentally creating duplicate
106184// commitments.
106185//
106186// The request ID must be a valid UUID with the exception that zero UUID
106187// is not supported (00000000-0000-0000-0000-000000000000).
106188func (c *NetworkEndpointGroupsInsertCall) RequestId(requestId string) *NetworkEndpointGroupsInsertCall {
106189	c.urlParams_.Set("requestId", requestId)
106190	return c
106191}
106192
106193// Fields allows partial responses to be retrieved. See
106194// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
106195// for more information.
106196func (c *NetworkEndpointGroupsInsertCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsInsertCall {
106197	c.urlParams_.Set("fields", googleapi.CombineFields(s))
106198	return c
106199}
106200
106201// Context sets the context to be used in this call's Do method. Any
106202// pending HTTP request will be aborted if the provided context is
106203// canceled.
106204func (c *NetworkEndpointGroupsInsertCall) Context(ctx context.Context) *NetworkEndpointGroupsInsertCall {
106205	c.ctx_ = ctx
106206	return c
106207}
106208
106209// Header returns an http.Header that can be modified by the caller to
106210// add HTTP headers to the request.
106211func (c *NetworkEndpointGroupsInsertCall) Header() http.Header {
106212	if c.header_ == nil {
106213		c.header_ = make(http.Header)
106214	}
106215	return c.header_
106216}
106217
106218func (c *NetworkEndpointGroupsInsertCall) doRequest(alt string) (*http.Response, error) {
106219	reqHeaders := make(http.Header)
106220	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
106221	for k, v := range c.header_ {
106222		reqHeaders[k] = v
106223	}
106224	reqHeaders.Set("User-Agent", c.s.userAgent())
106225	var body io.Reader = nil
106226	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroup)
106227	if err != nil {
106228		return nil, err
106229	}
106230	reqHeaders.Set("Content-Type", "application/json")
106231	c.urlParams_.Set("alt", alt)
106232	c.urlParams_.Set("prettyPrint", "false")
106233	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/networkEndpointGroups")
106234	urls += "?" + c.urlParams_.Encode()
106235	req, err := http.NewRequest("POST", urls, body)
106236	if err != nil {
106237		return nil, err
106238	}
106239	req.Header = reqHeaders
106240	googleapi.Expand(req.URL, map[string]string{
106241		"project": c.project,
106242		"zone":    c.zone,
106243	})
106244	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106245}
106246
106247// Do executes the "compute.networkEndpointGroups.insert" call.
106248// Exactly one of *Operation or error will be non-nil. Any non-2xx
106249// status code is an error. Response headers are in either
106250// *Operation.ServerResponse.Header or (if a response was returned at
106251// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
106252// to check whether the returned error was because
106253// http.StatusNotModified was returned.
106254func (c *NetworkEndpointGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
106255	gensupport.SetOptions(c.urlParams_, opts...)
106256	res, err := c.doRequest("json")
106257	if res != nil && res.StatusCode == http.StatusNotModified {
106258		if res.Body != nil {
106259			res.Body.Close()
106260		}
106261		return nil, &googleapi.Error{
106262			Code:   res.StatusCode,
106263			Header: res.Header,
106264		}
106265	}
106266	if err != nil {
106267		return nil, err
106268	}
106269	defer googleapi.CloseBody(res)
106270	if err := googleapi.CheckResponse(res); err != nil {
106271		return nil, err
106272	}
106273	ret := &Operation{
106274		ServerResponse: googleapi.ServerResponse{
106275			Header:         res.Header,
106276			HTTPStatusCode: res.StatusCode,
106277		},
106278	}
106279	target := &ret
106280	if err := gensupport.DecodeResponse(target, res); err != nil {
106281		return nil, err
106282	}
106283	return ret, nil
106284	// {
106285	//   "description": "Creates a network endpoint group in the specified project using the parameters that are included in the request.",
106286	//   "httpMethod": "POST",
106287	//   "id": "compute.networkEndpointGroups.insert",
106288	//   "parameterOrder": [
106289	//     "project",
106290	//     "zone"
106291	//   ],
106292	//   "parameters": {
106293	//     "project": {
106294	//       "description": "Project ID for this request.",
106295	//       "location": "path",
106296	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106297	//       "required": true,
106298	//       "type": "string"
106299	//     },
106300	//     "requestId": {
106301	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
106302	//       "location": "query",
106303	//       "type": "string"
106304	//     },
106305	//     "zone": {
106306	//       "description": "The name of the zone where you want to create the network endpoint group. It should comply with RFC1035.",
106307	//       "location": "path",
106308	//       "required": true,
106309	//       "type": "string"
106310	//     }
106311	//   },
106312	//   "path": "projects/{project}/zones/{zone}/networkEndpointGroups",
106313	//   "request": {
106314	//     "$ref": "NetworkEndpointGroup"
106315	//   },
106316	//   "response": {
106317	//     "$ref": "Operation"
106318	//   },
106319	//   "scopes": [
106320	//     "https://www.googleapis.com/auth/cloud-platform",
106321	//     "https://www.googleapis.com/auth/compute"
106322	//   ]
106323	// }
106324
106325}
106326
106327// method id "compute.networkEndpointGroups.list":
106328
106329type NetworkEndpointGroupsListCall struct {
106330	s            *Service
106331	project      string
106332	zone         string
106333	urlParams_   gensupport.URLParams
106334	ifNoneMatch_ string
106335	ctx_         context.Context
106336	header_      http.Header
106337}
106338
106339// List: Retrieves the list of network endpoint groups that are located
106340// in the specified project and zone.
106341func (r *NetworkEndpointGroupsService) List(project string, zone string) *NetworkEndpointGroupsListCall {
106342	c := &NetworkEndpointGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
106343	c.project = project
106344	c.zone = zone
106345	return c
106346}
106347
106348// Filter sets the optional parameter "filter": A filter expression that
106349// filters resources listed in the response. The expression must specify
106350// the field name, a comparison operator, and the value that you want to
106351// use for filtering. The value must be a string, a number, or a
106352// boolean. The comparison operator must be either `=`, `!=`, `>`, or
106353// `<`.
106354//
106355// For example, if you are filtering Compute Engine instances, you can
106356// exclude instances named `example-instance` by specifying `name !=
106357// example-instance`.
106358//
106359// You can also filter nested fields. For example, you could specify
106360// `scheduling.automaticRestart = false` to include instances only if
106361// they are not scheduled for automatic restarts. You can use filtering
106362// on nested fields to filter based on resource labels.
106363//
106364// To filter on multiple expressions, provide each separate expression
106365// within parentheses. For example: ``` (scheduling.automaticRestart =
106366// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
106367// is an `AND` expression. However, you can include `AND` and `OR`
106368// expressions explicitly. For example: ``` (cpuPlatform = "Intel
106369// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
106370// (scheduling.automaticRestart = true) ```
106371func (c *NetworkEndpointGroupsListCall) Filter(filter string) *NetworkEndpointGroupsListCall {
106372	c.urlParams_.Set("filter", filter)
106373	return c
106374}
106375
106376// MaxResults sets the optional parameter "maxResults": The maximum
106377// number of results per page that should be returned. If the number of
106378// available results is larger than `maxResults`, Compute Engine returns
106379// a `nextPageToken` that can be used to get the next page of results in
106380// subsequent list requests. Acceptable values are `0` to `500`,
106381// inclusive. (Default: `500`)
106382func (c *NetworkEndpointGroupsListCall) MaxResults(maxResults int64) *NetworkEndpointGroupsListCall {
106383	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
106384	return c
106385}
106386
106387// OrderBy sets the optional parameter "orderBy": Sorts list results by
106388// a certain order. By default, results are returned in alphanumerical
106389// order based on the resource name.
106390//
106391// You can also sort results in descending order based on the creation
106392// timestamp using `orderBy="creationTimestamp desc". This sorts
106393// results based on the `creationTimestamp` field in reverse
106394// chronological order (newest result first). Use this to sort resources
106395// like operations so that the newest operation is returned
106396// first.
106397//
106398// Currently, only sorting by `name` or `creationTimestamp desc` is
106399// supported.
106400func (c *NetworkEndpointGroupsListCall) OrderBy(orderBy string) *NetworkEndpointGroupsListCall {
106401	c.urlParams_.Set("orderBy", orderBy)
106402	return c
106403}
106404
106405// PageToken sets the optional parameter "pageToken": Specifies a page
106406// token to use. Set `pageToken` to the `nextPageToken` returned by a
106407// previous list request to get the next page of results.
106408func (c *NetworkEndpointGroupsListCall) PageToken(pageToken string) *NetworkEndpointGroupsListCall {
106409	c.urlParams_.Set("pageToken", pageToken)
106410	return c
106411}
106412
106413// ReturnPartialSuccess sets the optional parameter
106414// "returnPartialSuccess": Opt-in for partial success behavior which
106415// provides partial results in case of failure. The default value is
106416// false.
106417func (c *NetworkEndpointGroupsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NetworkEndpointGroupsListCall {
106418	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
106419	return c
106420}
106421
106422// Fields allows partial responses to be retrieved. See
106423// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
106424// for more information.
106425func (c *NetworkEndpointGroupsListCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsListCall {
106426	c.urlParams_.Set("fields", googleapi.CombineFields(s))
106427	return c
106428}
106429
106430// IfNoneMatch sets the optional parameter which makes the operation
106431// fail if the object's ETag matches the given value. This is useful for
106432// getting updates only after the object has changed since the last
106433// request. Use googleapi.IsNotModified to check whether the response
106434// error from Do is the result of In-None-Match.
106435func (c *NetworkEndpointGroupsListCall) IfNoneMatch(entityTag string) *NetworkEndpointGroupsListCall {
106436	c.ifNoneMatch_ = entityTag
106437	return c
106438}
106439
106440// Context sets the context to be used in this call's Do method. Any
106441// pending HTTP request will be aborted if the provided context is
106442// canceled.
106443func (c *NetworkEndpointGroupsListCall) Context(ctx context.Context) *NetworkEndpointGroupsListCall {
106444	c.ctx_ = ctx
106445	return c
106446}
106447
106448// Header returns an http.Header that can be modified by the caller to
106449// add HTTP headers to the request.
106450func (c *NetworkEndpointGroupsListCall) Header() http.Header {
106451	if c.header_ == nil {
106452		c.header_ = make(http.Header)
106453	}
106454	return c.header_
106455}
106456
106457func (c *NetworkEndpointGroupsListCall) doRequest(alt string) (*http.Response, error) {
106458	reqHeaders := make(http.Header)
106459	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
106460	for k, v := range c.header_ {
106461		reqHeaders[k] = v
106462	}
106463	reqHeaders.Set("User-Agent", c.s.userAgent())
106464	if c.ifNoneMatch_ != "" {
106465		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
106466	}
106467	var body io.Reader = nil
106468	c.urlParams_.Set("alt", alt)
106469	c.urlParams_.Set("prettyPrint", "false")
106470	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/networkEndpointGroups")
106471	urls += "?" + c.urlParams_.Encode()
106472	req, err := http.NewRequest("GET", urls, body)
106473	if err != nil {
106474		return nil, err
106475	}
106476	req.Header = reqHeaders
106477	googleapi.Expand(req.URL, map[string]string{
106478		"project": c.project,
106479		"zone":    c.zone,
106480	})
106481	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106482}
106483
106484// Do executes the "compute.networkEndpointGroups.list" call.
106485// Exactly one of *NetworkEndpointGroupList or error will be non-nil.
106486// Any non-2xx status code is an error. Response headers are in either
106487// *NetworkEndpointGroupList.ServerResponse.Header or (if a response was
106488// returned at all) in error.(*googleapi.Error).Header. Use
106489// googleapi.IsNotModified to check whether the returned error was
106490// because http.StatusNotModified was returned.
106491func (c *NetworkEndpointGroupsListCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupList, error) {
106492	gensupport.SetOptions(c.urlParams_, opts...)
106493	res, err := c.doRequest("json")
106494	if res != nil && res.StatusCode == http.StatusNotModified {
106495		if res.Body != nil {
106496			res.Body.Close()
106497		}
106498		return nil, &googleapi.Error{
106499			Code:   res.StatusCode,
106500			Header: res.Header,
106501		}
106502	}
106503	if err != nil {
106504		return nil, err
106505	}
106506	defer googleapi.CloseBody(res)
106507	if err := googleapi.CheckResponse(res); err != nil {
106508		return nil, err
106509	}
106510	ret := &NetworkEndpointGroupList{
106511		ServerResponse: googleapi.ServerResponse{
106512			Header:         res.Header,
106513			HTTPStatusCode: res.StatusCode,
106514		},
106515	}
106516	target := &ret
106517	if err := gensupport.DecodeResponse(target, res); err != nil {
106518		return nil, err
106519	}
106520	return ret, nil
106521	// {
106522	//   "description": "Retrieves the list of network endpoint groups that are located in the specified project and zone.",
106523	//   "httpMethod": "GET",
106524	//   "id": "compute.networkEndpointGroups.list",
106525	//   "parameterOrder": [
106526	//     "project",
106527	//     "zone"
106528	//   ],
106529	//   "parameters": {
106530	//     "filter": {
106531	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
106532	//       "location": "query",
106533	//       "type": "string"
106534	//     },
106535	//     "maxResults": {
106536	//       "default": "500",
106537	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
106538	//       "format": "uint32",
106539	//       "location": "query",
106540	//       "minimum": "0",
106541	//       "type": "integer"
106542	//     },
106543	//     "orderBy": {
106544	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
106545	//       "location": "query",
106546	//       "type": "string"
106547	//     },
106548	//     "pageToken": {
106549	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
106550	//       "location": "query",
106551	//       "type": "string"
106552	//     },
106553	//     "project": {
106554	//       "description": "Project ID for this request.",
106555	//       "location": "path",
106556	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106557	//       "required": true,
106558	//       "type": "string"
106559	//     },
106560	//     "returnPartialSuccess": {
106561	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
106562	//       "location": "query",
106563	//       "type": "boolean"
106564	//     },
106565	//     "zone": {
106566	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
106567	//       "location": "path",
106568	//       "required": true,
106569	//       "type": "string"
106570	//     }
106571	//   },
106572	//   "path": "projects/{project}/zones/{zone}/networkEndpointGroups",
106573	//   "response": {
106574	//     "$ref": "NetworkEndpointGroupList"
106575	//   },
106576	//   "scopes": [
106577	//     "https://www.googleapis.com/auth/cloud-platform",
106578	//     "https://www.googleapis.com/auth/compute",
106579	//     "https://www.googleapis.com/auth/compute.readonly"
106580	//   ]
106581	// }
106582
106583}
106584
106585// Pages invokes f for each page of results.
106586// A non-nil error returned from f will halt the iteration.
106587// The provided context supersedes any context provided to the Context method.
106588func (c *NetworkEndpointGroupsListCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupList) error) error {
106589	c.ctx_ = ctx
106590	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
106591	for {
106592		x, err := c.Do()
106593		if err != nil {
106594			return err
106595		}
106596		if err := f(x); err != nil {
106597			return err
106598		}
106599		if x.NextPageToken == "" {
106600			return nil
106601		}
106602		c.PageToken(x.NextPageToken)
106603	}
106604}
106605
106606// method id "compute.networkEndpointGroups.listNetworkEndpoints":
106607
106608type NetworkEndpointGroupsListNetworkEndpointsCall struct {
106609	s                                         *Service
106610	project                                   string
106611	zone                                      string
106612	networkEndpointGroup                      string
106613	networkendpointgroupslistendpointsrequest *NetworkEndpointGroupsListEndpointsRequest
106614	urlParams_                                gensupport.URLParams
106615	ctx_                                      context.Context
106616	header_                                   http.Header
106617}
106618
106619// ListNetworkEndpoints: Lists the network endpoints in the specified
106620// network endpoint group.
106621func (r *NetworkEndpointGroupsService) ListNetworkEndpoints(project string, zone string, networkEndpointGroup string, networkendpointgroupslistendpointsrequest *NetworkEndpointGroupsListEndpointsRequest) *NetworkEndpointGroupsListNetworkEndpointsCall {
106622	c := &NetworkEndpointGroupsListNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
106623	c.project = project
106624	c.zone = zone
106625	c.networkEndpointGroup = networkEndpointGroup
106626	c.networkendpointgroupslistendpointsrequest = networkendpointgroupslistendpointsrequest
106627	return c
106628}
106629
106630// Filter sets the optional parameter "filter": A filter expression that
106631// filters resources listed in the response. The expression must specify
106632// the field name, a comparison operator, and the value that you want to
106633// use for filtering. The value must be a string, a number, or a
106634// boolean. The comparison operator must be either `=`, `!=`, `>`, or
106635// `<`.
106636//
106637// For example, if you are filtering Compute Engine instances, you can
106638// exclude instances named `example-instance` by specifying `name !=
106639// example-instance`.
106640//
106641// You can also filter nested fields. For example, you could specify
106642// `scheduling.automaticRestart = false` to include instances only if
106643// they are not scheduled for automatic restarts. You can use filtering
106644// on nested fields to filter based on resource labels.
106645//
106646// To filter on multiple expressions, provide each separate expression
106647// within parentheses. For example: ``` (scheduling.automaticRestart =
106648// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
106649// is an `AND` expression. However, you can include `AND` and `OR`
106650// expressions explicitly. For example: ``` (cpuPlatform = "Intel
106651// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
106652// (scheduling.automaticRestart = true) ```
106653func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Filter(filter string) *NetworkEndpointGroupsListNetworkEndpointsCall {
106654	c.urlParams_.Set("filter", filter)
106655	return c
106656}
106657
106658// MaxResults sets the optional parameter "maxResults": The maximum
106659// number of results per page that should be returned. If the number of
106660// available results is larger than `maxResults`, Compute Engine returns
106661// a `nextPageToken` that can be used to get the next page of results in
106662// subsequent list requests. Acceptable values are `0` to `500`,
106663// inclusive. (Default: `500`)
106664func (c *NetworkEndpointGroupsListNetworkEndpointsCall) MaxResults(maxResults int64) *NetworkEndpointGroupsListNetworkEndpointsCall {
106665	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
106666	return c
106667}
106668
106669// OrderBy sets the optional parameter "orderBy": Sorts list results by
106670// a certain order. By default, results are returned in alphanumerical
106671// order based on the resource name.
106672//
106673// You can also sort results in descending order based on the creation
106674// timestamp using `orderBy="creationTimestamp desc". This sorts
106675// results based on the `creationTimestamp` field in reverse
106676// chronological order (newest result first). Use this to sort resources
106677// like operations so that the newest operation is returned
106678// first.
106679//
106680// Currently, only sorting by `name` or `creationTimestamp desc` is
106681// supported.
106682func (c *NetworkEndpointGroupsListNetworkEndpointsCall) OrderBy(orderBy string) *NetworkEndpointGroupsListNetworkEndpointsCall {
106683	c.urlParams_.Set("orderBy", orderBy)
106684	return c
106685}
106686
106687// PageToken sets the optional parameter "pageToken": Specifies a page
106688// token to use. Set `pageToken` to the `nextPageToken` returned by a
106689// previous list request to get the next page of results.
106690func (c *NetworkEndpointGroupsListNetworkEndpointsCall) PageToken(pageToken string) *NetworkEndpointGroupsListNetworkEndpointsCall {
106691	c.urlParams_.Set("pageToken", pageToken)
106692	return c
106693}
106694
106695// ReturnPartialSuccess sets the optional parameter
106696// "returnPartialSuccess": Opt-in for partial success behavior which
106697// provides partial results in case of failure. The default value is
106698// false.
106699func (c *NetworkEndpointGroupsListNetworkEndpointsCall) ReturnPartialSuccess(returnPartialSuccess bool) *NetworkEndpointGroupsListNetworkEndpointsCall {
106700	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
106701	return c
106702}
106703
106704// Fields allows partial responses to be retrieved. See
106705// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
106706// for more information.
106707func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsListNetworkEndpointsCall {
106708	c.urlParams_.Set("fields", googleapi.CombineFields(s))
106709	return c
106710}
106711
106712// Context sets the context to be used in this call's Do method. Any
106713// pending HTTP request will be aborted if the provided context is
106714// canceled.
106715func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Context(ctx context.Context) *NetworkEndpointGroupsListNetworkEndpointsCall {
106716	c.ctx_ = ctx
106717	return c
106718}
106719
106720// Header returns an http.Header that can be modified by the caller to
106721// add HTTP headers to the request.
106722func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Header() http.Header {
106723	if c.header_ == nil {
106724		c.header_ = make(http.Header)
106725	}
106726	return c.header_
106727}
106728
106729func (c *NetworkEndpointGroupsListNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
106730	reqHeaders := make(http.Header)
106731	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
106732	for k, v := range c.header_ {
106733		reqHeaders[k] = v
106734	}
106735	reqHeaders.Set("User-Agent", c.s.userAgent())
106736	var body io.Reader = nil
106737	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroupslistendpointsrequest)
106738	if err != nil {
106739		return nil, err
106740	}
106741	reqHeaders.Set("Content-Type", "application/json")
106742	c.urlParams_.Set("alt", alt)
106743	c.urlParams_.Set("prettyPrint", "false")
106744	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints")
106745	urls += "?" + c.urlParams_.Encode()
106746	req, err := http.NewRequest("POST", urls, body)
106747	if err != nil {
106748		return nil, err
106749	}
106750	req.Header = reqHeaders
106751	googleapi.Expand(req.URL, map[string]string{
106752		"project":              c.project,
106753		"zone":                 c.zone,
106754		"networkEndpointGroup": c.networkEndpointGroup,
106755	})
106756	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106757}
106758
106759// Do executes the "compute.networkEndpointGroups.listNetworkEndpoints" call.
106760// Exactly one of *NetworkEndpointGroupsListNetworkEndpoints or error
106761// will be non-nil. Any non-2xx status code is an error. Response
106762// headers are in either
106763// *NetworkEndpointGroupsListNetworkEndpoints.ServerResponse.Header or
106764// (if a response was returned at all) in
106765// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
106766// whether the returned error was because http.StatusNotModified was
106767// returned.
106768func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupsListNetworkEndpoints, error) {
106769	gensupport.SetOptions(c.urlParams_, opts...)
106770	res, err := c.doRequest("json")
106771	if res != nil && res.StatusCode == http.StatusNotModified {
106772		if res.Body != nil {
106773			res.Body.Close()
106774		}
106775		return nil, &googleapi.Error{
106776			Code:   res.StatusCode,
106777			Header: res.Header,
106778		}
106779	}
106780	if err != nil {
106781		return nil, err
106782	}
106783	defer googleapi.CloseBody(res)
106784	if err := googleapi.CheckResponse(res); err != nil {
106785		return nil, err
106786	}
106787	ret := &NetworkEndpointGroupsListNetworkEndpoints{
106788		ServerResponse: googleapi.ServerResponse{
106789			Header:         res.Header,
106790			HTTPStatusCode: res.StatusCode,
106791		},
106792	}
106793	target := &ret
106794	if err := gensupport.DecodeResponse(target, res); err != nil {
106795		return nil, err
106796	}
106797	return ret, nil
106798	// {
106799	//   "description": "Lists the network endpoints in the specified network endpoint group.",
106800	//   "httpMethod": "POST",
106801	//   "id": "compute.networkEndpointGroups.listNetworkEndpoints",
106802	//   "parameterOrder": [
106803	//     "project",
106804	//     "zone",
106805	//     "networkEndpointGroup"
106806	//   ],
106807	//   "parameters": {
106808	//     "filter": {
106809	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
106810	//       "location": "query",
106811	//       "type": "string"
106812	//     },
106813	//     "maxResults": {
106814	//       "default": "500",
106815	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
106816	//       "format": "uint32",
106817	//       "location": "query",
106818	//       "minimum": "0",
106819	//       "type": "integer"
106820	//     },
106821	//     "networkEndpointGroup": {
106822	//       "description": "The name of the network endpoint group from which you want to generate a list of included network endpoints. It should comply with RFC1035.",
106823	//       "location": "path",
106824	//       "required": true,
106825	//       "type": "string"
106826	//     },
106827	//     "orderBy": {
106828	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
106829	//       "location": "query",
106830	//       "type": "string"
106831	//     },
106832	//     "pageToken": {
106833	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
106834	//       "location": "query",
106835	//       "type": "string"
106836	//     },
106837	//     "project": {
106838	//       "description": "Project ID for this request.",
106839	//       "location": "path",
106840	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106841	//       "required": true,
106842	//       "type": "string"
106843	//     },
106844	//     "returnPartialSuccess": {
106845	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
106846	//       "location": "query",
106847	//       "type": "boolean"
106848	//     },
106849	//     "zone": {
106850	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
106851	//       "location": "path",
106852	//       "required": true,
106853	//       "type": "string"
106854	//     }
106855	//   },
106856	//   "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints",
106857	//   "request": {
106858	//     "$ref": "NetworkEndpointGroupsListEndpointsRequest"
106859	//   },
106860	//   "response": {
106861	//     "$ref": "NetworkEndpointGroupsListNetworkEndpoints"
106862	//   },
106863	//   "scopes": [
106864	//     "https://www.googleapis.com/auth/cloud-platform",
106865	//     "https://www.googleapis.com/auth/compute",
106866	//     "https://www.googleapis.com/auth/compute.readonly"
106867	//   ]
106868	// }
106869
106870}
106871
106872// Pages invokes f for each page of results.
106873// A non-nil error returned from f will halt the iteration.
106874// The provided context supersedes any context provided to the Context method.
106875func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupsListNetworkEndpoints) error) error {
106876	c.ctx_ = ctx
106877	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
106878	for {
106879		x, err := c.Do()
106880		if err != nil {
106881			return err
106882		}
106883		if err := f(x); err != nil {
106884			return err
106885		}
106886		if x.NextPageToken == "" {
106887			return nil
106888		}
106889		c.PageToken(x.NextPageToken)
106890	}
106891}
106892
106893// method id "compute.networkEndpointGroups.testIamPermissions":
106894
106895type NetworkEndpointGroupsTestIamPermissionsCall struct {
106896	s                      *Service
106897	project                string
106898	zone                   string
106899	resource               string
106900	testpermissionsrequest *TestPermissionsRequest
106901	urlParams_             gensupport.URLParams
106902	ctx_                   context.Context
106903	header_                http.Header
106904}
106905
106906// TestIamPermissions: Returns permissions that a caller has on the
106907// specified resource.
106908func (r *NetworkEndpointGroupsService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *NetworkEndpointGroupsTestIamPermissionsCall {
106909	c := &NetworkEndpointGroupsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
106910	c.project = project
106911	c.zone = zone
106912	c.resource = resource
106913	c.testpermissionsrequest = testpermissionsrequest
106914	return c
106915}
106916
106917// Fields allows partial responses to be retrieved. See
106918// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
106919// for more information.
106920func (c *NetworkEndpointGroupsTestIamPermissionsCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsTestIamPermissionsCall {
106921	c.urlParams_.Set("fields", googleapi.CombineFields(s))
106922	return c
106923}
106924
106925// Context sets the context to be used in this call's Do method. Any
106926// pending HTTP request will be aborted if the provided context is
106927// canceled.
106928func (c *NetworkEndpointGroupsTestIamPermissionsCall) Context(ctx context.Context) *NetworkEndpointGroupsTestIamPermissionsCall {
106929	c.ctx_ = ctx
106930	return c
106931}
106932
106933// Header returns an http.Header that can be modified by the caller to
106934// add HTTP headers to the request.
106935func (c *NetworkEndpointGroupsTestIamPermissionsCall) Header() http.Header {
106936	if c.header_ == nil {
106937		c.header_ = make(http.Header)
106938	}
106939	return c.header_
106940}
106941
106942func (c *NetworkEndpointGroupsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
106943	reqHeaders := make(http.Header)
106944	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
106945	for k, v := range c.header_ {
106946		reqHeaders[k] = v
106947	}
106948	reqHeaders.Set("User-Agent", c.s.userAgent())
106949	var body io.Reader = nil
106950	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
106951	if err != nil {
106952		return nil, err
106953	}
106954	reqHeaders.Set("Content-Type", "application/json")
106955	c.urlParams_.Set("alt", alt)
106956	c.urlParams_.Set("prettyPrint", "false")
106957	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/networkEndpointGroups/{resource}/testIamPermissions")
106958	urls += "?" + c.urlParams_.Encode()
106959	req, err := http.NewRequest("POST", urls, body)
106960	if err != nil {
106961		return nil, err
106962	}
106963	req.Header = reqHeaders
106964	googleapi.Expand(req.URL, map[string]string{
106965		"project":  c.project,
106966		"zone":     c.zone,
106967		"resource": c.resource,
106968	})
106969	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106970}
106971
106972// Do executes the "compute.networkEndpointGroups.testIamPermissions" call.
106973// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
106974// non-2xx status code is an error. Response headers are in either
106975// *TestPermissionsResponse.ServerResponse.Header or (if a response was
106976// returned at all) in error.(*googleapi.Error).Header. Use
106977// googleapi.IsNotModified to check whether the returned error was
106978// because http.StatusNotModified was returned.
106979func (c *NetworkEndpointGroupsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
106980	gensupport.SetOptions(c.urlParams_, opts...)
106981	res, err := c.doRequest("json")
106982	if res != nil && res.StatusCode == http.StatusNotModified {
106983		if res.Body != nil {
106984			res.Body.Close()
106985		}
106986		return nil, &googleapi.Error{
106987			Code:   res.StatusCode,
106988			Header: res.Header,
106989		}
106990	}
106991	if err != nil {
106992		return nil, err
106993	}
106994	defer googleapi.CloseBody(res)
106995	if err := googleapi.CheckResponse(res); err != nil {
106996		return nil, err
106997	}
106998	ret := &TestPermissionsResponse{
106999		ServerResponse: googleapi.ServerResponse{
107000			Header:         res.Header,
107001			HTTPStatusCode: res.StatusCode,
107002		},
107003	}
107004	target := &ret
107005	if err := gensupport.DecodeResponse(target, res); err != nil {
107006		return nil, err
107007	}
107008	return ret, nil
107009	// {
107010	//   "description": "Returns permissions that a caller has on the specified resource.",
107011	//   "httpMethod": "POST",
107012	//   "id": "compute.networkEndpointGroups.testIamPermissions",
107013	//   "parameterOrder": [
107014	//     "project",
107015	//     "zone",
107016	//     "resource"
107017	//   ],
107018	//   "parameters": {
107019	//     "project": {
107020	//       "description": "Project ID for this request.",
107021	//       "location": "path",
107022	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107023	//       "required": true,
107024	//       "type": "string"
107025	//     },
107026	//     "resource": {
107027	//       "description": "Name or id of the resource for this request.",
107028	//       "location": "path",
107029	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
107030	//       "required": true,
107031	//       "type": "string"
107032	//     },
107033	//     "zone": {
107034	//       "description": "The name of the zone for this request.",
107035	//       "location": "path",
107036	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
107037	//       "required": true,
107038	//       "type": "string"
107039	//     }
107040	//   },
107041	//   "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{resource}/testIamPermissions",
107042	//   "request": {
107043	//     "$ref": "TestPermissionsRequest"
107044	//   },
107045	//   "response": {
107046	//     "$ref": "TestPermissionsResponse"
107047	//   },
107048	//   "scopes": [
107049	//     "https://www.googleapis.com/auth/cloud-platform",
107050	//     "https://www.googleapis.com/auth/compute",
107051	//     "https://www.googleapis.com/auth/compute.readonly"
107052	//   ]
107053	// }
107054
107055}
107056
107057// method id "compute.networks.addPeering":
107058
107059type NetworksAddPeeringCall struct {
107060	s                         *Service
107061	project                   string
107062	network                   string
107063	networksaddpeeringrequest *NetworksAddPeeringRequest
107064	urlParams_                gensupport.URLParams
107065	ctx_                      context.Context
107066	header_                   http.Header
107067}
107068
107069// AddPeering: Adds a peering to the specified network.
107070func (r *NetworksService) AddPeering(project string, network string, networksaddpeeringrequest *NetworksAddPeeringRequest) *NetworksAddPeeringCall {
107071	c := &NetworksAddPeeringCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107072	c.project = project
107073	c.network = network
107074	c.networksaddpeeringrequest = networksaddpeeringrequest
107075	return c
107076}
107077
107078// RequestId sets the optional parameter "requestId": An optional
107079// request ID to identify requests. Specify a unique request ID so that
107080// if you must retry your request, the server will know to ignore the
107081// request if it has already been completed.
107082//
107083// For example, consider a situation where you make an initial request
107084// and the request times out. If you make the request again with the
107085// same request ID, the server can check if original operation with the
107086// same request ID was received, and if so, will ignore the second
107087// request. This prevents clients from accidentally creating duplicate
107088// commitments.
107089//
107090// The request ID must be a valid UUID with the exception that zero UUID
107091// is not supported (00000000-0000-0000-0000-000000000000).
107092func (c *NetworksAddPeeringCall) RequestId(requestId string) *NetworksAddPeeringCall {
107093	c.urlParams_.Set("requestId", requestId)
107094	return c
107095}
107096
107097// Fields allows partial responses to be retrieved. See
107098// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107099// for more information.
107100func (c *NetworksAddPeeringCall) Fields(s ...googleapi.Field) *NetworksAddPeeringCall {
107101	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107102	return c
107103}
107104
107105// Context sets the context to be used in this call's Do method. Any
107106// pending HTTP request will be aborted if the provided context is
107107// canceled.
107108func (c *NetworksAddPeeringCall) Context(ctx context.Context) *NetworksAddPeeringCall {
107109	c.ctx_ = ctx
107110	return c
107111}
107112
107113// Header returns an http.Header that can be modified by the caller to
107114// add HTTP headers to the request.
107115func (c *NetworksAddPeeringCall) Header() http.Header {
107116	if c.header_ == nil {
107117		c.header_ = make(http.Header)
107118	}
107119	return c.header_
107120}
107121
107122func (c *NetworksAddPeeringCall) doRequest(alt string) (*http.Response, error) {
107123	reqHeaders := make(http.Header)
107124	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
107125	for k, v := range c.header_ {
107126		reqHeaders[k] = v
107127	}
107128	reqHeaders.Set("User-Agent", c.s.userAgent())
107129	var body io.Reader = nil
107130	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networksaddpeeringrequest)
107131	if err != nil {
107132		return nil, err
107133	}
107134	reqHeaders.Set("Content-Type", "application/json")
107135	c.urlParams_.Set("alt", alt)
107136	c.urlParams_.Set("prettyPrint", "false")
107137	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}/addPeering")
107138	urls += "?" + c.urlParams_.Encode()
107139	req, err := http.NewRequest("POST", urls, body)
107140	if err != nil {
107141		return nil, err
107142	}
107143	req.Header = reqHeaders
107144	googleapi.Expand(req.URL, map[string]string{
107145		"project": c.project,
107146		"network": c.network,
107147	})
107148	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107149}
107150
107151// Do executes the "compute.networks.addPeering" call.
107152// Exactly one of *Operation or error will be non-nil. Any non-2xx
107153// status code is an error. Response headers are in either
107154// *Operation.ServerResponse.Header or (if a response was returned at
107155// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
107156// to check whether the returned error was because
107157// http.StatusNotModified was returned.
107158func (c *NetworksAddPeeringCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
107159	gensupport.SetOptions(c.urlParams_, opts...)
107160	res, err := c.doRequest("json")
107161	if res != nil && res.StatusCode == http.StatusNotModified {
107162		if res.Body != nil {
107163			res.Body.Close()
107164		}
107165		return nil, &googleapi.Error{
107166			Code:   res.StatusCode,
107167			Header: res.Header,
107168		}
107169	}
107170	if err != nil {
107171		return nil, err
107172	}
107173	defer googleapi.CloseBody(res)
107174	if err := googleapi.CheckResponse(res); err != nil {
107175		return nil, err
107176	}
107177	ret := &Operation{
107178		ServerResponse: googleapi.ServerResponse{
107179			Header:         res.Header,
107180			HTTPStatusCode: res.StatusCode,
107181		},
107182	}
107183	target := &ret
107184	if err := gensupport.DecodeResponse(target, res); err != nil {
107185		return nil, err
107186	}
107187	return ret, nil
107188	// {
107189	//   "description": "Adds a peering to the specified network.",
107190	//   "httpMethod": "POST",
107191	//   "id": "compute.networks.addPeering",
107192	//   "parameterOrder": [
107193	//     "project",
107194	//     "network"
107195	//   ],
107196	//   "parameters": {
107197	//     "network": {
107198	//       "description": "Name of the network resource to add peering to.",
107199	//       "location": "path",
107200	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
107201	//       "required": true,
107202	//       "type": "string"
107203	//     },
107204	//     "project": {
107205	//       "description": "Project ID for this request.",
107206	//       "location": "path",
107207	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107208	//       "required": true,
107209	//       "type": "string"
107210	//     },
107211	//     "requestId": {
107212	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
107213	//       "location": "query",
107214	//       "type": "string"
107215	//     }
107216	//   },
107217	//   "path": "projects/{project}/global/networks/{network}/addPeering",
107218	//   "request": {
107219	//     "$ref": "NetworksAddPeeringRequest"
107220	//   },
107221	//   "response": {
107222	//     "$ref": "Operation"
107223	//   },
107224	//   "scopes": [
107225	//     "https://www.googleapis.com/auth/cloud-platform",
107226	//     "https://www.googleapis.com/auth/compute"
107227	//   ]
107228	// }
107229
107230}
107231
107232// method id "compute.networks.delete":
107233
107234type NetworksDeleteCall struct {
107235	s          *Service
107236	project    string
107237	network    string
107238	urlParams_ gensupport.URLParams
107239	ctx_       context.Context
107240	header_    http.Header
107241}
107242
107243// Delete: Deletes the specified network.
107244// For details, see https://cloud.google.com/compute/docs/reference/latest/networks/delete
107245func (r *NetworksService) Delete(project string, network string) *NetworksDeleteCall {
107246	c := &NetworksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107247	c.project = project
107248	c.network = network
107249	return c
107250}
107251
107252// RequestId sets the optional parameter "requestId": An optional
107253// request ID to identify requests. Specify a unique request ID so that
107254// if you must retry your request, the server will know to ignore the
107255// request if it has already been completed.
107256//
107257// For example, consider a situation where you make an initial request
107258// and the request times out. If you make the request again with the
107259// same request ID, the server can check if original operation with the
107260// same request ID was received, and if so, will ignore the second
107261// request. This prevents clients from accidentally creating duplicate
107262// commitments.
107263//
107264// The request ID must be a valid UUID with the exception that zero UUID
107265// is not supported (00000000-0000-0000-0000-000000000000).
107266func (c *NetworksDeleteCall) RequestId(requestId string) *NetworksDeleteCall {
107267	c.urlParams_.Set("requestId", requestId)
107268	return c
107269}
107270
107271// Fields allows partial responses to be retrieved. See
107272// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107273// for more information.
107274func (c *NetworksDeleteCall) Fields(s ...googleapi.Field) *NetworksDeleteCall {
107275	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107276	return c
107277}
107278
107279// Context sets the context to be used in this call's Do method. Any
107280// pending HTTP request will be aborted if the provided context is
107281// canceled.
107282func (c *NetworksDeleteCall) Context(ctx context.Context) *NetworksDeleteCall {
107283	c.ctx_ = ctx
107284	return c
107285}
107286
107287// Header returns an http.Header that can be modified by the caller to
107288// add HTTP headers to the request.
107289func (c *NetworksDeleteCall) Header() http.Header {
107290	if c.header_ == nil {
107291		c.header_ = make(http.Header)
107292	}
107293	return c.header_
107294}
107295
107296func (c *NetworksDeleteCall) doRequest(alt string) (*http.Response, error) {
107297	reqHeaders := make(http.Header)
107298	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
107299	for k, v := range c.header_ {
107300		reqHeaders[k] = v
107301	}
107302	reqHeaders.Set("User-Agent", c.s.userAgent())
107303	var body io.Reader = nil
107304	c.urlParams_.Set("alt", alt)
107305	c.urlParams_.Set("prettyPrint", "false")
107306	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}")
107307	urls += "?" + c.urlParams_.Encode()
107308	req, err := http.NewRequest("DELETE", urls, body)
107309	if err != nil {
107310		return nil, err
107311	}
107312	req.Header = reqHeaders
107313	googleapi.Expand(req.URL, map[string]string{
107314		"project": c.project,
107315		"network": c.network,
107316	})
107317	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107318}
107319
107320// Do executes the "compute.networks.delete" call.
107321// Exactly one of *Operation or error will be non-nil. Any non-2xx
107322// status code is an error. Response headers are in either
107323// *Operation.ServerResponse.Header or (if a response was returned at
107324// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
107325// to check whether the returned error was because
107326// http.StatusNotModified was returned.
107327func (c *NetworksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
107328	gensupport.SetOptions(c.urlParams_, opts...)
107329	res, err := c.doRequest("json")
107330	if res != nil && res.StatusCode == http.StatusNotModified {
107331		if res.Body != nil {
107332			res.Body.Close()
107333		}
107334		return nil, &googleapi.Error{
107335			Code:   res.StatusCode,
107336			Header: res.Header,
107337		}
107338	}
107339	if err != nil {
107340		return nil, err
107341	}
107342	defer googleapi.CloseBody(res)
107343	if err := googleapi.CheckResponse(res); err != nil {
107344		return nil, err
107345	}
107346	ret := &Operation{
107347		ServerResponse: googleapi.ServerResponse{
107348			Header:         res.Header,
107349			HTTPStatusCode: res.StatusCode,
107350		},
107351	}
107352	target := &ret
107353	if err := gensupport.DecodeResponse(target, res); err != nil {
107354		return nil, err
107355	}
107356	return ret, nil
107357	// {
107358	//   "description": "Deletes the specified network.",
107359	//   "httpMethod": "DELETE",
107360	//   "id": "compute.networks.delete",
107361	//   "parameterOrder": [
107362	//     "project",
107363	//     "network"
107364	//   ],
107365	//   "parameters": {
107366	//     "network": {
107367	//       "description": "Name of the network to delete.",
107368	//       "location": "path",
107369	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
107370	//       "required": true,
107371	//       "type": "string"
107372	//     },
107373	//     "project": {
107374	//       "description": "Project ID for this request.",
107375	//       "location": "path",
107376	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107377	//       "required": true,
107378	//       "type": "string"
107379	//     },
107380	//     "requestId": {
107381	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
107382	//       "location": "query",
107383	//       "type": "string"
107384	//     }
107385	//   },
107386	//   "path": "projects/{project}/global/networks/{network}",
107387	//   "response": {
107388	//     "$ref": "Operation"
107389	//   },
107390	//   "scopes": [
107391	//     "https://www.googleapis.com/auth/cloud-platform",
107392	//     "https://www.googleapis.com/auth/compute"
107393	//   ]
107394	// }
107395
107396}
107397
107398// method id "compute.networks.get":
107399
107400type NetworksGetCall struct {
107401	s            *Service
107402	project      string
107403	network      string
107404	urlParams_   gensupport.URLParams
107405	ifNoneMatch_ string
107406	ctx_         context.Context
107407	header_      http.Header
107408}
107409
107410// Get: Returns the specified network. Gets a list of available networks
107411// by making a list() request.
107412// For details, see https://cloud.google.com/compute/docs/reference/latest/networks/get
107413func (r *NetworksService) Get(project string, network string) *NetworksGetCall {
107414	c := &NetworksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107415	c.project = project
107416	c.network = network
107417	return c
107418}
107419
107420// Fields allows partial responses to be retrieved. See
107421// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107422// for more information.
107423func (c *NetworksGetCall) Fields(s ...googleapi.Field) *NetworksGetCall {
107424	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107425	return c
107426}
107427
107428// IfNoneMatch sets the optional parameter which makes the operation
107429// fail if the object's ETag matches the given value. This is useful for
107430// getting updates only after the object has changed since the last
107431// request. Use googleapi.IsNotModified to check whether the response
107432// error from Do is the result of In-None-Match.
107433func (c *NetworksGetCall) IfNoneMatch(entityTag string) *NetworksGetCall {
107434	c.ifNoneMatch_ = entityTag
107435	return c
107436}
107437
107438// Context sets the context to be used in this call's Do method. Any
107439// pending HTTP request will be aborted if the provided context is
107440// canceled.
107441func (c *NetworksGetCall) Context(ctx context.Context) *NetworksGetCall {
107442	c.ctx_ = ctx
107443	return c
107444}
107445
107446// Header returns an http.Header that can be modified by the caller to
107447// add HTTP headers to the request.
107448func (c *NetworksGetCall) Header() http.Header {
107449	if c.header_ == nil {
107450		c.header_ = make(http.Header)
107451	}
107452	return c.header_
107453}
107454
107455func (c *NetworksGetCall) doRequest(alt string) (*http.Response, error) {
107456	reqHeaders := make(http.Header)
107457	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
107458	for k, v := range c.header_ {
107459		reqHeaders[k] = v
107460	}
107461	reqHeaders.Set("User-Agent", c.s.userAgent())
107462	if c.ifNoneMatch_ != "" {
107463		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
107464	}
107465	var body io.Reader = nil
107466	c.urlParams_.Set("alt", alt)
107467	c.urlParams_.Set("prettyPrint", "false")
107468	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}")
107469	urls += "?" + c.urlParams_.Encode()
107470	req, err := http.NewRequest("GET", urls, body)
107471	if err != nil {
107472		return nil, err
107473	}
107474	req.Header = reqHeaders
107475	googleapi.Expand(req.URL, map[string]string{
107476		"project": c.project,
107477		"network": c.network,
107478	})
107479	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107480}
107481
107482// Do executes the "compute.networks.get" call.
107483// Exactly one of *Network or error will be non-nil. Any non-2xx status
107484// code is an error. Response headers are in either
107485// *Network.ServerResponse.Header or (if a response was returned at all)
107486// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
107487// check whether the returned error was because http.StatusNotModified
107488// was returned.
107489func (c *NetworksGetCall) Do(opts ...googleapi.CallOption) (*Network, error) {
107490	gensupport.SetOptions(c.urlParams_, opts...)
107491	res, err := c.doRequest("json")
107492	if res != nil && res.StatusCode == http.StatusNotModified {
107493		if res.Body != nil {
107494			res.Body.Close()
107495		}
107496		return nil, &googleapi.Error{
107497			Code:   res.StatusCode,
107498			Header: res.Header,
107499		}
107500	}
107501	if err != nil {
107502		return nil, err
107503	}
107504	defer googleapi.CloseBody(res)
107505	if err := googleapi.CheckResponse(res); err != nil {
107506		return nil, err
107507	}
107508	ret := &Network{
107509		ServerResponse: googleapi.ServerResponse{
107510			Header:         res.Header,
107511			HTTPStatusCode: res.StatusCode,
107512		},
107513	}
107514	target := &ret
107515	if err := gensupport.DecodeResponse(target, res); err != nil {
107516		return nil, err
107517	}
107518	return ret, nil
107519	// {
107520	//   "description": "Returns the specified network. Gets a list of available networks by making a list() request.",
107521	//   "httpMethod": "GET",
107522	//   "id": "compute.networks.get",
107523	//   "parameterOrder": [
107524	//     "project",
107525	//     "network"
107526	//   ],
107527	//   "parameters": {
107528	//     "network": {
107529	//       "description": "Name of the network to return.",
107530	//       "location": "path",
107531	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
107532	//       "required": true,
107533	//       "type": "string"
107534	//     },
107535	//     "project": {
107536	//       "description": "Project ID for this request.",
107537	//       "location": "path",
107538	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107539	//       "required": true,
107540	//       "type": "string"
107541	//     }
107542	//   },
107543	//   "path": "projects/{project}/global/networks/{network}",
107544	//   "response": {
107545	//     "$ref": "Network"
107546	//   },
107547	//   "scopes": [
107548	//     "https://www.googleapis.com/auth/cloud-platform",
107549	//     "https://www.googleapis.com/auth/compute",
107550	//     "https://www.googleapis.com/auth/compute.readonly"
107551	//   ]
107552	// }
107553
107554}
107555
107556// method id "compute.networks.getEffectiveFirewalls":
107557
107558type NetworksGetEffectiveFirewallsCall struct {
107559	s            *Service
107560	project      string
107561	network      string
107562	urlParams_   gensupport.URLParams
107563	ifNoneMatch_ string
107564	ctx_         context.Context
107565	header_      http.Header
107566}
107567
107568// GetEffectiveFirewalls: Returns the effective firewalls on a given
107569// network.
107570func (r *NetworksService) GetEffectiveFirewalls(project string, network string) *NetworksGetEffectiveFirewallsCall {
107571	c := &NetworksGetEffectiveFirewallsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107572	c.project = project
107573	c.network = network
107574	return c
107575}
107576
107577// Fields allows partial responses to be retrieved. See
107578// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107579// for more information.
107580func (c *NetworksGetEffectiveFirewallsCall) Fields(s ...googleapi.Field) *NetworksGetEffectiveFirewallsCall {
107581	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107582	return c
107583}
107584
107585// IfNoneMatch sets the optional parameter which makes the operation
107586// fail if the object's ETag matches the given value. This is useful for
107587// getting updates only after the object has changed since the last
107588// request. Use googleapi.IsNotModified to check whether the response
107589// error from Do is the result of In-None-Match.
107590func (c *NetworksGetEffectiveFirewallsCall) IfNoneMatch(entityTag string) *NetworksGetEffectiveFirewallsCall {
107591	c.ifNoneMatch_ = entityTag
107592	return c
107593}
107594
107595// Context sets the context to be used in this call's Do method. Any
107596// pending HTTP request will be aborted if the provided context is
107597// canceled.
107598func (c *NetworksGetEffectiveFirewallsCall) Context(ctx context.Context) *NetworksGetEffectiveFirewallsCall {
107599	c.ctx_ = ctx
107600	return c
107601}
107602
107603// Header returns an http.Header that can be modified by the caller to
107604// add HTTP headers to the request.
107605func (c *NetworksGetEffectiveFirewallsCall) Header() http.Header {
107606	if c.header_ == nil {
107607		c.header_ = make(http.Header)
107608	}
107609	return c.header_
107610}
107611
107612func (c *NetworksGetEffectiveFirewallsCall) doRequest(alt string) (*http.Response, error) {
107613	reqHeaders := make(http.Header)
107614	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
107615	for k, v := range c.header_ {
107616		reqHeaders[k] = v
107617	}
107618	reqHeaders.Set("User-Agent", c.s.userAgent())
107619	if c.ifNoneMatch_ != "" {
107620		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
107621	}
107622	var body io.Reader = nil
107623	c.urlParams_.Set("alt", alt)
107624	c.urlParams_.Set("prettyPrint", "false")
107625	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}/getEffectiveFirewalls")
107626	urls += "?" + c.urlParams_.Encode()
107627	req, err := http.NewRequest("GET", urls, body)
107628	if err != nil {
107629		return nil, err
107630	}
107631	req.Header = reqHeaders
107632	googleapi.Expand(req.URL, map[string]string{
107633		"project": c.project,
107634		"network": c.network,
107635	})
107636	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107637}
107638
107639// Do executes the "compute.networks.getEffectiveFirewalls" call.
107640// Exactly one of *NetworksGetEffectiveFirewallsResponse or error will
107641// be non-nil. Any non-2xx status code is an error. Response headers are
107642// in either
107643// *NetworksGetEffectiveFirewallsResponse.ServerResponse.Header or (if a
107644// response was returned at all) in error.(*googleapi.Error).Header. Use
107645// googleapi.IsNotModified to check whether the returned error was
107646// because http.StatusNotModified was returned.
107647func (c *NetworksGetEffectiveFirewallsCall) Do(opts ...googleapi.CallOption) (*NetworksGetEffectiveFirewallsResponse, error) {
107648	gensupport.SetOptions(c.urlParams_, opts...)
107649	res, err := c.doRequest("json")
107650	if res != nil && res.StatusCode == http.StatusNotModified {
107651		if res.Body != nil {
107652			res.Body.Close()
107653		}
107654		return nil, &googleapi.Error{
107655			Code:   res.StatusCode,
107656			Header: res.Header,
107657		}
107658	}
107659	if err != nil {
107660		return nil, err
107661	}
107662	defer googleapi.CloseBody(res)
107663	if err := googleapi.CheckResponse(res); err != nil {
107664		return nil, err
107665	}
107666	ret := &NetworksGetEffectiveFirewallsResponse{
107667		ServerResponse: googleapi.ServerResponse{
107668			Header:         res.Header,
107669			HTTPStatusCode: res.StatusCode,
107670		},
107671	}
107672	target := &ret
107673	if err := gensupport.DecodeResponse(target, res); err != nil {
107674		return nil, err
107675	}
107676	return ret, nil
107677	// {
107678	//   "description": "Returns the effective firewalls on a given network.",
107679	//   "httpMethod": "GET",
107680	//   "id": "compute.networks.getEffectiveFirewalls",
107681	//   "parameterOrder": [
107682	//     "project",
107683	//     "network"
107684	//   ],
107685	//   "parameters": {
107686	//     "network": {
107687	//       "description": "Name of the network for this request.",
107688	//       "location": "path",
107689	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
107690	//       "required": true,
107691	//       "type": "string"
107692	//     },
107693	//     "project": {
107694	//       "description": "Project ID for this request.",
107695	//       "location": "path",
107696	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107697	//       "required": true,
107698	//       "type": "string"
107699	//     }
107700	//   },
107701	//   "path": "projects/{project}/global/networks/{network}/getEffectiveFirewalls",
107702	//   "response": {
107703	//     "$ref": "NetworksGetEffectiveFirewallsResponse"
107704	//   },
107705	//   "scopes": [
107706	//     "https://www.googleapis.com/auth/cloud-platform",
107707	//     "https://www.googleapis.com/auth/compute",
107708	//     "https://www.googleapis.com/auth/compute.readonly"
107709	//   ]
107710	// }
107711
107712}
107713
107714// method id "compute.networks.insert":
107715
107716type NetworksInsertCall struct {
107717	s          *Service
107718	project    string
107719	network    *Network
107720	urlParams_ gensupport.URLParams
107721	ctx_       context.Context
107722	header_    http.Header
107723}
107724
107725// Insert: Creates a network in the specified project using the data
107726// included in the request.
107727// For details, see https://cloud.google.com/compute/docs/reference/latest/networks/insert
107728func (r *NetworksService) Insert(project string, network *Network) *NetworksInsertCall {
107729	c := &NetworksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107730	c.project = project
107731	c.network = network
107732	return c
107733}
107734
107735// RequestId sets the optional parameter "requestId": An optional
107736// request ID to identify requests. Specify a unique request ID so that
107737// if you must retry your request, the server will know to ignore the
107738// request if it has already been completed.
107739//
107740// For example, consider a situation where you make an initial request
107741// and the request times out. If you make the request again with the
107742// same request ID, the server can check if original operation with the
107743// same request ID was received, and if so, will ignore the second
107744// request. This prevents clients from accidentally creating duplicate
107745// commitments.
107746//
107747// The request ID must be a valid UUID with the exception that zero UUID
107748// is not supported (00000000-0000-0000-0000-000000000000).
107749func (c *NetworksInsertCall) RequestId(requestId string) *NetworksInsertCall {
107750	c.urlParams_.Set("requestId", requestId)
107751	return c
107752}
107753
107754// Fields allows partial responses to be retrieved. See
107755// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107756// for more information.
107757func (c *NetworksInsertCall) Fields(s ...googleapi.Field) *NetworksInsertCall {
107758	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107759	return c
107760}
107761
107762// Context sets the context to be used in this call's Do method. Any
107763// pending HTTP request will be aborted if the provided context is
107764// canceled.
107765func (c *NetworksInsertCall) Context(ctx context.Context) *NetworksInsertCall {
107766	c.ctx_ = ctx
107767	return c
107768}
107769
107770// Header returns an http.Header that can be modified by the caller to
107771// add HTTP headers to the request.
107772func (c *NetworksInsertCall) Header() http.Header {
107773	if c.header_ == nil {
107774		c.header_ = make(http.Header)
107775	}
107776	return c.header_
107777}
107778
107779func (c *NetworksInsertCall) doRequest(alt string) (*http.Response, error) {
107780	reqHeaders := make(http.Header)
107781	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
107782	for k, v := range c.header_ {
107783		reqHeaders[k] = v
107784	}
107785	reqHeaders.Set("User-Agent", c.s.userAgent())
107786	var body io.Reader = nil
107787	body, err := googleapi.WithoutDataWrapper.JSONReader(c.network)
107788	if err != nil {
107789		return nil, err
107790	}
107791	reqHeaders.Set("Content-Type", "application/json")
107792	c.urlParams_.Set("alt", alt)
107793	c.urlParams_.Set("prettyPrint", "false")
107794	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks")
107795	urls += "?" + c.urlParams_.Encode()
107796	req, err := http.NewRequest("POST", urls, body)
107797	if err != nil {
107798		return nil, err
107799	}
107800	req.Header = reqHeaders
107801	googleapi.Expand(req.URL, map[string]string{
107802		"project": c.project,
107803	})
107804	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107805}
107806
107807// Do executes the "compute.networks.insert" call.
107808// Exactly one of *Operation or error will be non-nil. Any non-2xx
107809// status code is an error. Response headers are in either
107810// *Operation.ServerResponse.Header or (if a response was returned at
107811// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
107812// to check whether the returned error was because
107813// http.StatusNotModified was returned.
107814func (c *NetworksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
107815	gensupport.SetOptions(c.urlParams_, opts...)
107816	res, err := c.doRequest("json")
107817	if res != nil && res.StatusCode == http.StatusNotModified {
107818		if res.Body != nil {
107819			res.Body.Close()
107820		}
107821		return nil, &googleapi.Error{
107822			Code:   res.StatusCode,
107823			Header: res.Header,
107824		}
107825	}
107826	if err != nil {
107827		return nil, err
107828	}
107829	defer googleapi.CloseBody(res)
107830	if err := googleapi.CheckResponse(res); err != nil {
107831		return nil, err
107832	}
107833	ret := &Operation{
107834		ServerResponse: googleapi.ServerResponse{
107835			Header:         res.Header,
107836			HTTPStatusCode: res.StatusCode,
107837		},
107838	}
107839	target := &ret
107840	if err := gensupport.DecodeResponse(target, res); err != nil {
107841		return nil, err
107842	}
107843	return ret, nil
107844	// {
107845	//   "description": "Creates a network in the specified project using the data included in the request.",
107846	//   "httpMethod": "POST",
107847	//   "id": "compute.networks.insert",
107848	//   "parameterOrder": [
107849	//     "project"
107850	//   ],
107851	//   "parameters": {
107852	//     "project": {
107853	//       "description": "Project ID for this request.",
107854	//       "location": "path",
107855	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107856	//       "required": true,
107857	//       "type": "string"
107858	//     },
107859	//     "requestId": {
107860	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
107861	//       "location": "query",
107862	//       "type": "string"
107863	//     }
107864	//   },
107865	//   "path": "projects/{project}/global/networks",
107866	//   "request": {
107867	//     "$ref": "Network"
107868	//   },
107869	//   "response": {
107870	//     "$ref": "Operation"
107871	//   },
107872	//   "scopes": [
107873	//     "https://www.googleapis.com/auth/cloud-platform",
107874	//     "https://www.googleapis.com/auth/compute"
107875	//   ]
107876	// }
107877
107878}
107879
107880// method id "compute.networks.list":
107881
107882type NetworksListCall struct {
107883	s            *Service
107884	project      string
107885	urlParams_   gensupport.URLParams
107886	ifNoneMatch_ string
107887	ctx_         context.Context
107888	header_      http.Header
107889}
107890
107891// List: Retrieves the list of networks available to the specified
107892// project.
107893// For details, see https://cloud.google.com/compute/docs/reference/latest/networks/list
107894func (r *NetworksService) List(project string) *NetworksListCall {
107895	c := &NetworksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107896	c.project = project
107897	return c
107898}
107899
107900// Filter sets the optional parameter "filter": A filter expression that
107901// filters resources listed in the response. The expression must specify
107902// the field name, a comparison operator, and the value that you want to
107903// use for filtering. The value must be a string, a number, or a
107904// boolean. The comparison operator must be either `=`, `!=`, `>`, or
107905// `<`.
107906//
107907// For example, if you are filtering Compute Engine instances, you can
107908// exclude instances named `example-instance` by specifying `name !=
107909// example-instance`.
107910//
107911// You can also filter nested fields. For example, you could specify
107912// `scheduling.automaticRestart = false` to include instances only if
107913// they are not scheduled for automatic restarts. You can use filtering
107914// on nested fields to filter based on resource labels.
107915//
107916// To filter on multiple expressions, provide each separate expression
107917// within parentheses. For example: ``` (scheduling.automaticRestart =
107918// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
107919// is an `AND` expression. However, you can include `AND` and `OR`
107920// expressions explicitly. For example: ``` (cpuPlatform = "Intel
107921// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
107922// (scheduling.automaticRestart = true) ```
107923func (c *NetworksListCall) Filter(filter string) *NetworksListCall {
107924	c.urlParams_.Set("filter", filter)
107925	return c
107926}
107927
107928// MaxResults sets the optional parameter "maxResults": The maximum
107929// number of results per page that should be returned. If the number of
107930// available results is larger than `maxResults`, Compute Engine returns
107931// a `nextPageToken` that can be used to get the next page of results in
107932// subsequent list requests. Acceptable values are `0` to `500`,
107933// inclusive. (Default: `500`)
107934func (c *NetworksListCall) MaxResults(maxResults int64) *NetworksListCall {
107935	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
107936	return c
107937}
107938
107939// OrderBy sets the optional parameter "orderBy": Sorts list results by
107940// a certain order. By default, results are returned in alphanumerical
107941// order based on the resource name.
107942//
107943// You can also sort results in descending order based on the creation
107944// timestamp using `orderBy="creationTimestamp desc". This sorts
107945// results based on the `creationTimestamp` field in reverse
107946// chronological order (newest result first). Use this to sort resources
107947// like operations so that the newest operation is returned
107948// first.
107949//
107950// Currently, only sorting by `name` or `creationTimestamp desc` is
107951// supported.
107952func (c *NetworksListCall) OrderBy(orderBy string) *NetworksListCall {
107953	c.urlParams_.Set("orderBy", orderBy)
107954	return c
107955}
107956
107957// PageToken sets the optional parameter "pageToken": Specifies a page
107958// token to use. Set `pageToken` to the `nextPageToken` returned by a
107959// previous list request to get the next page of results.
107960func (c *NetworksListCall) PageToken(pageToken string) *NetworksListCall {
107961	c.urlParams_.Set("pageToken", pageToken)
107962	return c
107963}
107964
107965// ReturnPartialSuccess sets the optional parameter
107966// "returnPartialSuccess": Opt-in for partial success behavior which
107967// provides partial results in case of failure. The default value is
107968// false.
107969func (c *NetworksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NetworksListCall {
107970	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
107971	return c
107972}
107973
107974// Fields allows partial responses to be retrieved. See
107975// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107976// for more information.
107977func (c *NetworksListCall) Fields(s ...googleapi.Field) *NetworksListCall {
107978	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107979	return c
107980}
107981
107982// IfNoneMatch sets the optional parameter which makes the operation
107983// fail if the object's ETag matches the given value. This is useful for
107984// getting updates only after the object has changed since the last
107985// request. Use googleapi.IsNotModified to check whether the response
107986// error from Do is the result of In-None-Match.
107987func (c *NetworksListCall) IfNoneMatch(entityTag string) *NetworksListCall {
107988	c.ifNoneMatch_ = entityTag
107989	return c
107990}
107991
107992// Context sets the context to be used in this call's Do method. Any
107993// pending HTTP request will be aborted if the provided context is
107994// canceled.
107995func (c *NetworksListCall) Context(ctx context.Context) *NetworksListCall {
107996	c.ctx_ = ctx
107997	return c
107998}
107999
108000// Header returns an http.Header that can be modified by the caller to
108001// add HTTP headers to the request.
108002func (c *NetworksListCall) Header() http.Header {
108003	if c.header_ == nil {
108004		c.header_ = make(http.Header)
108005	}
108006	return c.header_
108007}
108008
108009func (c *NetworksListCall) doRequest(alt string) (*http.Response, error) {
108010	reqHeaders := make(http.Header)
108011	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
108012	for k, v := range c.header_ {
108013		reqHeaders[k] = v
108014	}
108015	reqHeaders.Set("User-Agent", c.s.userAgent())
108016	if c.ifNoneMatch_ != "" {
108017		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
108018	}
108019	var body io.Reader = nil
108020	c.urlParams_.Set("alt", alt)
108021	c.urlParams_.Set("prettyPrint", "false")
108022	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks")
108023	urls += "?" + c.urlParams_.Encode()
108024	req, err := http.NewRequest("GET", urls, body)
108025	if err != nil {
108026		return nil, err
108027	}
108028	req.Header = reqHeaders
108029	googleapi.Expand(req.URL, map[string]string{
108030		"project": c.project,
108031	})
108032	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108033}
108034
108035// Do executes the "compute.networks.list" call.
108036// Exactly one of *NetworkList or error will be non-nil. Any non-2xx
108037// status code is an error. Response headers are in either
108038// *NetworkList.ServerResponse.Header or (if a response was returned at
108039// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
108040// to check whether the returned error was because
108041// http.StatusNotModified was returned.
108042func (c *NetworksListCall) Do(opts ...googleapi.CallOption) (*NetworkList, error) {
108043	gensupport.SetOptions(c.urlParams_, opts...)
108044	res, err := c.doRequest("json")
108045	if res != nil && res.StatusCode == http.StatusNotModified {
108046		if res.Body != nil {
108047			res.Body.Close()
108048		}
108049		return nil, &googleapi.Error{
108050			Code:   res.StatusCode,
108051			Header: res.Header,
108052		}
108053	}
108054	if err != nil {
108055		return nil, err
108056	}
108057	defer googleapi.CloseBody(res)
108058	if err := googleapi.CheckResponse(res); err != nil {
108059		return nil, err
108060	}
108061	ret := &NetworkList{
108062		ServerResponse: googleapi.ServerResponse{
108063			Header:         res.Header,
108064			HTTPStatusCode: res.StatusCode,
108065		},
108066	}
108067	target := &ret
108068	if err := gensupport.DecodeResponse(target, res); err != nil {
108069		return nil, err
108070	}
108071	return ret, nil
108072	// {
108073	//   "description": "Retrieves the list of networks available to the specified project.",
108074	//   "httpMethod": "GET",
108075	//   "id": "compute.networks.list",
108076	//   "parameterOrder": [
108077	//     "project"
108078	//   ],
108079	//   "parameters": {
108080	//     "filter": {
108081	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
108082	//       "location": "query",
108083	//       "type": "string"
108084	//     },
108085	//     "maxResults": {
108086	//       "default": "500",
108087	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
108088	//       "format": "uint32",
108089	//       "location": "query",
108090	//       "minimum": "0",
108091	//       "type": "integer"
108092	//     },
108093	//     "orderBy": {
108094	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
108095	//       "location": "query",
108096	//       "type": "string"
108097	//     },
108098	//     "pageToken": {
108099	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
108100	//       "location": "query",
108101	//       "type": "string"
108102	//     },
108103	//     "project": {
108104	//       "description": "Project ID for this request.",
108105	//       "location": "path",
108106	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108107	//       "required": true,
108108	//       "type": "string"
108109	//     },
108110	//     "returnPartialSuccess": {
108111	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
108112	//       "location": "query",
108113	//       "type": "boolean"
108114	//     }
108115	//   },
108116	//   "path": "projects/{project}/global/networks",
108117	//   "response": {
108118	//     "$ref": "NetworkList"
108119	//   },
108120	//   "scopes": [
108121	//     "https://www.googleapis.com/auth/cloud-platform",
108122	//     "https://www.googleapis.com/auth/compute",
108123	//     "https://www.googleapis.com/auth/compute.readonly"
108124	//   ]
108125	// }
108126
108127}
108128
108129// Pages invokes f for each page of results.
108130// A non-nil error returned from f will halt the iteration.
108131// The provided context supersedes any context provided to the Context method.
108132func (c *NetworksListCall) Pages(ctx context.Context, f func(*NetworkList) error) error {
108133	c.ctx_ = ctx
108134	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
108135	for {
108136		x, err := c.Do()
108137		if err != nil {
108138			return err
108139		}
108140		if err := f(x); err != nil {
108141			return err
108142		}
108143		if x.NextPageToken == "" {
108144			return nil
108145		}
108146		c.PageToken(x.NextPageToken)
108147	}
108148}
108149
108150// method id "compute.networks.listPeeringRoutes":
108151
108152type NetworksListPeeringRoutesCall struct {
108153	s            *Service
108154	project      string
108155	network      string
108156	urlParams_   gensupport.URLParams
108157	ifNoneMatch_ string
108158	ctx_         context.Context
108159	header_      http.Header
108160}
108161
108162// ListPeeringRoutes: Lists the peering routes exchanged over peering
108163// connection.
108164func (r *NetworksService) ListPeeringRoutes(project string, network string) *NetworksListPeeringRoutesCall {
108165	c := &NetworksListPeeringRoutesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108166	c.project = project
108167	c.network = network
108168	return c
108169}
108170
108171// Direction sets the optional parameter "direction": The direction of
108172// the exchanged routes.
108173//
108174// Possible values:
108175//   "INCOMING"
108176//   "OUTGOING"
108177func (c *NetworksListPeeringRoutesCall) Direction(direction string) *NetworksListPeeringRoutesCall {
108178	c.urlParams_.Set("direction", direction)
108179	return c
108180}
108181
108182// Filter sets the optional parameter "filter": A filter expression that
108183// filters resources listed in the response. The expression must specify
108184// the field name, a comparison operator, and the value that you want to
108185// use for filtering. The value must be a string, a number, or a
108186// boolean. The comparison operator must be either `=`, `!=`, `>`, or
108187// `<`.
108188//
108189// For example, if you are filtering Compute Engine instances, you can
108190// exclude instances named `example-instance` by specifying `name !=
108191// example-instance`.
108192//
108193// You can also filter nested fields. For example, you could specify
108194// `scheduling.automaticRestart = false` to include instances only if
108195// they are not scheduled for automatic restarts. You can use filtering
108196// on nested fields to filter based on resource labels.
108197//
108198// To filter on multiple expressions, provide each separate expression
108199// within parentheses. For example: ``` (scheduling.automaticRestart =
108200// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
108201// is an `AND` expression. However, you can include `AND` and `OR`
108202// expressions explicitly. For example: ``` (cpuPlatform = "Intel
108203// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
108204// (scheduling.automaticRestart = true) ```
108205func (c *NetworksListPeeringRoutesCall) Filter(filter string) *NetworksListPeeringRoutesCall {
108206	c.urlParams_.Set("filter", filter)
108207	return c
108208}
108209
108210// MaxResults sets the optional parameter "maxResults": The maximum
108211// number of results per page that should be returned. If the number of
108212// available results is larger than `maxResults`, Compute Engine returns
108213// a `nextPageToken` that can be used to get the next page of results in
108214// subsequent list requests. Acceptable values are `0` to `500`,
108215// inclusive. (Default: `500`)
108216func (c *NetworksListPeeringRoutesCall) MaxResults(maxResults int64) *NetworksListPeeringRoutesCall {
108217	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
108218	return c
108219}
108220
108221// OrderBy sets the optional parameter "orderBy": Sorts list results by
108222// a certain order. By default, results are returned in alphanumerical
108223// order based on the resource name.
108224//
108225// You can also sort results in descending order based on the creation
108226// timestamp using `orderBy="creationTimestamp desc". This sorts
108227// results based on the `creationTimestamp` field in reverse
108228// chronological order (newest result first). Use this to sort resources
108229// like operations so that the newest operation is returned
108230// first.
108231//
108232// Currently, only sorting by `name` or `creationTimestamp desc` is
108233// supported.
108234func (c *NetworksListPeeringRoutesCall) OrderBy(orderBy string) *NetworksListPeeringRoutesCall {
108235	c.urlParams_.Set("orderBy", orderBy)
108236	return c
108237}
108238
108239// PageToken sets the optional parameter "pageToken": Specifies a page
108240// token to use. Set `pageToken` to the `nextPageToken` returned by a
108241// previous list request to get the next page of results.
108242func (c *NetworksListPeeringRoutesCall) PageToken(pageToken string) *NetworksListPeeringRoutesCall {
108243	c.urlParams_.Set("pageToken", pageToken)
108244	return c
108245}
108246
108247// PeeringName sets the optional parameter "peeringName": The response
108248// will show routes exchanged over the given peering connection.
108249func (c *NetworksListPeeringRoutesCall) PeeringName(peeringName string) *NetworksListPeeringRoutesCall {
108250	c.urlParams_.Set("peeringName", peeringName)
108251	return c
108252}
108253
108254// Region sets the optional parameter "region": The region of the
108255// request. The response will include all subnet routes, static routes
108256// and dynamic routes in the region.
108257func (c *NetworksListPeeringRoutesCall) Region(region string) *NetworksListPeeringRoutesCall {
108258	c.urlParams_.Set("region", region)
108259	return c
108260}
108261
108262// ReturnPartialSuccess sets the optional parameter
108263// "returnPartialSuccess": Opt-in for partial success behavior which
108264// provides partial results in case of failure. The default value is
108265// false.
108266func (c *NetworksListPeeringRoutesCall) ReturnPartialSuccess(returnPartialSuccess bool) *NetworksListPeeringRoutesCall {
108267	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
108268	return c
108269}
108270
108271// Fields allows partial responses to be retrieved. See
108272// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108273// for more information.
108274func (c *NetworksListPeeringRoutesCall) Fields(s ...googleapi.Field) *NetworksListPeeringRoutesCall {
108275	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108276	return c
108277}
108278
108279// IfNoneMatch sets the optional parameter which makes the operation
108280// fail if the object's ETag matches the given value. This is useful for
108281// getting updates only after the object has changed since the last
108282// request. Use googleapi.IsNotModified to check whether the response
108283// error from Do is the result of In-None-Match.
108284func (c *NetworksListPeeringRoutesCall) IfNoneMatch(entityTag string) *NetworksListPeeringRoutesCall {
108285	c.ifNoneMatch_ = entityTag
108286	return c
108287}
108288
108289// Context sets the context to be used in this call's Do method. Any
108290// pending HTTP request will be aborted if the provided context is
108291// canceled.
108292func (c *NetworksListPeeringRoutesCall) Context(ctx context.Context) *NetworksListPeeringRoutesCall {
108293	c.ctx_ = ctx
108294	return c
108295}
108296
108297// Header returns an http.Header that can be modified by the caller to
108298// add HTTP headers to the request.
108299func (c *NetworksListPeeringRoutesCall) Header() http.Header {
108300	if c.header_ == nil {
108301		c.header_ = make(http.Header)
108302	}
108303	return c.header_
108304}
108305
108306func (c *NetworksListPeeringRoutesCall) doRequest(alt string) (*http.Response, error) {
108307	reqHeaders := make(http.Header)
108308	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
108309	for k, v := range c.header_ {
108310		reqHeaders[k] = v
108311	}
108312	reqHeaders.Set("User-Agent", c.s.userAgent())
108313	if c.ifNoneMatch_ != "" {
108314		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
108315	}
108316	var body io.Reader = nil
108317	c.urlParams_.Set("alt", alt)
108318	c.urlParams_.Set("prettyPrint", "false")
108319	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}/listPeeringRoutes")
108320	urls += "?" + c.urlParams_.Encode()
108321	req, err := http.NewRequest("GET", urls, body)
108322	if err != nil {
108323		return nil, err
108324	}
108325	req.Header = reqHeaders
108326	googleapi.Expand(req.URL, map[string]string{
108327		"project": c.project,
108328		"network": c.network,
108329	})
108330	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108331}
108332
108333// Do executes the "compute.networks.listPeeringRoutes" call.
108334// Exactly one of *ExchangedPeeringRoutesList or error will be non-nil.
108335// Any non-2xx status code is an error. Response headers are in either
108336// *ExchangedPeeringRoutesList.ServerResponse.Header or (if a response
108337// was returned at all) in error.(*googleapi.Error).Header. Use
108338// googleapi.IsNotModified to check whether the returned error was
108339// because http.StatusNotModified was returned.
108340func (c *NetworksListPeeringRoutesCall) Do(opts ...googleapi.CallOption) (*ExchangedPeeringRoutesList, error) {
108341	gensupport.SetOptions(c.urlParams_, opts...)
108342	res, err := c.doRequest("json")
108343	if res != nil && res.StatusCode == http.StatusNotModified {
108344		if res.Body != nil {
108345			res.Body.Close()
108346		}
108347		return nil, &googleapi.Error{
108348			Code:   res.StatusCode,
108349			Header: res.Header,
108350		}
108351	}
108352	if err != nil {
108353		return nil, err
108354	}
108355	defer googleapi.CloseBody(res)
108356	if err := googleapi.CheckResponse(res); err != nil {
108357		return nil, err
108358	}
108359	ret := &ExchangedPeeringRoutesList{
108360		ServerResponse: googleapi.ServerResponse{
108361			Header:         res.Header,
108362			HTTPStatusCode: res.StatusCode,
108363		},
108364	}
108365	target := &ret
108366	if err := gensupport.DecodeResponse(target, res); err != nil {
108367		return nil, err
108368	}
108369	return ret, nil
108370	// {
108371	//   "description": "Lists the peering routes exchanged over peering connection.",
108372	//   "httpMethod": "GET",
108373	//   "id": "compute.networks.listPeeringRoutes",
108374	//   "parameterOrder": [
108375	//     "project",
108376	//     "network"
108377	//   ],
108378	//   "parameters": {
108379	//     "direction": {
108380	//       "description": "The direction of the exchanged routes.",
108381	//       "enum": [
108382	//         "INCOMING",
108383	//         "OUTGOING"
108384	//       ],
108385	//       "enumDescriptions": [
108386	//         "",
108387	//         ""
108388	//       ],
108389	//       "location": "query",
108390	//       "type": "string"
108391	//     },
108392	//     "filter": {
108393	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
108394	//       "location": "query",
108395	//       "type": "string"
108396	//     },
108397	//     "maxResults": {
108398	//       "default": "500",
108399	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
108400	//       "format": "uint32",
108401	//       "location": "query",
108402	//       "minimum": "0",
108403	//       "type": "integer"
108404	//     },
108405	//     "network": {
108406	//       "description": "Name of the network for this request.",
108407	//       "location": "path",
108408	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
108409	//       "required": true,
108410	//       "type": "string"
108411	//     },
108412	//     "orderBy": {
108413	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
108414	//       "location": "query",
108415	//       "type": "string"
108416	//     },
108417	//     "pageToken": {
108418	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
108419	//       "location": "query",
108420	//       "type": "string"
108421	//     },
108422	//     "peeringName": {
108423	//       "description": "The response will show routes exchanged over the given peering connection.",
108424	//       "location": "query",
108425	//       "type": "string"
108426	//     },
108427	//     "project": {
108428	//       "description": "Project ID for this request.",
108429	//       "location": "path",
108430	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108431	//       "required": true,
108432	//       "type": "string"
108433	//     },
108434	//     "region": {
108435	//       "description": "The region of the request. The response will include all subnet routes, static routes and dynamic routes in the region.",
108436	//       "location": "query",
108437	//       "type": "string"
108438	//     },
108439	//     "returnPartialSuccess": {
108440	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
108441	//       "location": "query",
108442	//       "type": "boolean"
108443	//     }
108444	//   },
108445	//   "path": "projects/{project}/global/networks/{network}/listPeeringRoutes",
108446	//   "response": {
108447	//     "$ref": "ExchangedPeeringRoutesList"
108448	//   },
108449	//   "scopes": [
108450	//     "https://www.googleapis.com/auth/cloud-platform",
108451	//     "https://www.googleapis.com/auth/compute",
108452	//     "https://www.googleapis.com/auth/compute.readonly"
108453	//   ]
108454	// }
108455
108456}
108457
108458// Pages invokes f for each page of results.
108459// A non-nil error returned from f will halt the iteration.
108460// The provided context supersedes any context provided to the Context method.
108461func (c *NetworksListPeeringRoutesCall) Pages(ctx context.Context, f func(*ExchangedPeeringRoutesList) error) error {
108462	c.ctx_ = ctx
108463	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
108464	for {
108465		x, err := c.Do()
108466		if err != nil {
108467			return err
108468		}
108469		if err := f(x); err != nil {
108470			return err
108471		}
108472		if x.NextPageToken == "" {
108473			return nil
108474		}
108475		c.PageToken(x.NextPageToken)
108476	}
108477}
108478
108479// method id "compute.networks.patch":
108480
108481type NetworksPatchCall struct {
108482	s          *Service
108483	project    string
108484	network    string
108485	network2   *Network
108486	urlParams_ gensupport.URLParams
108487	ctx_       context.Context
108488	header_    http.Header
108489}
108490
108491// Patch: Patches the specified network with the data included in the
108492// request. Only the following fields can be modified:
108493// routingConfig.routingMode.
108494func (r *NetworksService) Patch(project string, network string, network2 *Network) *NetworksPatchCall {
108495	c := &NetworksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108496	c.project = project
108497	c.network = network
108498	c.network2 = network2
108499	return c
108500}
108501
108502// RequestId sets the optional parameter "requestId": An optional
108503// request ID to identify requests. Specify a unique request ID so that
108504// if you must retry your request, the server will know to ignore the
108505// request if it has already been completed.
108506//
108507// For example, consider a situation where you make an initial request
108508// and the request times out. If you make the request again with the
108509// same request ID, the server can check if original operation with the
108510// same request ID was received, and if so, will ignore the second
108511// request. This prevents clients from accidentally creating duplicate
108512// commitments.
108513//
108514// The request ID must be a valid UUID with the exception that zero UUID
108515// is not supported (00000000-0000-0000-0000-000000000000).
108516func (c *NetworksPatchCall) RequestId(requestId string) *NetworksPatchCall {
108517	c.urlParams_.Set("requestId", requestId)
108518	return c
108519}
108520
108521// Fields allows partial responses to be retrieved. See
108522// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108523// for more information.
108524func (c *NetworksPatchCall) Fields(s ...googleapi.Field) *NetworksPatchCall {
108525	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108526	return c
108527}
108528
108529// Context sets the context to be used in this call's Do method. Any
108530// pending HTTP request will be aborted if the provided context is
108531// canceled.
108532func (c *NetworksPatchCall) Context(ctx context.Context) *NetworksPatchCall {
108533	c.ctx_ = ctx
108534	return c
108535}
108536
108537// Header returns an http.Header that can be modified by the caller to
108538// add HTTP headers to the request.
108539func (c *NetworksPatchCall) Header() http.Header {
108540	if c.header_ == nil {
108541		c.header_ = make(http.Header)
108542	}
108543	return c.header_
108544}
108545
108546func (c *NetworksPatchCall) doRequest(alt string) (*http.Response, error) {
108547	reqHeaders := make(http.Header)
108548	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
108549	for k, v := range c.header_ {
108550		reqHeaders[k] = v
108551	}
108552	reqHeaders.Set("User-Agent", c.s.userAgent())
108553	var body io.Reader = nil
108554	body, err := googleapi.WithoutDataWrapper.JSONReader(c.network2)
108555	if err != nil {
108556		return nil, err
108557	}
108558	reqHeaders.Set("Content-Type", "application/json")
108559	c.urlParams_.Set("alt", alt)
108560	c.urlParams_.Set("prettyPrint", "false")
108561	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}")
108562	urls += "?" + c.urlParams_.Encode()
108563	req, err := http.NewRequest("PATCH", urls, body)
108564	if err != nil {
108565		return nil, err
108566	}
108567	req.Header = reqHeaders
108568	googleapi.Expand(req.URL, map[string]string{
108569		"project": c.project,
108570		"network": c.network,
108571	})
108572	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108573}
108574
108575// Do executes the "compute.networks.patch" call.
108576// Exactly one of *Operation or error will be non-nil. Any non-2xx
108577// status code is an error. Response headers are in either
108578// *Operation.ServerResponse.Header or (if a response was returned at
108579// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
108580// to check whether the returned error was because
108581// http.StatusNotModified was returned.
108582func (c *NetworksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
108583	gensupport.SetOptions(c.urlParams_, opts...)
108584	res, err := c.doRequest("json")
108585	if res != nil && res.StatusCode == http.StatusNotModified {
108586		if res.Body != nil {
108587			res.Body.Close()
108588		}
108589		return nil, &googleapi.Error{
108590			Code:   res.StatusCode,
108591			Header: res.Header,
108592		}
108593	}
108594	if err != nil {
108595		return nil, err
108596	}
108597	defer googleapi.CloseBody(res)
108598	if err := googleapi.CheckResponse(res); err != nil {
108599		return nil, err
108600	}
108601	ret := &Operation{
108602		ServerResponse: googleapi.ServerResponse{
108603			Header:         res.Header,
108604			HTTPStatusCode: res.StatusCode,
108605		},
108606	}
108607	target := &ret
108608	if err := gensupport.DecodeResponse(target, res); err != nil {
108609		return nil, err
108610	}
108611	return ret, nil
108612	// {
108613	//   "description": "Patches the specified network with the data included in the request. Only the following fields can be modified: routingConfig.routingMode.",
108614	//   "httpMethod": "PATCH",
108615	//   "id": "compute.networks.patch",
108616	//   "parameterOrder": [
108617	//     "project",
108618	//     "network"
108619	//   ],
108620	//   "parameters": {
108621	//     "network": {
108622	//       "description": "Name of the network to update.",
108623	//       "location": "path",
108624	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
108625	//       "required": true,
108626	//       "type": "string"
108627	//     },
108628	//     "project": {
108629	//       "description": "Project ID for this request.",
108630	//       "location": "path",
108631	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108632	//       "required": true,
108633	//       "type": "string"
108634	//     },
108635	//     "requestId": {
108636	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
108637	//       "location": "query",
108638	//       "type": "string"
108639	//     }
108640	//   },
108641	//   "path": "projects/{project}/global/networks/{network}",
108642	//   "request": {
108643	//     "$ref": "Network"
108644	//   },
108645	//   "response": {
108646	//     "$ref": "Operation"
108647	//   },
108648	//   "scopes": [
108649	//     "https://www.googleapis.com/auth/cloud-platform",
108650	//     "https://www.googleapis.com/auth/compute"
108651	//   ]
108652	// }
108653
108654}
108655
108656// method id "compute.networks.removePeering":
108657
108658type NetworksRemovePeeringCall struct {
108659	s                            *Service
108660	project                      string
108661	network                      string
108662	networksremovepeeringrequest *NetworksRemovePeeringRequest
108663	urlParams_                   gensupport.URLParams
108664	ctx_                         context.Context
108665	header_                      http.Header
108666}
108667
108668// RemovePeering: Removes a peering from the specified network.
108669func (r *NetworksService) RemovePeering(project string, network string, networksremovepeeringrequest *NetworksRemovePeeringRequest) *NetworksRemovePeeringCall {
108670	c := &NetworksRemovePeeringCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108671	c.project = project
108672	c.network = network
108673	c.networksremovepeeringrequest = networksremovepeeringrequest
108674	return c
108675}
108676
108677// RequestId sets the optional parameter "requestId": An optional
108678// request ID to identify requests. Specify a unique request ID so that
108679// if you must retry your request, the server will know to ignore the
108680// request if it has already been completed.
108681//
108682// For example, consider a situation where you make an initial request
108683// and the request times out. If you make the request again with the
108684// same request ID, the server can check if original operation with the
108685// same request ID was received, and if so, will ignore the second
108686// request. This prevents clients from accidentally creating duplicate
108687// commitments.
108688//
108689// The request ID must be a valid UUID with the exception that zero UUID
108690// is not supported (00000000-0000-0000-0000-000000000000).
108691func (c *NetworksRemovePeeringCall) RequestId(requestId string) *NetworksRemovePeeringCall {
108692	c.urlParams_.Set("requestId", requestId)
108693	return c
108694}
108695
108696// Fields allows partial responses to be retrieved. See
108697// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108698// for more information.
108699func (c *NetworksRemovePeeringCall) Fields(s ...googleapi.Field) *NetworksRemovePeeringCall {
108700	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108701	return c
108702}
108703
108704// Context sets the context to be used in this call's Do method. Any
108705// pending HTTP request will be aborted if the provided context is
108706// canceled.
108707func (c *NetworksRemovePeeringCall) Context(ctx context.Context) *NetworksRemovePeeringCall {
108708	c.ctx_ = ctx
108709	return c
108710}
108711
108712// Header returns an http.Header that can be modified by the caller to
108713// add HTTP headers to the request.
108714func (c *NetworksRemovePeeringCall) Header() http.Header {
108715	if c.header_ == nil {
108716		c.header_ = make(http.Header)
108717	}
108718	return c.header_
108719}
108720
108721func (c *NetworksRemovePeeringCall) doRequest(alt string) (*http.Response, error) {
108722	reqHeaders := make(http.Header)
108723	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
108724	for k, v := range c.header_ {
108725		reqHeaders[k] = v
108726	}
108727	reqHeaders.Set("User-Agent", c.s.userAgent())
108728	var body io.Reader = nil
108729	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networksremovepeeringrequest)
108730	if err != nil {
108731		return nil, err
108732	}
108733	reqHeaders.Set("Content-Type", "application/json")
108734	c.urlParams_.Set("alt", alt)
108735	c.urlParams_.Set("prettyPrint", "false")
108736	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}/removePeering")
108737	urls += "?" + c.urlParams_.Encode()
108738	req, err := http.NewRequest("POST", urls, body)
108739	if err != nil {
108740		return nil, err
108741	}
108742	req.Header = reqHeaders
108743	googleapi.Expand(req.URL, map[string]string{
108744		"project": c.project,
108745		"network": c.network,
108746	})
108747	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108748}
108749
108750// Do executes the "compute.networks.removePeering" call.
108751// Exactly one of *Operation or error will be non-nil. Any non-2xx
108752// status code is an error. Response headers are in either
108753// *Operation.ServerResponse.Header or (if a response was returned at
108754// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
108755// to check whether the returned error was because
108756// http.StatusNotModified was returned.
108757func (c *NetworksRemovePeeringCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
108758	gensupport.SetOptions(c.urlParams_, opts...)
108759	res, err := c.doRequest("json")
108760	if res != nil && res.StatusCode == http.StatusNotModified {
108761		if res.Body != nil {
108762			res.Body.Close()
108763		}
108764		return nil, &googleapi.Error{
108765			Code:   res.StatusCode,
108766			Header: res.Header,
108767		}
108768	}
108769	if err != nil {
108770		return nil, err
108771	}
108772	defer googleapi.CloseBody(res)
108773	if err := googleapi.CheckResponse(res); err != nil {
108774		return nil, err
108775	}
108776	ret := &Operation{
108777		ServerResponse: googleapi.ServerResponse{
108778			Header:         res.Header,
108779			HTTPStatusCode: res.StatusCode,
108780		},
108781	}
108782	target := &ret
108783	if err := gensupport.DecodeResponse(target, res); err != nil {
108784		return nil, err
108785	}
108786	return ret, nil
108787	// {
108788	//   "description": "Removes a peering from the specified network.",
108789	//   "httpMethod": "POST",
108790	//   "id": "compute.networks.removePeering",
108791	//   "parameterOrder": [
108792	//     "project",
108793	//     "network"
108794	//   ],
108795	//   "parameters": {
108796	//     "network": {
108797	//       "description": "Name of the network resource to remove peering from.",
108798	//       "location": "path",
108799	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
108800	//       "required": true,
108801	//       "type": "string"
108802	//     },
108803	//     "project": {
108804	//       "description": "Project ID for this request.",
108805	//       "location": "path",
108806	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108807	//       "required": true,
108808	//       "type": "string"
108809	//     },
108810	//     "requestId": {
108811	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
108812	//       "location": "query",
108813	//       "type": "string"
108814	//     }
108815	//   },
108816	//   "path": "projects/{project}/global/networks/{network}/removePeering",
108817	//   "request": {
108818	//     "$ref": "NetworksRemovePeeringRequest"
108819	//   },
108820	//   "response": {
108821	//     "$ref": "Operation"
108822	//   },
108823	//   "scopes": [
108824	//     "https://www.googleapis.com/auth/cloud-platform",
108825	//     "https://www.googleapis.com/auth/compute"
108826	//   ]
108827	// }
108828
108829}
108830
108831// method id "compute.networks.switchToCustomMode":
108832
108833type NetworksSwitchToCustomModeCall struct {
108834	s          *Service
108835	project    string
108836	network    string
108837	urlParams_ gensupport.URLParams
108838	ctx_       context.Context
108839	header_    http.Header
108840}
108841
108842// SwitchToCustomMode: Switches the network mode from auto subnet mode
108843// to custom subnet mode.
108844func (r *NetworksService) SwitchToCustomMode(project string, network string) *NetworksSwitchToCustomModeCall {
108845	c := &NetworksSwitchToCustomModeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108846	c.project = project
108847	c.network = network
108848	return c
108849}
108850
108851// RequestId sets the optional parameter "requestId": An optional
108852// request ID to identify requests. Specify a unique request ID so that
108853// if you must retry your request, the server will know to ignore the
108854// request if it has already been completed.
108855//
108856// For example, consider a situation where you make an initial request
108857// and the request times out. If you make the request again with the
108858// same request ID, the server can check if original operation with the
108859// same request ID was received, and if so, will ignore the second
108860// request. This prevents clients from accidentally creating duplicate
108861// commitments.
108862//
108863// The request ID must be a valid UUID with the exception that zero UUID
108864// is not supported (00000000-0000-0000-0000-000000000000).
108865func (c *NetworksSwitchToCustomModeCall) RequestId(requestId string) *NetworksSwitchToCustomModeCall {
108866	c.urlParams_.Set("requestId", requestId)
108867	return c
108868}
108869
108870// Fields allows partial responses to be retrieved. See
108871// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108872// for more information.
108873func (c *NetworksSwitchToCustomModeCall) Fields(s ...googleapi.Field) *NetworksSwitchToCustomModeCall {
108874	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108875	return c
108876}
108877
108878// Context sets the context to be used in this call's Do method. Any
108879// pending HTTP request will be aborted if the provided context is
108880// canceled.
108881func (c *NetworksSwitchToCustomModeCall) Context(ctx context.Context) *NetworksSwitchToCustomModeCall {
108882	c.ctx_ = ctx
108883	return c
108884}
108885
108886// Header returns an http.Header that can be modified by the caller to
108887// add HTTP headers to the request.
108888func (c *NetworksSwitchToCustomModeCall) Header() http.Header {
108889	if c.header_ == nil {
108890		c.header_ = make(http.Header)
108891	}
108892	return c.header_
108893}
108894
108895func (c *NetworksSwitchToCustomModeCall) doRequest(alt string) (*http.Response, error) {
108896	reqHeaders := make(http.Header)
108897	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
108898	for k, v := range c.header_ {
108899		reqHeaders[k] = v
108900	}
108901	reqHeaders.Set("User-Agent", c.s.userAgent())
108902	var body io.Reader = nil
108903	c.urlParams_.Set("alt", alt)
108904	c.urlParams_.Set("prettyPrint", "false")
108905	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}/switchToCustomMode")
108906	urls += "?" + c.urlParams_.Encode()
108907	req, err := http.NewRequest("POST", urls, body)
108908	if err != nil {
108909		return nil, err
108910	}
108911	req.Header = reqHeaders
108912	googleapi.Expand(req.URL, map[string]string{
108913		"project": c.project,
108914		"network": c.network,
108915	})
108916	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108917}
108918
108919// Do executes the "compute.networks.switchToCustomMode" call.
108920// Exactly one of *Operation or error will be non-nil. Any non-2xx
108921// status code is an error. Response headers are in either
108922// *Operation.ServerResponse.Header or (if a response was returned at
108923// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
108924// to check whether the returned error was because
108925// http.StatusNotModified was returned.
108926func (c *NetworksSwitchToCustomModeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
108927	gensupport.SetOptions(c.urlParams_, opts...)
108928	res, err := c.doRequest("json")
108929	if res != nil && res.StatusCode == http.StatusNotModified {
108930		if res.Body != nil {
108931			res.Body.Close()
108932		}
108933		return nil, &googleapi.Error{
108934			Code:   res.StatusCode,
108935			Header: res.Header,
108936		}
108937	}
108938	if err != nil {
108939		return nil, err
108940	}
108941	defer googleapi.CloseBody(res)
108942	if err := googleapi.CheckResponse(res); err != nil {
108943		return nil, err
108944	}
108945	ret := &Operation{
108946		ServerResponse: googleapi.ServerResponse{
108947			Header:         res.Header,
108948			HTTPStatusCode: res.StatusCode,
108949		},
108950	}
108951	target := &ret
108952	if err := gensupport.DecodeResponse(target, res); err != nil {
108953		return nil, err
108954	}
108955	return ret, nil
108956	// {
108957	//   "description": "Switches the network mode from auto subnet mode to custom subnet mode.",
108958	//   "httpMethod": "POST",
108959	//   "id": "compute.networks.switchToCustomMode",
108960	//   "parameterOrder": [
108961	//     "project",
108962	//     "network"
108963	//   ],
108964	//   "parameters": {
108965	//     "network": {
108966	//       "description": "Name of the network to be updated.",
108967	//       "location": "path",
108968	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
108969	//       "required": true,
108970	//       "type": "string"
108971	//     },
108972	//     "project": {
108973	//       "description": "Project ID for this request.",
108974	//       "location": "path",
108975	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108976	//       "required": true,
108977	//       "type": "string"
108978	//     },
108979	//     "requestId": {
108980	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
108981	//       "location": "query",
108982	//       "type": "string"
108983	//     }
108984	//   },
108985	//   "path": "projects/{project}/global/networks/{network}/switchToCustomMode",
108986	//   "response": {
108987	//     "$ref": "Operation"
108988	//   },
108989	//   "scopes": [
108990	//     "https://www.googleapis.com/auth/cloud-platform",
108991	//     "https://www.googleapis.com/auth/compute"
108992	//   ]
108993	// }
108994
108995}
108996
108997// method id "compute.networks.testIamPermissions":
108998
108999type NetworksTestIamPermissionsCall struct {
109000	s                      *Service
109001	project                string
109002	resource               string
109003	testpermissionsrequest *TestPermissionsRequest
109004	urlParams_             gensupport.URLParams
109005	ctx_                   context.Context
109006	header_                http.Header
109007}
109008
109009// TestIamPermissions: Returns permissions that a caller has on the
109010// specified resource.
109011func (r *NetworksService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *NetworksTestIamPermissionsCall {
109012	c := &NetworksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109013	c.project = project
109014	c.resource = resource
109015	c.testpermissionsrequest = testpermissionsrequest
109016	return c
109017}
109018
109019// Fields allows partial responses to be retrieved. See
109020// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109021// for more information.
109022func (c *NetworksTestIamPermissionsCall) Fields(s ...googleapi.Field) *NetworksTestIamPermissionsCall {
109023	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109024	return c
109025}
109026
109027// Context sets the context to be used in this call's Do method. Any
109028// pending HTTP request will be aborted if the provided context is
109029// canceled.
109030func (c *NetworksTestIamPermissionsCall) Context(ctx context.Context) *NetworksTestIamPermissionsCall {
109031	c.ctx_ = ctx
109032	return c
109033}
109034
109035// Header returns an http.Header that can be modified by the caller to
109036// add HTTP headers to the request.
109037func (c *NetworksTestIamPermissionsCall) Header() http.Header {
109038	if c.header_ == nil {
109039		c.header_ = make(http.Header)
109040	}
109041	return c.header_
109042}
109043
109044func (c *NetworksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
109045	reqHeaders := make(http.Header)
109046	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
109047	for k, v := range c.header_ {
109048		reqHeaders[k] = v
109049	}
109050	reqHeaders.Set("User-Agent", c.s.userAgent())
109051	var body io.Reader = nil
109052	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
109053	if err != nil {
109054		return nil, err
109055	}
109056	reqHeaders.Set("Content-Type", "application/json")
109057	c.urlParams_.Set("alt", alt)
109058	c.urlParams_.Set("prettyPrint", "false")
109059	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{resource}/testIamPermissions")
109060	urls += "?" + c.urlParams_.Encode()
109061	req, err := http.NewRequest("POST", urls, body)
109062	if err != nil {
109063		return nil, err
109064	}
109065	req.Header = reqHeaders
109066	googleapi.Expand(req.URL, map[string]string{
109067		"project":  c.project,
109068		"resource": c.resource,
109069	})
109070	return gensupport.SendRequest(c.ctx_, c.s.client, req)
109071}
109072
109073// Do executes the "compute.networks.testIamPermissions" call.
109074// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
109075// non-2xx status code is an error. Response headers are in either
109076// *TestPermissionsResponse.ServerResponse.Header or (if a response was
109077// returned at all) in error.(*googleapi.Error).Header. Use
109078// googleapi.IsNotModified to check whether the returned error was
109079// because http.StatusNotModified was returned.
109080func (c *NetworksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
109081	gensupport.SetOptions(c.urlParams_, opts...)
109082	res, err := c.doRequest("json")
109083	if res != nil && res.StatusCode == http.StatusNotModified {
109084		if res.Body != nil {
109085			res.Body.Close()
109086		}
109087		return nil, &googleapi.Error{
109088			Code:   res.StatusCode,
109089			Header: res.Header,
109090		}
109091	}
109092	if err != nil {
109093		return nil, err
109094	}
109095	defer googleapi.CloseBody(res)
109096	if err := googleapi.CheckResponse(res); err != nil {
109097		return nil, err
109098	}
109099	ret := &TestPermissionsResponse{
109100		ServerResponse: googleapi.ServerResponse{
109101			Header:         res.Header,
109102			HTTPStatusCode: res.StatusCode,
109103		},
109104	}
109105	target := &ret
109106	if err := gensupport.DecodeResponse(target, res); err != nil {
109107		return nil, err
109108	}
109109	return ret, nil
109110	// {
109111	//   "description": "Returns permissions that a caller has on the specified resource.",
109112	//   "httpMethod": "POST",
109113	//   "id": "compute.networks.testIamPermissions",
109114	//   "parameterOrder": [
109115	//     "project",
109116	//     "resource"
109117	//   ],
109118	//   "parameters": {
109119	//     "project": {
109120	//       "description": "Project ID for this request.",
109121	//       "location": "path",
109122	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
109123	//       "required": true,
109124	//       "type": "string"
109125	//     },
109126	//     "resource": {
109127	//       "description": "Name or id of the resource for this request.",
109128	//       "location": "path",
109129	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
109130	//       "required": true,
109131	//       "type": "string"
109132	//     }
109133	//   },
109134	//   "path": "projects/{project}/global/networks/{resource}/testIamPermissions",
109135	//   "request": {
109136	//     "$ref": "TestPermissionsRequest"
109137	//   },
109138	//   "response": {
109139	//     "$ref": "TestPermissionsResponse"
109140	//   },
109141	//   "scopes": [
109142	//     "https://www.googleapis.com/auth/cloud-platform",
109143	//     "https://www.googleapis.com/auth/compute",
109144	//     "https://www.googleapis.com/auth/compute.readonly"
109145	//   ]
109146	// }
109147
109148}
109149
109150// method id "compute.networks.updatePeering":
109151
109152type NetworksUpdatePeeringCall struct {
109153	s                            *Service
109154	project                      string
109155	network                      string
109156	networksupdatepeeringrequest *NetworksUpdatePeeringRequest
109157	urlParams_                   gensupport.URLParams
109158	ctx_                         context.Context
109159	header_                      http.Header
109160}
109161
109162// UpdatePeering: Updates the specified network peering with the data
109163// included in the request Only the following fields can be modified:
109164// NetworkPeering.export_custom_routes, and
109165// NetworkPeering.import_custom_routes
109166func (r *NetworksService) UpdatePeering(project string, network string, networksupdatepeeringrequest *NetworksUpdatePeeringRequest) *NetworksUpdatePeeringCall {
109167	c := &NetworksUpdatePeeringCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109168	c.project = project
109169	c.network = network
109170	c.networksupdatepeeringrequest = networksupdatepeeringrequest
109171	return c
109172}
109173
109174// RequestId sets the optional parameter "requestId": An optional
109175// request ID to identify requests. Specify a unique request ID so that
109176// if you must retry your request, the server will know to ignore the
109177// request if it has already been completed.
109178//
109179// For example, consider a situation where you make an initial request
109180// and the request times out. If you make the request again with the
109181// same request ID, the server can check if original operation with the
109182// same request ID was received, and if so, will ignore the second
109183// request. This prevents clients from accidentally creating duplicate
109184// commitments.
109185//
109186// The request ID must be a valid UUID with the exception that zero UUID
109187// is not supported (00000000-0000-0000-0000-000000000000).
109188func (c *NetworksUpdatePeeringCall) RequestId(requestId string) *NetworksUpdatePeeringCall {
109189	c.urlParams_.Set("requestId", requestId)
109190	return c
109191}
109192
109193// Fields allows partial responses to be retrieved. See
109194// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109195// for more information.
109196func (c *NetworksUpdatePeeringCall) Fields(s ...googleapi.Field) *NetworksUpdatePeeringCall {
109197	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109198	return c
109199}
109200
109201// Context sets the context to be used in this call's Do method. Any
109202// pending HTTP request will be aborted if the provided context is
109203// canceled.
109204func (c *NetworksUpdatePeeringCall) Context(ctx context.Context) *NetworksUpdatePeeringCall {
109205	c.ctx_ = ctx
109206	return c
109207}
109208
109209// Header returns an http.Header that can be modified by the caller to
109210// add HTTP headers to the request.
109211func (c *NetworksUpdatePeeringCall) Header() http.Header {
109212	if c.header_ == nil {
109213		c.header_ = make(http.Header)
109214	}
109215	return c.header_
109216}
109217
109218func (c *NetworksUpdatePeeringCall) doRequest(alt string) (*http.Response, error) {
109219	reqHeaders := make(http.Header)
109220	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
109221	for k, v := range c.header_ {
109222		reqHeaders[k] = v
109223	}
109224	reqHeaders.Set("User-Agent", c.s.userAgent())
109225	var body io.Reader = nil
109226	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networksupdatepeeringrequest)
109227	if err != nil {
109228		return nil, err
109229	}
109230	reqHeaders.Set("Content-Type", "application/json")
109231	c.urlParams_.Set("alt", alt)
109232	c.urlParams_.Set("prettyPrint", "false")
109233	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}/updatePeering")
109234	urls += "?" + c.urlParams_.Encode()
109235	req, err := http.NewRequest("PATCH", urls, body)
109236	if err != nil {
109237		return nil, err
109238	}
109239	req.Header = reqHeaders
109240	googleapi.Expand(req.URL, map[string]string{
109241		"project": c.project,
109242		"network": c.network,
109243	})
109244	return gensupport.SendRequest(c.ctx_, c.s.client, req)
109245}
109246
109247// Do executes the "compute.networks.updatePeering" call.
109248// Exactly one of *Operation or error will be non-nil. Any non-2xx
109249// status code is an error. Response headers are in either
109250// *Operation.ServerResponse.Header or (if a response was returned at
109251// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
109252// to check whether the returned error was because
109253// http.StatusNotModified was returned.
109254func (c *NetworksUpdatePeeringCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
109255	gensupport.SetOptions(c.urlParams_, opts...)
109256	res, err := c.doRequest("json")
109257	if res != nil && res.StatusCode == http.StatusNotModified {
109258		if res.Body != nil {
109259			res.Body.Close()
109260		}
109261		return nil, &googleapi.Error{
109262			Code:   res.StatusCode,
109263			Header: res.Header,
109264		}
109265	}
109266	if err != nil {
109267		return nil, err
109268	}
109269	defer googleapi.CloseBody(res)
109270	if err := googleapi.CheckResponse(res); err != nil {
109271		return nil, err
109272	}
109273	ret := &Operation{
109274		ServerResponse: googleapi.ServerResponse{
109275			Header:         res.Header,
109276			HTTPStatusCode: res.StatusCode,
109277		},
109278	}
109279	target := &ret
109280	if err := gensupport.DecodeResponse(target, res); err != nil {
109281		return nil, err
109282	}
109283	return ret, nil
109284	// {
109285	//   "description": "Updates the specified network peering with the data included in the request Only the following fields can be modified: NetworkPeering.export_custom_routes, and NetworkPeering.import_custom_routes",
109286	//   "httpMethod": "PATCH",
109287	//   "id": "compute.networks.updatePeering",
109288	//   "parameterOrder": [
109289	//     "project",
109290	//     "network"
109291	//   ],
109292	//   "parameters": {
109293	//     "network": {
109294	//       "description": "Name of the network resource which the updated peering is belonging to.",
109295	//       "location": "path",
109296	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
109297	//       "required": true,
109298	//       "type": "string"
109299	//     },
109300	//     "project": {
109301	//       "description": "Project ID for this request.",
109302	//       "location": "path",
109303	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
109304	//       "required": true,
109305	//       "type": "string"
109306	//     },
109307	//     "requestId": {
109308	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
109309	//       "location": "query",
109310	//       "type": "string"
109311	//     }
109312	//   },
109313	//   "path": "projects/{project}/global/networks/{network}/updatePeering",
109314	//   "request": {
109315	//     "$ref": "NetworksUpdatePeeringRequest"
109316	//   },
109317	//   "response": {
109318	//     "$ref": "Operation"
109319	//   },
109320	//   "scopes": [
109321	//     "https://www.googleapis.com/auth/cloud-platform",
109322	//     "https://www.googleapis.com/auth/compute"
109323	//   ]
109324	// }
109325
109326}
109327
109328// method id "compute.nodeGroups.addNodes":
109329
109330type NodeGroupsAddNodesCall struct {
109331	s                         *Service
109332	project                   string
109333	zone                      string
109334	nodeGroup                 string
109335	nodegroupsaddnodesrequest *NodeGroupsAddNodesRequest
109336	urlParams_                gensupport.URLParams
109337	ctx_                      context.Context
109338	header_                   http.Header
109339}
109340
109341// AddNodes: Adds specified number of nodes to the node group.
109342func (r *NodeGroupsService) AddNodes(project string, zone string, nodeGroup string, nodegroupsaddnodesrequest *NodeGroupsAddNodesRequest) *NodeGroupsAddNodesCall {
109343	c := &NodeGroupsAddNodesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109344	c.project = project
109345	c.zone = zone
109346	c.nodeGroup = nodeGroup
109347	c.nodegroupsaddnodesrequest = nodegroupsaddnodesrequest
109348	return c
109349}
109350
109351// RequestId sets the optional parameter "requestId": An optional
109352// request ID to identify requests. Specify a unique request ID so that
109353// if you must retry your request, the server will know to ignore the
109354// request if it has already been completed.
109355//
109356// For example, consider a situation where you make an initial request
109357// and the request times out. If you make the request again with the
109358// same request ID, the server can check if original operation with the
109359// same request ID was received, and if so, will ignore the second
109360// request. This prevents clients from accidentally creating duplicate
109361// commitments.
109362//
109363// The request ID must be a valid UUID with the exception that zero UUID
109364// is not supported (00000000-0000-0000-0000-000000000000).
109365func (c *NodeGroupsAddNodesCall) RequestId(requestId string) *NodeGroupsAddNodesCall {
109366	c.urlParams_.Set("requestId", requestId)
109367	return c
109368}
109369
109370// Fields allows partial responses to be retrieved. See
109371// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109372// for more information.
109373func (c *NodeGroupsAddNodesCall) Fields(s ...googleapi.Field) *NodeGroupsAddNodesCall {
109374	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109375	return c
109376}
109377
109378// Context sets the context to be used in this call's Do method. Any
109379// pending HTTP request will be aborted if the provided context is
109380// canceled.
109381func (c *NodeGroupsAddNodesCall) Context(ctx context.Context) *NodeGroupsAddNodesCall {
109382	c.ctx_ = ctx
109383	return c
109384}
109385
109386// Header returns an http.Header that can be modified by the caller to
109387// add HTTP headers to the request.
109388func (c *NodeGroupsAddNodesCall) Header() http.Header {
109389	if c.header_ == nil {
109390		c.header_ = make(http.Header)
109391	}
109392	return c.header_
109393}
109394
109395func (c *NodeGroupsAddNodesCall) doRequest(alt string) (*http.Response, error) {
109396	reqHeaders := make(http.Header)
109397	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
109398	for k, v := range c.header_ {
109399		reqHeaders[k] = v
109400	}
109401	reqHeaders.Set("User-Agent", c.s.userAgent())
109402	var body io.Reader = nil
109403	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroupsaddnodesrequest)
109404	if err != nil {
109405		return nil, err
109406	}
109407	reqHeaders.Set("Content-Type", "application/json")
109408	c.urlParams_.Set("alt", alt)
109409	c.urlParams_.Set("prettyPrint", "false")
109410	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/addNodes")
109411	urls += "?" + c.urlParams_.Encode()
109412	req, err := http.NewRequest("POST", urls, body)
109413	if err != nil {
109414		return nil, err
109415	}
109416	req.Header = reqHeaders
109417	googleapi.Expand(req.URL, map[string]string{
109418		"project":   c.project,
109419		"zone":      c.zone,
109420		"nodeGroup": c.nodeGroup,
109421	})
109422	return gensupport.SendRequest(c.ctx_, c.s.client, req)
109423}
109424
109425// Do executes the "compute.nodeGroups.addNodes" call.
109426// Exactly one of *Operation or error will be non-nil. Any non-2xx
109427// status code is an error. Response headers are in either
109428// *Operation.ServerResponse.Header or (if a response was returned at
109429// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
109430// to check whether the returned error was because
109431// http.StatusNotModified was returned.
109432func (c *NodeGroupsAddNodesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
109433	gensupport.SetOptions(c.urlParams_, opts...)
109434	res, err := c.doRequest("json")
109435	if res != nil && res.StatusCode == http.StatusNotModified {
109436		if res.Body != nil {
109437			res.Body.Close()
109438		}
109439		return nil, &googleapi.Error{
109440			Code:   res.StatusCode,
109441			Header: res.Header,
109442		}
109443	}
109444	if err != nil {
109445		return nil, err
109446	}
109447	defer googleapi.CloseBody(res)
109448	if err := googleapi.CheckResponse(res); err != nil {
109449		return nil, err
109450	}
109451	ret := &Operation{
109452		ServerResponse: googleapi.ServerResponse{
109453			Header:         res.Header,
109454			HTTPStatusCode: res.StatusCode,
109455		},
109456	}
109457	target := &ret
109458	if err := gensupport.DecodeResponse(target, res); err != nil {
109459		return nil, err
109460	}
109461	return ret, nil
109462	// {
109463	//   "description": "Adds specified number of nodes to the node group.",
109464	//   "httpMethod": "POST",
109465	//   "id": "compute.nodeGroups.addNodes",
109466	//   "parameterOrder": [
109467	//     "project",
109468	//     "zone",
109469	//     "nodeGroup"
109470	//   ],
109471	//   "parameters": {
109472	//     "nodeGroup": {
109473	//       "description": "Name of the NodeGroup resource.",
109474	//       "location": "path",
109475	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
109476	//       "required": true,
109477	//       "type": "string"
109478	//     },
109479	//     "project": {
109480	//       "description": "Project ID for this request.",
109481	//       "location": "path",
109482	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
109483	//       "required": true,
109484	//       "type": "string"
109485	//     },
109486	//     "requestId": {
109487	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
109488	//       "location": "query",
109489	//       "type": "string"
109490	//     },
109491	//     "zone": {
109492	//       "description": "The name of the zone for this request.",
109493	//       "location": "path",
109494	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
109495	//       "required": true,
109496	//       "type": "string"
109497	//     }
109498	//   },
109499	//   "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/addNodes",
109500	//   "request": {
109501	//     "$ref": "NodeGroupsAddNodesRequest"
109502	//   },
109503	//   "response": {
109504	//     "$ref": "Operation"
109505	//   },
109506	//   "scopes": [
109507	//     "https://www.googleapis.com/auth/cloud-platform",
109508	//     "https://www.googleapis.com/auth/compute"
109509	//   ]
109510	// }
109511
109512}
109513
109514// method id "compute.nodeGroups.aggregatedList":
109515
109516type NodeGroupsAggregatedListCall struct {
109517	s            *Service
109518	project      string
109519	urlParams_   gensupport.URLParams
109520	ifNoneMatch_ string
109521	ctx_         context.Context
109522	header_      http.Header
109523}
109524
109525// AggregatedList: Retrieves an aggregated list of node groups. Note:
109526// use nodeGroups.listNodes for more details about each group.
109527func (r *NodeGroupsService) AggregatedList(project string) *NodeGroupsAggregatedListCall {
109528	c := &NodeGroupsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109529	c.project = project
109530	return c
109531}
109532
109533// Filter sets the optional parameter "filter": A filter expression that
109534// filters resources listed in the response. The expression must specify
109535// the field name, a comparison operator, and the value that you want to
109536// use for filtering. The value must be a string, a number, or a
109537// boolean. The comparison operator must be either `=`, `!=`, `>`, or
109538// `<`.
109539//
109540// For example, if you are filtering Compute Engine instances, you can
109541// exclude instances named `example-instance` by specifying `name !=
109542// example-instance`.
109543//
109544// You can also filter nested fields. For example, you could specify
109545// `scheduling.automaticRestart = false` to include instances only if
109546// they are not scheduled for automatic restarts. You can use filtering
109547// on nested fields to filter based on resource labels.
109548//
109549// To filter on multiple expressions, provide each separate expression
109550// within parentheses. For example: ``` (scheduling.automaticRestart =
109551// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
109552// is an `AND` expression. However, you can include `AND` and `OR`
109553// expressions explicitly. For example: ``` (cpuPlatform = "Intel
109554// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
109555// (scheduling.automaticRestart = true) ```
109556func (c *NodeGroupsAggregatedListCall) Filter(filter string) *NodeGroupsAggregatedListCall {
109557	c.urlParams_.Set("filter", filter)
109558	return c
109559}
109560
109561// IncludeAllScopes sets the optional parameter "includeAllScopes":
109562// Indicates whether every visible scope for each scope type (zone,
109563// region, global) should be included in the response. For new resource
109564// types added after this field, the flag has no effect as new resource
109565// types will always include every visible scope for each scope type in
109566// response. For resource types which predate this field, if this flag
109567// is omitted or false, only scopes of the scope types where the
109568// resource type is expected to be found will be included.
109569func (c *NodeGroupsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *NodeGroupsAggregatedListCall {
109570	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
109571	return c
109572}
109573
109574// MaxResults sets the optional parameter "maxResults": The maximum
109575// number of results per page that should be returned. If the number of
109576// available results is larger than `maxResults`, Compute Engine returns
109577// a `nextPageToken` that can be used to get the next page of results in
109578// subsequent list requests. Acceptable values are `0` to `500`,
109579// inclusive. (Default: `500`)
109580func (c *NodeGroupsAggregatedListCall) MaxResults(maxResults int64) *NodeGroupsAggregatedListCall {
109581	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
109582	return c
109583}
109584
109585// OrderBy sets the optional parameter "orderBy": Sorts list results by
109586// a certain order. By default, results are returned in alphanumerical
109587// order based on the resource name.
109588//
109589// You can also sort results in descending order based on the creation
109590// timestamp using `orderBy="creationTimestamp desc". This sorts
109591// results based on the `creationTimestamp` field in reverse
109592// chronological order (newest result first). Use this to sort resources
109593// like operations so that the newest operation is returned
109594// first.
109595//
109596// Currently, only sorting by `name` or `creationTimestamp desc` is
109597// supported.
109598func (c *NodeGroupsAggregatedListCall) OrderBy(orderBy string) *NodeGroupsAggregatedListCall {
109599	c.urlParams_.Set("orderBy", orderBy)
109600	return c
109601}
109602
109603// PageToken sets the optional parameter "pageToken": Specifies a page
109604// token to use. Set `pageToken` to the `nextPageToken` returned by a
109605// previous list request to get the next page of results.
109606func (c *NodeGroupsAggregatedListCall) PageToken(pageToken string) *NodeGroupsAggregatedListCall {
109607	c.urlParams_.Set("pageToken", pageToken)
109608	return c
109609}
109610
109611// ReturnPartialSuccess sets the optional parameter
109612// "returnPartialSuccess": Opt-in for partial success behavior which
109613// provides partial results in case of failure. The default value is
109614// false.
109615func (c *NodeGroupsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NodeGroupsAggregatedListCall {
109616	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
109617	return c
109618}
109619
109620// Fields allows partial responses to be retrieved. See
109621// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109622// for more information.
109623func (c *NodeGroupsAggregatedListCall) Fields(s ...googleapi.Field) *NodeGroupsAggregatedListCall {
109624	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109625	return c
109626}
109627
109628// IfNoneMatch sets the optional parameter which makes the operation
109629// fail if the object's ETag matches the given value. This is useful for
109630// getting updates only after the object has changed since the last
109631// request. Use googleapi.IsNotModified to check whether the response
109632// error from Do is the result of In-None-Match.
109633func (c *NodeGroupsAggregatedListCall) IfNoneMatch(entityTag string) *NodeGroupsAggregatedListCall {
109634	c.ifNoneMatch_ = entityTag
109635	return c
109636}
109637
109638// Context sets the context to be used in this call's Do method. Any
109639// pending HTTP request will be aborted if the provided context is
109640// canceled.
109641func (c *NodeGroupsAggregatedListCall) Context(ctx context.Context) *NodeGroupsAggregatedListCall {
109642	c.ctx_ = ctx
109643	return c
109644}
109645
109646// Header returns an http.Header that can be modified by the caller to
109647// add HTTP headers to the request.
109648func (c *NodeGroupsAggregatedListCall) Header() http.Header {
109649	if c.header_ == nil {
109650		c.header_ = make(http.Header)
109651	}
109652	return c.header_
109653}
109654
109655func (c *NodeGroupsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
109656	reqHeaders := make(http.Header)
109657	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
109658	for k, v := range c.header_ {
109659		reqHeaders[k] = v
109660	}
109661	reqHeaders.Set("User-Agent", c.s.userAgent())
109662	if c.ifNoneMatch_ != "" {
109663		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
109664	}
109665	var body io.Reader = nil
109666	c.urlParams_.Set("alt", alt)
109667	c.urlParams_.Set("prettyPrint", "false")
109668	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/nodeGroups")
109669	urls += "?" + c.urlParams_.Encode()
109670	req, err := http.NewRequest("GET", urls, body)
109671	if err != nil {
109672		return nil, err
109673	}
109674	req.Header = reqHeaders
109675	googleapi.Expand(req.URL, map[string]string{
109676		"project": c.project,
109677	})
109678	return gensupport.SendRequest(c.ctx_, c.s.client, req)
109679}
109680
109681// Do executes the "compute.nodeGroups.aggregatedList" call.
109682// Exactly one of *NodeGroupAggregatedList or error will be non-nil. Any
109683// non-2xx status code is an error. Response headers are in either
109684// *NodeGroupAggregatedList.ServerResponse.Header or (if a response was
109685// returned at all) in error.(*googleapi.Error).Header. Use
109686// googleapi.IsNotModified to check whether the returned error was
109687// because http.StatusNotModified was returned.
109688func (c *NodeGroupsAggregatedListCall) Do(opts ...googleapi.CallOption) (*NodeGroupAggregatedList, error) {
109689	gensupport.SetOptions(c.urlParams_, opts...)
109690	res, err := c.doRequest("json")
109691	if res != nil && res.StatusCode == http.StatusNotModified {
109692		if res.Body != nil {
109693			res.Body.Close()
109694		}
109695		return nil, &googleapi.Error{
109696			Code:   res.StatusCode,
109697			Header: res.Header,
109698		}
109699	}
109700	if err != nil {
109701		return nil, err
109702	}
109703	defer googleapi.CloseBody(res)
109704	if err := googleapi.CheckResponse(res); err != nil {
109705		return nil, err
109706	}
109707	ret := &NodeGroupAggregatedList{
109708		ServerResponse: googleapi.ServerResponse{
109709			Header:         res.Header,
109710			HTTPStatusCode: res.StatusCode,
109711		},
109712	}
109713	target := &ret
109714	if err := gensupport.DecodeResponse(target, res); err != nil {
109715		return nil, err
109716	}
109717	return ret, nil
109718	// {
109719	//   "description": "Retrieves an aggregated list of node groups. Note: use nodeGroups.listNodes for more details about each group.",
109720	//   "httpMethod": "GET",
109721	//   "id": "compute.nodeGroups.aggregatedList",
109722	//   "parameterOrder": [
109723	//     "project"
109724	//   ],
109725	//   "parameters": {
109726	//     "filter": {
109727	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
109728	//       "location": "query",
109729	//       "type": "string"
109730	//     },
109731	//     "includeAllScopes": {
109732	//       "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.",
109733	//       "location": "query",
109734	//       "type": "boolean"
109735	//     },
109736	//     "maxResults": {
109737	//       "default": "500",
109738	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
109739	//       "format": "uint32",
109740	//       "location": "query",
109741	//       "minimum": "0",
109742	//       "type": "integer"
109743	//     },
109744	//     "orderBy": {
109745	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
109746	//       "location": "query",
109747	//       "type": "string"
109748	//     },
109749	//     "pageToken": {
109750	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
109751	//       "location": "query",
109752	//       "type": "string"
109753	//     },
109754	//     "project": {
109755	//       "description": "Project ID for this request.",
109756	//       "location": "path",
109757	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
109758	//       "required": true,
109759	//       "type": "string"
109760	//     },
109761	//     "returnPartialSuccess": {
109762	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
109763	//       "location": "query",
109764	//       "type": "boolean"
109765	//     }
109766	//   },
109767	//   "path": "projects/{project}/aggregated/nodeGroups",
109768	//   "response": {
109769	//     "$ref": "NodeGroupAggregatedList"
109770	//   },
109771	//   "scopes": [
109772	//     "https://www.googleapis.com/auth/cloud-platform",
109773	//     "https://www.googleapis.com/auth/compute",
109774	//     "https://www.googleapis.com/auth/compute.readonly"
109775	//   ]
109776	// }
109777
109778}
109779
109780// Pages invokes f for each page of results.
109781// A non-nil error returned from f will halt the iteration.
109782// The provided context supersedes any context provided to the Context method.
109783func (c *NodeGroupsAggregatedListCall) Pages(ctx context.Context, f func(*NodeGroupAggregatedList) error) error {
109784	c.ctx_ = ctx
109785	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
109786	for {
109787		x, err := c.Do()
109788		if err != nil {
109789			return err
109790		}
109791		if err := f(x); err != nil {
109792			return err
109793		}
109794		if x.NextPageToken == "" {
109795			return nil
109796		}
109797		c.PageToken(x.NextPageToken)
109798	}
109799}
109800
109801// method id "compute.nodeGroups.delete":
109802
109803type NodeGroupsDeleteCall struct {
109804	s          *Service
109805	project    string
109806	zone       string
109807	nodeGroup  string
109808	urlParams_ gensupport.URLParams
109809	ctx_       context.Context
109810	header_    http.Header
109811}
109812
109813// Delete: Deletes the specified NodeGroup resource.
109814func (r *NodeGroupsService) Delete(project string, zone string, nodeGroup string) *NodeGroupsDeleteCall {
109815	c := &NodeGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109816	c.project = project
109817	c.zone = zone
109818	c.nodeGroup = nodeGroup
109819	return c
109820}
109821
109822// RequestId sets the optional parameter "requestId": An optional
109823// request ID to identify requests. Specify a unique request ID so that
109824// if you must retry your request, the server will know to ignore the
109825// request if it has already been completed.
109826//
109827// For example, consider a situation where you make an initial request
109828// and the request times out. If you make the request again with the
109829// same request ID, the server can check if original operation with the
109830// same request ID was received, and if so, will ignore the second
109831// request. This prevents clients from accidentally creating duplicate
109832// commitments.
109833//
109834// The request ID must be a valid UUID with the exception that zero UUID
109835// is not supported (00000000-0000-0000-0000-000000000000).
109836func (c *NodeGroupsDeleteCall) RequestId(requestId string) *NodeGroupsDeleteCall {
109837	c.urlParams_.Set("requestId", requestId)
109838	return c
109839}
109840
109841// Fields allows partial responses to be retrieved. See
109842// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109843// for more information.
109844func (c *NodeGroupsDeleteCall) Fields(s ...googleapi.Field) *NodeGroupsDeleteCall {
109845	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109846	return c
109847}
109848
109849// Context sets the context to be used in this call's Do method. Any
109850// pending HTTP request will be aborted if the provided context is
109851// canceled.
109852func (c *NodeGroupsDeleteCall) Context(ctx context.Context) *NodeGroupsDeleteCall {
109853	c.ctx_ = ctx
109854	return c
109855}
109856
109857// Header returns an http.Header that can be modified by the caller to
109858// add HTTP headers to the request.
109859func (c *NodeGroupsDeleteCall) Header() http.Header {
109860	if c.header_ == nil {
109861		c.header_ = make(http.Header)
109862	}
109863	return c.header_
109864}
109865
109866func (c *NodeGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
109867	reqHeaders := make(http.Header)
109868	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
109869	for k, v := range c.header_ {
109870		reqHeaders[k] = v
109871	}
109872	reqHeaders.Set("User-Agent", c.s.userAgent())
109873	var body io.Reader = nil
109874	c.urlParams_.Set("alt", alt)
109875	c.urlParams_.Set("prettyPrint", "false")
109876	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}")
109877	urls += "?" + c.urlParams_.Encode()
109878	req, err := http.NewRequest("DELETE", urls, body)
109879	if err != nil {
109880		return nil, err
109881	}
109882	req.Header = reqHeaders
109883	googleapi.Expand(req.URL, map[string]string{
109884		"project":   c.project,
109885		"zone":      c.zone,
109886		"nodeGroup": c.nodeGroup,
109887	})
109888	return gensupport.SendRequest(c.ctx_, c.s.client, req)
109889}
109890
109891// Do executes the "compute.nodeGroups.delete" call.
109892// Exactly one of *Operation or error will be non-nil. Any non-2xx
109893// status code is an error. Response headers are in either
109894// *Operation.ServerResponse.Header or (if a response was returned at
109895// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
109896// to check whether the returned error was because
109897// http.StatusNotModified was returned.
109898func (c *NodeGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
109899	gensupport.SetOptions(c.urlParams_, opts...)
109900	res, err := c.doRequest("json")
109901	if res != nil && res.StatusCode == http.StatusNotModified {
109902		if res.Body != nil {
109903			res.Body.Close()
109904		}
109905		return nil, &googleapi.Error{
109906			Code:   res.StatusCode,
109907			Header: res.Header,
109908		}
109909	}
109910	if err != nil {
109911		return nil, err
109912	}
109913	defer googleapi.CloseBody(res)
109914	if err := googleapi.CheckResponse(res); err != nil {
109915		return nil, err
109916	}
109917	ret := &Operation{
109918		ServerResponse: googleapi.ServerResponse{
109919			Header:         res.Header,
109920			HTTPStatusCode: res.StatusCode,
109921		},
109922	}
109923	target := &ret
109924	if err := gensupport.DecodeResponse(target, res); err != nil {
109925		return nil, err
109926	}
109927	return ret, nil
109928	// {
109929	//   "description": "Deletes the specified NodeGroup resource.",
109930	//   "httpMethod": "DELETE",
109931	//   "id": "compute.nodeGroups.delete",
109932	//   "parameterOrder": [
109933	//     "project",
109934	//     "zone",
109935	//     "nodeGroup"
109936	//   ],
109937	//   "parameters": {
109938	//     "nodeGroup": {
109939	//       "description": "Name of the NodeGroup resource to delete.",
109940	//       "location": "path",
109941	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
109942	//       "required": true,
109943	//       "type": "string"
109944	//     },
109945	//     "project": {
109946	//       "description": "Project ID for this request.",
109947	//       "location": "path",
109948	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
109949	//       "required": true,
109950	//       "type": "string"
109951	//     },
109952	//     "requestId": {
109953	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
109954	//       "location": "query",
109955	//       "type": "string"
109956	//     },
109957	//     "zone": {
109958	//       "description": "The name of the zone for this request.",
109959	//       "location": "path",
109960	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
109961	//       "required": true,
109962	//       "type": "string"
109963	//     }
109964	//   },
109965	//   "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}",
109966	//   "response": {
109967	//     "$ref": "Operation"
109968	//   },
109969	//   "scopes": [
109970	//     "https://www.googleapis.com/auth/cloud-platform",
109971	//     "https://www.googleapis.com/auth/compute"
109972	//   ]
109973	// }
109974
109975}
109976
109977// method id "compute.nodeGroups.deleteNodes":
109978
109979type NodeGroupsDeleteNodesCall struct {
109980	s                            *Service
109981	project                      string
109982	zone                         string
109983	nodeGroup                    string
109984	nodegroupsdeletenodesrequest *NodeGroupsDeleteNodesRequest
109985	urlParams_                   gensupport.URLParams
109986	ctx_                         context.Context
109987	header_                      http.Header
109988}
109989
109990// DeleteNodes: Deletes specified nodes from the node group.
109991func (r *NodeGroupsService) DeleteNodes(project string, zone string, nodeGroup string, nodegroupsdeletenodesrequest *NodeGroupsDeleteNodesRequest) *NodeGroupsDeleteNodesCall {
109992	c := &NodeGroupsDeleteNodesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109993	c.project = project
109994	c.zone = zone
109995	c.nodeGroup = nodeGroup
109996	c.nodegroupsdeletenodesrequest = nodegroupsdeletenodesrequest
109997	return c
109998}
109999
110000// RequestId sets the optional parameter "requestId": An optional
110001// request ID to identify requests. Specify a unique request ID so that
110002// if you must retry your request, the server will know to ignore the
110003// request if it has already been completed.
110004//
110005// For example, consider a situation where you make an initial request
110006// and the request times out. If you make the request again with the
110007// same request ID, the server can check if original operation with the
110008// same request ID was received, and if so, will ignore the second
110009// request. This prevents clients from accidentally creating duplicate
110010// commitments.
110011//
110012// The request ID must be a valid UUID with the exception that zero UUID
110013// is not supported (00000000-0000-0000-0000-000000000000).
110014func (c *NodeGroupsDeleteNodesCall) RequestId(requestId string) *NodeGroupsDeleteNodesCall {
110015	c.urlParams_.Set("requestId", requestId)
110016	return c
110017}
110018
110019// Fields allows partial responses to be retrieved. See
110020// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
110021// for more information.
110022func (c *NodeGroupsDeleteNodesCall) Fields(s ...googleapi.Field) *NodeGroupsDeleteNodesCall {
110023	c.urlParams_.Set("fields", googleapi.CombineFields(s))
110024	return c
110025}
110026
110027// Context sets the context to be used in this call's Do method. Any
110028// pending HTTP request will be aborted if the provided context is
110029// canceled.
110030func (c *NodeGroupsDeleteNodesCall) Context(ctx context.Context) *NodeGroupsDeleteNodesCall {
110031	c.ctx_ = ctx
110032	return c
110033}
110034
110035// Header returns an http.Header that can be modified by the caller to
110036// add HTTP headers to the request.
110037func (c *NodeGroupsDeleteNodesCall) Header() http.Header {
110038	if c.header_ == nil {
110039		c.header_ = make(http.Header)
110040	}
110041	return c.header_
110042}
110043
110044func (c *NodeGroupsDeleteNodesCall) doRequest(alt string) (*http.Response, error) {
110045	reqHeaders := make(http.Header)
110046	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
110047	for k, v := range c.header_ {
110048		reqHeaders[k] = v
110049	}
110050	reqHeaders.Set("User-Agent", c.s.userAgent())
110051	var body io.Reader = nil
110052	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroupsdeletenodesrequest)
110053	if err != nil {
110054		return nil, err
110055	}
110056	reqHeaders.Set("Content-Type", "application/json")
110057	c.urlParams_.Set("alt", alt)
110058	c.urlParams_.Set("prettyPrint", "false")
110059	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/deleteNodes")
110060	urls += "?" + c.urlParams_.Encode()
110061	req, err := http.NewRequest("POST", urls, body)
110062	if err != nil {
110063		return nil, err
110064	}
110065	req.Header = reqHeaders
110066	googleapi.Expand(req.URL, map[string]string{
110067		"project":   c.project,
110068		"zone":      c.zone,
110069		"nodeGroup": c.nodeGroup,
110070	})
110071	return gensupport.SendRequest(c.ctx_, c.s.client, req)
110072}
110073
110074// Do executes the "compute.nodeGroups.deleteNodes" call.
110075// Exactly one of *Operation or error will be non-nil. Any non-2xx
110076// status code is an error. Response headers are in either
110077// *Operation.ServerResponse.Header or (if a response was returned at
110078// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
110079// to check whether the returned error was because
110080// http.StatusNotModified was returned.
110081func (c *NodeGroupsDeleteNodesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
110082	gensupport.SetOptions(c.urlParams_, opts...)
110083	res, err := c.doRequest("json")
110084	if res != nil && res.StatusCode == http.StatusNotModified {
110085		if res.Body != nil {
110086			res.Body.Close()
110087		}
110088		return nil, &googleapi.Error{
110089			Code:   res.StatusCode,
110090			Header: res.Header,
110091		}
110092	}
110093	if err != nil {
110094		return nil, err
110095	}
110096	defer googleapi.CloseBody(res)
110097	if err := googleapi.CheckResponse(res); err != nil {
110098		return nil, err
110099	}
110100	ret := &Operation{
110101		ServerResponse: googleapi.ServerResponse{
110102			Header:         res.Header,
110103			HTTPStatusCode: res.StatusCode,
110104		},
110105	}
110106	target := &ret
110107	if err := gensupport.DecodeResponse(target, res); err != nil {
110108		return nil, err
110109	}
110110	return ret, nil
110111	// {
110112	//   "description": "Deletes specified nodes from the node group.",
110113	//   "httpMethod": "POST",
110114	//   "id": "compute.nodeGroups.deleteNodes",
110115	//   "parameterOrder": [
110116	//     "project",
110117	//     "zone",
110118	//     "nodeGroup"
110119	//   ],
110120	//   "parameters": {
110121	//     "nodeGroup": {
110122	//       "description": "Name of the NodeGroup resource whose nodes will be deleted.",
110123	//       "location": "path",
110124	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
110125	//       "required": true,
110126	//       "type": "string"
110127	//     },
110128	//     "project": {
110129	//       "description": "Project ID for this request.",
110130	//       "location": "path",
110131	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
110132	//       "required": true,
110133	//       "type": "string"
110134	//     },
110135	//     "requestId": {
110136	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
110137	//       "location": "query",
110138	//       "type": "string"
110139	//     },
110140	//     "zone": {
110141	//       "description": "The name of the zone for this request.",
110142	//       "location": "path",
110143	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
110144	//       "required": true,
110145	//       "type": "string"
110146	//     }
110147	//   },
110148	//   "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/deleteNodes",
110149	//   "request": {
110150	//     "$ref": "NodeGroupsDeleteNodesRequest"
110151	//   },
110152	//   "response": {
110153	//     "$ref": "Operation"
110154	//   },
110155	//   "scopes": [
110156	//     "https://www.googleapis.com/auth/cloud-platform",
110157	//     "https://www.googleapis.com/auth/compute"
110158	//   ]
110159	// }
110160
110161}
110162
110163// method id "compute.nodeGroups.get":
110164
110165type NodeGroupsGetCall struct {
110166	s            *Service
110167	project      string
110168	zone         string
110169	nodeGroup    string
110170	urlParams_   gensupport.URLParams
110171	ifNoneMatch_ string
110172	ctx_         context.Context
110173	header_      http.Header
110174}
110175
110176// Get: Returns the specified NodeGroup. Get a list of available
110177// NodeGroups by making a list() request. Note: the "nodes" field should
110178// not be used. Use nodeGroups.listNodes instead.
110179func (r *NodeGroupsService) Get(project string, zone string, nodeGroup string) *NodeGroupsGetCall {
110180	c := &NodeGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
110181	c.project = project
110182	c.zone = zone
110183	c.nodeGroup = nodeGroup
110184	return c
110185}
110186
110187// Fields allows partial responses to be retrieved. See
110188// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
110189// for more information.
110190func (c *NodeGroupsGetCall) Fields(s ...googleapi.Field) *NodeGroupsGetCall {
110191	c.urlParams_.Set("fields", googleapi.CombineFields(s))
110192	return c
110193}
110194
110195// IfNoneMatch sets the optional parameter which makes the operation
110196// fail if the object's ETag matches the given value. This is useful for
110197// getting updates only after the object has changed since the last
110198// request. Use googleapi.IsNotModified to check whether the response
110199// error from Do is the result of In-None-Match.
110200func (c *NodeGroupsGetCall) IfNoneMatch(entityTag string) *NodeGroupsGetCall {
110201	c.ifNoneMatch_ = entityTag
110202	return c
110203}
110204
110205// Context sets the context to be used in this call's Do method. Any
110206// pending HTTP request will be aborted if the provided context is
110207// canceled.
110208func (c *NodeGroupsGetCall) Context(ctx context.Context) *NodeGroupsGetCall {
110209	c.ctx_ = ctx
110210	return c
110211}
110212
110213// Header returns an http.Header that can be modified by the caller to
110214// add HTTP headers to the request.
110215func (c *NodeGroupsGetCall) Header() http.Header {
110216	if c.header_ == nil {
110217		c.header_ = make(http.Header)
110218	}
110219	return c.header_
110220}
110221
110222func (c *NodeGroupsGetCall) doRequest(alt string) (*http.Response, error) {
110223	reqHeaders := make(http.Header)
110224	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
110225	for k, v := range c.header_ {
110226		reqHeaders[k] = v
110227	}
110228	reqHeaders.Set("User-Agent", c.s.userAgent())
110229	if c.ifNoneMatch_ != "" {
110230		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
110231	}
110232	var body io.Reader = nil
110233	c.urlParams_.Set("alt", alt)
110234	c.urlParams_.Set("prettyPrint", "false")
110235	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}")
110236	urls += "?" + c.urlParams_.Encode()
110237	req, err := http.NewRequest("GET", urls, body)
110238	if err != nil {
110239		return nil, err
110240	}
110241	req.Header = reqHeaders
110242	googleapi.Expand(req.URL, map[string]string{
110243		"project":   c.project,
110244		"zone":      c.zone,
110245		"nodeGroup": c.nodeGroup,
110246	})
110247	return gensupport.SendRequest(c.ctx_, c.s.client, req)
110248}
110249
110250// Do executes the "compute.nodeGroups.get" call.
110251// Exactly one of *NodeGroup or error will be non-nil. Any non-2xx
110252// status code is an error. Response headers are in either
110253// *NodeGroup.ServerResponse.Header or (if a response was returned at
110254// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
110255// to check whether the returned error was because
110256// http.StatusNotModified was returned.
110257func (c *NodeGroupsGetCall) Do(opts ...googleapi.CallOption) (*NodeGroup, error) {
110258	gensupport.SetOptions(c.urlParams_, opts...)
110259	res, err := c.doRequest("json")
110260	if res != nil && res.StatusCode == http.StatusNotModified {
110261		if res.Body != nil {
110262			res.Body.Close()
110263		}
110264		return nil, &googleapi.Error{
110265			Code:   res.StatusCode,
110266			Header: res.Header,
110267		}
110268	}
110269	if err != nil {
110270		return nil, err
110271	}
110272	defer googleapi.CloseBody(res)
110273	if err := googleapi.CheckResponse(res); err != nil {
110274		return nil, err
110275	}
110276	ret := &NodeGroup{
110277		ServerResponse: googleapi.ServerResponse{
110278			Header:         res.Header,
110279			HTTPStatusCode: res.StatusCode,
110280		},
110281	}
110282	target := &ret
110283	if err := gensupport.DecodeResponse(target, res); err != nil {
110284		return nil, err
110285	}
110286	return ret, nil
110287	// {
110288	//   "description": "Returns the specified NodeGroup. Get a list of available NodeGroups by making a list() request. Note: the \"nodes\" field should not be used. Use nodeGroups.listNodes instead.",
110289	//   "httpMethod": "GET",
110290	//   "id": "compute.nodeGroups.get",
110291	//   "parameterOrder": [
110292	//     "project",
110293	//     "zone",
110294	//     "nodeGroup"
110295	//   ],
110296	//   "parameters": {
110297	//     "nodeGroup": {
110298	//       "description": "Name of the node group to return.",
110299	//       "location": "path",
110300	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
110301	//       "required": true,
110302	//       "type": "string"
110303	//     },
110304	//     "project": {
110305	//       "description": "Project ID for this request.",
110306	//       "location": "path",
110307	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
110308	//       "required": true,
110309	//       "type": "string"
110310	//     },
110311	//     "zone": {
110312	//       "description": "The name of the zone for this request.",
110313	//       "location": "path",
110314	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
110315	//       "required": true,
110316	//       "type": "string"
110317	//     }
110318	//   },
110319	//   "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}",
110320	//   "response": {
110321	//     "$ref": "NodeGroup"
110322	//   },
110323	//   "scopes": [
110324	//     "https://www.googleapis.com/auth/cloud-platform",
110325	//     "https://www.googleapis.com/auth/compute",
110326	//     "https://www.googleapis.com/auth/compute.readonly"
110327	//   ]
110328	// }
110329
110330}
110331
110332// method id "compute.nodeGroups.getIamPolicy":
110333
110334type NodeGroupsGetIamPolicyCall struct {
110335	s            *Service
110336	project      string
110337	zone         string
110338	resource     string
110339	urlParams_   gensupport.URLParams
110340	ifNoneMatch_ string
110341	ctx_         context.Context
110342	header_      http.Header
110343}
110344
110345// GetIamPolicy: Gets the access control policy for a resource. May be
110346// empty if no such policy or resource exists.
110347func (r *NodeGroupsService) GetIamPolicy(project string, zone string, resource string) *NodeGroupsGetIamPolicyCall {
110348	c := &NodeGroupsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
110349	c.project = project
110350	c.zone = zone
110351	c.resource = resource
110352	return c
110353}
110354
110355// OptionsRequestedPolicyVersion sets the optional parameter
110356// "optionsRequestedPolicyVersion": Requested IAM Policy version.
110357func (c *NodeGroupsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *NodeGroupsGetIamPolicyCall {
110358	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
110359	return c
110360}
110361
110362// Fields allows partial responses to be retrieved. See
110363// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
110364// for more information.
110365func (c *NodeGroupsGetIamPolicyCall) Fields(s ...googleapi.Field) *NodeGroupsGetIamPolicyCall {
110366	c.urlParams_.Set("fields", googleapi.CombineFields(s))
110367	return c
110368}
110369
110370// IfNoneMatch sets the optional parameter which makes the operation
110371// fail if the object's ETag matches the given value. This is useful for
110372// getting updates only after the object has changed since the last
110373// request. Use googleapi.IsNotModified to check whether the response
110374// error from Do is the result of In-None-Match.
110375func (c *NodeGroupsGetIamPolicyCall) IfNoneMatch(entityTag string) *NodeGroupsGetIamPolicyCall {
110376	c.ifNoneMatch_ = entityTag
110377	return c
110378}
110379
110380// Context sets the context to be used in this call's Do method. Any
110381// pending HTTP request will be aborted if the provided context is
110382// canceled.
110383func (c *NodeGroupsGetIamPolicyCall) Context(ctx context.Context) *NodeGroupsGetIamPolicyCall {
110384	c.ctx_ = ctx
110385	return c
110386}
110387
110388// Header returns an http.Header that can be modified by the caller to
110389// add HTTP headers to the request.
110390func (c *NodeGroupsGetIamPolicyCall) Header() http.Header {
110391	if c.header_ == nil {
110392		c.header_ = make(http.Header)
110393	}
110394	return c.header_
110395}
110396
110397func (c *NodeGroupsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
110398	reqHeaders := make(http.Header)
110399	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
110400	for k, v := range c.header_ {
110401		reqHeaders[k] = v
110402	}
110403	reqHeaders.Set("User-Agent", c.s.userAgent())
110404	if c.ifNoneMatch_ != "" {
110405		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
110406	}
110407	var body io.Reader = nil
110408	c.urlParams_.Set("alt", alt)
110409	c.urlParams_.Set("prettyPrint", "false")
110410	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{resource}/getIamPolicy")
110411	urls += "?" + c.urlParams_.Encode()
110412	req, err := http.NewRequest("GET", urls, body)
110413	if err != nil {
110414		return nil, err
110415	}
110416	req.Header = reqHeaders
110417	googleapi.Expand(req.URL, map[string]string{
110418		"project":  c.project,
110419		"zone":     c.zone,
110420		"resource": c.resource,
110421	})
110422	return gensupport.SendRequest(c.ctx_, c.s.client, req)
110423}
110424
110425// Do executes the "compute.nodeGroups.getIamPolicy" call.
110426// Exactly one of *Policy or error will be non-nil. Any non-2xx status
110427// code is an error. Response headers are in either
110428// *Policy.ServerResponse.Header or (if a response was returned at all)
110429// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
110430// check whether the returned error was because http.StatusNotModified
110431// was returned.
110432func (c *NodeGroupsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
110433	gensupport.SetOptions(c.urlParams_, opts...)
110434	res, err := c.doRequest("json")
110435	if res != nil && res.StatusCode == http.StatusNotModified {
110436		if res.Body != nil {
110437			res.Body.Close()
110438		}
110439		return nil, &googleapi.Error{
110440			Code:   res.StatusCode,
110441			Header: res.Header,
110442		}
110443	}
110444	if err != nil {
110445		return nil, err
110446	}
110447	defer googleapi.CloseBody(res)
110448	if err := googleapi.CheckResponse(res); err != nil {
110449		return nil, err
110450	}
110451	ret := &Policy{
110452		ServerResponse: googleapi.ServerResponse{
110453			Header:         res.Header,
110454			HTTPStatusCode: res.StatusCode,
110455		},
110456	}
110457	target := &ret
110458	if err := gensupport.DecodeResponse(target, res); err != nil {
110459		return nil, err
110460	}
110461	return ret, nil
110462	// {
110463	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
110464	//   "httpMethod": "GET",
110465	//   "id": "compute.nodeGroups.getIamPolicy",
110466	//   "parameterOrder": [
110467	//     "project",
110468	//     "zone",
110469	//     "resource"
110470	//   ],
110471	//   "parameters": {
110472	//     "optionsRequestedPolicyVersion": {
110473	//       "description": "Requested IAM Policy version.",
110474	//       "format": "int32",
110475	//       "location": "query",
110476	//       "type": "integer"
110477	//     },
110478	//     "project": {
110479	//       "description": "Project ID for this request.",
110480	//       "location": "path",
110481	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
110482	//       "required": true,
110483	//       "type": "string"
110484	//     },
110485	//     "resource": {
110486	//       "description": "Name or id of the resource for this request.",
110487	//       "location": "path",
110488	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
110489	//       "required": true,
110490	//       "type": "string"
110491	//     },
110492	//     "zone": {
110493	//       "description": "The name of the zone for this request.",
110494	//       "location": "path",
110495	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
110496	//       "required": true,
110497	//       "type": "string"
110498	//     }
110499	//   },
110500	//   "path": "projects/{project}/zones/{zone}/nodeGroups/{resource}/getIamPolicy",
110501	//   "response": {
110502	//     "$ref": "Policy"
110503	//   },
110504	//   "scopes": [
110505	//     "https://www.googleapis.com/auth/cloud-platform",
110506	//     "https://www.googleapis.com/auth/compute",
110507	//     "https://www.googleapis.com/auth/compute.readonly"
110508	//   ]
110509	// }
110510
110511}
110512
110513// method id "compute.nodeGroups.insert":
110514
110515type NodeGroupsInsertCall struct {
110516	s          *Service
110517	project    string
110518	zone       string
110519	nodegroup  *NodeGroup
110520	urlParams_ gensupport.URLParams
110521	ctx_       context.Context
110522	header_    http.Header
110523}
110524
110525// Insert: Creates a NodeGroup resource in the specified project using
110526// the data included in the request.
110527func (r *NodeGroupsService) Insert(project string, zone string, initialNodeCount int64, nodegroup *NodeGroup) *NodeGroupsInsertCall {
110528	c := &NodeGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
110529	c.project = project
110530	c.zone = zone
110531	c.urlParams_.Set("initialNodeCount", fmt.Sprint(initialNodeCount))
110532	c.nodegroup = nodegroup
110533	return c
110534}
110535
110536// RequestId sets the optional parameter "requestId": An optional
110537// request ID to identify requests. Specify a unique request ID so that
110538// if you must retry your request, the server will know to ignore the
110539// request if it has already been completed.
110540//
110541// For example, consider a situation where you make an initial request
110542// and the request times out. If you make the request again with the
110543// same request ID, the server can check if original operation with the
110544// same request ID was received, and if so, will ignore the second
110545// request. This prevents clients from accidentally creating duplicate
110546// commitments.
110547//
110548// The request ID must be a valid UUID with the exception that zero UUID
110549// is not supported (00000000-0000-0000-0000-000000000000).
110550func (c *NodeGroupsInsertCall) RequestId(requestId string) *NodeGroupsInsertCall {
110551	c.urlParams_.Set("requestId", requestId)
110552	return c
110553}
110554
110555// Fields allows partial responses to be retrieved. See
110556// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
110557// for more information.
110558func (c *NodeGroupsInsertCall) Fields(s ...googleapi.Field) *NodeGroupsInsertCall {
110559	c.urlParams_.Set("fields", googleapi.CombineFields(s))
110560	return c
110561}
110562
110563// Context sets the context to be used in this call's Do method. Any
110564// pending HTTP request will be aborted if the provided context is
110565// canceled.
110566func (c *NodeGroupsInsertCall) Context(ctx context.Context) *NodeGroupsInsertCall {
110567	c.ctx_ = ctx
110568	return c
110569}
110570
110571// Header returns an http.Header that can be modified by the caller to
110572// add HTTP headers to the request.
110573func (c *NodeGroupsInsertCall) Header() http.Header {
110574	if c.header_ == nil {
110575		c.header_ = make(http.Header)
110576	}
110577	return c.header_
110578}
110579
110580func (c *NodeGroupsInsertCall) doRequest(alt string) (*http.Response, error) {
110581	reqHeaders := make(http.Header)
110582	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
110583	for k, v := range c.header_ {
110584		reqHeaders[k] = v
110585	}
110586	reqHeaders.Set("User-Agent", c.s.userAgent())
110587	var body io.Reader = nil
110588	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroup)
110589	if err != nil {
110590		return nil, err
110591	}
110592	reqHeaders.Set("Content-Type", "application/json")
110593	c.urlParams_.Set("alt", alt)
110594	c.urlParams_.Set("prettyPrint", "false")
110595	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups")
110596	urls += "?" + c.urlParams_.Encode()
110597	req, err := http.NewRequest("POST", urls, body)
110598	if err != nil {
110599		return nil, err
110600	}
110601	req.Header = reqHeaders
110602	googleapi.Expand(req.URL, map[string]string{
110603		"project": c.project,
110604		"zone":    c.zone,
110605	})
110606	return gensupport.SendRequest(c.ctx_, c.s.client, req)
110607}
110608
110609// Do executes the "compute.nodeGroups.insert" call.
110610// Exactly one of *Operation or error will be non-nil. Any non-2xx
110611// status code is an error. Response headers are in either
110612// *Operation.ServerResponse.Header or (if a response was returned at
110613// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
110614// to check whether the returned error was because
110615// http.StatusNotModified was returned.
110616func (c *NodeGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
110617	gensupport.SetOptions(c.urlParams_, opts...)
110618	res, err := c.doRequest("json")
110619	if res != nil && res.StatusCode == http.StatusNotModified {
110620		if res.Body != nil {
110621			res.Body.Close()
110622		}
110623		return nil, &googleapi.Error{
110624			Code:   res.StatusCode,
110625			Header: res.Header,
110626		}
110627	}
110628	if err != nil {
110629		return nil, err
110630	}
110631	defer googleapi.CloseBody(res)
110632	if err := googleapi.CheckResponse(res); err != nil {
110633		return nil, err
110634	}
110635	ret := &Operation{
110636		ServerResponse: googleapi.ServerResponse{
110637			Header:         res.Header,
110638			HTTPStatusCode: res.StatusCode,
110639		},
110640	}
110641	target := &ret
110642	if err := gensupport.DecodeResponse(target, res); err != nil {
110643		return nil, err
110644	}
110645	return ret, nil
110646	// {
110647	//   "description": "Creates a NodeGroup resource in the specified project using the data included in the request.",
110648	//   "httpMethod": "POST",
110649	//   "id": "compute.nodeGroups.insert",
110650	//   "parameterOrder": [
110651	//     "project",
110652	//     "zone",
110653	//     "initialNodeCount"
110654	//   ],
110655	//   "parameters": {
110656	//     "initialNodeCount": {
110657	//       "description": "Initial count of nodes in the node group.",
110658	//       "format": "int32",
110659	//       "location": "query",
110660	//       "required": true,
110661	//       "type": "integer"
110662	//     },
110663	//     "project": {
110664	//       "description": "Project ID for this request.",
110665	//       "location": "path",
110666	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
110667	//       "required": true,
110668	//       "type": "string"
110669	//     },
110670	//     "requestId": {
110671	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
110672	//       "location": "query",
110673	//       "type": "string"
110674	//     },
110675	//     "zone": {
110676	//       "description": "The name of the zone for this request.",
110677	//       "location": "path",
110678	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
110679	//       "required": true,
110680	//       "type": "string"
110681	//     }
110682	//   },
110683	//   "path": "projects/{project}/zones/{zone}/nodeGroups",
110684	//   "request": {
110685	//     "$ref": "NodeGroup"
110686	//   },
110687	//   "response": {
110688	//     "$ref": "Operation"
110689	//   },
110690	//   "scopes": [
110691	//     "https://www.googleapis.com/auth/cloud-platform",
110692	//     "https://www.googleapis.com/auth/compute"
110693	//   ]
110694	// }
110695
110696}
110697
110698// method id "compute.nodeGroups.list":
110699
110700type NodeGroupsListCall struct {
110701	s            *Service
110702	project      string
110703	zone         string
110704	urlParams_   gensupport.URLParams
110705	ifNoneMatch_ string
110706	ctx_         context.Context
110707	header_      http.Header
110708}
110709
110710// List: Retrieves a list of node groups available to the specified
110711// project. Note: use nodeGroups.listNodes for more details about each
110712// group.
110713func (r *NodeGroupsService) List(project string, zone string) *NodeGroupsListCall {
110714	c := &NodeGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
110715	c.project = project
110716	c.zone = zone
110717	return c
110718}
110719
110720// Filter sets the optional parameter "filter": A filter expression that
110721// filters resources listed in the response. The expression must specify
110722// the field name, a comparison operator, and the value that you want to
110723// use for filtering. The value must be a string, a number, or a
110724// boolean. The comparison operator must be either `=`, `!=`, `>`, or
110725// `<`.
110726//
110727// For example, if you are filtering Compute Engine instances, you can
110728// exclude instances named `example-instance` by specifying `name !=
110729// example-instance`.
110730//
110731// You can also filter nested fields. For example, you could specify
110732// `scheduling.automaticRestart = false` to include instances only if
110733// they are not scheduled for automatic restarts. You can use filtering
110734// on nested fields to filter based on resource labels.
110735//
110736// To filter on multiple expressions, provide each separate expression
110737// within parentheses. For example: ``` (scheduling.automaticRestart =
110738// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
110739// is an `AND` expression. However, you can include `AND` and `OR`
110740// expressions explicitly. For example: ``` (cpuPlatform = "Intel
110741// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
110742// (scheduling.automaticRestart = true) ```
110743func (c *NodeGroupsListCall) Filter(filter string) *NodeGroupsListCall {
110744	c.urlParams_.Set("filter", filter)
110745	return c
110746}
110747
110748// MaxResults sets the optional parameter "maxResults": The maximum
110749// number of results per page that should be returned. If the number of
110750// available results is larger than `maxResults`, Compute Engine returns
110751// a `nextPageToken` that can be used to get the next page of results in
110752// subsequent list requests. Acceptable values are `0` to `500`,
110753// inclusive. (Default: `500`)
110754func (c *NodeGroupsListCall) MaxResults(maxResults int64) *NodeGroupsListCall {
110755	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
110756	return c
110757}
110758
110759// OrderBy sets the optional parameter "orderBy": Sorts list results by
110760// a certain order. By default, results are returned in alphanumerical
110761// order based on the resource name.
110762//
110763// You can also sort results in descending order based on the creation
110764// timestamp using `orderBy="creationTimestamp desc". This sorts
110765// results based on the `creationTimestamp` field in reverse
110766// chronological order (newest result first). Use this to sort resources
110767// like operations so that the newest operation is returned
110768// first.
110769//
110770// Currently, only sorting by `name` or `creationTimestamp desc` is
110771// supported.
110772func (c *NodeGroupsListCall) OrderBy(orderBy string) *NodeGroupsListCall {
110773	c.urlParams_.Set("orderBy", orderBy)
110774	return c
110775}
110776
110777// PageToken sets the optional parameter "pageToken": Specifies a page
110778// token to use. Set `pageToken` to the `nextPageToken` returned by a
110779// previous list request to get the next page of results.
110780func (c *NodeGroupsListCall) PageToken(pageToken string) *NodeGroupsListCall {
110781	c.urlParams_.Set("pageToken", pageToken)
110782	return c
110783}
110784
110785// ReturnPartialSuccess sets the optional parameter
110786// "returnPartialSuccess": Opt-in for partial success behavior which
110787// provides partial results in case of failure. The default value is
110788// false.
110789func (c *NodeGroupsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NodeGroupsListCall {
110790	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
110791	return c
110792}
110793
110794// Fields allows partial responses to be retrieved. See
110795// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
110796// for more information.
110797func (c *NodeGroupsListCall) Fields(s ...googleapi.Field) *NodeGroupsListCall {
110798	c.urlParams_.Set("fields", googleapi.CombineFields(s))
110799	return c
110800}
110801
110802// IfNoneMatch sets the optional parameter which makes the operation
110803// fail if the object's ETag matches the given value. This is useful for
110804// getting updates only after the object has changed since the last
110805// request. Use googleapi.IsNotModified to check whether the response
110806// error from Do is the result of In-None-Match.
110807func (c *NodeGroupsListCall) IfNoneMatch(entityTag string) *NodeGroupsListCall {
110808	c.ifNoneMatch_ = entityTag
110809	return c
110810}
110811
110812// Context sets the context to be used in this call's Do method. Any
110813// pending HTTP request will be aborted if the provided context is
110814// canceled.
110815func (c *NodeGroupsListCall) Context(ctx context.Context) *NodeGroupsListCall {
110816	c.ctx_ = ctx
110817	return c
110818}
110819
110820// Header returns an http.Header that can be modified by the caller to
110821// add HTTP headers to the request.
110822func (c *NodeGroupsListCall) Header() http.Header {
110823	if c.header_ == nil {
110824		c.header_ = make(http.Header)
110825	}
110826	return c.header_
110827}
110828
110829func (c *NodeGroupsListCall) doRequest(alt string) (*http.Response, error) {
110830	reqHeaders := make(http.Header)
110831	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
110832	for k, v := range c.header_ {
110833		reqHeaders[k] = v
110834	}
110835	reqHeaders.Set("User-Agent", c.s.userAgent())
110836	if c.ifNoneMatch_ != "" {
110837		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
110838	}
110839	var body io.Reader = nil
110840	c.urlParams_.Set("alt", alt)
110841	c.urlParams_.Set("prettyPrint", "false")
110842	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups")
110843	urls += "?" + c.urlParams_.Encode()
110844	req, err := http.NewRequest("GET", urls, body)
110845	if err != nil {
110846		return nil, err
110847	}
110848	req.Header = reqHeaders
110849	googleapi.Expand(req.URL, map[string]string{
110850		"project": c.project,
110851		"zone":    c.zone,
110852	})
110853	return gensupport.SendRequest(c.ctx_, c.s.client, req)
110854}
110855
110856// Do executes the "compute.nodeGroups.list" call.
110857// Exactly one of *NodeGroupList or error will be non-nil. Any non-2xx
110858// status code is an error. Response headers are in either
110859// *NodeGroupList.ServerResponse.Header or (if a response was returned
110860// at all) in error.(*googleapi.Error).Header. Use
110861// googleapi.IsNotModified to check whether the returned error was
110862// because http.StatusNotModified was returned.
110863func (c *NodeGroupsListCall) Do(opts ...googleapi.CallOption) (*NodeGroupList, error) {
110864	gensupport.SetOptions(c.urlParams_, opts...)
110865	res, err := c.doRequest("json")
110866	if res != nil && res.StatusCode == http.StatusNotModified {
110867		if res.Body != nil {
110868			res.Body.Close()
110869		}
110870		return nil, &googleapi.Error{
110871			Code:   res.StatusCode,
110872			Header: res.Header,
110873		}
110874	}
110875	if err != nil {
110876		return nil, err
110877	}
110878	defer googleapi.CloseBody(res)
110879	if err := googleapi.CheckResponse(res); err != nil {
110880		return nil, err
110881	}
110882	ret := &NodeGroupList{
110883		ServerResponse: googleapi.ServerResponse{
110884			Header:         res.Header,
110885			HTTPStatusCode: res.StatusCode,
110886		},
110887	}
110888	target := &ret
110889	if err := gensupport.DecodeResponse(target, res); err != nil {
110890		return nil, err
110891	}
110892	return ret, nil
110893	// {
110894	//   "description": "Retrieves a list of node groups available to the specified project. Note: use nodeGroups.listNodes for more details about each group.",
110895	//   "httpMethod": "GET",
110896	//   "id": "compute.nodeGroups.list",
110897	//   "parameterOrder": [
110898	//     "project",
110899	//     "zone"
110900	//   ],
110901	//   "parameters": {
110902	//     "filter": {
110903	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
110904	//       "location": "query",
110905	//       "type": "string"
110906	//     },
110907	//     "maxResults": {
110908	//       "default": "500",
110909	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
110910	//       "format": "uint32",
110911	//       "location": "query",
110912	//       "minimum": "0",
110913	//       "type": "integer"
110914	//     },
110915	//     "orderBy": {
110916	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
110917	//       "location": "query",
110918	//       "type": "string"
110919	//     },
110920	//     "pageToken": {
110921	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
110922	//       "location": "query",
110923	//       "type": "string"
110924	//     },
110925	//     "project": {
110926	//       "description": "Project ID for this request.",
110927	//       "location": "path",
110928	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
110929	//       "required": true,
110930	//       "type": "string"
110931	//     },
110932	//     "returnPartialSuccess": {
110933	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
110934	//       "location": "query",
110935	//       "type": "boolean"
110936	//     },
110937	//     "zone": {
110938	//       "description": "The name of the zone for this request.",
110939	//       "location": "path",
110940	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
110941	//       "required": true,
110942	//       "type": "string"
110943	//     }
110944	//   },
110945	//   "path": "projects/{project}/zones/{zone}/nodeGroups",
110946	//   "response": {
110947	//     "$ref": "NodeGroupList"
110948	//   },
110949	//   "scopes": [
110950	//     "https://www.googleapis.com/auth/cloud-platform",
110951	//     "https://www.googleapis.com/auth/compute",
110952	//     "https://www.googleapis.com/auth/compute.readonly"
110953	//   ]
110954	// }
110955
110956}
110957
110958// Pages invokes f for each page of results.
110959// A non-nil error returned from f will halt the iteration.
110960// The provided context supersedes any context provided to the Context method.
110961func (c *NodeGroupsListCall) Pages(ctx context.Context, f func(*NodeGroupList) error) error {
110962	c.ctx_ = ctx
110963	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
110964	for {
110965		x, err := c.Do()
110966		if err != nil {
110967			return err
110968		}
110969		if err := f(x); err != nil {
110970			return err
110971		}
110972		if x.NextPageToken == "" {
110973			return nil
110974		}
110975		c.PageToken(x.NextPageToken)
110976	}
110977}
110978
110979// method id "compute.nodeGroups.listNodes":
110980
110981type NodeGroupsListNodesCall struct {
110982	s          *Service
110983	project    string
110984	zone       string
110985	nodeGroup  string
110986	urlParams_ gensupport.URLParams
110987	ctx_       context.Context
110988	header_    http.Header
110989}
110990
110991// ListNodes: Lists nodes in the node group.
110992func (r *NodeGroupsService) ListNodes(project string, zone string, nodeGroup string) *NodeGroupsListNodesCall {
110993	c := &NodeGroupsListNodesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
110994	c.project = project
110995	c.zone = zone
110996	c.nodeGroup = nodeGroup
110997	return c
110998}
110999
111000// Filter sets the optional parameter "filter": A filter expression that
111001// filters resources listed in the response. The expression must specify
111002// the field name, a comparison operator, and the value that you want to
111003// use for filtering. The value must be a string, a number, or a
111004// boolean. The comparison operator must be either `=`, `!=`, `>`, or
111005// `<`.
111006//
111007// For example, if you are filtering Compute Engine instances, you can
111008// exclude instances named `example-instance` by specifying `name !=
111009// example-instance`.
111010//
111011// You can also filter nested fields. For example, you could specify
111012// `scheduling.automaticRestart = false` to include instances only if
111013// they are not scheduled for automatic restarts. You can use filtering
111014// on nested fields to filter based on resource labels.
111015//
111016// To filter on multiple expressions, provide each separate expression
111017// within parentheses. For example: ``` (scheduling.automaticRestart =
111018// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
111019// is an `AND` expression. However, you can include `AND` and `OR`
111020// expressions explicitly. For example: ``` (cpuPlatform = "Intel
111021// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
111022// (scheduling.automaticRestart = true) ```
111023func (c *NodeGroupsListNodesCall) Filter(filter string) *NodeGroupsListNodesCall {
111024	c.urlParams_.Set("filter", filter)
111025	return c
111026}
111027
111028// MaxResults sets the optional parameter "maxResults": The maximum
111029// number of results per page that should be returned. If the number of
111030// available results is larger than `maxResults`, Compute Engine returns
111031// a `nextPageToken` that can be used to get the next page of results in
111032// subsequent list requests. Acceptable values are `0` to `500`,
111033// inclusive. (Default: `500`)
111034func (c *NodeGroupsListNodesCall) MaxResults(maxResults int64) *NodeGroupsListNodesCall {
111035	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
111036	return c
111037}
111038
111039// OrderBy sets the optional parameter "orderBy": Sorts list results by
111040// a certain order. By default, results are returned in alphanumerical
111041// order based on the resource name.
111042//
111043// You can also sort results in descending order based on the creation
111044// timestamp using `orderBy="creationTimestamp desc". This sorts
111045// results based on the `creationTimestamp` field in reverse
111046// chronological order (newest result first). Use this to sort resources
111047// like operations so that the newest operation is returned
111048// first.
111049//
111050// Currently, only sorting by `name` or `creationTimestamp desc` is
111051// supported.
111052func (c *NodeGroupsListNodesCall) OrderBy(orderBy string) *NodeGroupsListNodesCall {
111053	c.urlParams_.Set("orderBy", orderBy)
111054	return c
111055}
111056
111057// PageToken sets the optional parameter "pageToken": Specifies a page
111058// token to use. Set `pageToken` to the `nextPageToken` returned by a
111059// previous list request to get the next page of results.
111060func (c *NodeGroupsListNodesCall) PageToken(pageToken string) *NodeGroupsListNodesCall {
111061	c.urlParams_.Set("pageToken", pageToken)
111062	return c
111063}
111064
111065// ReturnPartialSuccess sets the optional parameter
111066// "returnPartialSuccess": Opt-in for partial success behavior which
111067// provides partial results in case of failure. The default value is
111068// false.
111069func (c *NodeGroupsListNodesCall) ReturnPartialSuccess(returnPartialSuccess bool) *NodeGroupsListNodesCall {
111070	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
111071	return c
111072}
111073
111074// Fields allows partial responses to be retrieved. See
111075// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111076// for more information.
111077func (c *NodeGroupsListNodesCall) Fields(s ...googleapi.Field) *NodeGroupsListNodesCall {
111078	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111079	return c
111080}
111081
111082// Context sets the context to be used in this call's Do method. Any
111083// pending HTTP request will be aborted if the provided context is
111084// canceled.
111085func (c *NodeGroupsListNodesCall) Context(ctx context.Context) *NodeGroupsListNodesCall {
111086	c.ctx_ = ctx
111087	return c
111088}
111089
111090// Header returns an http.Header that can be modified by the caller to
111091// add HTTP headers to the request.
111092func (c *NodeGroupsListNodesCall) Header() http.Header {
111093	if c.header_ == nil {
111094		c.header_ = make(http.Header)
111095	}
111096	return c.header_
111097}
111098
111099func (c *NodeGroupsListNodesCall) doRequest(alt string) (*http.Response, error) {
111100	reqHeaders := make(http.Header)
111101	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
111102	for k, v := range c.header_ {
111103		reqHeaders[k] = v
111104	}
111105	reqHeaders.Set("User-Agent", c.s.userAgent())
111106	var body io.Reader = nil
111107	c.urlParams_.Set("alt", alt)
111108	c.urlParams_.Set("prettyPrint", "false")
111109	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/listNodes")
111110	urls += "?" + c.urlParams_.Encode()
111111	req, err := http.NewRequest("POST", urls, body)
111112	if err != nil {
111113		return nil, err
111114	}
111115	req.Header = reqHeaders
111116	googleapi.Expand(req.URL, map[string]string{
111117		"project":   c.project,
111118		"zone":      c.zone,
111119		"nodeGroup": c.nodeGroup,
111120	})
111121	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111122}
111123
111124// Do executes the "compute.nodeGroups.listNodes" call.
111125// Exactly one of *NodeGroupsListNodes or error will be non-nil. Any
111126// non-2xx status code is an error. Response headers are in either
111127// *NodeGroupsListNodes.ServerResponse.Header or (if a response was
111128// returned at all) in error.(*googleapi.Error).Header. Use
111129// googleapi.IsNotModified to check whether the returned error was
111130// because http.StatusNotModified was returned.
111131func (c *NodeGroupsListNodesCall) Do(opts ...googleapi.CallOption) (*NodeGroupsListNodes, error) {
111132	gensupport.SetOptions(c.urlParams_, opts...)
111133	res, err := c.doRequest("json")
111134	if res != nil && res.StatusCode == http.StatusNotModified {
111135		if res.Body != nil {
111136			res.Body.Close()
111137		}
111138		return nil, &googleapi.Error{
111139			Code:   res.StatusCode,
111140			Header: res.Header,
111141		}
111142	}
111143	if err != nil {
111144		return nil, err
111145	}
111146	defer googleapi.CloseBody(res)
111147	if err := googleapi.CheckResponse(res); err != nil {
111148		return nil, err
111149	}
111150	ret := &NodeGroupsListNodes{
111151		ServerResponse: googleapi.ServerResponse{
111152			Header:         res.Header,
111153			HTTPStatusCode: res.StatusCode,
111154		},
111155	}
111156	target := &ret
111157	if err := gensupport.DecodeResponse(target, res); err != nil {
111158		return nil, err
111159	}
111160	return ret, nil
111161	// {
111162	//   "description": "Lists nodes in the node group.",
111163	//   "httpMethod": "POST",
111164	//   "id": "compute.nodeGroups.listNodes",
111165	//   "parameterOrder": [
111166	//     "project",
111167	//     "zone",
111168	//     "nodeGroup"
111169	//   ],
111170	//   "parameters": {
111171	//     "filter": {
111172	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
111173	//       "location": "query",
111174	//       "type": "string"
111175	//     },
111176	//     "maxResults": {
111177	//       "default": "500",
111178	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
111179	//       "format": "uint32",
111180	//       "location": "query",
111181	//       "minimum": "0",
111182	//       "type": "integer"
111183	//     },
111184	//     "nodeGroup": {
111185	//       "description": "Name of the NodeGroup resource whose nodes you want to list.",
111186	//       "location": "path",
111187	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
111188	//       "required": true,
111189	//       "type": "string"
111190	//     },
111191	//     "orderBy": {
111192	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
111193	//       "location": "query",
111194	//       "type": "string"
111195	//     },
111196	//     "pageToken": {
111197	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
111198	//       "location": "query",
111199	//       "type": "string"
111200	//     },
111201	//     "project": {
111202	//       "description": "Project ID for this request.",
111203	//       "location": "path",
111204	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
111205	//       "required": true,
111206	//       "type": "string"
111207	//     },
111208	//     "returnPartialSuccess": {
111209	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
111210	//       "location": "query",
111211	//       "type": "boolean"
111212	//     },
111213	//     "zone": {
111214	//       "description": "The name of the zone for this request.",
111215	//       "location": "path",
111216	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
111217	//       "required": true,
111218	//       "type": "string"
111219	//     }
111220	//   },
111221	//   "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/listNodes",
111222	//   "response": {
111223	//     "$ref": "NodeGroupsListNodes"
111224	//   },
111225	//   "scopes": [
111226	//     "https://www.googleapis.com/auth/cloud-platform",
111227	//     "https://www.googleapis.com/auth/compute",
111228	//     "https://www.googleapis.com/auth/compute.readonly"
111229	//   ]
111230	// }
111231
111232}
111233
111234// Pages invokes f for each page of results.
111235// A non-nil error returned from f will halt the iteration.
111236// The provided context supersedes any context provided to the Context method.
111237func (c *NodeGroupsListNodesCall) Pages(ctx context.Context, f func(*NodeGroupsListNodes) error) error {
111238	c.ctx_ = ctx
111239	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
111240	for {
111241		x, err := c.Do()
111242		if err != nil {
111243			return err
111244		}
111245		if err := f(x); err != nil {
111246			return err
111247		}
111248		if x.NextPageToken == "" {
111249			return nil
111250		}
111251		c.PageToken(x.NextPageToken)
111252	}
111253}
111254
111255// method id "compute.nodeGroups.patch":
111256
111257type NodeGroupsPatchCall struct {
111258	s          *Service
111259	project    string
111260	zone       string
111261	nodeGroup  string
111262	nodegroup  *NodeGroup
111263	urlParams_ gensupport.URLParams
111264	ctx_       context.Context
111265	header_    http.Header
111266}
111267
111268// Patch: Updates the specified node group.
111269func (r *NodeGroupsService) Patch(project string, zone string, nodeGroup string, nodegroup *NodeGroup) *NodeGroupsPatchCall {
111270	c := &NodeGroupsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111271	c.project = project
111272	c.zone = zone
111273	c.nodeGroup = nodeGroup
111274	c.nodegroup = nodegroup
111275	return c
111276}
111277
111278// RequestId sets the optional parameter "requestId": An optional
111279// request ID to identify requests. Specify a unique request ID so that
111280// if you must retry your request, the server will know to ignore the
111281// request if it has already been completed.
111282//
111283// For example, consider a situation where you make an initial request
111284// and the request times out. If you make the request again with the
111285// same request ID, the server can check if original operation with the
111286// same request ID was received, and if so, will ignore the second
111287// request. This prevents clients from accidentally creating duplicate
111288// commitments.
111289//
111290// The request ID must be a valid UUID with the exception that zero UUID
111291// is not supported (00000000-0000-0000-0000-000000000000).
111292func (c *NodeGroupsPatchCall) RequestId(requestId string) *NodeGroupsPatchCall {
111293	c.urlParams_.Set("requestId", requestId)
111294	return c
111295}
111296
111297// Fields allows partial responses to be retrieved. See
111298// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111299// for more information.
111300func (c *NodeGroupsPatchCall) Fields(s ...googleapi.Field) *NodeGroupsPatchCall {
111301	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111302	return c
111303}
111304
111305// Context sets the context to be used in this call's Do method. Any
111306// pending HTTP request will be aborted if the provided context is
111307// canceled.
111308func (c *NodeGroupsPatchCall) Context(ctx context.Context) *NodeGroupsPatchCall {
111309	c.ctx_ = ctx
111310	return c
111311}
111312
111313// Header returns an http.Header that can be modified by the caller to
111314// add HTTP headers to the request.
111315func (c *NodeGroupsPatchCall) Header() http.Header {
111316	if c.header_ == nil {
111317		c.header_ = make(http.Header)
111318	}
111319	return c.header_
111320}
111321
111322func (c *NodeGroupsPatchCall) doRequest(alt string) (*http.Response, error) {
111323	reqHeaders := make(http.Header)
111324	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
111325	for k, v := range c.header_ {
111326		reqHeaders[k] = v
111327	}
111328	reqHeaders.Set("User-Agent", c.s.userAgent())
111329	var body io.Reader = nil
111330	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroup)
111331	if err != nil {
111332		return nil, err
111333	}
111334	reqHeaders.Set("Content-Type", "application/json")
111335	c.urlParams_.Set("alt", alt)
111336	c.urlParams_.Set("prettyPrint", "false")
111337	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}")
111338	urls += "?" + c.urlParams_.Encode()
111339	req, err := http.NewRequest("PATCH", urls, body)
111340	if err != nil {
111341		return nil, err
111342	}
111343	req.Header = reqHeaders
111344	googleapi.Expand(req.URL, map[string]string{
111345		"project":   c.project,
111346		"zone":      c.zone,
111347		"nodeGroup": c.nodeGroup,
111348	})
111349	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111350}
111351
111352// Do executes the "compute.nodeGroups.patch" call.
111353// Exactly one of *Operation or error will be non-nil. Any non-2xx
111354// status code is an error. Response headers are in either
111355// *Operation.ServerResponse.Header or (if a response was returned at
111356// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
111357// to check whether the returned error was because
111358// http.StatusNotModified was returned.
111359func (c *NodeGroupsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
111360	gensupport.SetOptions(c.urlParams_, opts...)
111361	res, err := c.doRequest("json")
111362	if res != nil && res.StatusCode == http.StatusNotModified {
111363		if res.Body != nil {
111364			res.Body.Close()
111365		}
111366		return nil, &googleapi.Error{
111367			Code:   res.StatusCode,
111368			Header: res.Header,
111369		}
111370	}
111371	if err != nil {
111372		return nil, err
111373	}
111374	defer googleapi.CloseBody(res)
111375	if err := googleapi.CheckResponse(res); err != nil {
111376		return nil, err
111377	}
111378	ret := &Operation{
111379		ServerResponse: googleapi.ServerResponse{
111380			Header:         res.Header,
111381			HTTPStatusCode: res.StatusCode,
111382		},
111383	}
111384	target := &ret
111385	if err := gensupport.DecodeResponse(target, res); err != nil {
111386		return nil, err
111387	}
111388	return ret, nil
111389	// {
111390	//   "description": "Updates the specified node group.",
111391	//   "httpMethod": "PATCH",
111392	//   "id": "compute.nodeGroups.patch",
111393	//   "parameterOrder": [
111394	//     "project",
111395	//     "zone",
111396	//     "nodeGroup"
111397	//   ],
111398	//   "parameters": {
111399	//     "nodeGroup": {
111400	//       "description": "Name of the NodeGroup resource to update.",
111401	//       "location": "path",
111402	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
111403	//       "required": true,
111404	//       "type": "string"
111405	//     },
111406	//     "project": {
111407	//       "description": "Project ID for this request.",
111408	//       "location": "path",
111409	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
111410	//       "required": true,
111411	//       "type": "string"
111412	//     },
111413	//     "requestId": {
111414	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
111415	//       "location": "query",
111416	//       "type": "string"
111417	//     },
111418	//     "zone": {
111419	//       "description": "The name of the zone for this request.",
111420	//       "location": "path",
111421	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
111422	//       "required": true,
111423	//       "type": "string"
111424	//     }
111425	//   },
111426	//   "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}",
111427	//   "request": {
111428	//     "$ref": "NodeGroup"
111429	//   },
111430	//   "response": {
111431	//     "$ref": "Operation"
111432	//   },
111433	//   "scopes": [
111434	//     "https://www.googleapis.com/auth/cloud-platform",
111435	//     "https://www.googleapis.com/auth/compute"
111436	//   ]
111437	// }
111438
111439}
111440
111441// method id "compute.nodeGroups.setIamPolicy":
111442
111443type NodeGroupsSetIamPolicyCall struct {
111444	s                    *Service
111445	project              string
111446	zone                 string
111447	resource             string
111448	zonesetpolicyrequest *ZoneSetPolicyRequest
111449	urlParams_           gensupport.URLParams
111450	ctx_                 context.Context
111451	header_              http.Header
111452}
111453
111454// SetIamPolicy: Sets the access control policy on the specified
111455// resource. Replaces any existing policy.
111456func (r *NodeGroupsService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *NodeGroupsSetIamPolicyCall {
111457	c := &NodeGroupsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111458	c.project = project
111459	c.zone = zone
111460	c.resource = resource
111461	c.zonesetpolicyrequest = zonesetpolicyrequest
111462	return c
111463}
111464
111465// Fields allows partial responses to be retrieved. See
111466// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111467// for more information.
111468func (c *NodeGroupsSetIamPolicyCall) Fields(s ...googleapi.Field) *NodeGroupsSetIamPolicyCall {
111469	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111470	return c
111471}
111472
111473// Context sets the context to be used in this call's Do method. Any
111474// pending HTTP request will be aborted if the provided context is
111475// canceled.
111476func (c *NodeGroupsSetIamPolicyCall) Context(ctx context.Context) *NodeGroupsSetIamPolicyCall {
111477	c.ctx_ = ctx
111478	return c
111479}
111480
111481// Header returns an http.Header that can be modified by the caller to
111482// add HTTP headers to the request.
111483func (c *NodeGroupsSetIamPolicyCall) Header() http.Header {
111484	if c.header_ == nil {
111485		c.header_ = make(http.Header)
111486	}
111487	return c.header_
111488}
111489
111490func (c *NodeGroupsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
111491	reqHeaders := make(http.Header)
111492	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
111493	for k, v := range c.header_ {
111494		reqHeaders[k] = v
111495	}
111496	reqHeaders.Set("User-Agent", c.s.userAgent())
111497	var body io.Reader = nil
111498	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetpolicyrequest)
111499	if err != nil {
111500		return nil, err
111501	}
111502	reqHeaders.Set("Content-Type", "application/json")
111503	c.urlParams_.Set("alt", alt)
111504	c.urlParams_.Set("prettyPrint", "false")
111505	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{resource}/setIamPolicy")
111506	urls += "?" + c.urlParams_.Encode()
111507	req, err := http.NewRequest("POST", urls, body)
111508	if err != nil {
111509		return nil, err
111510	}
111511	req.Header = reqHeaders
111512	googleapi.Expand(req.URL, map[string]string{
111513		"project":  c.project,
111514		"zone":     c.zone,
111515		"resource": c.resource,
111516	})
111517	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111518}
111519
111520// Do executes the "compute.nodeGroups.setIamPolicy" call.
111521// Exactly one of *Policy or error will be non-nil. Any non-2xx status
111522// code is an error. Response headers are in either
111523// *Policy.ServerResponse.Header or (if a response was returned at all)
111524// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
111525// check whether the returned error was because http.StatusNotModified
111526// was returned.
111527func (c *NodeGroupsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
111528	gensupport.SetOptions(c.urlParams_, opts...)
111529	res, err := c.doRequest("json")
111530	if res != nil && res.StatusCode == http.StatusNotModified {
111531		if res.Body != nil {
111532			res.Body.Close()
111533		}
111534		return nil, &googleapi.Error{
111535			Code:   res.StatusCode,
111536			Header: res.Header,
111537		}
111538	}
111539	if err != nil {
111540		return nil, err
111541	}
111542	defer googleapi.CloseBody(res)
111543	if err := googleapi.CheckResponse(res); err != nil {
111544		return nil, err
111545	}
111546	ret := &Policy{
111547		ServerResponse: googleapi.ServerResponse{
111548			Header:         res.Header,
111549			HTTPStatusCode: res.StatusCode,
111550		},
111551	}
111552	target := &ret
111553	if err := gensupport.DecodeResponse(target, res); err != nil {
111554		return nil, err
111555	}
111556	return ret, nil
111557	// {
111558	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
111559	//   "httpMethod": "POST",
111560	//   "id": "compute.nodeGroups.setIamPolicy",
111561	//   "parameterOrder": [
111562	//     "project",
111563	//     "zone",
111564	//     "resource"
111565	//   ],
111566	//   "parameters": {
111567	//     "project": {
111568	//       "description": "Project ID for this request.",
111569	//       "location": "path",
111570	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
111571	//       "required": true,
111572	//       "type": "string"
111573	//     },
111574	//     "resource": {
111575	//       "description": "Name or id of the resource for this request.",
111576	//       "location": "path",
111577	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
111578	//       "required": true,
111579	//       "type": "string"
111580	//     },
111581	//     "zone": {
111582	//       "description": "The name of the zone for this request.",
111583	//       "location": "path",
111584	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
111585	//       "required": true,
111586	//       "type": "string"
111587	//     }
111588	//   },
111589	//   "path": "projects/{project}/zones/{zone}/nodeGroups/{resource}/setIamPolicy",
111590	//   "request": {
111591	//     "$ref": "ZoneSetPolicyRequest"
111592	//   },
111593	//   "response": {
111594	//     "$ref": "Policy"
111595	//   },
111596	//   "scopes": [
111597	//     "https://www.googleapis.com/auth/cloud-platform",
111598	//     "https://www.googleapis.com/auth/compute"
111599	//   ]
111600	// }
111601
111602}
111603
111604// method id "compute.nodeGroups.setNodeTemplate":
111605
111606type NodeGroupsSetNodeTemplateCall struct {
111607	s                                *Service
111608	project                          string
111609	zone                             string
111610	nodeGroup                        string
111611	nodegroupssetnodetemplaterequest *NodeGroupsSetNodeTemplateRequest
111612	urlParams_                       gensupport.URLParams
111613	ctx_                             context.Context
111614	header_                          http.Header
111615}
111616
111617// SetNodeTemplate: Updates the node template of the node group.
111618func (r *NodeGroupsService) SetNodeTemplate(project string, zone string, nodeGroup string, nodegroupssetnodetemplaterequest *NodeGroupsSetNodeTemplateRequest) *NodeGroupsSetNodeTemplateCall {
111619	c := &NodeGroupsSetNodeTemplateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111620	c.project = project
111621	c.zone = zone
111622	c.nodeGroup = nodeGroup
111623	c.nodegroupssetnodetemplaterequest = nodegroupssetnodetemplaterequest
111624	return c
111625}
111626
111627// RequestId sets the optional parameter "requestId": An optional
111628// request ID to identify requests. Specify a unique request ID so that
111629// if you must retry your request, the server will know to ignore the
111630// request if it has already been completed.
111631//
111632// For example, consider a situation where you make an initial request
111633// and the request times out. If you make the request again with the
111634// same request ID, the server can check if original operation with the
111635// same request ID was received, and if so, will ignore the second
111636// request. This prevents clients from accidentally creating duplicate
111637// commitments.
111638//
111639// The request ID must be a valid UUID with the exception that zero UUID
111640// is not supported (00000000-0000-0000-0000-000000000000).
111641func (c *NodeGroupsSetNodeTemplateCall) RequestId(requestId string) *NodeGroupsSetNodeTemplateCall {
111642	c.urlParams_.Set("requestId", requestId)
111643	return c
111644}
111645
111646// Fields allows partial responses to be retrieved. See
111647// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111648// for more information.
111649func (c *NodeGroupsSetNodeTemplateCall) Fields(s ...googleapi.Field) *NodeGroupsSetNodeTemplateCall {
111650	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111651	return c
111652}
111653
111654// Context sets the context to be used in this call's Do method. Any
111655// pending HTTP request will be aborted if the provided context is
111656// canceled.
111657func (c *NodeGroupsSetNodeTemplateCall) Context(ctx context.Context) *NodeGroupsSetNodeTemplateCall {
111658	c.ctx_ = ctx
111659	return c
111660}
111661
111662// Header returns an http.Header that can be modified by the caller to
111663// add HTTP headers to the request.
111664func (c *NodeGroupsSetNodeTemplateCall) Header() http.Header {
111665	if c.header_ == nil {
111666		c.header_ = make(http.Header)
111667	}
111668	return c.header_
111669}
111670
111671func (c *NodeGroupsSetNodeTemplateCall) doRequest(alt string) (*http.Response, error) {
111672	reqHeaders := make(http.Header)
111673	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
111674	for k, v := range c.header_ {
111675		reqHeaders[k] = v
111676	}
111677	reqHeaders.Set("User-Agent", c.s.userAgent())
111678	var body io.Reader = nil
111679	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroupssetnodetemplaterequest)
111680	if err != nil {
111681		return nil, err
111682	}
111683	reqHeaders.Set("Content-Type", "application/json")
111684	c.urlParams_.Set("alt", alt)
111685	c.urlParams_.Set("prettyPrint", "false")
111686	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/setNodeTemplate")
111687	urls += "?" + c.urlParams_.Encode()
111688	req, err := http.NewRequest("POST", urls, body)
111689	if err != nil {
111690		return nil, err
111691	}
111692	req.Header = reqHeaders
111693	googleapi.Expand(req.URL, map[string]string{
111694		"project":   c.project,
111695		"zone":      c.zone,
111696		"nodeGroup": c.nodeGroup,
111697	})
111698	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111699}
111700
111701// Do executes the "compute.nodeGroups.setNodeTemplate" call.
111702// Exactly one of *Operation or error will be non-nil. Any non-2xx
111703// status code is an error. Response headers are in either
111704// *Operation.ServerResponse.Header or (if a response was returned at
111705// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
111706// to check whether the returned error was because
111707// http.StatusNotModified was returned.
111708func (c *NodeGroupsSetNodeTemplateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
111709	gensupport.SetOptions(c.urlParams_, opts...)
111710	res, err := c.doRequest("json")
111711	if res != nil && res.StatusCode == http.StatusNotModified {
111712		if res.Body != nil {
111713			res.Body.Close()
111714		}
111715		return nil, &googleapi.Error{
111716			Code:   res.StatusCode,
111717			Header: res.Header,
111718		}
111719	}
111720	if err != nil {
111721		return nil, err
111722	}
111723	defer googleapi.CloseBody(res)
111724	if err := googleapi.CheckResponse(res); err != nil {
111725		return nil, err
111726	}
111727	ret := &Operation{
111728		ServerResponse: googleapi.ServerResponse{
111729			Header:         res.Header,
111730			HTTPStatusCode: res.StatusCode,
111731		},
111732	}
111733	target := &ret
111734	if err := gensupport.DecodeResponse(target, res); err != nil {
111735		return nil, err
111736	}
111737	return ret, nil
111738	// {
111739	//   "description": "Updates the node template of the node group.",
111740	//   "httpMethod": "POST",
111741	//   "id": "compute.nodeGroups.setNodeTemplate",
111742	//   "parameterOrder": [
111743	//     "project",
111744	//     "zone",
111745	//     "nodeGroup"
111746	//   ],
111747	//   "parameters": {
111748	//     "nodeGroup": {
111749	//       "description": "Name of the NodeGroup resource to update.",
111750	//       "location": "path",
111751	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
111752	//       "required": true,
111753	//       "type": "string"
111754	//     },
111755	//     "project": {
111756	//       "description": "Project ID for this request.",
111757	//       "location": "path",
111758	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
111759	//       "required": true,
111760	//       "type": "string"
111761	//     },
111762	//     "requestId": {
111763	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
111764	//       "location": "query",
111765	//       "type": "string"
111766	//     },
111767	//     "zone": {
111768	//       "description": "The name of the zone for this request.",
111769	//       "location": "path",
111770	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
111771	//       "required": true,
111772	//       "type": "string"
111773	//     }
111774	//   },
111775	//   "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/setNodeTemplate",
111776	//   "request": {
111777	//     "$ref": "NodeGroupsSetNodeTemplateRequest"
111778	//   },
111779	//   "response": {
111780	//     "$ref": "Operation"
111781	//   },
111782	//   "scopes": [
111783	//     "https://www.googleapis.com/auth/cloud-platform",
111784	//     "https://www.googleapis.com/auth/compute"
111785	//   ]
111786	// }
111787
111788}
111789
111790// method id "compute.nodeGroups.testIamPermissions":
111791
111792type NodeGroupsTestIamPermissionsCall struct {
111793	s                      *Service
111794	project                string
111795	zone                   string
111796	resource               string
111797	testpermissionsrequest *TestPermissionsRequest
111798	urlParams_             gensupport.URLParams
111799	ctx_                   context.Context
111800	header_                http.Header
111801}
111802
111803// TestIamPermissions: Returns permissions that a caller has on the
111804// specified resource.
111805func (r *NodeGroupsService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *NodeGroupsTestIamPermissionsCall {
111806	c := &NodeGroupsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111807	c.project = project
111808	c.zone = zone
111809	c.resource = resource
111810	c.testpermissionsrequest = testpermissionsrequest
111811	return c
111812}
111813
111814// Fields allows partial responses to be retrieved. See
111815// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111816// for more information.
111817func (c *NodeGroupsTestIamPermissionsCall) Fields(s ...googleapi.Field) *NodeGroupsTestIamPermissionsCall {
111818	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111819	return c
111820}
111821
111822// Context sets the context to be used in this call's Do method. Any
111823// pending HTTP request will be aborted if the provided context is
111824// canceled.
111825func (c *NodeGroupsTestIamPermissionsCall) Context(ctx context.Context) *NodeGroupsTestIamPermissionsCall {
111826	c.ctx_ = ctx
111827	return c
111828}
111829
111830// Header returns an http.Header that can be modified by the caller to
111831// add HTTP headers to the request.
111832func (c *NodeGroupsTestIamPermissionsCall) Header() http.Header {
111833	if c.header_ == nil {
111834		c.header_ = make(http.Header)
111835	}
111836	return c.header_
111837}
111838
111839func (c *NodeGroupsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
111840	reqHeaders := make(http.Header)
111841	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
111842	for k, v := range c.header_ {
111843		reqHeaders[k] = v
111844	}
111845	reqHeaders.Set("User-Agent", c.s.userAgent())
111846	var body io.Reader = nil
111847	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
111848	if err != nil {
111849		return nil, err
111850	}
111851	reqHeaders.Set("Content-Type", "application/json")
111852	c.urlParams_.Set("alt", alt)
111853	c.urlParams_.Set("prettyPrint", "false")
111854	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{resource}/testIamPermissions")
111855	urls += "?" + c.urlParams_.Encode()
111856	req, err := http.NewRequest("POST", urls, body)
111857	if err != nil {
111858		return nil, err
111859	}
111860	req.Header = reqHeaders
111861	googleapi.Expand(req.URL, map[string]string{
111862		"project":  c.project,
111863		"zone":     c.zone,
111864		"resource": c.resource,
111865	})
111866	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111867}
111868
111869// Do executes the "compute.nodeGroups.testIamPermissions" call.
111870// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
111871// non-2xx status code is an error. Response headers are in either
111872// *TestPermissionsResponse.ServerResponse.Header or (if a response was
111873// returned at all) in error.(*googleapi.Error).Header. Use
111874// googleapi.IsNotModified to check whether the returned error was
111875// because http.StatusNotModified was returned.
111876func (c *NodeGroupsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
111877	gensupport.SetOptions(c.urlParams_, opts...)
111878	res, err := c.doRequest("json")
111879	if res != nil && res.StatusCode == http.StatusNotModified {
111880		if res.Body != nil {
111881			res.Body.Close()
111882		}
111883		return nil, &googleapi.Error{
111884			Code:   res.StatusCode,
111885			Header: res.Header,
111886		}
111887	}
111888	if err != nil {
111889		return nil, err
111890	}
111891	defer googleapi.CloseBody(res)
111892	if err := googleapi.CheckResponse(res); err != nil {
111893		return nil, err
111894	}
111895	ret := &TestPermissionsResponse{
111896		ServerResponse: googleapi.ServerResponse{
111897			Header:         res.Header,
111898			HTTPStatusCode: res.StatusCode,
111899		},
111900	}
111901	target := &ret
111902	if err := gensupport.DecodeResponse(target, res); err != nil {
111903		return nil, err
111904	}
111905	return ret, nil
111906	// {
111907	//   "description": "Returns permissions that a caller has on the specified resource.",
111908	//   "httpMethod": "POST",
111909	//   "id": "compute.nodeGroups.testIamPermissions",
111910	//   "parameterOrder": [
111911	//     "project",
111912	//     "zone",
111913	//     "resource"
111914	//   ],
111915	//   "parameters": {
111916	//     "project": {
111917	//       "description": "Project ID for this request.",
111918	//       "location": "path",
111919	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
111920	//       "required": true,
111921	//       "type": "string"
111922	//     },
111923	//     "resource": {
111924	//       "description": "Name or id of the resource for this request.",
111925	//       "location": "path",
111926	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
111927	//       "required": true,
111928	//       "type": "string"
111929	//     },
111930	//     "zone": {
111931	//       "description": "The name of the zone for this request.",
111932	//       "location": "path",
111933	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
111934	//       "required": true,
111935	//       "type": "string"
111936	//     }
111937	//   },
111938	//   "path": "projects/{project}/zones/{zone}/nodeGroups/{resource}/testIamPermissions",
111939	//   "request": {
111940	//     "$ref": "TestPermissionsRequest"
111941	//   },
111942	//   "response": {
111943	//     "$ref": "TestPermissionsResponse"
111944	//   },
111945	//   "scopes": [
111946	//     "https://www.googleapis.com/auth/cloud-platform",
111947	//     "https://www.googleapis.com/auth/compute",
111948	//     "https://www.googleapis.com/auth/compute.readonly"
111949	//   ]
111950	// }
111951
111952}
111953
111954// method id "compute.nodeTemplates.aggregatedList":
111955
111956type NodeTemplatesAggregatedListCall struct {
111957	s            *Service
111958	project      string
111959	urlParams_   gensupport.URLParams
111960	ifNoneMatch_ string
111961	ctx_         context.Context
111962	header_      http.Header
111963}
111964
111965// AggregatedList: Retrieves an aggregated list of node templates.
111966func (r *NodeTemplatesService) AggregatedList(project string) *NodeTemplatesAggregatedListCall {
111967	c := &NodeTemplatesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111968	c.project = project
111969	return c
111970}
111971
111972// Filter sets the optional parameter "filter": A filter expression that
111973// filters resources listed in the response. The expression must specify
111974// the field name, a comparison operator, and the value that you want to
111975// use for filtering. The value must be a string, a number, or a
111976// boolean. The comparison operator must be either `=`, `!=`, `>`, or
111977// `<`.
111978//
111979// For example, if you are filtering Compute Engine instances, you can
111980// exclude instances named `example-instance` by specifying `name !=
111981// example-instance`.
111982//
111983// You can also filter nested fields. For example, you could specify
111984// `scheduling.automaticRestart = false` to include instances only if
111985// they are not scheduled for automatic restarts. You can use filtering
111986// on nested fields to filter based on resource labels.
111987//
111988// To filter on multiple expressions, provide each separate expression
111989// within parentheses. For example: ``` (scheduling.automaticRestart =
111990// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
111991// is an `AND` expression. However, you can include `AND` and `OR`
111992// expressions explicitly. For example: ``` (cpuPlatform = "Intel
111993// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
111994// (scheduling.automaticRestart = true) ```
111995func (c *NodeTemplatesAggregatedListCall) Filter(filter string) *NodeTemplatesAggregatedListCall {
111996	c.urlParams_.Set("filter", filter)
111997	return c
111998}
111999
112000// IncludeAllScopes sets the optional parameter "includeAllScopes":
112001// Indicates whether every visible scope for each scope type (zone,
112002// region, global) should be included in the response. For new resource
112003// types added after this field, the flag has no effect as new resource
112004// types will always include every visible scope for each scope type in
112005// response. For resource types which predate this field, if this flag
112006// is omitted or false, only scopes of the scope types where the
112007// resource type is expected to be found will be included.
112008func (c *NodeTemplatesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *NodeTemplatesAggregatedListCall {
112009	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
112010	return c
112011}
112012
112013// MaxResults sets the optional parameter "maxResults": The maximum
112014// number of results per page that should be returned. If the number of
112015// available results is larger than `maxResults`, Compute Engine returns
112016// a `nextPageToken` that can be used to get the next page of results in
112017// subsequent list requests. Acceptable values are `0` to `500`,
112018// inclusive. (Default: `500`)
112019func (c *NodeTemplatesAggregatedListCall) MaxResults(maxResults int64) *NodeTemplatesAggregatedListCall {
112020	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
112021	return c
112022}
112023
112024// OrderBy sets the optional parameter "orderBy": Sorts list results by
112025// a certain order. By default, results are returned in alphanumerical
112026// order based on the resource name.
112027//
112028// You can also sort results in descending order based on the creation
112029// timestamp using `orderBy="creationTimestamp desc". This sorts
112030// results based on the `creationTimestamp` field in reverse
112031// chronological order (newest result first). Use this to sort resources
112032// like operations so that the newest operation is returned
112033// first.
112034//
112035// Currently, only sorting by `name` or `creationTimestamp desc` is
112036// supported.
112037func (c *NodeTemplatesAggregatedListCall) OrderBy(orderBy string) *NodeTemplatesAggregatedListCall {
112038	c.urlParams_.Set("orderBy", orderBy)
112039	return c
112040}
112041
112042// PageToken sets the optional parameter "pageToken": Specifies a page
112043// token to use. Set `pageToken` to the `nextPageToken` returned by a
112044// previous list request to get the next page of results.
112045func (c *NodeTemplatesAggregatedListCall) PageToken(pageToken string) *NodeTemplatesAggregatedListCall {
112046	c.urlParams_.Set("pageToken", pageToken)
112047	return c
112048}
112049
112050// ReturnPartialSuccess sets the optional parameter
112051// "returnPartialSuccess": Opt-in for partial success behavior which
112052// provides partial results in case of failure. The default value is
112053// false.
112054func (c *NodeTemplatesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NodeTemplatesAggregatedListCall {
112055	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
112056	return c
112057}
112058
112059// Fields allows partial responses to be retrieved. See
112060// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
112061// for more information.
112062func (c *NodeTemplatesAggregatedListCall) Fields(s ...googleapi.Field) *NodeTemplatesAggregatedListCall {
112063	c.urlParams_.Set("fields", googleapi.CombineFields(s))
112064	return c
112065}
112066
112067// IfNoneMatch sets the optional parameter which makes the operation
112068// fail if the object's ETag matches the given value. This is useful for
112069// getting updates only after the object has changed since the last
112070// request. Use googleapi.IsNotModified to check whether the response
112071// error from Do is the result of In-None-Match.
112072func (c *NodeTemplatesAggregatedListCall) IfNoneMatch(entityTag string) *NodeTemplatesAggregatedListCall {
112073	c.ifNoneMatch_ = entityTag
112074	return c
112075}
112076
112077// Context sets the context to be used in this call's Do method. Any
112078// pending HTTP request will be aborted if the provided context is
112079// canceled.
112080func (c *NodeTemplatesAggregatedListCall) Context(ctx context.Context) *NodeTemplatesAggregatedListCall {
112081	c.ctx_ = ctx
112082	return c
112083}
112084
112085// Header returns an http.Header that can be modified by the caller to
112086// add HTTP headers to the request.
112087func (c *NodeTemplatesAggregatedListCall) Header() http.Header {
112088	if c.header_ == nil {
112089		c.header_ = make(http.Header)
112090	}
112091	return c.header_
112092}
112093
112094func (c *NodeTemplatesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
112095	reqHeaders := make(http.Header)
112096	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
112097	for k, v := range c.header_ {
112098		reqHeaders[k] = v
112099	}
112100	reqHeaders.Set("User-Agent", c.s.userAgent())
112101	if c.ifNoneMatch_ != "" {
112102		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
112103	}
112104	var body io.Reader = nil
112105	c.urlParams_.Set("alt", alt)
112106	c.urlParams_.Set("prettyPrint", "false")
112107	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/nodeTemplates")
112108	urls += "?" + c.urlParams_.Encode()
112109	req, err := http.NewRequest("GET", urls, body)
112110	if err != nil {
112111		return nil, err
112112	}
112113	req.Header = reqHeaders
112114	googleapi.Expand(req.URL, map[string]string{
112115		"project": c.project,
112116	})
112117	return gensupport.SendRequest(c.ctx_, c.s.client, req)
112118}
112119
112120// Do executes the "compute.nodeTemplates.aggregatedList" call.
112121// Exactly one of *NodeTemplateAggregatedList or error will be non-nil.
112122// Any non-2xx status code is an error. Response headers are in either
112123// *NodeTemplateAggregatedList.ServerResponse.Header or (if a response
112124// was returned at all) in error.(*googleapi.Error).Header. Use
112125// googleapi.IsNotModified to check whether the returned error was
112126// because http.StatusNotModified was returned.
112127func (c *NodeTemplatesAggregatedListCall) Do(opts ...googleapi.CallOption) (*NodeTemplateAggregatedList, error) {
112128	gensupport.SetOptions(c.urlParams_, opts...)
112129	res, err := c.doRequest("json")
112130	if res != nil && res.StatusCode == http.StatusNotModified {
112131		if res.Body != nil {
112132			res.Body.Close()
112133		}
112134		return nil, &googleapi.Error{
112135			Code:   res.StatusCode,
112136			Header: res.Header,
112137		}
112138	}
112139	if err != nil {
112140		return nil, err
112141	}
112142	defer googleapi.CloseBody(res)
112143	if err := googleapi.CheckResponse(res); err != nil {
112144		return nil, err
112145	}
112146	ret := &NodeTemplateAggregatedList{
112147		ServerResponse: googleapi.ServerResponse{
112148			Header:         res.Header,
112149			HTTPStatusCode: res.StatusCode,
112150		},
112151	}
112152	target := &ret
112153	if err := gensupport.DecodeResponse(target, res); err != nil {
112154		return nil, err
112155	}
112156	return ret, nil
112157	// {
112158	//   "description": "Retrieves an aggregated list of node templates.",
112159	//   "httpMethod": "GET",
112160	//   "id": "compute.nodeTemplates.aggregatedList",
112161	//   "parameterOrder": [
112162	//     "project"
112163	//   ],
112164	//   "parameters": {
112165	//     "filter": {
112166	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
112167	//       "location": "query",
112168	//       "type": "string"
112169	//     },
112170	//     "includeAllScopes": {
112171	//       "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.",
112172	//       "location": "query",
112173	//       "type": "boolean"
112174	//     },
112175	//     "maxResults": {
112176	//       "default": "500",
112177	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
112178	//       "format": "uint32",
112179	//       "location": "query",
112180	//       "minimum": "0",
112181	//       "type": "integer"
112182	//     },
112183	//     "orderBy": {
112184	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
112185	//       "location": "query",
112186	//       "type": "string"
112187	//     },
112188	//     "pageToken": {
112189	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
112190	//       "location": "query",
112191	//       "type": "string"
112192	//     },
112193	//     "project": {
112194	//       "description": "Project ID for this request.",
112195	//       "location": "path",
112196	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
112197	//       "required": true,
112198	//       "type": "string"
112199	//     },
112200	//     "returnPartialSuccess": {
112201	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
112202	//       "location": "query",
112203	//       "type": "boolean"
112204	//     }
112205	//   },
112206	//   "path": "projects/{project}/aggregated/nodeTemplates",
112207	//   "response": {
112208	//     "$ref": "NodeTemplateAggregatedList"
112209	//   },
112210	//   "scopes": [
112211	//     "https://www.googleapis.com/auth/cloud-platform",
112212	//     "https://www.googleapis.com/auth/compute",
112213	//     "https://www.googleapis.com/auth/compute.readonly"
112214	//   ]
112215	// }
112216
112217}
112218
112219// Pages invokes f for each page of results.
112220// A non-nil error returned from f will halt the iteration.
112221// The provided context supersedes any context provided to the Context method.
112222func (c *NodeTemplatesAggregatedListCall) Pages(ctx context.Context, f func(*NodeTemplateAggregatedList) error) error {
112223	c.ctx_ = ctx
112224	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
112225	for {
112226		x, err := c.Do()
112227		if err != nil {
112228			return err
112229		}
112230		if err := f(x); err != nil {
112231			return err
112232		}
112233		if x.NextPageToken == "" {
112234			return nil
112235		}
112236		c.PageToken(x.NextPageToken)
112237	}
112238}
112239
112240// method id "compute.nodeTemplates.delete":
112241
112242type NodeTemplatesDeleteCall struct {
112243	s            *Service
112244	project      string
112245	region       string
112246	nodeTemplate string
112247	urlParams_   gensupport.URLParams
112248	ctx_         context.Context
112249	header_      http.Header
112250}
112251
112252// Delete: Deletes the specified NodeTemplate resource.
112253func (r *NodeTemplatesService) Delete(project string, region string, nodeTemplate string) *NodeTemplatesDeleteCall {
112254	c := &NodeTemplatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
112255	c.project = project
112256	c.region = region
112257	c.nodeTemplate = nodeTemplate
112258	return c
112259}
112260
112261// RequestId sets the optional parameter "requestId": An optional
112262// request ID to identify requests. Specify a unique request ID so that
112263// if you must retry your request, the server will know to ignore the
112264// request if it has already been completed.
112265//
112266// For example, consider a situation where you make an initial request
112267// and the request times out. If you make the request again with the
112268// same request ID, the server can check if original operation with the
112269// same request ID was received, and if so, will ignore the second
112270// request. This prevents clients from accidentally creating duplicate
112271// commitments.
112272//
112273// The request ID must be a valid UUID with the exception that zero UUID
112274// is not supported (00000000-0000-0000-0000-000000000000).
112275func (c *NodeTemplatesDeleteCall) RequestId(requestId string) *NodeTemplatesDeleteCall {
112276	c.urlParams_.Set("requestId", requestId)
112277	return c
112278}
112279
112280// Fields allows partial responses to be retrieved. See
112281// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
112282// for more information.
112283func (c *NodeTemplatesDeleteCall) Fields(s ...googleapi.Field) *NodeTemplatesDeleteCall {
112284	c.urlParams_.Set("fields", googleapi.CombineFields(s))
112285	return c
112286}
112287
112288// Context sets the context to be used in this call's Do method. Any
112289// pending HTTP request will be aborted if the provided context is
112290// canceled.
112291func (c *NodeTemplatesDeleteCall) Context(ctx context.Context) *NodeTemplatesDeleteCall {
112292	c.ctx_ = ctx
112293	return c
112294}
112295
112296// Header returns an http.Header that can be modified by the caller to
112297// add HTTP headers to the request.
112298func (c *NodeTemplatesDeleteCall) Header() http.Header {
112299	if c.header_ == nil {
112300		c.header_ = make(http.Header)
112301	}
112302	return c.header_
112303}
112304
112305func (c *NodeTemplatesDeleteCall) doRequest(alt string) (*http.Response, error) {
112306	reqHeaders := make(http.Header)
112307	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
112308	for k, v := range c.header_ {
112309		reqHeaders[k] = v
112310	}
112311	reqHeaders.Set("User-Agent", c.s.userAgent())
112312	var body io.Reader = nil
112313	c.urlParams_.Set("alt", alt)
112314	c.urlParams_.Set("prettyPrint", "false")
112315	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}")
112316	urls += "?" + c.urlParams_.Encode()
112317	req, err := http.NewRequest("DELETE", urls, body)
112318	if err != nil {
112319		return nil, err
112320	}
112321	req.Header = reqHeaders
112322	googleapi.Expand(req.URL, map[string]string{
112323		"project":      c.project,
112324		"region":       c.region,
112325		"nodeTemplate": c.nodeTemplate,
112326	})
112327	return gensupport.SendRequest(c.ctx_, c.s.client, req)
112328}
112329
112330// Do executes the "compute.nodeTemplates.delete" call.
112331// Exactly one of *Operation or error will be non-nil. Any non-2xx
112332// status code is an error. Response headers are in either
112333// *Operation.ServerResponse.Header or (if a response was returned at
112334// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
112335// to check whether the returned error was because
112336// http.StatusNotModified was returned.
112337func (c *NodeTemplatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
112338	gensupport.SetOptions(c.urlParams_, opts...)
112339	res, err := c.doRequest("json")
112340	if res != nil && res.StatusCode == http.StatusNotModified {
112341		if res.Body != nil {
112342			res.Body.Close()
112343		}
112344		return nil, &googleapi.Error{
112345			Code:   res.StatusCode,
112346			Header: res.Header,
112347		}
112348	}
112349	if err != nil {
112350		return nil, err
112351	}
112352	defer googleapi.CloseBody(res)
112353	if err := googleapi.CheckResponse(res); err != nil {
112354		return nil, err
112355	}
112356	ret := &Operation{
112357		ServerResponse: googleapi.ServerResponse{
112358			Header:         res.Header,
112359			HTTPStatusCode: res.StatusCode,
112360		},
112361	}
112362	target := &ret
112363	if err := gensupport.DecodeResponse(target, res); err != nil {
112364		return nil, err
112365	}
112366	return ret, nil
112367	// {
112368	//   "description": "Deletes the specified NodeTemplate resource.",
112369	//   "httpMethod": "DELETE",
112370	//   "id": "compute.nodeTemplates.delete",
112371	//   "parameterOrder": [
112372	//     "project",
112373	//     "region",
112374	//     "nodeTemplate"
112375	//   ],
112376	//   "parameters": {
112377	//     "nodeTemplate": {
112378	//       "description": "Name of the NodeTemplate resource to delete.",
112379	//       "location": "path",
112380	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
112381	//       "required": true,
112382	//       "type": "string"
112383	//     },
112384	//     "project": {
112385	//       "description": "Project ID for this request.",
112386	//       "location": "path",
112387	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
112388	//       "required": true,
112389	//       "type": "string"
112390	//     },
112391	//     "region": {
112392	//       "description": "The name of the region for this request.",
112393	//       "location": "path",
112394	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
112395	//       "required": true,
112396	//       "type": "string"
112397	//     },
112398	//     "requestId": {
112399	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
112400	//       "location": "query",
112401	//       "type": "string"
112402	//     }
112403	//   },
112404	//   "path": "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}",
112405	//   "response": {
112406	//     "$ref": "Operation"
112407	//   },
112408	//   "scopes": [
112409	//     "https://www.googleapis.com/auth/cloud-platform",
112410	//     "https://www.googleapis.com/auth/compute"
112411	//   ]
112412	// }
112413
112414}
112415
112416// method id "compute.nodeTemplates.get":
112417
112418type NodeTemplatesGetCall struct {
112419	s            *Service
112420	project      string
112421	region       string
112422	nodeTemplate string
112423	urlParams_   gensupport.URLParams
112424	ifNoneMatch_ string
112425	ctx_         context.Context
112426	header_      http.Header
112427}
112428
112429// Get: Returns the specified node template. Gets a list of available
112430// node templates by making a list() request.
112431func (r *NodeTemplatesService) Get(project string, region string, nodeTemplate string) *NodeTemplatesGetCall {
112432	c := &NodeTemplatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
112433	c.project = project
112434	c.region = region
112435	c.nodeTemplate = nodeTemplate
112436	return c
112437}
112438
112439// Fields allows partial responses to be retrieved. See
112440// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
112441// for more information.
112442func (c *NodeTemplatesGetCall) Fields(s ...googleapi.Field) *NodeTemplatesGetCall {
112443	c.urlParams_.Set("fields", googleapi.CombineFields(s))
112444	return c
112445}
112446
112447// IfNoneMatch sets the optional parameter which makes the operation
112448// fail if the object's ETag matches the given value. This is useful for
112449// getting updates only after the object has changed since the last
112450// request. Use googleapi.IsNotModified to check whether the response
112451// error from Do is the result of In-None-Match.
112452func (c *NodeTemplatesGetCall) IfNoneMatch(entityTag string) *NodeTemplatesGetCall {
112453	c.ifNoneMatch_ = entityTag
112454	return c
112455}
112456
112457// Context sets the context to be used in this call's Do method. Any
112458// pending HTTP request will be aborted if the provided context is
112459// canceled.
112460func (c *NodeTemplatesGetCall) Context(ctx context.Context) *NodeTemplatesGetCall {
112461	c.ctx_ = ctx
112462	return c
112463}
112464
112465// Header returns an http.Header that can be modified by the caller to
112466// add HTTP headers to the request.
112467func (c *NodeTemplatesGetCall) Header() http.Header {
112468	if c.header_ == nil {
112469		c.header_ = make(http.Header)
112470	}
112471	return c.header_
112472}
112473
112474func (c *NodeTemplatesGetCall) doRequest(alt string) (*http.Response, error) {
112475	reqHeaders := make(http.Header)
112476	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
112477	for k, v := range c.header_ {
112478		reqHeaders[k] = v
112479	}
112480	reqHeaders.Set("User-Agent", c.s.userAgent())
112481	if c.ifNoneMatch_ != "" {
112482		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
112483	}
112484	var body io.Reader = nil
112485	c.urlParams_.Set("alt", alt)
112486	c.urlParams_.Set("prettyPrint", "false")
112487	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}")
112488	urls += "?" + c.urlParams_.Encode()
112489	req, err := http.NewRequest("GET", urls, body)
112490	if err != nil {
112491		return nil, err
112492	}
112493	req.Header = reqHeaders
112494	googleapi.Expand(req.URL, map[string]string{
112495		"project":      c.project,
112496		"region":       c.region,
112497		"nodeTemplate": c.nodeTemplate,
112498	})
112499	return gensupport.SendRequest(c.ctx_, c.s.client, req)
112500}
112501
112502// Do executes the "compute.nodeTemplates.get" call.
112503// Exactly one of *NodeTemplate or error will be non-nil. Any non-2xx
112504// status code is an error. Response headers are in either
112505// *NodeTemplate.ServerResponse.Header or (if a response was returned at
112506// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
112507// to check whether the returned error was because
112508// http.StatusNotModified was returned.
112509func (c *NodeTemplatesGetCall) Do(opts ...googleapi.CallOption) (*NodeTemplate, error) {
112510	gensupport.SetOptions(c.urlParams_, opts...)
112511	res, err := c.doRequest("json")
112512	if res != nil && res.StatusCode == http.StatusNotModified {
112513		if res.Body != nil {
112514			res.Body.Close()
112515		}
112516		return nil, &googleapi.Error{
112517			Code:   res.StatusCode,
112518			Header: res.Header,
112519		}
112520	}
112521	if err != nil {
112522		return nil, err
112523	}
112524	defer googleapi.CloseBody(res)
112525	if err := googleapi.CheckResponse(res); err != nil {
112526		return nil, err
112527	}
112528	ret := &NodeTemplate{
112529		ServerResponse: googleapi.ServerResponse{
112530			Header:         res.Header,
112531			HTTPStatusCode: res.StatusCode,
112532		},
112533	}
112534	target := &ret
112535	if err := gensupport.DecodeResponse(target, res); err != nil {
112536		return nil, err
112537	}
112538	return ret, nil
112539	// {
112540	//   "description": "Returns the specified node template. Gets a list of available node templates by making a list() request.",
112541	//   "httpMethod": "GET",
112542	//   "id": "compute.nodeTemplates.get",
112543	//   "parameterOrder": [
112544	//     "project",
112545	//     "region",
112546	//     "nodeTemplate"
112547	//   ],
112548	//   "parameters": {
112549	//     "nodeTemplate": {
112550	//       "description": "Name of the node template to return.",
112551	//       "location": "path",
112552	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
112553	//       "required": true,
112554	//       "type": "string"
112555	//     },
112556	//     "project": {
112557	//       "description": "Project ID for this request.",
112558	//       "location": "path",
112559	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
112560	//       "required": true,
112561	//       "type": "string"
112562	//     },
112563	//     "region": {
112564	//       "description": "The name of the region for this request.",
112565	//       "location": "path",
112566	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
112567	//       "required": true,
112568	//       "type": "string"
112569	//     }
112570	//   },
112571	//   "path": "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}",
112572	//   "response": {
112573	//     "$ref": "NodeTemplate"
112574	//   },
112575	//   "scopes": [
112576	//     "https://www.googleapis.com/auth/cloud-platform",
112577	//     "https://www.googleapis.com/auth/compute",
112578	//     "https://www.googleapis.com/auth/compute.readonly"
112579	//   ]
112580	// }
112581
112582}
112583
112584// method id "compute.nodeTemplates.getIamPolicy":
112585
112586type NodeTemplatesGetIamPolicyCall struct {
112587	s            *Service
112588	project      string
112589	region       string
112590	resource     string
112591	urlParams_   gensupport.URLParams
112592	ifNoneMatch_ string
112593	ctx_         context.Context
112594	header_      http.Header
112595}
112596
112597// GetIamPolicy: Gets the access control policy for a resource. May be
112598// empty if no such policy or resource exists.
112599func (r *NodeTemplatesService) GetIamPolicy(project string, region string, resource string) *NodeTemplatesGetIamPolicyCall {
112600	c := &NodeTemplatesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
112601	c.project = project
112602	c.region = region
112603	c.resource = resource
112604	return c
112605}
112606
112607// OptionsRequestedPolicyVersion sets the optional parameter
112608// "optionsRequestedPolicyVersion": Requested IAM Policy version.
112609func (c *NodeTemplatesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *NodeTemplatesGetIamPolicyCall {
112610	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
112611	return c
112612}
112613
112614// Fields allows partial responses to be retrieved. See
112615// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
112616// for more information.
112617func (c *NodeTemplatesGetIamPolicyCall) Fields(s ...googleapi.Field) *NodeTemplatesGetIamPolicyCall {
112618	c.urlParams_.Set("fields", googleapi.CombineFields(s))
112619	return c
112620}
112621
112622// IfNoneMatch sets the optional parameter which makes the operation
112623// fail if the object's ETag matches the given value. This is useful for
112624// getting updates only after the object has changed since the last
112625// request. Use googleapi.IsNotModified to check whether the response
112626// error from Do is the result of In-None-Match.
112627func (c *NodeTemplatesGetIamPolicyCall) IfNoneMatch(entityTag string) *NodeTemplatesGetIamPolicyCall {
112628	c.ifNoneMatch_ = entityTag
112629	return c
112630}
112631
112632// Context sets the context to be used in this call's Do method. Any
112633// pending HTTP request will be aborted if the provided context is
112634// canceled.
112635func (c *NodeTemplatesGetIamPolicyCall) Context(ctx context.Context) *NodeTemplatesGetIamPolicyCall {
112636	c.ctx_ = ctx
112637	return c
112638}
112639
112640// Header returns an http.Header that can be modified by the caller to
112641// add HTTP headers to the request.
112642func (c *NodeTemplatesGetIamPolicyCall) Header() http.Header {
112643	if c.header_ == nil {
112644		c.header_ = make(http.Header)
112645	}
112646	return c.header_
112647}
112648
112649func (c *NodeTemplatesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
112650	reqHeaders := make(http.Header)
112651	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
112652	for k, v := range c.header_ {
112653		reqHeaders[k] = v
112654	}
112655	reqHeaders.Set("User-Agent", c.s.userAgent())
112656	if c.ifNoneMatch_ != "" {
112657		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
112658	}
112659	var body io.Reader = nil
112660	c.urlParams_.Set("alt", alt)
112661	c.urlParams_.Set("prettyPrint", "false")
112662	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/nodeTemplates/{resource}/getIamPolicy")
112663	urls += "?" + c.urlParams_.Encode()
112664	req, err := http.NewRequest("GET", urls, body)
112665	if err != nil {
112666		return nil, err
112667	}
112668	req.Header = reqHeaders
112669	googleapi.Expand(req.URL, map[string]string{
112670		"project":  c.project,
112671		"region":   c.region,
112672		"resource": c.resource,
112673	})
112674	return gensupport.SendRequest(c.ctx_, c.s.client, req)
112675}
112676
112677// Do executes the "compute.nodeTemplates.getIamPolicy" call.
112678// Exactly one of *Policy or error will be non-nil. Any non-2xx status
112679// code is an error. Response headers are in either
112680// *Policy.ServerResponse.Header or (if a response was returned at all)
112681// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
112682// check whether the returned error was because http.StatusNotModified
112683// was returned.
112684func (c *NodeTemplatesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
112685	gensupport.SetOptions(c.urlParams_, opts...)
112686	res, err := c.doRequest("json")
112687	if res != nil && res.StatusCode == http.StatusNotModified {
112688		if res.Body != nil {
112689			res.Body.Close()
112690		}
112691		return nil, &googleapi.Error{
112692			Code:   res.StatusCode,
112693			Header: res.Header,
112694		}
112695	}
112696	if err != nil {
112697		return nil, err
112698	}
112699	defer googleapi.CloseBody(res)
112700	if err := googleapi.CheckResponse(res); err != nil {
112701		return nil, err
112702	}
112703	ret := &Policy{
112704		ServerResponse: googleapi.ServerResponse{
112705			Header:         res.Header,
112706			HTTPStatusCode: res.StatusCode,
112707		},
112708	}
112709	target := &ret
112710	if err := gensupport.DecodeResponse(target, res); err != nil {
112711		return nil, err
112712	}
112713	return ret, nil
112714	// {
112715	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
112716	//   "httpMethod": "GET",
112717	//   "id": "compute.nodeTemplates.getIamPolicy",
112718	//   "parameterOrder": [
112719	//     "project",
112720	//     "region",
112721	//     "resource"
112722	//   ],
112723	//   "parameters": {
112724	//     "optionsRequestedPolicyVersion": {
112725	//       "description": "Requested IAM Policy version.",
112726	//       "format": "int32",
112727	//       "location": "query",
112728	//       "type": "integer"
112729	//     },
112730	//     "project": {
112731	//       "description": "Project ID for this request.",
112732	//       "location": "path",
112733	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
112734	//       "required": true,
112735	//       "type": "string"
112736	//     },
112737	//     "region": {
112738	//       "description": "The name of the region for this request.",
112739	//       "location": "path",
112740	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
112741	//       "required": true,
112742	//       "type": "string"
112743	//     },
112744	//     "resource": {
112745	//       "description": "Name or id of the resource for this request.",
112746	//       "location": "path",
112747	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
112748	//       "required": true,
112749	//       "type": "string"
112750	//     }
112751	//   },
112752	//   "path": "projects/{project}/regions/{region}/nodeTemplates/{resource}/getIamPolicy",
112753	//   "response": {
112754	//     "$ref": "Policy"
112755	//   },
112756	//   "scopes": [
112757	//     "https://www.googleapis.com/auth/cloud-platform",
112758	//     "https://www.googleapis.com/auth/compute",
112759	//     "https://www.googleapis.com/auth/compute.readonly"
112760	//   ]
112761	// }
112762
112763}
112764
112765// method id "compute.nodeTemplates.insert":
112766
112767type NodeTemplatesInsertCall struct {
112768	s            *Service
112769	project      string
112770	region       string
112771	nodetemplate *NodeTemplate
112772	urlParams_   gensupport.URLParams
112773	ctx_         context.Context
112774	header_      http.Header
112775}
112776
112777// Insert: Creates a NodeTemplate resource in the specified project
112778// using the data included in the request.
112779func (r *NodeTemplatesService) Insert(project string, region string, nodetemplate *NodeTemplate) *NodeTemplatesInsertCall {
112780	c := &NodeTemplatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
112781	c.project = project
112782	c.region = region
112783	c.nodetemplate = nodetemplate
112784	return c
112785}
112786
112787// RequestId sets the optional parameter "requestId": An optional
112788// request ID to identify requests. Specify a unique request ID so that
112789// if you must retry your request, the server will know to ignore the
112790// request if it has already been completed.
112791//
112792// For example, consider a situation where you make an initial request
112793// and the request times out. If you make the request again with the
112794// same request ID, the server can check if original operation with the
112795// same request ID was received, and if so, will ignore the second
112796// request. This prevents clients from accidentally creating duplicate
112797// commitments.
112798//
112799// The request ID must be a valid UUID with the exception that zero UUID
112800// is not supported (00000000-0000-0000-0000-000000000000).
112801func (c *NodeTemplatesInsertCall) RequestId(requestId string) *NodeTemplatesInsertCall {
112802	c.urlParams_.Set("requestId", requestId)
112803	return c
112804}
112805
112806// Fields allows partial responses to be retrieved. See
112807// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
112808// for more information.
112809func (c *NodeTemplatesInsertCall) Fields(s ...googleapi.Field) *NodeTemplatesInsertCall {
112810	c.urlParams_.Set("fields", googleapi.CombineFields(s))
112811	return c
112812}
112813
112814// Context sets the context to be used in this call's Do method. Any
112815// pending HTTP request will be aborted if the provided context is
112816// canceled.
112817func (c *NodeTemplatesInsertCall) Context(ctx context.Context) *NodeTemplatesInsertCall {
112818	c.ctx_ = ctx
112819	return c
112820}
112821
112822// Header returns an http.Header that can be modified by the caller to
112823// add HTTP headers to the request.
112824func (c *NodeTemplatesInsertCall) Header() http.Header {
112825	if c.header_ == nil {
112826		c.header_ = make(http.Header)
112827	}
112828	return c.header_
112829}
112830
112831func (c *NodeTemplatesInsertCall) doRequest(alt string) (*http.Response, error) {
112832	reqHeaders := make(http.Header)
112833	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
112834	for k, v := range c.header_ {
112835		reqHeaders[k] = v
112836	}
112837	reqHeaders.Set("User-Agent", c.s.userAgent())
112838	var body io.Reader = nil
112839	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodetemplate)
112840	if err != nil {
112841		return nil, err
112842	}
112843	reqHeaders.Set("Content-Type", "application/json")
112844	c.urlParams_.Set("alt", alt)
112845	c.urlParams_.Set("prettyPrint", "false")
112846	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/nodeTemplates")
112847	urls += "?" + c.urlParams_.Encode()
112848	req, err := http.NewRequest("POST", urls, body)
112849	if err != nil {
112850		return nil, err
112851	}
112852	req.Header = reqHeaders
112853	googleapi.Expand(req.URL, map[string]string{
112854		"project": c.project,
112855		"region":  c.region,
112856	})
112857	return gensupport.SendRequest(c.ctx_, c.s.client, req)
112858}
112859
112860// Do executes the "compute.nodeTemplates.insert" call.
112861// Exactly one of *Operation or error will be non-nil. Any non-2xx
112862// status code is an error. Response headers are in either
112863// *Operation.ServerResponse.Header or (if a response was returned at
112864// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
112865// to check whether the returned error was because
112866// http.StatusNotModified was returned.
112867func (c *NodeTemplatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
112868	gensupport.SetOptions(c.urlParams_, opts...)
112869	res, err := c.doRequest("json")
112870	if res != nil && res.StatusCode == http.StatusNotModified {
112871		if res.Body != nil {
112872			res.Body.Close()
112873		}
112874		return nil, &googleapi.Error{
112875			Code:   res.StatusCode,
112876			Header: res.Header,
112877		}
112878	}
112879	if err != nil {
112880		return nil, err
112881	}
112882	defer googleapi.CloseBody(res)
112883	if err := googleapi.CheckResponse(res); err != nil {
112884		return nil, err
112885	}
112886	ret := &Operation{
112887		ServerResponse: googleapi.ServerResponse{
112888			Header:         res.Header,
112889			HTTPStatusCode: res.StatusCode,
112890		},
112891	}
112892	target := &ret
112893	if err := gensupport.DecodeResponse(target, res); err != nil {
112894		return nil, err
112895	}
112896	return ret, nil
112897	// {
112898	//   "description": "Creates a NodeTemplate resource in the specified project using the data included in the request.",
112899	//   "httpMethod": "POST",
112900	//   "id": "compute.nodeTemplates.insert",
112901	//   "parameterOrder": [
112902	//     "project",
112903	//     "region"
112904	//   ],
112905	//   "parameters": {
112906	//     "project": {
112907	//       "description": "Project ID for this request.",
112908	//       "location": "path",
112909	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
112910	//       "required": true,
112911	//       "type": "string"
112912	//     },
112913	//     "region": {
112914	//       "description": "The name of the region for this request.",
112915	//       "location": "path",
112916	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
112917	//       "required": true,
112918	//       "type": "string"
112919	//     },
112920	//     "requestId": {
112921	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
112922	//       "location": "query",
112923	//       "type": "string"
112924	//     }
112925	//   },
112926	//   "path": "projects/{project}/regions/{region}/nodeTemplates",
112927	//   "request": {
112928	//     "$ref": "NodeTemplate"
112929	//   },
112930	//   "response": {
112931	//     "$ref": "Operation"
112932	//   },
112933	//   "scopes": [
112934	//     "https://www.googleapis.com/auth/cloud-platform",
112935	//     "https://www.googleapis.com/auth/compute"
112936	//   ]
112937	// }
112938
112939}
112940
112941// method id "compute.nodeTemplates.list":
112942
112943type NodeTemplatesListCall struct {
112944	s            *Service
112945	project      string
112946	region       string
112947	urlParams_   gensupport.URLParams
112948	ifNoneMatch_ string
112949	ctx_         context.Context
112950	header_      http.Header
112951}
112952
112953// List: Retrieves a list of node templates available to the specified
112954// project.
112955func (r *NodeTemplatesService) List(project string, region string) *NodeTemplatesListCall {
112956	c := &NodeTemplatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
112957	c.project = project
112958	c.region = region
112959	return c
112960}
112961
112962// Filter sets the optional parameter "filter": A filter expression that
112963// filters resources listed in the response. The expression must specify
112964// the field name, a comparison operator, and the value that you want to
112965// use for filtering. The value must be a string, a number, or a
112966// boolean. The comparison operator must be either `=`, `!=`, `>`, or
112967// `<`.
112968//
112969// For example, if you are filtering Compute Engine instances, you can
112970// exclude instances named `example-instance` by specifying `name !=
112971// example-instance`.
112972//
112973// You can also filter nested fields. For example, you could specify
112974// `scheduling.automaticRestart = false` to include instances only if
112975// they are not scheduled for automatic restarts. You can use filtering
112976// on nested fields to filter based on resource labels.
112977//
112978// To filter on multiple expressions, provide each separate expression
112979// within parentheses. For example: ``` (scheduling.automaticRestart =
112980// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
112981// is an `AND` expression. However, you can include `AND` and `OR`
112982// expressions explicitly. For example: ``` (cpuPlatform = "Intel
112983// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
112984// (scheduling.automaticRestart = true) ```
112985func (c *NodeTemplatesListCall) Filter(filter string) *NodeTemplatesListCall {
112986	c.urlParams_.Set("filter", filter)
112987	return c
112988}
112989
112990// MaxResults sets the optional parameter "maxResults": The maximum
112991// number of results per page that should be returned. If the number of
112992// available results is larger than `maxResults`, Compute Engine returns
112993// a `nextPageToken` that can be used to get the next page of results in
112994// subsequent list requests. Acceptable values are `0` to `500`,
112995// inclusive. (Default: `500`)
112996func (c *NodeTemplatesListCall) MaxResults(maxResults int64) *NodeTemplatesListCall {
112997	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
112998	return c
112999}
113000
113001// OrderBy sets the optional parameter "orderBy": Sorts list results by
113002// a certain order. By default, results are returned in alphanumerical
113003// order based on the resource name.
113004//
113005// You can also sort results in descending order based on the creation
113006// timestamp using `orderBy="creationTimestamp desc". This sorts
113007// results based on the `creationTimestamp` field in reverse
113008// chronological order (newest result first). Use this to sort resources
113009// like operations so that the newest operation is returned
113010// first.
113011//
113012// Currently, only sorting by `name` or `creationTimestamp desc` is
113013// supported.
113014func (c *NodeTemplatesListCall) OrderBy(orderBy string) *NodeTemplatesListCall {
113015	c.urlParams_.Set("orderBy", orderBy)
113016	return c
113017}
113018
113019// PageToken sets the optional parameter "pageToken": Specifies a page
113020// token to use. Set `pageToken` to the `nextPageToken` returned by a
113021// previous list request to get the next page of results.
113022func (c *NodeTemplatesListCall) PageToken(pageToken string) *NodeTemplatesListCall {
113023	c.urlParams_.Set("pageToken", pageToken)
113024	return c
113025}
113026
113027// ReturnPartialSuccess sets the optional parameter
113028// "returnPartialSuccess": Opt-in for partial success behavior which
113029// provides partial results in case of failure. The default value is
113030// false.
113031func (c *NodeTemplatesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NodeTemplatesListCall {
113032	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
113033	return c
113034}
113035
113036// Fields allows partial responses to be retrieved. See
113037// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113038// for more information.
113039func (c *NodeTemplatesListCall) Fields(s ...googleapi.Field) *NodeTemplatesListCall {
113040	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113041	return c
113042}
113043
113044// IfNoneMatch sets the optional parameter which makes the operation
113045// fail if the object's ETag matches the given value. This is useful for
113046// getting updates only after the object has changed since the last
113047// request. Use googleapi.IsNotModified to check whether the response
113048// error from Do is the result of In-None-Match.
113049func (c *NodeTemplatesListCall) IfNoneMatch(entityTag string) *NodeTemplatesListCall {
113050	c.ifNoneMatch_ = entityTag
113051	return c
113052}
113053
113054// Context sets the context to be used in this call's Do method. Any
113055// pending HTTP request will be aborted if the provided context is
113056// canceled.
113057func (c *NodeTemplatesListCall) Context(ctx context.Context) *NodeTemplatesListCall {
113058	c.ctx_ = ctx
113059	return c
113060}
113061
113062// Header returns an http.Header that can be modified by the caller to
113063// add HTTP headers to the request.
113064func (c *NodeTemplatesListCall) Header() http.Header {
113065	if c.header_ == nil {
113066		c.header_ = make(http.Header)
113067	}
113068	return c.header_
113069}
113070
113071func (c *NodeTemplatesListCall) doRequest(alt string) (*http.Response, error) {
113072	reqHeaders := make(http.Header)
113073	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
113074	for k, v := range c.header_ {
113075		reqHeaders[k] = v
113076	}
113077	reqHeaders.Set("User-Agent", c.s.userAgent())
113078	if c.ifNoneMatch_ != "" {
113079		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
113080	}
113081	var body io.Reader = nil
113082	c.urlParams_.Set("alt", alt)
113083	c.urlParams_.Set("prettyPrint", "false")
113084	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/nodeTemplates")
113085	urls += "?" + c.urlParams_.Encode()
113086	req, err := http.NewRequest("GET", urls, body)
113087	if err != nil {
113088		return nil, err
113089	}
113090	req.Header = reqHeaders
113091	googleapi.Expand(req.URL, map[string]string{
113092		"project": c.project,
113093		"region":  c.region,
113094	})
113095	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113096}
113097
113098// Do executes the "compute.nodeTemplates.list" call.
113099// Exactly one of *NodeTemplateList or error will be non-nil. Any
113100// non-2xx status code is an error. Response headers are in either
113101// *NodeTemplateList.ServerResponse.Header or (if a response was
113102// returned at all) in error.(*googleapi.Error).Header. Use
113103// googleapi.IsNotModified to check whether the returned error was
113104// because http.StatusNotModified was returned.
113105func (c *NodeTemplatesListCall) Do(opts ...googleapi.CallOption) (*NodeTemplateList, error) {
113106	gensupport.SetOptions(c.urlParams_, opts...)
113107	res, err := c.doRequest("json")
113108	if res != nil && res.StatusCode == http.StatusNotModified {
113109		if res.Body != nil {
113110			res.Body.Close()
113111		}
113112		return nil, &googleapi.Error{
113113			Code:   res.StatusCode,
113114			Header: res.Header,
113115		}
113116	}
113117	if err != nil {
113118		return nil, err
113119	}
113120	defer googleapi.CloseBody(res)
113121	if err := googleapi.CheckResponse(res); err != nil {
113122		return nil, err
113123	}
113124	ret := &NodeTemplateList{
113125		ServerResponse: googleapi.ServerResponse{
113126			Header:         res.Header,
113127			HTTPStatusCode: res.StatusCode,
113128		},
113129	}
113130	target := &ret
113131	if err := gensupport.DecodeResponse(target, res); err != nil {
113132		return nil, err
113133	}
113134	return ret, nil
113135	// {
113136	//   "description": "Retrieves a list of node templates available to the specified project.",
113137	//   "httpMethod": "GET",
113138	//   "id": "compute.nodeTemplates.list",
113139	//   "parameterOrder": [
113140	//     "project",
113141	//     "region"
113142	//   ],
113143	//   "parameters": {
113144	//     "filter": {
113145	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
113146	//       "location": "query",
113147	//       "type": "string"
113148	//     },
113149	//     "maxResults": {
113150	//       "default": "500",
113151	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
113152	//       "format": "uint32",
113153	//       "location": "query",
113154	//       "minimum": "0",
113155	//       "type": "integer"
113156	//     },
113157	//     "orderBy": {
113158	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
113159	//       "location": "query",
113160	//       "type": "string"
113161	//     },
113162	//     "pageToken": {
113163	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
113164	//       "location": "query",
113165	//       "type": "string"
113166	//     },
113167	//     "project": {
113168	//       "description": "Project ID for this request.",
113169	//       "location": "path",
113170	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
113171	//       "required": true,
113172	//       "type": "string"
113173	//     },
113174	//     "region": {
113175	//       "description": "The name of the region for this request.",
113176	//       "location": "path",
113177	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
113178	//       "required": true,
113179	//       "type": "string"
113180	//     },
113181	//     "returnPartialSuccess": {
113182	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
113183	//       "location": "query",
113184	//       "type": "boolean"
113185	//     }
113186	//   },
113187	//   "path": "projects/{project}/regions/{region}/nodeTemplates",
113188	//   "response": {
113189	//     "$ref": "NodeTemplateList"
113190	//   },
113191	//   "scopes": [
113192	//     "https://www.googleapis.com/auth/cloud-platform",
113193	//     "https://www.googleapis.com/auth/compute",
113194	//     "https://www.googleapis.com/auth/compute.readonly"
113195	//   ]
113196	// }
113197
113198}
113199
113200// Pages invokes f for each page of results.
113201// A non-nil error returned from f will halt the iteration.
113202// The provided context supersedes any context provided to the Context method.
113203func (c *NodeTemplatesListCall) Pages(ctx context.Context, f func(*NodeTemplateList) error) error {
113204	c.ctx_ = ctx
113205	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
113206	for {
113207		x, err := c.Do()
113208		if err != nil {
113209			return err
113210		}
113211		if err := f(x); err != nil {
113212			return err
113213		}
113214		if x.NextPageToken == "" {
113215			return nil
113216		}
113217		c.PageToken(x.NextPageToken)
113218	}
113219}
113220
113221// method id "compute.nodeTemplates.setIamPolicy":
113222
113223type NodeTemplatesSetIamPolicyCall struct {
113224	s                      *Service
113225	project                string
113226	region                 string
113227	resource               string
113228	regionsetpolicyrequest *RegionSetPolicyRequest
113229	urlParams_             gensupport.URLParams
113230	ctx_                   context.Context
113231	header_                http.Header
113232}
113233
113234// SetIamPolicy: Sets the access control policy on the specified
113235// resource. Replaces any existing policy.
113236func (r *NodeTemplatesService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *NodeTemplatesSetIamPolicyCall {
113237	c := &NodeTemplatesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113238	c.project = project
113239	c.region = region
113240	c.resource = resource
113241	c.regionsetpolicyrequest = regionsetpolicyrequest
113242	return c
113243}
113244
113245// Fields allows partial responses to be retrieved. See
113246// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113247// for more information.
113248func (c *NodeTemplatesSetIamPolicyCall) Fields(s ...googleapi.Field) *NodeTemplatesSetIamPolicyCall {
113249	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113250	return c
113251}
113252
113253// Context sets the context to be used in this call's Do method. Any
113254// pending HTTP request will be aborted if the provided context is
113255// canceled.
113256func (c *NodeTemplatesSetIamPolicyCall) Context(ctx context.Context) *NodeTemplatesSetIamPolicyCall {
113257	c.ctx_ = ctx
113258	return c
113259}
113260
113261// Header returns an http.Header that can be modified by the caller to
113262// add HTTP headers to the request.
113263func (c *NodeTemplatesSetIamPolicyCall) Header() http.Header {
113264	if c.header_ == nil {
113265		c.header_ = make(http.Header)
113266	}
113267	return c.header_
113268}
113269
113270func (c *NodeTemplatesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
113271	reqHeaders := make(http.Header)
113272	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
113273	for k, v := range c.header_ {
113274		reqHeaders[k] = v
113275	}
113276	reqHeaders.Set("User-Agent", c.s.userAgent())
113277	var body io.Reader = nil
113278	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest)
113279	if err != nil {
113280		return nil, err
113281	}
113282	reqHeaders.Set("Content-Type", "application/json")
113283	c.urlParams_.Set("alt", alt)
113284	c.urlParams_.Set("prettyPrint", "false")
113285	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/nodeTemplates/{resource}/setIamPolicy")
113286	urls += "?" + c.urlParams_.Encode()
113287	req, err := http.NewRequest("POST", urls, body)
113288	if err != nil {
113289		return nil, err
113290	}
113291	req.Header = reqHeaders
113292	googleapi.Expand(req.URL, map[string]string{
113293		"project":  c.project,
113294		"region":   c.region,
113295		"resource": c.resource,
113296	})
113297	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113298}
113299
113300// Do executes the "compute.nodeTemplates.setIamPolicy" call.
113301// Exactly one of *Policy or error will be non-nil. Any non-2xx status
113302// code is an error. Response headers are in either
113303// *Policy.ServerResponse.Header or (if a response was returned at all)
113304// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
113305// check whether the returned error was because http.StatusNotModified
113306// was returned.
113307func (c *NodeTemplatesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
113308	gensupport.SetOptions(c.urlParams_, opts...)
113309	res, err := c.doRequest("json")
113310	if res != nil && res.StatusCode == http.StatusNotModified {
113311		if res.Body != nil {
113312			res.Body.Close()
113313		}
113314		return nil, &googleapi.Error{
113315			Code:   res.StatusCode,
113316			Header: res.Header,
113317		}
113318	}
113319	if err != nil {
113320		return nil, err
113321	}
113322	defer googleapi.CloseBody(res)
113323	if err := googleapi.CheckResponse(res); err != nil {
113324		return nil, err
113325	}
113326	ret := &Policy{
113327		ServerResponse: googleapi.ServerResponse{
113328			Header:         res.Header,
113329			HTTPStatusCode: res.StatusCode,
113330		},
113331	}
113332	target := &ret
113333	if err := gensupport.DecodeResponse(target, res); err != nil {
113334		return nil, err
113335	}
113336	return ret, nil
113337	// {
113338	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
113339	//   "httpMethod": "POST",
113340	//   "id": "compute.nodeTemplates.setIamPolicy",
113341	//   "parameterOrder": [
113342	//     "project",
113343	//     "region",
113344	//     "resource"
113345	//   ],
113346	//   "parameters": {
113347	//     "project": {
113348	//       "description": "Project ID for this request.",
113349	//       "location": "path",
113350	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
113351	//       "required": true,
113352	//       "type": "string"
113353	//     },
113354	//     "region": {
113355	//       "description": "The name of the region for this request.",
113356	//       "location": "path",
113357	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
113358	//       "required": true,
113359	//       "type": "string"
113360	//     },
113361	//     "resource": {
113362	//       "description": "Name or id of the resource for this request.",
113363	//       "location": "path",
113364	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
113365	//       "required": true,
113366	//       "type": "string"
113367	//     }
113368	//   },
113369	//   "path": "projects/{project}/regions/{region}/nodeTemplates/{resource}/setIamPolicy",
113370	//   "request": {
113371	//     "$ref": "RegionSetPolicyRequest"
113372	//   },
113373	//   "response": {
113374	//     "$ref": "Policy"
113375	//   },
113376	//   "scopes": [
113377	//     "https://www.googleapis.com/auth/cloud-platform",
113378	//     "https://www.googleapis.com/auth/compute"
113379	//   ]
113380	// }
113381
113382}
113383
113384// method id "compute.nodeTemplates.testIamPermissions":
113385
113386type NodeTemplatesTestIamPermissionsCall struct {
113387	s                      *Service
113388	project                string
113389	region                 string
113390	resource               string
113391	testpermissionsrequest *TestPermissionsRequest
113392	urlParams_             gensupport.URLParams
113393	ctx_                   context.Context
113394	header_                http.Header
113395}
113396
113397// TestIamPermissions: Returns permissions that a caller has on the
113398// specified resource.
113399func (r *NodeTemplatesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *NodeTemplatesTestIamPermissionsCall {
113400	c := &NodeTemplatesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113401	c.project = project
113402	c.region = region
113403	c.resource = resource
113404	c.testpermissionsrequest = testpermissionsrequest
113405	return c
113406}
113407
113408// Fields allows partial responses to be retrieved. See
113409// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113410// for more information.
113411func (c *NodeTemplatesTestIamPermissionsCall) Fields(s ...googleapi.Field) *NodeTemplatesTestIamPermissionsCall {
113412	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113413	return c
113414}
113415
113416// Context sets the context to be used in this call's Do method. Any
113417// pending HTTP request will be aborted if the provided context is
113418// canceled.
113419func (c *NodeTemplatesTestIamPermissionsCall) Context(ctx context.Context) *NodeTemplatesTestIamPermissionsCall {
113420	c.ctx_ = ctx
113421	return c
113422}
113423
113424// Header returns an http.Header that can be modified by the caller to
113425// add HTTP headers to the request.
113426func (c *NodeTemplatesTestIamPermissionsCall) Header() http.Header {
113427	if c.header_ == nil {
113428		c.header_ = make(http.Header)
113429	}
113430	return c.header_
113431}
113432
113433func (c *NodeTemplatesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
113434	reqHeaders := make(http.Header)
113435	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
113436	for k, v := range c.header_ {
113437		reqHeaders[k] = v
113438	}
113439	reqHeaders.Set("User-Agent", c.s.userAgent())
113440	var body io.Reader = nil
113441	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
113442	if err != nil {
113443		return nil, err
113444	}
113445	reqHeaders.Set("Content-Type", "application/json")
113446	c.urlParams_.Set("alt", alt)
113447	c.urlParams_.Set("prettyPrint", "false")
113448	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/nodeTemplates/{resource}/testIamPermissions")
113449	urls += "?" + c.urlParams_.Encode()
113450	req, err := http.NewRequest("POST", urls, body)
113451	if err != nil {
113452		return nil, err
113453	}
113454	req.Header = reqHeaders
113455	googleapi.Expand(req.URL, map[string]string{
113456		"project":  c.project,
113457		"region":   c.region,
113458		"resource": c.resource,
113459	})
113460	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113461}
113462
113463// Do executes the "compute.nodeTemplates.testIamPermissions" call.
113464// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
113465// non-2xx status code is an error. Response headers are in either
113466// *TestPermissionsResponse.ServerResponse.Header or (if a response was
113467// returned at all) in error.(*googleapi.Error).Header. Use
113468// googleapi.IsNotModified to check whether the returned error was
113469// because http.StatusNotModified was returned.
113470func (c *NodeTemplatesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
113471	gensupport.SetOptions(c.urlParams_, opts...)
113472	res, err := c.doRequest("json")
113473	if res != nil && res.StatusCode == http.StatusNotModified {
113474		if res.Body != nil {
113475			res.Body.Close()
113476		}
113477		return nil, &googleapi.Error{
113478			Code:   res.StatusCode,
113479			Header: res.Header,
113480		}
113481	}
113482	if err != nil {
113483		return nil, err
113484	}
113485	defer googleapi.CloseBody(res)
113486	if err := googleapi.CheckResponse(res); err != nil {
113487		return nil, err
113488	}
113489	ret := &TestPermissionsResponse{
113490		ServerResponse: googleapi.ServerResponse{
113491			Header:         res.Header,
113492			HTTPStatusCode: res.StatusCode,
113493		},
113494	}
113495	target := &ret
113496	if err := gensupport.DecodeResponse(target, res); err != nil {
113497		return nil, err
113498	}
113499	return ret, nil
113500	// {
113501	//   "description": "Returns permissions that a caller has on the specified resource.",
113502	//   "httpMethod": "POST",
113503	//   "id": "compute.nodeTemplates.testIamPermissions",
113504	//   "parameterOrder": [
113505	//     "project",
113506	//     "region",
113507	//     "resource"
113508	//   ],
113509	//   "parameters": {
113510	//     "project": {
113511	//       "description": "Project ID for this request.",
113512	//       "location": "path",
113513	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
113514	//       "required": true,
113515	//       "type": "string"
113516	//     },
113517	//     "region": {
113518	//       "description": "The name of the region for this request.",
113519	//       "location": "path",
113520	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
113521	//       "required": true,
113522	//       "type": "string"
113523	//     },
113524	//     "resource": {
113525	//       "description": "Name or id of the resource for this request.",
113526	//       "location": "path",
113527	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
113528	//       "required": true,
113529	//       "type": "string"
113530	//     }
113531	//   },
113532	//   "path": "projects/{project}/regions/{region}/nodeTemplates/{resource}/testIamPermissions",
113533	//   "request": {
113534	//     "$ref": "TestPermissionsRequest"
113535	//   },
113536	//   "response": {
113537	//     "$ref": "TestPermissionsResponse"
113538	//   },
113539	//   "scopes": [
113540	//     "https://www.googleapis.com/auth/cloud-platform",
113541	//     "https://www.googleapis.com/auth/compute",
113542	//     "https://www.googleapis.com/auth/compute.readonly"
113543	//   ]
113544	// }
113545
113546}
113547
113548// method id "compute.nodeTypes.aggregatedList":
113549
113550type NodeTypesAggregatedListCall struct {
113551	s            *Service
113552	project      string
113553	urlParams_   gensupport.URLParams
113554	ifNoneMatch_ string
113555	ctx_         context.Context
113556	header_      http.Header
113557}
113558
113559// AggregatedList: Retrieves an aggregated list of node types.
113560func (r *NodeTypesService) AggregatedList(project string) *NodeTypesAggregatedListCall {
113561	c := &NodeTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113562	c.project = project
113563	return c
113564}
113565
113566// Filter sets the optional parameter "filter": A filter expression that
113567// filters resources listed in the response. The expression must specify
113568// the field name, a comparison operator, and the value that you want to
113569// use for filtering. The value must be a string, a number, or a
113570// boolean. The comparison operator must be either `=`, `!=`, `>`, or
113571// `<`.
113572//
113573// For example, if you are filtering Compute Engine instances, you can
113574// exclude instances named `example-instance` by specifying `name !=
113575// example-instance`.
113576//
113577// You can also filter nested fields. For example, you could specify
113578// `scheduling.automaticRestart = false` to include instances only if
113579// they are not scheduled for automatic restarts. You can use filtering
113580// on nested fields to filter based on resource labels.
113581//
113582// To filter on multiple expressions, provide each separate expression
113583// within parentheses. For example: ``` (scheduling.automaticRestart =
113584// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
113585// is an `AND` expression. However, you can include `AND` and `OR`
113586// expressions explicitly. For example: ``` (cpuPlatform = "Intel
113587// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
113588// (scheduling.automaticRestart = true) ```
113589func (c *NodeTypesAggregatedListCall) Filter(filter string) *NodeTypesAggregatedListCall {
113590	c.urlParams_.Set("filter", filter)
113591	return c
113592}
113593
113594// IncludeAllScopes sets the optional parameter "includeAllScopes":
113595// Indicates whether every visible scope for each scope type (zone,
113596// region, global) should be included in the response. For new resource
113597// types added after this field, the flag has no effect as new resource
113598// types will always include every visible scope for each scope type in
113599// response. For resource types which predate this field, if this flag
113600// is omitted or false, only scopes of the scope types where the
113601// resource type is expected to be found will be included.
113602func (c *NodeTypesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *NodeTypesAggregatedListCall {
113603	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
113604	return c
113605}
113606
113607// MaxResults sets the optional parameter "maxResults": The maximum
113608// number of results per page that should be returned. If the number of
113609// available results is larger than `maxResults`, Compute Engine returns
113610// a `nextPageToken` that can be used to get the next page of results in
113611// subsequent list requests. Acceptable values are `0` to `500`,
113612// inclusive. (Default: `500`)
113613func (c *NodeTypesAggregatedListCall) MaxResults(maxResults int64) *NodeTypesAggregatedListCall {
113614	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
113615	return c
113616}
113617
113618// OrderBy sets the optional parameter "orderBy": Sorts list results by
113619// a certain order. By default, results are returned in alphanumerical
113620// order based on the resource name.
113621//
113622// You can also sort results in descending order based on the creation
113623// timestamp using `orderBy="creationTimestamp desc". This sorts
113624// results based on the `creationTimestamp` field in reverse
113625// chronological order (newest result first). Use this to sort resources
113626// like operations so that the newest operation is returned
113627// first.
113628//
113629// Currently, only sorting by `name` or `creationTimestamp desc` is
113630// supported.
113631func (c *NodeTypesAggregatedListCall) OrderBy(orderBy string) *NodeTypesAggregatedListCall {
113632	c.urlParams_.Set("orderBy", orderBy)
113633	return c
113634}
113635
113636// PageToken sets the optional parameter "pageToken": Specifies a page
113637// token to use. Set `pageToken` to the `nextPageToken` returned by a
113638// previous list request to get the next page of results.
113639func (c *NodeTypesAggregatedListCall) PageToken(pageToken string) *NodeTypesAggregatedListCall {
113640	c.urlParams_.Set("pageToken", pageToken)
113641	return c
113642}
113643
113644// ReturnPartialSuccess sets the optional parameter
113645// "returnPartialSuccess": Opt-in for partial success behavior which
113646// provides partial results in case of failure. The default value is
113647// false.
113648func (c *NodeTypesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NodeTypesAggregatedListCall {
113649	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
113650	return c
113651}
113652
113653// Fields allows partial responses to be retrieved. See
113654// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113655// for more information.
113656func (c *NodeTypesAggregatedListCall) Fields(s ...googleapi.Field) *NodeTypesAggregatedListCall {
113657	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113658	return c
113659}
113660
113661// IfNoneMatch sets the optional parameter which makes the operation
113662// fail if the object's ETag matches the given value. This is useful for
113663// getting updates only after the object has changed since the last
113664// request. Use googleapi.IsNotModified to check whether the response
113665// error from Do is the result of In-None-Match.
113666func (c *NodeTypesAggregatedListCall) IfNoneMatch(entityTag string) *NodeTypesAggregatedListCall {
113667	c.ifNoneMatch_ = entityTag
113668	return c
113669}
113670
113671// Context sets the context to be used in this call's Do method. Any
113672// pending HTTP request will be aborted if the provided context is
113673// canceled.
113674func (c *NodeTypesAggregatedListCall) Context(ctx context.Context) *NodeTypesAggregatedListCall {
113675	c.ctx_ = ctx
113676	return c
113677}
113678
113679// Header returns an http.Header that can be modified by the caller to
113680// add HTTP headers to the request.
113681func (c *NodeTypesAggregatedListCall) Header() http.Header {
113682	if c.header_ == nil {
113683		c.header_ = make(http.Header)
113684	}
113685	return c.header_
113686}
113687
113688func (c *NodeTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
113689	reqHeaders := make(http.Header)
113690	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
113691	for k, v := range c.header_ {
113692		reqHeaders[k] = v
113693	}
113694	reqHeaders.Set("User-Agent", c.s.userAgent())
113695	if c.ifNoneMatch_ != "" {
113696		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
113697	}
113698	var body io.Reader = nil
113699	c.urlParams_.Set("alt", alt)
113700	c.urlParams_.Set("prettyPrint", "false")
113701	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/nodeTypes")
113702	urls += "?" + c.urlParams_.Encode()
113703	req, err := http.NewRequest("GET", urls, body)
113704	if err != nil {
113705		return nil, err
113706	}
113707	req.Header = reqHeaders
113708	googleapi.Expand(req.URL, map[string]string{
113709		"project": c.project,
113710	})
113711	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113712}
113713
113714// Do executes the "compute.nodeTypes.aggregatedList" call.
113715// Exactly one of *NodeTypeAggregatedList or error will be non-nil. Any
113716// non-2xx status code is an error. Response headers are in either
113717// *NodeTypeAggregatedList.ServerResponse.Header or (if a response was
113718// returned at all) in error.(*googleapi.Error).Header. Use
113719// googleapi.IsNotModified to check whether the returned error was
113720// because http.StatusNotModified was returned.
113721func (c *NodeTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*NodeTypeAggregatedList, error) {
113722	gensupport.SetOptions(c.urlParams_, opts...)
113723	res, err := c.doRequest("json")
113724	if res != nil && res.StatusCode == http.StatusNotModified {
113725		if res.Body != nil {
113726			res.Body.Close()
113727		}
113728		return nil, &googleapi.Error{
113729			Code:   res.StatusCode,
113730			Header: res.Header,
113731		}
113732	}
113733	if err != nil {
113734		return nil, err
113735	}
113736	defer googleapi.CloseBody(res)
113737	if err := googleapi.CheckResponse(res); err != nil {
113738		return nil, err
113739	}
113740	ret := &NodeTypeAggregatedList{
113741		ServerResponse: googleapi.ServerResponse{
113742			Header:         res.Header,
113743			HTTPStatusCode: res.StatusCode,
113744		},
113745	}
113746	target := &ret
113747	if err := gensupport.DecodeResponse(target, res); err != nil {
113748		return nil, err
113749	}
113750	return ret, nil
113751	// {
113752	//   "description": "Retrieves an aggregated list of node types.",
113753	//   "httpMethod": "GET",
113754	//   "id": "compute.nodeTypes.aggregatedList",
113755	//   "parameterOrder": [
113756	//     "project"
113757	//   ],
113758	//   "parameters": {
113759	//     "filter": {
113760	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
113761	//       "location": "query",
113762	//       "type": "string"
113763	//     },
113764	//     "includeAllScopes": {
113765	//       "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.",
113766	//       "location": "query",
113767	//       "type": "boolean"
113768	//     },
113769	//     "maxResults": {
113770	//       "default": "500",
113771	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
113772	//       "format": "uint32",
113773	//       "location": "query",
113774	//       "minimum": "0",
113775	//       "type": "integer"
113776	//     },
113777	//     "orderBy": {
113778	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
113779	//       "location": "query",
113780	//       "type": "string"
113781	//     },
113782	//     "pageToken": {
113783	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
113784	//       "location": "query",
113785	//       "type": "string"
113786	//     },
113787	//     "project": {
113788	//       "description": "Project ID for this request.",
113789	//       "location": "path",
113790	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
113791	//       "required": true,
113792	//       "type": "string"
113793	//     },
113794	//     "returnPartialSuccess": {
113795	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
113796	//       "location": "query",
113797	//       "type": "boolean"
113798	//     }
113799	//   },
113800	//   "path": "projects/{project}/aggregated/nodeTypes",
113801	//   "response": {
113802	//     "$ref": "NodeTypeAggregatedList"
113803	//   },
113804	//   "scopes": [
113805	//     "https://www.googleapis.com/auth/cloud-platform",
113806	//     "https://www.googleapis.com/auth/compute",
113807	//     "https://www.googleapis.com/auth/compute.readonly"
113808	//   ]
113809	// }
113810
113811}
113812
113813// Pages invokes f for each page of results.
113814// A non-nil error returned from f will halt the iteration.
113815// The provided context supersedes any context provided to the Context method.
113816func (c *NodeTypesAggregatedListCall) Pages(ctx context.Context, f func(*NodeTypeAggregatedList) error) error {
113817	c.ctx_ = ctx
113818	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
113819	for {
113820		x, err := c.Do()
113821		if err != nil {
113822			return err
113823		}
113824		if err := f(x); err != nil {
113825			return err
113826		}
113827		if x.NextPageToken == "" {
113828			return nil
113829		}
113830		c.PageToken(x.NextPageToken)
113831	}
113832}
113833
113834// method id "compute.nodeTypes.get":
113835
113836type NodeTypesGetCall struct {
113837	s            *Service
113838	project      string
113839	zone         string
113840	nodeType     string
113841	urlParams_   gensupport.URLParams
113842	ifNoneMatch_ string
113843	ctx_         context.Context
113844	header_      http.Header
113845}
113846
113847// Get: Returns the specified node type. Gets a list of available node
113848// types by making a list() request.
113849func (r *NodeTypesService) Get(project string, zone string, nodeType string) *NodeTypesGetCall {
113850	c := &NodeTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113851	c.project = project
113852	c.zone = zone
113853	c.nodeType = nodeType
113854	return c
113855}
113856
113857// Fields allows partial responses to be retrieved. See
113858// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113859// for more information.
113860func (c *NodeTypesGetCall) Fields(s ...googleapi.Field) *NodeTypesGetCall {
113861	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113862	return c
113863}
113864
113865// IfNoneMatch sets the optional parameter which makes the operation
113866// fail if the object's ETag matches the given value. This is useful for
113867// getting updates only after the object has changed since the last
113868// request. Use googleapi.IsNotModified to check whether the response
113869// error from Do is the result of In-None-Match.
113870func (c *NodeTypesGetCall) IfNoneMatch(entityTag string) *NodeTypesGetCall {
113871	c.ifNoneMatch_ = entityTag
113872	return c
113873}
113874
113875// Context sets the context to be used in this call's Do method. Any
113876// pending HTTP request will be aborted if the provided context is
113877// canceled.
113878func (c *NodeTypesGetCall) Context(ctx context.Context) *NodeTypesGetCall {
113879	c.ctx_ = ctx
113880	return c
113881}
113882
113883// Header returns an http.Header that can be modified by the caller to
113884// add HTTP headers to the request.
113885func (c *NodeTypesGetCall) Header() http.Header {
113886	if c.header_ == nil {
113887		c.header_ = make(http.Header)
113888	}
113889	return c.header_
113890}
113891
113892func (c *NodeTypesGetCall) doRequest(alt string) (*http.Response, error) {
113893	reqHeaders := make(http.Header)
113894	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
113895	for k, v := range c.header_ {
113896		reqHeaders[k] = v
113897	}
113898	reqHeaders.Set("User-Agent", c.s.userAgent())
113899	if c.ifNoneMatch_ != "" {
113900		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
113901	}
113902	var body io.Reader = nil
113903	c.urlParams_.Set("alt", alt)
113904	c.urlParams_.Set("prettyPrint", "false")
113905	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeTypes/{nodeType}")
113906	urls += "?" + c.urlParams_.Encode()
113907	req, err := http.NewRequest("GET", urls, body)
113908	if err != nil {
113909		return nil, err
113910	}
113911	req.Header = reqHeaders
113912	googleapi.Expand(req.URL, map[string]string{
113913		"project":  c.project,
113914		"zone":     c.zone,
113915		"nodeType": c.nodeType,
113916	})
113917	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113918}
113919
113920// Do executes the "compute.nodeTypes.get" call.
113921// Exactly one of *NodeType or error will be non-nil. Any non-2xx status
113922// code is an error. Response headers are in either
113923// *NodeType.ServerResponse.Header or (if a response was returned at
113924// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
113925// to check whether the returned error was because
113926// http.StatusNotModified was returned.
113927func (c *NodeTypesGetCall) Do(opts ...googleapi.CallOption) (*NodeType, error) {
113928	gensupport.SetOptions(c.urlParams_, opts...)
113929	res, err := c.doRequest("json")
113930	if res != nil && res.StatusCode == http.StatusNotModified {
113931		if res.Body != nil {
113932			res.Body.Close()
113933		}
113934		return nil, &googleapi.Error{
113935			Code:   res.StatusCode,
113936			Header: res.Header,
113937		}
113938	}
113939	if err != nil {
113940		return nil, err
113941	}
113942	defer googleapi.CloseBody(res)
113943	if err := googleapi.CheckResponse(res); err != nil {
113944		return nil, err
113945	}
113946	ret := &NodeType{
113947		ServerResponse: googleapi.ServerResponse{
113948			Header:         res.Header,
113949			HTTPStatusCode: res.StatusCode,
113950		},
113951	}
113952	target := &ret
113953	if err := gensupport.DecodeResponse(target, res); err != nil {
113954		return nil, err
113955	}
113956	return ret, nil
113957	// {
113958	//   "description": "Returns the specified node type. Gets a list of available node types by making a list() request.",
113959	//   "httpMethod": "GET",
113960	//   "id": "compute.nodeTypes.get",
113961	//   "parameterOrder": [
113962	//     "project",
113963	//     "zone",
113964	//     "nodeType"
113965	//   ],
113966	//   "parameters": {
113967	//     "nodeType": {
113968	//       "description": "Name of the node type to return.",
113969	//       "location": "path",
113970	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
113971	//       "required": true,
113972	//       "type": "string"
113973	//     },
113974	//     "project": {
113975	//       "description": "Project ID for this request.",
113976	//       "location": "path",
113977	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
113978	//       "required": true,
113979	//       "type": "string"
113980	//     },
113981	//     "zone": {
113982	//       "description": "The name of the zone for this request.",
113983	//       "location": "path",
113984	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
113985	//       "required": true,
113986	//       "type": "string"
113987	//     }
113988	//   },
113989	//   "path": "projects/{project}/zones/{zone}/nodeTypes/{nodeType}",
113990	//   "response": {
113991	//     "$ref": "NodeType"
113992	//   },
113993	//   "scopes": [
113994	//     "https://www.googleapis.com/auth/cloud-platform",
113995	//     "https://www.googleapis.com/auth/compute",
113996	//     "https://www.googleapis.com/auth/compute.readonly"
113997	//   ]
113998	// }
113999
114000}
114001
114002// method id "compute.nodeTypes.list":
114003
114004type NodeTypesListCall struct {
114005	s            *Service
114006	project      string
114007	zone         string
114008	urlParams_   gensupport.URLParams
114009	ifNoneMatch_ string
114010	ctx_         context.Context
114011	header_      http.Header
114012}
114013
114014// List: Retrieves a list of node types available to the specified
114015// project.
114016func (r *NodeTypesService) List(project string, zone string) *NodeTypesListCall {
114017	c := &NodeTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
114018	c.project = project
114019	c.zone = zone
114020	return c
114021}
114022
114023// Filter sets the optional parameter "filter": A filter expression that
114024// filters resources listed in the response. The expression must specify
114025// the field name, a comparison operator, and the value that you want to
114026// use for filtering. The value must be a string, a number, or a
114027// boolean. The comparison operator must be either `=`, `!=`, `>`, or
114028// `<`.
114029//
114030// For example, if you are filtering Compute Engine instances, you can
114031// exclude instances named `example-instance` by specifying `name !=
114032// example-instance`.
114033//
114034// You can also filter nested fields. For example, you could specify
114035// `scheduling.automaticRestart = false` to include instances only if
114036// they are not scheduled for automatic restarts. You can use filtering
114037// on nested fields to filter based on resource labels.
114038//
114039// To filter on multiple expressions, provide each separate expression
114040// within parentheses. For example: ``` (scheduling.automaticRestart =
114041// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
114042// is an `AND` expression. However, you can include `AND` and `OR`
114043// expressions explicitly. For example: ``` (cpuPlatform = "Intel
114044// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
114045// (scheduling.automaticRestart = true) ```
114046func (c *NodeTypesListCall) Filter(filter string) *NodeTypesListCall {
114047	c.urlParams_.Set("filter", filter)
114048	return c
114049}
114050
114051// MaxResults sets the optional parameter "maxResults": The maximum
114052// number of results per page that should be returned. If the number of
114053// available results is larger than `maxResults`, Compute Engine returns
114054// a `nextPageToken` that can be used to get the next page of results in
114055// subsequent list requests. Acceptable values are `0` to `500`,
114056// inclusive. (Default: `500`)
114057func (c *NodeTypesListCall) MaxResults(maxResults int64) *NodeTypesListCall {
114058	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
114059	return c
114060}
114061
114062// OrderBy sets the optional parameter "orderBy": Sorts list results by
114063// a certain order. By default, results are returned in alphanumerical
114064// order based on the resource name.
114065//
114066// You can also sort results in descending order based on the creation
114067// timestamp using `orderBy="creationTimestamp desc". This sorts
114068// results based on the `creationTimestamp` field in reverse
114069// chronological order (newest result first). Use this to sort resources
114070// like operations so that the newest operation is returned
114071// first.
114072//
114073// Currently, only sorting by `name` or `creationTimestamp desc` is
114074// supported.
114075func (c *NodeTypesListCall) OrderBy(orderBy string) *NodeTypesListCall {
114076	c.urlParams_.Set("orderBy", orderBy)
114077	return c
114078}
114079
114080// PageToken sets the optional parameter "pageToken": Specifies a page
114081// token to use. Set `pageToken` to the `nextPageToken` returned by a
114082// previous list request to get the next page of results.
114083func (c *NodeTypesListCall) PageToken(pageToken string) *NodeTypesListCall {
114084	c.urlParams_.Set("pageToken", pageToken)
114085	return c
114086}
114087
114088// ReturnPartialSuccess sets the optional parameter
114089// "returnPartialSuccess": Opt-in for partial success behavior which
114090// provides partial results in case of failure. The default value is
114091// false.
114092func (c *NodeTypesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NodeTypesListCall {
114093	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
114094	return c
114095}
114096
114097// Fields allows partial responses to be retrieved. See
114098// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
114099// for more information.
114100func (c *NodeTypesListCall) Fields(s ...googleapi.Field) *NodeTypesListCall {
114101	c.urlParams_.Set("fields", googleapi.CombineFields(s))
114102	return c
114103}
114104
114105// IfNoneMatch sets the optional parameter which makes the operation
114106// fail if the object's ETag matches the given value. This is useful for
114107// getting updates only after the object has changed since the last
114108// request. Use googleapi.IsNotModified to check whether the response
114109// error from Do is the result of In-None-Match.
114110func (c *NodeTypesListCall) IfNoneMatch(entityTag string) *NodeTypesListCall {
114111	c.ifNoneMatch_ = entityTag
114112	return c
114113}
114114
114115// Context sets the context to be used in this call's Do method. Any
114116// pending HTTP request will be aborted if the provided context is
114117// canceled.
114118func (c *NodeTypesListCall) Context(ctx context.Context) *NodeTypesListCall {
114119	c.ctx_ = ctx
114120	return c
114121}
114122
114123// Header returns an http.Header that can be modified by the caller to
114124// add HTTP headers to the request.
114125func (c *NodeTypesListCall) Header() http.Header {
114126	if c.header_ == nil {
114127		c.header_ = make(http.Header)
114128	}
114129	return c.header_
114130}
114131
114132func (c *NodeTypesListCall) doRequest(alt string) (*http.Response, error) {
114133	reqHeaders := make(http.Header)
114134	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
114135	for k, v := range c.header_ {
114136		reqHeaders[k] = v
114137	}
114138	reqHeaders.Set("User-Agent", c.s.userAgent())
114139	if c.ifNoneMatch_ != "" {
114140		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
114141	}
114142	var body io.Reader = nil
114143	c.urlParams_.Set("alt", alt)
114144	c.urlParams_.Set("prettyPrint", "false")
114145	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeTypes")
114146	urls += "?" + c.urlParams_.Encode()
114147	req, err := http.NewRequest("GET", urls, body)
114148	if err != nil {
114149		return nil, err
114150	}
114151	req.Header = reqHeaders
114152	googleapi.Expand(req.URL, map[string]string{
114153		"project": c.project,
114154		"zone":    c.zone,
114155	})
114156	return gensupport.SendRequest(c.ctx_, c.s.client, req)
114157}
114158
114159// Do executes the "compute.nodeTypes.list" call.
114160// Exactly one of *NodeTypeList or error will be non-nil. Any non-2xx
114161// status code is an error. Response headers are in either
114162// *NodeTypeList.ServerResponse.Header or (if a response was returned at
114163// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
114164// to check whether the returned error was because
114165// http.StatusNotModified was returned.
114166func (c *NodeTypesListCall) Do(opts ...googleapi.CallOption) (*NodeTypeList, error) {
114167	gensupport.SetOptions(c.urlParams_, opts...)
114168	res, err := c.doRequest("json")
114169	if res != nil && res.StatusCode == http.StatusNotModified {
114170		if res.Body != nil {
114171			res.Body.Close()
114172		}
114173		return nil, &googleapi.Error{
114174			Code:   res.StatusCode,
114175			Header: res.Header,
114176		}
114177	}
114178	if err != nil {
114179		return nil, err
114180	}
114181	defer googleapi.CloseBody(res)
114182	if err := googleapi.CheckResponse(res); err != nil {
114183		return nil, err
114184	}
114185	ret := &NodeTypeList{
114186		ServerResponse: googleapi.ServerResponse{
114187			Header:         res.Header,
114188			HTTPStatusCode: res.StatusCode,
114189		},
114190	}
114191	target := &ret
114192	if err := gensupport.DecodeResponse(target, res); err != nil {
114193		return nil, err
114194	}
114195	return ret, nil
114196	// {
114197	//   "description": "Retrieves a list of node types available to the specified project.",
114198	//   "httpMethod": "GET",
114199	//   "id": "compute.nodeTypes.list",
114200	//   "parameterOrder": [
114201	//     "project",
114202	//     "zone"
114203	//   ],
114204	//   "parameters": {
114205	//     "filter": {
114206	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
114207	//       "location": "query",
114208	//       "type": "string"
114209	//     },
114210	//     "maxResults": {
114211	//       "default": "500",
114212	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
114213	//       "format": "uint32",
114214	//       "location": "query",
114215	//       "minimum": "0",
114216	//       "type": "integer"
114217	//     },
114218	//     "orderBy": {
114219	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
114220	//       "location": "query",
114221	//       "type": "string"
114222	//     },
114223	//     "pageToken": {
114224	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
114225	//       "location": "query",
114226	//       "type": "string"
114227	//     },
114228	//     "project": {
114229	//       "description": "Project ID for this request.",
114230	//       "location": "path",
114231	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
114232	//       "required": true,
114233	//       "type": "string"
114234	//     },
114235	//     "returnPartialSuccess": {
114236	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
114237	//       "location": "query",
114238	//       "type": "boolean"
114239	//     },
114240	//     "zone": {
114241	//       "description": "The name of the zone for this request.",
114242	//       "location": "path",
114243	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
114244	//       "required": true,
114245	//       "type": "string"
114246	//     }
114247	//   },
114248	//   "path": "projects/{project}/zones/{zone}/nodeTypes",
114249	//   "response": {
114250	//     "$ref": "NodeTypeList"
114251	//   },
114252	//   "scopes": [
114253	//     "https://www.googleapis.com/auth/cloud-platform",
114254	//     "https://www.googleapis.com/auth/compute",
114255	//     "https://www.googleapis.com/auth/compute.readonly"
114256	//   ]
114257	// }
114258
114259}
114260
114261// Pages invokes f for each page of results.
114262// A non-nil error returned from f will halt the iteration.
114263// The provided context supersedes any context provided to the Context method.
114264func (c *NodeTypesListCall) Pages(ctx context.Context, f func(*NodeTypeList) error) error {
114265	c.ctx_ = ctx
114266	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
114267	for {
114268		x, err := c.Do()
114269		if err != nil {
114270			return err
114271		}
114272		if err := f(x); err != nil {
114273			return err
114274		}
114275		if x.NextPageToken == "" {
114276			return nil
114277		}
114278		c.PageToken(x.NextPageToken)
114279	}
114280}
114281
114282// method id "compute.organizationSecurityPolicies.addAssociation":
114283
114284type OrganizationSecurityPoliciesAddAssociationCall struct {
114285	s                         *Service
114286	securityPolicy            string
114287	securitypolicyassociation *SecurityPolicyAssociation
114288	urlParams_                gensupport.URLParams
114289	ctx_                      context.Context
114290	header_                   http.Header
114291}
114292
114293// AddAssociation: Inserts an association for the specified security
114294// policy.
114295func (r *OrganizationSecurityPoliciesService) AddAssociation(securityPolicy string, securitypolicyassociation *SecurityPolicyAssociation) *OrganizationSecurityPoliciesAddAssociationCall {
114296	c := &OrganizationSecurityPoliciesAddAssociationCall{s: r.s, urlParams_: make(gensupport.URLParams)}
114297	c.securityPolicy = securityPolicy
114298	c.securitypolicyassociation = securitypolicyassociation
114299	return c
114300}
114301
114302// ReplaceExistingAssociation sets the optional parameter
114303// "replaceExistingAssociation": Indicates whether or not to replace it
114304// if an association of the attachment already exists. This is false by
114305// default, in which case an error will be returned if an association
114306// already exists.
114307func (c *OrganizationSecurityPoliciesAddAssociationCall) ReplaceExistingAssociation(replaceExistingAssociation bool) *OrganizationSecurityPoliciesAddAssociationCall {
114308	c.urlParams_.Set("replaceExistingAssociation", fmt.Sprint(replaceExistingAssociation))
114309	return c
114310}
114311
114312// RequestId sets the optional parameter "requestId": An optional
114313// request ID to identify requests. Specify a unique request ID so that
114314// if you must retry your request, the server will know to ignore the
114315// request if it has already been completed.
114316//
114317// For example, consider a situation where you make an initial request
114318// and the request times out. If you make the request again with the
114319// same request ID, the server can check if original operation with the
114320// same request ID was received, and if so, will ignore the second
114321// request. This prevents clients from accidentally creating duplicate
114322// commitments.
114323//
114324// The request ID must be a valid UUID with the exception that zero UUID
114325// is not supported (00000000-0000-0000-0000-000000000000).
114326func (c *OrganizationSecurityPoliciesAddAssociationCall) RequestId(requestId string) *OrganizationSecurityPoliciesAddAssociationCall {
114327	c.urlParams_.Set("requestId", requestId)
114328	return c
114329}
114330
114331// Fields allows partial responses to be retrieved. See
114332// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
114333// for more information.
114334func (c *OrganizationSecurityPoliciesAddAssociationCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesAddAssociationCall {
114335	c.urlParams_.Set("fields", googleapi.CombineFields(s))
114336	return c
114337}
114338
114339// Context sets the context to be used in this call's Do method. Any
114340// pending HTTP request will be aborted if the provided context is
114341// canceled.
114342func (c *OrganizationSecurityPoliciesAddAssociationCall) Context(ctx context.Context) *OrganizationSecurityPoliciesAddAssociationCall {
114343	c.ctx_ = ctx
114344	return c
114345}
114346
114347// Header returns an http.Header that can be modified by the caller to
114348// add HTTP headers to the request.
114349func (c *OrganizationSecurityPoliciesAddAssociationCall) Header() http.Header {
114350	if c.header_ == nil {
114351		c.header_ = make(http.Header)
114352	}
114353	return c.header_
114354}
114355
114356func (c *OrganizationSecurityPoliciesAddAssociationCall) doRequest(alt string) (*http.Response, error) {
114357	reqHeaders := make(http.Header)
114358	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
114359	for k, v := range c.header_ {
114360		reqHeaders[k] = v
114361	}
114362	reqHeaders.Set("User-Agent", c.s.userAgent())
114363	var body io.Reader = nil
114364	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyassociation)
114365	if err != nil {
114366		return nil, err
114367	}
114368	reqHeaders.Set("Content-Type", "application/json")
114369	c.urlParams_.Set("alt", alt)
114370	c.urlParams_.Set("prettyPrint", "false")
114371	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/addAssociation")
114372	urls += "?" + c.urlParams_.Encode()
114373	req, err := http.NewRequest("POST", urls, body)
114374	if err != nil {
114375		return nil, err
114376	}
114377	req.Header = reqHeaders
114378	googleapi.Expand(req.URL, map[string]string{
114379		"securityPolicy": c.securityPolicy,
114380	})
114381	return gensupport.SendRequest(c.ctx_, c.s.client, req)
114382}
114383
114384// Do executes the "compute.organizationSecurityPolicies.addAssociation" call.
114385// Exactly one of *Operation or error will be non-nil. Any non-2xx
114386// status code is an error. Response headers are in either
114387// *Operation.ServerResponse.Header or (if a response was returned at
114388// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
114389// to check whether the returned error was because
114390// http.StatusNotModified was returned.
114391func (c *OrganizationSecurityPoliciesAddAssociationCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
114392	gensupport.SetOptions(c.urlParams_, opts...)
114393	res, err := c.doRequest("json")
114394	if res != nil && res.StatusCode == http.StatusNotModified {
114395		if res.Body != nil {
114396			res.Body.Close()
114397		}
114398		return nil, &googleapi.Error{
114399			Code:   res.StatusCode,
114400			Header: res.Header,
114401		}
114402	}
114403	if err != nil {
114404		return nil, err
114405	}
114406	defer googleapi.CloseBody(res)
114407	if err := googleapi.CheckResponse(res); err != nil {
114408		return nil, err
114409	}
114410	ret := &Operation{
114411		ServerResponse: googleapi.ServerResponse{
114412			Header:         res.Header,
114413			HTTPStatusCode: res.StatusCode,
114414		},
114415	}
114416	target := &ret
114417	if err := gensupport.DecodeResponse(target, res); err != nil {
114418		return nil, err
114419	}
114420	return ret, nil
114421	// {
114422	//   "description": "Inserts an association for the specified security policy.",
114423	//   "httpMethod": "POST",
114424	//   "id": "compute.organizationSecurityPolicies.addAssociation",
114425	//   "parameterOrder": [
114426	//     "securityPolicy"
114427	//   ],
114428	//   "parameters": {
114429	//     "replaceExistingAssociation": {
114430	//       "description": "Indicates whether or not to replace it if an association of the attachment already exists. This is false by default, in which case an error will be returned if an association already exists.",
114431	//       "location": "query",
114432	//       "type": "boolean"
114433	//     },
114434	//     "requestId": {
114435	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
114436	//       "location": "query",
114437	//       "type": "string"
114438	//     },
114439	//     "securityPolicy": {
114440	//       "description": "Name of the security policy to update.",
114441	//       "location": "path",
114442	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
114443	//       "required": true,
114444	//       "type": "string"
114445	//     }
114446	//   },
114447	//   "path": "locations/global/securityPolicies/{securityPolicy}/addAssociation",
114448	//   "request": {
114449	//     "$ref": "SecurityPolicyAssociation"
114450	//   },
114451	//   "response": {
114452	//     "$ref": "Operation"
114453	//   },
114454	//   "scopes": [
114455	//     "https://www.googleapis.com/auth/cloud-platform",
114456	//     "https://www.googleapis.com/auth/compute"
114457	//   ]
114458	// }
114459
114460}
114461
114462// method id "compute.organizationSecurityPolicies.addRule":
114463
114464type OrganizationSecurityPoliciesAddRuleCall struct {
114465	s                  *Service
114466	securityPolicy     string
114467	securitypolicyrule *SecurityPolicyRule
114468	urlParams_         gensupport.URLParams
114469	ctx_               context.Context
114470	header_            http.Header
114471}
114472
114473// AddRule: Inserts a rule into a security policy.
114474func (r *OrganizationSecurityPoliciesService) AddRule(securityPolicy string, securitypolicyrule *SecurityPolicyRule) *OrganizationSecurityPoliciesAddRuleCall {
114475	c := &OrganizationSecurityPoliciesAddRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
114476	c.securityPolicy = securityPolicy
114477	c.securitypolicyrule = securitypolicyrule
114478	return c
114479}
114480
114481// RequestId sets the optional parameter "requestId": An optional
114482// request ID to identify requests. Specify a unique request ID so that
114483// if you must retry your request, the server will know to ignore the
114484// request if it has already been completed.
114485//
114486// For example, consider a situation where you make an initial request
114487// and the request times out. If you make the request again with the
114488// same request ID, the server can check if original operation with the
114489// same request ID was received, and if so, will ignore the second
114490// request. This prevents clients from accidentally creating duplicate
114491// commitments.
114492//
114493// The request ID must be a valid UUID with the exception that zero UUID
114494// is not supported (00000000-0000-0000-0000-000000000000).
114495func (c *OrganizationSecurityPoliciesAddRuleCall) RequestId(requestId string) *OrganizationSecurityPoliciesAddRuleCall {
114496	c.urlParams_.Set("requestId", requestId)
114497	return c
114498}
114499
114500// Fields allows partial responses to be retrieved. See
114501// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
114502// for more information.
114503func (c *OrganizationSecurityPoliciesAddRuleCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesAddRuleCall {
114504	c.urlParams_.Set("fields", googleapi.CombineFields(s))
114505	return c
114506}
114507
114508// Context sets the context to be used in this call's Do method. Any
114509// pending HTTP request will be aborted if the provided context is
114510// canceled.
114511func (c *OrganizationSecurityPoliciesAddRuleCall) Context(ctx context.Context) *OrganizationSecurityPoliciesAddRuleCall {
114512	c.ctx_ = ctx
114513	return c
114514}
114515
114516// Header returns an http.Header that can be modified by the caller to
114517// add HTTP headers to the request.
114518func (c *OrganizationSecurityPoliciesAddRuleCall) Header() http.Header {
114519	if c.header_ == nil {
114520		c.header_ = make(http.Header)
114521	}
114522	return c.header_
114523}
114524
114525func (c *OrganizationSecurityPoliciesAddRuleCall) doRequest(alt string) (*http.Response, error) {
114526	reqHeaders := make(http.Header)
114527	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
114528	for k, v := range c.header_ {
114529		reqHeaders[k] = v
114530	}
114531	reqHeaders.Set("User-Agent", c.s.userAgent())
114532	var body io.Reader = nil
114533	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyrule)
114534	if err != nil {
114535		return nil, err
114536	}
114537	reqHeaders.Set("Content-Type", "application/json")
114538	c.urlParams_.Set("alt", alt)
114539	c.urlParams_.Set("prettyPrint", "false")
114540	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/addRule")
114541	urls += "?" + c.urlParams_.Encode()
114542	req, err := http.NewRequest("POST", urls, body)
114543	if err != nil {
114544		return nil, err
114545	}
114546	req.Header = reqHeaders
114547	googleapi.Expand(req.URL, map[string]string{
114548		"securityPolicy": c.securityPolicy,
114549	})
114550	return gensupport.SendRequest(c.ctx_, c.s.client, req)
114551}
114552
114553// Do executes the "compute.organizationSecurityPolicies.addRule" call.
114554// Exactly one of *Operation or error will be non-nil. Any non-2xx
114555// status code is an error. Response headers are in either
114556// *Operation.ServerResponse.Header or (if a response was returned at
114557// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
114558// to check whether the returned error was because
114559// http.StatusNotModified was returned.
114560func (c *OrganizationSecurityPoliciesAddRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
114561	gensupport.SetOptions(c.urlParams_, opts...)
114562	res, err := c.doRequest("json")
114563	if res != nil && res.StatusCode == http.StatusNotModified {
114564		if res.Body != nil {
114565			res.Body.Close()
114566		}
114567		return nil, &googleapi.Error{
114568			Code:   res.StatusCode,
114569			Header: res.Header,
114570		}
114571	}
114572	if err != nil {
114573		return nil, err
114574	}
114575	defer googleapi.CloseBody(res)
114576	if err := googleapi.CheckResponse(res); err != nil {
114577		return nil, err
114578	}
114579	ret := &Operation{
114580		ServerResponse: googleapi.ServerResponse{
114581			Header:         res.Header,
114582			HTTPStatusCode: res.StatusCode,
114583		},
114584	}
114585	target := &ret
114586	if err := gensupport.DecodeResponse(target, res); err != nil {
114587		return nil, err
114588	}
114589	return ret, nil
114590	// {
114591	//   "description": "Inserts a rule into a security policy.",
114592	//   "httpMethod": "POST",
114593	//   "id": "compute.organizationSecurityPolicies.addRule",
114594	//   "parameterOrder": [
114595	//     "securityPolicy"
114596	//   ],
114597	//   "parameters": {
114598	//     "requestId": {
114599	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
114600	//       "location": "query",
114601	//       "type": "string"
114602	//     },
114603	//     "securityPolicy": {
114604	//       "description": "Name of the security policy to update.",
114605	//       "location": "path",
114606	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
114607	//       "required": true,
114608	//       "type": "string"
114609	//     }
114610	//   },
114611	//   "path": "locations/global/securityPolicies/{securityPolicy}/addRule",
114612	//   "request": {
114613	//     "$ref": "SecurityPolicyRule"
114614	//   },
114615	//   "response": {
114616	//     "$ref": "Operation"
114617	//   },
114618	//   "scopes": [
114619	//     "https://www.googleapis.com/auth/cloud-platform",
114620	//     "https://www.googleapis.com/auth/compute"
114621	//   ]
114622	// }
114623
114624}
114625
114626// method id "compute.organizationSecurityPolicies.copyRules":
114627
114628type OrganizationSecurityPoliciesCopyRulesCall struct {
114629	s              *Service
114630	securityPolicy string
114631	urlParams_     gensupport.URLParams
114632	ctx_           context.Context
114633	header_        http.Header
114634}
114635
114636// CopyRules: Copies rules to the specified security policy.
114637func (r *OrganizationSecurityPoliciesService) CopyRules(securityPolicy string) *OrganizationSecurityPoliciesCopyRulesCall {
114638	c := &OrganizationSecurityPoliciesCopyRulesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
114639	c.securityPolicy = securityPolicy
114640	return c
114641}
114642
114643// RequestId sets the optional parameter "requestId": An optional
114644// request ID to identify requests. Specify a unique request ID so that
114645// if you must retry your request, the server will know to ignore the
114646// request if it has already been completed.
114647//
114648// For example, consider a situation where you make an initial request
114649// and the request times out. If you make the request again with the
114650// same request ID, the server can check if original operation with the
114651// same request ID was received, and if so, will ignore the second
114652// request. This prevents clients from accidentally creating duplicate
114653// commitments.
114654//
114655// The request ID must be a valid UUID with the exception that zero UUID
114656// is not supported (00000000-0000-0000-0000-000000000000).
114657func (c *OrganizationSecurityPoliciesCopyRulesCall) RequestId(requestId string) *OrganizationSecurityPoliciesCopyRulesCall {
114658	c.urlParams_.Set("requestId", requestId)
114659	return c
114660}
114661
114662// SourceSecurityPolicy sets the optional parameter
114663// "sourceSecurityPolicy": The security policy from which to copy rules.
114664func (c *OrganizationSecurityPoliciesCopyRulesCall) SourceSecurityPolicy(sourceSecurityPolicy string) *OrganizationSecurityPoliciesCopyRulesCall {
114665	c.urlParams_.Set("sourceSecurityPolicy", sourceSecurityPolicy)
114666	return c
114667}
114668
114669// Fields allows partial responses to be retrieved. See
114670// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
114671// for more information.
114672func (c *OrganizationSecurityPoliciesCopyRulesCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesCopyRulesCall {
114673	c.urlParams_.Set("fields", googleapi.CombineFields(s))
114674	return c
114675}
114676
114677// Context sets the context to be used in this call's Do method. Any
114678// pending HTTP request will be aborted if the provided context is
114679// canceled.
114680func (c *OrganizationSecurityPoliciesCopyRulesCall) Context(ctx context.Context) *OrganizationSecurityPoliciesCopyRulesCall {
114681	c.ctx_ = ctx
114682	return c
114683}
114684
114685// Header returns an http.Header that can be modified by the caller to
114686// add HTTP headers to the request.
114687func (c *OrganizationSecurityPoliciesCopyRulesCall) Header() http.Header {
114688	if c.header_ == nil {
114689		c.header_ = make(http.Header)
114690	}
114691	return c.header_
114692}
114693
114694func (c *OrganizationSecurityPoliciesCopyRulesCall) doRequest(alt string) (*http.Response, error) {
114695	reqHeaders := make(http.Header)
114696	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
114697	for k, v := range c.header_ {
114698		reqHeaders[k] = v
114699	}
114700	reqHeaders.Set("User-Agent", c.s.userAgent())
114701	var body io.Reader = nil
114702	c.urlParams_.Set("alt", alt)
114703	c.urlParams_.Set("prettyPrint", "false")
114704	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/copyRules")
114705	urls += "?" + c.urlParams_.Encode()
114706	req, err := http.NewRequest("POST", urls, body)
114707	if err != nil {
114708		return nil, err
114709	}
114710	req.Header = reqHeaders
114711	googleapi.Expand(req.URL, map[string]string{
114712		"securityPolicy": c.securityPolicy,
114713	})
114714	return gensupport.SendRequest(c.ctx_, c.s.client, req)
114715}
114716
114717// Do executes the "compute.organizationSecurityPolicies.copyRules" call.
114718// Exactly one of *Operation or error will be non-nil. Any non-2xx
114719// status code is an error. Response headers are in either
114720// *Operation.ServerResponse.Header or (if a response was returned at
114721// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
114722// to check whether the returned error was because
114723// http.StatusNotModified was returned.
114724func (c *OrganizationSecurityPoliciesCopyRulesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
114725	gensupport.SetOptions(c.urlParams_, opts...)
114726	res, err := c.doRequest("json")
114727	if res != nil && res.StatusCode == http.StatusNotModified {
114728		if res.Body != nil {
114729			res.Body.Close()
114730		}
114731		return nil, &googleapi.Error{
114732			Code:   res.StatusCode,
114733			Header: res.Header,
114734		}
114735	}
114736	if err != nil {
114737		return nil, err
114738	}
114739	defer googleapi.CloseBody(res)
114740	if err := googleapi.CheckResponse(res); err != nil {
114741		return nil, err
114742	}
114743	ret := &Operation{
114744		ServerResponse: googleapi.ServerResponse{
114745			Header:         res.Header,
114746			HTTPStatusCode: res.StatusCode,
114747		},
114748	}
114749	target := &ret
114750	if err := gensupport.DecodeResponse(target, res); err != nil {
114751		return nil, err
114752	}
114753	return ret, nil
114754	// {
114755	//   "description": "Copies rules to the specified security policy.",
114756	//   "httpMethod": "POST",
114757	//   "id": "compute.organizationSecurityPolicies.copyRules",
114758	//   "parameterOrder": [
114759	//     "securityPolicy"
114760	//   ],
114761	//   "parameters": {
114762	//     "requestId": {
114763	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
114764	//       "location": "query",
114765	//       "type": "string"
114766	//     },
114767	//     "securityPolicy": {
114768	//       "description": "Name of the security policy to update.",
114769	//       "location": "path",
114770	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
114771	//       "required": true,
114772	//       "type": "string"
114773	//     },
114774	//     "sourceSecurityPolicy": {
114775	//       "description": "The security policy from which to copy rules.",
114776	//       "location": "query",
114777	//       "type": "string"
114778	//     }
114779	//   },
114780	//   "path": "locations/global/securityPolicies/{securityPolicy}/copyRules",
114781	//   "response": {
114782	//     "$ref": "Operation"
114783	//   },
114784	//   "scopes": [
114785	//     "https://www.googleapis.com/auth/cloud-platform",
114786	//     "https://www.googleapis.com/auth/compute"
114787	//   ]
114788	// }
114789
114790}
114791
114792// method id "compute.organizationSecurityPolicies.delete":
114793
114794type OrganizationSecurityPoliciesDeleteCall struct {
114795	s              *Service
114796	securityPolicy string
114797	urlParams_     gensupport.URLParams
114798	ctx_           context.Context
114799	header_        http.Header
114800}
114801
114802// Delete: Deletes the specified policy.
114803func (r *OrganizationSecurityPoliciesService) Delete(securityPolicy string) *OrganizationSecurityPoliciesDeleteCall {
114804	c := &OrganizationSecurityPoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
114805	c.securityPolicy = securityPolicy
114806	return c
114807}
114808
114809// RequestId sets the optional parameter "requestId": An optional
114810// request ID to identify requests. Specify a unique request ID so that
114811// if you must retry your request, the server will know to ignore the
114812// request if it has already been completed.
114813//
114814// For example, consider a situation where you make an initial request
114815// and the request times out. If you make the request again with the
114816// same request ID, the server can check if original operation with the
114817// same request ID was received, and if so, will ignore the second
114818// request. This prevents clients from accidentally creating duplicate
114819// commitments.
114820//
114821// The request ID must be a valid UUID with the exception that zero UUID
114822// is not supported (00000000-0000-0000-0000-000000000000).
114823func (c *OrganizationSecurityPoliciesDeleteCall) RequestId(requestId string) *OrganizationSecurityPoliciesDeleteCall {
114824	c.urlParams_.Set("requestId", requestId)
114825	return c
114826}
114827
114828// Fields allows partial responses to be retrieved. See
114829// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
114830// for more information.
114831func (c *OrganizationSecurityPoliciesDeleteCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesDeleteCall {
114832	c.urlParams_.Set("fields", googleapi.CombineFields(s))
114833	return c
114834}
114835
114836// Context sets the context to be used in this call's Do method. Any
114837// pending HTTP request will be aborted if the provided context is
114838// canceled.
114839func (c *OrganizationSecurityPoliciesDeleteCall) Context(ctx context.Context) *OrganizationSecurityPoliciesDeleteCall {
114840	c.ctx_ = ctx
114841	return c
114842}
114843
114844// Header returns an http.Header that can be modified by the caller to
114845// add HTTP headers to the request.
114846func (c *OrganizationSecurityPoliciesDeleteCall) Header() http.Header {
114847	if c.header_ == nil {
114848		c.header_ = make(http.Header)
114849	}
114850	return c.header_
114851}
114852
114853func (c *OrganizationSecurityPoliciesDeleteCall) doRequest(alt string) (*http.Response, error) {
114854	reqHeaders := make(http.Header)
114855	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
114856	for k, v := range c.header_ {
114857		reqHeaders[k] = v
114858	}
114859	reqHeaders.Set("User-Agent", c.s.userAgent())
114860	var body io.Reader = nil
114861	c.urlParams_.Set("alt", alt)
114862	c.urlParams_.Set("prettyPrint", "false")
114863	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}")
114864	urls += "?" + c.urlParams_.Encode()
114865	req, err := http.NewRequest("DELETE", urls, body)
114866	if err != nil {
114867		return nil, err
114868	}
114869	req.Header = reqHeaders
114870	googleapi.Expand(req.URL, map[string]string{
114871		"securityPolicy": c.securityPolicy,
114872	})
114873	return gensupport.SendRequest(c.ctx_, c.s.client, req)
114874}
114875
114876// Do executes the "compute.organizationSecurityPolicies.delete" call.
114877// Exactly one of *Operation or error will be non-nil. Any non-2xx
114878// status code is an error. Response headers are in either
114879// *Operation.ServerResponse.Header or (if a response was returned at
114880// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
114881// to check whether the returned error was because
114882// http.StatusNotModified was returned.
114883func (c *OrganizationSecurityPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
114884	gensupport.SetOptions(c.urlParams_, opts...)
114885	res, err := c.doRequest("json")
114886	if res != nil && res.StatusCode == http.StatusNotModified {
114887		if res.Body != nil {
114888			res.Body.Close()
114889		}
114890		return nil, &googleapi.Error{
114891			Code:   res.StatusCode,
114892			Header: res.Header,
114893		}
114894	}
114895	if err != nil {
114896		return nil, err
114897	}
114898	defer googleapi.CloseBody(res)
114899	if err := googleapi.CheckResponse(res); err != nil {
114900		return nil, err
114901	}
114902	ret := &Operation{
114903		ServerResponse: googleapi.ServerResponse{
114904			Header:         res.Header,
114905			HTTPStatusCode: res.StatusCode,
114906		},
114907	}
114908	target := &ret
114909	if err := gensupport.DecodeResponse(target, res); err != nil {
114910		return nil, err
114911	}
114912	return ret, nil
114913	// {
114914	//   "description": "Deletes the specified policy.",
114915	//   "httpMethod": "DELETE",
114916	//   "id": "compute.organizationSecurityPolicies.delete",
114917	//   "parameterOrder": [
114918	//     "securityPolicy"
114919	//   ],
114920	//   "parameters": {
114921	//     "requestId": {
114922	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
114923	//       "location": "query",
114924	//       "type": "string"
114925	//     },
114926	//     "securityPolicy": {
114927	//       "description": "Name of the security policy to delete.",
114928	//       "location": "path",
114929	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
114930	//       "required": true,
114931	//       "type": "string"
114932	//     }
114933	//   },
114934	//   "path": "locations/global/securityPolicies/{securityPolicy}",
114935	//   "response": {
114936	//     "$ref": "Operation"
114937	//   },
114938	//   "scopes": [
114939	//     "https://www.googleapis.com/auth/cloud-platform",
114940	//     "https://www.googleapis.com/auth/compute"
114941	//   ]
114942	// }
114943
114944}
114945
114946// method id "compute.organizationSecurityPolicies.get":
114947
114948type OrganizationSecurityPoliciesGetCall struct {
114949	s              *Service
114950	securityPolicy string
114951	urlParams_     gensupport.URLParams
114952	ifNoneMatch_   string
114953	ctx_           context.Context
114954	header_        http.Header
114955}
114956
114957// Get: List all of the ordered rules present in a single specified
114958// policy.
114959func (r *OrganizationSecurityPoliciesService) Get(securityPolicy string) *OrganizationSecurityPoliciesGetCall {
114960	c := &OrganizationSecurityPoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
114961	c.securityPolicy = securityPolicy
114962	return c
114963}
114964
114965// Fields allows partial responses to be retrieved. See
114966// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
114967// for more information.
114968func (c *OrganizationSecurityPoliciesGetCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesGetCall {
114969	c.urlParams_.Set("fields", googleapi.CombineFields(s))
114970	return c
114971}
114972
114973// IfNoneMatch sets the optional parameter which makes the operation
114974// fail if the object's ETag matches the given value. This is useful for
114975// getting updates only after the object has changed since the last
114976// request. Use googleapi.IsNotModified to check whether the response
114977// error from Do is the result of In-None-Match.
114978func (c *OrganizationSecurityPoliciesGetCall) IfNoneMatch(entityTag string) *OrganizationSecurityPoliciesGetCall {
114979	c.ifNoneMatch_ = entityTag
114980	return c
114981}
114982
114983// Context sets the context to be used in this call's Do method. Any
114984// pending HTTP request will be aborted if the provided context is
114985// canceled.
114986func (c *OrganizationSecurityPoliciesGetCall) Context(ctx context.Context) *OrganizationSecurityPoliciesGetCall {
114987	c.ctx_ = ctx
114988	return c
114989}
114990
114991// Header returns an http.Header that can be modified by the caller to
114992// add HTTP headers to the request.
114993func (c *OrganizationSecurityPoliciesGetCall) Header() http.Header {
114994	if c.header_ == nil {
114995		c.header_ = make(http.Header)
114996	}
114997	return c.header_
114998}
114999
115000func (c *OrganizationSecurityPoliciesGetCall) doRequest(alt string) (*http.Response, error) {
115001	reqHeaders := make(http.Header)
115002	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
115003	for k, v := range c.header_ {
115004		reqHeaders[k] = v
115005	}
115006	reqHeaders.Set("User-Agent", c.s.userAgent())
115007	if c.ifNoneMatch_ != "" {
115008		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
115009	}
115010	var body io.Reader = nil
115011	c.urlParams_.Set("alt", alt)
115012	c.urlParams_.Set("prettyPrint", "false")
115013	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}")
115014	urls += "?" + c.urlParams_.Encode()
115015	req, err := http.NewRequest("GET", urls, body)
115016	if err != nil {
115017		return nil, err
115018	}
115019	req.Header = reqHeaders
115020	googleapi.Expand(req.URL, map[string]string{
115021		"securityPolicy": c.securityPolicy,
115022	})
115023	return gensupport.SendRequest(c.ctx_, c.s.client, req)
115024}
115025
115026// Do executes the "compute.organizationSecurityPolicies.get" call.
115027// Exactly one of *SecurityPolicy or error will be non-nil. Any non-2xx
115028// status code is an error. Response headers are in either
115029// *SecurityPolicy.ServerResponse.Header or (if a response was returned
115030// at all) in error.(*googleapi.Error).Header. Use
115031// googleapi.IsNotModified to check whether the returned error was
115032// because http.StatusNotModified was returned.
115033func (c *OrganizationSecurityPoliciesGetCall) Do(opts ...googleapi.CallOption) (*SecurityPolicy, error) {
115034	gensupport.SetOptions(c.urlParams_, opts...)
115035	res, err := c.doRequest("json")
115036	if res != nil && res.StatusCode == http.StatusNotModified {
115037		if res.Body != nil {
115038			res.Body.Close()
115039		}
115040		return nil, &googleapi.Error{
115041			Code:   res.StatusCode,
115042			Header: res.Header,
115043		}
115044	}
115045	if err != nil {
115046		return nil, err
115047	}
115048	defer googleapi.CloseBody(res)
115049	if err := googleapi.CheckResponse(res); err != nil {
115050		return nil, err
115051	}
115052	ret := &SecurityPolicy{
115053		ServerResponse: googleapi.ServerResponse{
115054			Header:         res.Header,
115055			HTTPStatusCode: res.StatusCode,
115056		},
115057	}
115058	target := &ret
115059	if err := gensupport.DecodeResponse(target, res); err != nil {
115060		return nil, err
115061	}
115062	return ret, nil
115063	// {
115064	//   "description": "List all of the ordered rules present in a single specified policy.",
115065	//   "httpMethod": "GET",
115066	//   "id": "compute.organizationSecurityPolicies.get",
115067	//   "parameterOrder": [
115068	//     "securityPolicy"
115069	//   ],
115070	//   "parameters": {
115071	//     "securityPolicy": {
115072	//       "description": "Name of the security policy to get.",
115073	//       "location": "path",
115074	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
115075	//       "required": true,
115076	//       "type": "string"
115077	//     }
115078	//   },
115079	//   "path": "locations/global/securityPolicies/{securityPolicy}",
115080	//   "response": {
115081	//     "$ref": "SecurityPolicy"
115082	//   },
115083	//   "scopes": [
115084	//     "https://www.googleapis.com/auth/cloud-platform",
115085	//     "https://www.googleapis.com/auth/compute",
115086	//     "https://www.googleapis.com/auth/compute.readonly"
115087	//   ]
115088	// }
115089
115090}
115091
115092// method id "compute.organizationSecurityPolicies.getAssociation":
115093
115094type OrganizationSecurityPoliciesGetAssociationCall struct {
115095	s              *Service
115096	securityPolicy string
115097	urlParams_     gensupport.URLParams
115098	ifNoneMatch_   string
115099	ctx_           context.Context
115100	header_        http.Header
115101}
115102
115103// GetAssociation: Gets an association with the specified name.
115104func (r *OrganizationSecurityPoliciesService) GetAssociation(securityPolicy string) *OrganizationSecurityPoliciesGetAssociationCall {
115105	c := &OrganizationSecurityPoliciesGetAssociationCall{s: r.s, urlParams_: make(gensupport.URLParams)}
115106	c.securityPolicy = securityPolicy
115107	return c
115108}
115109
115110// Name sets the optional parameter "name": The name of the association
115111// to get from the security policy.
115112func (c *OrganizationSecurityPoliciesGetAssociationCall) Name(name string) *OrganizationSecurityPoliciesGetAssociationCall {
115113	c.urlParams_.Set("name", name)
115114	return c
115115}
115116
115117// Fields allows partial responses to be retrieved. See
115118// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115119// for more information.
115120func (c *OrganizationSecurityPoliciesGetAssociationCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesGetAssociationCall {
115121	c.urlParams_.Set("fields", googleapi.CombineFields(s))
115122	return c
115123}
115124
115125// IfNoneMatch sets the optional parameter which makes the operation
115126// fail if the object's ETag matches the given value. This is useful for
115127// getting updates only after the object has changed since the last
115128// request. Use googleapi.IsNotModified to check whether the response
115129// error from Do is the result of In-None-Match.
115130func (c *OrganizationSecurityPoliciesGetAssociationCall) IfNoneMatch(entityTag string) *OrganizationSecurityPoliciesGetAssociationCall {
115131	c.ifNoneMatch_ = entityTag
115132	return c
115133}
115134
115135// Context sets the context to be used in this call's Do method. Any
115136// pending HTTP request will be aborted if the provided context is
115137// canceled.
115138func (c *OrganizationSecurityPoliciesGetAssociationCall) Context(ctx context.Context) *OrganizationSecurityPoliciesGetAssociationCall {
115139	c.ctx_ = ctx
115140	return c
115141}
115142
115143// Header returns an http.Header that can be modified by the caller to
115144// add HTTP headers to the request.
115145func (c *OrganizationSecurityPoliciesGetAssociationCall) Header() http.Header {
115146	if c.header_ == nil {
115147		c.header_ = make(http.Header)
115148	}
115149	return c.header_
115150}
115151
115152func (c *OrganizationSecurityPoliciesGetAssociationCall) doRequest(alt string) (*http.Response, error) {
115153	reqHeaders := make(http.Header)
115154	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
115155	for k, v := range c.header_ {
115156		reqHeaders[k] = v
115157	}
115158	reqHeaders.Set("User-Agent", c.s.userAgent())
115159	if c.ifNoneMatch_ != "" {
115160		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
115161	}
115162	var body io.Reader = nil
115163	c.urlParams_.Set("alt", alt)
115164	c.urlParams_.Set("prettyPrint", "false")
115165	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/getAssociation")
115166	urls += "?" + c.urlParams_.Encode()
115167	req, err := http.NewRequest("GET", urls, body)
115168	if err != nil {
115169		return nil, err
115170	}
115171	req.Header = reqHeaders
115172	googleapi.Expand(req.URL, map[string]string{
115173		"securityPolicy": c.securityPolicy,
115174	})
115175	return gensupport.SendRequest(c.ctx_, c.s.client, req)
115176}
115177
115178// Do executes the "compute.organizationSecurityPolicies.getAssociation" call.
115179// Exactly one of *SecurityPolicyAssociation or error will be non-nil.
115180// Any non-2xx status code is an error. Response headers are in either
115181// *SecurityPolicyAssociation.ServerResponse.Header or (if a response
115182// was returned at all) in error.(*googleapi.Error).Header. Use
115183// googleapi.IsNotModified to check whether the returned error was
115184// because http.StatusNotModified was returned.
115185func (c *OrganizationSecurityPoliciesGetAssociationCall) Do(opts ...googleapi.CallOption) (*SecurityPolicyAssociation, error) {
115186	gensupport.SetOptions(c.urlParams_, opts...)
115187	res, err := c.doRequest("json")
115188	if res != nil && res.StatusCode == http.StatusNotModified {
115189		if res.Body != nil {
115190			res.Body.Close()
115191		}
115192		return nil, &googleapi.Error{
115193			Code:   res.StatusCode,
115194			Header: res.Header,
115195		}
115196	}
115197	if err != nil {
115198		return nil, err
115199	}
115200	defer googleapi.CloseBody(res)
115201	if err := googleapi.CheckResponse(res); err != nil {
115202		return nil, err
115203	}
115204	ret := &SecurityPolicyAssociation{
115205		ServerResponse: googleapi.ServerResponse{
115206			Header:         res.Header,
115207			HTTPStatusCode: res.StatusCode,
115208		},
115209	}
115210	target := &ret
115211	if err := gensupport.DecodeResponse(target, res); err != nil {
115212		return nil, err
115213	}
115214	return ret, nil
115215	// {
115216	//   "description": "Gets an association with the specified name.",
115217	//   "httpMethod": "GET",
115218	//   "id": "compute.organizationSecurityPolicies.getAssociation",
115219	//   "parameterOrder": [
115220	//     "securityPolicy"
115221	//   ],
115222	//   "parameters": {
115223	//     "name": {
115224	//       "description": "The name of the association to get from the security policy.",
115225	//       "location": "query",
115226	//       "type": "string"
115227	//     },
115228	//     "securityPolicy": {
115229	//       "description": "Name of the security policy to which the queried rule belongs.",
115230	//       "location": "path",
115231	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
115232	//       "required": true,
115233	//       "type": "string"
115234	//     }
115235	//   },
115236	//   "path": "locations/global/securityPolicies/{securityPolicy}/getAssociation",
115237	//   "response": {
115238	//     "$ref": "SecurityPolicyAssociation"
115239	//   },
115240	//   "scopes": [
115241	//     "https://www.googleapis.com/auth/cloud-platform",
115242	//     "https://www.googleapis.com/auth/compute",
115243	//     "https://www.googleapis.com/auth/compute.readonly"
115244	//   ]
115245	// }
115246
115247}
115248
115249// method id "compute.organizationSecurityPolicies.getRule":
115250
115251type OrganizationSecurityPoliciesGetRuleCall struct {
115252	s              *Service
115253	securityPolicy string
115254	urlParams_     gensupport.URLParams
115255	ifNoneMatch_   string
115256	ctx_           context.Context
115257	header_        http.Header
115258}
115259
115260// GetRule: Gets a rule at the specified priority.
115261func (r *OrganizationSecurityPoliciesService) GetRule(securityPolicy string) *OrganizationSecurityPoliciesGetRuleCall {
115262	c := &OrganizationSecurityPoliciesGetRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
115263	c.securityPolicy = securityPolicy
115264	return c
115265}
115266
115267// Priority sets the optional parameter "priority": The priority of the
115268// rule to get from the security policy.
115269func (c *OrganizationSecurityPoliciesGetRuleCall) Priority(priority int64) *OrganizationSecurityPoliciesGetRuleCall {
115270	c.urlParams_.Set("priority", fmt.Sprint(priority))
115271	return c
115272}
115273
115274// Fields allows partial responses to be retrieved. See
115275// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115276// for more information.
115277func (c *OrganizationSecurityPoliciesGetRuleCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesGetRuleCall {
115278	c.urlParams_.Set("fields", googleapi.CombineFields(s))
115279	return c
115280}
115281
115282// IfNoneMatch sets the optional parameter which makes the operation
115283// fail if the object's ETag matches the given value. This is useful for
115284// getting updates only after the object has changed since the last
115285// request. Use googleapi.IsNotModified to check whether the response
115286// error from Do is the result of In-None-Match.
115287func (c *OrganizationSecurityPoliciesGetRuleCall) IfNoneMatch(entityTag string) *OrganizationSecurityPoliciesGetRuleCall {
115288	c.ifNoneMatch_ = entityTag
115289	return c
115290}
115291
115292// Context sets the context to be used in this call's Do method. Any
115293// pending HTTP request will be aborted if the provided context is
115294// canceled.
115295func (c *OrganizationSecurityPoliciesGetRuleCall) Context(ctx context.Context) *OrganizationSecurityPoliciesGetRuleCall {
115296	c.ctx_ = ctx
115297	return c
115298}
115299
115300// Header returns an http.Header that can be modified by the caller to
115301// add HTTP headers to the request.
115302func (c *OrganizationSecurityPoliciesGetRuleCall) Header() http.Header {
115303	if c.header_ == nil {
115304		c.header_ = make(http.Header)
115305	}
115306	return c.header_
115307}
115308
115309func (c *OrganizationSecurityPoliciesGetRuleCall) doRequest(alt string) (*http.Response, error) {
115310	reqHeaders := make(http.Header)
115311	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
115312	for k, v := range c.header_ {
115313		reqHeaders[k] = v
115314	}
115315	reqHeaders.Set("User-Agent", c.s.userAgent())
115316	if c.ifNoneMatch_ != "" {
115317		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
115318	}
115319	var body io.Reader = nil
115320	c.urlParams_.Set("alt", alt)
115321	c.urlParams_.Set("prettyPrint", "false")
115322	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/getRule")
115323	urls += "?" + c.urlParams_.Encode()
115324	req, err := http.NewRequest("GET", urls, body)
115325	if err != nil {
115326		return nil, err
115327	}
115328	req.Header = reqHeaders
115329	googleapi.Expand(req.URL, map[string]string{
115330		"securityPolicy": c.securityPolicy,
115331	})
115332	return gensupport.SendRequest(c.ctx_, c.s.client, req)
115333}
115334
115335// Do executes the "compute.organizationSecurityPolicies.getRule" call.
115336// Exactly one of *SecurityPolicyRule or error will be non-nil. Any
115337// non-2xx status code is an error. Response headers are in either
115338// *SecurityPolicyRule.ServerResponse.Header or (if a response was
115339// returned at all) in error.(*googleapi.Error).Header. Use
115340// googleapi.IsNotModified to check whether the returned error was
115341// because http.StatusNotModified was returned.
115342func (c *OrganizationSecurityPoliciesGetRuleCall) Do(opts ...googleapi.CallOption) (*SecurityPolicyRule, error) {
115343	gensupport.SetOptions(c.urlParams_, opts...)
115344	res, err := c.doRequest("json")
115345	if res != nil && res.StatusCode == http.StatusNotModified {
115346		if res.Body != nil {
115347			res.Body.Close()
115348		}
115349		return nil, &googleapi.Error{
115350			Code:   res.StatusCode,
115351			Header: res.Header,
115352		}
115353	}
115354	if err != nil {
115355		return nil, err
115356	}
115357	defer googleapi.CloseBody(res)
115358	if err := googleapi.CheckResponse(res); err != nil {
115359		return nil, err
115360	}
115361	ret := &SecurityPolicyRule{
115362		ServerResponse: googleapi.ServerResponse{
115363			Header:         res.Header,
115364			HTTPStatusCode: res.StatusCode,
115365		},
115366	}
115367	target := &ret
115368	if err := gensupport.DecodeResponse(target, res); err != nil {
115369		return nil, err
115370	}
115371	return ret, nil
115372	// {
115373	//   "description": "Gets a rule at the specified priority.",
115374	//   "httpMethod": "GET",
115375	//   "id": "compute.organizationSecurityPolicies.getRule",
115376	//   "parameterOrder": [
115377	//     "securityPolicy"
115378	//   ],
115379	//   "parameters": {
115380	//     "priority": {
115381	//       "description": "The priority of the rule to get from the security policy.",
115382	//       "format": "int32",
115383	//       "location": "query",
115384	//       "type": "integer"
115385	//     },
115386	//     "securityPolicy": {
115387	//       "description": "Name of the security policy to which the queried rule belongs.",
115388	//       "location": "path",
115389	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
115390	//       "required": true,
115391	//       "type": "string"
115392	//     }
115393	//   },
115394	//   "path": "locations/global/securityPolicies/{securityPolicy}/getRule",
115395	//   "response": {
115396	//     "$ref": "SecurityPolicyRule"
115397	//   },
115398	//   "scopes": [
115399	//     "https://www.googleapis.com/auth/cloud-platform",
115400	//     "https://www.googleapis.com/auth/compute",
115401	//     "https://www.googleapis.com/auth/compute.readonly"
115402	//   ]
115403	// }
115404
115405}
115406
115407// method id "compute.organizationSecurityPolicies.insert":
115408
115409type OrganizationSecurityPoliciesInsertCall struct {
115410	s              *Service
115411	securitypolicy *SecurityPolicy
115412	urlParams_     gensupport.URLParams
115413	ctx_           context.Context
115414	header_        http.Header
115415}
115416
115417// Insert: Creates a new policy in the specified project using the data
115418// included in the request.
115419func (r *OrganizationSecurityPoliciesService) Insert(securitypolicy *SecurityPolicy) *OrganizationSecurityPoliciesInsertCall {
115420	c := &OrganizationSecurityPoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
115421	c.securitypolicy = securitypolicy
115422	return c
115423}
115424
115425// ParentId sets the optional parameter "parentId": Parent ID for this
115426// request. The ID can be either be "folders/[FOLDER_ID]" if the parent
115427// is a folder or "organizations/[ORGANIZATION_ID]" if the parent is an
115428// organization.
115429func (c *OrganizationSecurityPoliciesInsertCall) ParentId(parentId string) *OrganizationSecurityPoliciesInsertCall {
115430	c.urlParams_.Set("parentId", parentId)
115431	return c
115432}
115433
115434// RequestId sets the optional parameter "requestId": An optional
115435// request ID to identify requests. Specify a unique request ID so that
115436// if you must retry your request, the server will know to ignore the
115437// request if it has already been completed.
115438//
115439// For example, consider a situation where you make an initial request
115440// and the request times out. If you make the request again with the
115441// same request ID, the server can check if original operation with the
115442// same request ID was received, and if so, will ignore the second
115443// request. This prevents clients from accidentally creating duplicate
115444// commitments.
115445//
115446// The request ID must be a valid UUID with the exception that zero UUID
115447// is not supported (00000000-0000-0000-0000-000000000000).
115448func (c *OrganizationSecurityPoliciesInsertCall) RequestId(requestId string) *OrganizationSecurityPoliciesInsertCall {
115449	c.urlParams_.Set("requestId", requestId)
115450	return c
115451}
115452
115453// Fields allows partial responses to be retrieved. See
115454// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115455// for more information.
115456func (c *OrganizationSecurityPoliciesInsertCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesInsertCall {
115457	c.urlParams_.Set("fields", googleapi.CombineFields(s))
115458	return c
115459}
115460
115461// Context sets the context to be used in this call's Do method. Any
115462// pending HTTP request will be aborted if the provided context is
115463// canceled.
115464func (c *OrganizationSecurityPoliciesInsertCall) Context(ctx context.Context) *OrganizationSecurityPoliciesInsertCall {
115465	c.ctx_ = ctx
115466	return c
115467}
115468
115469// Header returns an http.Header that can be modified by the caller to
115470// add HTTP headers to the request.
115471func (c *OrganizationSecurityPoliciesInsertCall) Header() http.Header {
115472	if c.header_ == nil {
115473		c.header_ = make(http.Header)
115474	}
115475	return c.header_
115476}
115477
115478func (c *OrganizationSecurityPoliciesInsertCall) doRequest(alt string) (*http.Response, error) {
115479	reqHeaders := make(http.Header)
115480	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
115481	for k, v := range c.header_ {
115482		reqHeaders[k] = v
115483	}
115484	reqHeaders.Set("User-Agent", c.s.userAgent())
115485	var body io.Reader = nil
115486	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicy)
115487	if err != nil {
115488		return nil, err
115489	}
115490	reqHeaders.Set("Content-Type", "application/json")
115491	c.urlParams_.Set("alt", alt)
115492	c.urlParams_.Set("prettyPrint", "false")
115493	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies")
115494	urls += "?" + c.urlParams_.Encode()
115495	req, err := http.NewRequest("POST", urls, body)
115496	if err != nil {
115497		return nil, err
115498	}
115499	req.Header = reqHeaders
115500	return gensupport.SendRequest(c.ctx_, c.s.client, req)
115501}
115502
115503// Do executes the "compute.organizationSecurityPolicies.insert" call.
115504// Exactly one of *Operation or error will be non-nil. Any non-2xx
115505// status code is an error. Response headers are in either
115506// *Operation.ServerResponse.Header or (if a response was returned at
115507// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
115508// to check whether the returned error was because
115509// http.StatusNotModified was returned.
115510func (c *OrganizationSecurityPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
115511	gensupport.SetOptions(c.urlParams_, opts...)
115512	res, err := c.doRequest("json")
115513	if res != nil && res.StatusCode == http.StatusNotModified {
115514		if res.Body != nil {
115515			res.Body.Close()
115516		}
115517		return nil, &googleapi.Error{
115518			Code:   res.StatusCode,
115519			Header: res.Header,
115520		}
115521	}
115522	if err != nil {
115523		return nil, err
115524	}
115525	defer googleapi.CloseBody(res)
115526	if err := googleapi.CheckResponse(res); err != nil {
115527		return nil, err
115528	}
115529	ret := &Operation{
115530		ServerResponse: googleapi.ServerResponse{
115531			Header:         res.Header,
115532			HTTPStatusCode: res.StatusCode,
115533		},
115534	}
115535	target := &ret
115536	if err := gensupport.DecodeResponse(target, res); err != nil {
115537		return nil, err
115538	}
115539	return ret, nil
115540	// {
115541	//   "description": "Creates a new policy in the specified project using the data included in the request.",
115542	//   "httpMethod": "POST",
115543	//   "id": "compute.organizationSecurityPolicies.insert",
115544	//   "parameters": {
115545	//     "parentId": {
115546	//       "description": "Parent ID for this request. The ID can be either be \"folders/[FOLDER_ID]\" if the parent is a folder or \"organizations/[ORGANIZATION_ID]\" if the parent is an organization.",
115547	//       "location": "query",
115548	//       "type": "string"
115549	//     },
115550	//     "requestId": {
115551	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
115552	//       "location": "query",
115553	//       "type": "string"
115554	//     }
115555	//   },
115556	//   "path": "locations/global/securityPolicies",
115557	//   "request": {
115558	//     "$ref": "SecurityPolicy"
115559	//   },
115560	//   "response": {
115561	//     "$ref": "Operation"
115562	//   },
115563	//   "scopes": [
115564	//     "https://www.googleapis.com/auth/cloud-platform",
115565	//     "https://www.googleapis.com/auth/compute"
115566	//   ]
115567	// }
115568
115569}
115570
115571// method id "compute.organizationSecurityPolicies.list":
115572
115573type OrganizationSecurityPoliciesListCall struct {
115574	s            *Service
115575	urlParams_   gensupport.URLParams
115576	ifNoneMatch_ string
115577	ctx_         context.Context
115578	header_      http.Header
115579}
115580
115581// List: List all the policies that have been configured for the
115582// specified project.
115583func (r *OrganizationSecurityPoliciesService) List() *OrganizationSecurityPoliciesListCall {
115584	c := &OrganizationSecurityPoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
115585	return c
115586}
115587
115588// Filter sets the optional parameter "filter": A filter expression that
115589// filters resources listed in the response. The expression must specify
115590// the field name, a comparison operator, and the value that you want to
115591// use for filtering. The value must be a string, a number, or a
115592// boolean. The comparison operator must be either `=`, `!=`, `>`, or
115593// `<`.
115594//
115595// For example, if you are filtering Compute Engine instances, you can
115596// exclude instances named `example-instance` by specifying `name !=
115597// example-instance`.
115598//
115599// You can also filter nested fields. For example, you could specify
115600// `scheduling.automaticRestart = false` to include instances only if
115601// they are not scheduled for automatic restarts. You can use filtering
115602// on nested fields to filter based on resource labels.
115603//
115604// To filter on multiple expressions, provide each separate expression
115605// within parentheses. For example: ``` (scheduling.automaticRestart =
115606// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
115607// is an `AND` expression. However, you can include `AND` and `OR`
115608// expressions explicitly. For example: ``` (cpuPlatform = "Intel
115609// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
115610// (scheduling.automaticRestart = true) ```
115611func (c *OrganizationSecurityPoliciesListCall) Filter(filter string) *OrganizationSecurityPoliciesListCall {
115612	c.urlParams_.Set("filter", filter)
115613	return c
115614}
115615
115616// MaxResults sets the optional parameter "maxResults": The maximum
115617// number of results per page that should be returned. If the number of
115618// available results is larger than `maxResults`, Compute Engine returns
115619// a `nextPageToken` that can be used to get the next page of results in
115620// subsequent list requests. Acceptable values are `0` to `500`,
115621// inclusive. (Default: `500`)
115622func (c *OrganizationSecurityPoliciesListCall) MaxResults(maxResults int64) *OrganizationSecurityPoliciesListCall {
115623	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
115624	return c
115625}
115626
115627// OrderBy sets the optional parameter "orderBy": Sorts list results by
115628// a certain order. By default, results are returned in alphanumerical
115629// order based on the resource name.
115630//
115631// You can also sort results in descending order based on the creation
115632// timestamp using `orderBy="creationTimestamp desc". This sorts
115633// results based on the `creationTimestamp` field in reverse
115634// chronological order (newest result first). Use this to sort resources
115635// like operations so that the newest operation is returned
115636// first.
115637//
115638// Currently, only sorting by `name` or `creationTimestamp desc` is
115639// supported.
115640func (c *OrganizationSecurityPoliciesListCall) OrderBy(orderBy string) *OrganizationSecurityPoliciesListCall {
115641	c.urlParams_.Set("orderBy", orderBy)
115642	return c
115643}
115644
115645// PageToken sets the optional parameter "pageToken": Specifies a page
115646// token to use. Set `pageToken` to the `nextPageToken` returned by a
115647// previous list request to get the next page of results.
115648func (c *OrganizationSecurityPoliciesListCall) PageToken(pageToken string) *OrganizationSecurityPoliciesListCall {
115649	c.urlParams_.Set("pageToken", pageToken)
115650	return c
115651}
115652
115653// ParentId sets the optional parameter "parentId": Parent ID for this
115654// request.
115655func (c *OrganizationSecurityPoliciesListCall) ParentId(parentId string) *OrganizationSecurityPoliciesListCall {
115656	c.urlParams_.Set("parentId", parentId)
115657	return c
115658}
115659
115660// ReturnPartialSuccess sets the optional parameter
115661// "returnPartialSuccess": Opt-in for partial success behavior which
115662// provides partial results in case of failure. The default value is
115663// false.
115664func (c *OrganizationSecurityPoliciesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *OrganizationSecurityPoliciesListCall {
115665	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
115666	return c
115667}
115668
115669// Fields allows partial responses to be retrieved. See
115670// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115671// for more information.
115672func (c *OrganizationSecurityPoliciesListCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesListCall {
115673	c.urlParams_.Set("fields", googleapi.CombineFields(s))
115674	return c
115675}
115676
115677// IfNoneMatch sets the optional parameter which makes the operation
115678// fail if the object's ETag matches the given value. This is useful for
115679// getting updates only after the object has changed since the last
115680// request. Use googleapi.IsNotModified to check whether the response
115681// error from Do is the result of In-None-Match.
115682func (c *OrganizationSecurityPoliciesListCall) IfNoneMatch(entityTag string) *OrganizationSecurityPoliciesListCall {
115683	c.ifNoneMatch_ = entityTag
115684	return c
115685}
115686
115687// Context sets the context to be used in this call's Do method. Any
115688// pending HTTP request will be aborted if the provided context is
115689// canceled.
115690func (c *OrganizationSecurityPoliciesListCall) Context(ctx context.Context) *OrganizationSecurityPoliciesListCall {
115691	c.ctx_ = ctx
115692	return c
115693}
115694
115695// Header returns an http.Header that can be modified by the caller to
115696// add HTTP headers to the request.
115697func (c *OrganizationSecurityPoliciesListCall) Header() http.Header {
115698	if c.header_ == nil {
115699		c.header_ = make(http.Header)
115700	}
115701	return c.header_
115702}
115703
115704func (c *OrganizationSecurityPoliciesListCall) doRequest(alt string) (*http.Response, error) {
115705	reqHeaders := make(http.Header)
115706	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
115707	for k, v := range c.header_ {
115708		reqHeaders[k] = v
115709	}
115710	reqHeaders.Set("User-Agent", c.s.userAgent())
115711	if c.ifNoneMatch_ != "" {
115712		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
115713	}
115714	var body io.Reader = nil
115715	c.urlParams_.Set("alt", alt)
115716	c.urlParams_.Set("prettyPrint", "false")
115717	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies")
115718	urls += "?" + c.urlParams_.Encode()
115719	req, err := http.NewRequest("GET", urls, body)
115720	if err != nil {
115721		return nil, err
115722	}
115723	req.Header = reqHeaders
115724	return gensupport.SendRequest(c.ctx_, c.s.client, req)
115725}
115726
115727// Do executes the "compute.organizationSecurityPolicies.list" call.
115728// Exactly one of *SecurityPolicyList or error will be non-nil. Any
115729// non-2xx status code is an error. Response headers are in either
115730// *SecurityPolicyList.ServerResponse.Header or (if a response was
115731// returned at all) in error.(*googleapi.Error).Header. Use
115732// googleapi.IsNotModified to check whether the returned error was
115733// because http.StatusNotModified was returned.
115734func (c *OrganizationSecurityPoliciesListCall) Do(opts ...googleapi.CallOption) (*SecurityPolicyList, error) {
115735	gensupport.SetOptions(c.urlParams_, opts...)
115736	res, err := c.doRequest("json")
115737	if res != nil && res.StatusCode == http.StatusNotModified {
115738		if res.Body != nil {
115739			res.Body.Close()
115740		}
115741		return nil, &googleapi.Error{
115742			Code:   res.StatusCode,
115743			Header: res.Header,
115744		}
115745	}
115746	if err != nil {
115747		return nil, err
115748	}
115749	defer googleapi.CloseBody(res)
115750	if err := googleapi.CheckResponse(res); err != nil {
115751		return nil, err
115752	}
115753	ret := &SecurityPolicyList{
115754		ServerResponse: googleapi.ServerResponse{
115755			Header:         res.Header,
115756			HTTPStatusCode: res.StatusCode,
115757		},
115758	}
115759	target := &ret
115760	if err := gensupport.DecodeResponse(target, res); err != nil {
115761		return nil, err
115762	}
115763	return ret, nil
115764	// {
115765	//   "description": "List all the policies that have been configured for the specified project.",
115766	//   "httpMethod": "GET",
115767	//   "id": "compute.organizationSecurityPolicies.list",
115768	//   "parameters": {
115769	//     "filter": {
115770	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
115771	//       "location": "query",
115772	//       "type": "string"
115773	//     },
115774	//     "maxResults": {
115775	//       "default": "500",
115776	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
115777	//       "format": "uint32",
115778	//       "location": "query",
115779	//       "minimum": "0",
115780	//       "type": "integer"
115781	//     },
115782	//     "orderBy": {
115783	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
115784	//       "location": "query",
115785	//       "type": "string"
115786	//     },
115787	//     "pageToken": {
115788	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
115789	//       "location": "query",
115790	//       "type": "string"
115791	//     },
115792	//     "parentId": {
115793	//       "description": "Parent ID for this request.",
115794	//       "location": "query",
115795	//       "type": "string"
115796	//     },
115797	//     "returnPartialSuccess": {
115798	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
115799	//       "location": "query",
115800	//       "type": "boolean"
115801	//     }
115802	//   },
115803	//   "path": "locations/global/securityPolicies",
115804	//   "response": {
115805	//     "$ref": "SecurityPolicyList"
115806	//   },
115807	//   "scopes": [
115808	//     "https://www.googleapis.com/auth/cloud-platform",
115809	//     "https://www.googleapis.com/auth/compute",
115810	//     "https://www.googleapis.com/auth/compute.readonly"
115811	//   ]
115812	// }
115813
115814}
115815
115816// Pages invokes f for each page of results.
115817// A non-nil error returned from f will halt the iteration.
115818// The provided context supersedes any context provided to the Context method.
115819func (c *OrganizationSecurityPoliciesListCall) Pages(ctx context.Context, f func(*SecurityPolicyList) error) error {
115820	c.ctx_ = ctx
115821	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
115822	for {
115823		x, err := c.Do()
115824		if err != nil {
115825			return err
115826		}
115827		if err := f(x); err != nil {
115828			return err
115829		}
115830		if x.NextPageToken == "" {
115831			return nil
115832		}
115833		c.PageToken(x.NextPageToken)
115834	}
115835}
115836
115837// method id "compute.organizationSecurityPolicies.listAssociations":
115838
115839type OrganizationSecurityPoliciesListAssociationsCall struct {
115840	s            *Service
115841	urlParams_   gensupport.URLParams
115842	ifNoneMatch_ string
115843	ctx_         context.Context
115844	header_      http.Header
115845}
115846
115847// ListAssociations: Lists associations of a specified target, i.e.,
115848// organization or folder.
115849func (r *OrganizationSecurityPoliciesService) ListAssociations() *OrganizationSecurityPoliciesListAssociationsCall {
115850	c := &OrganizationSecurityPoliciesListAssociationsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
115851	return c
115852}
115853
115854// TargetResource sets the optional parameter "targetResource": The
115855// target resource to list associations. It is an organization, or a
115856// folder.
115857func (c *OrganizationSecurityPoliciesListAssociationsCall) TargetResource(targetResource string) *OrganizationSecurityPoliciesListAssociationsCall {
115858	c.urlParams_.Set("targetResource", targetResource)
115859	return c
115860}
115861
115862// Fields allows partial responses to be retrieved. See
115863// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115864// for more information.
115865func (c *OrganizationSecurityPoliciesListAssociationsCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesListAssociationsCall {
115866	c.urlParams_.Set("fields", googleapi.CombineFields(s))
115867	return c
115868}
115869
115870// IfNoneMatch sets the optional parameter which makes the operation
115871// fail if the object's ETag matches the given value. This is useful for
115872// getting updates only after the object has changed since the last
115873// request. Use googleapi.IsNotModified to check whether the response
115874// error from Do is the result of In-None-Match.
115875func (c *OrganizationSecurityPoliciesListAssociationsCall) IfNoneMatch(entityTag string) *OrganizationSecurityPoliciesListAssociationsCall {
115876	c.ifNoneMatch_ = entityTag
115877	return c
115878}
115879
115880// Context sets the context to be used in this call's Do method. Any
115881// pending HTTP request will be aborted if the provided context is
115882// canceled.
115883func (c *OrganizationSecurityPoliciesListAssociationsCall) Context(ctx context.Context) *OrganizationSecurityPoliciesListAssociationsCall {
115884	c.ctx_ = ctx
115885	return c
115886}
115887
115888// Header returns an http.Header that can be modified by the caller to
115889// add HTTP headers to the request.
115890func (c *OrganizationSecurityPoliciesListAssociationsCall) Header() http.Header {
115891	if c.header_ == nil {
115892		c.header_ = make(http.Header)
115893	}
115894	return c.header_
115895}
115896
115897func (c *OrganizationSecurityPoliciesListAssociationsCall) doRequest(alt string) (*http.Response, error) {
115898	reqHeaders := make(http.Header)
115899	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
115900	for k, v := range c.header_ {
115901		reqHeaders[k] = v
115902	}
115903	reqHeaders.Set("User-Agent", c.s.userAgent())
115904	if c.ifNoneMatch_ != "" {
115905		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
115906	}
115907	var body io.Reader = nil
115908	c.urlParams_.Set("alt", alt)
115909	c.urlParams_.Set("prettyPrint", "false")
115910	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/listAssociations")
115911	urls += "?" + c.urlParams_.Encode()
115912	req, err := http.NewRequest("GET", urls, body)
115913	if err != nil {
115914		return nil, err
115915	}
115916	req.Header = reqHeaders
115917	return gensupport.SendRequest(c.ctx_, c.s.client, req)
115918}
115919
115920// Do executes the "compute.organizationSecurityPolicies.listAssociations" call.
115921// Exactly one of *OrganizationSecurityPoliciesListAssociationsResponse
115922// or error will be non-nil. Any non-2xx status code is an error.
115923// Response headers are in either
115924// *OrganizationSecurityPoliciesListAssociationsResponse.ServerResponse.H
115925// eader or (if a response was returned at all) in
115926// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
115927// whether the returned error was because http.StatusNotModified was
115928// returned.
115929func (c *OrganizationSecurityPoliciesListAssociationsCall) Do(opts ...googleapi.CallOption) (*OrganizationSecurityPoliciesListAssociationsResponse, error) {
115930	gensupport.SetOptions(c.urlParams_, opts...)
115931	res, err := c.doRequest("json")
115932	if res != nil && res.StatusCode == http.StatusNotModified {
115933		if res.Body != nil {
115934			res.Body.Close()
115935		}
115936		return nil, &googleapi.Error{
115937			Code:   res.StatusCode,
115938			Header: res.Header,
115939		}
115940	}
115941	if err != nil {
115942		return nil, err
115943	}
115944	defer googleapi.CloseBody(res)
115945	if err := googleapi.CheckResponse(res); err != nil {
115946		return nil, err
115947	}
115948	ret := &OrganizationSecurityPoliciesListAssociationsResponse{
115949		ServerResponse: googleapi.ServerResponse{
115950			Header:         res.Header,
115951			HTTPStatusCode: res.StatusCode,
115952		},
115953	}
115954	target := &ret
115955	if err := gensupport.DecodeResponse(target, res); err != nil {
115956		return nil, err
115957	}
115958	return ret, nil
115959	// {
115960	//   "description": "Lists associations of a specified target, i.e., organization or folder.",
115961	//   "httpMethod": "GET",
115962	//   "id": "compute.organizationSecurityPolicies.listAssociations",
115963	//   "parameters": {
115964	//     "targetResource": {
115965	//       "description": "The target resource to list associations. It is an organization, or a folder.",
115966	//       "location": "query",
115967	//       "type": "string"
115968	//     }
115969	//   },
115970	//   "path": "locations/global/securityPolicies/listAssociations",
115971	//   "response": {
115972	//     "$ref": "OrganizationSecurityPoliciesListAssociationsResponse"
115973	//   },
115974	//   "scopes": [
115975	//     "https://www.googleapis.com/auth/cloud-platform",
115976	//     "https://www.googleapis.com/auth/compute"
115977	//   ]
115978	// }
115979
115980}
115981
115982// method id "compute.organizationSecurityPolicies.move":
115983
115984type OrganizationSecurityPoliciesMoveCall struct {
115985	s              *Service
115986	securityPolicy string
115987	urlParams_     gensupport.URLParams
115988	ctx_           context.Context
115989	header_        http.Header
115990}
115991
115992// Move: Moves the specified security policy.
115993func (r *OrganizationSecurityPoliciesService) Move(securityPolicy string) *OrganizationSecurityPoliciesMoveCall {
115994	c := &OrganizationSecurityPoliciesMoveCall{s: r.s, urlParams_: make(gensupport.URLParams)}
115995	c.securityPolicy = securityPolicy
115996	return c
115997}
115998
115999// ParentId sets the optional parameter "parentId": The new parent of
116000// the security policy.
116001func (c *OrganizationSecurityPoliciesMoveCall) ParentId(parentId string) *OrganizationSecurityPoliciesMoveCall {
116002	c.urlParams_.Set("parentId", parentId)
116003	return c
116004}
116005
116006// RequestId sets the optional parameter "requestId": An optional
116007// request ID to identify requests. Specify a unique request ID so that
116008// if you must retry your request, the server will know to ignore the
116009// request if it has already been completed.
116010//
116011// For example, consider a situation where you make an initial request
116012// and the request times out. If you make the request again with the
116013// same request ID, the server can check if original operation with the
116014// same request ID was received, and if so, will ignore the second
116015// request. This prevents clients from accidentally creating duplicate
116016// commitments.
116017//
116018// The request ID must be a valid UUID with the exception that zero UUID
116019// is not supported (00000000-0000-0000-0000-000000000000).
116020func (c *OrganizationSecurityPoliciesMoveCall) RequestId(requestId string) *OrganizationSecurityPoliciesMoveCall {
116021	c.urlParams_.Set("requestId", requestId)
116022	return c
116023}
116024
116025// Fields allows partial responses to be retrieved. See
116026// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
116027// for more information.
116028func (c *OrganizationSecurityPoliciesMoveCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesMoveCall {
116029	c.urlParams_.Set("fields", googleapi.CombineFields(s))
116030	return c
116031}
116032
116033// Context sets the context to be used in this call's Do method. Any
116034// pending HTTP request will be aborted if the provided context is
116035// canceled.
116036func (c *OrganizationSecurityPoliciesMoveCall) Context(ctx context.Context) *OrganizationSecurityPoliciesMoveCall {
116037	c.ctx_ = ctx
116038	return c
116039}
116040
116041// Header returns an http.Header that can be modified by the caller to
116042// add HTTP headers to the request.
116043func (c *OrganizationSecurityPoliciesMoveCall) Header() http.Header {
116044	if c.header_ == nil {
116045		c.header_ = make(http.Header)
116046	}
116047	return c.header_
116048}
116049
116050func (c *OrganizationSecurityPoliciesMoveCall) doRequest(alt string) (*http.Response, error) {
116051	reqHeaders := make(http.Header)
116052	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
116053	for k, v := range c.header_ {
116054		reqHeaders[k] = v
116055	}
116056	reqHeaders.Set("User-Agent", c.s.userAgent())
116057	var body io.Reader = nil
116058	c.urlParams_.Set("alt", alt)
116059	c.urlParams_.Set("prettyPrint", "false")
116060	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/move")
116061	urls += "?" + c.urlParams_.Encode()
116062	req, err := http.NewRequest("POST", urls, body)
116063	if err != nil {
116064		return nil, err
116065	}
116066	req.Header = reqHeaders
116067	googleapi.Expand(req.URL, map[string]string{
116068		"securityPolicy": c.securityPolicy,
116069	})
116070	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116071}
116072
116073// Do executes the "compute.organizationSecurityPolicies.move" call.
116074// Exactly one of *Operation or error will be non-nil. Any non-2xx
116075// status code is an error. Response headers are in either
116076// *Operation.ServerResponse.Header or (if a response was returned at
116077// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
116078// to check whether the returned error was because
116079// http.StatusNotModified was returned.
116080func (c *OrganizationSecurityPoliciesMoveCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
116081	gensupport.SetOptions(c.urlParams_, opts...)
116082	res, err := c.doRequest("json")
116083	if res != nil && res.StatusCode == http.StatusNotModified {
116084		if res.Body != nil {
116085			res.Body.Close()
116086		}
116087		return nil, &googleapi.Error{
116088			Code:   res.StatusCode,
116089			Header: res.Header,
116090		}
116091	}
116092	if err != nil {
116093		return nil, err
116094	}
116095	defer googleapi.CloseBody(res)
116096	if err := googleapi.CheckResponse(res); err != nil {
116097		return nil, err
116098	}
116099	ret := &Operation{
116100		ServerResponse: googleapi.ServerResponse{
116101			Header:         res.Header,
116102			HTTPStatusCode: res.StatusCode,
116103		},
116104	}
116105	target := &ret
116106	if err := gensupport.DecodeResponse(target, res); err != nil {
116107		return nil, err
116108	}
116109	return ret, nil
116110	// {
116111	//   "description": "Moves the specified security policy.",
116112	//   "httpMethod": "POST",
116113	//   "id": "compute.organizationSecurityPolicies.move",
116114	//   "parameterOrder": [
116115	//     "securityPolicy"
116116	//   ],
116117	//   "parameters": {
116118	//     "parentId": {
116119	//       "description": "The new parent of the security policy.",
116120	//       "location": "query",
116121	//       "type": "string"
116122	//     },
116123	//     "requestId": {
116124	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
116125	//       "location": "query",
116126	//       "type": "string"
116127	//     },
116128	//     "securityPolicy": {
116129	//       "description": "Name of the security policy to update.",
116130	//       "location": "path",
116131	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
116132	//       "required": true,
116133	//       "type": "string"
116134	//     }
116135	//   },
116136	//   "path": "locations/global/securityPolicies/{securityPolicy}/move",
116137	//   "response": {
116138	//     "$ref": "Operation"
116139	//   },
116140	//   "scopes": [
116141	//     "https://www.googleapis.com/auth/cloud-platform",
116142	//     "https://www.googleapis.com/auth/compute"
116143	//   ]
116144	// }
116145
116146}
116147
116148// method id "compute.organizationSecurityPolicies.patch":
116149
116150type OrganizationSecurityPoliciesPatchCall struct {
116151	s              *Service
116152	securityPolicy string
116153	securitypolicy *SecurityPolicy
116154	urlParams_     gensupport.URLParams
116155	ctx_           context.Context
116156	header_        http.Header
116157}
116158
116159// Patch: Patches the specified policy with the data included in the
116160// request.
116161func (r *OrganizationSecurityPoliciesService) Patch(securityPolicy string, securitypolicy *SecurityPolicy) *OrganizationSecurityPoliciesPatchCall {
116162	c := &OrganizationSecurityPoliciesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
116163	c.securityPolicy = securityPolicy
116164	c.securitypolicy = securitypolicy
116165	return c
116166}
116167
116168// RequestId sets the optional parameter "requestId": An optional
116169// request ID to identify requests. Specify a unique request ID so that
116170// if you must retry your request, the server will know to ignore the
116171// request if it has already been completed.
116172//
116173// For example, consider a situation where you make an initial request
116174// and the request times out. If you make the request again with the
116175// same request ID, the server can check if original operation with the
116176// same request ID was received, and if so, will ignore the second
116177// request. This prevents clients from accidentally creating duplicate
116178// commitments.
116179//
116180// The request ID must be a valid UUID with the exception that zero UUID
116181// is not supported (00000000-0000-0000-0000-000000000000).
116182func (c *OrganizationSecurityPoliciesPatchCall) RequestId(requestId string) *OrganizationSecurityPoliciesPatchCall {
116183	c.urlParams_.Set("requestId", requestId)
116184	return c
116185}
116186
116187// Fields allows partial responses to be retrieved. See
116188// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
116189// for more information.
116190func (c *OrganizationSecurityPoliciesPatchCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesPatchCall {
116191	c.urlParams_.Set("fields", googleapi.CombineFields(s))
116192	return c
116193}
116194
116195// Context sets the context to be used in this call's Do method. Any
116196// pending HTTP request will be aborted if the provided context is
116197// canceled.
116198func (c *OrganizationSecurityPoliciesPatchCall) Context(ctx context.Context) *OrganizationSecurityPoliciesPatchCall {
116199	c.ctx_ = ctx
116200	return c
116201}
116202
116203// Header returns an http.Header that can be modified by the caller to
116204// add HTTP headers to the request.
116205func (c *OrganizationSecurityPoliciesPatchCall) Header() http.Header {
116206	if c.header_ == nil {
116207		c.header_ = make(http.Header)
116208	}
116209	return c.header_
116210}
116211
116212func (c *OrganizationSecurityPoliciesPatchCall) doRequest(alt string) (*http.Response, error) {
116213	reqHeaders := make(http.Header)
116214	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
116215	for k, v := range c.header_ {
116216		reqHeaders[k] = v
116217	}
116218	reqHeaders.Set("User-Agent", c.s.userAgent())
116219	var body io.Reader = nil
116220	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicy)
116221	if err != nil {
116222		return nil, err
116223	}
116224	reqHeaders.Set("Content-Type", "application/json")
116225	c.urlParams_.Set("alt", alt)
116226	c.urlParams_.Set("prettyPrint", "false")
116227	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}")
116228	urls += "?" + c.urlParams_.Encode()
116229	req, err := http.NewRequest("PATCH", urls, body)
116230	if err != nil {
116231		return nil, err
116232	}
116233	req.Header = reqHeaders
116234	googleapi.Expand(req.URL, map[string]string{
116235		"securityPolicy": c.securityPolicy,
116236	})
116237	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116238}
116239
116240// Do executes the "compute.organizationSecurityPolicies.patch" call.
116241// Exactly one of *Operation or error will be non-nil. Any non-2xx
116242// status code is an error. Response headers are in either
116243// *Operation.ServerResponse.Header or (if a response was returned at
116244// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
116245// to check whether the returned error was because
116246// http.StatusNotModified was returned.
116247func (c *OrganizationSecurityPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
116248	gensupport.SetOptions(c.urlParams_, opts...)
116249	res, err := c.doRequest("json")
116250	if res != nil && res.StatusCode == http.StatusNotModified {
116251		if res.Body != nil {
116252			res.Body.Close()
116253		}
116254		return nil, &googleapi.Error{
116255			Code:   res.StatusCode,
116256			Header: res.Header,
116257		}
116258	}
116259	if err != nil {
116260		return nil, err
116261	}
116262	defer googleapi.CloseBody(res)
116263	if err := googleapi.CheckResponse(res); err != nil {
116264		return nil, err
116265	}
116266	ret := &Operation{
116267		ServerResponse: googleapi.ServerResponse{
116268			Header:         res.Header,
116269			HTTPStatusCode: res.StatusCode,
116270		},
116271	}
116272	target := &ret
116273	if err := gensupport.DecodeResponse(target, res); err != nil {
116274		return nil, err
116275	}
116276	return ret, nil
116277	// {
116278	//   "description": "Patches the specified policy with the data included in the request.",
116279	//   "httpMethod": "PATCH",
116280	//   "id": "compute.organizationSecurityPolicies.patch",
116281	//   "parameterOrder": [
116282	//     "securityPolicy"
116283	//   ],
116284	//   "parameters": {
116285	//     "requestId": {
116286	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
116287	//       "location": "query",
116288	//       "type": "string"
116289	//     },
116290	//     "securityPolicy": {
116291	//       "description": "Name of the security policy to update.",
116292	//       "location": "path",
116293	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
116294	//       "required": true,
116295	//       "type": "string"
116296	//     }
116297	//   },
116298	//   "path": "locations/global/securityPolicies/{securityPolicy}",
116299	//   "request": {
116300	//     "$ref": "SecurityPolicy"
116301	//   },
116302	//   "response": {
116303	//     "$ref": "Operation"
116304	//   },
116305	//   "scopes": [
116306	//     "https://www.googleapis.com/auth/cloud-platform",
116307	//     "https://www.googleapis.com/auth/compute"
116308	//   ]
116309	// }
116310
116311}
116312
116313// method id "compute.organizationSecurityPolicies.patchRule":
116314
116315type OrganizationSecurityPoliciesPatchRuleCall struct {
116316	s                  *Service
116317	securityPolicy     string
116318	securitypolicyrule *SecurityPolicyRule
116319	urlParams_         gensupport.URLParams
116320	ctx_               context.Context
116321	header_            http.Header
116322}
116323
116324// PatchRule: Patches a rule at the specified priority.
116325func (r *OrganizationSecurityPoliciesService) PatchRule(securityPolicy string, securitypolicyrule *SecurityPolicyRule) *OrganizationSecurityPoliciesPatchRuleCall {
116326	c := &OrganizationSecurityPoliciesPatchRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
116327	c.securityPolicy = securityPolicy
116328	c.securitypolicyrule = securitypolicyrule
116329	return c
116330}
116331
116332// Priority sets the optional parameter "priority": The priority of the
116333// rule to patch.
116334func (c *OrganizationSecurityPoliciesPatchRuleCall) Priority(priority int64) *OrganizationSecurityPoliciesPatchRuleCall {
116335	c.urlParams_.Set("priority", fmt.Sprint(priority))
116336	return c
116337}
116338
116339// RequestId sets the optional parameter "requestId": An optional
116340// request ID to identify requests. Specify a unique request ID so that
116341// if you must retry your request, the server will know to ignore the
116342// request if it has already been completed.
116343//
116344// For example, consider a situation where you make an initial request
116345// and the request times out. If you make the request again with the
116346// same request ID, the server can check if original operation with the
116347// same request ID was received, and if so, will ignore the second
116348// request. This prevents clients from accidentally creating duplicate
116349// commitments.
116350//
116351// The request ID must be a valid UUID with the exception that zero UUID
116352// is not supported (00000000-0000-0000-0000-000000000000).
116353func (c *OrganizationSecurityPoliciesPatchRuleCall) RequestId(requestId string) *OrganizationSecurityPoliciesPatchRuleCall {
116354	c.urlParams_.Set("requestId", requestId)
116355	return c
116356}
116357
116358// Fields allows partial responses to be retrieved. See
116359// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
116360// for more information.
116361func (c *OrganizationSecurityPoliciesPatchRuleCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesPatchRuleCall {
116362	c.urlParams_.Set("fields", googleapi.CombineFields(s))
116363	return c
116364}
116365
116366// Context sets the context to be used in this call's Do method. Any
116367// pending HTTP request will be aborted if the provided context is
116368// canceled.
116369func (c *OrganizationSecurityPoliciesPatchRuleCall) Context(ctx context.Context) *OrganizationSecurityPoliciesPatchRuleCall {
116370	c.ctx_ = ctx
116371	return c
116372}
116373
116374// Header returns an http.Header that can be modified by the caller to
116375// add HTTP headers to the request.
116376func (c *OrganizationSecurityPoliciesPatchRuleCall) Header() http.Header {
116377	if c.header_ == nil {
116378		c.header_ = make(http.Header)
116379	}
116380	return c.header_
116381}
116382
116383func (c *OrganizationSecurityPoliciesPatchRuleCall) doRequest(alt string) (*http.Response, error) {
116384	reqHeaders := make(http.Header)
116385	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
116386	for k, v := range c.header_ {
116387		reqHeaders[k] = v
116388	}
116389	reqHeaders.Set("User-Agent", c.s.userAgent())
116390	var body io.Reader = nil
116391	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyrule)
116392	if err != nil {
116393		return nil, err
116394	}
116395	reqHeaders.Set("Content-Type", "application/json")
116396	c.urlParams_.Set("alt", alt)
116397	c.urlParams_.Set("prettyPrint", "false")
116398	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/patchRule")
116399	urls += "?" + c.urlParams_.Encode()
116400	req, err := http.NewRequest("POST", urls, body)
116401	if err != nil {
116402		return nil, err
116403	}
116404	req.Header = reqHeaders
116405	googleapi.Expand(req.URL, map[string]string{
116406		"securityPolicy": c.securityPolicy,
116407	})
116408	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116409}
116410
116411// Do executes the "compute.organizationSecurityPolicies.patchRule" call.
116412// Exactly one of *Operation or error will be non-nil. Any non-2xx
116413// status code is an error. Response headers are in either
116414// *Operation.ServerResponse.Header or (if a response was returned at
116415// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
116416// to check whether the returned error was because
116417// http.StatusNotModified was returned.
116418func (c *OrganizationSecurityPoliciesPatchRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
116419	gensupport.SetOptions(c.urlParams_, opts...)
116420	res, err := c.doRequest("json")
116421	if res != nil && res.StatusCode == http.StatusNotModified {
116422		if res.Body != nil {
116423			res.Body.Close()
116424		}
116425		return nil, &googleapi.Error{
116426			Code:   res.StatusCode,
116427			Header: res.Header,
116428		}
116429	}
116430	if err != nil {
116431		return nil, err
116432	}
116433	defer googleapi.CloseBody(res)
116434	if err := googleapi.CheckResponse(res); err != nil {
116435		return nil, err
116436	}
116437	ret := &Operation{
116438		ServerResponse: googleapi.ServerResponse{
116439			Header:         res.Header,
116440			HTTPStatusCode: res.StatusCode,
116441		},
116442	}
116443	target := &ret
116444	if err := gensupport.DecodeResponse(target, res); err != nil {
116445		return nil, err
116446	}
116447	return ret, nil
116448	// {
116449	//   "description": "Patches a rule at the specified priority.",
116450	//   "httpMethod": "POST",
116451	//   "id": "compute.organizationSecurityPolicies.patchRule",
116452	//   "parameterOrder": [
116453	//     "securityPolicy"
116454	//   ],
116455	//   "parameters": {
116456	//     "priority": {
116457	//       "description": "The priority of the rule to patch.",
116458	//       "format": "int32",
116459	//       "location": "query",
116460	//       "type": "integer"
116461	//     },
116462	//     "requestId": {
116463	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
116464	//       "location": "query",
116465	//       "type": "string"
116466	//     },
116467	//     "securityPolicy": {
116468	//       "description": "Name of the security policy to update.",
116469	//       "location": "path",
116470	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
116471	//       "required": true,
116472	//       "type": "string"
116473	//     }
116474	//   },
116475	//   "path": "locations/global/securityPolicies/{securityPolicy}/patchRule",
116476	//   "request": {
116477	//     "$ref": "SecurityPolicyRule"
116478	//   },
116479	//   "response": {
116480	//     "$ref": "Operation"
116481	//   },
116482	//   "scopes": [
116483	//     "https://www.googleapis.com/auth/cloud-platform",
116484	//     "https://www.googleapis.com/auth/compute"
116485	//   ]
116486	// }
116487
116488}
116489
116490// method id "compute.organizationSecurityPolicies.removeAssociation":
116491
116492type OrganizationSecurityPoliciesRemoveAssociationCall struct {
116493	s              *Service
116494	securityPolicy string
116495	urlParams_     gensupport.URLParams
116496	ctx_           context.Context
116497	header_        http.Header
116498}
116499
116500// RemoveAssociation: Removes an association for the specified security
116501// policy.
116502func (r *OrganizationSecurityPoliciesService) RemoveAssociation(securityPolicy string) *OrganizationSecurityPoliciesRemoveAssociationCall {
116503	c := &OrganizationSecurityPoliciesRemoveAssociationCall{s: r.s, urlParams_: make(gensupport.URLParams)}
116504	c.securityPolicy = securityPolicy
116505	return c
116506}
116507
116508// Name sets the optional parameter "name": Name for the attachment that
116509// will be removed.
116510func (c *OrganizationSecurityPoliciesRemoveAssociationCall) Name(name string) *OrganizationSecurityPoliciesRemoveAssociationCall {
116511	c.urlParams_.Set("name", name)
116512	return c
116513}
116514
116515// RequestId sets the optional parameter "requestId": An optional
116516// request ID to identify requests. Specify a unique request ID so that
116517// if you must retry your request, the server will know to ignore the
116518// request if it has already been completed.
116519//
116520// For example, consider a situation where you make an initial request
116521// and the request times out. If you make the request again with the
116522// same request ID, the server can check if original operation with the
116523// same request ID was received, and if so, will ignore the second
116524// request. This prevents clients from accidentally creating duplicate
116525// commitments.
116526//
116527// The request ID must be a valid UUID with the exception that zero UUID
116528// is not supported (00000000-0000-0000-0000-000000000000).
116529func (c *OrganizationSecurityPoliciesRemoveAssociationCall) RequestId(requestId string) *OrganizationSecurityPoliciesRemoveAssociationCall {
116530	c.urlParams_.Set("requestId", requestId)
116531	return c
116532}
116533
116534// Fields allows partial responses to be retrieved. See
116535// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
116536// for more information.
116537func (c *OrganizationSecurityPoliciesRemoveAssociationCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesRemoveAssociationCall {
116538	c.urlParams_.Set("fields", googleapi.CombineFields(s))
116539	return c
116540}
116541
116542// Context sets the context to be used in this call's Do method. Any
116543// pending HTTP request will be aborted if the provided context is
116544// canceled.
116545func (c *OrganizationSecurityPoliciesRemoveAssociationCall) Context(ctx context.Context) *OrganizationSecurityPoliciesRemoveAssociationCall {
116546	c.ctx_ = ctx
116547	return c
116548}
116549
116550// Header returns an http.Header that can be modified by the caller to
116551// add HTTP headers to the request.
116552func (c *OrganizationSecurityPoliciesRemoveAssociationCall) Header() http.Header {
116553	if c.header_ == nil {
116554		c.header_ = make(http.Header)
116555	}
116556	return c.header_
116557}
116558
116559func (c *OrganizationSecurityPoliciesRemoveAssociationCall) doRequest(alt string) (*http.Response, error) {
116560	reqHeaders := make(http.Header)
116561	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
116562	for k, v := range c.header_ {
116563		reqHeaders[k] = v
116564	}
116565	reqHeaders.Set("User-Agent", c.s.userAgent())
116566	var body io.Reader = nil
116567	c.urlParams_.Set("alt", alt)
116568	c.urlParams_.Set("prettyPrint", "false")
116569	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/removeAssociation")
116570	urls += "?" + c.urlParams_.Encode()
116571	req, err := http.NewRequest("POST", urls, body)
116572	if err != nil {
116573		return nil, err
116574	}
116575	req.Header = reqHeaders
116576	googleapi.Expand(req.URL, map[string]string{
116577		"securityPolicy": c.securityPolicy,
116578	})
116579	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116580}
116581
116582// Do executes the "compute.organizationSecurityPolicies.removeAssociation" call.
116583// Exactly one of *Operation or error will be non-nil. Any non-2xx
116584// status code is an error. Response headers are in either
116585// *Operation.ServerResponse.Header or (if a response was returned at
116586// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
116587// to check whether the returned error was because
116588// http.StatusNotModified was returned.
116589func (c *OrganizationSecurityPoliciesRemoveAssociationCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
116590	gensupport.SetOptions(c.urlParams_, opts...)
116591	res, err := c.doRequest("json")
116592	if res != nil && res.StatusCode == http.StatusNotModified {
116593		if res.Body != nil {
116594			res.Body.Close()
116595		}
116596		return nil, &googleapi.Error{
116597			Code:   res.StatusCode,
116598			Header: res.Header,
116599		}
116600	}
116601	if err != nil {
116602		return nil, err
116603	}
116604	defer googleapi.CloseBody(res)
116605	if err := googleapi.CheckResponse(res); err != nil {
116606		return nil, err
116607	}
116608	ret := &Operation{
116609		ServerResponse: googleapi.ServerResponse{
116610			Header:         res.Header,
116611			HTTPStatusCode: res.StatusCode,
116612		},
116613	}
116614	target := &ret
116615	if err := gensupport.DecodeResponse(target, res); err != nil {
116616		return nil, err
116617	}
116618	return ret, nil
116619	// {
116620	//   "description": "Removes an association for the specified security policy.",
116621	//   "httpMethod": "POST",
116622	//   "id": "compute.organizationSecurityPolicies.removeAssociation",
116623	//   "parameterOrder": [
116624	//     "securityPolicy"
116625	//   ],
116626	//   "parameters": {
116627	//     "name": {
116628	//       "description": "Name for the attachment that will be removed.",
116629	//       "location": "query",
116630	//       "type": "string"
116631	//     },
116632	//     "requestId": {
116633	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
116634	//       "location": "query",
116635	//       "type": "string"
116636	//     },
116637	//     "securityPolicy": {
116638	//       "description": "Name of the security policy to update.",
116639	//       "location": "path",
116640	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
116641	//       "required": true,
116642	//       "type": "string"
116643	//     }
116644	//   },
116645	//   "path": "locations/global/securityPolicies/{securityPolicy}/removeAssociation",
116646	//   "response": {
116647	//     "$ref": "Operation"
116648	//   },
116649	//   "scopes": [
116650	//     "https://www.googleapis.com/auth/cloud-platform",
116651	//     "https://www.googleapis.com/auth/compute"
116652	//   ]
116653	// }
116654
116655}
116656
116657// method id "compute.organizationSecurityPolicies.removeRule":
116658
116659type OrganizationSecurityPoliciesRemoveRuleCall struct {
116660	s              *Service
116661	securityPolicy string
116662	urlParams_     gensupport.URLParams
116663	ctx_           context.Context
116664	header_        http.Header
116665}
116666
116667// RemoveRule: Deletes a rule at the specified priority.
116668func (r *OrganizationSecurityPoliciesService) RemoveRule(securityPolicy string) *OrganizationSecurityPoliciesRemoveRuleCall {
116669	c := &OrganizationSecurityPoliciesRemoveRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
116670	c.securityPolicy = securityPolicy
116671	return c
116672}
116673
116674// Priority sets the optional parameter "priority": The priority of the
116675// rule to remove from the security policy.
116676func (c *OrganizationSecurityPoliciesRemoveRuleCall) Priority(priority int64) *OrganizationSecurityPoliciesRemoveRuleCall {
116677	c.urlParams_.Set("priority", fmt.Sprint(priority))
116678	return c
116679}
116680
116681// RequestId sets the optional parameter "requestId": An optional
116682// request ID to identify requests. Specify a unique request ID so that
116683// if you must retry your request, the server will know to ignore the
116684// request if it has already been completed.
116685//
116686// For example, consider a situation where you make an initial request
116687// and the request times out. If you make the request again with the
116688// same request ID, the server can check if original operation with the
116689// same request ID was received, and if so, will ignore the second
116690// request. This prevents clients from accidentally creating duplicate
116691// commitments.
116692//
116693// The request ID must be a valid UUID with the exception that zero UUID
116694// is not supported (00000000-0000-0000-0000-000000000000).
116695func (c *OrganizationSecurityPoliciesRemoveRuleCall) RequestId(requestId string) *OrganizationSecurityPoliciesRemoveRuleCall {
116696	c.urlParams_.Set("requestId", requestId)
116697	return c
116698}
116699
116700// Fields allows partial responses to be retrieved. See
116701// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
116702// for more information.
116703func (c *OrganizationSecurityPoliciesRemoveRuleCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesRemoveRuleCall {
116704	c.urlParams_.Set("fields", googleapi.CombineFields(s))
116705	return c
116706}
116707
116708// Context sets the context to be used in this call's Do method. Any
116709// pending HTTP request will be aborted if the provided context is
116710// canceled.
116711func (c *OrganizationSecurityPoliciesRemoveRuleCall) Context(ctx context.Context) *OrganizationSecurityPoliciesRemoveRuleCall {
116712	c.ctx_ = ctx
116713	return c
116714}
116715
116716// Header returns an http.Header that can be modified by the caller to
116717// add HTTP headers to the request.
116718func (c *OrganizationSecurityPoliciesRemoveRuleCall) Header() http.Header {
116719	if c.header_ == nil {
116720		c.header_ = make(http.Header)
116721	}
116722	return c.header_
116723}
116724
116725func (c *OrganizationSecurityPoliciesRemoveRuleCall) doRequest(alt string) (*http.Response, error) {
116726	reqHeaders := make(http.Header)
116727	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
116728	for k, v := range c.header_ {
116729		reqHeaders[k] = v
116730	}
116731	reqHeaders.Set("User-Agent", c.s.userAgent())
116732	var body io.Reader = nil
116733	c.urlParams_.Set("alt", alt)
116734	c.urlParams_.Set("prettyPrint", "false")
116735	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/removeRule")
116736	urls += "?" + c.urlParams_.Encode()
116737	req, err := http.NewRequest("POST", urls, body)
116738	if err != nil {
116739		return nil, err
116740	}
116741	req.Header = reqHeaders
116742	googleapi.Expand(req.URL, map[string]string{
116743		"securityPolicy": c.securityPolicy,
116744	})
116745	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116746}
116747
116748// Do executes the "compute.organizationSecurityPolicies.removeRule" call.
116749// Exactly one of *Operation or error will be non-nil. Any non-2xx
116750// status code is an error. Response headers are in either
116751// *Operation.ServerResponse.Header or (if a response was returned at
116752// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
116753// to check whether the returned error was because
116754// http.StatusNotModified was returned.
116755func (c *OrganizationSecurityPoliciesRemoveRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
116756	gensupport.SetOptions(c.urlParams_, opts...)
116757	res, err := c.doRequest("json")
116758	if res != nil && res.StatusCode == http.StatusNotModified {
116759		if res.Body != nil {
116760			res.Body.Close()
116761		}
116762		return nil, &googleapi.Error{
116763			Code:   res.StatusCode,
116764			Header: res.Header,
116765		}
116766	}
116767	if err != nil {
116768		return nil, err
116769	}
116770	defer googleapi.CloseBody(res)
116771	if err := googleapi.CheckResponse(res); err != nil {
116772		return nil, err
116773	}
116774	ret := &Operation{
116775		ServerResponse: googleapi.ServerResponse{
116776			Header:         res.Header,
116777			HTTPStatusCode: res.StatusCode,
116778		},
116779	}
116780	target := &ret
116781	if err := gensupport.DecodeResponse(target, res); err != nil {
116782		return nil, err
116783	}
116784	return ret, nil
116785	// {
116786	//   "description": "Deletes a rule at the specified priority.",
116787	//   "httpMethod": "POST",
116788	//   "id": "compute.organizationSecurityPolicies.removeRule",
116789	//   "parameterOrder": [
116790	//     "securityPolicy"
116791	//   ],
116792	//   "parameters": {
116793	//     "priority": {
116794	//       "description": "The priority of the rule to remove from the security policy.",
116795	//       "format": "int32",
116796	//       "location": "query",
116797	//       "type": "integer"
116798	//     },
116799	//     "requestId": {
116800	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
116801	//       "location": "query",
116802	//       "type": "string"
116803	//     },
116804	//     "securityPolicy": {
116805	//       "description": "Name of the security policy to update.",
116806	//       "location": "path",
116807	//       "pattern": "(securityPolicies/)?[0-9]{0,20}",
116808	//       "required": true,
116809	//       "type": "string"
116810	//     }
116811	//   },
116812	//   "path": "locations/global/securityPolicies/{securityPolicy}/removeRule",
116813	//   "response": {
116814	//     "$ref": "Operation"
116815	//   },
116816	//   "scopes": [
116817	//     "https://www.googleapis.com/auth/cloud-platform",
116818	//     "https://www.googleapis.com/auth/compute"
116819	//   ]
116820	// }
116821
116822}
116823
116824// method id "compute.packetMirrorings.aggregatedList":
116825
116826type PacketMirroringsAggregatedListCall struct {
116827	s            *Service
116828	project      string
116829	urlParams_   gensupport.URLParams
116830	ifNoneMatch_ string
116831	ctx_         context.Context
116832	header_      http.Header
116833}
116834
116835// AggregatedList: Retrieves an aggregated list of packetMirrorings.
116836func (r *PacketMirroringsService) AggregatedList(project string) *PacketMirroringsAggregatedListCall {
116837	c := &PacketMirroringsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
116838	c.project = project
116839	return c
116840}
116841
116842// Filter sets the optional parameter "filter": A filter expression that
116843// filters resources listed in the response. The expression must specify
116844// the field name, a comparison operator, and the value that you want to
116845// use for filtering. The value must be a string, a number, or a
116846// boolean. The comparison operator must be either `=`, `!=`, `>`, or
116847// `<`.
116848//
116849// For example, if you are filtering Compute Engine instances, you can
116850// exclude instances named `example-instance` by specifying `name !=
116851// example-instance`.
116852//
116853// You can also filter nested fields. For example, you could specify
116854// `scheduling.automaticRestart = false` to include instances only if
116855// they are not scheduled for automatic restarts. You can use filtering
116856// on nested fields to filter based on resource labels.
116857//
116858// To filter on multiple expressions, provide each separate expression
116859// within parentheses. For example: ``` (scheduling.automaticRestart =
116860// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
116861// is an `AND` expression. However, you can include `AND` and `OR`
116862// expressions explicitly. For example: ``` (cpuPlatform = "Intel
116863// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
116864// (scheduling.automaticRestart = true) ```
116865func (c *PacketMirroringsAggregatedListCall) Filter(filter string) *PacketMirroringsAggregatedListCall {
116866	c.urlParams_.Set("filter", filter)
116867	return c
116868}
116869
116870// IncludeAllScopes sets the optional parameter "includeAllScopes":
116871// Indicates whether every visible scope for each scope type (zone,
116872// region, global) should be included in the response. For new resource
116873// types added after this field, the flag has no effect as new resource
116874// types will always include every visible scope for each scope type in
116875// response. For resource types which predate this field, if this flag
116876// is omitted or false, only scopes of the scope types where the
116877// resource type is expected to be found will be included.
116878func (c *PacketMirroringsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *PacketMirroringsAggregatedListCall {
116879	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
116880	return c
116881}
116882
116883// MaxResults sets the optional parameter "maxResults": The maximum
116884// number of results per page that should be returned. If the number of
116885// available results is larger than `maxResults`, Compute Engine returns
116886// a `nextPageToken` that can be used to get the next page of results in
116887// subsequent list requests. Acceptable values are `0` to `500`,
116888// inclusive. (Default: `500`)
116889func (c *PacketMirroringsAggregatedListCall) MaxResults(maxResults int64) *PacketMirroringsAggregatedListCall {
116890	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
116891	return c
116892}
116893
116894// OrderBy sets the optional parameter "orderBy": Sorts list results by
116895// a certain order. By default, results are returned in alphanumerical
116896// order based on the resource name.
116897//
116898// You can also sort results in descending order based on the creation
116899// timestamp using `orderBy="creationTimestamp desc". This sorts
116900// results based on the `creationTimestamp` field in reverse
116901// chronological order (newest result first). Use this to sort resources
116902// like operations so that the newest operation is returned
116903// first.
116904//
116905// Currently, only sorting by `name` or `creationTimestamp desc` is
116906// supported.
116907func (c *PacketMirroringsAggregatedListCall) OrderBy(orderBy string) *PacketMirroringsAggregatedListCall {
116908	c.urlParams_.Set("orderBy", orderBy)
116909	return c
116910}
116911
116912// PageToken sets the optional parameter "pageToken": Specifies a page
116913// token to use. Set `pageToken` to the `nextPageToken` returned by a
116914// previous list request to get the next page of results.
116915func (c *PacketMirroringsAggregatedListCall) PageToken(pageToken string) *PacketMirroringsAggregatedListCall {
116916	c.urlParams_.Set("pageToken", pageToken)
116917	return c
116918}
116919
116920// ReturnPartialSuccess sets the optional parameter
116921// "returnPartialSuccess": Opt-in for partial success behavior which
116922// provides partial results in case of failure. The default value is
116923// false.
116924func (c *PacketMirroringsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *PacketMirroringsAggregatedListCall {
116925	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
116926	return c
116927}
116928
116929// Fields allows partial responses to be retrieved. See
116930// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
116931// for more information.
116932func (c *PacketMirroringsAggregatedListCall) Fields(s ...googleapi.Field) *PacketMirroringsAggregatedListCall {
116933	c.urlParams_.Set("fields", googleapi.CombineFields(s))
116934	return c
116935}
116936
116937// IfNoneMatch sets the optional parameter which makes the operation
116938// fail if the object's ETag matches the given value. This is useful for
116939// getting updates only after the object has changed since the last
116940// request. Use googleapi.IsNotModified to check whether the response
116941// error from Do is the result of In-None-Match.
116942func (c *PacketMirroringsAggregatedListCall) IfNoneMatch(entityTag string) *PacketMirroringsAggregatedListCall {
116943	c.ifNoneMatch_ = entityTag
116944	return c
116945}
116946
116947// Context sets the context to be used in this call's Do method. Any
116948// pending HTTP request will be aborted if the provided context is
116949// canceled.
116950func (c *PacketMirroringsAggregatedListCall) Context(ctx context.Context) *PacketMirroringsAggregatedListCall {
116951	c.ctx_ = ctx
116952	return c
116953}
116954
116955// Header returns an http.Header that can be modified by the caller to
116956// add HTTP headers to the request.
116957func (c *PacketMirroringsAggregatedListCall) Header() http.Header {
116958	if c.header_ == nil {
116959		c.header_ = make(http.Header)
116960	}
116961	return c.header_
116962}
116963
116964func (c *PacketMirroringsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
116965	reqHeaders := make(http.Header)
116966	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
116967	for k, v := range c.header_ {
116968		reqHeaders[k] = v
116969	}
116970	reqHeaders.Set("User-Agent", c.s.userAgent())
116971	if c.ifNoneMatch_ != "" {
116972		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
116973	}
116974	var body io.Reader = nil
116975	c.urlParams_.Set("alt", alt)
116976	c.urlParams_.Set("prettyPrint", "false")
116977	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/packetMirrorings")
116978	urls += "?" + c.urlParams_.Encode()
116979	req, err := http.NewRequest("GET", urls, body)
116980	if err != nil {
116981		return nil, err
116982	}
116983	req.Header = reqHeaders
116984	googleapi.Expand(req.URL, map[string]string{
116985		"project": c.project,
116986	})
116987	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116988}
116989
116990// Do executes the "compute.packetMirrorings.aggregatedList" call.
116991// Exactly one of *PacketMirroringAggregatedList or error will be
116992// non-nil. Any non-2xx status code is an error. Response headers are in
116993// either *PacketMirroringAggregatedList.ServerResponse.Header or (if a
116994// response was returned at all) in error.(*googleapi.Error).Header. Use
116995// googleapi.IsNotModified to check whether the returned error was
116996// because http.StatusNotModified was returned.
116997func (c *PacketMirroringsAggregatedListCall) Do(opts ...googleapi.CallOption) (*PacketMirroringAggregatedList, error) {
116998	gensupport.SetOptions(c.urlParams_, opts...)
116999	res, err := c.doRequest("json")
117000	if res != nil && res.StatusCode == http.StatusNotModified {
117001		if res.Body != nil {
117002			res.Body.Close()
117003		}
117004		return nil, &googleapi.Error{
117005			Code:   res.StatusCode,
117006			Header: res.Header,
117007		}
117008	}
117009	if err != nil {
117010		return nil, err
117011	}
117012	defer googleapi.CloseBody(res)
117013	if err := googleapi.CheckResponse(res); err != nil {
117014		return nil, err
117015	}
117016	ret := &PacketMirroringAggregatedList{
117017		ServerResponse: googleapi.ServerResponse{
117018			Header:         res.Header,
117019			HTTPStatusCode: res.StatusCode,
117020		},
117021	}
117022	target := &ret
117023	if err := gensupport.DecodeResponse(target, res); err != nil {
117024		return nil, err
117025	}
117026	return ret, nil
117027	// {
117028	//   "description": "Retrieves an aggregated list of packetMirrorings.",
117029	//   "httpMethod": "GET",
117030	//   "id": "compute.packetMirrorings.aggregatedList",
117031	//   "parameterOrder": [
117032	//     "project"
117033	//   ],
117034	//   "parameters": {
117035	//     "filter": {
117036	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
117037	//       "location": "query",
117038	//       "type": "string"
117039	//     },
117040	//     "includeAllScopes": {
117041	//       "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.",
117042	//       "location": "query",
117043	//       "type": "boolean"
117044	//     },
117045	//     "maxResults": {
117046	//       "default": "500",
117047	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
117048	//       "format": "uint32",
117049	//       "location": "query",
117050	//       "minimum": "0",
117051	//       "type": "integer"
117052	//     },
117053	//     "orderBy": {
117054	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
117055	//       "location": "query",
117056	//       "type": "string"
117057	//     },
117058	//     "pageToken": {
117059	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
117060	//       "location": "query",
117061	//       "type": "string"
117062	//     },
117063	//     "project": {
117064	//       "description": "Project ID for this request.",
117065	//       "location": "path",
117066	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
117067	//       "required": true,
117068	//       "type": "string"
117069	//     },
117070	//     "returnPartialSuccess": {
117071	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
117072	//       "location": "query",
117073	//       "type": "boolean"
117074	//     }
117075	//   },
117076	//   "path": "projects/{project}/aggregated/packetMirrorings",
117077	//   "response": {
117078	//     "$ref": "PacketMirroringAggregatedList"
117079	//   },
117080	//   "scopes": [
117081	//     "https://www.googleapis.com/auth/cloud-platform",
117082	//     "https://www.googleapis.com/auth/compute",
117083	//     "https://www.googleapis.com/auth/compute.readonly"
117084	//   ]
117085	// }
117086
117087}
117088
117089// Pages invokes f for each page of results.
117090// A non-nil error returned from f will halt the iteration.
117091// The provided context supersedes any context provided to the Context method.
117092func (c *PacketMirroringsAggregatedListCall) Pages(ctx context.Context, f func(*PacketMirroringAggregatedList) error) error {
117093	c.ctx_ = ctx
117094	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
117095	for {
117096		x, err := c.Do()
117097		if err != nil {
117098			return err
117099		}
117100		if err := f(x); err != nil {
117101			return err
117102		}
117103		if x.NextPageToken == "" {
117104			return nil
117105		}
117106		c.PageToken(x.NextPageToken)
117107	}
117108}
117109
117110// method id "compute.packetMirrorings.delete":
117111
117112type PacketMirroringsDeleteCall struct {
117113	s               *Service
117114	project         string
117115	region          string
117116	packetMirroring string
117117	urlParams_      gensupport.URLParams
117118	ctx_            context.Context
117119	header_         http.Header
117120}
117121
117122// Delete: Deletes the specified PacketMirroring resource.
117123func (r *PacketMirroringsService) Delete(project string, region string, packetMirroring string) *PacketMirroringsDeleteCall {
117124	c := &PacketMirroringsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117125	c.project = project
117126	c.region = region
117127	c.packetMirroring = packetMirroring
117128	return c
117129}
117130
117131// RequestId sets the optional parameter "requestId": An optional
117132// request ID to identify requests. Specify a unique request ID so that
117133// if you must retry your request, the server will know to ignore the
117134// request if it has already been completed.
117135//
117136// For example, consider a situation where you make an initial request
117137// and the request times out. If you make the request again with the
117138// same request ID, the server can check if original operation with the
117139// same request ID was received, and if so, will ignore the second
117140// request. This prevents clients from accidentally creating duplicate
117141// commitments.
117142//
117143// The request ID must be a valid UUID with the exception that zero UUID
117144// is not supported (00000000-0000-0000-0000-000000000000).
117145func (c *PacketMirroringsDeleteCall) RequestId(requestId string) *PacketMirroringsDeleteCall {
117146	c.urlParams_.Set("requestId", requestId)
117147	return c
117148}
117149
117150// Fields allows partial responses to be retrieved. See
117151// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117152// for more information.
117153func (c *PacketMirroringsDeleteCall) Fields(s ...googleapi.Field) *PacketMirroringsDeleteCall {
117154	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117155	return c
117156}
117157
117158// Context sets the context to be used in this call's Do method. Any
117159// pending HTTP request will be aborted if the provided context is
117160// canceled.
117161func (c *PacketMirroringsDeleteCall) Context(ctx context.Context) *PacketMirroringsDeleteCall {
117162	c.ctx_ = ctx
117163	return c
117164}
117165
117166// Header returns an http.Header that can be modified by the caller to
117167// add HTTP headers to the request.
117168func (c *PacketMirroringsDeleteCall) Header() http.Header {
117169	if c.header_ == nil {
117170		c.header_ = make(http.Header)
117171	}
117172	return c.header_
117173}
117174
117175func (c *PacketMirroringsDeleteCall) doRequest(alt string) (*http.Response, error) {
117176	reqHeaders := make(http.Header)
117177	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
117178	for k, v := range c.header_ {
117179		reqHeaders[k] = v
117180	}
117181	reqHeaders.Set("User-Agent", c.s.userAgent())
117182	var body io.Reader = nil
117183	c.urlParams_.Set("alt", alt)
117184	c.urlParams_.Set("prettyPrint", "false")
117185	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}")
117186	urls += "?" + c.urlParams_.Encode()
117187	req, err := http.NewRequest("DELETE", urls, body)
117188	if err != nil {
117189		return nil, err
117190	}
117191	req.Header = reqHeaders
117192	googleapi.Expand(req.URL, map[string]string{
117193		"project":         c.project,
117194		"region":          c.region,
117195		"packetMirroring": c.packetMirroring,
117196	})
117197	return gensupport.SendRequest(c.ctx_, c.s.client, req)
117198}
117199
117200// Do executes the "compute.packetMirrorings.delete" call.
117201// Exactly one of *Operation or error will be non-nil. Any non-2xx
117202// status code is an error. Response headers are in either
117203// *Operation.ServerResponse.Header or (if a response was returned at
117204// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
117205// to check whether the returned error was because
117206// http.StatusNotModified was returned.
117207func (c *PacketMirroringsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
117208	gensupport.SetOptions(c.urlParams_, opts...)
117209	res, err := c.doRequest("json")
117210	if res != nil && res.StatusCode == http.StatusNotModified {
117211		if res.Body != nil {
117212			res.Body.Close()
117213		}
117214		return nil, &googleapi.Error{
117215			Code:   res.StatusCode,
117216			Header: res.Header,
117217		}
117218	}
117219	if err != nil {
117220		return nil, err
117221	}
117222	defer googleapi.CloseBody(res)
117223	if err := googleapi.CheckResponse(res); err != nil {
117224		return nil, err
117225	}
117226	ret := &Operation{
117227		ServerResponse: googleapi.ServerResponse{
117228			Header:         res.Header,
117229			HTTPStatusCode: res.StatusCode,
117230		},
117231	}
117232	target := &ret
117233	if err := gensupport.DecodeResponse(target, res); err != nil {
117234		return nil, err
117235	}
117236	return ret, nil
117237	// {
117238	//   "description": "Deletes the specified PacketMirroring resource.",
117239	//   "httpMethod": "DELETE",
117240	//   "id": "compute.packetMirrorings.delete",
117241	//   "parameterOrder": [
117242	//     "project",
117243	//     "region",
117244	//     "packetMirroring"
117245	//   ],
117246	//   "parameters": {
117247	//     "packetMirroring": {
117248	//       "description": "Name of the PacketMirroring resource to delete.",
117249	//       "location": "path",
117250	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
117251	//       "required": true,
117252	//       "type": "string"
117253	//     },
117254	//     "project": {
117255	//       "description": "Project ID for this request.",
117256	//       "location": "path",
117257	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
117258	//       "required": true,
117259	//       "type": "string"
117260	//     },
117261	//     "region": {
117262	//       "description": "Name of the region for this request.",
117263	//       "location": "path",
117264	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
117265	//       "required": true,
117266	//       "type": "string"
117267	//     },
117268	//     "requestId": {
117269	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
117270	//       "location": "query",
117271	//       "type": "string"
117272	//     }
117273	//   },
117274	//   "path": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}",
117275	//   "response": {
117276	//     "$ref": "Operation"
117277	//   },
117278	//   "scopes": [
117279	//     "https://www.googleapis.com/auth/cloud-platform",
117280	//     "https://www.googleapis.com/auth/compute"
117281	//   ]
117282	// }
117283
117284}
117285
117286// method id "compute.packetMirrorings.get":
117287
117288type PacketMirroringsGetCall struct {
117289	s               *Service
117290	project         string
117291	region          string
117292	packetMirroring string
117293	urlParams_      gensupport.URLParams
117294	ifNoneMatch_    string
117295	ctx_            context.Context
117296	header_         http.Header
117297}
117298
117299// Get: Returns the specified PacketMirroring resource.
117300func (r *PacketMirroringsService) Get(project string, region string, packetMirroring string) *PacketMirroringsGetCall {
117301	c := &PacketMirroringsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117302	c.project = project
117303	c.region = region
117304	c.packetMirroring = packetMirroring
117305	return c
117306}
117307
117308// Fields allows partial responses to be retrieved. See
117309// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117310// for more information.
117311func (c *PacketMirroringsGetCall) Fields(s ...googleapi.Field) *PacketMirroringsGetCall {
117312	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117313	return c
117314}
117315
117316// IfNoneMatch sets the optional parameter which makes the operation
117317// fail if the object's ETag matches the given value. This is useful for
117318// getting updates only after the object has changed since the last
117319// request. Use googleapi.IsNotModified to check whether the response
117320// error from Do is the result of In-None-Match.
117321func (c *PacketMirroringsGetCall) IfNoneMatch(entityTag string) *PacketMirroringsGetCall {
117322	c.ifNoneMatch_ = entityTag
117323	return c
117324}
117325
117326// Context sets the context to be used in this call's Do method. Any
117327// pending HTTP request will be aborted if the provided context is
117328// canceled.
117329func (c *PacketMirroringsGetCall) Context(ctx context.Context) *PacketMirroringsGetCall {
117330	c.ctx_ = ctx
117331	return c
117332}
117333
117334// Header returns an http.Header that can be modified by the caller to
117335// add HTTP headers to the request.
117336func (c *PacketMirroringsGetCall) Header() http.Header {
117337	if c.header_ == nil {
117338		c.header_ = make(http.Header)
117339	}
117340	return c.header_
117341}
117342
117343func (c *PacketMirroringsGetCall) doRequest(alt string) (*http.Response, error) {
117344	reqHeaders := make(http.Header)
117345	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
117346	for k, v := range c.header_ {
117347		reqHeaders[k] = v
117348	}
117349	reqHeaders.Set("User-Agent", c.s.userAgent())
117350	if c.ifNoneMatch_ != "" {
117351		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
117352	}
117353	var body io.Reader = nil
117354	c.urlParams_.Set("alt", alt)
117355	c.urlParams_.Set("prettyPrint", "false")
117356	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}")
117357	urls += "?" + c.urlParams_.Encode()
117358	req, err := http.NewRequest("GET", urls, body)
117359	if err != nil {
117360		return nil, err
117361	}
117362	req.Header = reqHeaders
117363	googleapi.Expand(req.URL, map[string]string{
117364		"project":         c.project,
117365		"region":          c.region,
117366		"packetMirroring": c.packetMirroring,
117367	})
117368	return gensupport.SendRequest(c.ctx_, c.s.client, req)
117369}
117370
117371// Do executes the "compute.packetMirrorings.get" call.
117372// Exactly one of *PacketMirroring or error will be non-nil. Any non-2xx
117373// status code is an error. Response headers are in either
117374// *PacketMirroring.ServerResponse.Header or (if a response was returned
117375// at all) in error.(*googleapi.Error).Header. Use
117376// googleapi.IsNotModified to check whether the returned error was
117377// because http.StatusNotModified was returned.
117378func (c *PacketMirroringsGetCall) Do(opts ...googleapi.CallOption) (*PacketMirroring, error) {
117379	gensupport.SetOptions(c.urlParams_, opts...)
117380	res, err := c.doRequest("json")
117381	if res != nil && res.StatusCode == http.StatusNotModified {
117382		if res.Body != nil {
117383			res.Body.Close()
117384		}
117385		return nil, &googleapi.Error{
117386			Code:   res.StatusCode,
117387			Header: res.Header,
117388		}
117389	}
117390	if err != nil {
117391		return nil, err
117392	}
117393	defer googleapi.CloseBody(res)
117394	if err := googleapi.CheckResponse(res); err != nil {
117395		return nil, err
117396	}
117397	ret := &PacketMirroring{
117398		ServerResponse: googleapi.ServerResponse{
117399			Header:         res.Header,
117400			HTTPStatusCode: res.StatusCode,
117401		},
117402	}
117403	target := &ret
117404	if err := gensupport.DecodeResponse(target, res); err != nil {
117405		return nil, err
117406	}
117407	return ret, nil
117408	// {
117409	//   "description": "Returns the specified PacketMirroring resource.",
117410	//   "httpMethod": "GET",
117411	//   "id": "compute.packetMirrorings.get",
117412	//   "parameterOrder": [
117413	//     "project",
117414	//     "region",
117415	//     "packetMirroring"
117416	//   ],
117417	//   "parameters": {
117418	//     "packetMirroring": {
117419	//       "description": "Name of the PacketMirroring resource to return.",
117420	//       "location": "path",
117421	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
117422	//       "required": true,
117423	//       "type": "string"
117424	//     },
117425	//     "project": {
117426	//       "description": "Project ID for this request.",
117427	//       "location": "path",
117428	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
117429	//       "required": true,
117430	//       "type": "string"
117431	//     },
117432	//     "region": {
117433	//       "description": "Name of the region for this request.",
117434	//       "location": "path",
117435	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
117436	//       "required": true,
117437	//       "type": "string"
117438	//     }
117439	//   },
117440	//   "path": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}",
117441	//   "response": {
117442	//     "$ref": "PacketMirroring"
117443	//   },
117444	//   "scopes": [
117445	//     "https://www.googleapis.com/auth/cloud-platform",
117446	//     "https://www.googleapis.com/auth/compute",
117447	//     "https://www.googleapis.com/auth/compute.readonly"
117448	//   ]
117449	// }
117450
117451}
117452
117453// method id "compute.packetMirrorings.insert":
117454
117455type PacketMirroringsInsertCall struct {
117456	s               *Service
117457	project         string
117458	region          string
117459	packetmirroring *PacketMirroring
117460	urlParams_      gensupport.URLParams
117461	ctx_            context.Context
117462	header_         http.Header
117463}
117464
117465// Insert: Creates a PacketMirroring resource in the specified project
117466// and region using the data included in the request.
117467func (r *PacketMirroringsService) Insert(project string, region string, packetmirroring *PacketMirroring) *PacketMirroringsInsertCall {
117468	c := &PacketMirroringsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117469	c.project = project
117470	c.region = region
117471	c.packetmirroring = packetmirroring
117472	return c
117473}
117474
117475// RequestId sets the optional parameter "requestId": An optional
117476// request ID to identify requests. Specify a unique request ID so that
117477// if you must retry your request, the server will know to ignore the
117478// request if it has already been completed.
117479//
117480// For example, consider a situation where you make an initial request
117481// and the request times out. If you make the request again with the
117482// same request ID, the server can check if original operation with the
117483// same request ID was received, and if so, will ignore the second
117484// request. This prevents clients from accidentally creating duplicate
117485// commitments.
117486//
117487// The request ID must be a valid UUID with the exception that zero UUID
117488// is not supported (00000000-0000-0000-0000-000000000000).
117489func (c *PacketMirroringsInsertCall) RequestId(requestId string) *PacketMirroringsInsertCall {
117490	c.urlParams_.Set("requestId", requestId)
117491	return c
117492}
117493
117494// Fields allows partial responses to be retrieved. See
117495// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117496// for more information.
117497func (c *PacketMirroringsInsertCall) Fields(s ...googleapi.Field) *PacketMirroringsInsertCall {
117498	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117499	return c
117500}
117501
117502// Context sets the context to be used in this call's Do method. Any
117503// pending HTTP request will be aborted if the provided context is
117504// canceled.
117505func (c *PacketMirroringsInsertCall) Context(ctx context.Context) *PacketMirroringsInsertCall {
117506	c.ctx_ = ctx
117507	return c
117508}
117509
117510// Header returns an http.Header that can be modified by the caller to
117511// add HTTP headers to the request.
117512func (c *PacketMirroringsInsertCall) Header() http.Header {
117513	if c.header_ == nil {
117514		c.header_ = make(http.Header)
117515	}
117516	return c.header_
117517}
117518
117519func (c *PacketMirroringsInsertCall) doRequest(alt string) (*http.Response, error) {
117520	reqHeaders := make(http.Header)
117521	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
117522	for k, v := range c.header_ {
117523		reqHeaders[k] = v
117524	}
117525	reqHeaders.Set("User-Agent", c.s.userAgent())
117526	var body io.Reader = nil
117527	body, err := googleapi.WithoutDataWrapper.JSONReader(c.packetmirroring)
117528	if err != nil {
117529		return nil, err
117530	}
117531	reqHeaders.Set("Content-Type", "application/json")
117532	c.urlParams_.Set("alt", alt)
117533	c.urlParams_.Set("prettyPrint", "false")
117534	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/packetMirrorings")
117535	urls += "?" + c.urlParams_.Encode()
117536	req, err := http.NewRequest("POST", urls, body)
117537	if err != nil {
117538		return nil, err
117539	}
117540	req.Header = reqHeaders
117541	googleapi.Expand(req.URL, map[string]string{
117542		"project": c.project,
117543		"region":  c.region,
117544	})
117545	return gensupport.SendRequest(c.ctx_, c.s.client, req)
117546}
117547
117548// Do executes the "compute.packetMirrorings.insert" call.
117549// Exactly one of *Operation or error will be non-nil. Any non-2xx
117550// status code is an error. Response headers are in either
117551// *Operation.ServerResponse.Header or (if a response was returned at
117552// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
117553// to check whether the returned error was because
117554// http.StatusNotModified was returned.
117555func (c *PacketMirroringsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
117556	gensupport.SetOptions(c.urlParams_, opts...)
117557	res, err := c.doRequest("json")
117558	if res != nil && res.StatusCode == http.StatusNotModified {
117559		if res.Body != nil {
117560			res.Body.Close()
117561		}
117562		return nil, &googleapi.Error{
117563			Code:   res.StatusCode,
117564			Header: res.Header,
117565		}
117566	}
117567	if err != nil {
117568		return nil, err
117569	}
117570	defer googleapi.CloseBody(res)
117571	if err := googleapi.CheckResponse(res); err != nil {
117572		return nil, err
117573	}
117574	ret := &Operation{
117575		ServerResponse: googleapi.ServerResponse{
117576			Header:         res.Header,
117577			HTTPStatusCode: res.StatusCode,
117578		},
117579	}
117580	target := &ret
117581	if err := gensupport.DecodeResponse(target, res); err != nil {
117582		return nil, err
117583	}
117584	return ret, nil
117585	// {
117586	//   "description": "Creates a PacketMirroring resource in the specified project and region using the data included in the request.",
117587	//   "httpMethod": "POST",
117588	//   "id": "compute.packetMirrorings.insert",
117589	//   "parameterOrder": [
117590	//     "project",
117591	//     "region"
117592	//   ],
117593	//   "parameters": {
117594	//     "project": {
117595	//       "description": "Project ID for this request.",
117596	//       "location": "path",
117597	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
117598	//       "required": true,
117599	//       "type": "string"
117600	//     },
117601	//     "region": {
117602	//       "description": "Name of the region for this request.",
117603	//       "location": "path",
117604	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
117605	//       "required": true,
117606	//       "type": "string"
117607	//     },
117608	//     "requestId": {
117609	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
117610	//       "location": "query",
117611	//       "type": "string"
117612	//     }
117613	//   },
117614	//   "path": "projects/{project}/regions/{region}/packetMirrorings",
117615	//   "request": {
117616	//     "$ref": "PacketMirroring"
117617	//   },
117618	//   "response": {
117619	//     "$ref": "Operation"
117620	//   },
117621	//   "scopes": [
117622	//     "https://www.googleapis.com/auth/cloud-platform",
117623	//     "https://www.googleapis.com/auth/compute"
117624	//   ]
117625	// }
117626
117627}
117628
117629// method id "compute.packetMirrorings.list":
117630
117631type PacketMirroringsListCall struct {
117632	s            *Service
117633	project      string
117634	region       string
117635	urlParams_   gensupport.URLParams
117636	ifNoneMatch_ string
117637	ctx_         context.Context
117638	header_      http.Header
117639}
117640
117641// List: Retrieves a list of PacketMirroring resources available to the
117642// specified project and region.
117643func (r *PacketMirroringsService) List(project string, region string) *PacketMirroringsListCall {
117644	c := &PacketMirroringsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117645	c.project = project
117646	c.region = region
117647	return c
117648}
117649
117650// Filter sets the optional parameter "filter": A filter expression that
117651// filters resources listed in the response. The expression must specify
117652// the field name, a comparison operator, and the value that you want to
117653// use for filtering. The value must be a string, a number, or a
117654// boolean. The comparison operator must be either `=`, `!=`, `>`, or
117655// `<`.
117656//
117657// For example, if you are filtering Compute Engine instances, you can
117658// exclude instances named `example-instance` by specifying `name !=
117659// example-instance`.
117660//
117661// You can also filter nested fields. For example, you could specify
117662// `scheduling.automaticRestart = false` to include instances only if
117663// they are not scheduled for automatic restarts. You can use filtering
117664// on nested fields to filter based on resource labels.
117665//
117666// To filter on multiple expressions, provide each separate expression
117667// within parentheses. For example: ``` (scheduling.automaticRestart =
117668// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
117669// is an `AND` expression. However, you can include `AND` and `OR`
117670// expressions explicitly. For example: ``` (cpuPlatform = "Intel
117671// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
117672// (scheduling.automaticRestart = true) ```
117673func (c *PacketMirroringsListCall) Filter(filter string) *PacketMirroringsListCall {
117674	c.urlParams_.Set("filter", filter)
117675	return c
117676}
117677
117678// MaxResults sets the optional parameter "maxResults": The maximum
117679// number of results per page that should be returned. If the number of
117680// available results is larger than `maxResults`, Compute Engine returns
117681// a `nextPageToken` that can be used to get the next page of results in
117682// subsequent list requests. Acceptable values are `0` to `500`,
117683// inclusive. (Default: `500`)
117684func (c *PacketMirroringsListCall) MaxResults(maxResults int64) *PacketMirroringsListCall {
117685	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
117686	return c
117687}
117688
117689// OrderBy sets the optional parameter "orderBy": Sorts list results by
117690// a certain order. By default, results are returned in alphanumerical
117691// order based on the resource name.
117692//
117693// You can also sort results in descending order based on the creation
117694// timestamp using `orderBy="creationTimestamp desc". This sorts
117695// results based on the `creationTimestamp` field in reverse
117696// chronological order (newest result first). Use this to sort resources
117697// like operations so that the newest operation is returned
117698// first.
117699//
117700// Currently, only sorting by `name` or `creationTimestamp desc` is
117701// supported.
117702func (c *PacketMirroringsListCall) OrderBy(orderBy string) *PacketMirroringsListCall {
117703	c.urlParams_.Set("orderBy", orderBy)
117704	return c
117705}
117706
117707// PageToken sets the optional parameter "pageToken": Specifies a page
117708// token to use. Set `pageToken` to the `nextPageToken` returned by a
117709// previous list request to get the next page of results.
117710func (c *PacketMirroringsListCall) PageToken(pageToken string) *PacketMirroringsListCall {
117711	c.urlParams_.Set("pageToken", pageToken)
117712	return c
117713}
117714
117715// ReturnPartialSuccess sets the optional parameter
117716// "returnPartialSuccess": Opt-in for partial success behavior which
117717// provides partial results in case of failure. The default value is
117718// false.
117719func (c *PacketMirroringsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *PacketMirroringsListCall {
117720	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
117721	return c
117722}
117723
117724// Fields allows partial responses to be retrieved. See
117725// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117726// for more information.
117727func (c *PacketMirroringsListCall) Fields(s ...googleapi.Field) *PacketMirroringsListCall {
117728	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117729	return c
117730}
117731
117732// IfNoneMatch sets the optional parameter which makes the operation
117733// fail if the object's ETag matches the given value. This is useful for
117734// getting updates only after the object has changed since the last
117735// request. Use googleapi.IsNotModified to check whether the response
117736// error from Do is the result of In-None-Match.
117737func (c *PacketMirroringsListCall) IfNoneMatch(entityTag string) *PacketMirroringsListCall {
117738	c.ifNoneMatch_ = entityTag
117739	return c
117740}
117741
117742// Context sets the context to be used in this call's Do method. Any
117743// pending HTTP request will be aborted if the provided context is
117744// canceled.
117745func (c *PacketMirroringsListCall) Context(ctx context.Context) *PacketMirroringsListCall {
117746	c.ctx_ = ctx
117747	return c
117748}
117749
117750// Header returns an http.Header that can be modified by the caller to
117751// add HTTP headers to the request.
117752func (c *PacketMirroringsListCall) Header() http.Header {
117753	if c.header_ == nil {
117754		c.header_ = make(http.Header)
117755	}
117756	return c.header_
117757}
117758
117759func (c *PacketMirroringsListCall) doRequest(alt string) (*http.Response, error) {
117760	reqHeaders := make(http.Header)
117761	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
117762	for k, v := range c.header_ {
117763		reqHeaders[k] = v
117764	}
117765	reqHeaders.Set("User-Agent", c.s.userAgent())
117766	if c.ifNoneMatch_ != "" {
117767		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
117768	}
117769	var body io.Reader = nil
117770	c.urlParams_.Set("alt", alt)
117771	c.urlParams_.Set("prettyPrint", "false")
117772	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/packetMirrorings")
117773	urls += "?" + c.urlParams_.Encode()
117774	req, err := http.NewRequest("GET", urls, body)
117775	if err != nil {
117776		return nil, err
117777	}
117778	req.Header = reqHeaders
117779	googleapi.Expand(req.URL, map[string]string{
117780		"project": c.project,
117781		"region":  c.region,
117782	})
117783	return gensupport.SendRequest(c.ctx_, c.s.client, req)
117784}
117785
117786// Do executes the "compute.packetMirrorings.list" call.
117787// Exactly one of *PacketMirroringList or error will be non-nil. Any
117788// non-2xx status code is an error. Response headers are in either
117789// *PacketMirroringList.ServerResponse.Header or (if a response was
117790// returned at all) in error.(*googleapi.Error).Header. Use
117791// googleapi.IsNotModified to check whether the returned error was
117792// because http.StatusNotModified was returned.
117793func (c *PacketMirroringsListCall) Do(opts ...googleapi.CallOption) (*PacketMirroringList, error) {
117794	gensupport.SetOptions(c.urlParams_, opts...)
117795	res, err := c.doRequest("json")
117796	if res != nil && res.StatusCode == http.StatusNotModified {
117797		if res.Body != nil {
117798			res.Body.Close()
117799		}
117800		return nil, &googleapi.Error{
117801			Code:   res.StatusCode,
117802			Header: res.Header,
117803		}
117804	}
117805	if err != nil {
117806		return nil, err
117807	}
117808	defer googleapi.CloseBody(res)
117809	if err := googleapi.CheckResponse(res); err != nil {
117810		return nil, err
117811	}
117812	ret := &PacketMirroringList{
117813		ServerResponse: googleapi.ServerResponse{
117814			Header:         res.Header,
117815			HTTPStatusCode: res.StatusCode,
117816		},
117817	}
117818	target := &ret
117819	if err := gensupport.DecodeResponse(target, res); err != nil {
117820		return nil, err
117821	}
117822	return ret, nil
117823	// {
117824	//   "description": "Retrieves a list of PacketMirroring resources available to the specified project and region.",
117825	//   "httpMethod": "GET",
117826	//   "id": "compute.packetMirrorings.list",
117827	//   "parameterOrder": [
117828	//     "project",
117829	//     "region"
117830	//   ],
117831	//   "parameters": {
117832	//     "filter": {
117833	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
117834	//       "location": "query",
117835	//       "type": "string"
117836	//     },
117837	//     "maxResults": {
117838	//       "default": "500",
117839	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
117840	//       "format": "uint32",
117841	//       "location": "query",
117842	//       "minimum": "0",
117843	//       "type": "integer"
117844	//     },
117845	//     "orderBy": {
117846	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
117847	//       "location": "query",
117848	//       "type": "string"
117849	//     },
117850	//     "pageToken": {
117851	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
117852	//       "location": "query",
117853	//       "type": "string"
117854	//     },
117855	//     "project": {
117856	//       "description": "Project ID for this request.",
117857	//       "location": "path",
117858	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
117859	//       "required": true,
117860	//       "type": "string"
117861	//     },
117862	//     "region": {
117863	//       "description": "Name of the region for this request.",
117864	//       "location": "path",
117865	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
117866	//       "required": true,
117867	//       "type": "string"
117868	//     },
117869	//     "returnPartialSuccess": {
117870	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
117871	//       "location": "query",
117872	//       "type": "boolean"
117873	//     }
117874	//   },
117875	//   "path": "projects/{project}/regions/{region}/packetMirrorings",
117876	//   "response": {
117877	//     "$ref": "PacketMirroringList"
117878	//   },
117879	//   "scopes": [
117880	//     "https://www.googleapis.com/auth/cloud-platform",
117881	//     "https://www.googleapis.com/auth/compute",
117882	//     "https://www.googleapis.com/auth/compute.readonly"
117883	//   ]
117884	// }
117885
117886}
117887
117888// Pages invokes f for each page of results.
117889// A non-nil error returned from f will halt the iteration.
117890// The provided context supersedes any context provided to the Context method.
117891func (c *PacketMirroringsListCall) Pages(ctx context.Context, f func(*PacketMirroringList) error) error {
117892	c.ctx_ = ctx
117893	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
117894	for {
117895		x, err := c.Do()
117896		if err != nil {
117897			return err
117898		}
117899		if err := f(x); err != nil {
117900			return err
117901		}
117902		if x.NextPageToken == "" {
117903			return nil
117904		}
117905		c.PageToken(x.NextPageToken)
117906	}
117907}
117908
117909// method id "compute.packetMirrorings.patch":
117910
117911type PacketMirroringsPatchCall struct {
117912	s               *Service
117913	project         string
117914	region          string
117915	packetMirroring string
117916	packetmirroring *PacketMirroring
117917	urlParams_      gensupport.URLParams
117918	ctx_            context.Context
117919	header_         http.Header
117920}
117921
117922// Patch: Patches the specified PacketMirroring resource with the data
117923// included in the request. This method supports PATCH semantics and
117924// uses JSON merge patch format and processing rules.
117925func (r *PacketMirroringsService) Patch(project string, region string, packetMirroring string, packetmirroring *PacketMirroring) *PacketMirroringsPatchCall {
117926	c := &PacketMirroringsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117927	c.project = project
117928	c.region = region
117929	c.packetMirroring = packetMirroring
117930	c.packetmirroring = packetmirroring
117931	return c
117932}
117933
117934// RequestId sets the optional parameter "requestId": An optional
117935// request ID to identify requests. Specify a unique request ID so that
117936// if you must retry your request, the server will know to ignore the
117937// request if it has already been completed.
117938//
117939// For example, consider a situation where you make an initial request
117940// and the request times out. If you make the request again with the
117941// same request ID, the server can check if original operation with the
117942// same request ID was received, and if so, will ignore the second
117943// request. This prevents clients from accidentally creating duplicate
117944// commitments.
117945//
117946// The request ID must be a valid UUID with the exception that zero UUID
117947// is not supported (00000000-0000-0000-0000-000000000000).
117948func (c *PacketMirroringsPatchCall) RequestId(requestId string) *PacketMirroringsPatchCall {
117949	c.urlParams_.Set("requestId", requestId)
117950	return c
117951}
117952
117953// Fields allows partial responses to be retrieved. See
117954// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117955// for more information.
117956func (c *PacketMirroringsPatchCall) Fields(s ...googleapi.Field) *PacketMirroringsPatchCall {
117957	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117958	return c
117959}
117960
117961// Context sets the context to be used in this call's Do method. Any
117962// pending HTTP request will be aborted if the provided context is
117963// canceled.
117964func (c *PacketMirroringsPatchCall) Context(ctx context.Context) *PacketMirroringsPatchCall {
117965	c.ctx_ = ctx
117966	return c
117967}
117968
117969// Header returns an http.Header that can be modified by the caller to
117970// add HTTP headers to the request.
117971func (c *PacketMirroringsPatchCall) Header() http.Header {
117972	if c.header_ == nil {
117973		c.header_ = make(http.Header)
117974	}
117975	return c.header_
117976}
117977
117978func (c *PacketMirroringsPatchCall) doRequest(alt string) (*http.Response, error) {
117979	reqHeaders := make(http.Header)
117980	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
117981	for k, v := range c.header_ {
117982		reqHeaders[k] = v
117983	}
117984	reqHeaders.Set("User-Agent", c.s.userAgent())
117985	var body io.Reader = nil
117986	body, err := googleapi.WithoutDataWrapper.JSONReader(c.packetmirroring)
117987	if err != nil {
117988		return nil, err
117989	}
117990	reqHeaders.Set("Content-Type", "application/json")
117991	c.urlParams_.Set("alt", alt)
117992	c.urlParams_.Set("prettyPrint", "false")
117993	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}")
117994	urls += "?" + c.urlParams_.Encode()
117995	req, err := http.NewRequest("PATCH", urls, body)
117996	if err != nil {
117997		return nil, err
117998	}
117999	req.Header = reqHeaders
118000	googleapi.Expand(req.URL, map[string]string{
118001		"project":         c.project,
118002		"region":          c.region,
118003		"packetMirroring": c.packetMirroring,
118004	})
118005	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118006}
118007
118008// Do executes the "compute.packetMirrorings.patch" call.
118009// Exactly one of *Operation or error will be non-nil. Any non-2xx
118010// status code is an error. Response headers are in either
118011// *Operation.ServerResponse.Header or (if a response was returned at
118012// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
118013// to check whether the returned error was because
118014// http.StatusNotModified was returned.
118015func (c *PacketMirroringsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
118016	gensupport.SetOptions(c.urlParams_, opts...)
118017	res, err := c.doRequest("json")
118018	if res != nil && res.StatusCode == http.StatusNotModified {
118019		if res.Body != nil {
118020			res.Body.Close()
118021		}
118022		return nil, &googleapi.Error{
118023			Code:   res.StatusCode,
118024			Header: res.Header,
118025		}
118026	}
118027	if err != nil {
118028		return nil, err
118029	}
118030	defer googleapi.CloseBody(res)
118031	if err := googleapi.CheckResponse(res); err != nil {
118032		return nil, err
118033	}
118034	ret := &Operation{
118035		ServerResponse: googleapi.ServerResponse{
118036			Header:         res.Header,
118037			HTTPStatusCode: res.StatusCode,
118038		},
118039	}
118040	target := &ret
118041	if err := gensupport.DecodeResponse(target, res); err != nil {
118042		return nil, err
118043	}
118044	return ret, nil
118045	// {
118046	//   "description": "Patches the specified PacketMirroring resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules.",
118047	//   "httpMethod": "PATCH",
118048	//   "id": "compute.packetMirrorings.patch",
118049	//   "parameterOrder": [
118050	//     "project",
118051	//     "region",
118052	//     "packetMirroring"
118053	//   ],
118054	//   "parameters": {
118055	//     "packetMirroring": {
118056	//       "description": "Name of the PacketMirroring resource to patch.",
118057	//       "location": "path",
118058	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
118059	//       "required": true,
118060	//       "type": "string"
118061	//     },
118062	//     "project": {
118063	//       "description": "Project ID for this request.",
118064	//       "location": "path",
118065	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
118066	//       "required": true,
118067	//       "type": "string"
118068	//     },
118069	//     "region": {
118070	//       "description": "Name of the region for this request.",
118071	//       "location": "path",
118072	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
118073	//       "required": true,
118074	//       "type": "string"
118075	//     },
118076	//     "requestId": {
118077	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
118078	//       "location": "query",
118079	//       "type": "string"
118080	//     }
118081	//   },
118082	//   "path": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}",
118083	//   "request": {
118084	//     "$ref": "PacketMirroring"
118085	//   },
118086	//   "response": {
118087	//     "$ref": "Operation"
118088	//   },
118089	//   "scopes": [
118090	//     "https://www.googleapis.com/auth/cloud-platform",
118091	//     "https://www.googleapis.com/auth/compute"
118092	//   ]
118093	// }
118094
118095}
118096
118097// method id "compute.packetMirrorings.testIamPermissions":
118098
118099type PacketMirroringsTestIamPermissionsCall struct {
118100	s                      *Service
118101	project                string
118102	region                 string
118103	resource               string
118104	testpermissionsrequest *TestPermissionsRequest
118105	urlParams_             gensupport.URLParams
118106	ctx_                   context.Context
118107	header_                http.Header
118108}
118109
118110// TestIamPermissions: Returns permissions that a caller has on the
118111// specified resource.
118112func (r *PacketMirroringsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *PacketMirroringsTestIamPermissionsCall {
118113	c := &PacketMirroringsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
118114	c.project = project
118115	c.region = region
118116	c.resource = resource
118117	c.testpermissionsrequest = testpermissionsrequest
118118	return c
118119}
118120
118121// Fields allows partial responses to be retrieved. See
118122// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
118123// for more information.
118124func (c *PacketMirroringsTestIamPermissionsCall) Fields(s ...googleapi.Field) *PacketMirroringsTestIamPermissionsCall {
118125	c.urlParams_.Set("fields", googleapi.CombineFields(s))
118126	return c
118127}
118128
118129// Context sets the context to be used in this call's Do method. Any
118130// pending HTTP request will be aborted if the provided context is
118131// canceled.
118132func (c *PacketMirroringsTestIamPermissionsCall) Context(ctx context.Context) *PacketMirroringsTestIamPermissionsCall {
118133	c.ctx_ = ctx
118134	return c
118135}
118136
118137// Header returns an http.Header that can be modified by the caller to
118138// add HTTP headers to the request.
118139func (c *PacketMirroringsTestIamPermissionsCall) Header() http.Header {
118140	if c.header_ == nil {
118141		c.header_ = make(http.Header)
118142	}
118143	return c.header_
118144}
118145
118146func (c *PacketMirroringsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
118147	reqHeaders := make(http.Header)
118148	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
118149	for k, v := range c.header_ {
118150		reqHeaders[k] = v
118151	}
118152	reqHeaders.Set("User-Agent", c.s.userAgent())
118153	var body io.Reader = nil
118154	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
118155	if err != nil {
118156		return nil, err
118157	}
118158	reqHeaders.Set("Content-Type", "application/json")
118159	c.urlParams_.Set("alt", alt)
118160	c.urlParams_.Set("prettyPrint", "false")
118161	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/packetMirrorings/{resource}/testIamPermissions")
118162	urls += "?" + c.urlParams_.Encode()
118163	req, err := http.NewRequest("POST", urls, body)
118164	if err != nil {
118165		return nil, err
118166	}
118167	req.Header = reqHeaders
118168	googleapi.Expand(req.URL, map[string]string{
118169		"project":  c.project,
118170		"region":   c.region,
118171		"resource": c.resource,
118172	})
118173	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118174}
118175
118176// Do executes the "compute.packetMirrorings.testIamPermissions" call.
118177// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
118178// non-2xx status code is an error. Response headers are in either
118179// *TestPermissionsResponse.ServerResponse.Header or (if a response was
118180// returned at all) in error.(*googleapi.Error).Header. Use
118181// googleapi.IsNotModified to check whether the returned error was
118182// because http.StatusNotModified was returned.
118183func (c *PacketMirroringsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
118184	gensupport.SetOptions(c.urlParams_, opts...)
118185	res, err := c.doRequest("json")
118186	if res != nil && res.StatusCode == http.StatusNotModified {
118187		if res.Body != nil {
118188			res.Body.Close()
118189		}
118190		return nil, &googleapi.Error{
118191			Code:   res.StatusCode,
118192			Header: res.Header,
118193		}
118194	}
118195	if err != nil {
118196		return nil, err
118197	}
118198	defer googleapi.CloseBody(res)
118199	if err := googleapi.CheckResponse(res); err != nil {
118200		return nil, err
118201	}
118202	ret := &TestPermissionsResponse{
118203		ServerResponse: googleapi.ServerResponse{
118204			Header:         res.Header,
118205			HTTPStatusCode: res.StatusCode,
118206		},
118207	}
118208	target := &ret
118209	if err := gensupport.DecodeResponse(target, res); err != nil {
118210		return nil, err
118211	}
118212	return ret, nil
118213	// {
118214	//   "description": "Returns permissions that a caller has on the specified resource.",
118215	//   "httpMethod": "POST",
118216	//   "id": "compute.packetMirrorings.testIamPermissions",
118217	//   "parameterOrder": [
118218	//     "project",
118219	//     "region",
118220	//     "resource"
118221	//   ],
118222	//   "parameters": {
118223	//     "project": {
118224	//       "description": "Project ID for this request.",
118225	//       "location": "path",
118226	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
118227	//       "required": true,
118228	//       "type": "string"
118229	//     },
118230	//     "region": {
118231	//       "description": "The name of the region for this request.",
118232	//       "location": "path",
118233	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
118234	//       "required": true,
118235	//       "type": "string"
118236	//     },
118237	//     "resource": {
118238	//       "description": "Name or id of the resource for this request.",
118239	//       "location": "path",
118240	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
118241	//       "required": true,
118242	//       "type": "string"
118243	//     }
118244	//   },
118245	//   "path": "projects/{project}/regions/{region}/packetMirrorings/{resource}/testIamPermissions",
118246	//   "request": {
118247	//     "$ref": "TestPermissionsRequest"
118248	//   },
118249	//   "response": {
118250	//     "$ref": "TestPermissionsResponse"
118251	//   },
118252	//   "scopes": [
118253	//     "https://www.googleapis.com/auth/cloud-platform",
118254	//     "https://www.googleapis.com/auth/compute",
118255	//     "https://www.googleapis.com/auth/compute.readonly"
118256	//   ]
118257	// }
118258
118259}
118260
118261// method id "compute.projects.disableXpnHost":
118262
118263type ProjectsDisableXpnHostCall struct {
118264	s          *Service
118265	project    string
118266	urlParams_ gensupport.URLParams
118267	ctx_       context.Context
118268	header_    http.Header
118269}
118270
118271// DisableXpnHost: Disable this project as a shared VPC host project.
118272func (r *ProjectsService) DisableXpnHost(project string) *ProjectsDisableXpnHostCall {
118273	c := &ProjectsDisableXpnHostCall{s: r.s, urlParams_: make(gensupport.URLParams)}
118274	c.project = project
118275	return c
118276}
118277
118278// RequestId sets the optional parameter "requestId": An optional
118279// request ID to identify requests. Specify a unique request ID so that
118280// if you must retry your request, the server will know to ignore the
118281// request if it has already been completed.
118282//
118283// For example, consider a situation where you make an initial request
118284// and the request times out. If you make the request again with the
118285// same request ID, the server can check if original operation with the
118286// same request ID was received, and if so, will ignore the second
118287// request. This prevents clients from accidentally creating duplicate
118288// commitments.
118289//
118290// The request ID must be a valid UUID with the exception that zero UUID
118291// is not supported (00000000-0000-0000-0000-000000000000).
118292func (c *ProjectsDisableXpnHostCall) RequestId(requestId string) *ProjectsDisableXpnHostCall {
118293	c.urlParams_.Set("requestId", requestId)
118294	return c
118295}
118296
118297// Fields allows partial responses to be retrieved. See
118298// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
118299// for more information.
118300func (c *ProjectsDisableXpnHostCall) Fields(s ...googleapi.Field) *ProjectsDisableXpnHostCall {
118301	c.urlParams_.Set("fields", googleapi.CombineFields(s))
118302	return c
118303}
118304
118305// Context sets the context to be used in this call's Do method. Any
118306// pending HTTP request will be aborted if the provided context is
118307// canceled.
118308func (c *ProjectsDisableXpnHostCall) Context(ctx context.Context) *ProjectsDisableXpnHostCall {
118309	c.ctx_ = ctx
118310	return c
118311}
118312
118313// Header returns an http.Header that can be modified by the caller to
118314// add HTTP headers to the request.
118315func (c *ProjectsDisableXpnHostCall) Header() http.Header {
118316	if c.header_ == nil {
118317		c.header_ = make(http.Header)
118318	}
118319	return c.header_
118320}
118321
118322func (c *ProjectsDisableXpnHostCall) doRequest(alt string) (*http.Response, error) {
118323	reqHeaders := make(http.Header)
118324	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
118325	for k, v := range c.header_ {
118326		reqHeaders[k] = v
118327	}
118328	reqHeaders.Set("User-Agent", c.s.userAgent())
118329	var body io.Reader = nil
118330	c.urlParams_.Set("alt", alt)
118331	c.urlParams_.Set("prettyPrint", "false")
118332	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/disableXpnHost")
118333	urls += "?" + c.urlParams_.Encode()
118334	req, err := http.NewRequest("POST", urls, body)
118335	if err != nil {
118336		return nil, err
118337	}
118338	req.Header = reqHeaders
118339	googleapi.Expand(req.URL, map[string]string{
118340		"project": c.project,
118341	})
118342	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118343}
118344
118345// Do executes the "compute.projects.disableXpnHost" call.
118346// Exactly one of *Operation or error will be non-nil. Any non-2xx
118347// status code is an error. Response headers are in either
118348// *Operation.ServerResponse.Header or (if a response was returned at
118349// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
118350// to check whether the returned error was because
118351// http.StatusNotModified was returned.
118352func (c *ProjectsDisableXpnHostCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
118353	gensupport.SetOptions(c.urlParams_, opts...)
118354	res, err := c.doRequest("json")
118355	if res != nil && res.StatusCode == http.StatusNotModified {
118356		if res.Body != nil {
118357			res.Body.Close()
118358		}
118359		return nil, &googleapi.Error{
118360			Code:   res.StatusCode,
118361			Header: res.Header,
118362		}
118363	}
118364	if err != nil {
118365		return nil, err
118366	}
118367	defer googleapi.CloseBody(res)
118368	if err := googleapi.CheckResponse(res); err != nil {
118369		return nil, err
118370	}
118371	ret := &Operation{
118372		ServerResponse: googleapi.ServerResponse{
118373			Header:         res.Header,
118374			HTTPStatusCode: res.StatusCode,
118375		},
118376	}
118377	target := &ret
118378	if err := gensupport.DecodeResponse(target, res); err != nil {
118379		return nil, err
118380	}
118381	return ret, nil
118382	// {
118383	//   "description": "Disable this project as a shared VPC host project.",
118384	//   "httpMethod": "POST",
118385	//   "id": "compute.projects.disableXpnHost",
118386	//   "parameterOrder": [
118387	//     "project"
118388	//   ],
118389	//   "parameters": {
118390	//     "project": {
118391	//       "description": "Project ID for this request.",
118392	//       "location": "path",
118393	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
118394	//       "required": true,
118395	//       "type": "string"
118396	//     },
118397	//     "requestId": {
118398	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
118399	//       "location": "query",
118400	//       "type": "string"
118401	//     }
118402	//   },
118403	//   "path": "projects/{project}/disableXpnHost",
118404	//   "response": {
118405	//     "$ref": "Operation"
118406	//   },
118407	//   "scopes": [
118408	//     "https://www.googleapis.com/auth/cloud-platform",
118409	//     "https://www.googleapis.com/auth/compute"
118410	//   ]
118411	// }
118412
118413}
118414
118415// method id "compute.projects.disableXpnResource":
118416
118417type ProjectsDisableXpnResourceCall struct {
118418	s                                 *Service
118419	project                           string
118420	projectsdisablexpnresourcerequest *ProjectsDisableXpnResourceRequest
118421	urlParams_                        gensupport.URLParams
118422	ctx_                              context.Context
118423	header_                           http.Header
118424}
118425
118426// DisableXpnResource: Disable a service resource (also known as service
118427// project) associated with this host project.
118428func (r *ProjectsService) DisableXpnResource(project string, projectsdisablexpnresourcerequest *ProjectsDisableXpnResourceRequest) *ProjectsDisableXpnResourceCall {
118429	c := &ProjectsDisableXpnResourceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
118430	c.project = project
118431	c.projectsdisablexpnresourcerequest = projectsdisablexpnresourcerequest
118432	return c
118433}
118434
118435// RequestId sets the optional parameter "requestId": An optional
118436// request ID to identify requests. Specify a unique request ID so that
118437// if you must retry your request, the server will know to ignore the
118438// request if it has already been completed.
118439//
118440// For example, consider a situation where you make an initial request
118441// and the request times out. If you make the request again with the
118442// same request ID, the server can check if original operation with the
118443// same request ID was received, and if so, will ignore the second
118444// request. This prevents clients from accidentally creating duplicate
118445// commitments.
118446//
118447// The request ID must be a valid UUID with the exception that zero UUID
118448// is not supported (00000000-0000-0000-0000-000000000000).
118449func (c *ProjectsDisableXpnResourceCall) RequestId(requestId string) *ProjectsDisableXpnResourceCall {
118450	c.urlParams_.Set("requestId", requestId)
118451	return c
118452}
118453
118454// Fields allows partial responses to be retrieved. See
118455// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
118456// for more information.
118457func (c *ProjectsDisableXpnResourceCall) Fields(s ...googleapi.Field) *ProjectsDisableXpnResourceCall {
118458	c.urlParams_.Set("fields", googleapi.CombineFields(s))
118459	return c
118460}
118461
118462// Context sets the context to be used in this call's Do method. Any
118463// pending HTTP request will be aborted if the provided context is
118464// canceled.
118465func (c *ProjectsDisableXpnResourceCall) Context(ctx context.Context) *ProjectsDisableXpnResourceCall {
118466	c.ctx_ = ctx
118467	return c
118468}
118469
118470// Header returns an http.Header that can be modified by the caller to
118471// add HTTP headers to the request.
118472func (c *ProjectsDisableXpnResourceCall) Header() http.Header {
118473	if c.header_ == nil {
118474		c.header_ = make(http.Header)
118475	}
118476	return c.header_
118477}
118478
118479func (c *ProjectsDisableXpnResourceCall) doRequest(alt string) (*http.Response, error) {
118480	reqHeaders := make(http.Header)
118481	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
118482	for k, v := range c.header_ {
118483		reqHeaders[k] = v
118484	}
118485	reqHeaders.Set("User-Agent", c.s.userAgent())
118486	var body io.Reader = nil
118487	body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectsdisablexpnresourcerequest)
118488	if err != nil {
118489		return nil, err
118490	}
118491	reqHeaders.Set("Content-Type", "application/json")
118492	c.urlParams_.Set("alt", alt)
118493	c.urlParams_.Set("prettyPrint", "false")
118494	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/disableXpnResource")
118495	urls += "?" + c.urlParams_.Encode()
118496	req, err := http.NewRequest("POST", urls, body)
118497	if err != nil {
118498		return nil, err
118499	}
118500	req.Header = reqHeaders
118501	googleapi.Expand(req.URL, map[string]string{
118502		"project": c.project,
118503	})
118504	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118505}
118506
118507// Do executes the "compute.projects.disableXpnResource" call.
118508// Exactly one of *Operation or error will be non-nil. Any non-2xx
118509// status code is an error. Response headers are in either
118510// *Operation.ServerResponse.Header or (if a response was returned at
118511// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
118512// to check whether the returned error was because
118513// http.StatusNotModified was returned.
118514func (c *ProjectsDisableXpnResourceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
118515	gensupport.SetOptions(c.urlParams_, opts...)
118516	res, err := c.doRequest("json")
118517	if res != nil && res.StatusCode == http.StatusNotModified {
118518		if res.Body != nil {
118519			res.Body.Close()
118520		}
118521		return nil, &googleapi.Error{
118522			Code:   res.StatusCode,
118523			Header: res.Header,
118524		}
118525	}
118526	if err != nil {
118527		return nil, err
118528	}
118529	defer googleapi.CloseBody(res)
118530	if err := googleapi.CheckResponse(res); err != nil {
118531		return nil, err
118532	}
118533	ret := &Operation{
118534		ServerResponse: googleapi.ServerResponse{
118535			Header:         res.Header,
118536			HTTPStatusCode: res.StatusCode,
118537		},
118538	}
118539	target := &ret
118540	if err := gensupport.DecodeResponse(target, res); err != nil {
118541		return nil, err
118542	}
118543	return ret, nil
118544	// {
118545	//   "description": "Disable a service resource (also known as service project) associated with this host project.",
118546	//   "httpMethod": "POST",
118547	//   "id": "compute.projects.disableXpnResource",
118548	//   "parameterOrder": [
118549	//     "project"
118550	//   ],
118551	//   "parameters": {
118552	//     "project": {
118553	//       "description": "Project ID for this request.",
118554	//       "location": "path",
118555	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
118556	//       "required": true,
118557	//       "type": "string"
118558	//     },
118559	//     "requestId": {
118560	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
118561	//       "location": "query",
118562	//       "type": "string"
118563	//     }
118564	//   },
118565	//   "path": "projects/{project}/disableXpnResource",
118566	//   "request": {
118567	//     "$ref": "ProjectsDisableXpnResourceRequest"
118568	//   },
118569	//   "response": {
118570	//     "$ref": "Operation"
118571	//   },
118572	//   "scopes": [
118573	//     "https://www.googleapis.com/auth/cloud-platform",
118574	//     "https://www.googleapis.com/auth/compute"
118575	//   ]
118576	// }
118577
118578}
118579
118580// method id "compute.projects.enableXpnHost":
118581
118582type ProjectsEnableXpnHostCall struct {
118583	s          *Service
118584	project    string
118585	urlParams_ gensupport.URLParams
118586	ctx_       context.Context
118587	header_    http.Header
118588}
118589
118590// EnableXpnHost: Enable this project as a shared VPC host project.
118591func (r *ProjectsService) EnableXpnHost(project string) *ProjectsEnableXpnHostCall {
118592	c := &ProjectsEnableXpnHostCall{s: r.s, urlParams_: make(gensupport.URLParams)}
118593	c.project = project
118594	return c
118595}
118596
118597// RequestId sets the optional parameter "requestId": An optional
118598// request ID to identify requests. Specify a unique request ID so that
118599// if you must retry your request, the server will know to ignore the
118600// request if it has already been completed.
118601//
118602// For example, consider a situation where you make an initial request
118603// and the request times out. If you make the request again with the
118604// same request ID, the server can check if original operation with the
118605// same request ID was received, and if so, will ignore the second
118606// request. This prevents clients from accidentally creating duplicate
118607// commitments.
118608//
118609// The request ID must be a valid UUID with the exception that zero UUID
118610// is not supported (00000000-0000-0000-0000-000000000000).
118611func (c *ProjectsEnableXpnHostCall) RequestId(requestId string) *ProjectsEnableXpnHostCall {
118612	c.urlParams_.Set("requestId", requestId)
118613	return c
118614}
118615
118616// Fields allows partial responses to be retrieved. See
118617// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
118618// for more information.
118619func (c *ProjectsEnableXpnHostCall) Fields(s ...googleapi.Field) *ProjectsEnableXpnHostCall {
118620	c.urlParams_.Set("fields", googleapi.CombineFields(s))
118621	return c
118622}
118623
118624// Context sets the context to be used in this call's Do method. Any
118625// pending HTTP request will be aborted if the provided context is
118626// canceled.
118627func (c *ProjectsEnableXpnHostCall) Context(ctx context.Context) *ProjectsEnableXpnHostCall {
118628	c.ctx_ = ctx
118629	return c
118630}
118631
118632// Header returns an http.Header that can be modified by the caller to
118633// add HTTP headers to the request.
118634func (c *ProjectsEnableXpnHostCall) Header() http.Header {
118635	if c.header_ == nil {
118636		c.header_ = make(http.Header)
118637	}
118638	return c.header_
118639}
118640
118641func (c *ProjectsEnableXpnHostCall) doRequest(alt string) (*http.Response, error) {
118642	reqHeaders := make(http.Header)
118643	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
118644	for k, v := range c.header_ {
118645		reqHeaders[k] = v
118646	}
118647	reqHeaders.Set("User-Agent", c.s.userAgent())
118648	var body io.Reader = nil
118649	c.urlParams_.Set("alt", alt)
118650	c.urlParams_.Set("prettyPrint", "false")
118651	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/enableXpnHost")
118652	urls += "?" + c.urlParams_.Encode()
118653	req, err := http.NewRequest("POST", urls, body)
118654	if err != nil {
118655		return nil, err
118656	}
118657	req.Header = reqHeaders
118658	googleapi.Expand(req.URL, map[string]string{
118659		"project": c.project,
118660	})
118661	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118662}
118663
118664// Do executes the "compute.projects.enableXpnHost" call.
118665// Exactly one of *Operation or error will be non-nil. Any non-2xx
118666// status code is an error. Response headers are in either
118667// *Operation.ServerResponse.Header or (if a response was returned at
118668// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
118669// to check whether the returned error was because
118670// http.StatusNotModified was returned.
118671func (c *ProjectsEnableXpnHostCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
118672	gensupport.SetOptions(c.urlParams_, opts...)
118673	res, err := c.doRequest("json")
118674	if res != nil && res.StatusCode == http.StatusNotModified {
118675		if res.Body != nil {
118676			res.Body.Close()
118677		}
118678		return nil, &googleapi.Error{
118679			Code:   res.StatusCode,
118680			Header: res.Header,
118681		}
118682	}
118683	if err != nil {
118684		return nil, err
118685	}
118686	defer googleapi.CloseBody(res)
118687	if err := googleapi.CheckResponse(res); err != nil {
118688		return nil, err
118689	}
118690	ret := &Operation{
118691		ServerResponse: googleapi.ServerResponse{
118692			Header:         res.Header,
118693			HTTPStatusCode: res.StatusCode,
118694		},
118695	}
118696	target := &ret
118697	if err := gensupport.DecodeResponse(target, res); err != nil {
118698		return nil, err
118699	}
118700	return ret, nil
118701	// {
118702	//   "description": "Enable this project as a shared VPC host project.",
118703	//   "httpMethod": "POST",
118704	//   "id": "compute.projects.enableXpnHost",
118705	//   "parameterOrder": [
118706	//     "project"
118707	//   ],
118708	//   "parameters": {
118709	//     "project": {
118710	//       "description": "Project ID for this request.",
118711	//       "location": "path",
118712	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
118713	//       "required": true,
118714	//       "type": "string"
118715	//     },
118716	//     "requestId": {
118717	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
118718	//       "location": "query",
118719	//       "type": "string"
118720	//     }
118721	//   },
118722	//   "path": "projects/{project}/enableXpnHost",
118723	//   "response": {
118724	//     "$ref": "Operation"
118725	//   },
118726	//   "scopes": [
118727	//     "https://www.googleapis.com/auth/cloud-platform",
118728	//     "https://www.googleapis.com/auth/compute"
118729	//   ]
118730	// }
118731
118732}
118733
118734// method id "compute.projects.enableXpnResource":
118735
118736type ProjectsEnableXpnResourceCall struct {
118737	s                                *Service
118738	project                          string
118739	projectsenablexpnresourcerequest *ProjectsEnableXpnResourceRequest
118740	urlParams_                       gensupport.URLParams
118741	ctx_                             context.Context
118742	header_                          http.Header
118743}
118744
118745// EnableXpnResource: Enable service resource (a.k.a service project)
118746// for a host project, so that subnets in the host project can be used
118747// by instances in the service project.
118748func (r *ProjectsService) EnableXpnResource(project string, projectsenablexpnresourcerequest *ProjectsEnableXpnResourceRequest) *ProjectsEnableXpnResourceCall {
118749	c := &ProjectsEnableXpnResourceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
118750	c.project = project
118751	c.projectsenablexpnresourcerequest = projectsenablexpnresourcerequest
118752	return c
118753}
118754
118755// RequestId sets the optional parameter "requestId": An optional
118756// request ID to identify requests. Specify a unique request ID so that
118757// if you must retry your request, the server will know to ignore the
118758// request if it has already been completed.
118759//
118760// For example, consider a situation where you make an initial request
118761// and the request times out. If you make the request again with the
118762// same request ID, the server can check if original operation with the
118763// same request ID was received, and if so, will ignore the second
118764// request. This prevents clients from accidentally creating duplicate
118765// commitments.
118766//
118767// The request ID must be a valid UUID with the exception that zero UUID
118768// is not supported (00000000-0000-0000-0000-000000000000).
118769func (c *ProjectsEnableXpnResourceCall) RequestId(requestId string) *ProjectsEnableXpnResourceCall {
118770	c.urlParams_.Set("requestId", requestId)
118771	return c
118772}
118773
118774// Fields allows partial responses to be retrieved. See
118775// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
118776// for more information.
118777func (c *ProjectsEnableXpnResourceCall) Fields(s ...googleapi.Field) *ProjectsEnableXpnResourceCall {
118778	c.urlParams_.Set("fields", googleapi.CombineFields(s))
118779	return c
118780}
118781
118782// Context sets the context to be used in this call's Do method. Any
118783// pending HTTP request will be aborted if the provided context is
118784// canceled.
118785func (c *ProjectsEnableXpnResourceCall) Context(ctx context.Context) *ProjectsEnableXpnResourceCall {
118786	c.ctx_ = ctx
118787	return c
118788}
118789
118790// Header returns an http.Header that can be modified by the caller to
118791// add HTTP headers to the request.
118792func (c *ProjectsEnableXpnResourceCall) Header() http.Header {
118793	if c.header_ == nil {
118794		c.header_ = make(http.Header)
118795	}
118796	return c.header_
118797}
118798
118799func (c *ProjectsEnableXpnResourceCall) doRequest(alt string) (*http.Response, error) {
118800	reqHeaders := make(http.Header)
118801	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
118802	for k, v := range c.header_ {
118803		reqHeaders[k] = v
118804	}
118805	reqHeaders.Set("User-Agent", c.s.userAgent())
118806	var body io.Reader = nil
118807	body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectsenablexpnresourcerequest)
118808	if err != nil {
118809		return nil, err
118810	}
118811	reqHeaders.Set("Content-Type", "application/json")
118812	c.urlParams_.Set("alt", alt)
118813	c.urlParams_.Set("prettyPrint", "false")
118814	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/enableXpnResource")
118815	urls += "?" + c.urlParams_.Encode()
118816	req, err := http.NewRequest("POST", urls, body)
118817	if err != nil {
118818		return nil, err
118819	}
118820	req.Header = reqHeaders
118821	googleapi.Expand(req.URL, map[string]string{
118822		"project": c.project,
118823	})
118824	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118825}
118826
118827// Do executes the "compute.projects.enableXpnResource" call.
118828// Exactly one of *Operation or error will be non-nil. Any non-2xx
118829// status code is an error. Response headers are in either
118830// *Operation.ServerResponse.Header or (if a response was returned at
118831// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
118832// to check whether the returned error was because
118833// http.StatusNotModified was returned.
118834func (c *ProjectsEnableXpnResourceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
118835	gensupport.SetOptions(c.urlParams_, opts...)
118836	res, err := c.doRequest("json")
118837	if res != nil && res.StatusCode == http.StatusNotModified {
118838		if res.Body != nil {
118839			res.Body.Close()
118840		}
118841		return nil, &googleapi.Error{
118842			Code:   res.StatusCode,
118843			Header: res.Header,
118844		}
118845	}
118846	if err != nil {
118847		return nil, err
118848	}
118849	defer googleapi.CloseBody(res)
118850	if err := googleapi.CheckResponse(res); err != nil {
118851		return nil, err
118852	}
118853	ret := &Operation{
118854		ServerResponse: googleapi.ServerResponse{
118855			Header:         res.Header,
118856			HTTPStatusCode: res.StatusCode,
118857		},
118858	}
118859	target := &ret
118860	if err := gensupport.DecodeResponse(target, res); err != nil {
118861		return nil, err
118862	}
118863	return ret, nil
118864	// {
118865	//   "description": "Enable service resource (a.k.a service project) for a host project, so that subnets in the host project can be used by instances in the service project.",
118866	//   "httpMethod": "POST",
118867	//   "id": "compute.projects.enableXpnResource",
118868	//   "parameterOrder": [
118869	//     "project"
118870	//   ],
118871	//   "parameters": {
118872	//     "project": {
118873	//       "description": "Project ID for this request.",
118874	//       "location": "path",
118875	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
118876	//       "required": true,
118877	//       "type": "string"
118878	//     },
118879	//     "requestId": {
118880	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
118881	//       "location": "query",
118882	//       "type": "string"
118883	//     }
118884	//   },
118885	//   "path": "projects/{project}/enableXpnResource",
118886	//   "request": {
118887	//     "$ref": "ProjectsEnableXpnResourceRequest"
118888	//   },
118889	//   "response": {
118890	//     "$ref": "Operation"
118891	//   },
118892	//   "scopes": [
118893	//     "https://www.googleapis.com/auth/cloud-platform",
118894	//     "https://www.googleapis.com/auth/compute"
118895	//   ]
118896	// }
118897
118898}
118899
118900// method id "compute.projects.get":
118901
118902type ProjectsGetCall struct {
118903	s            *Service
118904	project      string
118905	urlParams_   gensupport.URLParams
118906	ifNoneMatch_ string
118907	ctx_         context.Context
118908	header_      http.Header
118909}
118910
118911// Get: Returns the specified Project resource.
118912// For details, see https://cloud.google.com/compute/docs/reference/latest/projects/get
118913func (r *ProjectsService) Get(project string) *ProjectsGetCall {
118914	c := &ProjectsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
118915	c.project = project
118916	return c
118917}
118918
118919// Fields allows partial responses to be retrieved. See
118920// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
118921// for more information.
118922func (c *ProjectsGetCall) Fields(s ...googleapi.Field) *ProjectsGetCall {
118923	c.urlParams_.Set("fields", googleapi.CombineFields(s))
118924	return c
118925}
118926
118927// IfNoneMatch sets the optional parameter which makes the operation
118928// fail if the object's ETag matches the given value. This is useful for
118929// getting updates only after the object has changed since the last
118930// request. Use googleapi.IsNotModified to check whether the response
118931// error from Do is the result of In-None-Match.
118932func (c *ProjectsGetCall) IfNoneMatch(entityTag string) *ProjectsGetCall {
118933	c.ifNoneMatch_ = entityTag
118934	return c
118935}
118936
118937// Context sets the context to be used in this call's Do method. Any
118938// pending HTTP request will be aborted if the provided context is
118939// canceled.
118940func (c *ProjectsGetCall) Context(ctx context.Context) *ProjectsGetCall {
118941	c.ctx_ = ctx
118942	return c
118943}
118944
118945// Header returns an http.Header that can be modified by the caller to
118946// add HTTP headers to the request.
118947func (c *ProjectsGetCall) Header() http.Header {
118948	if c.header_ == nil {
118949		c.header_ = make(http.Header)
118950	}
118951	return c.header_
118952}
118953
118954func (c *ProjectsGetCall) doRequest(alt string) (*http.Response, error) {
118955	reqHeaders := make(http.Header)
118956	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
118957	for k, v := range c.header_ {
118958		reqHeaders[k] = v
118959	}
118960	reqHeaders.Set("User-Agent", c.s.userAgent())
118961	if c.ifNoneMatch_ != "" {
118962		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
118963	}
118964	var body io.Reader = nil
118965	c.urlParams_.Set("alt", alt)
118966	c.urlParams_.Set("prettyPrint", "false")
118967	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}")
118968	urls += "?" + c.urlParams_.Encode()
118969	req, err := http.NewRequest("GET", urls, body)
118970	if err != nil {
118971		return nil, err
118972	}
118973	req.Header = reqHeaders
118974	googleapi.Expand(req.URL, map[string]string{
118975		"project": c.project,
118976	})
118977	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118978}
118979
118980// Do executes the "compute.projects.get" call.
118981// Exactly one of *Project or error will be non-nil. Any non-2xx status
118982// code is an error. Response headers are in either
118983// *Project.ServerResponse.Header or (if a response was returned at all)
118984// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
118985// check whether the returned error was because http.StatusNotModified
118986// was returned.
118987func (c *ProjectsGetCall) Do(opts ...googleapi.CallOption) (*Project, error) {
118988	gensupport.SetOptions(c.urlParams_, opts...)
118989	res, err := c.doRequest("json")
118990	if res != nil && res.StatusCode == http.StatusNotModified {
118991		if res.Body != nil {
118992			res.Body.Close()
118993		}
118994		return nil, &googleapi.Error{
118995			Code:   res.StatusCode,
118996			Header: res.Header,
118997		}
118998	}
118999	if err != nil {
119000		return nil, err
119001	}
119002	defer googleapi.CloseBody(res)
119003	if err := googleapi.CheckResponse(res); err != nil {
119004		return nil, err
119005	}
119006	ret := &Project{
119007		ServerResponse: googleapi.ServerResponse{
119008			Header:         res.Header,
119009			HTTPStatusCode: res.StatusCode,
119010		},
119011	}
119012	target := &ret
119013	if err := gensupport.DecodeResponse(target, res); err != nil {
119014		return nil, err
119015	}
119016	return ret, nil
119017	// {
119018	//   "description": "Returns the specified Project resource.",
119019	//   "httpMethod": "GET",
119020	//   "id": "compute.projects.get",
119021	//   "parameterOrder": [
119022	//     "project"
119023	//   ],
119024	//   "parameters": {
119025	//     "project": {
119026	//       "description": "Project ID for this request.",
119027	//       "location": "path",
119028	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
119029	//       "required": true,
119030	//       "type": "string"
119031	//     }
119032	//   },
119033	//   "path": "projects/{project}",
119034	//   "response": {
119035	//     "$ref": "Project"
119036	//   },
119037	//   "scopes": [
119038	//     "https://www.googleapis.com/auth/cloud-platform",
119039	//     "https://www.googleapis.com/auth/compute",
119040	//     "https://www.googleapis.com/auth/compute.readonly"
119041	//   ]
119042	// }
119043
119044}
119045
119046// method id "compute.projects.getXpnHost":
119047
119048type ProjectsGetXpnHostCall struct {
119049	s            *Service
119050	project      string
119051	urlParams_   gensupport.URLParams
119052	ifNoneMatch_ string
119053	ctx_         context.Context
119054	header_      http.Header
119055}
119056
119057// GetXpnHost: Gets the shared VPC host project that this project links
119058// to. May be empty if no link exists.
119059func (r *ProjectsService) GetXpnHost(project string) *ProjectsGetXpnHostCall {
119060	c := &ProjectsGetXpnHostCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119061	c.project = project
119062	return c
119063}
119064
119065// Fields allows partial responses to be retrieved. See
119066// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119067// for more information.
119068func (c *ProjectsGetXpnHostCall) Fields(s ...googleapi.Field) *ProjectsGetXpnHostCall {
119069	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119070	return c
119071}
119072
119073// IfNoneMatch sets the optional parameter which makes the operation
119074// fail if the object's ETag matches the given value. This is useful for
119075// getting updates only after the object has changed since the last
119076// request. Use googleapi.IsNotModified to check whether the response
119077// error from Do is the result of In-None-Match.
119078func (c *ProjectsGetXpnHostCall) IfNoneMatch(entityTag string) *ProjectsGetXpnHostCall {
119079	c.ifNoneMatch_ = entityTag
119080	return c
119081}
119082
119083// Context sets the context to be used in this call's Do method. Any
119084// pending HTTP request will be aborted if the provided context is
119085// canceled.
119086func (c *ProjectsGetXpnHostCall) Context(ctx context.Context) *ProjectsGetXpnHostCall {
119087	c.ctx_ = ctx
119088	return c
119089}
119090
119091// Header returns an http.Header that can be modified by the caller to
119092// add HTTP headers to the request.
119093func (c *ProjectsGetXpnHostCall) Header() http.Header {
119094	if c.header_ == nil {
119095		c.header_ = make(http.Header)
119096	}
119097	return c.header_
119098}
119099
119100func (c *ProjectsGetXpnHostCall) doRequest(alt string) (*http.Response, error) {
119101	reqHeaders := make(http.Header)
119102	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
119103	for k, v := range c.header_ {
119104		reqHeaders[k] = v
119105	}
119106	reqHeaders.Set("User-Agent", c.s.userAgent())
119107	if c.ifNoneMatch_ != "" {
119108		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
119109	}
119110	var body io.Reader = nil
119111	c.urlParams_.Set("alt", alt)
119112	c.urlParams_.Set("prettyPrint", "false")
119113	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/getXpnHost")
119114	urls += "?" + c.urlParams_.Encode()
119115	req, err := http.NewRequest("GET", urls, body)
119116	if err != nil {
119117		return nil, err
119118	}
119119	req.Header = reqHeaders
119120	googleapi.Expand(req.URL, map[string]string{
119121		"project": c.project,
119122	})
119123	return gensupport.SendRequest(c.ctx_, c.s.client, req)
119124}
119125
119126// Do executes the "compute.projects.getXpnHost" call.
119127// Exactly one of *Project or error will be non-nil. Any non-2xx status
119128// code is an error. Response headers are in either
119129// *Project.ServerResponse.Header or (if a response was returned at all)
119130// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
119131// check whether the returned error was because http.StatusNotModified
119132// was returned.
119133func (c *ProjectsGetXpnHostCall) Do(opts ...googleapi.CallOption) (*Project, error) {
119134	gensupport.SetOptions(c.urlParams_, opts...)
119135	res, err := c.doRequest("json")
119136	if res != nil && res.StatusCode == http.StatusNotModified {
119137		if res.Body != nil {
119138			res.Body.Close()
119139		}
119140		return nil, &googleapi.Error{
119141			Code:   res.StatusCode,
119142			Header: res.Header,
119143		}
119144	}
119145	if err != nil {
119146		return nil, err
119147	}
119148	defer googleapi.CloseBody(res)
119149	if err := googleapi.CheckResponse(res); err != nil {
119150		return nil, err
119151	}
119152	ret := &Project{
119153		ServerResponse: googleapi.ServerResponse{
119154			Header:         res.Header,
119155			HTTPStatusCode: res.StatusCode,
119156		},
119157	}
119158	target := &ret
119159	if err := gensupport.DecodeResponse(target, res); err != nil {
119160		return nil, err
119161	}
119162	return ret, nil
119163	// {
119164	//   "description": "Gets the shared VPC host project that this project links to. May be empty if no link exists.",
119165	//   "httpMethod": "GET",
119166	//   "id": "compute.projects.getXpnHost",
119167	//   "parameterOrder": [
119168	//     "project"
119169	//   ],
119170	//   "parameters": {
119171	//     "project": {
119172	//       "description": "Project ID for this request.",
119173	//       "location": "path",
119174	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
119175	//       "required": true,
119176	//       "type": "string"
119177	//     }
119178	//   },
119179	//   "path": "projects/{project}/getXpnHost",
119180	//   "response": {
119181	//     "$ref": "Project"
119182	//   },
119183	//   "scopes": [
119184	//     "https://www.googleapis.com/auth/cloud-platform",
119185	//     "https://www.googleapis.com/auth/compute"
119186	//   ]
119187	// }
119188
119189}
119190
119191// method id "compute.projects.getXpnResources":
119192
119193type ProjectsGetXpnResourcesCall struct {
119194	s            *Service
119195	project      string
119196	urlParams_   gensupport.URLParams
119197	ifNoneMatch_ string
119198	ctx_         context.Context
119199	header_      http.Header
119200}
119201
119202// GetXpnResources: Gets service resources (a.k.a service project)
119203// associated with this host project.
119204func (r *ProjectsService) GetXpnResources(project string) *ProjectsGetXpnResourcesCall {
119205	c := &ProjectsGetXpnResourcesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119206	c.project = project
119207	return c
119208}
119209
119210// Filter sets the optional parameter "filter": A filter expression that
119211// filters resources listed in the response. The expression must specify
119212// the field name, a comparison operator, and the value that you want to
119213// use for filtering. The value must be a string, a number, or a
119214// boolean. The comparison operator must be either `=`, `!=`, `>`, or
119215// `<`.
119216//
119217// For example, if you are filtering Compute Engine instances, you can
119218// exclude instances named `example-instance` by specifying `name !=
119219// example-instance`.
119220//
119221// You can also filter nested fields. For example, you could specify
119222// `scheduling.automaticRestart = false` to include instances only if
119223// they are not scheduled for automatic restarts. You can use filtering
119224// on nested fields to filter based on resource labels.
119225//
119226// To filter on multiple expressions, provide each separate expression
119227// within parentheses. For example: ``` (scheduling.automaticRestart =
119228// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
119229// is an `AND` expression. However, you can include `AND` and `OR`
119230// expressions explicitly. For example: ``` (cpuPlatform = "Intel
119231// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
119232// (scheduling.automaticRestart = true) ```
119233func (c *ProjectsGetXpnResourcesCall) Filter(filter string) *ProjectsGetXpnResourcesCall {
119234	c.urlParams_.Set("filter", filter)
119235	return c
119236}
119237
119238// MaxResults sets the optional parameter "maxResults": The maximum
119239// number of results per page that should be returned. If the number of
119240// available results is larger than `maxResults`, Compute Engine returns
119241// a `nextPageToken` that can be used to get the next page of results in
119242// subsequent list requests. Acceptable values are `0` to `500`,
119243// inclusive. (Default: `500`)
119244func (c *ProjectsGetXpnResourcesCall) MaxResults(maxResults int64) *ProjectsGetXpnResourcesCall {
119245	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
119246	return c
119247}
119248
119249// OrderBy sets the optional parameter "orderBy": Sorts list results by
119250// a certain order. By default, results are returned in alphanumerical
119251// order based on the resource name.
119252//
119253// You can also sort results in descending order based on the creation
119254// timestamp using `orderBy="creationTimestamp desc". This sorts
119255// results based on the `creationTimestamp` field in reverse
119256// chronological order (newest result first). Use this to sort resources
119257// like operations so that the newest operation is returned
119258// first.
119259//
119260// Currently, only sorting by `name` or `creationTimestamp desc` is
119261// supported.
119262func (c *ProjectsGetXpnResourcesCall) OrderBy(orderBy string) *ProjectsGetXpnResourcesCall {
119263	c.urlParams_.Set("orderBy", orderBy)
119264	return c
119265}
119266
119267// PageToken sets the optional parameter "pageToken": Specifies a page
119268// token to use. Set `pageToken` to the `nextPageToken` returned by a
119269// previous list request to get the next page of results.
119270func (c *ProjectsGetXpnResourcesCall) PageToken(pageToken string) *ProjectsGetXpnResourcesCall {
119271	c.urlParams_.Set("pageToken", pageToken)
119272	return c
119273}
119274
119275// ReturnPartialSuccess sets the optional parameter
119276// "returnPartialSuccess": Opt-in for partial success behavior which
119277// provides partial results in case of failure. The default value is
119278// false.
119279func (c *ProjectsGetXpnResourcesCall) ReturnPartialSuccess(returnPartialSuccess bool) *ProjectsGetXpnResourcesCall {
119280	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
119281	return c
119282}
119283
119284// Fields allows partial responses to be retrieved. See
119285// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119286// for more information.
119287func (c *ProjectsGetXpnResourcesCall) Fields(s ...googleapi.Field) *ProjectsGetXpnResourcesCall {
119288	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119289	return c
119290}
119291
119292// IfNoneMatch sets the optional parameter which makes the operation
119293// fail if the object's ETag matches the given value. This is useful for
119294// getting updates only after the object has changed since the last
119295// request. Use googleapi.IsNotModified to check whether the response
119296// error from Do is the result of In-None-Match.
119297func (c *ProjectsGetXpnResourcesCall) IfNoneMatch(entityTag string) *ProjectsGetXpnResourcesCall {
119298	c.ifNoneMatch_ = entityTag
119299	return c
119300}
119301
119302// Context sets the context to be used in this call's Do method. Any
119303// pending HTTP request will be aborted if the provided context is
119304// canceled.
119305func (c *ProjectsGetXpnResourcesCall) Context(ctx context.Context) *ProjectsGetXpnResourcesCall {
119306	c.ctx_ = ctx
119307	return c
119308}
119309
119310// Header returns an http.Header that can be modified by the caller to
119311// add HTTP headers to the request.
119312func (c *ProjectsGetXpnResourcesCall) Header() http.Header {
119313	if c.header_ == nil {
119314		c.header_ = make(http.Header)
119315	}
119316	return c.header_
119317}
119318
119319func (c *ProjectsGetXpnResourcesCall) doRequest(alt string) (*http.Response, error) {
119320	reqHeaders := make(http.Header)
119321	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
119322	for k, v := range c.header_ {
119323		reqHeaders[k] = v
119324	}
119325	reqHeaders.Set("User-Agent", c.s.userAgent())
119326	if c.ifNoneMatch_ != "" {
119327		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
119328	}
119329	var body io.Reader = nil
119330	c.urlParams_.Set("alt", alt)
119331	c.urlParams_.Set("prettyPrint", "false")
119332	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/getXpnResources")
119333	urls += "?" + c.urlParams_.Encode()
119334	req, err := http.NewRequest("GET", urls, body)
119335	if err != nil {
119336		return nil, err
119337	}
119338	req.Header = reqHeaders
119339	googleapi.Expand(req.URL, map[string]string{
119340		"project": c.project,
119341	})
119342	return gensupport.SendRequest(c.ctx_, c.s.client, req)
119343}
119344
119345// Do executes the "compute.projects.getXpnResources" call.
119346// Exactly one of *ProjectsGetXpnResources or error will be non-nil. Any
119347// non-2xx status code is an error. Response headers are in either
119348// *ProjectsGetXpnResources.ServerResponse.Header or (if a response was
119349// returned at all) in error.(*googleapi.Error).Header. Use
119350// googleapi.IsNotModified to check whether the returned error was
119351// because http.StatusNotModified was returned.
119352func (c *ProjectsGetXpnResourcesCall) Do(opts ...googleapi.CallOption) (*ProjectsGetXpnResources, error) {
119353	gensupport.SetOptions(c.urlParams_, opts...)
119354	res, err := c.doRequest("json")
119355	if res != nil && res.StatusCode == http.StatusNotModified {
119356		if res.Body != nil {
119357			res.Body.Close()
119358		}
119359		return nil, &googleapi.Error{
119360			Code:   res.StatusCode,
119361			Header: res.Header,
119362		}
119363	}
119364	if err != nil {
119365		return nil, err
119366	}
119367	defer googleapi.CloseBody(res)
119368	if err := googleapi.CheckResponse(res); err != nil {
119369		return nil, err
119370	}
119371	ret := &ProjectsGetXpnResources{
119372		ServerResponse: googleapi.ServerResponse{
119373			Header:         res.Header,
119374			HTTPStatusCode: res.StatusCode,
119375		},
119376	}
119377	target := &ret
119378	if err := gensupport.DecodeResponse(target, res); err != nil {
119379		return nil, err
119380	}
119381	return ret, nil
119382	// {
119383	//   "description": "Gets service resources (a.k.a service project) associated with this host project.",
119384	//   "httpMethod": "GET",
119385	//   "id": "compute.projects.getXpnResources",
119386	//   "parameterOrder": [
119387	//     "project"
119388	//   ],
119389	//   "parameters": {
119390	//     "filter": {
119391	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
119392	//       "location": "query",
119393	//       "type": "string"
119394	//     },
119395	//     "maxResults": {
119396	//       "default": "500",
119397	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
119398	//       "format": "uint32",
119399	//       "location": "query",
119400	//       "minimum": "0",
119401	//       "type": "integer"
119402	//     },
119403	//     "orderBy": {
119404	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
119405	//       "location": "query",
119406	//       "type": "string"
119407	//     },
119408	//     "pageToken": {
119409	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
119410	//       "location": "query",
119411	//       "type": "string"
119412	//     },
119413	//     "project": {
119414	//       "description": "Project ID for this request.",
119415	//       "location": "path",
119416	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
119417	//       "required": true,
119418	//       "type": "string"
119419	//     },
119420	//     "returnPartialSuccess": {
119421	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
119422	//       "location": "query",
119423	//       "type": "boolean"
119424	//     }
119425	//   },
119426	//   "path": "projects/{project}/getXpnResources",
119427	//   "response": {
119428	//     "$ref": "ProjectsGetXpnResources"
119429	//   },
119430	//   "scopes": [
119431	//     "https://www.googleapis.com/auth/cloud-platform",
119432	//     "https://www.googleapis.com/auth/compute"
119433	//   ]
119434	// }
119435
119436}
119437
119438// Pages invokes f for each page of results.
119439// A non-nil error returned from f will halt the iteration.
119440// The provided context supersedes any context provided to the Context method.
119441func (c *ProjectsGetXpnResourcesCall) Pages(ctx context.Context, f func(*ProjectsGetXpnResources) error) error {
119442	c.ctx_ = ctx
119443	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
119444	for {
119445		x, err := c.Do()
119446		if err != nil {
119447			return err
119448		}
119449		if err := f(x); err != nil {
119450			return err
119451		}
119452		if x.NextPageToken == "" {
119453			return nil
119454		}
119455		c.PageToken(x.NextPageToken)
119456	}
119457}
119458
119459// method id "compute.projects.listXpnHosts":
119460
119461type ProjectsListXpnHostsCall struct {
119462	s                           *Service
119463	project                     string
119464	projectslistxpnhostsrequest *ProjectsListXpnHostsRequest
119465	urlParams_                  gensupport.URLParams
119466	ctx_                        context.Context
119467	header_                     http.Header
119468}
119469
119470// ListXpnHosts: Lists all shared VPC host projects visible to the user
119471// in an organization.
119472func (r *ProjectsService) ListXpnHosts(project string, projectslistxpnhostsrequest *ProjectsListXpnHostsRequest) *ProjectsListXpnHostsCall {
119473	c := &ProjectsListXpnHostsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119474	c.project = project
119475	c.projectslistxpnhostsrequest = projectslistxpnhostsrequest
119476	return c
119477}
119478
119479// Filter sets the optional parameter "filter": A filter expression that
119480// filters resources listed in the response. The expression must specify
119481// the field name, a comparison operator, and the value that you want to
119482// use for filtering. The value must be a string, a number, or a
119483// boolean. The comparison operator must be either `=`, `!=`, `>`, or
119484// `<`.
119485//
119486// For example, if you are filtering Compute Engine instances, you can
119487// exclude instances named `example-instance` by specifying `name !=
119488// example-instance`.
119489//
119490// You can also filter nested fields. For example, you could specify
119491// `scheduling.automaticRestart = false` to include instances only if
119492// they are not scheduled for automatic restarts. You can use filtering
119493// on nested fields to filter based on resource labels.
119494//
119495// To filter on multiple expressions, provide each separate expression
119496// within parentheses. For example: ``` (scheduling.automaticRestart =
119497// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
119498// is an `AND` expression. However, you can include `AND` and `OR`
119499// expressions explicitly. For example: ``` (cpuPlatform = "Intel
119500// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
119501// (scheduling.automaticRestart = true) ```
119502func (c *ProjectsListXpnHostsCall) Filter(filter string) *ProjectsListXpnHostsCall {
119503	c.urlParams_.Set("filter", filter)
119504	return c
119505}
119506
119507// MaxResults sets the optional parameter "maxResults": The maximum
119508// number of results per page that should be returned. If the number of
119509// available results is larger than `maxResults`, Compute Engine returns
119510// a `nextPageToken` that can be used to get the next page of results in
119511// subsequent list requests. Acceptable values are `0` to `500`,
119512// inclusive. (Default: `500`)
119513func (c *ProjectsListXpnHostsCall) MaxResults(maxResults int64) *ProjectsListXpnHostsCall {
119514	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
119515	return c
119516}
119517
119518// OrderBy sets the optional parameter "orderBy": Sorts list results by
119519// a certain order. By default, results are returned in alphanumerical
119520// order based on the resource name.
119521//
119522// You can also sort results in descending order based on the creation
119523// timestamp using `orderBy="creationTimestamp desc". This sorts
119524// results based on the `creationTimestamp` field in reverse
119525// chronological order (newest result first). Use this to sort resources
119526// like operations so that the newest operation is returned
119527// first.
119528//
119529// Currently, only sorting by `name` or `creationTimestamp desc` is
119530// supported.
119531func (c *ProjectsListXpnHostsCall) OrderBy(orderBy string) *ProjectsListXpnHostsCall {
119532	c.urlParams_.Set("orderBy", orderBy)
119533	return c
119534}
119535
119536// PageToken sets the optional parameter "pageToken": Specifies a page
119537// token to use. Set `pageToken` to the `nextPageToken` returned by a
119538// previous list request to get the next page of results.
119539func (c *ProjectsListXpnHostsCall) PageToken(pageToken string) *ProjectsListXpnHostsCall {
119540	c.urlParams_.Set("pageToken", pageToken)
119541	return c
119542}
119543
119544// ReturnPartialSuccess sets the optional parameter
119545// "returnPartialSuccess": Opt-in for partial success behavior which
119546// provides partial results in case of failure. The default value is
119547// false.
119548func (c *ProjectsListXpnHostsCall) ReturnPartialSuccess(returnPartialSuccess bool) *ProjectsListXpnHostsCall {
119549	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
119550	return c
119551}
119552
119553// Fields allows partial responses to be retrieved. See
119554// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119555// for more information.
119556func (c *ProjectsListXpnHostsCall) Fields(s ...googleapi.Field) *ProjectsListXpnHostsCall {
119557	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119558	return c
119559}
119560
119561// Context sets the context to be used in this call's Do method. Any
119562// pending HTTP request will be aborted if the provided context is
119563// canceled.
119564func (c *ProjectsListXpnHostsCall) Context(ctx context.Context) *ProjectsListXpnHostsCall {
119565	c.ctx_ = ctx
119566	return c
119567}
119568
119569// Header returns an http.Header that can be modified by the caller to
119570// add HTTP headers to the request.
119571func (c *ProjectsListXpnHostsCall) Header() http.Header {
119572	if c.header_ == nil {
119573		c.header_ = make(http.Header)
119574	}
119575	return c.header_
119576}
119577
119578func (c *ProjectsListXpnHostsCall) doRequest(alt string) (*http.Response, error) {
119579	reqHeaders := make(http.Header)
119580	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
119581	for k, v := range c.header_ {
119582		reqHeaders[k] = v
119583	}
119584	reqHeaders.Set("User-Agent", c.s.userAgent())
119585	var body io.Reader = nil
119586	body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectslistxpnhostsrequest)
119587	if err != nil {
119588		return nil, err
119589	}
119590	reqHeaders.Set("Content-Type", "application/json")
119591	c.urlParams_.Set("alt", alt)
119592	c.urlParams_.Set("prettyPrint", "false")
119593	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/listXpnHosts")
119594	urls += "?" + c.urlParams_.Encode()
119595	req, err := http.NewRequest("POST", urls, body)
119596	if err != nil {
119597		return nil, err
119598	}
119599	req.Header = reqHeaders
119600	googleapi.Expand(req.URL, map[string]string{
119601		"project": c.project,
119602	})
119603	return gensupport.SendRequest(c.ctx_, c.s.client, req)
119604}
119605
119606// Do executes the "compute.projects.listXpnHosts" call.
119607// Exactly one of *XpnHostList or error will be non-nil. Any non-2xx
119608// status code is an error. Response headers are in either
119609// *XpnHostList.ServerResponse.Header or (if a response was returned at
119610// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
119611// to check whether the returned error was because
119612// http.StatusNotModified was returned.
119613func (c *ProjectsListXpnHostsCall) Do(opts ...googleapi.CallOption) (*XpnHostList, error) {
119614	gensupport.SetOptions(c.urlParams_, opts...)
119615	res, err := c.doRequest("json")
119616	if res != nil && res.StatusCode == http.StatusNotModified {
119617		if res.Body != nil {
119618			res.Body.Close()
119619		}
119620		return nil, &googleapi.Error{
119621			Code:   res.StatusCode,
119622			Header: res.Header,
119623		}
119624	}
119625	if err != nil {
119626		return nil, err
119627	}
119628	defer googleapi.CloseBody(res)
119629	if err := googleapi.CheckResponse(res); err != nil {
119630		return nil, err
119631	}
119632	ret := &XpnHostList{
119633		ServerResponse: googleapi.ServerResponse{
119634			Header:         res.Header,
119635			HTTPStatusCode: res.StatusCode,
119636		},
119637	}
119638	target := &ret
119639	if err := gensupport.DecodeResponse(target, res); err != nil {
119640		return nil, err
119641	}
119642	return ret, nil
119643	// {
119644	//   "description": "Lists all shared VPC host projects visible to the user in an organization.",
119645	//   "httpMethod": "POST",
119646	//   "id": "compute.projects.listXpnHosts",
119647	//   "parameterOrder": [
119648	//     "project"
119649	//   ],
119650	//   "parameters": {
119651	//     "filter": {
119652	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
119653	//       "location": "query",
119654	//       "type": "string"
119655	//     },
119656	//     "maxResults": {
119657	//       "default": "500",
119658	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
119659	//       "format": "uint32",
119660	//       "location": "query",
119661	//       "minimum": "0",
119662	//       "type": "integer"
119663	//     },
119664	//     "orderBy": {
119665	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
119666	//       "location": "query",
119667	//       "type": "string"
119668	//     },
119669	//     "pageToken": {
119670	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
119671	//       "location": "query",
119672	//       "type": "string"
119673	//     },
119674	//     "project": {
119675	//       "description": "Project ID for this request.",
119676	//       "location": "path",
119677	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
119678	//       "required": true,
119679	//       "type": "string"
119680	//     },
119681	//     "returnPartialSuccess": {
119682	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
119683	//       "location": "query",
119684	//       "type": "boolean"
119685	//     }
119686	//   },
119687	//   "path": "projects/{project}/listXpnHosts",
119688	//   "request": {
119689	//     "$ref": "ProjectsListXpnHostsRequest"
119690	//   },
119691	//   "response": {
119692	//     "$ref": "XpnHostList"
119693	//   },
119694	//   "scopes": [
119695	//     "https://www.googleapis.com/auth/cloud-platform",
119696	//     "https://www.googleapis.com/auth/compute"
119697	//   ]
119698	// }
119699
119700}
119701
119702// Pages invokes f for each page of results.
119703// A non-nil error returned from f will halt the iteration.
119704// The provided context supersedes any context provided to the Context method.
119705func (c *ProjectsListXpnHostsCall) Pages(ctx context.Context, f func(*XpnHostList) error) error {
119706	c.ctx_ = ctx
119707	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
119708	for {
119709		x, err := c.Do()
119710		if err != nil {
119711			return err
119712		}
119713		if err := f(x); err != nil {
119714			return err
119715		}
119716		if x.NextPageToken == "" {
119717			return nil
119718		}
119719		c.PageToken(x.NextPageToken)
119720	}
119721}
119722
119723// method id "compute.projects.moveDisk":
119724
119725type ProjectsMoveDiskCall struct {
119726	s               *Service
119727	project         string
119728	diskmoverequest *DiskMoveRequest
119729	urlParams_      gensupport.URLParams
119730	ctx_            context.Context
119731	header_         http.Header
119732}
119733
119734// MoveDisk: Moves a persistent disk from one zone to another.
119735func (r *ProjectsService) MoveDisk(project string, diskmoverequest *DiskMoveRequest) *ProjectsMoveDiskCall {
119736	c := &ProjectsMoveDiskCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119737	c.project = project
119738	c.diskmoverequest = diskmoverequest
119739	return c
119740}
119741
119742// RequestId sets the optional parameter "requestId": An optional
119743// request ID to identify requests. Specify a unique request ID so that
119744// if you must retry your request, the server will know to ignore the
119745// request if it has already been completed.
119746//
119747// For example, consider a situation where you make an initial request
119748// and the request times out. If you make the request again with the
119749// same request ID, the server can check if original operation with the
119750// same request ID was received, and if so, will ignore the second
119751// request. This prevents clients from accidentally creating duplicate
119752// commitments.
119753//
119754// The request ID must be a valid UUID with the exception that zero UUID
119755// is not supported (00000000-0000-0000-0000-000000000000).
119756func (c *ProjectsMoveDiskCall) RequestId(requestId string) *ProjectsMoveDiskCall {
119757	c.urlParams_.Set("requestId", requestId)
119758	return c
119759}
119760
119761// Fields allows partial responses to be retrieved. See
119762// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119763// for more information.
119764func (c *ProjectsMoveDiskCall) Fields(s ...googleapi.Field) *ProjectsMoveDiskCall {
119765	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119766	return c
119767}
119768
119769// Context sets the context to be used in this call's Do method. Any
119770// pending HTTP request will be aborted if the provided context is
119771// canceled.
119772func (c *ProjectsMoveDiskCall) Context(ctx context.Context) *ProjectsMoveDiskCall {
119773	c.ctx_ = ctx
119774	return c
119775}
119776
119777// Header returns an http.Header that can be modified by the caller to
119778// add HTTP headers to the request.
119779func (c *ProjectsMoveDiskCall) Header() http.Header {
119780	if c.header_ == nil {
119781		c.header_ = make(http.Header)
119782	}
119783	return c.header_
119784}
119785
119786func (c *ProjectsMoveDiskCall) doRequest(alt string) (*http.Response, error) {
119787	reqHeaders := make(http.Header)
119788	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
119789	for k, v := range c.header_ {
119790		reqHeaders[k] = v
119791	}
119792	reqHeaders.Set("User-Agent", c.s.userAgent())
119793	var body io.Reader = nil
119794	body, err := googleapi.WithoutDataWrapper.JSONReader(c.diskmoverequest)
119795	if err != nil {
119796		return nil, err
119797	}
119798	reqHeaders.Set("Content-Type", "application/json")
119799	c.urlParams_.Set("alt", alt)
119800	c.urlParams_.Set("prettyPrint", "false")
119801	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/moveDisk")
119802	urls += "?" + c.urlParams_.Encode()
119803	req, err := http.NewRequest("POST", urls, body)
119804	if err != nil {
119805		return nil, err
119806	}
119807	req.Header = reqHeaders
119808	googleapi.Expand(req.URL, map[string]string{
119809		"project": c.project,
119810	})
119811	return gensupport.SendRequest(c.ctx_, c.s.client, req)
119812}
119813
119814// Do executes the "compute.projects.moveDisk" call.
119815// Exactly one of *Operation or error will be non-nil. Any non-2xx
119816// status code is an error. Response headers are in either
119817// *Operation.ServerResponse.Header or (if a response was returned at
119818// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
119819// to check whether the returned error was because
119820// http.StatusNotModified was returned.
119821func (c *ProjectsMoveDiskCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
119822	gensupport.SetOptions(c.urlParams_, opts...)
119823	res, err := c.doRequest("json")
119824	if res != nil && res.StatusCode == http.StatusNotModified {
119825		if res.Body != nil {
119826			res.Body.Close()
119827		}
119828		return nil, &googleapi.Error{
119829			Code:   res.StatusCode,
119830			Header: res.Header,
119831		}
119832	}
119833	if err != nil {
119834		return nil, err
119835	}
119836	defer googleapi.CloseBody(res)
119837	if err := googleapi.CheckResponse(res); err != nil {
119838		return nil, err
119839	}
119840	ret := &Operation{
119841		ServerResponse: googleapi.ServerResponse{
119842			Header:         res.Header,
119843			HTTPStatusCode: res.StatusCode,
119844		},
119845	}
119846	target := &ret
119847	if err := gensupport.DecodeResponse(target, res); err != nil {
119848		return nil, err
119849	}
119850	return ret, nil
119851	// {
119852	//   "description": "Moves a persistent disk from one zone to another.",
119853	//   "httpMethod": "POST",
119854	//   "id": "compute.projects.moveDisk",
119855	//   "parameterOrder": [
119856	//     "project"
119857	//   ],
119858	//   "parameters": {
119859	//     "project": {
119860	//       "description": "Project ID for this request.",
119861	//       "location": "path",
119862	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
119863	//       "required": true,
119864	//       "type": "string"
119865	//     },
119866	//     "requestId": {
119867	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
119868	//       "location": "query",
119869	//       "type": "string"
119870	//     }
119871	//   },
119872	//   "path": "projects/{project}/moveDisk",
119873	//   "request": {
119874	//     "$ref": "DiskMoveRequest"
119875	//   },
119876	//   "response": {
119877	//     "$ref": "Operation"
119878	//   },
119879	//   "scopes": [
119880	//     "https://www.googleapis.com/auth/cloud-platform",
119881	//     "https://www.googleapis.com/auth/compute"
119882	//   ]
119883	// }
119884
119885}
119886
119887// method id "compute.projects.moveInstance":
119888
119889type ProjectsMoveInstanceCall struct {
119890	s                   *Service
119891	project             string
119892	instancemoverequest *InstanceMoveRequest
119893	urlParams_          gensupport.URLParams
119894	ctx_                context.Context
119895	header_             http.Header
119896}
119897
119898// MoveInstance: Moves an instance and its attached persistent disks
119899// from one zone to another.
119900func (r *ProjectsService) MoveInstance(project string, instancemoverequest *InstanceMoveRequest) *ProjectsMoveInstanceCall {
119901	c := &ProjectsMoveInstanceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119902	c.project = project
119903	c.instancemoverequest = instancemoverequest
119904	return c
119905}
119906
119907// RequestId sets the optional parameter "requestId": An optional
119908// request ID to identify requests. Specify a unique request ID so that
119909// if you must retry your request, the server will know to ignore the
119910// request if it has already been completed.
119911//
119912// For example, consider a situation where you make an initial request
119913// and the request times out. If you make the request again with the
119914// same request ID, the server can check if original operation with the
119915// same request ID was received, and if so, will ignore the second
119916// request. This prevents clients from accidentally creating duplicate
119917// commitments.
119918//
119919// The request ID must be a valid UUID with the exception that zero UUID
119920// is not supported (00000000-0000-0000-0000-000000000000).
119921func (c *ProjectsMoveInstanceCall) RequestId(requestId string) *ProjectsMoveInstanceCall {
119922	c.urlParams_.Set("requestId", requestId)
119923	return c
119924}
119925
119926// Fields allows partial responses to be retrieved. See
119927// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119928// for more information.
119929func (c *ProjectsMoveInstanceCall) Fields(s ...googleapi.Field) *ProjectsMoveInstanceCall {
119930	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119931	return c
119932}
119933
119934// Context sets the context to be used in this call's Do method. Any
119935// pending HTTP request will be aborted if the provided context is
119936// canceled.
119937func (c *ProjectsMoveInstanceCall) Context(ctx context.Context) *ProjectsMoveInstanceCall {
119938	c.ctx_ = ctx
119939	return c
119940}
119941
119942// Header returns an http.Header that can be modified by the caller to
119943// add HTTP headers to the request.
119944func (c *ProjectsMoveInstanceCall) Header() http.Header {
119945	if c.header_ == nil {
119946		c.header_ = make(http.Header)
119947	}
119948	return c.header_
119949}
119950
119951func (c *ProjectsMoveInstanceCall) doRequest(alt string) (*http.Response, error) {
119952	reqHeaders := make(http.Header)
119953	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
119954	for k, v := range c.header_ {
119955		reqHeaders[k] = v
119956	}
119957	reqHeaders.Set("User-Agent", c.s.userAgent())
119958	var body io.Reader = nil
119959	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancemoverequest)
119960	if err != nil {
119961		return nil, err
119962	}
119963	reqHeaders.Set("Content-Type", "application/json")
119964	c.urlParams_.Set("alt", alt)
119965	c.urlParams_.Set("prettyPrint", "false")
119966	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/moveInstance")
119967	urls += "?" + c.urlParams_.Encode()
119968	req, err := http.NewRequest("POST", urls, body)
119969	if err != nil {
119970		return nil, err
119971	}
119972	req.Header = reqHeaders
119973	googleapi.Expand(req.URL, map[string]string{
119974		"project": c.project,
119975	})
119976	return gensupport.SendRequest(c.ctx_, c.s.client, req)
119977}
119978
119979// Do executes the "compute.projects.moveInstance" call.
119980// Exactly one of *Operation or error will be non-nil. Any non-2xx
119981// status code is an error. Response headers are in either
119982// *Operation.ServerResponse.Header or (if a response was returned at
119983// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
119984// to check whether the returned error was because
119985// http.StatusNotModified was returned.
119986func (c *ProjectsMoveInstanceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
119987	gensupport.SetOptions(c.urlParams_, opts...)
119988	res, err := c.doRequest("json")
119989	if res != nil && res.StatusCode == http.StatusNotModified {
119990		if res.Body != nil {
119991			res.Body.Close()
119992		}
119993		return nil, &googleapi.Error{
119994			Code:   res.StatusCode,
119995			Header: res.Header,
119996		}
119997	}
119998	if err != nil {
119999		return nil, err
120000	}
120001	defer googleapi.CloseBody(res)
120002	if err := googleapi.CheckResponse(res); err != nil {
120003		return nil, err
120004	}
120005	ret := &Operation{
120006		ServerResponse: googleapi.ServerResponse{
120007			Header:         res.Header,
120008			HTTPStatusCode: res.StatusCode,
120009		},
120010	}
120011	target := &ret
120012	if err := gensupport.DecodeResponse(target, res); err != nil {
120013		return nil, err
120014	}
120015	return ret, nil
120016	// {
120017	//   "description": "Moves an instance and its attached persistent disks from one zone to another.",
120018	//   "httpMethod": "POST",
120019	//   "id": "compute.projects.moveInstance",
120020	//   "parameterOrder": [
120021	//     "project"
120022	//   ],
120023	//   "parameters": {
120024	//     "project": {
120025	//       "description": "Project ID for this request.",
120026	//       "location": "path",
120027	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120028	//       "required": true,
120029	//       "type": "string"
120030	//     },
120031	//     "requestId": {
120032	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
120033	//       "location": "query",
120034	//       "type": "string"
120035	//     }
120036	//   },
120037	//   "path": "projects/{project}/moveInstance",
120038	//   "request": {
120039	//     "$ref": "InstanceMoveRequest"
120040	//   },
120041	//   "response": {
120042	//     "$ref": "Operation"
120043	//   },
120044	//   "scopes": [
120045	//     "https://www.googleapis.com/auth/cloud-platform",
120046	//     "https://www.googleapis.com/auth/compute"
120047	//   ]
120048	// }
120049
120050}
120051
120052// method id "compute.projects.setCommonInstanceMetadata":
120053
120054type ProjectsSetCommonInstanceMetadataCall struct {
120055	s          *Service
120056	project    string
120057	metadata   *Metadata
120058	urlParams_ gensupport.URLParams
120059	ctx_       context.Context
120060	header_    http.Header
120061}
120062
120063// SetCommonInstanceMetadata: Sets metadata common to all instances
120064// within the specified project using the data included in the request.
120065// For details, see https://cloud.google.com/compute/docs/reference/latest/projects/setCommonInstanceMetadata
120066func (r *ProjectsService) SetCommonInstanceMetadata(project string, metadata *Metadata) *ProjectsSetCommonInstanceMetadataCall {
120067	c := &ProjectsSetCommonInstanceMetadataCall{s: r.s, urlParams_: make(gensupport.URLParams)}
120068	c.project = project
120069	c.metadata = metadata
120070	return c
120071}
120072
120073// RequestId sets the optional parameter "requestId": An optional
120074// request ID to identify requests. Specify a unique request ID so that
120075// if you must retry your request, the server will know to ignore the
120076// request if it has already been completed.
120077//
120078// For example, consider a situation where you make an initial request
120079// and the request times out. If you make the request again with the
120080// same request ID, the server can check if original operation with the
120081// same request ID was received, and if so, will ignore the second
120082// request. This prevents clients from accidentally creating duplicate
120083// commitments.
120084//
120085// The request ID must be a valid UUID with the exception that zero UUID
120086// is not supported (00000000-0000-0000-0000-000000000000).
120087func (c *ProjectsSetCommonInstanceMetadataCall) RequestId(requestId string) *ProjectsSetCommonInstanceMetadataCall {
120088	c.urlParams_.Set("requestId", requestId)
120089	return c
120090}
120091
120092// Fields allows partial responses to be retrieved. See
120093// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
120094// for more information.
120095func (c *ProjectsSetCommonInstanceMetadataCall) Fields(s ...googleapi.Field) *ProjectsSetCommonInstanceMetadataCall {
120096	c.urlParams_.Set("fields", googleapi.CombineFields(s))
120097	return c
120098}
120099
120100// Context sets the context to be used in this call's Do method. Any
120101// pending HTTP request will be aborted if the provided context is
120102// canceled.
120103func (c *ProjectsSetCommonInstanceMetadataCall) Context(ctx context.Context) *ProjectsSetCommonInstanceMetadataCall {
120104	c.ctx_ = ctx
120105	return c
120106}
120107
120108// Header returns an http.Header that can be modified by the caller to
120109// add HTTP headers to the request.
120110func (c *ProjectsSetCommonInstanceMetadataCall) Header() http.Header {
120111	if c.header_ == nil {
120112		c.header_ = make(http.Header)
120113	}
120114	return c.header_
120115}
120116
120117func (c *ProjectsSetCommonInstanceMetadataCall) doRequest(alt string) (*http.Response, error) {
120118	reqHeaders := make(http.Header)
120119	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
120120	for k, v := range c.header_ {
120121		reqHeaders[k] = v
120122	}
120123	reqHeaders.Set("User-Agent", c.s.userAgent())
120124	var body io.Reader = nil
120125	body, err := googleapi.WithoutDataWrapper.JSONReader(c.metadata)
120126	if err != nil {
120127		return nil, err
120128	}
120129	reqHeaders.Set("Content-Type", "application/json")
120130	c.urlParams_.Set("alt", alt)
120131	c.urlParams_.Set("prettyPrint", "false")
120132	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/setCommonInstanceMetadata")
120133	urls += "?" + c.urlParams_.Encode()
120134	req, err := http.NewRequest("POST", urls, body)
120135	if err != nil {
120136		return nil, err
120137	}
120138	req.Header = reqHeaders
120139	googleapi.Expand(req.URL, map[string]string{
120140		"project": c.project,
120141	})
120142	return gensupport.SendRequest(c.ctx_, c.s.client, req)
120143}
120144
120145// Do executes the "compute.projects.setCommonInstanceMetadata" call.
120146// Exactly one of *Operation or error will be non-nil. Any non-2xx
120147// status code is an error. Response headers are in either
120148// *Operation.ServerResponse.Header or (if a response was returned at
120149// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
120150// to check whether the returned error was because
120151// http.StatusNotModified was returned.
120152func (c *ProjectsSetCommonInstanceMetadataCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
120153	gensupport.SetOptions(c.urlParams_, opts...)
120154	res, err := c.doRequest("json")
120155	if res != nil && res.StatusCode == http.StatusNotModified {
120156		if res.Body != nil {
120157			res.Body.Close()
120158		}
120159		return nil, &googleapi.Error{
120160			Code:   res.StatusCode,
120161			Header: res.Header,
120162		}
120163	}
120164	if err != nil {
120165		return nil, err
120166	}
120167	defer googleapi.CloseBody(res)
120168	if err := googleapi.CheckResponse(res); err != nil {
120169		return nil, err
120170	}
120171	ret := &Operation{
120172		ServerResponse: googleapi.ServerResponse{
120173			Header:         res.Header,
120174			HTTPStatusCode: res.StatusCode,
120175		},
120176	}
120177	target := &ret
120178	if err := gensupport.DecodeResponse(target, res); err != nil {
120179		return nil, err
120180	}
120181	return ret, nil
120182	// {
120183	//   "description": "Sets metadata common to all instances within the specified project using the data included in the request.",
120184	//   "httpMethod": "POST",
120185	//   "id": "compute.projects.setCommonInstanceMetadata",
120186	//   "parameterOrder": [
120187	//     "project"
120188	//   ],
120189	//   "parameters": {
120190	//     "project": {
120191	//       "description": "Project ID for this request.",
120192	//       "location": "path",
120193	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120194	//       "required": true,
120195	//       "type": "string"
120196	//     },
120197	//     "requestId": {
120198	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
120199	//       "location": "query",
120200	//       "type": "string"
120201	//     }
120202	//   },
120203	//   "path": "projects/{project}/setCommonInstanceMetadata",
120204	//   "request": {
120205	//     "$ref": "Metadata"
120206	//   },
120207	//   "response": {
120208	//     "$ref": "Operation"
120209	//   },
120210	//   "scopes": [
120211	//     "https://www.googleapis.com/auth/cloud-platform",
120212	//     "https://www.googleapis.com/auth/compute"
120213	//   ]
120214	// }
120215
120216}
120217
120218// method id "compute.projects.setDefaultNetworkTier":
120219
120220type ProjectsSetDefaultNetworkTierCall struct {
120221	s                                    *Service
120222	project                              string
120223	projectssetdefaultnetworktierrequest *ProjectsSetDefaultNetworkTierRequest
120224	urlParams_                           gensupport.URLParams
120225	ctx_                                 context.Context
120226	header_                              http.Header
120227}
120228
120229// SetDefaultNetworkTier: Sets the default network tier of the project.
120230// The default network tier is used when an
120231// address/forwardingRule/instance is created without specifying the
120232// network tier field.
120233func (r *ProjectsService) SetDefaultNetworkTier(project string, projectssetdefaultnetworktierrequest *ProjectsSetDefaultNetworkTierRequest) *ProjectsSetDefaultNetworkTierCall {
120234	c := &ProjectsSetDefaultNetworkTierCall{s: r.s, urlParams_: make(gensupport.URLParams)}
120235	c.project = project
120236	c.projectssetdefaultnetworktierrequest = projectssetdefaultnetworktierrequest
120237	return c
120238}
120239
120240// RequestId sets the optional parameter "requestId": An optional
120241// request ID to identify requests. Specify a unique request ID so that
120242// if you must retry your request, the server will know to ignore the
120243// request if it has already been completed.
120244//
120245// For example, consider a situation where you make an initial request
120246// and the request times out. If you make the request again with the
120247// same request ID, the server can check if original operation with the
120248// same request ID was received, and if so, will ignore the second
120249// request. This prevents clients from accidentally creating duplicate
120250// commitments.
120251//
120252// The request ID must be a valid UUID with the exception that zero UUID
120253// is not supported (00000000-0000-0000-0000-000000000000).
120254func (c *ProjectsSetDefaultNetworkTierCall) RequestId(requestId string) *ProjectsSetDefaultNetworkTierCall {
120255	c.urlParams_.Set("requestId", requestId)
120256	return c
120257}
120258
120259// Fields allows partial responses to be retrieved. See
120260// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
120261// for more information.
120262func (c *ProjectsSetDefaultNetworkTierCall) Fields(s ...googleapi.Field) *ProjectsSetDefaultNetworkTierCall {
120263	c.urlParams_.Set("fields", googleapi.CombineFields(s))
120264	return c
120265}
120266
120267// Context sets the context to be used in this call's Do method. Any
120268// pending HTTP request will be aborted if the provided context is
120269// canceled.
120270func (c *ProjectsSetDefaultNetworkTierCall) Context(ctx context.Context) *ProjectsSetDefaultNetworkTierCall {
120271	c.ctx_ = ctx
120272	return c
120273}
120274
120275// Header returns an http.Header that can be modified by the caller to
120276// add HTTP headers to the request.
120277func (c *ProjectsSetDefaultNetworkTierCall) Header() http.Header {
120278	if c.header_ == nil {
120279		c.header_ = make(http.Header)
120280	}
120281	return c.header_
120282}
120283
120284func (c *ProjectsSetDefaultNetworkTierCall) doRequest(alt string) (*http.Response, error) {
120285	reqHeaders := make(http.Header)
120286	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
120287	for k, v := range c.header_ {
120288		reqHeaders[k] = v
120289	}
120290	reqHeaders.Set("User-Agent", c.s.userAgent())
120291	var body io.Reader = nil
120292	body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectssetdefaultnetworktierrequest)
120293	if err != nil {
120294		return nil, err
120295	}
120296	reqHeaders.Set("Content-Type", "application/json")
120297	c.urlParams_.Set("alt", alt)
120298	c.urlParams_.Set("prettyPrint", "false")
120299	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/setDefaultNetworkTier")
120300	urls += "?" + c.urlParams_.Encode()
120301	req, err := http.NewRequest("POST", urls, body)
120302	if err != nil {
120303		return nil, err
120304	}
120305	req.Header = reqHeaders
120306	googleapi.Expand(req.URL, map[string]string{
120307		"project": c.project,
120308	})
120309	return gensupport.SendRequest(c.ctx_, c.s.client, req)
120310}
120311
120312// Do executes the "compute.projects.setDefaultNetworkTier" call.
120313// Exactly one of *Operation or error will be non-nil. Any non-2xx
120314// status code is an error. Response headers are in either
120315// *Operation.ServerResponse.Header or (if a response was returned at
120316// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
120317// to check whether the returned error was because
120318// http.StatusNotModified was returned.
120319func (c *ProjectsSetDefaultNetworkTierCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
120320	gensupport.SetOptions(c.urlParams_, opts...)
120321	res, err := c.doRequest("json")
120322	if res != nil && res.StatusCode == http.StatusNotModified {
120323		if res.Body != nil {
120324			res.Body.Close()
120325		}
120326		return nil, &googleapi.Error{
120327			Code:   res.StatusCode,
120328			Header: res.Header,
120329		}
120330	}
120331	if err != nil {
120332		return nil, err
120333	}
120334	defer googleapi.CloseBody(res)
120335	if err := googleapi.CheckResponse(res); err != nil {
120336		return nil, err
120337	}
120338	ret := &Operation{
120339		ServerResponse: googleapi.ServerResponse{
120340			Header:         res.Header,
120341			HTTPStatusCode: res.StatusCode,
120342		},
120343	}
120344	target := &ret
120345	if err := gensupport.DecodeResponse(target, res); err != nil {
120346		return nil, err
120347	}
120348	return ret, nil
120349	// {
120350	//   "description": "Sets the default network tier of the project. The default network tier is used when an address/forwardingRule/instance is created without specifying the network tier field.",
120351	//   "httpMethod": "POST",
120352	//   "id": "compute.projects.setDefaultNetworkTier",
120353	//   "parameterOrder": [
120354	//     "project"
120355	//   ],
120356	//   "parameters": {
120357	//     "project": {
120358	//       "description": "Project ID for this request.",
120359	//       "location": "path",
120360	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120361	//       "required": true,
120362	//       "type": "string"
120363	//     },
120364	//     "requestId": {
120365	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
120366	//       "location": "query",
120367	//       "type": "string"
120368	//     }
120369	//   },
120370	//   "path": "projects/{project}/setDefaultNetworkTier",
120371	//   "request": {
120372	//     "$ref": "ProjectsSetDefaultNetworkTierRequest"
120373	//   },
120374	//   "response": {
120375	//     "$ref": "Operation"
120376	//   },
120377	//   "scopes": [
120378	//     "https://www.googleapis.com/auth/cloud-platform",
120379	//     "https://www.googleapis.com/auth/compute"
120380	//   ]
120381	// }
120382
120383}
120384
120385// method id "compute.projects.setUsageExportBucket":
120386
120387type ProjectsSetUsageExportBucketCall struct {
120388	s                   *Service
120389	project             string
120390	usageexportlocation *UsageExportLocation
120391	urlParams_          gensupport.URLParams
120392	ctx_                context.Context
120393	header_             http.Header
120394}
120395
120396// SetUsageExportBucket: Enables the usage export feature and sets the
120397// usage export bucket where reports are stored. If you provide an empty
120398// request body using this method, the usage export feature will be
120399// disabled.
120400// For details, see https://cloud.google.com/compute/docs/reference/latest/projects/setUsageExportBucket
120401func (r *ProjectsService) SetUsageExportBucket(project string, usageexportlocation *UsageExportLocation) *ProjectsSetUsageExportBucketCall {
120402	c := &ProjectsSetUsageExportBucketCall{s: r.s, urlParams_: make(gensupport.URLParams)}
120403	c.project = project
120404	c.usageexportlocation = usageexportlocation
120405	return c
120406}
120407
120408// RequestId sets the optional parameter "requestId": An optional
120409// request ID to identify requests. Specify a unique request ID so that
120410// if you must retry your request, the server will know to ignore the
120411// request if it has already been completed.
120412//
120413// For example, consider a situation where you make an initial request
120414// and the request times out. If you make the request again with the
120415// same request ID, the server can check if original operation with the
120416// same request ID was received, and if so, will ignore the second
120417// request. This prevents clients from accidentally creating duplicate
120418// commitments.
120419//
120420// The request ID must be a valid UUID with the exception that zero UUID
120421// is not supported (00000000-0000-0000-0000-000000000000).
120422func (c *ProjectsSetUsageExportBucketCall) RequestId(requestId string) *ProjectsSetUsageExportBucketCall {
120423	c.urlParams_.Set("requestId", requestId)
120424	return c
120425}
120426
120427// Fields allows partial responses to be retrieved. See
120428// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
120429// for more information.
120430func (c *ProjectsSetUsageExportBucketCall) Fields(s ...googleapi.Field) *ProjectsSetUsageExportBucketCall {
120431	c.urlParams_.Set("fields", googleapi.CombineFields(s))
120432	return c
120433}
120434
120435// Context sets the context to be used in this call's Do method. Any
120436// pending HTTP request will be aborted if the provided context is
120437// canceled.
120438func (c *ProjectsSetUsageExportBucketCall) Context(ctx context.Context) *ProjectsSetUsageExportBucketCall {
120439	c.ctx_ = ctx
120440	return c
120441}
120442
120443// Header returns an http.Header that can be modified by the caller to
120444// add HTTP headers to the request.
120445func (c *ProjectsSetUsageExportBucketCall) Header() http.Header {
120446	if c.header_ == nil {
120447		c.header_ = make(http.Header)
120448	}
120449	return c.header_
120450}
120451
120452func (c *ProjectsSetUsageExportBucketCall) doRequest(alt string) (*http.Response, error) {
120453	reqHeaders := make(http.Header)
120454	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
120455	for k, v := range c.header_ {
120456		reqHeaders[k] = v
120457	}
120458	reqHeaders.Set("User-Agent", c.s.userAgent())
120459	var body io.Reader = nil
120460	body, err := googleapi.WithoutDataWrapper.JSONReader(c.usageexportlocation)
120461	if err != nil {
120462		return nil, err
120463	}
120464	reqHeaders.Set("Content-Type", "application/json")
120465	c.urlParams_.Set("alt", alt)
120466	c.urlParams_.Set("prettyPrint", "false")
120467	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/setUsageExportBucket")
120468	urls += "?" + c.urlParams_.Encode()
120469	req, err := http.NewRequest("POST", urls, body)
120470	if err != nil {
120471		return nil, err
120472	}
120473	req.Header = reqHeaders
120474	googleapi.Expand(req.URL, map[string]string{
120475		"project": c.project,
120476	})
120477	return gensupport.SendRequest(c.ctx_, c.s.client, req)
120478}
120479
120480// Do executes the "compute.projects.setUsageExportBucket" call.
120481// Exactly one of *Operation or error will be non-nil. Any non-2xx
120482// status code is an error. Response headers are in either
120483// *Operation.ServerResponse.Header or (if a response was returned at
120484// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
120485// to check whether the returned error was because
120486// http.StatusNotModified was returned.
120487func (c *ProjectsSetUsageExportBucketCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
120488	gensupport.SetOptions(c.urlParams_, opts...)
120489	res, err := c.doRequest("json")
120490	if res != nil && res.StatusCode == http.StatusNotModified {
120491		if res.Body != nil {
120492			res.Body.Close()
120493		}
120494		return nil, &googleapi.Error{
120495			Code:   res.StatusCode,
120496			Header: res.Header,
120497		}
120498	}
120499	if err != nil {
120500		return nil, err
120501	}
120502	defer googleapi.CloseBody(res)
120503	if err := googleapi.CheckResponse(res); err != nil {
120504		return nil, err
120505	}
120506	ret := &Operation{
120507		ServerResponse: googleapi.ServerResponse{
120508			Header:         res.Header,
120509			HTTPStatusCode: res.StatusCode,
120510		},
120511	}
120512	target := &ret
120513	if err := gensupport.DecodeResponse(target, res); err != nil {
120514		return nil, err
120515	}
120516	return ret, nil
120517	// {
120518	//   "description": "Enables the usage export feature and sets the usage export bucket where reports are stored. If you provide an empty request body using this method, the usage export feature will be disabled.",
120519	//   "httpMethod": "POST",
120520	//   "id": "compute.projects.setUsageExportBucket",
120521	//   "parameterOrder": [
120522	//     "project"
120523	//   ],
120524	//   "parameters": {
120525	//     "project": {
120526	//       "description": "Project ID for this request.",
120527	//       "location": "path",
120528	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120529	//       "required": true,
120530	//       "type": "string"
120531	//     },
120532	//     "requestId": {
120533	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
120534	//       "location": "query",
120535	//       "type": "string"
120536	//     }
120537	//   },
120538	//   "path": "projects/{project}/setUsageExportBucket",
120539	//   "request": {
120540	//     "$ref": "UsageExportLocation"
120541	//   },
120542	//   "response": {
120543	//     "$ref": "Operation"
120544	//   },
120545	//   "scopes": [
120546	//     "https://www.googleapis.com/auth/cloud-platform",
120547	//     "https://www.googleapis.com/auth/compute",
120548	//     "https://www.googleapis.com/auth/devstorage.full_control",
120549	//     "https://www.googleapis.com/auth/devstorage.read_only",
120550	//     "https://www.googleapis.com/auth/devstorage.read_write"
120551	//   ]
120552	// }
120553
120554}
120555
120556// method id "compute.publicAdvertisedPrefixes.delete":
120557
120558type PublicAdvertisedPrefixesDeleteCall struct {
120559	s                      *Service
120560	project                string
120561	publicAdvertisedPrefix string
120562	urlParams_             gensupport.URLParams
120563	ctx_                   context.Context
120564	header_                http.Header
120565}
120566
120567// Delete: Deletes the specified PublicAdvertisedPrefix
120568func (r *PublicAdvertisedPrefixesService) Delete(project string, publicAdvertisedPrefix string) *PublicAdvertisedPrefixesDeleteCall {
120569	c := &PublicAdvertisedPrefixesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
120570	c.project = project
120571	c.publicAdvertisedPrefix = publicAdvertisedPrefix
120572	return c
120573}
120574
120575// RequestId sets the optional parameter "requestId": An optional
120576// request ID to identify requests. Specify a unique request ID so that
120577// if you must retry your request, the server will know to ignore the
120578// request if it has already been completed.
120579//
120580// For example, consider a situation where you make an initial request
120581// and the request times out. If you make the request again with the
120582// same request ID, the server can check if original operation with the
120583// same request ID was received, and if so, will ignore the second
120584// request. This prevents clients from accidentally creating duplicate
120585// commitments.
120586//
120587// The request ID must be a valid UUID with the exception that zero UUID
120588// is not supported (00000000-0000-0000-0000-000000000000).
120589func (c *PublicAdvertisedPrefixesDeleteCall) RequestId(requestId string) *PublicAdvertisedPrefixesDeleteCall {
120590	c.urlParams_.Set("requestId", requestId)
120591	return c
120592}
120593
120594// Fields allows partial responses to be retrieved. See
120595// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
120596// for more information.
120597func (c *PublicAdvertisedPrefixesDeleteCall) Fields(s ...googleapi.Field) *PublicAdvertisedPrefixesDeleteCall {
120598	c.urlParams_.Set("fields", googleapi.CombineFields(s))
120599	return c
120600}
120601
120602// Context sets the context to be used in this call's Do method. Any
120603// pending HTTP request will be aborted if the provided context is
120604// canceled.
120605func (c *PublicAdvertisedPrefixesDeleteCall) Context(ctx context.Context) *PublicAdvertisedPrefixesDeleteCall {
120606	c.ctx_ = ctx
120607	return c
120608}
120609
120610// Header returns an http.Header that can be modified by the caller to
120611// add HTTP headers to the request.
120612func (c *PublicAdvertisedPrefixesDeleteCall) Header() http.Header {
120613	if c.header_ == nil {
120614		c.header_ = make(http.Header)
120615	}
120616	return c.header_
120617}
120618
120619func (c *PublicAdvertisedPrefixesDeleteCall) doRequest(alt string) (*http.Response, error) {
120620	reqHeaders := make(http.Header)
120621	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
120622	for k, v := range c.header_ {
120623		reqHeaders[k] = v
120624	}
120625	reqHeaders.Set("User-Agent", c.s.userAgent())
120626	var body io.Reader = nil
120627	c.urlParams_.Set("alt", alt)
120628	c.urlParams_.Set("prettyPrint", "false")
120629	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}")
120630	urls += "?" + c.urlParams_.Encode()
120631	req, err := http.NewRequest("DELETE", urls, body)
120632	if err != nil {
120633		return nil, err
120634	}
120635	req.Header = reqHeaders
120636	googleapi.Expand(req.URL, map[string]string{
120637		"project":                c.project,
120638		"publicAdvertisedPrefix": c.publicAdvertisedPrefix,
120639	})
120640	return gensupport.SendRequest(c.ctx_, c.s.client, req)
120641}
120642
120643// Do executes the "compute.publicAdvertisedPrefixes.delete" call.
120644// Exactly one of *Operation or error will be non-nil. Any non-2xx
120645// status code is an error. Response headers are in either
120646// *Operation.ServerResponse.Header or (if a response was returned at
120647// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
120648// to check whether the returned error was because
120649// http.StatusNotModified was returned.
120650func (c *PublicAdvertisedPrefixesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
120651	gensupport.SetOptions(c.urlParams_, opts...)
120652	res, err := c.doRequest("json")
120653	if res != nil && res.StatusCode == http.StatusNotModified {
120654		if res.Body != nil {
120655			res.Body.Close()
120656		}
120657		return nil, &googleapi.Error{
120658			Code:   res.StatusCode,
120659			Header: res.Header,
120660		}
120661	}
120662	if err != nil {
120663		return nil, err
120664	}
120665	defer googleapi.CloseBody(res)
120666	if err := googleapi.CheckResponse(res); err != nil {
120667		return nil, err
120668	}
120669	ret := &Operation{
120670		ServerResponse: googleapi.ServerResponse{
120671			Header:         res.Header,
120672			HTTPStatusCode: res.StatusCode,
120673		},
120674	}
120675	target := &ret
120676	if err := gensupport.DecodeResponse(target, res); err != nil {
120677		return nil, err
120678	}
120679	return ret, nil
120680	// {
120681	//   "description": "Deletes the specified PublicAdvertisedPrefix",
120682	//   "httpMethod": "DELETE",
120683	//   "id": "compute.publicAdvertisedPrefixes.delete",
120684	//   "parameterOrder": [
120685	//     "project",
120686	//     "publicAdvertisedPrefix"
120687	//   ],
120688	//   "parameters": {
120689	//     "project": {
120690	//       "description": "Project ID for this request.",
120691	//       "location": "path",
120692	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120693	//       "required": true,
120694	//       "type": "string"
120695	//     },
120696	//     "publicAdvertisedPrefix": {
120697	//       "description": "Name of the PublicAdvertisedPrefix resource to delete.",
120698	//       "location": "path",
120699	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
120700	//       "required": true,
120701	//       "type": "string"
120702	//     },
120703	//     "requestId": {
120704	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
120705	//       "location": "query",
120706	//       "type": "string"
120707	//     }
120708	//   },
120709	//   "path": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}",
120710	//   "response": {
120711	//     "$ref": "Operation"
120712	//   },
120713	//   "scopes": [
120714	//     "https://www.googleapis.com/auth/cloud-platform",
120715	//     "https://www.googleapis.com/auth/compute"
120716	//   ]
120717	// }
120718
120719}
120720
120721// method id "compute.publicAdvertisedPrefixes.get":
120722
120723type PublicAdvertisedPrefixesGetCall struct {
120724	s                      *Service
120725	project                string
120726	publicAdvertisedPrefix string
120727	urlParams_             gensupport.URLParams
120728	ifNoneMatch_           string
120729	ctx_                   context.Context
120730	header_                http.Header
120731}
120732
120733// Get: Returns the specified PublicAdvertisedPrefix resource.
120734func (r *PublicAdvertisedPrefixesService) Get(project string, publicAdvertisedPrefix string) *PublicAdvertisedPrefixesGetCall {
120735	c := &PublicAdvertisedPrefixesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
120736	c.project = project
120737	c.publicAdvertisedPrefix = publicAdvertisedPrefix
120738	return c
120739}
120740
120741// Fields allows partial responses to be retrieved. See
120742// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
120743// for more information.
120744func (c *PublicAdvertisedPrefixesGetCall) Fields(s ...googleapi.Field) *PublicAdvertisedPrefixesGetCall {
120745	c.urlParams_.Set("fields", googleapi.CombineFields(s))
120746	return c
120747}
120748
120749// IfNoneMatch sets the optional parameter which makes the operation
120750// fail if the object's ETag matches the given value. This is useful for
120751// getting updates only after the object has changed since the last
120752// request. Use googleapi.IsNotModified to check whether the response
120753// error from Do is the result of In-None-Match.
120754func (c *PublicAdvertisedPrefixesGetCall) IfNoneMatch(entityTag string) *PublicAdvertisedPrefixesGetCall {
120755	c.ifNoneMatch_ = entityTag
120756	return c
120757}
120758
120759// Context sets the context to be used in this call's Do method. Any
120760// pending HTTP request will be aborted if the provided context is
120761// canceled.
120762func (c *PublicAdvertisedPrefixesGetCall) Context(ctx context.Context) *PublicAdvertisedPrefixesGetCall {
120763	c.ctx_ = ctx
120764	return c
120765}
120766
120767// Header returns an http.Header that can be modified by the caller to
120768// add HTTP headers to the request.
120769func (c *PublicAdvertisedPrefixesGetCall) Header() http.Header {
120770	if c.header_ == nil {
120771		c.header_ = make(http.Header)
120772	}
120773	return c.header_
120774}
120775
120776func (c *PublicAdvertisedPrefixesGetCall) doRequest(alt string) (*http.Response, error) {
120777	reqHeaders := make(http.Header)
120778	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
120779	for k, v := range c.header_ {
120780		reqHeaders[k] = v
120781	}
120782	reqHeaders.Set("User-Agent", c.s.userAgent())
120783	if c.ifNoneMatch_ != "" {
120784		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
120785	}
120786	var body io.Reader = nil
120787	c.urlParams_.Set("alt", alt)
120788	c.urlParams_.Set("prettyPrint", "false")
120789	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}")
120790	urls += "?" + c.urlParams_.Encode()
120791	req, err := http.NewRequest("GET", urls, body)
120792	if err != nil {
120793		return nil, err
120794	}
120795	req.Header = reqHeaders
120796	googleapi.Expand(req.URL, map[string]string{
120797		"project":                c.project,
120798		"publicAdvertisedPrefix": c.publicAdvertisedPrefix,
120799	})
120800	return gensupport.SendRequest(c.ctx_, c.s.client, req)
120801}
120802
120803// Do executes the "compute.publicAdvertisedPrefixes.get" call.
120804// Exactly one of *PublicAdvertisedPrefix or error will be non-nil. Any
120805// non-2xx status code is an error. Response headers are in either
120806// *PublicAdvertisedPrefix.ServerResponse.Header or (if a response was
120807// returned at all) in error.(*googleapi.Error).Header. Use
120808// googleapi.IsNotModified to check whether the returned error was
120809// because http.StatusNotModified was returned.
120810func (c *PublicAdvertisedPrefixesGetCall) Do(opts ...googleapi.CallOption) (*PublicAdvertisedPrefix, error) {
120811	gensupport.SetOptions(c.urlParams_, opts...)
120812	res, err := c.doRequest("json")
120813	if res != nil && res.StatusCode == http.StatusNotModified {
120814		if res.Body != nil {
120815			res.Body.Close()
120816		}
120817		return nil, &googleapi.Error{
120818			Code:   res.StatusCode,
120819			Header: res.Header,
120820		}
120821	}
120822	if err != nil {
120823		return nil, err
120824	}
120825	defer googleapi.CloseBody(res)
120826	if err := googleapi.CheckResponse(res); err != nil {
120827		return nil, err
120828	}
120829	ret := &PublicAdvertisedPrefix{
120830		ServerResponse: googleapi.ServerResponse{
120831			Header:         res.Header,
120832			HTTPStatusCode: res.StatusCode,
120833		},
120834	}
120835	target := &ret
120836	if err := gensupport.DecodeResponse(target, res); err != nil {
120837		return nil, err
120838	}
120839	return ret, nil
120840	// {
120841	//   "description": "Returns the specified PublicAdvertisedPrefix resource.",
120842	//   "httpMethod": "GET",
120843	//   "id": "compute.publicAdvertisedPrefixes.get",
120844	//   "parameterOrder": [
120845	//     "project",
120846	//     "publicAdvertisedPrefix"
120847	//   ],
120848	//   "parameters": {
120849	//     "project": {
120850	//       "description": "Project ID for this request.",
120851	//       "location": "path",
120852	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120853	//       "required": true,
120854	//       "type": "string"
120855	//     },
120856	//     "publicAdvertisedPrefix": {
120857	//       "description": "Name of the PublicAdvertisedPrefix resource to return.",
120858	//       "location": "path",
120859	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
120860	//       "required": true,
120861	//       "type": "string"
120862	//     }
120863	//   },
120864	//   "path": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}",
120865	//   "response": {
120866	//     "$ref": "PublicAdvertisedPrefix"
120867	//   },
120868	//   "scopes": [
120869	//     "https://www.googleapis.com/auth/cloud-platform",
120870	//     "https://www.googleapis.com/auth/compute",
120871	//     "https://www.googleapis.com/auth/compute.readonly"
120872	//   ]
120873	// }
120874
120875}
120876
120877// method id "compute.publicAdvertisedPrefixes.insert":
120878
120879type PublicAdvertisedPrefixesInsertCall struct {
120880	s                      *Service
120881	project                string
120882	publicadvertisedprefix *PublicAdvertisedPrefix
120883	urlParams_             gensupport.URLParams
120884	ctx_                   context.Context
120885	header_                http.Header
120886}
120887
120888// Insert: Creates a PublicAdvertisedPrefix in the specified project
120889// using the parameters that are included in the request.
120890func (r *PublicAdvertisedPrefixesService) Insert(project string, publicadvertisedprefix *PublicAdvertisedPrefix) *PublicAdvertisedPrefixesInsertCall {
120891	c := &PublicAdvertisedPrefixesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
120892	c.project = project
120893	c.publicadvertisedprefix = publicadvertisedprefix
120894	return c
120895}
120896
120897// RequestId sets the optional parameter "requestId": An optional
120898// request ID to identify requests. Specify a unique request ID so that
120899// if you must retry your request, the server will know to ignore the
120900// request if it has already been completed.
120901//
120902// For example, consider a situation where you make an initial request
120903// and the request times out. If you make the request again with the
120904// same request ID, the server can check if original operation with the
120905// same request ID was received, and if so, will ignore the second
120906// request. This prevents clients from accidentally creating duplicate
120907// commitments.
120908//
120909// The request ID must be a valid UUID with the exception that zero UUID
120910// is not supported (00000000-0000-0000-0000-000000000000).
120911func (c *PublicAdvertisedPrefixesInsertCall) RequestId(requestId string) *PublicAdvertisedPrefixesInsertCall {
120912	c.urlParams_.Set("requestId", requestId)
120913	return c
120914}
120915
120916// Fields allows partial responses to be retrieved. See
120917// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
120918// for more information.
120919func (c *PublicAdvertisedPrefixesInsertCall) Fields(s ...googleapi.Field) *PublicAdvertisedPrefixesInsertCall {
120920	c.urlParams_.Set("fields", googleapi.CombineFields(s))
120921	return c
120922}
120923
120924// Context sets the context to be used in this call's Do method. Any
120925// pending HTTP request will be aborted if the provided context is
120926// canceled.
120927func (c *PublicAdvertisedPrefixesInsertCall) Context(ctx context.Context) *PublicAdvertisedPrefixesInsertCall {
120928	c.ctx_ = ctx
120929	return c
120930}
120931
120932// Header returns an http.Header that can be modified by the caller to
120933// add HTTP headers to the request.
120934func (c *PublicAdvertisedPrefixesInsertCall) Header() http.Header {
120935	if c.header_ == nil {
120936		c.header_ = make(http.Header)
120937	}
120938	return c.header_
120939}
120940
120941func (c *PublicAdvertisedPrefixesInsertCall) doRequest(alt string) (*http.Response, error) {
120942	reqHeaders := make(http.Header)
120943	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
120944	for k, v := range c.header_ {
120945		reqHeaders[k] = v
120946	}
120947	reqHeaders.Set("User-Agent", c.s.userAgent())
120948	var body io.Reader = nil
120949	body, err := googleapi.WithoutDataWrapper.JSONReader(c.publicadvertisedprefix)
120950	if err != nil {
120951		return nil, err
120952	}
120953	reqHeaders.Set("Content-Type", "application/json")
120954	c.urlParams_.Set("alt", alt)
120955	c.urlParams_.Set("prettyPrint", "false")
120956	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicAdvertisedPrefixes")
120957	urls += "?" + c.urlParams_.Encode()
120958	req, err := http.NewRequest("POST", urls, body)
120959	if err != nil {
120960		return nil, err
120961	}
120962	req.Header = reqHeaders
120963	googleapi.Expand(req.URL, map[string]string{
120964		"project": c.project,
120965	})
120966	return gensupport.SendRequest(c.ctx_, c.s.client, req)
120967}
120968
120969// Do executes the "compute.publicAdvertisedPrefixes.insert" call.
120970// Exactly one of *Operation or error will be non-nil. Any non-2xx
120971// status code is an error. Response headers are in either
120972// *Operation.ServerResponse.Header or (if a response was returned at
120973// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
120974// to check whether the returned error was because
120975// http.StatusNotModified was returned.
120976func (c *PublicAdvertisedPrefixesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
120977	gensupport.SetOptions(c.urlParams_, opts...)
120978	res, err := c.doRequest("json")
120979	if res != nil && res.StatusCode == http.StatusNotModified {
120980		if res.Body != nil {
120981			res.Body.Close()
120982		}
120983		return nil, &googleapi.Error{
120984			Code:   res.StatusCode,
120985			Header: res.Header,
120986		}
120987	}
120988	if err != nil {
120989		return nil, err
120990	}
120991	defer googleapi.CloseBody(res)
120992	if err := googleapi.CheckResponse(res); err != nil {
120993		return nil, err
120994	}
120995	ret := &Operation{
120996		ServerResponse: googleapi.ServerResponse{
120997			Header:         res.Header,
120998			HTTPStatusCode: res.StatusCode,
120999		},
121000	}
121001	target := &ret
121002	if err := gensupport.DecodeResponse(target, res); err != nil {
121003		return nil, err
121004	}
121005	return ret, nil
121006	// {
121007	//   "description": "Creates a PublicAdvertisedPrefix in the specified project using the parameters that are included in the request.",
121008	//   "httpMethod": "POST",
121009	//   "id": "compute.publicAdvertisedPrefixes.insert",
121010	//   "parameterOrder": [
121011	//     "project"
121012	//   ],
121013	//   "parameters": {
121014	//     "project": {
121015	//       "description": "Project ID for this request.",
121016	//       "location": "path",
121017	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121018	//       "required": true,
121019	//       "type": "string"
121020	//     },
121021	//     "requestId": {
121022	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
121023	//       "location": "query",
121024	//       "type": "string"
121025	//     }
121026	//   },
121027	//   "path": "projects/{project}/global/publicAdvertisedPrefixes",
121028	//   "request": {
121029	//     "$ref": "PublicAdvertisedPrefix"
121030	//   },
121031	//   "response": {
121032	//     "$ref": "Operation"
121033	//   },
121034	//   "scopes": [
121035	//     "https://www.googleapis.com/auth/cloud-platform",
121036	//     "https://www.googleapis.com/auth/compute"
121037	//   ]
121038	// }
121039
121040}
121041
121042// method id "compute.publicAdvertisedPrefixes.list":
121043
121044type PublicAdvertisedPrefixesListCall struct {
121045	s            *Service
121046	project      string
121047	urlParams_   gensupport.URLParams
121048	ifNoneMatch_ string
121049	ctx_         context.Context
121050	header_      http.Header
121051}
121052
121053// List: Lists the PublicAdvertisedPrefixes for a project.
121054func (r *PublicAdvertisedPrefixesService) List(project string) *PublicAdvertisedPrefixesListCall {
121055	c := &PublicAdvertisedPrefixesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
121056	c.project = project
121057	return c
121058}
121059
121060// Filter sets the optional parameter "filter": A filter expression that
121061// filters resources listed in the response. The expression must specify
121062// the field name, a comparison operator, and the value that you want to
121063// use for filtering. The value must be a string, a number, or a
121064// boolean. The comparison operator must be either `=`, `!=`, `>`, or
121065// `<`.
121066//
121067// For example, if you are filtering Compute Engine instances, you can
121068// exclude instances named `example-instance` by specifying `name !=
121069// example-instance`.
121070//
121071// You can also filter nested fields. For example, you could specify
121072// `scheduling.automaticRestart = false` to include instances only if
121073// they are not scheduled for automatic restarts. You can use filtering
121074// on nested fields to filter based on resource labels.
121075//
121076// To filter on multiple expressions, provide each separate expression
121077// within parentheses. For example: ``` (scheduling.automaticRestart =
121078// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
121079// is an `AND` expression. However, you can include `AND` and `OR`
121080// expressions explicitly. For example: ``` (cpuPlatform = "Intel
121081// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
121082// (scheduling.automaticRestart = true) ```
121083func (c *PublicAdvertisedPrefixesListCall) Filter(filter string) *PublicAdvertisedPrefixesListCall {
121084	c.urlParams_.Set("filter", filter)
121085	return c
121086}
121087
121088// MaxResults sets the optional parameter "maxResults": The maximum
121089// number of results per page that should be returned. If the number of
121090// available results is larger than `maxResults`, Compute Engine returns
121091// a `nextPageToken` that can be used to get the next page of results in
121092// subsequent list requests. Acceptable values are `0` to `500`,
121093// inclusive. (Default: `500`)
121094func (c *PublicAdvertisedPrefixesListCall) MaxResults(maxResults int64) *PublicAdvertisedPrefixesListCall {
121095	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
121096	return c
121097}
121098
121099// OrderBy sets the optional parameter "orderBy": Sorts list results by
121100// a certain order. By default, results are returned in alphanumerical
121101// order based on the resource name.
121102//
121103// You can also sort results in descending order based on the creation
121104// timestamp using `orderBy="creationTimestamp desc". This sorts
121105// results based on the `creationTimestamp` field in reverse
121106// chronological order (newest result first). Use this to sort resources
121107// like operations so that the newest operation is returned
121108// first.
121109//
121110// Currently, only sorting by `name` or `creationTimestamp desc` is
121111// supported.
121112func (c *PublicAdvertisedPrefixesListCall) OrderBy(orderBy string) *PublicAdvertisedPrefixesListCall {
121113	c.urlParams_.Set("orderBy", orderBy)
121114	return c
121115}
121116
121117// PageToken sets the optional parameter "pageToken": Specifies a page
121118// token to use. Set `pageToken` to the `nextPageToken` returned by a
121119// previous list request to get the next page of results.
121120func (c *PublicAdvertisedPrefixesListCall) PageToken(pageToken string) *PublicAdvertisedPrefixesListCall {
121121	c.urlParams_.Set("pageToken", pageToken)
121122	return c
121123}
121124
121125// ReturnPartialSuccess sets the optional parameter
121126// "returnPartialSuccess": Opt-in for partial success behavior which
121127// provides partial results in case of failure. The default value is
121128// false.
121129func (c *PublicAdvertisedPrefixesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *PublicAdvertisedPrefixesListCall {
121130	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
121131	return c
121132}
121133
121134// Fields allows partial responses to be retrieved. See
121135// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121136// for more information.
121137func (c *PublicAdvertisedPrefixesListCall) Fields(s ...googleapi.Field) *PublicAdvertisedPrefixesListCall {
121138	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121139	return c
121140}
121141
121142// IfNoneMatch sets the optional parameter which makes the operation
121143// fail if the object's ETag matches the given value. This is useful for
121144// getting updates only after the object has changed since the last
121145// request. Use googleapi.IsNotModified to check whether the response
121146// error from Do is the result of In-None-Match.
121147func (c *PublicAdvertisedPrefixesListCall) IfNoneMatch(entityTag string) *PublicAdvertisedPrefixesListCall {
121148	c.ifNoneMatch_ = entityTag
121149	return c
121150}
121151
121152// Context sets the context to be used in this call's Do method. Any
121153// pending HTTP request will be aborted if the provided context is
121154// canceled.
121155func (c *PublicAdvertisedPrefixesListCall) Context(ctx context.Context) *PublicAdvertisedPrefixesListCall {
121156	c.ctx_ = ctx
121157	return c
121158}
121159
121160// Header returns an http.Header that can be modified by the caller to
121161// add HTTP headers to the request.
121162func (c *PublicAdvertisedPrefixesListCall) Header() http.Header {
121163	if c.header_ == nil {
121164		c.header_ = make(http.Header)
121165	}
121166	return c.header_
121167}
121168
121169func (c *PublicAdvertisedPrefixesListCall) doRequest(alt string) (*http.Response, error) {
121170	reqHeaders := make(http.Header)
121171	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
121172	for k, v := range c.header_ {
121173		reqHeaders[k] = v
121174	}
121175	reqHeaders.Set("User-Agent", c.s.userAgent())
121176	if c.ifNoneMatch_ != "" {
121177		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
121178	}
121179	var body io.Reader = nil
121180	c.urlParams_.Set("alt", alt)
121181	c.urlParams_.Set("prettyPrint", "false")
121182	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicAdvertisedPrefixes")
121183	urls += "?" + c.urlParams_.Encode()
121184	req, err := http.NewRequest("GET", urls, body)
121185	if err != nil {
121186		return nil, err
121187	}
121188	req.Header = reqHeaders
121189	googleapi.Expand(req.URL, map[string]string{
121190		"project": c.project,
121191	})
121192	return gensupport.SendRequest(c.ctx_, c.s.client, req)
121193}
121194
121195// Do executes the "compute.publicAdvertisedPrefixes.list" call.
121196// Exactly one of *PublicAdvertisedPrefixList or error will be non-nil.
121197// Any non-2xx status code is an error. Response headers are in either
121198// *PublicAdvertisedPrefixList.ServerResponse.Header or (if a response
121199// was returned at all) in error.(*googleapi.Error).Header. Use
121200// googleapi.IsNotModified to check whether the returned error was
121201// because http.StatusNotModified was returned.
121202func (c *PublicAdvertisedPrefixesListCall) Do(opts ...googleapi.CallOption) (*PublicAdvertisedPrefixList, error) {
121203	gensupport.SetOptions(c.urlParams_, opts...)
121204	res, err := c.doRequest("json")
121205	if res != nil && res.StatusCode == http.StatusNotModified {
121206		if res.Body != nil {
121207			res.Body.Close()
121208		}
121209		return nil, &googleapi.Error{
121210			Code:   res.StatusCode,
121211			Header: res.Header,
121212		}
121213	}
121214	if err != nil {
121215		return nil, err
121216	}
121217	defer googleapi.CloseBody(res)
121218	if err := googleapi.CheckResponse(res); err != nil {
121219		return nil, err
121220	}
121221	ret := &PublicAdvertisedPrefixList{
121222		ServerResponse: googleapi.ServerResponse{
121223			Header:         res.Header,
121224			HTTPStatusCode: res.StatusCode,
121225		},
121226	}
121227	target := &ret
121228	if err := gensupport.DecodeResponse(target, res); err != nil {
121229		return nil, err
121230	}
121231	return ret, nil
121232	// {
121233	//   "description": "Lists the PublicAdvertisedPrefixes for a project.",
121234	//   "httpMethod": "GET",
121235	//   "id": "compute.publicAdvertisedPrefixes.list",
121236	//   "parameterOrder": [
121237	//     "project"
121238	//   ],
121239	//   "parameters": {
121240	//     "filter": {
121241	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
121242	//       "location": "query",
121243	//       "type": "string"
121244	//     },
121245	//     "maxResults": {
121246	//       "default": "500",
121247	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
121248	//       "format": "uint32",
121249	//       "location": "query",
121250	//       "minimum": "0",
121251	//       "type": "integer"
121252	//     },
121253	//     "orderBy": {
121254	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
121255	//       "location": "query",
121256	//       "type": "string"
121257	//     },
121258	//     "pageToken": {
121259	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
121260	//       "location": "query",
121261	//       "type": "string"
121262	//     },
121263	//     "project": {
121264	//       "description": "Project ID for this request.",
121265	//       "location": "path",
121266	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121267	//       "required": true,
121268	//       "type": "string"
121269	//     },
121270	//     "returnPartialSuccess": {
121271	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
121272	//       "location": "query",
121273	//       "type": "boolean"
121274	//     }
121275	//   },
121276	//   "path": "projects/{project}/global/publicAdvertisedPrefixes",
121277	//   "response": {
121278	//     "$ref": "PublicAdvertisedPrefixList"
121279	//   },
121280	//   "scopes": [
121281	//     "https://www.googleapis.com/auth/cloud-platform",
121282	//     "https://www.googleapis.com/auth/compute",
121283	//     "https://www.googleapis.com/auth/compute.readonly"
121284	//   ]
121285	// }
121286
121287}
121288
121289// Pages invokes f for each page of results.
121290// A non-nil error returned from f will halt the iteration.
121291// The provided context supersedes any context provided to the Context method.
121292func (c *PublicAdvertisedPrefixesListCall) Pages(ctx context.Context, f func(*PublicAdvertisedPrefixList) error) error {
121293	c.ctx_ = ctx
121294	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
121295	for {
121296		x, err := c.Do()
121297		if err != nil {
121298			return err
121299		}
121300		if err := f(x); err != nil {
121301			return err
121302		}
121303		if x.NextPageToken == "" {
121304			return nil
121305		}
121306		c.PageToken(x.NextPageToken)
121307	}
121308}
121309
121310// method id "compute.publicAdvertisedPrefixes.patch":
121311
121312type PublicAdvertisedPrefixesPatchCall struct {
121313	s                      *Service
121314	project                string
121315	publicAdvertisedPrefix string
121316	publicadvertisedprefix *PublicAdvertisedPrefix
121317	urlParams_             gensupport.URLParams
121318	ctx_                   context.Context
121319	header_                http.Header
121320}
121321
121322// Patch: Patches the specified Router resource with the data included
121323// in the request. This method supports PATCH semantics and uses JSON
121324// merge patch format and processing rules.
121325func (r *PublicAdvertisedPrefixesService) Patch(project string, publicAdvertisedPrefix string, publicadvertisedprefix *PublicAdvertisedPrefix) *PublicAdvertisedPrefixesPatchCall {
121326	c := &PublicAdvertisedPrefixesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
121327	c.project = project
121328	c.publicAdvertisedPrefix = publicAdvertisedPrefix
121329	c.publicadvertisedprefix = publicadvertisedprefix
121330	return c
121331}
121332
121333// RequestId sets the optional parameter "requestId": An optional
121334// request ID to identify requests. Specify a unique request ID so that
121335// if you must retry your request, the server will know to ignore the
121336// request if it has already been completed.
121337//
121338// For example, consider a situation where you make an initial request
121339// and the request times out. If you make the request again with the
121340// same request ID, the server can check if original operation with the
121341// same request ID was received, and if so, will ignore the second
121342// request. This prevents clients from accidentally creating duplicate
121343// commitments.
121344//
121345// The request ID must be a valid UUID with the exception that zero UUID
121346// is not supported (00000000-0000-0000-0000-000000000000).
121347func (c *PublicAdvertisedPrefixesPatchCall) RequestId(requestId string) *PublicAdvertisedPrefixesPatchCall {
121348	c.urlParams_.Set("requestId", requestId)
121349	return c
121350}
121351
121352// Fields allows partial responses to be retrieved. See
121353// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121354// for more information.
121355func (c *PublicAdvertisedPrefixesPatchCall) Fields(s ...googleapi.Field) *PublicAdvertisedPrefixesPatchCall {
121356	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121357	return c
121358}
121359
121360// Context sets the context to be used in this call's Do method. Any
121361// pending HTTP request will be aborted if the provided context is
121362// canceled.
121363func (c *PublicAdvertisedPrefixesPatchCall) Context(ctx context.Context) *PublicAdvertisedPrefixesPatchCall {
121364	c.ctx_ = ctx
121365	return c
121366}
121367
121368// Header returns an http.Header that can be modified by the caller to
121369// add HTTP headers to the request.
121370func (c *PublicAdvertisedPrefixesPatchCall) Header() http.Header {
121371	if c.header_ == nil {
121372		c.header_ = make(http.Header)
121373	}
121374	return c.header_
121375}
121376
121377func (c *PublicAdvertisedPrefixesPatchCall) doRequest(alt string) (*http.Response, error) {
121378	reqHeaders := make(http.Header)
121379	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
121380	for k, v := range c.header_ {
121381		reqHeaders[k] = v
121382	}
121383	reqHeaders.Set("User-Agent", c.s.userAgent())
121384	var body io.Reader = nil
121385	body, err := googleapi.WithoutDataWrapper.JSONReader(c.publicadvertisedprefix)
121386	if err != nil {
121387		return nil, err
121388	}
121389	reqHeaders.Set("Content-Type", "application/json")
121390	c.urlParams_.Set("alt", alt)
121391	c.urlParams_.Set("prettyPrint", "false")
121392	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}")
121393	urls += "?" + c.urlParams_.Encode()
121394	req, err := http.NewRequest("PATCH", urls, body)
121395	if err != nil {
121396		return nil, err
121397	}
121398	req.Header = reqHeaders
121399	googleapi.Expand(req.URL, map[string]string{
121400		"project":                c.project,
121401		"publicAdvertisedPrefix": c.publicAdvertisedPrefix,
121402	})
121403	return gensupport.SendRequest(c.ctx_, c.s.client, req)
121404}
121405
121406// Do executes the "compute.publicAdvertisedPrefixes.patch" call.
121407// Exactly one of *Operation or error will be non-nil. Any non-2xx
121408// status code is an error. Response headers are in either
121409// *Operation.ServerResponse.Header or (if a response was returned at
121410// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
121411// to check whether the returned error was because
121412// http.StatusNotModified was returned.
121413func (c *PublicAdvertisedPrefixesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
121414	gensupport.SetOptions(c.urlParams_, opts...)
121415	res, err := c.doRequest("json")
121416	if res != nil && res.StatusCode == http.StatusNotModified {
121417		if res.Body != nil {
121418			res.Body.Close()
121419		}
121420		return nil, &googleapi.Error{
121421			Code:   res.StatusCode,
121422			Header: res.Header,
121423		}
121424	}
121425	if err != nil {
121426		return nil, err
121427	}
121428	defer googleapi.CloseBody(res)
121429	if err := googleapi.CheckResponse(res); err != nil {
121430		return nil, err
121431	}
121432	ret := &Operation{
121433		ServerResponse: googleapi.ServerResponse{
121434			Header:         res.Header,
121435			HTTPStatusCode: res.StatusCode,
121436		},
121437	}
121438	target := &ret
121439	if err := gensupport.DecodeResponse(target, res); err != nil {
121440		return nil, err
121441	}
121442	return ret, nil
121443	// {
121444	//   "description": "Patches the specified Router resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules.",
121445	//   "httpMethod": "PATCH",
121446	//   "id": "compute.publicAdvertisedPrefixes.patch",
121447	//   "parameterOrder": [
121448	//     "project",
121449	//     "publicAdvertisedPrefix"
121450	//   ],
121451	//   "parameters": {
121452	//     "project": {
121453	//       "description": "Project ID for this request.",
121454	//       "location": "path",
121455	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121456	//       "required": true,
121457	//       "type": "string"
121458	//     },
121459	//     "publicAdvertisedPrefix": {
121460	//       "description": "Name of the PublicAdvertisedPrefix resource to patch.",
121461	//       "location": "path",
121462	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
121463	//       "required": true,
121464	//       "type": "string"
121465	//     },
121466	//     "requestId": {
121467	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
121468	//       "location": "query",
121469	//       "type": "string"
121470	//     }
121471	//   },
121472	//   "path": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}",
121473	//   "request": {
121474	//     "$ref": "PublicAdvertisedPrefix"
121475	//   },
121476	//   "response": {
121477	//     "$ref": "Operation"
121478	//   },
121479	//   "scopes": [
121480	//     "https://www.googleapis.com/auth/cloud-platform",
121481	//     "https://www.googleapis.com/auth/compute"
121482	//   ]
121483	// }
121484
121485}
121486
121487// method id "compute.publicDelegatedPrefixes.aggregatedList":
121488
121489type PublicDelegatedPrefixesAggregatedListCall struct {
121490	s            *Service
121491	project      string
121492	urlParams_   gensupport.URLParams
121493	ifNoneMatch_ string
121494	ctx_         context.Context
121495	header_      http.Header
121496}
121497
121498// AggregatedList: Lists all PublicDelegatedPrefix resources owned by
121499// the specific project across all scopes.
121500func (r *PublicDelegatedPrefixesService) AggregatedList(project string) *PublicDelegatedPrefixesAggregatedListCall {
121501	c := &PublicDelegatedPrefixesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
121502	c.project = project
121503	return c
121504}
121505
121506// Filter sets the optional parameter "filter": A filter expression that
121507// filters resources listed in the response. The expression must specify
121508// the field name, a comparison operator, and the value that you want to
121509// use for filtering. The value must be a string, a number, or a
121510// boolean. The comparison operator must be either `=`, `!=`, `>`, or
121511// `<`.
121512//
121513// For example, if you are filtering Compute Engine instances, you can
121514// exclude instances named `example-instance` by specifying `name !=
121515// example-instance`.
121516//
121517// You can also filter nested fields. For example, you could specify
121518// `scheduling.automaticRestart = false` to include instances only if
121519// they are not scheduled for automatic restarts. You can use filtering
121520// on nested fields to filter based on resource labels.
121521//
121522// To filter on multiple expressions, provide each separate expression
121523// within parentheses. For example: ``` (scheduling.automaticRestart =
121524// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
121525// is an `AND` expression. However, you can include `AND` and `OR`
121526// expressions explicitly. For example: ``` (cpuPlatform = "Intel
121527// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
121528// (scheduling.automaticRestart = true) ```
121529func (c *PublicDelegatedPrefixesAggregatedListCall) Filter(filter string) *PublicDelegatedPrefixesAggregatedListCall {
121530	c.urlParams_.Set("filter", filter)
121531	return c
121532}
121533
121534// IncludeAllScopes sets the optional parameter "includeAllScopes":
121535// Indicates whether every visible scope for each scope type (zone,
121536// region, global) should be included in the response. For new resource
121537// types added after this field, the flag has no effect as new resource
121538// types will always include every visible scope for each scope type in
121539// response. For resource types which predate this field, if this flag
121540// is omitted or false, only scopes of the scope types where the
121541// resource type is expected to be found will be included.
121542func (c *PublicDelegatedPrefixesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *PublicDelegatedPrefixesAggregatedListCall {
121543	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
121544	return c
121545}
121546
121547// MaxResults sets the optional parameter "maxResults": The maximum
121548// number of results per page that should be returned. If the number of
121549// available results is larger than `maxResults`, Compute Engine returns
121550// a `nextPageToken` that can be used to get the next page of results in
121551// subsequent list requests. Acceptable values are `0` to `500`,
121552// inclusive. (Default: `500`)
121553func (c *PublicDelegatedPrefixesAggregatedListCall) MaxResults(maxResults int64) *PublicDelegatedPrefixesAggregatedListCall {
121554	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
121555	return c
121556}
121557
121558// OrderBy sets the optional parameter "orderBy": Sorts list results by
121559// a certain order. By default, results are returned in alphanumerical
121560// order based on the resource name.
121561//
121562// You can also sort results in descending order based on the creation
121563// timestamp using `orderBy="creationTimestamp desc". This sorts
121564// results based on the `creationTimestamp` field in reverse
121565// chronological order (newest result first). Use this to sort resources
121566// like operations so that the newest operation is returned
121567// first.
121568//
121569// Currently, only sorting by `name` or `creationTimestamp desc` is
121570// supported.
121571func (c *PublicDelegatedPrefixesAggregatedListCall) OrderBy(orderBy string) *PublicDelegatedPrefixesAggregatedListCall {
121572	c.urlParams_.Set("orderBy", orderBy)
121573	return c
121574}
121575
121576// PageToken sets the optional parameter "pageToken": Specifies a page
121577// token to use. Set `pageToken` to the `nextPageToken` returned by a
121578// previous list request to get the next page of results.
121579func (c *PublicDelegatedPrefixesAggregatedListCall) PageToken(pageToken string) *PublicDelegatedPrefixesAggregatedListCall {
121580	c.urlParams_.Set("pageToken", pageToken)
121581	return c
121582}
121583
121584// ReturnPartialSuccess sets the optional parameter
121585// "returnPartialSuccess": Opt-in for partial success behavior which
121586// provides partial results in case of failure. The default value is
121587// false.
121588func (c *PublicDelegatedPrefixesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *PublicDelegatedPrefixesAggregatedListCall {
121589	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
121590	return c
121591}
121592
121593// Fields allows partial responses to be retrieved. See
121594// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121595// for more information.
121596func (c *PublicDelegatedPrefixesAggregatedListCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesAggregatedListCall {
121597	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121598	return c
121599}
121600
121601// IfNoneMatch sets the optional parameter which makes the operation
121602// fail if the object's ETag matches the given value. This is useful for
121603// getting updates only after the object has changed since the last
121604// request. Use googleapi.IsNotModified to check whether the response
121605// error from Do is the result of In-None-Match.
121606func (c *PublicDelegatedPrefixesAggregatedListCall) IfNoneMatch(entityTag string) *PublicDelegatedPrefixesAggregatedListCall {
121607	c.ifNoneMatch_ = entityTag
121608	return c
121609}
121610
121611// Context sets the context to be used in this call's Do method. Any
121612// pending HTTP request will be aborted if the provided context is
121613// canceled.
121614func (c *PublicDelegatedPrefixesAggregatedListCall) Context(ctx context.Context) *PublicDelegatedPrefixesAggregatedListCall {
121615	c.ctx_ = ctx
121616	return c
121617}
121618
121619// Header returns an http.Header that can be modified by the caller to
121620// add HTTP headers to the request.
121621func (c *PublicDelegatedPrefixesAggregatedListCall) Header() http.Header {
121622	if c.header_ == nil {
121623		c.header_ = make(http.Header)
121624	}
121625	return c.header_
121626}
121627
121628func (c *PublicDelegatedPrefixesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
121629	reqHeaders := make(http.Header)
121630	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
121631	for k, v := range c.header_ {
121632		reqHeaders[k] = v
121633	}
121634	reqHeaders.Set("User-Agent", c.s.userAgent())
121635	if c.ifNoneMatch_ != "" {
121636		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
121637	}
121638	var body io.Reader = nil
121639	c.urlParams_.Set("alt", alt)
121640	c.urlParams_.Set("prettyPrint", "false")
121641	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/publicDelegatedPrefixes")
121642	urls += "?" + c.urlParams_.Encode()
121643	req, err := http.NewRequest("GET", urls, body)
121644	if err != nil {
121645		return nil, err
121646	}
121647	req.Header = reqHeaders
121648	googleapi.Expand(req.URL, map[string]string{
121649		"project": c.project,
121650	})
121651	return gensupport.SendRequest(c.ctx_, c.s.client, req)
121652}
121653
121654// Do executes the "compute.publicDelegatedPrefixes.aggregatedList" call.
121655// Exactly one of *PublicDelegatedPrefixAggregatedList or error will be
121656// non-nil. Any non-2xx status code is an error. Response headers are in
121657// either *PublicDelegatedPrefixAggregatedList.ServerResponse.Header or
121658// (if a response was returned at all) in
121659// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
121660// whether the returned error was because http.StatusNotModified was
121661// returned.
121662func (c *PublicDelegatedPrefixesAggregatedListCall) Do(opts ...googleapi.CallOption) (*PublicDelegatedPrefixAggregatedList, error) {
121663	gensupport.SetOptions(c.urlParams_, opts...)
121664	res, err := c.doRequest("json")
121665	if res != nil && res.StatusCode == http.StatusNotModified {
121666		if res.Body != nil {
121667			res.Body.Close()
121668		}
121669		return nil, &googleapi.Error{
121670			Code:   res.StatusCode,
121671			Header: res.Header,
121672		}
121673	}
121674	if err != nil {
121675		return nil, err
121676	}
121677	defer googleapi.CloseBody(res)
121678	if err := googleapi.CheckResponse(res); err != nil {
121679		return nil, err
121680	}
121681	ret := &PublicDelegatedPrefixAggregatedList{
121682		ServerResponse: googleapi.ServerResponse{
121683			Header:         res.Header,
121684			HTTPStatusCode: res.StatusCode,
121685		},
121686	}
121687	target := &ret
121688	if err := gensupport.DecodeResponse(target, res); err != nil {
121689		return nil, err
121690	}
121691	return ret, nil
121692	// {
121693	//   "description": "Lists all PublicDelegatedPrefix resources owned by the specific project across all scopes.",
121694	//   "httpMethod": "GET",
121695	//   "id": "compute.publicDelegatedPrefixes.aggregatedList",
121696	//   "parameterOrder": [
121697	//     "project"
121698	//   ],
121699	//   "parameters": {
121700	//     "filter": {
121701	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
121702	//       "location": "query",
121703	//       "type": "string"
121704	//     },
121705	//     "includeAllScopes": {
121706	//       "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.",
121707	//       "location": "query",
121708	//       "type": "boolean"
121709	//     },
121710	//     "maxResults": {
121711	//       "default": "500",
121712	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
121713	//       "format": "uint32",
121714	//       "location": "query",
121715	//       "minimum": "0",
121716	//       "type": "integer"
121717	//     },
121718	//     "orderBy": {
121719	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
121720	//       "location": "query",
121721	//       "type": "string"
121722	//     },
121723	//     "pageToken": {
121724	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
121725	//       "location": "query",
121726	//       "type": "string"
121727	//     },
121728	//     "project": {
121729	//       "description": "Name of the project scoping this request.",
121730	//       "location": "path",
121731	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121732	//       "required": true,
121733	//       "type": "string"
121734	//     },
121735	//     "returnPartialSuccess": {
121736	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
121737	//       "location": "query",
121738	//       "type": "boolean"
121739	//     }
121740	//   },
121741	//   "path": "projects/{project}/aggregated/publicDelegatedPrefixes",
121742	//   "response": {
121743	//     "$ref": "PublicDelegatedPrefixAggregatedList"
121744	//   },
121745	//   "scopes": [
121746	//     "https://www.googleapis.com/auth/cloud-platform",
121747	//     "https://www.googleapis.com/auth/compute",
121748	//     "https://www.googleapis.com/auth/compute.readonly"
121749	//   ]
121750	// }
121751
121752}
121753
121754// Pages invokes f for each page of results.
121755// A non-nil error returned from f will halt the iteration.
121756// The provided context supersedes any context provided to the Context method.
121757func (c *PublicDelegatedPrefixesAggregatedListCall) Pages(ctx context.Context, f func(*PublicDelegatedPrefixAggregatedList) error) error {
121758	c.ctx_ = ctx
121759	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
121760	for {
121761		x, err := c.Do()
121762		if err != nil {
121763			return err
121764		}
121765		if err := f(x); err != nil {
121766			return err
121767		}
121768		if x.NextPageToken == "" {
121769			return nil
121770		}
121771		c.PageToken(x.NextPageToken)
121772	}
121773}
121774
121775// method id "compute.publicDelegatedPrefixes.delete":
121776
121777type PublicDelegatedPrefixesDeleteCall struct {
121778	s                     *Service
121779	project               string
121780	region                string
121781	publicDelegatedPrefix string
121782	urlParams_            gensupport.URLParams
121783	ctx_                  context.Context
121784	header_               http.Header
121785}
121786
121787// Delete: Deletes the specified PublicDelegatedPrefix in the given
121788// region.
121789func (r *PublicDelegatedPrefixesService) Delete(project string, region string, publicDelegatedPrefix string) *PublicDelegatedPrefixesDeleteCall {
121790	c := &PublicDelegatedPrefixesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
121791	c.project = project
121792	c.region = region
121793	c.publicDelegatedPrefix = publicDelegatedPrefix
121794	return c
121795}
121796
121797// RequestId sets the optional parameter "requestId": An optional
121798// request ID to identify requests. Specify a unique request ID so that
121799// if you must retry your request, the server will know to ignore the
121800// request if it has already been completed.
121801//
121802// For example, consider a situation where you make an initial request
121803// and the request times out. If you make the request again with the
121804// same request ID, the server can check if original operation with the
121805// same request ID was received, and if so, will ignore the second
121806// request. This prevents clients from accidentally creating duplicate
121807// commitments.
121808//
121809// The request ID must be a valid UUID with the exception that zero UUID
121810// is not supported (00000000-0000-0000-0000-000000000000).
121811func (c *PublicDelegatedPrefixesDeleteCall) RequestId(requestId string) *PublicDelegatedPrefixesDeleteCall {
121812	c.urlParams_.Set("requestId", requestId)
121813	return c
121814}
121815
121816// Fields allows partial responses to be retrieved. See
121817// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121818// for more information.
121819func (c *PublicDelegatedPrefixesDeleteCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesDeleteCall {
121820	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121821	return c
121822}
121823
121824// Context sets the context to be used in this call's Do method. Any
121825// pending HTTP request will be aborted if the provided context is
121826// canceled.
121827func (c *PublicDelegatedPrefixesDeleteCall) Context(ctx context.Context) *PublicDelegatedPrefixesDeleteCall {
121828	c.ctx_ = ctx
121829	return c
121830}
121831
121832// Header returns an http.Header that can be modified by the caller to
121833// add HTTP headers to the request.
121834func (c *PublicDelegatedPrefixesDeleteCall) Header() http.Header {
121835	if c.header_ == nil {
121836		c.header_ = make(http.Header)
121837	}
121838	return c.header_
121839}
121840
121841func (c *PublicDelegatedPrefixesDeleteCall) doRequest(alt string) (*http.Response, error) {
121842	reqHeaders := make(http.Header)
121843	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
121844	for k, v := range c.header_ {
121845		reqHeaders[k] = v
121846	}
121847	reqHeaders.Set("User-Agent", c.s.userAgent())
121848	var body io.Reader = nil
121849	c.urlParams_.Set("alt", alt)
121850	c.urlParams_.Set("prettyPrint", "false")
121851	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}")
121852	urls += "?" + c.urlParams_.Encode()
121853	req, err := http.NewRequest("DELETE", urls, body)
121854	if err != nil {
121855		return nil, err
121856	}
121857	req.Header = reqHeaders
121858	googleapi.Expand(req.URL, map[string]string{
121859		"project":               c.project,
121860		"region":                c.region,
121861		"publicDelegatedPrefix": c.publicDelegatedPrefix,
121862	})
121863	return gensupport.SendRequest(c.ctx_, c.s.client, req)
121864}
121865
121866// Do executes the "compute.publicDelegatedPrefixes.delete" call.
121867// Exactly one of *Operation or error will be non-nil. Any non-2xx
121868// status code is an error. Response headers are in either
121869// *Operation.ServerResponse.Header or (if a response was returned at
121870// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
121871// to check whether the returned error was because
121872// http.StatusNotModified was returned.
121873func (c *PublicDelegatedPrefixesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
121874	gensupport.SetOptions(c.urlParams_, opts...)
121875	res, err := c.doRequest("json")
121876	if res != nil && res.StatusCode == http.StatusNotModified {
121877		if res.Body != nil {
121878			res.Body.Close()
121879		}
121880		return nil, &googleapi.Error{
121881			Code:   res.StatusCode,
121882			Header: res.Header,
121883		}
121884	}
121885	if err != nil {
121886		return nil, err
121887	}
121888	defer googleapi.CloseBody(res)
121889	if err := googleapi.CheckResponse(res); err != nil {
121890		return nil, err
121891	}
121892	ret := &Operation{
121893		ServerResponse: googleapi.ServerResponse{
121894			Header:         res.Header,
121895			HTTPStatusCode: res.StatusCode,
121896		},
121897	}
121898	target := &ret
121899	if err := gensupport.DecodeResponse(target, res); err != nil {
121900		return nil, err
121901	}
121902	return ret, nil
121903	// {
121904	//   "description": "Deletes the specified PublicDelegatedPrefix in the given region.",
121905	//   "httpMethod": "DELETE",
121906	//   "id": "compute.publicDelegatedPrefixes.delete",
121907	//   "parameterOrder": [
121908	//     "project",
121909	//     "region",
121910	//     "publicDelegatedPrefix"
121911	//   ],
121912	//   "parameters": {
121913	//     "project": {
121914	//       "description": "Project ID for this request.",
121915	//       "location": "path",
121916	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121917	//       "required": true,
121918	//       "type": "string"
121919	//     },
121920	//     "publicDelegatedPrefix": {
121921	//       "description": "Name of the PublicDelegatedPrefix resource to delete.",
121922	//       "location": "path",
121923	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
121924	//       "required": true,
121925	//       "type": "string"
121926	//     },
121927	//     "region": {
121928	//       "description": "Name of the region of this request.",
121929	//       "location": "path",
121930	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
121931	//       "required": true,
121932	//       "type": "string"
121933	//     },
121934	//     "requestId": {
121935	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
121936	//       "location": "query",
121937	//       "type": "string"
121938	//     }
121939	//   },
121940	//   "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}",
121941	//   "response": {
121942	//     "$ref": "Operation"
121943	//   },
121944	//   "scopes": [
121945	//     "https://www.googleapis.com/auth/cloud-platform",
121946	//     "https://www.googleapis.com/auth/compute"
121947	//   ]
121948	// }
121949
121950}
121951
121952// method id "compute.publicDelegatedPrefixes.get":
121953
121954type PublicDelegatedPrefixesGetCall struct {
121955	s                     *Service
121956	project               string
121957	region                string
121958	publicDelegatedPrefix string
121959	urlParams_            gensupport.URLParams
121960	ifNoneMatch_          string
121961	ctx_                  context.Context
121962	header_               http.Header
121963}
121964
121965// Get: Returns the specified PublicDelegatedPrefix resource in the
121966// given region.
121967func (r *PublicDelegatedPrefixesService) Get(project string, region string, publicDelegatedPrefix string) *PublicDelegatedPrefixesGetCall {
121968	c := &PublicDelegatedPrefixesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
121969	c.project = project
121970	c.region = region
121971	c.publicDelegatedPrefix = publicDelegatedPrefix
121972	return c
121973}
121974
121975// Fields allows partial responses to be retrieved. See
121976// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121977// for more information.
121978func (c *PublicDelegatedPrefixesGetCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesGetCall {
121979	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121980	return c
121981}
121982
121983// IfNoneMatch sets the optional parameter which makes the operation
121984// fail if the object's ETag matches the given value. This is useful for
121985// getting updates only after the object has changed since the last
121986// request. Use googleapi.IsNotModified to check whether the response
121987// error from Do is the result of In-None-Match.
121988func (c *PublicDelegatedPrefixesGetCall) IfNoneMatch(entityTag string) *PublicDelegatedPrefixesGetCall {
121989	c.ifNoneMatch_ = entityTag
121990	return c
121991}
121992
121993// Context sets the context to be used in this call's Do method. Any
121994// pending HTTP request will be aborted if the provided context is
121995// canceled.
121996func (c *PublicDelegatedPrefixesGetCall) Context(ctx context.Context) *PublicDelegatedPrefixesGetCall {
121997	c.ctx_ = ctx
121998	return c
121999}
122000
122001// Header returns an http.Header that can be modified by the caller to
122002// add HTTP headers to the request.
122003func (c *PublicDelegatedPrefixesGetCall) Header() http.Header {
122004	if c.header_ == nil {
122005		c.header_ = make(http.Header)
122006	}
122007	return c.header_
122008}
122009
122010func (c *PublicDelegatedPrefixesGetCall) doRequest(alt string) (*http.Response, error) {
122011	reqHeaders := make(http.Header)
122012	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
122013	for k, v := range c.header_ {
122014		reqHeaders[k] = v
122015	}
122016	reqHeaders.Set("User-Agent", c.s.userAgent())
122017	if c.ifNoneMatch_ != "" {
122018		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
122019	}
122020	var body io.Reader = nil
122021	c.urlParams_.Set("alt", alt)
122022	c.urlParams_.Set("prettyPrint", "false")
122023	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}")
122024	urls += "?" + c.urlParams_.Encode()
122025	req, err := http.NewRequest("GET", urls, body)
122026	if err != nil {
122027		return nil, err
122028	}
122029	req.Header = reqHeaders
122030	googleapi.Expand(req.URL, map[string]string{
122031		"project":               c.project,
122032		"region":                c.region,
122033		"publicDelegatedPrefix": c.publicDelegatedPrefix,
122034	})
122035	return gensupport.SendRequest(c.ctx_, c.s.client, req)
122036}
122037
122038// Do executes the "compute.publicDelegatedPrefixes.get" call.
122039// Exactly one of *PublicDelegatedPrefix or error will be non-nil. Any
122040// non-2xx status code is an error. Response headers are in either
122041// *PublicDelegatedPrefix.ServerResponse.Header or (if a response was
122042// returned at all) in error.(*googleapi.Error).Header. Use
122043// googleapi.IsNotModified to check whether the returned error was
122044// because http.StatusNotModified was returned.
122045func (c *PublicDelegatedPrefixesGetCall) Do(opts ...googleapi.CallOption) (*PublicDelegatedPrefix, error) {
122046	gensupport.SetOptions(c.urlParams_, opts...)
122047	res, err := c.doRequest("json")
122048	if res != nil && res.StatusCode == http.StatusNotModified {
122049		if res.Body != nil {
122050			res.Body.Close()
122051		}
122052		return nil, &googleapi.Error{
122053			Code:   res.StatusCode,
122054			Header: res.Header,
122055		}
122056	}
122057	if err != nil {
122058		return nil, err
122059	}
122060	defer googleapi.CloseBody(res)
122061	if err := googleapi.CheckResponse(res); err != nil {
122062		return nil, err
122063	}
122064	ret := &PublicDelegatedPrefix{
122065		ServerResponse: googleapi.ServerResponse{
122066			Header:         res.Header,
122067			HTTPStatusCode: res.StatusCode,
122068		},
122069	}
122070	target := &ret
122071	if err := gensupport.DecodeResponse(target, res); err != nil {
122072		return nil, err
122073	}
122074	return ret, nil
122075	// {
122076	//   "description": "Returns the specified PublicDelegatedPrefix resource in the given region.",
122077	//   "httpMethod": "GET",
122078	//   "id": "compute.publicDelegatedPrefixes.get",
122079	//   "parameterOrder": [
122080	//     "project",
122081	//     "region",
122082	//     "publicDelegatedPrefix"
122083	//   ],
122084	//   "parameters": {
122085	//     "project": {
122086	//       "description": "Project ID for this request.",
122087	//       "location": "path",
122088	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
122089	//       "required": true,
122090	//       "type": "string"
122091	//     },
122092	//     "publicDelegatedPrefix": {
122093	//       "description": "Name of the PublicDelegatedPrefix resource to return.",
122094	//       "location": "path",
122095	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
122096	//       "required": true,
122097	//       "type": "string"
122098	//     },
122099	//     "region": {
122100	//       "description": "Name of the region of this request.",
122101	//       "location": "path",
122102	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
122103	//       "required": true,
122104	//       "type": "string"
122105	//     }
122106	//   },
122107	//   "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}",
122108	//   "response": {
122109	//     "$ref": "PublicDelegatedPrefix"
122110	//   },
122111	//   "scopes": [
122112	//     "https://www.googleapis.com/auth/cloud-platform",
122113	//     "https://www.googleapis.com/auth/compute",
122114	//     "https://www.googleapis.com/auth/compute.readonly"
122115	//   ]
122116	// }
122117
122118}
122119
122120// method id "compute.publicDelegatedPrefixes.insert":
122121
122122type PublicDelegatedPrefixesInsertCall struct {
122123	s                     *Service
122124	project               string
122125	region                string
122126	publicdelegatedprefix *PublicDelegatedPrefix
122127	urlParams_            gensupport.URLParams
122128	ctx_                  context.Context
122129	header_               http.Header
122130}
122131
122132// Insert: Creates a PublicDelegatedPrefix in the specified project in
122133// the given region using the parameters that are included in the
122134// request.
122135func (r *PublicDelegatedPrefixesService) Insert(project string, region string, publicdelegatedprefix *PublicDelegatedPrefix) *PublicDelegatedPrefixesInsertCall {
122136	c := &PublicDelegatedPrefixesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122137	c.project = project
122138	c.region = region
122139	c.publicdelegatedprefix = publicdelegatedprefix
122140	return c
122141}
122142
122143// RequestId sets the optional parameter "requestId": An optional
122144// request ID to identify requests. Specify a unique request ID so that
122145// if you must retry your request, the server will know to ignore the
122146// request if it has already been completed.
122147//
122148// For example, consider a situation where you make an initial request
122149// and the request times out. If you make the request again with the
122150// same request ID, the server can check if original operation with the
122151// same request ID was received, and if so, will ignore the second
122152// request. This prevents clients from accidentally creating duplicate
122153// commitments.
122154//
122155// The request ID must be a valid UUID with the exception that zero UUID
122156// is not supported (00000000-0000-0000-0000-000000000000).
122157func (c *PublicDelegatedPrefixesInsertCall) RequestId(requestId string) *PublicDelegatedPrefixesInsertCall {
122158	c.urlParams_.Set("requestId", requestId)
122159	return c
122160}
122161
122162// Fields allows partial responses to be retrieved. See
122163// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
122164// for more information.
122165func (c *PublicDelegatedPrefixesInsertCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesInsertCall {
122166	c.urlParams_.Set("fields", googleapi.CombineFields(s))
122167	return c
122168}
122169
122170// Context sets the context to be used in this call's Do method. Any
122171// pending HTTP request will be aborted if the provided context is
122172// canceled.
122173func (c *PublicDelegatedPrefixesInsertCall) Context(ctx context.Context) *PublicDelegatedPrefixesInsertCall {
122174	c.ctx_ = ctx
122175	return c
122176}
122177
122178// Header returns an http.Header that can be modified by the caller to
122179// add HTTP headers to the request.
122180func (c *PublicDelegatedPrefixesInsertCall) Header() http.Header {
122181	if c.header_ == nil {
122182		c.header_ = make(http.Header)
122183	}
122184	return c.header_
122185}
122186
122187func (c *PublicDelegatedPrefixesInsertCall) doRequest(alt string) (*http.Response, error) {
122188	reqHeaders := make(http.Header)
122189	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
122190	for k, v := range c.header_ {
122191		reqHeaders[k] = v
122192	}
122193	reqHeaders.Set("User-Agent", c.s.userAgent())
122194	var body io.Reader = nil
122195	body, err := googleapi.WithoutDataWrapper.JSONReader(c.publicdelegatedprefix)
122196	if err != nil {
122197		return nil, err
122198	}
122199	reqHeaders.Set("Content-Type", "application/json")
122200	c.urlParams_.Set("alt", alt)
122201	c.urlParams_.Set("prettyPrint", "false")
122202	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/publicDelegatedPrefixes")
122203	urls += "?" + c.urlParams_.Encode()
122204	req, err := http.NewRequest("POST", urls, body)
122205	if err != nil {
122206		return nil, err
122207	}
122208	req.Header = reqHeaders
122209	googleapi.Expand(req.URL, map[string]string{
122210		"project": c.project,
122211		"region":  c.region,
122212	})
122213	return gensupport.SendRequest(c.ctx_, c.s.client, req)
122214}
122215
122216// Do executes the "compute.publicDelegatedPrefixes.insert" call.
122217// Exactly one of *Operation or error will be non-nil. Any non-2xx
122218// status code is an error. Response headers are in either
122219// *Operation.ServerResponse.Header or (if a response was returned at
122220// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
122221// to check whether the returned error was because
122222// http.StatusNotModified was returned.
122223func (c *PublicDelegatedPrefixesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
122224	gensupport.SetOptions(c.urlParams_, opts...)
122225	res, err := c.doRequest("json")
122226	if res != nil && res.StatusCode == http.StatusNotModified {
122227		if res.Body != nil {
122228			res.Body.Close()
122229		}
122230		return nil, &googleapi.Error{
122231			Code:   res.StatusCode,
122232			Header: res.Header,
122233		}
122234	}
122235	if err != nil {
122236		return nil, err
122237	}
122238	defer googleapi.CloseBody(res)
122239	if err := googleapi.CheckResponse(res); err != nil {
122240		return nil, err
122241	}
122242	ret := &Operation{
122243		ServerResponse: googleapi.ServerResponse{
122244			Header:         res.Header,
122245			HTTPStatusCode: res.StatusCode,
122246		},
122247	}
122248	target := &ret
122249	if err := gensupport.DecodeResponse(target, res); err != nil {
122250		return nil, err
122251	}
122252	return ret, nil
122253	// {
122254	//   "description": "Creates a PublicDelegatedPrefix in the specified project in the given region using the parameters that are included in the request.",
122255	//   "httpMethod": "POST",
122256	//   "id": "compute.publicDelegatedPrefixes.insert",
122257	//   "parameterOrder": [
122258	//     "project",
122259	//     "region"
122260	//   ],
122261	//   "parameters": {
122262	//     "project": {
122263	//       "description": "Project ID for this request.",
122264	//       "location": "path",
122265	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
122266	//       "required": true,
122267	//       "type": "string"
122268	//     },
122269	//     "region": {
122270	//       "description": "Name of the region of this request.",
122271	//       "location": "path",
122272	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
122273	//       "required": true,
122274	//       "type": "string"
122275	//     },
122276	//     "requestId": {
122277	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
122278	//       "location": "query",
122279	//       "type": "string"
122280	//     }
122281	//   },
122282	//   "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes",
122283	//   "request": {
122284	//     "$ref": "PublicDelegatedPrefix"
122285	//   },
122286	//   "response": {
122287	//     "$ref": "Operation"
122288	//   },
122289	//   "scopes": [
122290	//     "https://www.googleapis.com/auth/cloud-platform",
122291	//     "https://www.googleapis.com/auth/compute"
122292	//   ]
122293	// }
122294
122295}
122296
122297// method id "compute.publicDelegatedPrefixes.list":
122298
122299type PublicDelegatedPrefixesListCall struct {
122300	s            *Service
122301	project      string
122302	region       string
122303	urlParams_   gensupport.URLParams
122304	ifNoneMatch_ string
122305	ctx_         context.Context
122306	header_      http.Header
122307}
122308
122309// List: Lists the PublicDelegatedPrefixes for a project in the given
122310// region.
122311func (r *PublicDelegatedPrefixesService) List(project string, region string) *PublicDelegatedPrefixesListCall {
122312	c := &PublicDelegatedPrefixesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122313	c.project = project
122314	c.region = region
122315	return c
122316}
122317
122318// Filter sets the optional parameter "filter": A filter expression that
122319// filters resources listed in the response. The expression must specify
122320// the field name, a comparison operator, and the value that you want to
122321// use for filtering. The value must be a string, a number, or a
122322// boolean. The comparison operator must be either `=`, `!=`, `>`, or
122323// `<`.
122324//
122325// For example, if you are filtering Compute Engine instances, you can
122326// exclude instances named `example-instance` by specifying `name !=
122327// example-instance`.
122328//
122329// You can also filter nested fields. For example, you could specify
122330// `scheduling.automaticRestart = false` to include instances only if
122331// they are not scheduled for automatic restarts. You can use filtering
122332// on nested fields to filter based on resource labels.
122333//
122334// To filter on multiple expressions, provide each separate expression
122335// within parentheses. For example: ``` (scheduling.automaticRestart =
122336// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
122337// is an `AND` expression. However, you can include `AND` and `OR`
122338// expressions explicitly. For example: ``` (cpuPlatform = "Intel
122339// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
122340// (scheduling.automaticRestart = true) ```
122341func (c *PublicDelegatedPrefixesListCall) Filter(filter string) *PublicDelegatedPrefixesListCall {
122342	c.urlParams_.Set("filter", filter)
122343	return c
122344}
122345
122346// MaxResults sets the optional parameter "maxResults": The maximum
122347// number of results per page that should be returned. If the number of
122348// available results is larger than `maxResults`, Compute Engine returns
122349// a `nextPageToken` that can be used to get the next page of results in
122350// subsequent list requests. Acceptable values are `0` to `500`,
122351// inclusive. (Default: `500`)
122352func (c *PublicDelegatedPrefixesListCall) MaxResults(maxResults int64) *PublicDelegatedPrefixesListCall {
122353	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
122354	return c
122355}
122356
122357// OrderBy sets the optional parameter "orderBy": Sorts list results by
122358// a certain order. By default, results are returned in alphanumerical
122359// order based on the resource name.
122360//
122361// You can also sort results in descending order based on the creation
122362// timestamp using `orderBy="creationTimestamp desc". This sorts
122363// results based on the `creationTimestamp` field in reverse
122364// chronological order (newest result first). Use this to sort resources
122365// like operations so that the newest operation is returned
122366// first.
122367//
122368// Currently, only sorting by `name` or `creationTimestamp desc` is
122369// supported.
122370func (c *PublicDelegatedPrefixesListCall) OrderBy(orderBy string) *PublicDelegatedPrefixesListCall {
122371	c.urlParams_.Set("orderBy", orderBy)
122372	return c
122373}
122374
122375// PageToken sets the optional parameter "pageToken": Specifies a page
122376// token to use. Set `pageToken` to the `nextPageToken` returned by a
122377// previous list request to get the next page of results.
122378func (c *PublicDelegatedPrefixesListCall) PageToken(pageToken string) *PublicDelegatedPrefixesListCall {
122379	c.urlParams_.Set("pageToken", pageToken)
122380	return c
122381}
122382
122383// ReturnPartialSuccess sets the optional parameter
122384// "returnPartialSuccess": Opt-in for partial success behavior which
122385// provides partial results in case of failure. The default value is
122386// false.
122387func (c *PublicDelegatedPrefixesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *PublicDelegatedPrefixesListCall {
122388	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
122389	return c
122390}
122391
122392// Fields allows partial responses to be retrieved. See
122393// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
122394// for more information.
122395func (c *PublicDelegatedPrefixesListCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesListCall {
122396	c.urlParams_.Set("fields", googleapi.CombineFields(s))
122397	return c
122398}
122399
122400// IfNoneMatch sets the optional parameter which makes the operation
122401// fail if the object's ETag matches the given value. This is useful for
122402// getting updates only after the object has changed since the last
122403// request. Use googleapi.IsNotModified to check whether the response
122404// error from Do is the result of In-None-Match.
122405func (c *PublicDelegatedPrefixesListCall) IfNoneMatch(entityTag string) *PublicDelegatedPrefixesListCall {
122406	c.ifNoneMatch_ = entityTag
122407	return c
122408}
122409
122410// Context sets the context to be used in this call's Do method. Any
122411// pending HTTP request will be aborted if the provided context is
122412// canceled.
122413func (c *PublicDelegatedPrefixesListCall) Context(ctx context.Context) *PublicDelegatedPrefixesListCall {
122414	c.ctx_ = ctx
122415	return c
122416}
122417
122418// Header returns an http.Header that can be modified by the caller to
122419// add HTTP headers to the request.
122420func (c *PublicDelegatedPrefixesListCall) Header() http.Header {
122421	if c.header_ == nil {
122422		c.header_ = make(http.Header)
122423	}
122424	return c.header_
122425}
122426
122427func (c *PublicDelegatedPrefixesListCall) doRequest(alt string) (*http.Response, error) {
122428	reqHeaders := make(http.Header)
122429	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
122430	for k, v := range c.header_ {
122431		reqHeaders[k] = v
122432	}
122433	reqHeaders.Set("User-Agent", c.s.userAgent())
122434	if c.ifNoneMatch_ != "" {
122435		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
122436	}
122437	var body io.Reader = nil
122438	c.urlParams_.Set("alt", alt)
122439	c.urlParams_.Set("prettyPrint", "false")
122440	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/publicDelegatedPrefixes")
122441	urls += "?" + c.urlParams_.Encode()
122442	req, err := http.NewRequest("GET", urls, body)
122443	if err != nil {
122444		return nil, err
122445	}
122446	req.Header = reqHeaders
122447	googleapi.Expand(req.URL, map[string]string{
122448		"project": c.project,
122449		"region":  c.region,
122450	})
122451	return gensupport.SendRequest(c.ctx_, c.s.client, req)
122452}
122453
122454// Do executes the "compute.publicDelegatedPrefixes.list" call.
122455// Exactly one of *PublicDelegatedPrefixList or error will be non-nil.
122456// Any non-2xx status code is an error. Response headers are in either
122457// *PublicDelegatedPrefixList.ServerResponse.Header or (if a response
122458// was returned at all) in error.(*googleapi.Error).Header. Use
122459// googleapi.IsNotModified to check whether the returned error was
122460// because http.StatusNotModified was returned.
122461func (c *PublicDelegatedPrefixesListCall) Do(opts ...googleapi.CallOption) (*PublicDelegatedPrefixList, error) {
122462	gensupport.SetOptions(c.urlParams_, opts...)
122463	res, err := c.doRequest("json")
122464	if res != nil && res.StatusCode == http.StatusNotModified {
122465		if res.Body != nil {
122466			res.Body.Close()
122467		}
122468		return nil, &googleapi.Error{
122469			Code:   res.StatusCode,
122470			Header: res.Header,
122471		}
122472	}
122473	if err != nil {
122474		return nil, err
122475	}
122476	defer googleapi.CloseBody(res)
122477	if err := googleapi.CheckResponse(res); err != nil {
122478		return nil, err
122479	}
122480	ret := &PublicDelegatedPrefixList{
122481		ServerResponse: googleapi.ServerResponse{
122482			Header:         res.Header,
122483			HTTPStatusCode: res.StatusCode,
122484		},
122485	}
122486	target := &ret
122487	if err := gensupport.DecodeResponse(target, res); err != nil {
122488		return nil, err
122489	}
122490	return ret, nil
122491	// {
122492	//   "description": "Lists the PublicDelegatedPrefixes for a project in the given region.",
122493	//   "httpMethod": "GET",
122494	//   "id": "compute.publicDelegatedPrefixes.list",
122495	//   "parameterOrder": [
122496	//     "project",
122497	//     "region"
122498	//   ],
122499	//   "parameters": {
122500	//     "filter": {
122501	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
122502	//       "location": "query",
122503	//       "type": "string"
122504	//     },
122505	//     "maxResults": {
122506	//       "default": "500",
122507	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
122508	//       "format": "uint32",
122509	//       "location": "query",
122510	//       "minimum": "0",
122511	//       "type": "integer"
122512	//     },
122513	//     "orderBy": {
122514	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
122515	//       "location": "query",
122516	//       "type": "string"
122517	//     },
122518	//     "pageToken": {
122519	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
122520	//       "location": "query",
122521	//       "type": "string"
122522	//     },
122523	//     "project": {
122524	//       "description": "Project ID for this request.",
122525	//       "location": "path",
122526	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
122527	//       "required": true,
122528	//       "type": "string"
122529	//     },
122530	//     "region": {
122531	//       "description": "Name of the region of this request.",
122532	//       "location": "path",
122533	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
122534	//       "required": true,
122535	//       "type": "string"
122536	//     },
122537	//     "returnPartialSuccess": {
122538	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
122539	//       "location": "query",
122540	//       "type": "boolean"
122541	//     }
122542	//   },
122543	//   "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes",
122544	//   "response": {
122545	//     "$ref": "PublicDelegatedPrefixList"
122546	//   },
122547	//   "scopes": [
122548	//     "https://www.googleapis.com/auth/cloud-platform",
122549	//     "https://www.googleapis.com/auth/compute",
122550	//     "https://www.googleapis.com/auth/compute.readonly"
122551	//   ]
122552	// }
122553
122554}
122555
122556// Pages invokes f for each page of results.
122557// A non-nil error returned from f will halt the iteration.
122558// The provided context supersedes any context provided to the Context method.
122559func (c *PublicDelegatedPrefixesListCall) Pages(ctx context.Context, f func(*PublicDelegatedPrefixList) error) error {
122560	c.ctx_ = ctx
122561	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
122562	for {
122563		x, err := c.Do()
122564		if err != nil {
122565			return err
122566		}
122567		if err := f(x); err != nil {
122568			return err
122569		}
122570		if x.NextPageToken == "" {
122571			return nil
122572		}
122573		c.PageToken(x.NextPageToken)
122574	}
122575}
122576
122577// method id "compute.publicDelegatedPrefixes.patch":
122578
122579type PublicDelegatedPrefixesPatchCall struct {
122580	s                     *Service
122581	project               string
122582	region                string
122583	publicDelegatedPrefix string
122584	publicdelegatedprefix *PublicDelegatedPrefix
122585	urlParams_            gensupport.URLParams
122586	ctx_                  context.Context
122587	header_               http.Header
122588}
122589
122590// Patch: Patches the specified PublicDelegatedPrefix resource with the
122591// data included in the request. This method supports PATCH semantics
122592// and uses JSON merge patch format and processing rules.
122593func (r *PublicDelegatedPrefixesService) Patch(project string, region string, publicDelegatedPrefix string, publicdelegatedprefix *PublicDelegatedPrefix) *PublicDelegatedPrefixesPatchCall {
122594	c := &PublicDelegatedPrefixesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122595	c.project = project
122596	c.region = region
122597	c.publicDelegatedPrefix = publicDelegatedPrefix
122598	c.publicdelegatedprefix = publicdelegatedprefix
122599	return c
122600}
122601
122602// RequestId sets the optional parameter "requestId": An optional
122603// request ID to identify requests. Specify a unique request ID so that
122604// if you must retry your request, the server will know to ignore the
122605// request if it has already been completed.
122606//
122607// For example, consider a situation where you make an initial request
122608// and the request times out. If you make the request again with the
122609// same request ID, the server can check if original operation with the
122610// same request ID was received, and if so, will ignore the second
122611// request. This prevents clients from accidentally creating duplicate
122612// commitments.
122613//
122614// The request ID must be a valid UUID with the exception that zero UUID
122615// is not supported (00000000-0000-0000-0000-000000000000).
122616func (c *PublicDelegatedPrefixesPatchCall) RequestId(requestId string) *PublicDelegatedPrefixesPatchCall {
122617	c.urlParams_.Set("requestId", requestId)
122618	return c
122619}
122620
122621// Fields allows partial responses to be retrieved. See
122622// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
122623// for more information.
122624func (c *PublicDelegatedPrefixesPatchCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesPatchCall {
122625	c.urlParams_.Set("fields", googleapi.CombineFields(s))
122626	return c
122627}
122628
122629// Context sets the context to be used in this call's Do method. Any
122630// pending HTTP request will be aborted if the provided context is
122631// canceled.
122632func (c *PublicDelegatedPrefixesPatchCall) Context(ctx context.Context) *PublicDelegatedPrefixesPatchCall {
122633	c.ctx_ = ctx
122634	return c
122635}
122636
122637// Header returns an http.Header that can be modified by the caller to
122638// add HTTP headers to the request.
122639func (c *PublicDelegatedPrefixesPatchCall) Header() http.Header {
122640	if c.header_ == nil {
122641		c.header_ = make(http.Header)
122642	}
122643	return c.header_
122644}
122645
122646func (c *PublicDelegatedPrefixesPatchCall) doRequest(alt string) (*http.Response, error) {
122647	reqHeaders := make(http.Header)
122648	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
122649	for k, v := range c.header_ {
122650		reqHeaders[k] = v
122651	}
122652	reqHeaders.Set("User-Agent", c.s.userAgent())
122653	var body io.Reader = nil
122654	body, err := googleapi.WithoutDataWrapper.JSONReader(c.publicdelegatedprefix)
122655	if err != nil {
122656		return nil, err
122657	}
122658	reqHeaders.Set("Content-Type", "application/json")
122659	c.urlParams_.Set("alt", alt)
122660	c.urlParams_.Set("prettyPrint", "false")
122661	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}")
122662	urls += "?" + c.urlParams_.Encode()
122663	req, err := http.NewRequest("PATCH", urls, body)
122664	if err != nil {
122665		return nil, err
122666	}
122667	req.Header = reqHeaders
122668	googleapi.Expand(req.URL, map[string]string{
122669		"project":               c.project,
122670		"region":                c.region,
122671		"publicDelegatedPrefix": c.publicDelegatedPrefix,
122672	})
122673	return gensupport.SendRequest(c.ctx_, c.s.client, req)
122674}
122675
122676// Do executes the "compute.publicDelegatedPrefixes.patch" call.
122677// Exactly one of *Operation or error will be non-nil. Any non-2xx
122678// status code is an error. Response headers are in either
122679// *Operation.ServerResponse.Header or (if a response was returned at
122680// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
122681// to check whether the returned error was because
122682// http.StatusNotModified was returned.
122683func (c *PublicDelegatedPrefixesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
122684	gensupport.SetOptions(c.urlParams_, opts...)
122685	res, err := c.doRequest("json")
122686	if res != nil && res.StatusCode == http.StatusNotModified {
122687		if res.Body != nil {
122688			res.Body.Close()
122689		}
122690		return nil, &googleapi.Error{
122691			Code:   res.StatusCode,
122692			Header: res.Header,
122693		}
122694	}
122695	if err != nil {
122696		return nil, err
122697	}
122698	defer googleapi.CloseBody(res)
122699	if err := googleapi.CheckResponse(res); err != nil {
122700		return nil, err
122701	}
122702	ret := &Operation{
122703		ServerResponse: googleapi.ServerResponse{
122704			Header:         res.Header,
122705			HTTPStatusCode: res.StatusCode,
122706		},
122707	}
122708	target := &ret
122709	if err := gensupport.DecodeResponse(target, res); err != nil {
122710		return nil, err
122711	}
122712	return ret, nil
122713	// {
122714	//   "description": "Patches the specified PublicDelegatedPrefix resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules.",
122715	//   "httpMethod": "PATCH",
122716	//   "id": "compute.publicDelegatedPrefixes.patch",
122717	//   "parameterOrder": [
122718	//     "project",
122719	//     "region",
122720	//     "publicDelegatedPrefix"
122721	//   ],
122722	//   "parameters": {
122723	//     "project": {
122724	//       "description": "Project ID for this request.",
122725	//       "location": "path",
122726	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
122727	//       "required": true,
122728	//       "type": "string"
122729	//     },
122730	//     "publicDelegatedPrefix": {
122731	//       "description": "Name of the PublicDelegatedPrefix resource to patch.",
122732	//       "location": "path",
122733	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
122734	//       "required": true,
122735	//       "type": "string"
122736	//     },
122737	//     "region": {
122738	//       "description": "Name of the region for this request.",
122739	//       "location": "path",
122740	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
122741	//       "required": true,
122742	//       "type": "string"
122743	//     },
122744	//     "requestId": {
122745	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
122746	//       "location": "query",
122747	//       "type": "string"
122748	//     }
122749	//   },
122750	//   "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}",
122751	//   "request": {
122752	//     "$ref": "PublicDelegatedPrefix"
122753	//   },
122754	//   "response": {
122755	//     "$ref": "Operation"
122756	//   },
122757	//   "scopes": [
122758	//     "https://www.googleapis.com/auth/cloud-platform",
122759	//     "https://www.googleapis.com/auth/compute"
122760	//   ]
122761	// }
122762
122763}
122764
122765// method id "compute.regionAutoscalers.delete":
122766
122767type RegionAutoscalersDeleteCall struct {
122768	s          *Service
122769	project    string
122770	region     string
122771	autoscaler string
122772	urlParams_ gensupport.URLParams
122773	ctx_       context.Context
122774	header_    http.Header
122775}
122776
122777// Delete: Deletes the specified autoscaler.
122778func (r *RegionAutoscalersService) Delete(project string, region string, autoscaler string) *RegionAutoscalersDeleteCall {
122779	c := &RegionAutoscalersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122780	c.project = project
122781	c.region = region
122782	c.autoscaler = autoscaler
122783	return c
122784}
122785
122786// RequestId sets the optional parameter "requestId": An optional
122787// request ID to identify requests. Specify a unique request ID so that
122788// if you must retry your request, the server will know to ignore the
122789// request if it has already been completed.
122790//
122791// For example, consider a situation where you make an initial request
122792// and the request times out. If you make the request again with the
122793// same request ID, the server can check if original operation with the
122794// same request ID was received, and if so, will ignore the second
122795// request. This prevents clients from accidentally creating duplicate
122796// commitments.
122797//
122798// The request ID must be a valid UUID with the exception that zero UUID
122799// is not supported (00000000-0000-0000-0000-000000000000).
122800func (c *RegionAutoscalersDeleteCall) RequestId(requestId string) *RegionAutoscalersDeleteCall {
122801	c.urlParams_.Set("requestId", requestId)
122802	return c
122803}
122804
122805// Fields allows partial responses to be retrieved. See
122806// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
122807// for more information.
122808func (c *RegionAutoscalersDeleteCall) Fields(s ...googleapi.Field) *RegionAutoscalersDeleteCall {
122809	c.urlParams_.Set("fields", googleapi.CombineFields(s))
122810	return c
122811}
122812
122813// Context sets the context to be used in this call's Do method. Any
122814// pending HTTP request will be aborted if the provided context is
122815// canceled.
122816func (c *RegionAutoscalersDeleteCall) Context(ctx context.Context) *RegionAutoscalersDeleteCall {
122817	c.ctx_ = ctx
122818	return c
122819}
122820
122821// Header returns an http.Header that can be modified by the caller to
122822// add HTTP headers to the request.
122823func (c *RegionAutoscalersDeleteCall) Header() http.Header {
122824	if c.header_ == nil {
122825		c.header_ = make(http.Header)
122826	}
122827	return c.header_
122828}
122829
122830func (c *RegionAutoscalersDeleteCall) doRequest(alt string) (*http.Response, error) {
122831	reqHeaders := make(http.Header)
122832	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
122833	for k, v := range c.header_ {
122834		reqHeaders[k] = v
122835	}
122836	reqHeaders.Set("User-Agent", c.s.userAgent())
122837	var body io.Reader = nil
122838	c.urlParams_.Set("alt", alt)
122839	c.urlParams_.Set("prettyPrint", "false")
122840	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/autoscalers/{autoscaler}")
122841	urls += "?" + c.urlParams_.Encode()
122842	req, err := http.NewRequest("DELETE", urls, body)
122843	if err != nil {
122844		return nil, err
122845	}
122846	req.Header = reqHeaders
122847	googleapi.Expand(req.URL, map[string]string{
122848		"project":    c.project,
122849		"region":     c.region,
122850		"autoscaler": c.autoscaler,
122851	})
122852	return gensupport.SendRequest(c.ctx_, c.s.client, req)
122853}
122854
122855// Do executes the "compute.regionAutoscalers.delete" call.
122856// Exactly one of *Operation or error will be non-nil. Any non-2xx
122857// status code is an error. Response headers are in either
122858// *Operation.ServerResponse.Header or (if a response was returned at
122859// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
122860// to check whether the returned error was because
122861// http.StatusNotModified was returned.
122862func (c *RegionAutoscalersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
122863	gensupport.SetOptions(c.urlParams_, opts...)
122864	res, err := c.doRequest("json")
122865	if res != nil && res.StatusCode == http.StatusNotModified {
122866		if res.Body != nil {
122867			res.Body.Close()
122868		}
122869		return nil, &googleapi.Error{
122870			Code:   res.StatusCode,
122871			Header: res.Header,
122872		}
122873	}
122874	if err != nil {
122875		return nil, err
122876	}
122877	defer googleapi.CloseBody(res)
122878	if err := googleapi.CheckResponse(res); err != nil {
122879		return nil, err
122880	}
122881	ret := &Operation{
122882		ServerResponse: googleapi.ServerResponse{
122883			Header:         res.Header,
122884			HTTPStatusCode: res.StatusCode,
122885		},
122886	}
122887	target := &ret
122888	if err := gensupport.DecodeResponse(target, res); err != nil {
122889		return nil, err
122890	}
122891	return ret, nil
122892	// {
122893	//   "description": "Deletes the specified autoscaler.",
122894	//   "httpMethod": "DELETE",
122895	//   "id": "compute.regionAutoscalers.delete",
122896	//   "parameterOrder": [
122897	//     "project",
122898	//     "region",
122899	//     "autoscaler"
122900	//   ],
122901	//   "parameters": {
122902	//     "autoscaler": {
122903	//       "description": "Name of the autoscaler to delete.",
122904	//       "location": "path",
122905	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
122906	//       "required": true,
122907	//       "type": "string"
122908	//     },
122909	//     "project": {
122910	//       "description": "Project ID for this request.",
122911	//       "location": "path",
122912	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
122913	//       "required": true,
122914	//       "type": "string"
122915	//     },
122916	//     "region": {
122917	//       "description": "Name of the region scoping this request.",
122918	//       "location": "path",
122919	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
122920	//       "required": true,
122921	//       "type": "string"
122922	//     },
122923	//     "requestId": {
122924	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
122925	//       "location": "query",
122926	//       "type": "string"
122927	//     }
122928	//   },
122929	//   "path": "projects/{project}/regions/{region}/autoscalers/{autoscaler}",
122930	//   "response": {
122931	//     "$ref": "Operation"
122932	//   },
122933	//   "scopes": [
122934	//     "https://www.googleapis.com/auth/cloud-platform",
122935	//     "https://www.googleapis.com/auth/compute"
122936	//   ]
122937	// }
122938
122939}
122940
122941// method id "compute.regionAutoscalers.get":
122942
122943type RegionAutoscalersGetCall struct {
122944	s            *Service
122945	project      string
122946	region       string
122947	autoscaler   string
122948	urlParams_   gensupport.URLParams
122949	ifNoneMatch_ string
122950	ctx_         context.Context
122951	header_      http.Header
122952}
122953
122954// Get: Returns the specified autoscaler.
122955func (r *RegionAutoscalersService) Get(project string, region string, autoscaler string) *RegionAutoscalersGetCall {
122956	c := &RegionAutoscalersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122957	c.project = project
122958	c.region = region
122959	c.autoscaler = autoscaler
122960	return c
122961}
122962
122963// Fields allows partial responses to be retrieved. See
122964// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
122965// for more information.
122966func (c *RegionAutoscalersGetCall) Fields(s ...googleapi.Field) *RegionAutoscalersGetCall {
122967	c.urlParams_.Set("fields", googleapi.CombineFields(s))
122968	return c
122969}
122970
122971// IfNoneMatch sets the optional parameter which makes the operation
122972// fail if the object's ETag matches the given value. This is useful for
122973// getting updates only after the object has changed since the last
122974// request. Use googleapi.IsNotModified to check whether the response
122975// error from Do is the result of In-None-Match.
122976func (c *RegionAutoscalersGetCall) IfNoneMatch(entityTag string) *RegionAutoscalersGetCall {
122977	c.ifNoneMatch_ = entityTag
122978	return c
122979}
122980
122981// Context sets the context to be used in this call's Do method. Any
122982// pending HTTP request will be aborted if the provided context is
122983// canceled.
122984func (c *RegionAutoscalersGetCall) Context(ctx context.Context) *RegionAutoscalersGetCall {
122985	c.ctx_ = ctx
122986	return c
122987}
122988
122989// Header returns an http.Header that can be modified by the caller to
122990// add HTTP headers to the request.
122991func (c *RegionAutoscalersGetCall) Header() http.Header {
122992	if c.header_ == nil {
122993		c.header_ = make(http.Header)
122994	}
122995	return c.header_
122996}
122997
122998func (c *RegionAutoscalersGetCall) doRequest(alt string) (*http.Response, error) {
122999	reqHeaders := make(http.Header)
123000	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
123001	for k, v := range c.header_ {
123002		reqHeaders[k] = v
123003	}
123004	reqHeaders.Set("User-Agent", c.s.userAgent())
123005	if c.ifNoneMatch_ != "" {
123006		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
123007	}
123008	var body io.Reader = nil
123009	c.urlParams_.Set("alt", alt)
123010	c.urlParams_.Set("prettyPrint", "false")
123011	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/autoscalers/{autoscaler}")
123012	urls += "?" + c.urlParams_.Encode()
123013	req, err := http.NewRequest("GET", urls, body)
123014	if err != nil {
123015		return nil, err
123016	}
123017	req.Header = reqHeaders
123018	googleapi.Expand(req.URL, map[string]string{
123019		"project":    c.project,
123020		"region":     c.region,
123021		"autoscaler": c.autoscaler,
123022	})
123023	return gensupport.SendRequest(c.ctx_, c.s.client, req)
123024}
123025
123026// Do executes the "compute.regionAutoscalers.get" call.
123027// Exactly one of *Autoscaler or error will be non-nil. Any non-2xx
123028// status code is an error. Response headers are in either
123029// *Autoscaler.ServerResponse.Header or (if a response was returned at
123030// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
123031// to check whether the returned error was because
123032// http.StatusNotModified was returned.
123033func (c *RegionAutoscalersGetCall) Do(opts ...googleapi.CallOption) (*Autoscaler, error) {
123034	gensupport.SetOptions(c.urlParams_, opts...)
123035	res, err := c.doRequest("json")
123036	if res != nil && res.StatusCode == http.StatusNotModified {
123037		if res.Body != nil {
123038			res.Body.Close()
123039		}
123040		return nil, &googleapi.Error{
123041			Code:   res.StatusCode,
123042			Header: res.Header,
123043		}
123044	}
123045	if err != nil {
123046		return nil, err
123047	}
123048	defer googleapi.CloseBody(res)
123049	if err := googleapi.CheckResponse(res); err != nil {
123050		return nil, err
123051	}
123052	ret := &Autoscaler{
123053		ServerResponse: googleapi.ServerResponse{
123054			Header:         res.Header,
123055			HTTPStatusCode: res.StatusCode,
123056		},
123057	}
123058	target := &ret
123059	if err := gensupport.DecodeResponse(target, res); err != nil {
123060		return nil, err
123061	}
123062	return ret, nil
123063	// {
123064	//   "description": "Returns the specified autoscaler.",
123065	//   "httpMethod": "GET",
123066	//   "id": "compute.regionAutoscalers.get",
123067	//   "parameterOrder": [
123068	//     "project",
123069	//     "region",
123070	//     "autoscaler"
123071	//   ],
123072	//   "parameters": {
123073	//     "autoscaler": {
123074	//       "description": "Name of the autoscaler to return.",
123075	//       "location": "path",
123076	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
123077	//       "required": true,
123078	//       "type": "string"
123079	//     },
123080	//     "project": {
123081	//       "description": "Project ID for this request.",
123082	//       "location": "path",
123083	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
123084	//       "required": true,
123085	//       "type": "string"
123086	//     },
123087	//     "region": {
123088	//       "description": "Name of the region scoping this request.",
123089	//       "location": "path",
123090	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
123091	//       "required": true,
123092	//       "type": "string"
123093	//     }
123094	//   },
123095	//   "path": "projects/{project}/regions/{region}/autoscalers/{autoscaler}",
123096	//   "response": {
123097	//     "$ref": "Autoscaler"
123098	//   },
123099	//   "scopes": [
123100	//     "https://www.googleapis.com/auth/cloud-platform",
123101	//     "https://www.googleapis.com/auth/compute",
123102	//     "https://www.googleapis.com/auth/compute.readonly"
123103	//   ]
123104	// }
123105
123106}
123107
123108// method id "compute.regionAutoscalers.insert":
123109
123110type RegionAutoscalersInsertCall struct {
123111	s          *Service
123112	project    string
123113	region     string
123114	autoscaler *Autoscaler
123115	urlParams_ gensupport.URLParams
123116	ctx_       context.Context
123117	header_    http.Header
123118}
123119
123120// Insert: Creates an autoscaler in the specified project using the data
123121// included in the request.
123122func (r *RegionAutoscalersService) Insert(project string, region string, autoscaler *Autoscaler) *RegionAutoscalersInsertCall {
123123	c := &RegionAutoscalersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
123124	c.project = project
123125	c.region = region
123126	c.autoscaler = autoscaler
123127	return c
123128}
123129
123130// RequestId sets the optional parameter "requestId": An optional
123131// request ID to identify requests. Specify a unique request ID so that
123132// if you must retry your request, the server will know to ignore the
123133// request if it has already been completed.
123134//
123135// For example, consider a situation where you make an initial request
123136// and the request times out. If you make the request again with the
123137// same request ID, the server can check if original operation with the
123138// same request ID was received, and if so, will ignore the second
123139// request. This prevents clients from accidentally creating duplicate
123140// commitments.
123141//
123142// The request ID must be a valid UUID with the exception that zero UUID
123143// is not supported (00000000-0000-0000-0000-000000000000).
123144func (c *RegionAutoscalersInsertCall) RequestId(requestId string) *RegionAutoscalersInsertCall {
123145	c.urlParams_.Set("requestId", requestId)
123146	return c
123147}
123148
123149// Fields allows partial responses to be retrieved. See
123150// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
123151// for more information.
123152func (c *RegionAutoscalersInsertCall) Fields(s ...googleapi.Field) *RegionAutoscalersInsertCall {
123153	c.urlParams_.Set("fields", googleapi.CombineFields(s))
123154	return c
123155}
123156
123157// Context sets the context to be used in this call's Do method. Any
123158// pending HTTP request will be aborted if the provided context is
123159// canceled.
123160func (c *RegionAutoscalersInsertCall) Context(ctx context.Context) *RegionAutoscalersInsertCall {
123161	c.ctx_ = ctx
123162	return c
123163}
123164
123165// Header returns an http.Header that can be modified by the caller to
123166// add HTTP headers to the request.
123167func (c *RegionAutoscalersInsertCall) Header() http.Header {
123168	if c.header_ == nil {
123169		c.header_ = make(http.Header)
123170	}
123171	return c.header_
123172}
123173
123174func (c *RegionAutoscalersInsertCall) doRequest(alt string) (*http.Response, error) {
123175	reqHeaders := make(http.Header)
123176	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
123177	for k, v := range c.header_ {
123178		reqHeaders[k] = v
123179	}
123180	reqHeaders.Set("User-Agent", c.s.userAgent())
123181	var body io.Reader = nil
123182	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
123183	if err != nil {
123184		return nil, err
123185	}
123186	reqHeaders.Set("Content-Type", "application/json")
123187	c.urlParams_.Set("alt", alt)
123188	c.urlParams_.Set("prettyPrint", "false")
123189	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/autoscalers")
123190	urls += "?" + c.urlParams_.Encode()
123191	req, err := http.NewRequest("POST", urls, body)
123192	if err != nil {
123193		return nil, err
123194	}
123195	req.Header = reqHeaders
123196	googleapi.Expand(req.URL, map[string]string{
123197		"project": c.project,
123198		"region":  c.region,
123199	})
123200	return gensupport.SendRequest(c.ctx_, c.s.client, req)
123201}
123202
123203// Do executes the "compute.regionAutoscalers.insert" call.
123204// Exactly one of *Operation or error will be non-nil. Any non-2xx
123205// status code is an error. Response headers are in either
123206// *Operation.ServerResponse.Header or (if a response was returned at
123207// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
123208// to check whether the returned error was because
123209// http.StatusNotModified was returned.
123210func (c *RegionAutoscalersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
123211	gensupport.SetOptions(c.urlParams_, opts...)
123212	res, err := c.doRequest("json")
123213	if res != nil && res.StatusCode == http.StatusNotModified {
123214		if res.Body != nil {
123215			res.Body.Close()
123216		}
123217		return nil, &googleapi.Error{
123218			Code:   res.StatusCode,
123219			Header: res.Header,
123220		}
123221	}
123222	if err != nil {
123223		return nil, err
123224	}
123225	defer googleapi.CloseBody(res)
123226	if err := googleapi.CheckResponse(res); err != nil {
123227		return nil, err
123228	}
123229	ret := &Operation{
123230		ServerResponse: googleapi.ServerResponse{
123231			Header:         res.Header,
123232			HTTPStatusCode: res.StatusCode,
123233		},
123234	}
123235	target := &ret
123236	if err := gensupport.DecodeResponse(target, res); err != nil {
123237		return nil, err
123238	}
123239	return ret, nil
123240	// {
123241	//   "description": "Creates an autoscaler in the specified project using the data included in the request.",
123242	//   "httpMethod": "POST",
123243	//   "id": "compute.regionAutoscalers.insert",
123244	//   "parameterOrder": [
123245	//     "project",
123246	//     "region"
123247	//   ],
123248	//   "parameters": {
123249	//     "project": {
123250	//       "description": "Project ID for this request.",
123251	//       "location": "path",
123252	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
123253	//       "required": true,
123254	//       "type": "string"
123255	//     },
123256	//     "region": {
123257	//       "description": "Name of the region scoping this request.",
123258	//       "location": "path",
123259	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
123260	//       "required": true,
123261	//       "type": "string"
123262	//     },
123263	//     "requestId": {
123264	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
123265	//       "location": "query",
123266	//       "type": "string"
123267	//     }
123268	//   },
123269	//   "path": "projects/{project}/regions/{region}/autoscalers",
123270	//   "request": {
123271	//     "$ref": "Autoscaler"
123272	//   },
123273	//   "response": {
123274	//     "$ref": "Operation"
123275	//   },
123276	//   "scopes": [
123277	//     "https://www.googleapis.com/auth/cloud-platform",
123278	//     "https://www.googleapis.com/auth/compute"
123279	//   ]
123280	// }
123281
123282}
123283
123284// method id "compute.regionAutoscalers.list":
123285
123286type RegionAutoscalersListCall struct {
123287	s            *Service
123288	project      string
123289	region       string
123290	urlParams_   gensupport.URLParams
123291	ifNoneMatch_ string
123292	ctx_         context.Context
123293	header_      http.Header
123294}
123295
123296// List: Retrieves a list of autoscalers contained within the specified
123297// region.
123298func (r *RegionAutoscalersService) List(project string, region string) *RegionAutoscalersListCall {
123299	c := &RegionAutoscalersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
123300	c.project = project
123301	c.region = region
123302	return c
123303}
123304
123305// Filter sets the optional parameter "filter": A filter expression that
123306// filters resources listed in the response. The expression must specify
123307// the field name, a comparison operator, and the value that you want to
123308// use for filtering. The value must be a string, a number, or a
123309// boolean. The comparison operator must be either `=`, `!=`, `>`, or
123310// `<`.
123311//
123312// For example, if you are filtering Compute Engine instances, you can
123313// exclude instances named `example-instance` by specifying `name !=
123314// example-instance`.
123315//
123316// You can also filter nested fields. For example, you could specify
123317// `scheduling.automaticRestart = false` to include instances only if
123318// they are not scheduled for automatic restarts. You can use filtering
123319// on nested fields to filter based on resource labels.
123320//
123321// To filter on multiple expressions, provide each separate expression
123322// within parentheses. For example: ``` (scheduling.automaticRestart =
123323// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
123324// is an `AND` expression. However, you can include `AND` and `OR`
123325// expressions explicitly. For example: ``` (cpuPlatform = "Intel
123326// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
123327// (scheduling.automaticRestart = true) ```
123328func (c *RegionAutoscalersListCall) Filter(filter string) *RegionAutoscalersListCall {
123329	c.urlParams_.Set("filter", filter)
123330	return c
123331}
123332
123333// MaxResults sets the optional parameter "maxResults": The maximum
123334// number of results per page that should be returned. If the number of
123335// available results is larger than `maxResults`, Compute Engine returns
123336// a `nextPageToken` that can be used to get the next page of results in
123337// subsequent list requests. Acceptable values are `0` to `500`,
123338// inclusive. (Default: `500`)
123339func (c *RegionAutoscalersListCall) MaxResults(maxResults int64) *RegionAutoscalersListCall {
123340	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
123341	return c
123342}
123343
123344// OrderBy sets the optional parameter "orderBy": Sorts list results by
123345// a certain order. By default, results are returned in alphanumerical
123346// order based on the resource name.
123347//
123348// You can also sort results in descending order based on the creation
123349// timestamp using `orderBy="creationTimestamp desc". This sorts
123350// results based on the `creationTimestamp` field in reverse
123351// chronological order (newest result first). Use this to sort resources
123352// like operations so that the newest operation is returned
123353// first.
123354//
123355// Currently, only sorting by `name` or `creationTimestamp desc` is
123356// supported.
123357func (c *RegionAutoscalersListCall) OrderBy(orderBy string) *RegionAutoscalersListCall {
123358	c.urlParams_.Set("orderBy", orderBy)
123359	return c
123360}
123361
123362// PageToken sets the optional parameter "pageToken": Specifies a page
123363// token to use. Set `pageToken` to the `nextPageToken` returned by a
123364// previous list request to get the next page of results.
123365func (c *RegionAutoscalersListCall) PageToken(pageToken string) *RegionAutoscalersListCall {
123366	c.urlParams_.Set("pageToken", pageToken)
123367	return c
123368}
123369
123370// ReturnPartialSuccess sets the optional parameter
123371// "returnPartialSuccess": Opt-in for partial success behavior which
123372// provides partial results in case of failure. The default value is
123373// false.
123374func (c *RegionAutoscalersListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionAutoscalersListCall {
123375	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
123376	return c
123377}
123378
123379// Fields allows partial responses to be retrieved. See
123380// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
123381// for more information.
123382func (c *RegionAutoscalersListCall) Fields(s ...googleapi.Field) *RegionAutoscalersListCall {
123383	c.urlParams_.Set("fields", googleapi.CombineFields(s))
123384	return c
123385}
123386
123387// IfNoneMatch sets the optional parameter which makes the operation
123388// fail if the object's ETag matches the given value. This is useful for
123389// getting updates only after the object has changed since the last
123390// request. Use googleapi.IsNotModified to check whether the response
123391// error from Do is the result of In-None-Match.
123392func (c *RegionAutoscalersListCall) IfNoneMatch(entityTag string) *RegionAutoscalersListCall {
123393	c.ifNoneMatch_ = entityTag
123394	return c
123395}
123396
123397// Context sets the context to be used in this call's Do method. Any
123398// pending HTTP request will be aborted if the provided context is
123399// canceled.
123400func (c *RegionAutoscalersListCall) Context(ctx context.Context) *RegionAutoscalersListCall {
123401	c.ctx_ = ctx
123402	return c
123403}
123404
123405// Header returns an http.Header that can be modified by the caller to
123406// add HTTP headers to the request.
123407func (c *RegionAutoscalersListCall) Header() http.Header {
123408	if c.header_ == nil {
123409		c.header_ = make(http.Header)
123410	}
123411	return c.header_
123412}
123413
123414func (c *RegionAutoscalersListCall) doRequest(alt string) (*http.Response, error) {
123415	reqHeaders := make(http.Header)
123416	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
123417	for k, v := range c.header_ {
123418		reqHeaders[k] = v
123419	}
123420	reqHeaders.Set("User-Agent", c.s.userAgent())
123421	if c.ifNoneMatch_ != "" {
123422		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
123423	}
123424	var body io.Reader = nil
123425	c.urlParams_.Set("alt", alt)
123426	c.urlParams_.Set("prettyPrint", "false")
123427	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/autoscalers")
123428	urls += "?" + c.urlParams_.Encode()
123429	req, err := http.NewRequest("GET", urls, body)
123430	if err != nil {
123431		return nil, err
123432	}
123433	req.Header = reqHeaders
123434	googleapi.Expand(req.URL, map[string]string{
123435		"project": c.project,
123436		"region":  c.region,
123437	})
123438	return gensupport.SendRequest(c.ctx_, c.s.client, req)
123439}
123440
123441// Do executes the "compute.regionAutoscalers.list" call.
123442// Exactly one of *RegionAutoscalerList or error will be non-nil. Any
123443// non-2xx status code is an error. Response headers are in either
123444// *RegionAutoscalerList.ServerResponse.Header or (if a response was
123445// returned at all) in error.(*googleapi.Error).Header. Use
123446// googleapi.IsNotModified to check whether the returned error was
123447// because http.StatusNotModified was returned.
123448func (c *RegionAutoscalersListCall) Do(opts ...googleapi.CallOption) (*RegionAutoscalerList, error) {
123449	gensupport.SetOptions(c.urlParams_, opts...)
123450	res, err := c.doRequest("json")
123451	if res != nil && res.StatusCode == http.StatusNotModified {
123452		if res.Body != nil {
123453			res.Body.Close()
123454		}
123455		return nil, &googleapi.Error{
123456			Code:   res.StatusCode,
123457			Header: res.Header,
123458		}
123459	}
123460	if err != nil {
123461		return nil, err
123462	}
123463	defer googleapi.CloseBody(res)
123464	if err := googleapi.CheckResponse(res); err != nil {
123465		return nil, err
123466	}
123467	ret := &RegionAutoscalerList{
123468		ServerResponse: googleapi.ServerResponse{
123469			Header:         res.Header,
123470			HTTPStatusCode: res.StatusCode,
123471		},
123472	}
123473	target := &ret
123474	if err := gensupport.DecodeResponse(target, res); err != nil {
123475		return nil, err
123476	}
123477	return ret, nil
123478	// {
123479	//   "description": "Retrieves a list of autoscalers contained within the specified region.",
123480	//   "httpMethod": "GET",
123481	//   "id": "compute.regionAutoscalers.list",
123482	//   "parameterOrder": [
123483	//     "project",
123484	//     "region"
123485	//   ],
123486	//   "parameters": {
123487	//     "filter": {
123488	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
123489	//       "location": "query",
123490	//       "type": "string"
123491	//     },
123492	//     "maxResults": {
123493	//       "default": "500",
123494	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
123495	//       "format": "uint32",
123496	//       "location": "query",
123497	//       "minimum": "0",
123498	//       "type": "integer"
123499	//     },
123500	//     "orderBy": {
123501	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
123502	//       "location": "query",
123503	//       "type": "string"
123504	//     },
123505	//     "pageToken": {
123506	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
123507	//       "location": "query",
123508	//       "type": "string"
123509	//     },
123510	//     "project": {
123511	//       "description": "Project ID for this request.",
123512	//       "location": "path",
123513	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
123514	//       "required": true,
123515	//       "type": "string"
123516	//     },
123517	//     "region": {
123518	//       "description": "Name of the region scoping this request.",
123519	//       "location": "path",
123520	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
123521	//       "required": true,
123522	//       "type": "string"
123523	//     },
123524	//     "returnPartialSuccess": {
123525	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
123526	//       "location": "query",
123527	//       "type": "boolean"
123528	//     }
123529	//   },
123530	//   "path": "projects/{project}/regions/{region}/autoscalers",
123531	//   "response": {
123532	//     "$ref": "RegionAutoscalerList"
123533	//   },
123534	//   "scopes": [
123535	//     "https://www.googleapis.com/auth/cloud-platform",
123536	//     "https://www.googleapis.com/auth/compute",
123537	//     "https://www.googleapis.com/auth/compute.readonly"
123538	//   ]
123539	// }
123540
123541}
123542
123543// Pages invokes f for each page of results.
123544// A non-nil error returned from f will halt the iteration.
123545// The provided context supersedes any context provided to the Context method.
123546func (c *RegionAutoscalersListCall) Pages(ctx context.Context, f func(*RegionAutoscalerList) error) error {
123547	c.ctx_ = ctx
123548	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
123549	for {
123550		x, err := c.Do()
123551		if err != nil {
123552			return err
123553		}
123554		if err := f(x); err != nil {
123555			return err
123556		}
123557		if x.NextPageToken == "" {
123558			return nil
123559		}
123560		c.PageToken(x.NextPageToken)
123561	}
123562}
123563
123564// method id "compute.regionAutoscalers.patch":
123565
123566type RegionAutoscalersPatchCall struct {
123567	s          *Service
123568	project    string
123569	region     string
123570	autoscaler *Autoscaler
123571	urlParams_ gensupport.URLParams
123572	ctx_       context.Context
123573	header_    http.Header
123574}
123575
123576// Patch: Updates an autoscaler in the specified project using the data
123577// included in the request. This method supports PATCH semantics and
123578// uses the JSON merge patch format and processing rules.
123579func (r *RegionAutoscalersService) Patch(project string, region string, autoscaler *Autoscaler) *RegionAutoscalersPatchCall {
123580	c := &RegionAutoscalersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
123581	c.project = project
123582	c.region = region
123583	c.autoscaler = autoscaler
123584	return c
123585}
123586
123587// Autoscaler sets the optional parameter "autoscaler": Name of the
123588// autoscaler to patch.
123589func (c *RegionAutoscalersPatchCall) Autoscaler(autoscaler string) *RegionAutoscalersPatchCall {
123590	c.urlParams_.Set("autoscaler", autoscaler)
123591	return c
123592}
123593
123594// RequestId sets the optional parameter "requestId": An optional
123595// request ID to identify requests. Specify a unique request ID so that
123596// if you must retry your request, the server will know to ignore the
123597// request if it has already been completed.
123598//
123599// For example, consider a situation where you make an initial request
123600// and the request times out. If you make the request again with the
123601// same request ID, the server can check if original operation with the
123602// same request ID was received, and if so, will ignore the second
123603// request. This prevents clients from accidentally creating duplicate
123604// commitments.
123605//
123606// The request ID must be a valid UUID with the exception that zero UUID
123607// is not supported (00000000-0000-0000-0000-000000000000).
123608func (c *RegionAutoscalersPatchCall) RequestId(requestId string) *RegionAutoscalersPatchCall {
123609	c.urlParams_.Set("requestId", requestId)
123610	return c
123611}
123612
123613// Fields allows partial responses to be retrieved. See
123614// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
123615// for more information.
123616func (c *RegionAutoscalersPatchCall) Fields(s ...googleapi.Field) *RegionAutoscalersPatchCall {
123617	c.urlParams_.Set("fields", googleapi.CombineFields(s))
123618	return c
123619}
123620
123621// Context sets the context to be used in this call's Do method. Any
123622// pending HTTP request will be aborted if the provided context is
123623// canceled.
123624func (c *RegionAutoscalersPatchCall) Context(ctx context.Context) *RegionAutoscalersPatchCall {
123625	c.ctx_ = ctx
123626	return c
123627}
123628
123629// Header returns an http.Header that can be modified by the caller to
123630// add HTTP headers to the request.
123631func (c *RegionAutoscalersPatchCall) Header() http.Header {
123632	if c.header_ == nil {
123633		c.header_ = make(http.Header)
123634	}
123635	return c.header_
123636}
123637
123638func (c *RegionAutoscalersPatchCall) doRequest(alt string) (*http.Response, error) {
123639	reqHeaders := make(http.Header)
123640	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
123641	for k, v := range c.header_ {
123642		reqHeaders[k] = v
123643	}
123644	reqHeaders.Set("User-Agent", c.s.userAgent())
123645	var body io.Reader = nil
123646	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
123647	if err != nil {
123648		return nil, err
123649	}
123650	reqHeaders.Set("Content-Type", "application/json")
123651	c.urlParams_.Set("alt", alt)
123652	c.urlParams_.Set("prettyPrint", "false")
123653	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/autoscalers")
123654	urls += "?" + c.urlParams_.Encode()
123655	req, err := http.NewRequest("PATCH", urls, body)
123656	if err != nil {
123657		return nil, err
123658	}
123659	req.Header = reqHeaders
123660	googleapi.Expand(req.URL, map[string]string{
123661		"project": c.project,
123662		"region":  c.region,
123663	})
123664	return gensupport.SendRequest(c.ctx_, c.s.client, req)
123665}
123666
123667// Do executes the "compute.regionAutoscalers.patch" call.
123668// Exactly one of *Operation or error will be non-nil. Any non-2xx
123669// status code is an error. Response headers are in either
123670// *Operation.ServerResponse.Header or (if a response was returned at
123671// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
123672// to check whether the returned error was because
123673// http.StatusNotModified was returned.
123674func (c *RegionAutoscalersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
123675	gensupport.SetOptions(c.urlParams_, opts...)
123676	res, err := c.doRequest("json")
123677	if res != nil && res.StatusCode == http.StatusNotModified {
123678		if res.Body != nil {
123679			res.Body.Close()
123680		}
123681		return nil, &googleapi.Error{
123682			Code:   res.StatusCode,
123683			Header: res.Header,
123684		}
123685	}
123686	if err != nil {
123687		return nil, err
123688	}
123689	defer googleapi.CloseBody(res)
123690	if err := googleapi.CheckResponse(res); err != nil {
123691		return nil, err
123692	}
123693	ret := &Operation{
123694		ServerResponse: googleapi.ServerResponse{
123695			Header:         res.Header,
123696			HTTPStatusCode: res.StatusCode,
123697		},
123698	}
123699	target := &ret
123700	if err := gensupport.DecodeResponse(target, res); err != nil {
123701		return nil, err
123702	}
123703	return ret, nil
123704	// {
123705	//   "description": "Updates an autoscaler in the specified project using the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.",
123706	//   "httpMethod": "PATCH",
123707	//   "id": "compute.regionAutoscalers.patch",
123708	//   "parameterOrder": [
123709	//     "project",
123710	//     "region"
123711	//   ],
123712	//   "parameters": {
123713	//     "autoscaler": {
123714	//       "description": "Name of the autoscaler to patch.",
123715	//       "location": "query",
123716	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
123717	//       "type": "string"
123718	//     },
123719	//     "project": {
123720	//       "description": "Project ID for this request.",
123721	//       "location": "path",
123722	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
123723	//       "required": true,
123724	//       "type": "string"
123725	//     },
123726	//     "region": {
123727	//       "description": "Name of the region scoping this request.",
123728	//       "location": "path",
123729	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
123730	//       "required": true,
123731	//       "type": "string"
123732	//     },
123733	//     "requestId": {
123734	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
123735	//       "location": "query",
123736	//       "type": "string"
123737	//     }
123738	//   },
123739	//   "path": "projects/{project}/regions/{region}/autoscalers",
123740	//   "request": {
123741	//     "$ref": "Autoscaler"
123742	//   },
123743	//   "response": {
123744	//     "$ref": "Operation"
123745	//   },
123746	//   "scopes": [
123747	//     "https://www.googleapis.com/auth/cloud-platform",
123748	//     "https://www.googleapis.com/auth/compute"
123749	//   ]
123750	// }
123751
123752}
123753
123754// method id "compute.regionAutoscalers.testIamPermissions":
123755
123756type RegionAutoscalersTestIamPermissionsCall struct {
123757	s                      *Service
123758	project                string
123759	region                 string
123760	resource               string
123761	testpermissionsrequest *TestPermissionsRequest
123762	urlParams_             gensupport.URLParams
123763	ctx_                   context.Context
123764	header_                http.Header
123765}
123766
123767// TestIamPermissions: Returns permissions that a caller has on the
123768// specified resource.
123769func (r *RegionAutoscalersService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionAutoscalersTestIamPermissionsCall {
123770	c := &RegionAutoscalersTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
123771	c.project = project
123772	c.region = region
123773	c.resource = resource
123774	c.testpermissionsrequest = testpermissionsrequest
123775	return c
123776}
123777
123778// Fields allows partial responses to be retrieved. See
123779// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
123780// for more information.
123781func (c *RegionAutoscalersTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionAutoscalersTestIamPermissionsCall {
123782	c.urlParams_.Set("fields", googleapi.CombineFields(s))
123783	return c
123784}
123785
123786// Context sets the context to be used in this call's Do method. Any
123787// pending HTTP request will be aborted if the provided context is
123788// canceled.
123789func (c *RegionAutoscalersTestIamPermissionsCall) Context(ctx context.Context) *RegionAutoscalersTestIamPermissionsCall {
123790	c.ctx_ = ctx
123791	return c
123792}
123793
123794// Header returns an http.Header that can be modified by the caller to
123795// add HTTP headers to the request.
123796func (c *RegionAutoscalersTestIamPermissionsCall) Header() http.Header {
123797	if c.header_ == nil {
123798		c.header_ = make(http.Header)
123799	}
123800	return c.header_
123801}
123802
123803func (c *RegionAutoscalersTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
123804	reqHeaders := make(http.Header)
123805	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
123806	for k, v := range c.header_ {
123807		reqHeaders[k] = v
123808	}
123809	reqHeaders.Set("User-Agent", c.s.userAgent())
123810	var body io.Reader = nil
123811	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
123812	if err != nil {
123813		return nil, err
123814	}
123815	reqHeaders.Set("Content-Type", "application/json")
123816	c.urlParams_.Set("alt", alt)
123817	c.urlParams_.Set("prettyPrint", "false")
123818	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/autoscalers/{resource}/testIamPermissions")
123819	urls += "?" + c.urlParams_.Encode()
123820	req, err := http.NewRequest("POST", urls, body)
123821	if err != nil {
123822		return nil, err
123823	}
123824	req.Header = reqHeaders
123825	googleapi.Expand(req.URL, map[string]string{
123826		"project":  c.project,
123827		"region":   c.region,
123828		"resource": c.resource,
123829	})
123830	return gensupport.SendRequest(c.ctx_, c.s.client, req)
123831}
123832
123833// Do executes the "compute.regionAutoscalers.testIamPermissions" call.
123834// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
123835// non-2xx status code is an error. Response headers are in either
123836// *TestPermissionsResponse.ServerResponse.Header or (if a response was
123837// returned at all) in error.(*googleapi.Error).Header. Use
123838// googleapi.IsNotModified to check whether the returned error was
123839// because http.StatusNotModified was returned.
123840func (c *RegionAutoscalersTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
123841	gensupport.SetOptions(c.urlParams_, opts...)
123842	res, err := c.doRequest("json")
123843	if res != nil && res.StatusCode == http.StatusNotModified {
123844		if res.Body != nil {
123845			res.Body.Close()
123846		}
123847		return nil, &googleapi.Error{
123848			Code:   res.StatusCode,
123849			Header: res.Header,
123850		}
123851	}
123852	if err != nil {
123853		return nil, err
123854	}
123855	defer googleapi.CloseBody(res)
123856	if err := googleapi.CheckResponse(res); err != nil {
123857		return nil, err
123858	}
123859	ret := &TestPermissionsResponse{
123860		ServerResponse: googleapi.ServerResponse{
123861			Header:         res.Header,
123862			HTTPStatusCode: res.StatusCode,
123863		},
123864	}
123865	target := &ret
123866	if err := gensupport.DecodeResponse(target, res); err != nil {
123867		return nil, err
123868	}
123869	return ret, nil
123870	// {
123871	//   "description": "Returns permissions that a caller has on the specified resource.",
123872	//   "httpMethod": "POST",
123873	//   "id": "compute.regionAutoscalers.testIamPermissions",
123874	//   "parameterOrder": [
123875	//     "project",
123876	//     "region",
123877	//     "resource"
123878	//   ],
123879	//   "parameters": {
123880	//     "project": {
123881	//       "description": "Project ID for this request.",
123882	//       "location": "path",
123883	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
123884	//       "required": true,
123885	//       "type": "string"
123886	//     },
123887	//     "region": {
123888	//       "description": "The name of the region for this request.",
123889	//       "location": "path",
123890	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
123891	//       "required": true,
123892	//       "type": "string"
123893	//     },
123894	//     "resource": {
123895	//       "description": "Name or id of the resource for this request.",
123896	//       "location": "path",
123897	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
123898	//       "required": true,
123899	//       "type": "string"
123900	//     }
123901	//   },
123902	//   "path": "projects/{project}/regions/{region}/autoscalers/{resource}/testIamPermissions",
123903	//   "request": {
123904	//     "$ref": "TestPermissionsRequest"
123905	//   },
123906	//   "response": {
123907	//     "$ref": "TestPermissionsResponse"
123908	//   },
123909	//   "scopes": [
123910	//     "https://www.googleapis.com/auth/cloud-platform",
123911	//     "https://www.googleapis.com/auth/compute",
123912	//     "https://www.googleapis.com/auth/compute.readonly"
123913	//   ]
123914	// }
123915
123916}
123917
123918// method id "compute.regionAutoscalers.update":
123919
123920type RegionAutoscalersUpdateCall struct {
123921	s          *Service
123922	project    string
123923	region     string
123924	autoscaler *Autoscaler
123925	urlParams_ gensupport.URLParams
123926	ctx_       context.Context
123927	header_    http.Header
123928}
123929
123930// Update: Updates an autoscaler in the specified project using the data
123931// included in the request.
123932func (r *RegionAutoscalersService) Update(project string, region string, autoscaler *Autoscaler) *RegionAutoscalersUpdateCall {
123933	c := &RegionAutoscalersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
123934	c.project = project
123935	c.region = region
123936	c.autoscaler = autoscaler
123937	return c
123938}
123939
123940// Autoscaler sets the optional parameter "autoscaler": Name of the
123941// autoscaler to update.
123942func (c *RegionAutoscalersUpdateCall) Autoscaler(autoscaler string) *RegionAutoscalersUpdateCall {
123943	c.urlParams_.Set("autoscaler", autoscaler)
123944	return c
123945}
123946
123947// RequestId sets the optional parameter "requestId": An optional
123948// request ID to identify requests. Specify a unique request ID so that
123949// if you must retry your request, the server will know to ignore the
123950// request if it has already been completed.
123951//
123952// For example, consider a situation where you make an initial request
123953// and the request times out. If you make the request again with the
123954// same request ID, the server can check if original operation with the
123955// same request ID was received, and if so, will ignore the second
123956// request. This prevents clients from accidentally creating duplicate
123957// commitments.
123958//
123959// The request ID must be a valid UUID with the exception that zero UUID
123960// is not supported (00000000-0000-0000-0000-000000000000).
123961func (c *RegionAutoscalersUpdateCall) RequestId(requestId string) *RegionAutoscalersUpdateCall {
123962	c.urlParams_.Set("requestId", requestId)
123963	return c
123964}
123965
123966// Fields allows partial responses to be retrieved. See
123967// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
123968// for more information.
123969func (c *RegionAutoscalersUpdateCall) Fields(s ...googleapi.Field) *RegionAutoscalersUpdateCall {
123970	c.urlParams_.Set("fields", googleapi.CombineFields(s))
123971	return c
123972}
123973
123974// Context sets the context to be used in this call's Do method. Any
123975// pending HTTP request will be aborted if the provided context is
123976// canceled.
123977func (c *RegionAutoscalersUpdateCall) Context(ctx context.Context) *RegionAutoscalersUpdateCall {
123978	c.ctx_ = ctx
123979	return c
123980}
123981
123982// Header returns an http.Header that can be modified by the caller to
123983// add HTTP headers to the request.
123984func (c *RegionAutoscalersUpdateCall) Header() http.Header {
123985	if c.header_ == nil {
123986		c.header_ = make(http.Header)
123987	}
123988	return c.header_
123989}
123990
123991func (c *RegionAutoscalersUpdateCall) doRequest(alt string) (*http.Response, error) {
123992	reqHeaders := make(http.Header)
123993	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
123994	for k, v := range c.header_ {
123995		reqHeaders[k] = v
123996	}
123997	reqHeaders.Set("User-Agent", c.s.userAgent())
123998	var body io.Reader = nil
123999	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
124000	if err != nil {
124001		return nil, err
124002	}
124003	reqHeaders.Set("Content-Type", "application/json")
124004	c.urlParams_.Set("alt", alt)
124005	c.urlParams_.Set("prettyPrint", "false")
124006	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/autoscalers")
124007	urls += "?" + c.urlParams_.Encode()
124008	req, err := http.NewRequest("PUT", urls, body)
124009	if err != nil {
124010		return nil, err
124011	}
124012	req.Header = reqHeaders
124013	googleapi.Expand(req.URL, map[string]string{
124014		"project": c.project,
124015		"region":  c.region,
124016	})
124017	return gensupport.SendRequest(c.ctx_, c.s.client, req)
124018}
124019
124020// Do executes the "compute.regionAutoscalers.update" call.
124021// Exactly one of *Operation or error will be non-nil. Any non-2xx
124022// status code is an error. Response headers are in either
124023// *Operation.ServerResponse.Header or (if a response was returned at
124024// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
124025// to check whether the returned error was because
124026// http.StatusNotModified was returned.
124027func (c *RegionAutoscalersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
124028	gensupport.SetOptions(c.urlParams_, opts...)
124029	res, err := c.doRequest("json")
124030	if res != nil && res.StatusCode == http.StatusNotModified {
124031		if res.Body != nil {
124032			res.Body.Close()
124033		}
124034		return nil, &googleapi.Error{
124035			Code:   res.StatusCode,
124036			Header: res.Header,
124037		}
124038	}
124039	if err != nil {
124040		return nil, err
124041	}
124042	defer googleapi.CloseBody(res)
124043	if err := googleapi.CheckResponse(res); err != nil {
124044		return nil, err
124045	}
124046	ret := &Operation{
124047		ServerResponse: googleapi.ServerResponse{
124048			Header:         res.Header,
124049			HTTPStatusCode: res.StatusCode,
124050		},
124051	}
124052	target := &ret
124053	if err := gensupport.DecodeResponse(target, res); err != nil {
124054		return nil, err
124055	}
124056	return ret, nil
124057	// {
124058	//   "description": "Updates an autoscaler in the specified project using the data included in the request.",
124059	//   "httpMethod": "PUT",
124060	//   "id": "compute.regionAutoscalers.update",
124061	//   "parameterOrder": [
124062	//     "project",
124063	//     "region"
124064	//   ],
124065	//   "parameters": {
124066	//     "autoscaler": {
124067	//       "description": "Name of the autoscaler to update.",
124068	//       "location": "query",
124069	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
124070	//       "type": "string"
124071	//     },
124072	//     "project": {
124073	//       "description": "Project ID for this request.",
124074	//       "location": "path",
124075	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
124076	//       "required": true,
124077	//       "type": "string"
124078	//     },
124079	//     "region": {
124080	//       "description": "Name of the region scoping this request.",
124081	//       "location": "path",
124082	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
124083	//       "required": true,
124084	//       "type": "string"
124085	//     },
124086	//     "requestId": {
124087	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
124088	//       "location": "query",
124089	//       "type": "string"
124090	//     }
124091	//   },
124092	//   "path": "projects/{project}/regions/{region}/autoscalers",
124093	//   "request": {
124094	//     "$ref": "Autoscaler"
124095	//   },
124096	//   "response": {
124097	//     "$ref": "Operation"
124098	//   },
124099	//   "scopes": [
124100	//     "https://www.googleapis.com/auth/cloud-platform",
124101	//     "https://www.googleapis.com/auth/compute"
124102	//   ]
124103	// }
124104
124105}
124106
124107// method id "compute.regionBackendServices.delete":
124108
124109type RegionBackendServicesDeleteCall struct {
124110	s              *Service
124111	project        string
124112	region         string
124113	backendService string
124114	urlParams_     gensupport.URLParams
124115	ctx_           context.Context
124116	header_        http.Header
124117}
124118
124119// Delete: Deletes the specified regional BackendService resource.
124120func (r *RegionBackendServicesService) Delete(project string, region string, backendService string) *RegionBackendServicesDeleteCall {
124121	c := &RegionBackendServicesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
124122	c.project = project
124123	c.region = region
124124	c.backendService = backendService
124125	return c
124126}
124127
124128// RequestId sets the optional parameter "requestId": An optional
124129// request ID to identify requests. Specify a unique request ID so that
124130// if you must retry your request, the server will know to ignore the
124131// request if it has already been completed.
124132//
124133// For example, consider a situation where you make an initial request
124134// and the request times out. If you make the request again with the
124135// same request ID, the server can check if original operation with the
124136// same request ID was received, and if so, will ignore the second
124137// request. This prevents clients from accidentally creating duplicate
124138// commitments.
124139//
124140// The request ID must be a valid UUID with the exception that zero UUID
124141// is not supported (00000000-0000-0000-0000-000000000000).
124142func (c *RegionBackendServicesDeleteCall) RequestId(requestId string) *RegionBackendServicesDeleteCall {
124143	c.urlParams_.Set("requestId", requestId)
124144	return c
124145}
124146
124147// Fields allows partial responses to be retrieved. See
124148// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
124149// for more information.
124150func (c *RegionBackendServicesDeleteCall) Fields(s ...googleapi.Field) *RegionBackendServicesDeleteCall {
124151	c.urlParams_.Set("fields", googleapi.CombineFields(s))
124152	return c
124153}
124154
124155// Context sets the context to be used in this call's Do method. Any
124156// pending HTTP request will be aborted if the provided context is
124157// canceled.
124158func (c *RegionBackendServicesDeleteCall) Context(ctx context.Context) *RegionBackendServicesDeleteCall {
124159	c.ctx_ = ctx
124160	return c
124161}
124162
124163// Header returns an http.Header that can be modified by the caller to
124164// add HTTP headers to the request.
124165func (c *RegionBackendServicesDeleteCall) Header() http.Header {
124166	if c.header_ == nil {
124167		c.header_ = make(http.Header)
124168	}
124169	return c.header_
124170}
124171
124172func (c *RegionBackendServicesDeleteCall) doRequest(alt string) (*http.Response, error) {
124173	reqHeaders := make(http.Header)
124174	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
124175	for k, v := range c.header_ {
124176		reqHeaders[k] = v
124177	}
124178	reqHeaders.Set("User-Agent", c.s.userAgent())
124179	var body io.Reader = nil
124180	c.urlParams_.Set("alt", alt)
124181	c.urlParams_.Set("prettyPrint", "false")
124182	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices/{backendService}")
124183	urls += "?" + c.urlParams_.Encode()
124184	req, err := http.NewRequest("DELETE", urls, body)
124185	if err != nil {
124186		return nil, err
124187	}
124188	req.Header = reqHeaders
124189	googleapi.Expand(req.URL, map[string]string{
124190		"project":        c.project,
124191		"region":         c.region,
124192		"backendService": c.backendService,
124193	})
124194	return gensupport.SendRequest(c.ctx_, c.s.client, req)
124195}
124196
124197// Do executes the "compute.regionBackendServices.delete" call.
124198// Exactly one of *Operation or error will be non-nil. Any non-2xx
124199// status code is an error. Response headers are in either
124200// *Operation.ServerResponse.Header or (if a response was returned at
124201// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
124202// to check whether the returned error was because
124203// http.StatusNotModified was returned.
124204func (c *RegionBackendServicesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
124205	gensupport.SetOptions(c.urlParams_, opts...)
124206	res, err := c.doRequest("json")
124207	if res != nil && res.StatusCode == http.StatusNotModified {
124208		if res.Body != nil {
124209			res.Body.Close()
124210		}
124211		return nil, &googleapi.Error{
124212			Code:   res.StatusCode,
124213			Header: res.Header,
124214		}
124215	}
124216	if err != nil {
124217		return nil, err
124218	}
124219	defer googleapi.CloseBody(res)
124220	if err := googleapi.CheckResponse(res); err != nil {
124221		return nil, err
124222	}
124223	ret := &Operation{
124224		ServerResponse: googleapi.ServerResponse{
124225			Header:         res.Header,
124226			HTTPStatusCode: res.StatusCode,
124227		},
124228	}
124229	target := &ret
124230	if err := gensupport.DecodeResponse(target, res); err != nil {
124231		return nil, err
124232	}
124233	return ret, nil
124234	// {
124235	//   "description": "Deletes the specified regional BackendService resource.",
124236	//   "httpMethod": "DELETE",
124237	//   "id": "compute.regionBackendServices.delete",
124238	//   "parameterOrder": [
124239	//     "project",
124240	//     "region",
124241	//     "backendService"
124242	//   ],
124243	//   "parameters": {
124244	//     "backendService": {
124245	//       "description": "Name of the BackendService resource to delete.",
124246	//       "location": "path",
124247	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
124248	//       "required": true,
124249	//       "type": "string"
124250	//     },
124251	//     "project": {
124252	//       "description": "Project ID for this request.",
124253	//       "location": "path",
124254	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
124255	//       "required": true,
124256	//       "type": "string"
124257	//     },
124258	//     "region": {
124259	//       "description": "Name of the region scoping this request.",
124260	//       "location": "path",
124261	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
124262	//       "required": true,
124263	//       "type": "string"
124264	//     },
124265	//     "requestId": {
124266	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
124267	//       "location": "query",
124268	//       "type": "string"
124269	//     }
124270	//   },
124271	//   "path": "projects/{project}/regions/{region}/backendServices/{backendService}",
124272	//   "response": {
124273	//     "$ref": "Operation"
124274	//   },
124275	//   "scopes": [
124276	//     "https://www.googleapis.com/auth/cloud-platform",
124277	//     "https://www.googleapis.com/auth/compute"
124278	//   ]
124279	// }
124280
124281}
124282
124283// method id "compute.regionBackendServices.get":
124284
124285type RegionBackendServicesGetCall struct {
124286	s              *Service
124287	project        string
124288	region         string
124289	backendService string
124290	urlParams_     gensupport.URLParams
124291	ifNoneMatch_   string
124292	ctx_           context.Context
124293	header_        http.Header
124294}
124295
124296// Get: Returns the specified regional BackendService resource.
124297func (r *RegionBackendServicesService) Get(project string, region string, backendService string) *RegionBackendServicesGetCall {
124298	c := &RegionBackendServicesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
124299	c.project = project
124300	c.region = region
124301	c.backendService = backendService
124302	return c
124303}
124304
124305// Fields allows partial responses to be retrieved. See
124306// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
124307// for more information.
124308func (c *RegionBackendServicesGetCall) Fields(s ...googleapi.Field) *RegionBackendServicesGetCall {
124309	c.urlParams_.Set("fields", googleapi.CombineFields(s))
124310	return c
124311}
124312
124313// IfNoneMatch sets the optional parameter which makes the operation
124314// fail if the object's ETag matches the given value. This is useful for
124315// getting updates only after the object has changed since the last
124316// request. Use googleapi.IsNotModified to check whether the response
124317// error from Do is the result of In-None-Match.
124318func (c *RegionBackendServicesGetCall) IfNoneMatch(entityTag string) *RegionBackendServicesGetCall {
124319	c.ifNoneMatch_ = entityTag
124320	return c
124321}
124322
124323// Context sets the context to be used in this call's Do method. Any
124324// pending HTTP request will be aborted if the provided context is
124325// canceled.
124326func (c *RegionBackendServicesGetCall) Context(ctx context.Context) *RegionBackendServicesGetCall {
124327	c.ctx_ = ctx
124328	return c
124329}
124330
124331// Header returns an http.Header that can be modified by the caller to
124332// add HTTP headers to the request.
124333func (c *RegionBackendServicesGetCall) Header() http.Header {
124334	if c.header_ == nil {
124335		c.header_ = make(http.Header)
124336	}
124337	return c.header_
124338}
124339
124340func (c *RegionBackendServicesGetCall) doRequest(alt string) (*http.Response, error) {
124341	reqHeaders := make(http.Header)
124342	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
124343	for k, v := range c.header_ {
124344		reqHeaders[k] = v
124345	}
124346	reqHeaders.Set("User-Agent", c.s.userAgent())
124347	if c.ifNoneMatch_ != "" {
124348		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
124349	}
124350	var body io.Reader = nil
124351	c.urlParams_.Set("alt", alt)
124352	c.urlParams_.Set("prettyPrint", "false")
124353	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices/{backendService}")
124354	urls += "?" + c.urlParams_.Encode()
124355	req, err := http.NewRequest("GET", urls, body)
124356	if err != nil {
124357		return nil, err
124358	}
124359	req.Header = reqHeaders
124360	googleapi.Expand(req.URL, map[string]string{
124361		"project":        c.project,
124362		"region":         c.region,
124363		"backendService": c.backendService,
124364	})
124365	return gensupport.SendRequest(c.ctx_, c.s.client, req)
124366}
124367
124368// Do executes the "compute.regionBackendServices.get" call.
124369// Exactly one of *BackendService or error will be non-nil. Any non-2xx
124370// status code is an error. Response headers are in either
124371// *BackendService.ServerResponse.Header or (if a response was returned
124372// at all) in error.(*googleapi.Error).Header. Use
124373// googleapi.IsNotModified to check whether the returned error was
124374// because http.StatusNotModified was returned.
124375func (c *RegionBackendServicesGetCall) Do(opts ...googleapi.CallOption) (*BackendService, error) {
124376	gensupport.SetOptions(c.urlParams_, opts...)
124377	res, err := c.doRequest("json")
124378	if res != nil && res.StatusCode == http.StatusNotModified {
124379		if res.Body != nil {
124380			res.Body.Close()
124381		}
124382		return nil, &googleapi.Error{
124383			Code:   res.StatusCode,
124384			Header: res.Header,
124385		}
124386	}
124387	if err != nil {
124388		return nil, err
124389	}
124390	defer googleapi.CloseBody(res)
124391	if err := googleapi.CheckResponse(res); err != nil {
124392		return nil, err
124393	}
124394	ret := &BackendService{
124395		ServerResponse: googleapi.ServerResponse{
124396			Header:         res.Header,
124397			HTTPStatusCode: res.StatusCode,
124398		},
124399	}
124400	target := &ret
124401	if err := gensupport.DecodeResponse(target, res); err != nil {
124402		return nil, err
124403	}
124404	return ret, nil
124405	// {
124406	//   "description": "Returns the specified regional BackendService resource.",
124407	//   "httpMethod": "GET",
124408	//   "id": "compute.regionBackendServices.get",
124409	//   "parameterOrder": [
124410	//     "project",
124411	//     "region",
124412	//     "backendService"
124413	//   ],
124414	//   "parameters": {
124415	//     "backendService": {
124416	//       "description": "Name of the BackendService resource to return.",
124417	//       "location": "path",
124418	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
124419	//       "required": true,
124420	//       "type": "string"
124421	//     },
124422	//     "project": {
124423	//       "description": "Project ID for this request.",
124424	//       "location": "path",
124425	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
124426	//       "required": true,
124427	//       "type": "string"
124428	//     },
124429	//     "region": {
124430	//       "description": "Name of the region scoping this request.",
124431	//       "location": "path",
124432	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
124433	//       "required": true,
124434	//       "type": "string"
124435	//     }
124436	//   },
124437	//   "path": "projects/{project}/regions/{region}/backendServices/{backendService}",
124438	//   "response": {
124439	//     "$ref": "BackendService"
124440	//   },
124441	//   "scopes": [
124442	//     "https://www.googleapis.com/auth/cloud-platform",
124443	//     "https://www.googleapis.com/auth/compute",
124444	//     "https://www.googleapis.com/auth/compute.readonly"
124445	//   ]
124446	// }
124447
124448}
124449
124450// method id "compute.regionBackendServices.getHealth":
124451
124452type RegionBackendServicesGetHealthCall struct {
124453	s                      *Service
124454	project                string
124455	region                 string
124456	backendService         string
124457	resourcegroupreference *ResourceGroupReference
124458	urlParams_             gensupport.URLParams
124459	ctx_                   context.Context
124460	header_                http.Header
124461}
124462
124463// GetHealth: Gets the most recent health check results for this
124464// regional BackendService.
124465func (r *RegionBackendServicesService) GetHealth(project string, region string, backendService string, resourcegroupreference *ResourceGroupReference) *RegionBackendServicesGetHealthCall {
124466	c := &RegionBackendServicesGetHealthCall{s: r.s, urlParams_: make(gensupport.URLParams)}
124467	c.project = project
124468	c.region = region
124469	c.backendService = backendService
124470	c.resourcegroupreference = resourcegroupreference
124471	return c
124472}
124473
124474// Fields allows partial responses to be retrieved. See
124475// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
124476// for more information.
124477func (c *RegionBackendServicesGetHealthCall) Fields(s ...googleapi.Field) *RegionBackendServicesGetHealthCall {
124478	c.urlParams_.Set("fields", googleapi.CombineFields(s))
124479	return c
124480}
124481
124482// Context sets the context to be used in this call's Do method. Any
124483// pending HTTP request will be aborted if the provided context is
124484// canceled.
124485func (c *RegionBackendServicesGetHealthCall) Context(ctx context.Context) *RegionBackendServicesGetHealthCall {
124486	c.ctx_ = ctx
124487	return c
124488}
124489
124490// Header returns an http.Header that can be modified by the caller to
124491// add HTTP headers to the request.
124492func (c *RegionBackendServicesGetHealthCall) Header() http.Header {
124493	if c.header_ == nil {
124494		c.header_ = make(http.Header)
124495	}
124496	return c.header_
124497}
124498
124499func (c *RegionBackendServicesGetHealthCall) doRequest(alt string) (*http.Response, error) {
124500	reqHeaders := make(http.Header)
124501	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
124502	for k, v := range c.header_ {
124503		reqHeaders[k] = v
124504	}
124505	reqHeaders.Set("User-Agent", c.s.userAgent())
124506	var body io.Reader = nil
124507	body, err := googleapi.WithoutDataWrapper.JSONReader(c.resourcegroupreference)
124508	if err != nil {
124509		return nil, err
124510	}
124511	reqHeaders.Set("Content-Type", "application/json")
124512	c.urlParams_.Set("alt", alt)
124513	c.urlParams_.Set("prettyPrint", "false")
124514	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices/{backendService}/getHealth")
124515	urls += "?" + c.urlParams_.Encode()
124516	req, err := http.NewRequest("POST", urls, body)
124517	if err != nil {
124518		return nil, err
124519	}
124520	req.Header = reqHeaders
124521	googleapi.Expand(req.URL, map[string]string{
124522		"project":        c.project,
124523		"region":         c.region,
124524		"backendService": c.backendService,
124525	})
124526	return gensupport.SendRequest(c.ctx_, c.s.client, req)
124527}
124528
124529// Do executes the "compute.regionBackendServices.getHealth" call.
124530// Exactly one of *BackendServiceGroupHealth or error will be non-nil.
124531// Any non-2xx status code is an error. Response headers are in either
124532// *BackendServiceGroupHealth.ServerResponse.Header or (if a response
124533// was returned at all) in error.(*googleapi.Error).Header. Use
124534// googleapi.IsNotModified to check whether the returned error was
124535// because http.StatusNotModified was returned.
124536func (c *RegionBackendServicesGetHealthCall) Do(opts ...googleapi.CallOption) (*BackendServiceGroupHealth, error) {
124537	gensupport.SetOptions(c.urlParams_, opts...)
124538	res, err := c.doRequest("json")
124539	if res != nil && res.StatusCode == http.StatusNotModified {
124540		if res.Body != nil {
124541			res.Body.Close()
124542		}
124543		return nil, &googleapi.Error{
124544			Code:   res.StatusCode,
124545			Header: res.Header,
124546		}
124547	}
124548	if err != nil {
124549		return nil, err
124550	}
124551	defer googleapi.CloseBody(res)
124552	if err := googleapi.CheckResponse(res); err != nil {
124553		return nil, err
124554	}
124555	ret := &BackendServiceGroupHealth{
124556		ServerResponse: googleapi.ServerResponse{
124557			Header:         res.Header,
124558			HTTPStatusCode: res.StatusCode,
124559		},
124560	}
124561	target := &ret
124562	if err := gensupport.DecodeResponse(target, res); err != nil {
124563		return nil, err
124564	}
124565	return ret, nil
124566	// {
124567	//   "description": "Gets the most recent health check results for this regional BackendService.",
124568	//   "httpMethod": "POST",
124569	//   "id": "compute.regionBackendServices.getHealth",
124570	//   "parameterOrder": [
124571	//     "project",
124572	//     "region",
124573	//     "backendService"
124574	//   ],
124575	//   "parameters": {
124576	//     "backendService": {
124577	//       "description": "Name of the BackendService resource for which to get health.",
124578	//       "location": "path",
124579	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
124580	//       "required": true,
124581	//       "type": "string"
124582	//     },
124583	//     "project": {
124584	//       "location": "path",
124585	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
124586	//       "required": true,
124587	//       "type": "string"
124588	//     },
124589	//     "region": {
124590	//       "description": "Name of the region scoping this request.",
124591	//       "location": "path",
124592	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
124593	//       "required": true,
124594	//       "type": "string"
124595	//     }
124596	//   },
124597	//   "path": "projects/{project}/regions/{region}/backendServices/{backendService}/getHealth",
124598	//   "request": {
124599	//     "$ref": "ResourceGroupReference"
124600	//   },
124601	//   "response": {
124602	//     "$ref": "BackendServiceGroupHealth"
124603	//   },
124604	//   "scopes": [
124605	//     "https://www.googleapis.com/auth/cloud-platform",
124606	//     "https://www.googleapis.com/auth/compute",
124607	//     "https://www.googleapis.com/auth/compute.readonly"
124608	//   ]
124609	// }
124610
124611}
124612
124613// method id "compute.regionBackendServices.insert":
124614
124615type RegionBackendServicesInsertCall struct {
124616	s              *Service
124617	project        string
124618	region         string
124619	backendservice *BackendService
124620	urlParams_     gensupport.URLParams
124621	ctx_           context.Context
124622	header_        http.Header
124623}
124624
124625// Insert: Creates a regional BackendService resource in the specified
124626// project using the data included in the request. For more information,
124627// see  Backend services overview.
124628func (r *RegionBackendServicesService) Insert(project string, region string, backendservice *BackendService) *RegionBackendServicesInsertCall {
124629	c := &RegionBackendServicesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
124630	c.project = project
124631	c.region = region
124632	c.backendservice = backendservice
124633	return c
124634}
124635
124636// RequestId sets the optional parameter "requestId": An optional
124637// request ID to identify requests. Specify a unique request ID so that
124638// if you must retry your request, the server will know to ignore the
124639// request if it has already been completed.
124640//
124641// For example, consider a situation where you make an initial request
124642// and the request times out. If you make the request again with the
124643// same request ID, the server can check if original operation with the
124644// same request ID was received, and if so, will ignore the second
124645// request. This prevents clients from accidentally creating duplicate
124646// commitments.
124647//
124648// The request ID must be a valid UUID with the exception that zero UUID
124649// is not supported (00000000-0000-0000-0000-000000000000).
124650func (c *RegionBackendServicesInsertCall) RequestId(requestId string) *RegionBackendServicesInsertCall {
124651	c.urlParams_.Set("requestId", requestId)
124652	return c
124653}
124654
124655// Fields allows partial responses to be retrieved. See
124656// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
124657// for more information.
124658func (c *RegionBackendServicesInsertCall) Fields(s ...googleapi.Field) *RegionBackendServicesInsertCall {
124659	c.urlParams_.Set("fields", googleapi.CombineFields(s))
124660	return c
124661}
124662
124663// Context sets the context to be used in this call's Do method. Any
124664// pending HTTP request will be aborted if the provided context is
124665// canceled.
124666func (c *RegionBackendServicesInsertCall) Context(ctx context.Context) *RegionBackendServicesInsertCall {
124667	c.ctx_ = ctx
124668	return c
124669}
124670
124671// Header returns an http.Header that can be modified by the caller to
124672// add HTTP headers to the request.
124673func (c *RegionBackendServicesInsertCall) Header() http.Header {
124674	if c.header_ == nil {
124675		c.header_ = make(http.Header)
124676	}
124677	return c.header_
124678}
124679
124680func (c *RegionBackendServicesInsertCall) doRequest(alt string) (*http.Response, error) {
124681	reqHeaders := make(http.Header)
124682	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
124683	for k, v := range c.header_ {
124684		reqHeaders[k] = v
124685	}
124686	reqHeaders.Set("User-Agent", c.s.userAgent())
124687	var body io.Reader = nil
124688	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
124689	if err != nil {
124690		return nil, err
124691	}
124692	reqHeaders.Set("Content-Type", "application/json")
124693	c.urlParams_.Set("alt", alt)
124694	c.urlParams_.Set("prettyPrint", "false")
124695	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices")
124696	urls += "?" + c.urlParams_.Encode()
124697	req, err := http.NewRequest("POST", urls, body)
124698	if err != nil {
124699		return nil, err
124700	}
124701	req.Header = reqHeaders
124702	googleapi.Expand(req.URL, map[string]string{
124703		"project": c.project,
124704		"region":  c.region,
124705	})
124706	return gensupport.SendRequest(c.ctx_, c.s.client, req)
124707}
124708
124709// Do executes the "compute.regionBackendServices.insert" call.
124710// Exactly one of *Operation or error will be non-nil. Any non-2xx
124711// status code is an error. Response headers are in either
124712// *Operation.ServerResponse.Header or (if a response was returned at
124713// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
124714// to check whether the returned error was because
124715// http.StatusNotModified was returned.
124716func (c *RegionBackendServicesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
124717	gensupport.SetOptions(c.urlParams_, opts...)
124718	res, err := c.doRequest("json")
124719	if res != nil && res.StatusCode == http.StatusNotModified {
124720		if res.Body != nil {
124721			res.Body.Close()
124722		}
124723		return nil, &googleapi.Error{
124724			Code:   res.StatusCode,
124725			Header: res.Header,
124726		}
124727	}
124728	if err != nil {
124729		return nil, err
124730	}
124731	defer googleapi.CloseBody(res)
124732	if err := googleapi.CheckResponse(res); err != nil {
124733		return nil, err
124734	}
124735	ret := &Operation{
124736		ServerResponse: googleapi.ServerResponse{
124737			Header:         res.Header,
124738			HTTPStatusCode: res.StatusCode,
124739		},
124740	}
124741	target := &ret
124742	if err := gensupport.DecodeResponse(target, res); err != nil {
124743		return nil, err
124744	}
124745	return ret, nil
124746	// {
124747	//   "description": "Creates a regional BackendService resource in the specified project using the data included in the request. For more information, see  Backend services overview.",
124748	//   "httpMethod": "POST",
124749	//   "id": "compute.regionBackendServices.insert",
124750	//   "parameterOrder": [
124751	//     "project",
124752	//     "region"
124753	//   ],
124754	//   "parameters": {
124755	//     "project": {
124756	//       "description": "Project ID for this request.",
124757	//       "location": "path",
124758	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
124759	//       "required": true,
124760	//       "type": "string"
124761	//     },
124762	//     "region": {
124763	//       "description": "Name of the region scoping this request.",
124764	//       "location": "path",
124765	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
124766	//       "required": true,
124767	//       "type": "string"
124768	//     },
124769	//     "requestId": {
124770	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
124771	//       "location": "query",
124772	//       "type": "string"
124773	//     }
124774	//   },
124775	//   "path": "projects/{project}/regions/{region}/backendServices",
124776	//   "request": {
124777	//     "$ref": "BackendService"
124778	//   },
124779	//   "response": {
124780	//     "$ref": "Operation"
124781	//   },
124782	//   "scopes": [
124783	//     "https://www.googleapis.com/auth/cloud-platform",
124784	//     "https://www.googleapis.com/auth/compute"
124785	//   ]
124786	// }
124787
124788}
124789
124790// method id "compute.regionBackendServices.list":
124791
124792type RegionBackendServicesListCall struct {
124793	s            *Service
124794	project      string
124795	region       string
124796	urlParams_   gensupport.URLParams
124797	ifNoneMatch_ string
124798	ctx_         context.Context
124799	header_      http.Header
124800}
124801
124802// List: Retrieves the list of regional BackendService resources
124803// available to the specified project in the given region.
124804func (r *RegionBackendServicesService) List(project string, region string) *RegionBackendServicesListCall {
124805	c := &RegionBackendServicesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
124806	c.project = project
124807	c.region = region
124808	return c
124809}
124810
124811// Filter sets the optional parameter "filter": A filter expression that
124812// filters resources listed in the response. The expression must specify
124813// the field name, a comparison operator, and the value that you want to
124814// use for filtering. The value must be a string, a number, or a
124815// boolean. The comparison operator must be either `=`, `!=`, `>`, or
124816// `<`.
124817//
124818// For example, if you are filtering Compute Engine instances, you can
124819// exclude instances named `example-instance` by specifying `name !=
124820// example-instance`.
124821//
124822// You can also filter nested fields. For example, you could specify
124823// `scheduling.automaticRestart = false` to include instances only if
124824// they are not scheduled for automatic restarts. You can use filtering
124825// on nested fields to filter based on resource labels.
124826//
124827// To filter on multiple expressions, provide each separate expression
124828// within parentheses. For example: ``` (scheduling.automaticRestart =
124829// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
124830// is an `AND` expression. However, you can include `AND` and `OR`
124831// expressions explicitly. For example: ``` (cpuPlatform = "Intel
124832// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
124833// (scheduling.automaticRestart = true) ```
124834func (c *RegionBackendServicesListCall) Filter(filter string) *RegionBackendServicesListCall {
124835	c.urlParams_.Set("filter", filter)
124836	return c
124837}
124838
124839// MaxResults sets the optional parameter "maxResults": The maximum
124840// number of results per page that should be returned. If the number of
124841// available results is larger than `maxResults`, Compute Engine returns
124842// a `nextPageToken` that can be used to get the next page of results in
124843// subsequent list requests. Acceptable values are `0` to `500`,
124844// inclusive. (Default: `500`)
124845func (c *RegionBackendServicesListCall) MaxResults(maxResults int64) *RegionBackendServicesListCall {
124846	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
124847	return c
124848}
124849
124850// OrderBy sets the optional parameter "orderBy": Sorts list results by
124851// a certain order. By default, results are returned in alphanumerical
124852// order based on the resource name.
124853//
124854// You can also sort results in descending order based on the creation
124855// timestamp using `orderBy="creationTimestamp desc". This sorts
124856// results based on the `creationTimestamp` field in reverse
124857// chronological order (newest result first). Use this to sort resources
124858// like operations so that the newest operation is returned
124859// first.
124860//
124861// Currently, only sorting by `name` or `creationTimestamp desc` is
124862// supported.
124863func (c *RegionBackendServicesListCall) OrderBy(orderBy string) *RegionBackendServicesListCall {
124864	c.urlParams_.Set("orderBy", orderBy)
124865	return c
124866}
124867
124868// PageToken sets the optional parameter "pageToken": Specifies a page
124869// token to use. Set `pageToken` to the `nextPageToken` returned by a
124870// previous list request to get the next page of results.
124871func (c *RegionBackendServicesListCall) PageToken(pageToken string) *RegionBackendServicesListCall {
124872	c.urlParams_.Set("pageToken", pageToken)
124873	return c
124874}
124875
124876// ReturnPartialSuccess sets the optional parameter
124877// "returnPartialSuccess": Opt-in for partial success behavior which
124878// provides partial results in case of failure. The default value is
124879// false.
124880func (c *RegionBackendServicesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionBackendServicesListCall {
124881	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
124882	return c
124883}
124884
124885// Fields allows partial responses to be retrieved. See
124886// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
124887// for more information.
124888func (c *RegionBackendServicesListCall) Fields(s ...googleapi.Field) *RegionBackendServicesListCall {
124889	c.urlParams_.Set("fields", googleapi.CombineFields(s))
124890	return c
124891}
124892
124893// IfNoneMatch sets the optional parameter which makes the operation
124894// fail if the object's ETag matches the given value. This is useful for
124895// getting updates only after the object has changed since the last
124896// request. Use googleapi.IsNotModified to check whether the response
124897// error from Do is the result of In-None-Match.
124898func (c *RegionBackendServicesListCall) IfNoneMatch(entityTag string) *RegionBackendServicesListCall {
124899	c.ifNoneMatch_ = entityTag
124900	return c
124901}
124902
124903// Context sets the context to be used in this call's Do method. Any
124904// pending HTTP request will be aborted if the provided context is
124905// canceled.
124906func (c *RegionBackendServicesListCall) Context(ctx context.Context) *RegionBackendServicesListCall {
124907	c.ctx_ = ctx
124908	return c
124909}
124910
124911// Header returns an http.Header that can be modified by the caller to
124912// add HTTP headers to the request.
124913func (c *RegionBackendServicesListCall) Header() http.Header {
124914	if c.header_ == nil {
124915		c.header_ = make(http.Header)
124916	}
124917	return c.header_
124918}
124919
124920func (c *RegionBackendServicesListCall) doRequest(alt string) (*http.Response, error) {
124921	reqHeaders := make(http.Header)
124922	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
124923	for k, v := range c.header_ {
124924		reqHeaders[k] = v
124925	}
124926	reqHeaders.Set("User-Agent", c.s.userAgent())
124927	if c.ifNoneMatch_ != "" {
124928		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
124929	}
124930	var body io.Reader = nil
124931	c.urlParams_.Set("alt", alt)
124932	c.urlParams_.Set("prettyPrint", "false")
124933	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices")
124934	urls += "?" + c.urlParams_.Encode()
124935	req, err := http.NewRequest("GET", urls, body)
124936	if err != nil {
124937		return nil, err
124938	}
124939	req.Header = reqHeaders
124940	googleapi.Expand(req.URL, map[string]string{
124941		"project": c.project,
124942		"region":  c.region,
124943	})
124944	return gensupport.SendRequest(c.ctx_, c.s.client, req)
124945}
124946
124947// Do executes the "compute.regionBackendServices.list" call.
124948// Exactly one of *BackendServiceList or error will be non-nil. Any
124949// non-2xx status code is an error. Response headers are in either
124950// *BackendServiceList.ServerResponse.Header or (if a response was
124951// returned at all) in error.(*googleapi.Error).Header. Use
124952// googleapi.IsNotModified to check whether the returned error was
124953// because http.StatusNotModified was returned.
124954func (c *RegionBackendServicesListCall) Do(opts ...googleapi.CallOption) (*BackendServiceList, error) {
124955	gensupport.SetOptions(c.urlParams_, opts...)
124956	res, err := c.doRequest("json")
124957	if res != nil && res.StatusCode == http.StatusNotModified {
124958		if res.Body != nil {
124959			res.Body.Close()
124960		}
124961		return nil, &googleapi.Error{
124962			Code:   res.StatusCode,
124963			Header: res.Header,
124964		}
124965	}
124966	if err != nil {
124967		return nil, err
124968	}
124969	defer googleapi.CloseBody(res)
124970	if err := googleapi.CheckResponse(res); err != nil {
124971		return nil, err
124972	}
124973	ret := &BackendServiceList{
124974		ServerResponse: googleapi.ServerResponse{
124975			Header:         res.Header,
124976			HTTPStatusCode: res.StatusCode,
124977		},
124978	}
124979	target := &ret
124980	if err := gensupport.DecodeResponse(target, res); err != nil {
124981		return nil, err
124982	}
124983	return ret, nil
124984	// {
124985	//   "description": "Retrieves the list of regional BackendService resources available to the specified project in the given region.",
124986	//   "httpMethod": "GET",
124987	//   "id": "compute.regionBackendServices.list",
124988	//   "parameterOrder": [
124989	//     "project",
124990	//     "region"
124991	//   ],
124992	//   "parameters": {
124993	//     "filter": {
124994	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
124995	//       "location": "query",
124996	//       "type": "string"
124997	//     },
124998	//     "maxResults": {
124999	//       "default": "500",
125000	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
125001	//       "format": "uint32",
125002	//       "location": "query",
125003	//       "minimum": "0",
125004	//       "type": "integer"
125005	//     },
125006	//     "orderBy": {
125007	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
125008	//       "location": "query",
125009	//       "type": "string"
125010	//     },
125011	//     "pageToken": {
125012	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
125013	//       "location": "query",
125014	//       "type": "string"
125015	//     },
125016	//     "project": {
125017	//       "description": "Project ID for this request.",
125018	//       "location": "path",
125019	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
125020	//       "required": true,
125021	//       "type": "string"
125022	//     },
125023	//     "region": {
125024	//       "description": "Name of the region scoping this request.",
125025	//       "location": "path",
125026	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
125027	//       "required": true,
125028	//       "type": "string"
125029	//     },
125030	//     "returnPartialSuccess": {
125031	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
125032	//       "location": "query",
125033	//       "type": "boolean"
125034	//     }
125035	//   },
125036	//   "path": "projects/{project}/regions/{region}/backendServices",
125037	//   "response": {
125038	//     "$ref": "BackendServiceList"
125039	//   },
125040	//   "scopes": [
125041	//     "https://www.googleapis.com/auth/cloud-platform",
125042	//     "https://www.googleapis.com/auth/compute",
125043	//     "https://www.googleapis.com/auth/compute.readonly"
125044	//   ]
125045	// }
125046
125047}
125048
125049// Pages invokes f for each page of results.
125050// A non-nil error returned from f will halt the iteration.
125051// The provided context supersedes any context provided to the Context method.
125052func (c *RegionBackendServicesListCall) Pages(ctx context.Context, f func(*BackendServiceList) error) error {
125053	c.ctx_ = ctx
125054	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
125055	for {
125056		x, err := c.Do()
125057		if err != nil {
125058			return err
125059		}
125060		if err := f(x); err != nil {
125061			return err
125062		}
125063		if x.NextPageToken == "" {
125064			return nil
125065		}
125066		c.PageToken(x.NextPageToken)
125067	}
125068}
125069
125070// method id "compute.regionBackendServices.patch":
125071
125072type RegionBackendServicesPatchCall struct {
125073	s              *Service
125074	project        string
125075	region         string
125076	backendService string
125077	backendservice *BackendService
125078	urlParams_     gensupport.URLParams
125079	ctx_           context.Context
125080	header_        http.Header
125081}
125082
125083// Patch: Updates the specified regional BackendService resource with
125084// the data included in the request. For more information, see
125085// Understanding backend services This method supports PATCH semantics
125086// and uses the JSON merge patch format and processing rules.
125087func (r *RegionBackendServicesService) Patch(project string, region string, backendService string, backendservice *BackendService) *RegionBackendServicesPatchCall {
125088	c := &RegionBackendServicesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
125089	c.project = project
125090	c.region = region
125091	c.backendService = backendService
125092	c.backendservice = backendservice
125093	return c
125094}
125095
125096// RequestId sets the optional parameter "requestId": An optional
125097// request ID to identify requests. Specify a unique request ID so that
125098// if you must retry your request, the server will know to ignore the
125099// request if it has already been completed.
125100//
125101// For example, consider a situation where you make an initial request
125102// and the request times out. If you make the request again with the
125103// same request ID, the server can check if original operation with the
125104// same request ID was received, and if so, will ignore the second
125105// request. This prevents clients from accidentally creating duplicate
125106// commitments.
125107//
125108// The request ID must be a valid UUID with the exception that zero UUID
125109// is not supported (00000000-0000-0000-0000-000000000000).
125110func (c *RegionBackendServicesPatchCall) RequestId(requestId string) *RegionBackendServicesPatchCall {
125111	c.urlParams_.Set("requestId", requestId)
125112	return c
125113}
125114
125115// Fields allows partial responses to be retrieved. See
125116// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
125117// for more information.
125118func (c *RegionBackendServicesPatchCall) Fields(s ...googleapi.Field) *RegionBackendServicesPatchCall {
125119	c.urlParams_.Set("fields", googleapi.CombineFields(s))
125120	return c
125121}
125122
125123// Context sets the context to be used in this call's Do method. Any
125124// pending HTTP request will be aborted if the provided context is
125125// canceled.
125126func (c *RegionBackendServicesPatchCall) Context(ctx context.Context) *RegionBackendServicesPatchCall {
125127	c.ctx_ = ctx
125128	return c
125129}
125130
125131// Header returns an http.Header that can be modified by the caller to
125132// add HTTP headers to the request.
125133func (c *RegionBackendServicesPatchCall) Header() http.Header {
125134	if c.header_ == nil {
125135		c.header_ = make(http.Header)
125136	}
125137	return c.header_
125138}
125139
125140func (c *RegionBackendServicesPatchCall) doRequest(alt string) (*http.Response, error) {
125141	reqHeaders := make(http.Header)
125142	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
125143	for k, v := range c.header_ {
125144		reqHeaders[k] = v
125145	}
125146	reqHeaders.Set("User-Agent", c.s.userAgent())
125147	var body io.Reader = nil
125148	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
125149	if err != nil {
125150		return nil, err
125151	}
125152	reqHeaders.Set("Content-Type", "application/json")
125153	c.urlParams_.Set("alt", alt)
125154	c.urlParams_.Set("prettyPrint", "false")
125155	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices/{backendService}")
125156	urls += "?" + c.urlParams_.Encode()
125157	req, err := http.NewRequest("PATCH", urls, body)
125158	if err != nil {
125159		return nil, err
125160	}
125161	req.Header = reqHeaders
125162	googleapi.Expand(req.URL, map[string]string{
125163		"project":        c.project,
125164		"region":         c.region,
125165		"backendService": c.backendService,
125166	})
125167	return gensupport.SendRequest(c.ctx_, c.s.client, req)
125168}
125169
125170// Do executes the "compute.regionBackendServices.patch" call.
125171// Exactly one of *Operation or error will be non-nil. Any non-2xx
125172// status code is an error. Response headers are in either
125173// *Operation.ServerResponse.Header or (if a response was returned at
125174// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
125175// to check whether the returned error was because
125176// http.StatusNotModified was returned.
125177func (c *RegionBackendServicesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
125178	gensupport.SetOptions(c.urlParams_, opts...)
125179	res, err := c.doRequest("json")
125180	if res != nil && res.StatusCode == http.StatusNotModified {
125181		if res.Body != nil {
125182			res.Body.Close()
125183		}
125184		return nil, &googleapi.Error{
125185			Code:   res.StatusCode,
125186			Header: res.Header,
125187		}
125188	}
125189	if err != nil {
125190		return nil, err
125191	}
125192	defer googleapi.CloseBody(res)
125193	if err := googleapi.CheckResponse(res); err != nil {
125194		return nil, err
125195	}
125196	ret := &Operation{
125197		ServerResponse: googleapi.ServerResponse{
125198			Header:         res.Header,
125199			HTTPStatusCode: res.StatusCode,
125200		},
125201	}
125202	target := &ret
125203	if err := gensupport.DecodeResponse(target, res); err != nil {
125204		return nil, err
125205	}
125206	return ret, nil
125207	// {
125208	//   "description": "Updates the specified regional BackendService resource with the data included in the request. For more information, see  Understanding backend services This method supports PATCH semantics and uses the JSON merge patch format and processing rules.",
125209	//   "httpMethod": "PATCH",
125210	//   "id": "compute.regionBackendServices.patch",
125211	//   "parameterOrder": [
125212	//     "project",
125213	//     "region",
125214	//     "backendService"
125215	//   ],
125216	//   "parameters": {
125217	//     "backendService": {
125218	//       "description": "Name of the BackendService resource to patch.",
125219	//       "location": "path",
125220	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
125221	//       "required": true,
125222	//       "type": "string"
125223	//     },
125224	//     "project": {
125225	//       "description": "Project ID for this request.",
125226	//       "location": "path",
125227	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
125228	//       "required": true,
125229	//       "type": "string"
125230	//     },
125231	//     "region": {
125232	//       "description": "Name of the region scoping this request.",
125233	//       "location": "path",
125234	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
125235	//       "required": true,
125236	//       "type": "string"
125237	//     },
125238	//     "requestId": {
125239	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
125240	//       "location": "query",
125241	//       "type": "string"
125242	//     }
125243	//   },
125244	//   "path": "projects/{project}/regions/{region}/backendServices/{backendService}",
125245	//   "request": {
125246	//     "$ref": "BackendService"
125247	//   },
125248	//   "response": {
125249	//     "$ref": "Operation"
125250	//   },
125251	//   "scopes": [
125252	//     "https://www.googleapis.com/auth/cloud-platform",
125253	//     "https://www.googleapis.com/auth/compute"
125254	//   ]
125255	// }
125256
125257}
125258
125259// method id "compute.regionBackendServices.testIamPermissions":
125260
125261type RegionBackendServicesTestIamPermissionsCall struct {
125262	s                      *Service
125263	project                string
125264	region                 string
125265	resource               string
125266	testpermissionsrequest *TestPermissionsRequest
125267	urlParams_             gensupport.URLParams
125268	ctx_                   context.Context
125269	header_                http.Header
125270}
125271
125272// TestIamPermissions: Returns permissions that a caller has on the
125273// specified resource.
125274func (r *RegionBackendServicesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionBackendServicesTestIamPermissionsCall {
125275	c := &RegionBackendServicesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
125276	c.project = project
125277	c.region = region
125278	c.resource = resource
125279	c.testpermissionsrequest = testpermissionsrequest
125280	return c
125281}
125282
125283// Fields allows partial responses to be retrieved. See
125284// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
125285// for more information.
125286func (c *RegionBackendServicesTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionBackendServicesTestIamPermissionsCall {
125287	c.urlParams_.Set("fields", googleapi.CombineFields(s))
125288	return c
125289}
125290
125291// Context sets the context to be used in this call's Do method. Any
125292// pending HTTP request will be aborted if the provided context is
125293// canceled.
125294func (c *RegionBackendServicesTestIamPermissionsCall) Context(ctx context.Context) *RegionBackendServicesTestIamPermissionsCall {
125295	c.ctx_ = ctx
125296	return c
125297}
125298
125299// Header returns an http.Header that can be modified by the caller to
125300// add HTTP headers to the request.
125301func (c *RegionBackendServicesTestIamPermissionsCall) Header() http.Header {
125302	if c.header_ == nil {
125303		c.header_ = make(http.Header)
125304	}
125305	return c.header_
125306}
125307
125308func (c *RegionBackendServicesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
125309	reqHeaders := make(http.Header)
125310	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
125311	for k, v := range c.header_ {
125312		reqHeaders[k] = v
125313	}
125314	reqHeaders.Set("User-Agent", c.s.userAgent())
125315	var body io.Reader = nil
125316	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
125317	if err != nil {
125318		return nil, err
125319	}
125320	reqHeaders.Set("Content-Type", "application/json")
125321	c.urlParams_.Set("alt", alt)
125322	c.urlParams_.Set("prettyPrint", "false")
125323	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices/{resource}/testIamPermissions")
125324	urls += "?" + c.urlParams_.Encode()
125325	req, err := http.NewRequest("POST", urls, body)
125326	if err != nil {
125327		return nil, err
125328	}
125329	req.Header = reqHeaders
125330	googleapi.Expand(req.URL, map[string]string{
125331		"project":  c.project,
125332		"region":   c.region,
125333		"resource": c.resource,
125334	})
125335	return gensupport.SendRequest(c.ctx_, c.s.client, req)
125336}
125337
125338// Do executes the "compute.regionBackendServices.testIamPermissions" call.
125339// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
125340// non-2xx status code is an error. Response headers are in either
125341// *TestPermissionsResponse.ServerResponse.Header or (if a response was
125342// returned at all) in error.(*googleapi.Error).Header. Use
125343// googleapi.IsNotModified to check whether the returned error was
125344// because http.StatusNotModified was returned.
125345func (c *RegionBackendServicesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
125346	gensupport.SetOptions(c.urlParams_, opts...)
125347	res, err := c.doRequest("json")
125348	if res != nil && res.StatusCode == http.StatusNotModified {
125349		if res.Body != nil {
125350			res.Body.Close()
125351		}
125352		return nil, &googleapi.Error{
125353			Code:   res.StatusCode,
125354			Header: res.Header,
125355		}
125356	}
125357	if err != nil {
125358		return nil, err
125359	}
125360	defer googleapi.CloseBody(res)
125361	if err := googleapi.CheckResponse(res); err != nil {
125362		return nil, err
125363	}
125364	ret := &TestPermissionsResponse{
125365		ServerResponse: googleapi.ServerResponse{
125366			Header:         res.Header,
125367			HTTPStatusCode: res.StatusCode,
125368		},
125369	}
125370	target := &ret
125371	if err := gensupport.DecodeResponse(target, res); err != nil {
125372		return nil, err
125373	}
125374	return ret, nil
125375	// {
125376	//   "description": "Returns permissions that a caller has on the specified resource.",
125377	//   "httpMethod": "POST",
125378	//   "id": "compute.regionBackendServices.testIamPermissions",
125379	//   "parameterOrder": [
125380	//     "project",
125381	//     "region",
125382	//     "resource"
125383	//   ],
125384	//   "parameters": {
125385	//     "project": {
125386	//       "description": "Project ID for this request.",
125387	//       "location": "path",
125388	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
125389	//       "required": true,
125390	//       "type": "string"
125391	//     },
125392	//     "region": {
125393	//       "description": "The name of the region for this request.",
125394	//       "location": "path",
125395	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
125396	//       "required": true,
125397	//       "type": "string"
125398	//     },
125399	//     "resource": {
125400	//       "description": "Name or id of the resource for this request.",
125401	//       "location": "path",
125402	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
125403	//       "required": true,
125404	//       "type": "string"
125405	//     }
125406	//   },
125407	//   "path": "projects/{project}/regions/{region}/backendServices/{resource}/testIamPermissions",
125408	//   "request": {
125409	//     "$ref": "TestPermissionsRequest"
125410	//   },
125411	//   "response": {
125412	//     "$ref": "TestPermissionsResponse"
125413	//   },
125414	//   "scopes": [
125415	//     "https://www.googleapis.com/auth/cloud-platform",
125416	//     "https://www.googleapis.com/auth/compute",
125417	//     "https://www.googleapis.com/auth/compute.readonly"
125418	//   ]
125419	// }
125420
125421}
125422
125423// method id "compute.regionBackendServices.update":
125424
125425type RegionBackendServicesUpdateCall struct {
125426	s              *Service
125427	project        string
125428	region         string
125429	backendService string
125430	backendservice *BackendService
125431	urlParams_     gensupport.URLParams
125432	ctx_           context.Context
125433	header_        http.Header
125434}
125435
125436// Update: Updates the specified regional BackendService resource with
125437// the data included in the request. For more information, see  Backend
125438// services overview.
125439func (r *RegionBackendServicesService) Update(project string, region string, backendService string, backendservice *BackendService) *RegionBackendServicesUpdateCall {
125440	c := &RegionBackendServicesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
125441	c.project = project
125442	c.region = region
125443	c.backendService = backendService
125444	c.backendservice = backendservice
125445	return c
125446}
125447
125448// RequestId sets the optional parameter "requestId": An optional
125449// request ID to identify requests. Specify a unique request ID so that
125450// if you must retry your request, the server will know to ignore the
125451// request if it has already been completed.
125452//
125453// For example, consider a situation where you make an initial request
125454// and the request times out. If you make the request again with the
125455// same request ID, the server can check if original operation with the
125456// same request ID was received, and if so, will ignore the second
125457// request. This prevents clients from accidentally creating duplicate
125458// commitments.
125459//
125460// The request ID must be a valid UUID with the exception that zero UUID
125461// is not supported (00000000-0000-0000-0000-000000000000).
125462func (c *RegionBackendServicesUpdateCall) RequestId(requestId string) *RegionBackendServicesUpdateCall {
125463	c.urlParams_.Set("requestId", requestId)
125464	return c
125465}
125466
125467// Fields allows partial responses to be retrieved. See
125468// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
125469// for more information.
125470func (c *RegionBackendServicesUpdateCall) Fields(s ...googleapi.Field) *RegionBackendServicesUpdateCall {
125471	c.urlParams_.Set("fields", googleapi.CombineFields(s))
125472	return c
125473}
125474
125475// Context sets the context to be used in this call's Do method. Any
125476// pending HTTP request will be aborted if the provided context is
125477// canceled.
125478func (c *RegionBackendServicesUpdateCall) Context(ctx context.Context) *RegionBackendServicesUpdateCall {
125479	c.ctx_ = ctx
125480	return c
125481}
125482
125483// Header returns an http.Header that can be modified by the caller to
125484// add HTTP headers to the request.
125485func (c *RegionBackendServicesUpdateCall) Header() http.Header {
125486	if c.header_ == nil {
125487		c.header_ = make(http.Header)
125488	}
125489	return c.header_
125490}
125491
125492func (c *RegionBackendServicesUpdateCall) doRequest(alt string) (*http.Response, error) {
125493	reqHeaders := make(http.Header)
125494	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
125495	for k, v := range c.header_ {
125496		reqHeaders[k] = v
125497	}
125498	reqHeaders.Set("User-Agent", c.s.userAgent())
125499	var body io.Reader = nil
125500	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
125501	if err != nil {
125502		return nil, err
125503	}
125504	reqHeaders.Set("Content-Type", "application/json")
125505	c.urlParams_.Set("alt", alt)
125506	c.urlParams_.Set("prettyPrint", "false")
125507	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices/{backendService}")
125508	urls += "?" + c.urlParams_.Encode()
125509	req, err := http.NewRequest("PUT", urls, body)
125510	if err != nil {
125511		return nil, err
125512	}
125513	req.Header = reqHeaders
125514	googleapi.Expand(req.URL, map[string]string{
125515		"project":        c.project,
125516		"region":         c.region,
125517		"backendService": c.backendService,
125518	})
125519	return gensupport.SendRequest(c.ctx_, c.s.client, req)
125520}
125521
125522// Do executes the "compute.regionBackendServices.update" call.
125523// Exactly one of *Operation or error will be non-nil. Any non-2xx
125524// status code is an error. Response headers are in either
125525// *Operation.ServerResponse.Header or (if a response was returned at
125526// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
125527// to check whether the returned error was because
125528// http.StatusNotModified was returned.
125529func (c *RegionBackendServicesUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
125530	gensupport.SetOptions(c.urlParams_, opts...)
125531	res, err := c.doRequest("json")
125532	if res != nil && res.StatusCode == http.StatusNotModified {
125533		if res.Body != nil {
125534			res.Body.Close()
125535		}
125536		return nil, &googleapi.Error{
125537			Code:   res.StatusCode,
125538			Header: res.Header,
125539		}
125540	}
125541	if err != nil {
125542		return nil, err
125543	}
125544	defer googleapi.CloseBody(res)
125545	if err := googleapi.CheckResponse(res); err != nil {
125546		return nil, err
125547	}
125548	ret := &Operation{
125549		ServerResponse: googleapi.ServerResponse{
125550			Header:         res.Header,
125551			HTTPStatusCode: res.StatusCode,
125552		},
125553	}
125554	target := &ret
125555	if err := gensupport.DecodeResponse(target, res); err != nil {
125556		return nil, err
125557	}
125558	return ret, nil
125559	// {
125560	//   "description": "Updates the specified regional BackendService resource with the data included in the request. For more information, see  Backend services overview.",
125561	//   "httpMethod": "PUT",
125562	//   "id": "compute.regionBackendServices.update",
125563	//   "parameterOrder": [
125564	//     "project",
125565	//     "region",
125566	//     "backendService"
125567	//   ],
125568	//   "parameters": {
125569	//     "backendService": {
125570	//       "description": "Name of the BackendService resource to update.",
125571	//       "location": "path",
125572	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
125573	//       "required": true,
125574	//       "type": "string"
125575	//     },
125576	//     "project": {
125577	//       "description": "Project ID for this request.",
125578	//       "location": "path",
125579	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
125580	//       "required": true,
125581	//       "type": "string"
125582	//     },
125583	//     "region": {
125584	//       "description": "Name of the region scoping this request.",
125585	//       "location": "path",
125586	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
125587	//       "required": true,
125588	//       "type": "string"
125589	//     },
125590	//     "requestId": {
125591	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
125592	//       "location": "query",
125593	//       "type": "string"
125594	//     }
125595	//   },
125596	//   "path": "projects/{project}/regions/{region}/backendServices/{backendService}",
125597	//   "request": {
125598	//     "$ref": "BackendService"
125599	//   },
125600	//   "response": {
125601	//     "$ref": "Operation"
125602	//   },
125603	//   "scopes": [
125604	//     "https://www.googleapis.com/auth/cloud-platform",
125605	//     "https://www.googleapis.com/auth/compute"
125606	//   ]
125607	// }
125608
125609}
125610
125611// method id "compute.regionCommitments.aggregatedList":
125612
125613type RegionCommitmentsAggregatedListCall struct {
125614	s            *Service
125615	project      string
125616	urlParams_   gensupport.URLParams
125617	ifNoneMatch_ string
125618	ctx_         context.Context
125619	header_      http.Header
125620}
125621
125622// AggregatedList: Retrieves an aggregated list of commitments.
125623func (r *RegionCommitmentsService) AggregatedList(project string) *RegionCommitmentsAggregatedListCall {
125624	c := &RegionCommitmentsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
125625	c.project = project
125626	return c
125627}
125628
125629// Filter sets the optional parameter "filter": A filter expression that
125630// filters resources listed in the response. The expression must specify
125631// the field name, a comparison operator, and the value that you want to
125632// use for filtering. The value must be a string, a number, or a
125633// boolean. The comparison operator must be either `=`, `!=`, `>`, or
125634// `<`.
125635//
125636// For example, if you are filtering Compute Engine instances, you can
125637// exclude instances named `example-instance` by specifying `name !=
125638// example-instance`.
125639//
125640// You can also filter nested fields. For example, you could specify
125641// `scheduling.automaticRestart = false` to include instances only if
125642// they are not scheduled for automatic restarts. You can use filtering
125643// on nested fields to filter based on resource labels.
125644//
125645// To filter on multiple expressions, provide each separate expression
125646// within parentheses. For example: ``` (scheduling.automaticRestart =
125647// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
125648// is an `AND` expression. However, you can include `AND` and `OR`
125649// expressions explicitly. For example: ``` (cpuPlatform = "Intel
125650// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
125651// (scheduling.automaticRestart = true) ```
125652func (c *RegionCommitmentsAggregatedListCall) Filter(filter string) *RegionCommitmentsAggregatedListCall {
125653	c.urlParams_.Set("filter", filter)
125654	return c
125655}
125656
125657// IncludeAllScopes sets the optional parameter "includeAllScopes":
125658// Indicates whether every visible scope for each scope type (zone,
125659// region, global) should be included in the response. For new resource
125660// types added after this field, the flag has no effect as new resource
125661// types will always include every visible scope for each scope type in
125662// response. For resource types which predate this field, if this flag
125663// is omitted or false, only scopes of the scope types where the
125664// resource type is expected to be found will be included.
125665func (c *RegionCommitmentsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *RegionCommitmentsAggregatedListCall {
125666	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
125667	return c
125668}
125669
125670// MaxResults sets the optional parameter "maxResults": The maximum
125671// number of results per page that should be returned. If the number of
125672// available results is larger than `maxResults`, Compute Engine returns
125673// a `nextPageToken` that can be used to get the next page of results in
125674// subsequent list requests. Acceptable values are `0` to `500`,
125675// inclusive. (Default: `500`)
125676func (c *RegionCommitmentsAggregatedListCall) MaxResults(maxResults int64) *RegionCommitmentsAggregatedListCall {
125677	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
125678	return c
125679}
125680
125681// OrderBy sets the optional parameter "orderBy": Sorts list results by
125682// a certain order. By default, results are returned in alphanumerical
125683// order based on the resource name.
125684//
125685// You can also sort results in descending order based on the creation
125686// timestamp using `orderBy="creationTimestamp desc". This sorts
125687// results based on the `creationTimestamp` field in reverse
125688// chronological order (newest result first). Use this to sort resources
125689// like operations so that the newest operation is returned
125690// first.
125691//
125692// Currently, only sorting by `name` or `creationTimestamp desc` is
125693// supported.
125694func (c *RegionCommitmentsAggregatedListCall) OrderBy(orderBy string) *RegionCommitmentsAggregatedListCall {
125695	c.urlParams_.Set("orderBy", orderBy)
125696	return c
125697}
125698
125699// PageToken sets the optional parameter "pageToken": Specifies a page
125700// token to use. Set `pageToken` to the `nextPageToken` returned by a
125701// previous list request to get the next page of results.
125702func (c *RegionCommitmentsAggregatedListCall) PageToken(pageToken string) *RegionCommitmentsAggregatedListCall {
125703	c.urlParams_.Set("pageToken", pageToken)
125704	return c
125705}
125706
125707// ReturnPartialSuccess sets the optional parameter
125708// "returnPartialSuccess": Opt-in for partial success behavior which
125709// provides partial results in case of failure. The default value is
125710// false.
125711func (c *RegionCommitmentsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionCommitmentsAggregatedListCall {
125712	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
125713	return c
125714}
125715
125716// Fields allows partial responses to be retrieved. See
125717// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
125718// for more information.
125719func (c *RegionCommitmentsAggregatedListCall) Fields(s ...googleapi.Field) *RegionCommitmentsAggregatedListCall {
125720	c.urlParams_.Set("fields", googleapi.CombineFields(s))
125721	return c
125722}
125723
125724// IfNoneMatch sets the optional parameter which makes the operation
125725// fail if the object's ETag matches the given value. This is useful for
125726// getting updates only after the object has changed since the last
125727// request. Use googleapi.IsNotModified to check whether the response
125728// error from Do is the result of In-None-Match.
125729func (c *RegionCommitmentsAggregatedListCall) IfNoneMatch(entityTag string) *RegionCommitmentsAggregatedListCall {
125730	c.ifNoneMatch_ = entityTag
125731	return c
125732}
125733
125734// Context sets the context to be used in this call's Do method. Any
125735// pending HTTP request will be aborted if the provided context is
125736// canceled.
125737func (c *RegionCommitmentsAggregatedListCall) Context(ctx context.Context) *RegionCommitmentsAggregatedListCall {
125738	c.ctx_ = ctx
125739	return c
125740}
125741
125742// Header returns an http.Header that can be modified by the caller to
125743// add HTTP headers to the request.
125744func (c *RegionCommitmentsAggregatedListCall) Header() http.Header {
125745	if c.header_ == nil {
125746		c.header_ = make(http.Header)
125747	}
125748	return c.header_
125749}
125750
125751func (c *RegionCommitmentsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
125752	reqHeaders := make(http.Header)
125753	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
125754	for k, v := range c.header_ {
125755		reqHeaders[k] = v
125756	}
125757	reqHeaders.Set("User-Agent", c.s.userAgent())
125758	if c.ifNoneMatch_ != "" {
125759		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
125760	}
125761	var body io.Reader = nil
125762	c.urlParams_.Set("alt", alt)
125763	c.urlParams_.Set("prettyPrint", "false")
125764	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/commitments")
125765	urls += "?" + c.urlParams_.Encode()
125766	req, err := http.NewRequest("GET", urls, body)
125767	if err != nil {
125768		return nil, err
125769	}
125770	req.Header = reqHeaders
125771	googleapi.Expand(req.URL, map[string]string{
125772		"project": c.project,
125773	})
125774	return gensupport.SendRequest(c.ctx_, c.s.client, req)
125775}
125776
125777// Do executes the "compute.regionCommitments.aggregatedList" call.
125778// Exactly one of *CommitmentAggregatedList or error will be non-nil.
125779// Any non-2xx status code is an error. Response headers are in either
125780// *CommitmentAggregatedList.ServerResponse.Header or (if a response was
125781// returned at all) in error.(*googleapi.Error).Header. Use
125782// googleapi.IsNotModified to check whether the returned error was
125783// because http.StatusNotModified was returned.
125784func (c *RegionCommitmentsAggregatedListCall) Do(opts ...googleapi.CallOption) (*CommitmentAggregatedList, error) {
125785	gensupport.SetOptions(c.urlParams_, opts...)
125786	res, err := c.doRequest("json")
125787	if res != nil && res.StatusCode == http.StatusNotModified {
125788		if res.Body != nil {
125789			res.Body.Close()
125790		}
125791		return nil, &googleapi.Error{
125792			Code:   res.StatusCode,
125793			Header: res.Header,
125794		}
125795	}
125796	if err != nil {
125797		return nil, err
125798	}
125799	defer googleapi.CloseBody(res)
125800	if err := googleapi.CheckResponse(res); err != nil {
125801		return nil, err
125802	}
125803	ret := &CommitmentAggregatedList{
125804		ServerResponse: googleapi.ServerResponse{
125805			Header:         res.Header,
125806			HTTPStatusCode: res.StatusCode,
125807		},
125808	}
125809	target := &ret
125810	if err := gensupport.DecodeResponse(target, res); err != nil {
125811		return nil, err
125812	}
125813	return ret, nil
125814	// {
125815	//   "description": "Retrieves an aggregated list of commitments.",
125816	//   "httpMethod": "GET",
125817	//   "id": "compute.regionCommitments.aggregatedList",
125818	//   "parameterOrder": [
125819	//     "project"
125820	//   ],
125821	//   "parameters": {
125822	//     "filter": {
125823	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
125824	//       "location": "query",
125825	//       "type": "string"
125826	//     },
125827	//     "includeAllScopes": {
125828	//       "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.",
125829	//       "location": "query",
125830	//       "type": "boolean"
125831	//     },
125832	//     "maxResults": {
125833	//       "default": "500",
125834	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
125835	//       "format": "uint32",
125836	//       "location": "query",
125837	//       "minimum": "0",
125838	//       "type": "integer"
125839	//     },
125840	//     "orderBy": {
125841	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
125842	//       "location": "query",
125843	//       "type": "string"
125844	//     },
125845	//     "pageToken": {
125846	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
125847	//       "location": "query",
125848	//       "type": "string"
125849	//     },
125850	//     "project": {
125851	//       "description": "Project ID for this request.",
125852	//       "location": "path",
125853	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
125854	//       "required": true,
125855	//       "type": "string"
125856	//     },
125857	//     "returnPartialSuccess": {
125858	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
125859	//       "location": "query",
125860	//       "type": "boolean"
125861	//     }
125862	//   },
125863	//   "path": "projects/{project}/aggregated/commitments",
125864	//   "response": {
125865	//     "$ref": "CommitmentAggregatedList"
125866	//   },
125867	//   "scopes": [
125868	//     "https://www.googleapis.com/auth/cloud-platform",
125869	//     "https://www.googleapis.com/auth/compute",
125870	//     "https://www.googleapis.com/auth/compute.readonly"
125871	//   ]
125872	// }
125873
125874}
125875
125876// Pages invokes f for each page of results.
125877// A non-nil error returned from f will halt the iteration.
125878// The provided context supersedes any context provided to the Context method.
125879func (c *RegionCommitmentsAggregatedListCall) Pages(ctx context.Context, f func(*CommitmentAggregatedList) error) error {
125880	c.ctx_ = ctx
125881	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
125882	for {
125883		x, err := c.Do()
125884		if err != nil {
125885			return err
125886		}
125887		if err := f(x); err != nil {
125888			return err
125889		}
125890		if x.NextPageToken == "" {
125891			return nil
125892		}
125893		c.PageToken(x.NextPageToken)
125894	}
125895}
125896
125897// method id "compute.regionCommitments.get":
125898
125899type RegionCommitmentsGetCall struct {
125900	s            *Service
125901	project      string
125902	region       string
125903	commitment   string
125904	urlParams_   gensupport.URLParams
125905	ifNoneMatch_ string
125906	ctx_         context.Context
125907	header_      http.Header
125908}
125909
125910// Get: Returns the specified commitment resource. Gets a list of
125911// available commitments by making a list() request.
125912func (r *RegionCommitmentsService) Get(project string, region string, commitment string) *RegionCommitmentsGetCall {
125913	c := &RegionCommitmentsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
125914	c.project = project
125915	c.region = region
125916	c.commitment = commitment
125917	return c
125918}
125919
125920// Fields allows partial responses to be retrieved. See
125921// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
125922// for more information.
125923func (c *RegionCommitmentsGetCall) Fields(s ...googleapi.Field) *RegionCommitmentsGetCall {
125924	c.urlParams_.Set("fields", googleapi.CombineFields(s))
125925	return c
125926}
125927
125928// IfNoneMatch sets the optional parameter which makes the operation
125929// fail if the object's ETag matches the given value. This is useful for
125930// getting updates only after the object has changed since the last
125931// request. Use googleapi.IsNotModified to check whether the response
125932// error from Do is the result of In-None-Match.
125933func (c *RegionCommitmentsGetCall) IfNoneMatch(entityTag string) *RegionCommitmentsGetCall {
125934	c.ifNoneMatch_ = entityTag
125935	return c
125936}
125937
125938// Context sets the context to be used in this call's Do method. Any
125939// pending HTTP request will be aborted if the provided context is
125940// canceled.
125941func (c *RegionCommitmentsGetCall) Context(ctx context.Context) *RegionCommitmentsGetCall {
125942	c.ctx_ = ctx
125943	return c
125944}
125945
125946// Header returns an http.Header that can be modified by the caller to
125947// add HTTP headers to the request.
125948func (c *RegionCommitmentsGetCall) Header() http.Header {
125949	if c.header_ == nil {
125950		c.header_ = make(http.Header)
125951	}
125952	return c.header_
125953}
125954
125955func (c *RegionCommitmentsGetCall) doRequest(alt string) (*http.Response, error) {
125956	reqHeaders := make(http.Header)
125957	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
125958	for k, v := range c.header_ {
125959		reqHeaders[k] = v
125960	}
125961	reqHeaders.Set("User-Agent", c.s.userAgent())
125962	if c.ifNoneMatch_ != "" {
125963		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
125964	}
125965	var body io.Reader = nil
125966	c.urlParams_.Set("alt", alt)
125967	c.urlParams_.Set("prettyPrint", "false")
125968	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/commitments/{commitment}")
125969	urls += "?" + c.urlParams_.Encode()
125970	req, err := http.NewRequest("GET", urls, body)
125971	if err != nil {
125972		return nil, err
125973	}
125974	req.Header = reqHeaders
125975	googleapi.Expand(req.URL, map[string]string{
125976		"project":    c.project,
125977		"region":     c.region,
125978		"commitment": c.commitment,
125979	})
125980	return gensupport.SendRequest(c.ctx_, c.s.client, req)
125981}
125982
125983// Do executes the "compute.regionCommitments.get" call.
125984// Exactly one of *Commitment or error will be non-nil. Any non-2xx
125985// status code is an error. Response headers are in either
125986// *Commitment.ServerResponse.Header or (if a response was returned at
125987// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
125988// to check whether the returned error was because
125989// http.StatusNotModified was returned.
125990func (c *RegionCommitmentsGetCall) Do(opts ...googleapi.CallOption) (*Commitment, error) {
125991	gensupport.SetOptions(c.urlParams_, opts...)
125992	res, err := c.doRequest("json")
125993	if res != nil && res.StatusCode == http.StatusNotModified {
125994		if res.Body != nil {
125995			res.Body.Close()
125996		}
125997		return nil, &googleapi.Error{
125998			Code:   res.StatusCode,
125999			Header: res.Header,
126000		}
126001	}
126002	if err != nil {
126003		return nil, err
126004	}
126005	defer googleapi.CloseBody(res)
126006	if err := googleapi.CheckResponse(res); err != nil {
126007		return nil, err
126008	}
126009	ret := &Commitment{
126010		ServerResponse: googleapi.ServerResponse{
126011			Header:         res.Header,
126012			HTTPStatusCode: res.StatusCode,
126013		},
126014	}
126015	target := &ret
126016	if err := gensupport.DecodeResponse(target, res); err != nil {
126017		return nil, err
126018	}
126019	return ret, nil
126020	// {
126021	//   "description": "Returns the specified commitment resource. Gets a list of available commitments by making a list() request.",
126022	//   "httpMethod": "GET",
126023	//   "id": "compute.regionCommitments.get",
126024	//   "parameterOrder": [
126025	//     "project",
126026	//     "region",
126027	//     "commitment"
126028	//   ],
126029	//   "parameters": {
126030	//     "commitment": {
126031	//       "description": "Name of the commitment to return.",
126032	//       "location": "path",
126033	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
126034	//       "required": true,
126035	//       "type": "string"
126036	//     },
126037	//     "project": {
126038	//       "description": "Project ID for this request.",
126039	//       "location": "path",
126040	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
126041	//       "required": true,
126042	//       "type": "string"
126043	//     },
126044	//     "region": {
126045	//       "description": "Name of the region for this request.",
126046	//       "location": "path",
126047	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
126048	//       "required": true,
126049	//       "type": "string"
126050	//     }
126051	//   },
126052	//   "path": "projects/{project}/regions/{region}/commitments/{commitment}",
126053	//   "response": {
126054	//     "$ref": "Commitment"
126055	//   },
126056	//   "scopes": [
126057	//     "https://www.googleapis.com/auth/cloud-platform",
126058	//     "https://www.googleapis.com/auth/compute",
126059	//     "https://www.googleapis.com/auth/compute.readonly"
126060	//   ]
126061	// }
126062
126063}
126064
126065// method id "compute.regionCommitments.insert":
126066
126067type RegionCommitmentsInsertCall struct {
126068	s          *Service
126069	project    string
126070	region     string
126071	commitment *Commitment
126072	urlParams_ gensupport.URLParams
126073	ctx_       context.Context
126074	header_    http.Header
126075}
126076
126077// Insert: Creates a commitment in the specified project using the data
126078// included in the request.
126079func (r *RegionCommitmentsService) Insert(project string, region string, commitment *Commitment) *RegionCommitmentsInsertCall {
126080	c := &RegionCommitmentsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
126081	c.project = project
126082	c.region = region
126083	c.commitment = commitment
126084	return c
126085}
126086
126087// RequestId sets the optional parameter "requestId": An optional
126088// request ID to identify requests. Specify a unique request ID so that
126089// if you must retry your request, the server will know to ignore the
126090// request if it has already been completed.
126091//
126092// For example, consider a situation where you make an initial request
126093// and the request times out. If you make the request again with the
126094// same request ID, the server can check if original operation with the
126095// same request ID was received, and if so, will ignore the second
126096// request. This prevents clients from accidentally creating duplicate
126097// commitments.
126098//
126099// The request ID must be a valid UUID with the exception that zero UUID
126100// is not supported (00000000-0000-0000-0000-000000000000).
126101func (c *RegionCommitmentsInsertCall) RequestId(requestId string) *RegionCommitmentsInsertCall {
126102	c.urlParams_.Set("requestId", requestId)
126103	return c
126104}
126105
126106// Fields allows partial responses to be retrieved. See
126107// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
126108// for more information.
126109func (c *RegionCommitmentsInsertCall) Fields(s ...googleapi.Field) *RegionCommitmentsInsertCall {
126110	c.urlParams_.Set("fields", googleapi.CombineFields(s))
126111	return c
126112}
126113
126114// Context sets the context to be used in this call's Do method. Any
126115// pending HTTP request will be aborted if the provided context is
126116// canceled.
126117func (c *RegionCommitmentsInsertCall) Context(ctx context.Context) *RegionCommitmentsInsertCall {
126118	c.ctx_ = ctx
126119	return c
126120}
126121
126122// Header returns an http.Header that can be modified by the caller to
126123// add HTTP headers to the request.
126124func (c *RegionCommitmentsInsertCall) Header() http.Header {
126125	if c.header_ == nil {
126126		c.header_ = make(http.Header)
126127	}
126128	return c.header_
126129}
126130
126131func (c *RegionCommitmentsInsertCall) doRequest(alt string) (*http.Response, error) {
126132	reqHeaders := make(http.Header)
126133	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
126134	for k, v := range c.header_ {
126135		reqHeaders[k] = v
126136	}
126137	reqHeaders.Set("User-Agent", c.s.userAgent())
126138	var body io.Reader = nil
126139	body, err := googleapi.WithoutDataWrapper.JSONReader(c.commitment)
126140	if err != nil {
126141		return nil, err
126142	}
126143	reqHeaders.Set("Content-Type", "application/json")
126144	c.urlParams_.Set("alt", alt)
126145	c.urlParams_.Set("prettyPrint", "false")
126146	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/commitments")
126147	urls += "?" + c.urlParams_.Encode()
126148	req, err := http.NewRequest("POST", urls, body)
126149	if err != nil {
126150		return nil, err
126151	}
126152	req.Header = reqHeaders
126153	googleapi.Expand(req.URL, map[string]string{
126154		"project": c.project,
126155		"region":  c.region,
126156	})
126157	return gensupport.SendRequest(c.ctx_, c.s.client, req)
126158}
126159
126160// Do executes the "compute.regionCommitments.insert" call.
126161// Exactly one of *Operation or error will be non-nil. Any non-2xx
126162// status code is an error. Response headers are in either
126163// *Operation.ServerResponse.Header or (if a response was returned at
126164// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
126165// to check whether the returned error was because
126166// http.StatusNotModified was returned.
126167func (c *RegionCommitmentsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
126168	gensupport.SetOptions(c.urlParams_, opts...)
126169	res, err := c.doRequest("json")
126170	if res != nil && res.StatusCode == http.StatusNotModified {
126171		if res.Body != nil {
126172			res.Body.Close()
126173		}
126174		return nil, &googleapi.Error{
126175			Code:   res.StatusCode,
126176			Header: res.Header,
126177		}
126178	}
126179	if err != nil {
126180		return nil, err
126181	}
126182	defer googleapi.CloseBody(res)
126183	if err := googleapi.CheckResponse(res); err != nil {
126184		return nil, err
126185	}
126186	ret := &Operation{
126187		ServerResponse: googleapi.ServerResponse{
126188			Header:         res.Header,
126189			HTTPStatusCode: res.StatusCode,
126190		},
126191	}
126192	target := &ret
126193	if err := gensupport.DecodeResponse(target, res); err != nil {
126194		return nil, err
126195	}
126196	return ret, nil
126197	// {
126198	//   "description": "Creates a commitment in the specified project using the data included in the request.",
126199	//   "httpMethod": "POST",
126200	//   "id": "compute.regionCommitments.insert",
126201	//   "parameterOrder": [
126202	//     "project",
126203	//     "region"
126204	//   ],
126205	//   "parameters": {
126206	//     "project": {
126207	//       "description": "Project ID for this request.",
126208	//       "location": "path",
126209	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
126210	//       "required": true,
126211	//       "type": "string"
126212	//     },
126213	//     "region": {
126214	//       "description": "Name of the region for this request.",
126215	//       "location": "path",
126216	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
126217	//       "required": true,
126218	//       "type": "string"
126219	//     },
126220	//     "requestId": {
126221	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
126222	//       "location": "query",
126223	//       "type": "string"
126224	//     }
126225	//   },
126226	//   "path": "projects/{project}/regions/{region}/commitments",
126227	//   "request": {
126228	//     "$ref": "Commitment"
126229	//   },
126230	//   "response": {
126231	//     "$ref": "Operation"
126232	//   },
126233	//   "scopes": [
126234	//     "https://www.googleapis.com/auth/cloud-platform",
126235	//     "https://www.googleapis.com/auth/compute"
126236	//   ]
126237	// }
126238
126239}
126240
126241// method id "compute.regionCommitments.list":
126242
126243type RegionCommitmentsListCall struct {
126244	s            *Service
126245	project      string
126246	region       string
126247	urlParams_   gensupport.URLParams
126248	ifNoneMatch_ string
126249	ctx_         context.Context
126250	header_      http.Header
126251}
126252
126253// List: Retrieves a list of commitments contained within the specified
126254// region.
126255func (r *RegionCommitmentsService) List(project string, region string) *RegionCommitmentsListCall {
126256	c := &RegionCommitmentsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
126257	c.project = project
126258	c.region = region
126259	return c
126260}
126261
126262// Filter sets the optional parameter "filter": A filter expression that
126263// filters resources listed in the response. The expression must specify
126264// the field name, a comparison operator, and the value that you want to
126265// use for filtering. The value must be a string, a number, or a
126266// boolean. The comparison operator must be either `=`, `!=`, `>`, or
126267// `<`.
126268//
126269// For example, if you are filtering Compute Engine instances, you can
126270// exclude instances named `example-instance` by specifying `name !=
126271// example-instance`.
126272//
126273// You can also filter nested fields. For example, you could specify
126274// `scheduling.automaticRestart = false` to include instances only if
126275// they are not scheduled for automatic restarts. You can use filtering
126276// on nested fields to filter based on resource labels.
126277//
126278// To filter on multiple expressions, provide each separate expression
126279// within parentheses. For example: ``` (scheduling.automaticRestart =
126280// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
126281// is an `AND` expression. However, you can include `AND` and `OR`
126282// expressions explicitly. For example: ``` (cpuPlatform = "Intel
126283// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
126284// (scheduling.automaticRestart = true) ```
126285func (c *RegionCommitmentsListCall) Filter(filter string) *RegionCommitmentsListCall {
126286	c.urlParams_.Set("filter", filter)
126287	return c
126288}
126289
126290// MaxResults sets the optional parameter "maxResults": The maximum
126291// number of results per page that should be returned. If the number of
126292// available results is larger than `maxResults`, Compute Engine returns
126293// a `nextPageToken` that can be used to get the next page of results in
126294// subsequent list requests. Acceptable values are `0` to `500`,
126295// inclusive. (Default: `500`)
126296func (c *RegionCommitmentsListCall) MaxResults(maxResults int64) *RegionCommitmentsListCall {
126297	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
126298	return c
126299}
126300
126301// OrderBy sets the optional parameter "orderBy": Sorts list results by
126302// a certain order. By default, results are returned in alphanumerical
126303// order based on the resource name.
126304//
126305// You can also sort results in descending order based on the creation
126306// timestamp using `orderBy="creationTimestamp desc". This sorts
126307// results based on the `creationTimestamp` field in reverse
126308// chronological order (newest result first). Use this to sort resources
126309// like operations so that the newest operation is returned
126310// first.
126311//
126312// Currently, only sorting by `name` or `creationTimestamp desc` is
126313// supported.
126314func (c *RegionCommitmentsListCall) OrderBy(orderBy string) *RegionCommitmentsListCall {
126315	c.urlParams_.Set("orderBy", orderBy)
126316	return c
126317}
126318
126319// PageToken sets the optional parameter "pageToken": Specifies a page
126320// token to use. Set `pageToken` to the `nextPageToken` returned by a
126321// previous list request to get the next page of results.
126322func (c *RegionCommitmentsListCall) PageToken(pageToken string) *RegionCommitmentsListCall {
126323	c.urlParams_.Set("pageToken", pageToken)
126324	return c
126325}
126326
126327// ReturnPartialSuccess sets the optional parameter
126328// "returnPartialSuccess": Opt-in for partial success behavior which
126329// provides partial results in case of failure. The default value is
126330// false.
126331func (c *RegionCommitmentsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionCommitmentsListCall {
126332	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
126333	return c
126334}
126335
126336// Fields allows partial responses to be retrieved. See
126337// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
126338// for more information.
126339func (c *RegionCommitmentsListCall) Fields(s ...googleapi.Field) *RegionCommitmentsListCall {
126340	c.urlParams_.Set("fields", googleapi.CombineFields(s))
126341	return c
126342}
126343
126344// IfNoneMatch sets the optional parameter which makes the operation
126345// fail if the object's ETag matches the given value. This is useful for
126346// getting updates only after the object has changed since the last
126347// request. Use googleapi.IsNotModified to check whether the response
126348// error from Do is the result of In-None-Match.
126349func (c *RegionCommitmentsListCall) IfNoneMatch(entityTag string) *RegionCommitmentsListCall {
126350	c.ifNoneMatch_ = entityTag
126351	return c
126352}
126353
126354// Context sets the context to be used in this call's Do method. Any
126355// pending HTTP request will be aborted if the provided context is
126356// canceled.
126357func (c *RegionCommitmentsListCall) Context(ctx context.Context) *RegionCommitmentsListCall {
126358	c.ctx_ = ctx
126359	return c
126360}
126361
126362// Header returns an http.Header that can be modified by the caller to
126363// add HTTP headers to the request.
126364func (c *RegionCommitmentsListCall) Header() http.Header {
126365	if c.header_ == nil {
126366		c.header_ = make(http.Header)
126367	}
126368	return c.header_
126369}
126370
126371func (c *RegionCommitmentsListCall) doRequest(alt string) (*http.Response, error) {
126372	reqHeaders := make(http.Header)
126373	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
126374	for k, v := range c.header_ {
126375		reqHeaders[k] = v
126376	}
126377	reqHeaders.Set("User-Agent", c.s.userAgent())
126378	if c.ifNoneMatch_ != "" {
126379		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
126380	}
126381	var body io.Reader = nil
126382	c.urlParams_.Set("alt", alt)
126383	c.urlParams_.Set("prettyPrint", "false")
126384	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/commitments")
126385	urls += "?" + c.urlParams_.Encode()
126386	req, err := http.NewRequest("GET", urls, body)
126387	if err != nil {
126388		return nil, err
126389	}
126390	req.Header = reqHeaders
126391	googleapi.Expand(req.URL, map[string]string{
126392		"project": c.project,
126393		"region":  c.region,
126394	})
126395	return gensupport.SendRequest(c.ctx_, c.s.client, req)
126396}
126397
126398// Do executes the "compute.regionCommitments.list" call.
126399// Exactly one of *CommitmentList or error will be non-nil. Any non-2xx
126400// status code is an error. Response headers are in either
126401// *CommitmentList.ServerResponse.Header or (if a response was returned
126402// at all) in error.(*googleapi.Error).Header. Use
126403// googleapi.IsNotModified to check whether the returned error was
126404// because http.StatusNotModified was returned.
126405func (c *RegionCommitmentsListCall) Do(opts ...googleapi.CallOption) (*CommitmentList, error) {
126406	gensupport.SetOptions(c.urlParams_, opts...)
126407	res, err := c.doRequest("json")
126408	if res != nil && res.StatusCode == http.StatusNotModified {
126409		if res.Body != nil {
126410			res.Body.Close()
126411		}
126412		return nil, &googleapi.Error{
126413			Code:   res.StatusCode,
126414			Header: res.Header,
126415		}
126416	}
126417	if err != nil {
126418		return nil, err
126419	}
126420	defer googleapi.CloseBody(res)
126421	if err := googleapi.CheckResponse(res); err != nil {
126422		return nil, err
126423	}
126424	ret := &CommitmentList{
126425		ServerResponse: googleapi.ServerResponse{
126426			Header:         res.Header,
126427			HTTPStatusCode: res.StatusCode,
126428		},
126429	}
126430	target := &ret
126431	if err := gensupport.DecodeResponse(target, res); err != nil {
126432		return nil, err
126433	}
126434	return ret, nil
126435	// {
126436	//   "description": "Retrieves a list of commitments contained within the specified region.",
126437	//   "httpMethod": "GET",
126438	//   "id": "compute.regionCommitments.list",
126439	//   "parameterOrder": [
126440	//     "project",
126441	//     "region"
126442	//   ],
126443	//   "parameters": {
126444	//     "filter": {
126445	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
126446	//       "location": "query",
126447	//       "type": "string"
126448	//     },
126449	//     "maxResults": {
126450	//       "default": "500",
126451	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
126452	//       "format": "uint32",
126453	//       "location": "query",
126454	//       "minimum": "0",
126455	//       "type": "integer"
126456	//     },
126457	//     "orderBy": {
126458	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
126459	//       "location": "query",
126460	//       "type": "string"
126461	//     },
126462	//     "pageToken": {
126463	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
126464	//       "location": "query",
126465	//       "type": "string"
126466	//     },
126467	//     "project": {
126468	//       "description": "Project ID for this request.",
126469	//       "location": "path",
126470	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
126471	//       "required": true,
126472	//       "type": "string"
126473	//     },
126474	//     "region": {
126475	//       "description": "Name of the region for this request.",
126476	//       "location": "path",
126477	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
126478	//       "required": true,
126479	//       "type": "string"
126480	//     },
126481	//     "returnPartialSuccess": {
126482	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
126483	//       "location": "query",
126484	//       "type": "boolean"
126485	//     }
126486	//   },
126487	//   "path": "projects/{project}/regions/{region}/commitments",
126488	//   "response": {
126489	//     "$ref": "CommitmentList"
126490	//   },
126491	//   "scopes": [
126492	//     "https://www.googleapis.com/auth/cloud-platform",
126493	//     "https://www.googleapis.com/auth/compute",
126494	//     "https://www.googleapis.com/auth/compute.readonly"
126495	//   ]
126496	// }
126497
126498}
126499
126500// Pages invokes f for each page of results.
126501// A non-nil error returned from f will halt the iteration.
126502// The provided context supersedes any context provided to the Context method.
126503func (c *RegionCommitmentsListCall) Pages(ctx context.Context, f func(*CommitmentList) error) error {
126504	c.ctx_ = ctx
126505	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
126506	for {
126507		x, err := c.Do()
126508		if err != nil {
126509			return err
126510		}
126511		if err := f(x); err != nil {
126512			return err
126513		}
126514		if x.NextPageToken == "" {
126515			return nil
126516		}
126517		c.PageToken(x.NextPageToken)
126518	}
126519}
126520
126521// method id "compute.regionCommitments.testIamPermissions":
126522
126523type RegionCommitmentsTestIamPermissionsCall struct {
126524	s                      *Service
126525	project                string
126526	region                 string
126527	resource               string
126528	testpermissionsrequest *TestPermissionsRequest
126529	urlParams_             gensupport.URLParams
126530	ctx_                   context.Context
126531	header_                http.Header
126532}
126533
126534// TestIamPermissions: Returns permissions that a caller has on the
126535// specified resource.
126536func (r *RegionCommitmentsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionCommitmentsTestIamPermissionsCall {
126537	c := &RegionCommitmentsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
126538	c.project = project
126539	c.region = region
126540	c.resource = resource
126541	c.testpermissionsrequest = testpermissionsrequest
126542	return c
126543}
126544
126545// Fields allows partial responses to be retrieved. See
126546// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
126547// for more information.
126548func (c *RegionCommitmentsTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionCommitmentsTestIamPermissionsCall {
126549	c.urlParams_.Set("fields", googleapi.CombineFields(s))
126550	return c
126551}
126552
126553// Context sets the context to be used in this call's Do method. Any
126554// pending HTTP request will be aborted if the provided context is
126555// canceled.
126556func (c *RegionCommitmentsTestIamPermissionsCall) Context(ctx context.Context) *RegionCommitmentsTestIamPermissionsCall {
126557	c.ctx_ = ctx
126558	return c
126559}
126560
126561// Header returns an http.Header that can be modified by the caller to
126562// add HTTP headers to the request.
126563func (c *RegionCommitmentsTestIamPermissionsCall) Header() http.Header {
126564	if c.header_ == nil {
126565		c.header_ = make(http.Header)
126566	}
126567	return c.header_
126568}
126569
126570func (c *RegionCommitmentsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
126571	reqHeaders := make(http.Header)
126572	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
126573	for k, v := range c.header_ {
126574		reqHeaders[k] = v
126575	}
126576	reqHeaders.Set("User-Agent", c.s.userAgent())
126577	var body io.Reader = nil
126578	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
126579	if err != nil {
126580		return nil, err
126581	}
126582	reqHeaders.Set("Content-Type", "application/json")
126583	c.urlParams_.Set("alt", alt)
126584	c.urlParams_.Set("prettyPrint", "false")
126585	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/commitments/{resource}/testIamPermissions")
126586	urls += "?" + c.urlParams_.Encode()
126587	req, err := http.NewRequest("POST", urls, body)
126588	if err != nil {
126589		return nil, err
126590	}
126591	req.Header = reqHeaders
126592	googleapi.Expand(req.URL, map[string]string{
126593		"project":  c.project,
126594		"region":   c.region,
126595		"resource": c.resource,
126596	})
126597	return gensupport.SendRequest(c.ctx_, c.s.client, req)
126598}
126599
126600// Do executes the "compute.regionCommitments.testIamPermissions" call.
126601// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
126602// non-2xx status code is an error. Response headers are in either
126603// *TestPermissionsResponse.ServerResponse.Header or (if a response was
126604// returned at all) in error.(*googleapi.Error).Header. Use
126605// googleapi.IsNotModified to check whether the returned error was
126606// because http.StatusNotModified was returned.
126607func (c *RegionCommitmentsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
126608	gensupport.SetOptions(c.urlParams_, opts...)
126609	res, err := c.doRequest("json")
126610	if res != nil && res.StatusCode == http.StatusNotModified {
126611		if res.Body != nil {
126612			res.Body.Close()
126613		}
126614		return nil, &googleapi.Error{
126615			Code:   res.StatusCode,
126616			Header: res.Header,
126617		}
126618	}
126619	if err != nil {
126620		return nil, err
126621	}
126622	defer googleapi.CloseBody(res)
126623	if err := googleapi.CheckResponse(res); err != nil {
126624		return nil, err
126625	}
126626	ret := &TestPermissionsResponse{
126627		ServerResponse: googleapi.ServerResponse{
126628			Header:         res.Header,
126629			HTTPStatusCode: res.StatusCode,
126630		},
126631	}
126632	target := &ret
126633	if err := gensupport.DecodeResponse(target, res); err != nil {
126634		return nil, err
126635	}
126636	return ret, nil
126637	// {
126638	//   "description": "Returns permissions that a caller has on the specified resource.",
126639	//   "httpMethod": "POST",
126640	//   "id": "compute.regionCommitments.testIamPermissions",
126641	//   "parameterOrder": [
126642	//     "project",
126643	//     "region",
126644	//     "resource"
126645	//   ],
126646	//   "parameters": {
126647	//     "project": {
126648	//       "description": "Project ID for this request.",
126649	//       "location": "path",
126650	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
126651	//       "required": true,
126652	//       "type": "string"
126653	//     },
126654	//     "region": {
126655	//       "description": "The name of the region for this request.",
126656	//       "location": "path",
126657	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
126658	//       "required": true,
126659	//       "type": "string"
126660	//     },
126661	//     "resource": {
126662	//       "description": "Name or id of the resource for this request.",
126663	//       "location": "path",
126664	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
126665	//       "required": true,
126666	//       "type": "string"
126667	//     }
126668	//   },
126669	//   "path": "projects/{project}/regions/{region}/commitments/{resource}/testIamPermissions",
126670	//   "request": {
126671	//     "$ref": "TestPermissionsRequest"
126672	//   },
126673	//   "response": {
126674	//     "$ref": "TestPermissionsResponse"
126675	//   },
126676	//   "scopes": [
126677	//     "https://www.googleapis.com/auth/cloud-platform",
126678	//     "https://www.googleapis.com/auth/compute",
126679	//     "https://www.googleapis.com/auth/compute.readonly"
126680	//   ]
126681	// }
126682
126683}
126684
126685// method id "compute.regionCommitments.updateReservations":
126686
126687type RegionCommitmentsUpdateReservationsCall struct {
126688	s                                          *Service
126689	project                                    string
126690	region                                     string
126691	commitment                                 string
126692	regioncommitmentsupdatereservationsrequest *RegionCommitmentsUpdateReservationsRequest
126693	urlParams_                                 gensupport.URLParams
126694	ctx_                                       context.Context
126695	header_                                    http.Header
126696}
126697
126698// UpdateReservations: Transfers GPUs or local SSDs between reservations
126699// within commitments.
126700func (r *RegionCommitmentsService) UpdateReservations(project string, region string, commitment string, regioncommitmentsupdatereservationsrequest *RegionCommitmentsUpdateReservationsRequest) *RegionCommitmentsUpdateReservationsCall {
126701	c := &RegionCommitmentsUpdateReservationsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
126702	c.project = project
126703	c.region = region
126704	c.commitment = commitment
126705	c.regioncommitmentsupdatereservationsrequest = regioncommitmentsupdatereservationsrequest
126706	return c
126707}
126708
126709// RequestId sets the optional parameter "requestId": An optional
126710// request ID to identify requests. Specify a unique request ID so that
126711// if you must retry your request, the server will know to ignore the
126712// request if it has already been completed.
126713//
126714// For example, consider a situation where you make an initial request
126715// and the request times out. If you make the request again with the
126716// same request ID, the server can check if original operation with the
126717// same request ID was received, and if so, will ignore the second
126718// request. This prevents clients from accidentally creating duplicate
126719// commitments.
126720//
126721// The request ID must be a valid UUID with the exception that zero UUID
126722// is not supported (00000000-0000-0000-0000-000000000000).
126723func (c *RegionCommitmentsUpdateReservationsCall) RequestId(requestId string) *RegionCommitmentsUpdateReservationsCall {
126724	c.urlParams_.Set("requestId", requestId)
126725	return c
126726}
126727
126728// Fields allows partial responses to be retrieved. See
126729// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
126730// for more information.
126731func (c *RegionCommitmentsUpdateReservationsCall) Fields(s ...googleapi.Field) *RegionCommitmentsUpdateReservationsCall {
126732	c.urlParams_.Set("fields", googleapi.CombineFields(s))
126733	return c
126734}
126735
126736// Context sets the context to be used in this call's Do method. Any
126737// pending HTTP request will be aborted if the provided context is
126738// canceled.
126739func (c *RegionCommitmentsUpdateReservationsCall) Context(ctx context.Context) *RegionCommitmentsUpdateReservationsCall {
126740	c.ctx_ = ctx
126741	return c
126742}
126743
126744// Header returns an http.Header that can be modified by the caller to
126745// add HTTP headers to the request.
126746func (c *RegionCommitmentsUpdateReservationsCall) Header() http.Header {
126747	if c.header_ == nil {
126748		c.header_ = make(http.Header)
126749	}
126750	return c.header_
126751}
126752
126753func (c *RegionCommitmentsUpdateReservationsCall) doRequest(alt string) (*http.Response, error) {
126754	reqHeaders := make(http.Header)
126755	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
126756	for k, v := range c.header_ {
126757		reqHeaders[k] = v
126758	}
126759	reqHeaders.Set("User-Agent", c.s.userAgent())
126760	var body io.Reader = nil
126761	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioncommitmentsupdatereservationsrequest)
126762	if err != nil {
126763		return nil, err
126764	}
126765	reqHeaders.Set("Content-Type", "application/json")
126766	c.urlParams_.Set("alt", alt)
126767	c.urlParams_.Set("prettyPrint", "false")
126768	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/commitments/{commitment}/updateReservations")
126769	urls += "?" + c.urlParams_.Encode()
126770	req, err := http.NewRequest("POST", urls, body)
126771	if err != nil {
126772		return nil, err
126773	}
126774	req.Header = reqHeaders
126775	googleapi.Expand(req.URL, map[string]string{
126776		"project":    c.project,
126777		"region":     c.region,
126778		"commitment": c.commitment,
126779	})
126780	return gensupport.SendRequest(c.ctx_, c.s.client, req)
126781}
126782
126783// Do executes the "compute.regionCommitments.updateReservations" call.
126784// Exactly one of *Operation or error will be non-nil. Any non-2xx
126785// status code is an error. Response headers are in either
126786// *Operation.ServerResponse.Header or (if a response was returned at
126787// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
126788// to check whether the returned error was because
126789// http.StatusNotModified was returned.
126790func (c *RegionCommitmentsUpdateReservationsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
126791	gensupport.SetOptions(c.urlParams_, opts...)
126792	res, err := c.doRequest("json")
126793	if res != nil && res.StatusCode == http.StatusNotModified {
126794		if res.Body != nil {
126795			res.Body.Close()
126796		}
126797		return nil, &googleapi.Error{
126798			Code:   res.StatusCode,
126799			Header: res.Header,
126800		}
126801	}
126802	if err != nil {
126803		return nil, err
126804	}
126805	defer googleapi.CloseBody(res)
126806	if err := googleapi.CheckResponse(res); err != nil {
126807		return nil, err
126808	}
126809	ret := &Operation{
126810		ServerResponse: googleapi.ServerResponse{
126811			Header:         res.Header,
126812			HTTPStatusCode: res.StatusCode,
126813		},
126814	}
126815	target := &ret
126816	if err := gensupport.DecodeResponse(target, res); err != nil {
126817		return nil, err
126818	}
126819	return ret, nil
126820	// {
126821	//   "description": "Transfers GPUs or local SSDs between reservations within commitments.",
126822	//   "httpMethod": "POST",
126823	//   "id": "compute.regionCommitments.updateReservations",
126824	//   "parameterOrder": [
126825	//     "project",
126826	//     "region",
126827	//     "commitment"
126828	//   ],
126829	//   "parameters": {
126830	//     "commitment": {
126831	//       "description": "Name of the commitment for which the reservation is being updated.",
126832	//       "location": "path",
126833	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
126834	//       "required": true,
126835	//       "type": "string"
126836	//     },
126837	//     "project": {
126838	//       "description": "Project ID for this request.",
126839	//       "location": "path",
126840	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
126841	//       "required": true,
126842	//       "type": "string"
126843	//     },
126844	//     "region": {
126845	//       "description": "Name of the region for this request.",
126846	//       "location": "path",
126847	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
126848	//       "required": true,
126849	//       "type": "string"
126850	//     },
126851	//     "requestId": {
126852	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
126853	//       "location": "query",
126854	//       "type": "string"
126855	//     }
126856	//   },
126857	//   "path": "projects/{project}/regions/{region}/commitments/{commitment}/updateReservations",
126858	//   "request": {
126859	//     "$ref": "RegionCommitmentsUpdateReservationsRequest"
126860	//   },
126861	//   "response": {
126862	//     "$ref": "Operation"
126863	//   },
126864	//   "scopes": [
126865	//     "https://www.googleapis.com/auth/cloud-platform",
126866	//     "https://www.googleapis.com/auth/compute"
126867	//   ]
126868	// }
126869
126870}
126871
126872// method id "compute.regionDiskTypes.get":
126873
126874type RegionDiskTypesGetCall struct {
126875	s            *Service
126876	project      string
126877	region       string
126878	diskType     string
126879	urlParams_   gensupport.URLParams
126880	ifNoneMatch_ string
126881	ctx_         context.Context
126882	header_      http.Header
126883}
126884
126885// Get: Returns the specified regional disk type. Gets a list of
126886// available disk types by making a list() request.
126887func (r *RegionDiskTypesService) Get(project string, region string, diskType string) *RegionDiskTypesGetCall {
126888	c := &RegionDiskTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
126889	c.project = project
126890	c.region = region
126891	c.diskType = diskType
126892	return c
126893}
126894
126895// Fields allows partial responses to be retrieved. See
126896// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
126897// for more information.
126898func (c *RegionDiskTypesGetCall) Fields(s ...googleapi.Field) *RegionDiskTypesGetCall {
126899	c.urlParams_.Set("fields", googleapi.CombineFields(s))
126900	return c
126901}
126902
126903// IfNoneMatch sets the optional parameter which makes the operation
126904// fail if the object's ETag matches the given value. This is useful for
126905// getting updates only after the object has changed since the last
126906// request. Use googleapi.IsNotModified to check whether the response
126907// error from Do is the result of In-None-Match.
126908func (c *RegionDiskTypesGetCall) IfNoneMatch(entityTag string) *RegionDiskTypesGetCall {
126909	c.ifNoneMatch_ = entityTag
126910	return c
126911}
126912
126913// Context sets the context to be used in this call's Do method. Any
126914// pending HTTP request will be aborted if the provided context is
126915// canceled.
126916func (c *RegionDiskTypesGetCall) Context(ctx context.Context) *RegionDiskTypesGetCall {
126917	c.ctx_ = ctx
126918	return c
126919}
126920
126921// Header returns an http.Header that can be modified by the caller to
126922// add HTTP headers to the request.
126923func (c *RegionDiskTypesGetCall) Header() http.Header {
126924	if c.header_ == nil {
126925		c.header_ = make(http.Header)
126926	}
126927	return c.header_
126928}
126929
126930func (c *RegionDiskTypesGetCall) doRequest(alt string) (*http.Response, error) {
126931	reqHeaders := make(http.Header)
126932	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
126933	for k, v := range c.header_ {
126934		reqHeaders[k] = v
126935	}
126936	reqHeaders.Set("User-Agent", c.s.userAgent())
126937	if c.ifNoneMatch_ != "" {
126938		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
126939	}
126940	var body io.Reader = nil
126941	c.urlParams_.Set("alt", alt)
126942	c.urlParams_.Set("prettyPrint", "false")
126943	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/diskTypes/{diskType}")
126944	urls += "?" + c.urlParams_.Encode()
126945	req, err := http.NewRequest("GET", urls, body)
126946	if err != nil {
126947		return nil, err
126948	}
126949	req.Header = reqHeaders
126950	googleapi.Expand(req.URL, map[string]string{
126951		"project":  c.project,
126952		"region":   c.region,
126953		"diskType": c.diskType,
126954	})
126955	return gensupport.SendRequest(c.ctx_, c.s.client, req)
126956}
126957
126958// Do executes the "compute.regionDiskTypes.get" call.
126959// Exactly one of *DiskType or error will be non-nil. Any non-2xx status
126960// code is an error. Response headers are in either
126961// *DiskType.ServerResponse.Header or (if a response was returned at
126962// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
126963// to check whether the returned error was because
126964// http.StatusNotModified was returned.
126965func (c *RegionDiskTypesGetCall) Do(opts ...googleapi.CallOption) (*DiskType, error) {
126966	gensupport.SetOptions(c.urlParams_, opts...)
126967	res, err := c.doRequest("json")
126968	if res != nil && res.StatusCode == http.StatusNotModified {
126969		if res.Body != nil {
126970			res.Body.Close()
126971		}
126972		return nil, &googleapi.Error{
126973			Code:   res.StatusCode,
126974			Header: res.Header,
126975		}
126976	}
126977	if err != nil {
126978		return nil, err
126979	}
126980	defer googleapi.CloseBody(res)
126981	if err := googleapi.CheckResponse(res); err != nil {
126982		return nil, err
126983	}
126984	ret := &DiskType{
126985		ServerResponse: googleapi.ServerResponse{
126986			Header:         res.Header,
126987			HTTPStatusCode: res.StatusCode,
126988		},
126989	}
126990	target := &ret
126991	if err := gensupport.DecodeResponse(target, res); err != nil {
126992		return nil, err
126993	}
126994	return ret, nil
126995	// {
126996	//   "description": "Returns the specified regional disk type. Gets a list of available disk types by making a list() request.",
126997	//   "httpMethod": "GET",
126998	//   "id": "compute.regionDiskTypes.get",
126999	//   "parameterOrder": [
127000	//     "project",
127001	//     "region",
127002	//     "diskType"
127003	//   ],
127004	//   "parameters": {
127005	//     "diskType": {
127006	//       "description": "Name of the disk type to return.",
127007	//       "location": "path",
127008	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
127009	//       "required": true,
127010	//       "type": "string"
127011	//     },
127012	//     "project": {
127013	//       "description": "Project ID for this request.",
127014	//       "location": "path",
127015	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
127016	//       "required": true,
127017	//       "type": "string"
127018	//     },
127019	//     "region": {
127020	//       "description": "The name of the region for this request.",
127021	//       "location": "path",
127022	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
127023	//       "required": true,
127024	//       "type": "string"
127025	//     }
127026	//   },
127027	//   "path": "projects/{project}/regions/{region}/diskTypes/{diskType}",
127028	//   "response": {
127029	//     "$ref": "DiskType"
127030	//   },
127031	//   "scopes": [
127032	//     "https://www.googleapis.com/auth/cloud-platform",
127033	//     "https://www.googleapis.com/auth/compute",
127034	//     "https://www.googleapis.com/auth/compute.readonly"
127035	//   ]
127036	// }
127037
127038}
127039
127040// method id "compute.regionDiskTypes.list":
127041
127042type RegionDiskTypesListCall struct {
127043	s            *Service
127044	project      string
127045	region       string
127046	urlParams_   gensupport.URLParams
127047	ifNoneMatch_ string
127048	ctx_         context.Context
127049	header_      http.Header
127050}
127051
127052// List: Retrieves a list of regional disk types available to the
127053// specified project.
127054func (r *RegionDiskTypesService) List(project string, region string) *RegionDiskTypesListCall {
127055	c := &RegionDiskTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
127056	c.project = project
127057	c.region = region
127058	return c
127059}
127060
127061// Filter sets the optional parameter "filter": A filter expression that
127062// filters resources listed in the response. The expression must specify
127063// the field name, a comparison operator, and the value that you want to
127064// use for filtering. The value must be a string, a number, or a
127065// boolean. The comparison operator must be either `=`, `!=`, `>`, or
127066// `<`.
127067//
127068// For example, if you are filtering Compute Engine instances, you can
127069// exclude instances named `example-instance` by specifying `name !=
127070// example-instance`.
127071//
127072// You can also filter nested fields. For example, you could specify
127073// `scheduling.automaticRestart = false` to include instances only if
127074// they are not scheduled for automatic restarts. You can use filtering
127075// on nested fields to filter based on resource labels.
127076//
127077// To filter on multiple expressions, provide each separate expression
127078// within parentheses. For example: ``` (scheduling.automaticRestart =
127079// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
127080// is an `AND` expression. However, you can include `AND` and `OR`
127081// expressions explicitly. For example: ``` (cpuPlatform = "Intel
127082// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
127083// (scheduling.automaticRestart = true) ```
127084func (c *RegionDiskTypesListCall) Filter(filter string) *RegionDiskTypesListCall {
127085	c.urlParams_.Set("filter", filter)
127086	return c
127087}
127088
127089// MaxResults sets the optional parameter "maxResults": The maximum
127090// number of results per page that should be returned. If the number of
127091// available results is larger than `maxResults`, Compute Engine returns
127092// a `nextPageToken` that can be used to get the next page of results in
127093// subsequent list requests. Acceptable values are `0` to `500`,
127094// inclusive. (Default: `500`)
127095func (c *RegionDiskTypesListCall) MaxResults(maxResults int64) *RegionDiskTypesListCall {
127096	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
127097	return c
127098}
127099
127100// OrderBy sets the optional parameter "orderBy": Sorts list results by
127101// a certain order. By default, results are returned in alphanumerical
127102// order based on the resource name.
127103//
127104// You can also sort results in descending order based on the creation
127105// timestamp using `orderBy="creationTimestamp desc". This sorts
127106// results based on the `creationTimestamp` field in reverse
127107// chronological order (newest result first). Use this to sort resources
127108// like operations so that the newest operation is returned
127109// first.
127110//
127111// Currently, only sorting by `name` or `creationTimestamp desc` is
127112// supported.
127113func (c *RegionDiskTypesListCall) OrderBy(orderBy string) *RegionDiskTypesListCall {
127114	c.urlParams_.Set("orderBy", orderBy)
127115	return c
127116}
127117
127118// PageToken sets the optional parameter "pageToken": Specifies a page
127119// token to use. Set `pageToken` to the `nextPageToken` returned by a
127120// previous list request to get the next page of results.
127121func (c *RegionDiskTypesListCall) PageToken(pageToken string) *RegionDiskTypesListCall {
127122	c.urlParams_.Set("pageToken", pageToken)
127123	return c
127124}
127125
127126// ReturnPartialSuccess sets the optional parameter
127127// "returnPartialSuccess": Opt-in for partial success behavior which
127128// provides partial results in case of failure. The default value is
127129// false.
127130func (c *RegionDiskTypesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionDiskTypesListCall {
127131	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
127132	return c
127133}
127134
127135// Fields allows partial responses to be retrieved. See
127136// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
127137// for more information.
127138func (c *RegionDiskTypesListCall) Fields(s ...googleapi.Field) *RegionDiskTypesListCall {
127139	c.urlParams_.Set("fields", googleapi.CombineFields(s))
127140	return c
127141}
127142
127143// IfNoneMatch sets the optional parameter which makes the operation
127144// fail if the object's ETag matches the given value. This is useful for
127145// getting updates only after the object has changed since the last
127146// request. Use googleapi.IsNotModified to check whether the response
127147// error from Do is the result of In-None-Match.
127148func (c *RegionDiskTypesListCall) IfNoneMatch(entityTag string) *RegionDiskTypesListCall {
127149	c.ifNoneMatch_ = entityTag
127150	return c
127151}
127152
127153// Context sets the context to be used in this call's Do method. Any
127154// pending HTTP request will be aborted if the provided context is
127155// canceled.
127156func (c *RegionDiskTypesListCall) Context(ctx context.Context) *RegionDiskTypesListCall {
127157	c.ctx_ = ctx
127158	return c
127159}
127160
127161// Header returns an http.Header that can be modified by the caller to
127162// add HTTP headers to the request.
127163func (c *RegionDiskTypesListCall) Header() http.Header {
127164	if c.header_ == nil {
127165		c.header_ = make(http.Header)
127166	}
127167	return c.header_
127168}
127169
127170func (c *RegionDiskTypesListCall) doRequest(alt string) (*http.Response, error) {
127171	reqHeaders := make(http.Header)
127172	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
127173	for k, v := range c.header_ {
127174		reqHeaders[k] = v
127175	}
127176	reqHeaders.Set("User-Agent", c.s.userAgent())
127177	if c.ifNoneMatch_ != "" {
127178		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
127179	}
127180	var body io.Reader = nil
127181	c.urlParams_.Set("alt", alt)
127182	c.urlParams_.Set("prettyPrint", "false")
127183	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/diskTypes")
127184	urls += "?" + c.urlParams_.Encode()
127185	req, err := http.NewRequest("GET", urls, body)
127186	if err != nil {
127187		return nil, err
127188	}
127189	req.Header = reqHeaders
127190	googleapi.Expand(req.URL, map[string]string{
127191		"project": c.project,
127192		"region":  c.region,
127193	})
127194	return gensupport.SendRequest(c.ctx_, c.s.client, req)
127195}
127196
127197// Do executes the "compute.regionDiskTypes.list" call.
127198// Exactly one of *RegionDiskTypeList or error will be non-nil. Any
127199// non-2xx status code is an error. Response headers are in either
127200// *RegionDiskTypeList.ServerResponse.Header or (if a response was
127201// returned at all) in error.(*googleapi.Error).Header. Use
127202// googleapi.IsNotModified to check whether the returned error was
127203// because http.StatusNotModified was returned.
127204func (c *RegionDiskTypesListCall) Do(opts ...googleapi.CallOption) (*RegionDiskTypeList, error) {
127205	gensupport.SetOptions(c.urlParams_, opts...)
127206	res, err := c.doRequest("json")
127207	if res != nil && res.StatusCode == http.StatusNotModified {
127208		if res.Body != nil {
127209			res.Body.Close()
127210		}
127211		return nil, &googleapi.Error{
127212			Code:   res.StatusCode,
127213			Header: res.Header,
127214		}
127215	}
127216	if err != nil {
127217		return nil, err
127218	}
127219	defer googleapi.CloseBody(res)
127220	if err := googleapi.CheckResponse(res); err != nil {
127221		return nil, err
127222	}
127223	ret := &RegionDiskTypeList{
127224		ServerResponse: googleapi.ServerResponse{
127225			Header:         res.Header,
127226			HTTPStatusCode: res.StatusCode,
127227		},
127228	}
127229	target := &ret
127230	if err := gensupport.DecodeResponse(target, res); err != nil {
127231		return nil, err
127232	}
127233	return ret, nil
127234	// {
127235	//   "description": "Retrieves a list of regional disk types available to the specified project.",
127236	//   "httpMethod": "GET",
127237	//   "id": "compute.regionDiskTypes.list",
127238	//   "parameterOrder": [
127239	//     "project",
127240	//     "region"
127241	//   ],
127242	//   "parameters": {
127243	//     "filter": {
127244	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
127245	//       "location": "query",
127246	//       "type": "string"
127247	//     },
127248	//     "maxResults": {
127249	//       "default": "500",
127250	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
127251	//       "format": "uint32",
127252	//       "location": "query",
127253	//       "minimum": "0",
127254	//       "type": "integer"
127255	//     },
127256	//     "orderBy": {
127257	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
127258	//       "location": "query",
127259	//       "type": "string"
127260	//     },
127261	//     "pageToken": {
127262	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
127263	//       "location": "query",
127264	//       "type": "string"
127265	//     },
127266	//     "project": {
127267	//       "description": "Project ID for this request.",
127268	//       "location": "path",
127269	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
127270	//       "required": true,
127271	//       "type": "string"
127272	//     },
127273	//     "region": {
127274	//       "description": "The name of the region for this request.",
127275	//       "location": "path",
127276	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
127277	//       "required": true,
127278	//       "type": "string"
127279	//     },
127280	//     "returnPartialSuccess": {
127281	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
127282	//       "location": "query",
127283	//       "type": "boolean"
127284	//     }
127285	//   },
127286	//   "path": "projects/{project}/regions/{region}/diskTypes",
127287	//   "response": {
127288	//     "$ref": "RegionDiskTypeList"
127289	//   },
127290	//   "scopes": [
127291	//     "https://www.googleapis.com/auth/cloud-platform",
127292	//     "https://www.googleapis.com/auth/compute",
127293	//     "https://www.googleapis.com/auth/compute.readonly"
127294	//   ]
127295	// }
127296
127297}
127298
127299// Pages invokes f for each page of results.
127300// A non-nil error returned from f will halt the iteration.
127301// The provided context supersedes any context provided to the Context method.
127302func (c *RegionDiskTypesListCall) Pages(ctx context.Context, f func(*RegionDiskTypeList) error) error {
127303	c.ctx_ = ctx
127304	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
127305	for {
127306		x, err := c.Do()
127307		if err != nil {
127308			return err
127309		}
127310		if err := f(x); err != nil {
127311			return err
127312		}
127313		if x.NextPageToken == "" {
127314			return nil
127315		}
127316		c.PageToken(x.NextPageToken)
127317	}
127318}
127319
127320// method id "compute.regionDisks.addResourcePolicies":
127321
127322type RegionDisksAddResourcePoliciesCall struct {
127323	s                                     *Service
127324	project                               string
127325	region                                string
127326	disk                                  string
127327	regiondisksaddresourcepoliciesrequest *RegionDisksAddResourcePoliciesRequest
127328	urlParams_                            gensupport.URLParams
127329	ctx_                                  context.Context
127330	header_                               http.Header
127331}
127332
127333// AddResourcePolicies: Adds existing resource policies to a regional
127334// disk. You can only add one policy which will be applied to this disk
127335// for scheduling snapshot creation.
127336func (r *RegionDisksService) AddResourcePolicies(project string, region string, disk string, regiondisksaddresourcepoliciesrequest *RegionDisksAddResourcePoliciesRequest) *RegionDisksAddResourcePoliciesCall {
127337	c := &RegionDisksAddResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
127338	c.project = project
127339	c.region = region
127340	c.disk = disk
127341	c.regiondisksaddresourcepoliciesrequest = regiondisksaddresourcepoliciesrequest
127342	return c
127343}
127344
127345// RequestId sets the optional parameter "requestId": An optional
127346// request ID to identify requests. Specify a unique request ID so that
127347// if you must retry your request, the server will know to ignore the
127348// request if it has already been completed.
127349//
127350// For example, consider a situation where you make an initial request
127351// and the request times out. If you make the request again with the
127352// same request ID, the server can check if original operation with the
127353// same request ID was received, and if so, will ignore the second
127354// request. This prevents clients from accidentally creating duplicate
127355// commitments.
127356//
127357// The request ID must be a valid UUID with the exception that zero UUID
127358// is not supported (00000000-0000-0000-0000-000000000000).
127359func (c *RegionDisksAddResourcePoliciesCall) RequestId(requestId string) *RegionDisksAddResourcePoliciesCall {
127360	c.urlParams_.Set("requestId", requestId)
127361	return c
127362}
127363
127364// Fields allows partial responses to be retrieved. See
127365// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
127366// for more information.
127367func (c *RegionDisksAddResourcePoliciesCall) Fields(s ...googleapi.Field) *RegionDisksAddResourcePoliciesCall {
127368	c.urlParams_.Set("fields", googleapi.CombineFields(s))
127369	return c
127370}
127371
127372// Context sets the context to be used in this call's Do method. Any
127373// pending HTTP request will be aborted if the provided context is
127374// canceled.
127375func (c *RegionDisksAddResourcePoliciesCall) Context(ctx context.Context) *RegionDisksAddResourcePoliciesCall {
127376	c.ctx_ = ctx
127377	return c
127378}
127379
127380// Header returns an http.Header that can be modified by the caller to
127381// add HTTP headers to the request.
127382func (c *RegionDisksAddResourcePoliciesCall) Header() http.Header {
127383	if c.header_ == nil {
127384		c.header_ = make(http.Header)
127385	}
127386	return c.header_
127387}
127388
127389func (c *RegionDisksAddResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
127390	reqHeaders := make(http.Header)
127391	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
127392	for k, v := range c.header_ {
127393		reqHeaders[k] = v
127394	}
127395	reqHeaders.Set("User-Agent", c.s.userAgent())
127396	var body io.Reader = nil
127397	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regiondisksaddresourcepoliciesrequest)
127398	if err != nil {
127399		return nil, err
127400	}
127401	reqHeaders.Set("Content-Type", "application/json")
127402	c.urlParams_.Set("alt", alt)
127403	c.urlParams_.Set("prettyPrint", "false")
127404	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{disk}/addResourcePolicies")
127405	urls += "?" + c.urlParams_.Encode()
127406	req, err := http.NewRequest("POST", urls, body)
127407	if err != nil {
127408		return nil, err
127409	}
127410	req.Header = reqHeaders
127411	googleapi.Expand(req.URL, map[string]string{
127412		"project": c.project,
127413		"region":  c.region,
127414		"disk":    c.disk,
127415	})
127416	return gensupport.SendRequest(c.ctx_, c.s.client, req)
127417}
127418
127419// Do executes the "compute.regionDisks.addResourcePolicies" call.
127420// Exactly one of *Operation or error will be non-nil. Any non-2xx
127421// status code is an error. Response headers are in either
127422// *Operation.ServerResponse.Header or (if a response was returned at
127423// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
127424// to check whether the returned error was because
127425// http.StatusNotModified was returned.
127426func (c *RegionDisksAddResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
127427	gensupport.SetOptions(c.urlParams_, opts...)
127428	res, err := c.doRequest("json")
127429	if res != nil && res.StatusCode == http.StatusNotModified {
127430		if res.Body != nil {
127431			res.Body.Close()
127432		}
127433		return nil, &googleapi.Error{
127434			Code:   res.StatusCode,
127435			Header: res.Header,
127436		}
127437	}
127438	if err != nil {
127439		return nil, err
127440	}
127441	defer googleapi.CloseBody(res)
127442	if err := googleapi.CheckResponse(res); err != nil {
127443		return nil, err
127444	}
127445	ret := &Operation{
127446		ServerResponse: googleapi.ServerResponse{
127447			Header:         res.Header,
127448			HTTPStatusCode: res.StatusCode,
127449		},
127450	}
127451	target := &ret
127452	if err := gensupport.DecodeResponse(target, res); err != nil {
127453		return nil, err
127454	}
127455	return ret, nil
127456	// {
127457	//   "description": "Adds existing resource policies to a regional disk. You can only add one policy which will be applied to this disk for scheduling snapshot creation.",
127458	//   "httpMethod": "POST",
127459	//   "id": "compute.regionDisks.addResourcePolicies",
127460	//   "parameterOrder": [
127461	//     "project",
127462	//     "region",
127463	//     "disk"
127464	//   ],
127465	//   "parameters": {
127466	//     "disk": {
127467	//       "description": "The disk name for this request.",
127468	//       "location": "path",
127469	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
127470	//       "required": true,
127471	//       "type": "string"
127472	//     },
127473	//     "project": {
127474	//       "description": "Project ID for this request.",
127475	//       "location": "path",
127476	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
127477	//       "required": true,
127478	//       "type": "string"
127479	//     },
127480	//     "region": {
127481	//       "description": "The name of the region for this request.",
127482	//       "location": "path",
127483	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
127484	//       "required": true,
127485	//       "type": "string"
127486	//     },
127487	//     "requestId": {
127488	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
127489	//       "location": "query",
127490	//       "type": "string"
127491	//     }
127492	//   },
127493	//   "path": "projects/{project}/regions/{region}/disks/{disk}/addResourcePolicies",
127494	//   "request": {
127495	//     "$ref": "RegionDisksAddResourcePoliciesRequest"
127496	//   },
127497	//   "response": {
127498	//     "$ref": "Operation"
127499	//   },
127500	//   "scopes": [
127501	//     "https://www.googleapis.com/auth/cloud-platform",
127502	//     "https://www.googleapis.com/auth/compute"
127503	//   ]
127504	// }
127505
127506}
127507
127508// method id "compute.regionDisks.createSnapshot":
127509
127510type RegionDisksCreateSnapshotCall struct {
127511	s          *Service
127512	project    string
127513	region     string
127514	disk       string
127515	snapshot   *Snapshot
127516	urlParams_ gensupport.URLParams
127517	ctx_       context.Context
127518	header_    http.Header
127519}
127520
127521// CreateSnapshot: Creates a snapshot of this regional disk.
127522func (r *RegionDisksService) CreateSnapshot(project string, region string, disk string, snapshot *Snapshot) *RegionDisksCreateSnapshotCall {
127523	c := &RegionDisksCreateSnapshotCall{s: r.s, urlParams_: make(gensupport.URLParams)}
127524	c.project = project
127525	c.region = region
127526	c.disk = disk
127527	c.snapshot = snapshot
127528	return c
127529}
127530
127531// RequestId sets the optional parameter "requestId": An optional
127532// request ID to identify requests. Specify a unique request ID so that
127533// if you must retry your request, the server will know to ignore the
127534// request if it has already been completed.
127535//
127536// For example, consider a situation where you make an initial request
127537// and the request times out. If you make the request again with the
127538// same request ID, the server can check if original operation with the
127539// same request ID was received, and if so, will ignore the second
127540// request. This prevents clients from accidentally creating duplicate
127541// commitments.
127542//
127543// The request ID must be a valid UUID with the exception that zero UUID
127544// is not supported (00000000-0000-0000-0000-000000000000).
127545func (c *RegionDisksCreateSnapshotCall) RequestId(requestId string) *RegionDisksCreateSnapshotCall {
127546	c.urlParams_.Set("requestId", requestId)
127547	return c
127548}
127549
127550// Fields allows partial responses to be retrieved. See
127551// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
127552// for more information.
127553func (c *RegionDisksCreateSnapshotCall) Fields(s ...googleapi.Field) *RegionDisksCreateSnapshotCall {
127554	c.urlParams_.Set("fields", googleapi.CombineFields(s))
127555	return c
127556}
127557
127558// Context sets the context to be used in this call's Do method. Any
127559// pending HTTP request will be aborted if the provided context is
127560// canceled.
127561func (c *RegionDisksCreateSnapshotCall) Context(ctx context.Context) *RegionDisksCreateSnapshotCall {
127562	c.ctx_ = ctx
127563	return c
127564}
127565
127566// Header returns an http.Header that can be modified by the caller to
127567// add HTTP headers to the request.
127568func (c *RegionDisksCreateSnapshotCall) Header() http.Header {
127569	if c.header_ == nil {
127570		c.header_ = make(http.Header)
127571	}
127572	return c.header_
127573}
127574
127575func (c *RegionDisksCreateSnapshotCall) doRequest(alt string) (*http.Response, error) {
127576	reqHeaders := make(http.Header)
127577	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
127578	for k, v := range c.header_ {
127579		reqHeaders[k] = v
127580	}
127581	reqHeaders.Set("User-Agent", c.s.userAgent())
127582	var body io.Reader = nil
127583	body, err := googleapi.WithoutDataWrapper.JSONReader(c.snapshot)
127584	if err != nil {
127585		return nil, err
127586	}
127587	reqHeaders.Set("Content-Type", "application/json")
127588	c.urlParams_.Set("alt", alt)
127589	c.urlParams_.Set("prettyPrint", "false")
127590	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{disk}/createSnapshot")
127591	urls += "?" + c.urlParams_.Encode()
127592	req, err := http.NewRequest("POST", urls, body)
127593	if err != nil {
127594		return nil, err
127595	}
127596	req.Header = reqHeaders
127597	googleapi.Expand(req.URL, map[string]string{
127598		"project": c.project,
127599		"region":  c.region,
127600		"disk":    c.disk,
127601	})
127602	return gensupport.SendRequest(c.ctx_, c.s.client, req)
127603}
127604
127605// Do executes the "compute.regionDisks.createSnapshot" call.
127606// Exactly one of *Operation or error will be non-nil. Any non-2xx
127607// status code is an error. Response headers are in either
127608// *Operation.ServerResponse.Header or (if a response was returned at
127609// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
127610// to check whether the returned error was because
127611// http.StatusNotModified was returned.
127612func (c *RegionDisksCreateSnapshotCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
127613	gensupport.SetOptions(c.urlParams_, opts...)
127614	res, err := c.doRequest("json")
127615	if res != nil && res.StatusCode == http.StatusNotModified {
127616		if res.Body != nil {
127617			res.Body.Close()
127618		}
127619		return nil, &googleapi.Error{
127620			Code:   res.StatusCode,
127621			Header: res.Header,
127622		}
127623	}
127624	if err != nil {
127625		return nil, err
127626	}
127627	defer googleapi.CloseBody(res)
127628	if err := googleapi.CheckResponse(res); err != nil {
127629		return nil, err
127630	}
127631	ret := &Operation{
127632		ServerResponse: googleapi.ServerResponse{
127633			Header:         res.Header,
127634			HTTPStatusCode: res.StatusCode,
127635		},
127636	}
127637	target := &ret
127638	if err := gensupport.DecodeResponse(target, res); err != nil {
127639		return nil, err
127640	}
127641	return ret, nil
127642	// {
127643	//   "description": "Creates a snapshot of this regional disk.",
127644	//   "httpMethod": "POST",
127645	//   "id": "compute.regionDisks.createSnapshot",
127646	//   "parameterOrder": [
127647	//     "project",
127648	//     "region",
127649	//     "disk"
127650	//   ],
127651	//   "parameters": {
127652	//     "disk": {
127653	//       "description": "Name of the regional persistent disk to snapshot.",
127654	//       "location": "path",
127655	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
127656	//       "required": true,
127657	//       "type": "string"
127658	//     },
127659	//     "project": {
127660	//       "description": "Project ID for this request.",
127661	//       "location": "path",
127662	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
127663	//       "required": true,
127664	//       "type": "string"
127665	//     },
127666	//     "region": {
127667	//       "description": "Name of the region for this request.",
127668	//       "location": "path",
127669	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
127670	//       "required": true,
127671	//       "type": "string"
127672	//     },
127673	//     "requestId": {
127674	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
127675	//       "location": "query",
127676	//       "type": "string"
127677	//     }
127678	//   },
127679	//   "path": "projects/{project}/regions/{region}/disks/{disk}/createSnapshot",
127680	//   "request": {
127681	//     "$ref": "Snapshot"
127682	//   },
127683	//   "response": {
127684	//     "$ref": "Operation"
127685	//   },
127686	//   "scopes": [
127687	//     "https://www.googleapis.com/auth/cloud-platform",
127688	//     "https://www.googleapis.com/auth/compute"
127689	//   ]
127690	// }
127691
127692}
127693
127694// method id "compute.regionDisks.delete":
127695
127696type RegionDisksDeleteCall struct {
127697	s          *Service
127698	project    string
127699	region     string
127700	disk       string
127701	urlParams_ gensupport.URLParams
127702	ctx_       context.Context
127703	header_    http.Header
127704}
127705
127706// Delete: Deletes the specified regional persistent disk. Deleting a
127707// regional disk removes all the replicas of its data permanently and is
127708// irreversible. However, deleting a disk does not delete any snapshots
127709// previously made from the disk. You must separately delete snapshots.
127710func (r *RegionDisksService) Delete(project string, region string, disk string) *RegionDisksDeleteCall {
127711	c := &RegionDisksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
127712	c.project = project
127713	c.region = region
127714	c.disk = disk
127715	return c
127716}
127717
127718// RequestId sets the optional parameter "requestId": An optional
127719// request ID to identify requests. Specify a unique request ID so that
127720// if you must retry your request, the server will know to ignore the
127721// request if it has already been completed.
127722//
127723// For example, consider a situation where you make an initial request
127724// and the request times out. If you make the request again with the
127725// same request ID, the server can check if original operation with the
127726// same request ID was received, and if so, will ignore the second
127727// request. This prevents clients from accidentally creating duplicate
127728// commitments.
127729//
127730// The request ID must be a valid UUID with the exception that zero UUID
127731// is not supported (00000000-0000-0000-0000-000000000000).
127732func (c *RegionDisksDeleteCall) RequestId(requestId string) *RegionDisksDeleteCall {
127733	c.urlParams_.Set("requestId", requestId)
127734	return c
127735}
127736
127737// Fields allows partial responses to be retrieved. See
127738// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
127739// for more information.
127740func (c *RegionDisksDeleteCall) Fields(s ...googleapi.Field) *RegionDisksDeleteCall {
127741	c.urlParams_.Set("fields", googleapi.CombineFields(s))
127742	return c
127743}
127744
127745// Context sets the context to be used in this call's Do method. Any
127746// pending HTTP request will be aborted if the provided context is
127747// canceled.
127748func (c *RegionDisksDeleteCall) Context(ctx context.Context) *RegionDisksDeleteCall {
127749	c.ctx_ = ctx
127750	return c
127751}
127752
127753// Header returns an http.Header that can be modified by the caller to
127754// add HTTP headers to the request.
127755func (c *RegionDisksDeleteCall) Header() http.Header {
127756	if c.header_ == nil {
127757		c.header_ = make(http.Header)
127758	}
127759	return c.header_
127760}
127761
127762func (c *RegionDisksDeleteCall) doRequest(alt string) (*http.Response, error) {
127763	reqHeaders := make(http.Header)
127764	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
127765	for k, v := range c.header_ {
127766		reqHeaders[k] = v
127767	}
127768	reqHeaders.Set("User-Agent", c.s.userAgent())
127769	var body io.Reader = nil
127770	c.urlParams_.Set("alt", alt)
127771	c.urlParams_.Set("prettyPrint", "false")
127772	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{disk}")
127773	urls += "?" + c.urlParams_.Encode()
127774	req, err := http.NewRequest("DELETE", urls, body)
127775	if err != nil {
127776		return nil, err
127777	}
127778	req.Header = reqHeaders
127779	googleapi.Expand(req.URL, map[string]string{
127780		"project": c.project,
127781		"region":  c.region,
127782		"disk":    c.disk,
127783	})
127784	return gensupport.SendRequest(c.ctx_, c.s.client, req)
127785}
127786
127787// Do executes the "compute.regionDisks.delete" call.
127788// Exactly one of *Operation or error will be non-nil. Any non-2xx
127789// status code is an error. Response headers are in either
127790// *Operation.ServerResponse.Header or (if a response was returned at
127791// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
127792// to check whether the returned error was because
127793// http.StatusNotModified was returned.
127794func (c *RegionDisksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
127795	gensupport.SetOptions(c.urlParams_, opts...)
127796	res, err := c.doRequest("json")
127797	if res != nil && res.StatusCode == http.StatusNotModified {
127798		if res.Body != nil {
127799			res.Body.Close()
127800		}
127801		return nil, &googleapi.Error{
127802			Code:   res.StatusCode,
127803			Header: res.Header,
127804		}
127805	}
127806	if err != nil {
127807		return nil, err
127808	}
127809	defer googleapi.CloseBody(res)
127810	if err := googleapi.CheckResponse(res); err != nil {
127811		return nil, err
127812	}
127813	ret := &Operation{
127814		ServerResponse: googleapi.ServerResponse{
127815			Header:         res.Header,
127816			HTTPStatusCode: res.StatusCode,
127817		},
127818	}
127819	target := &ret
127820	if err := gensupport.DecodeResponse(target, res); err != nil {
127821		return nil, err
127822	}
127823	return ret, nil
127824	// {
127825	//   "description": "Deletes the specified regional persistent disk. Deleting a regional disk removes all the replicas of its data permanently and is irreversible. However, deleting a disk does not delete any snapshots previously made from the disk. You must separately delete snapshots.",
127826	//   "httpMethod": "DELETE",
127827	//   "id": "compute.regionDisks.delete",
127828	//   "parameterOrder": [
127829	//     "project",
127830	//     "region",
127831	//     "disk"
127832	//   ],
127833	//   "parameters": {
127834	//     "disk": {
127835	//       "description": "Name of the regional persistent disk to delete.",
127836	//       "location": "path",
127837	//       "required": true,
127838	//       "type": "string"
127839	//     },
127840	//     "project": {
127841	//       "description": "Project ID for this request.",
127842	//       "location": "path",
127843	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
127844	//       "required": true,
127845	//       "type": "string"
127846	//     },
127847	//     "region": {
127848	//       "description": "Name of the region for this request.",
127849	//       "location": "path",
127850	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
127851	//       "required": true,
127852	//       "type": "string"
127853	//     },
127854	//     "requestId": {
127855	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
127856	//       "location": "query",
127857	//       "type": "string"
127858	//     }
127859	//   },
127860	//   "path": "projects/{project}/regions/{region}/disks/{disk}",
127861	//   "response": {
127862	//     "$ref": "Operation"
127863	//   },
127864	//   "scopes": [
127865	//     "https://www.googleapis.com/auth/cloud-platform",
127866	//     "https://www.googleapis.com/auth/compute"
127867	//   ]
127868	// }
127869
127870}
127871
127872// method id "compute.regionDisks.get":
127873
127874type RegionDisksGetCall struct {
127875	s            *Service
127876	project      string
127877	region       string
127878	disk         string
127879	urlParams_   gensupport.URLParams
127880	ifNoneMatch_ string
127881	ctx_         context.Context
127882	header_      http.Header
127883}
127884
127885// Get: Returns a specified regional persistent disk.
127886func (r *RegionDisksService) Get(project string, region string, disk string) *RegionDisksGetCall {
127887	c := &RegionDisksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
127888	c.project = project
127889	c.region = region
127890	c.disk = disk
127891	return c
127892}
127893
127894// Fields allows partial responses to be retrieved. See
127895// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
127896// for more information.
127897func (c *RegionDisksGetCall) Fields(s ...googleapi.Field) *RegionDisksGetCall {
127898	c.urlParams_.Set("fields", googleapi.CombineFields(s))
127899	return c
127900}
127901
127902// IfNoneMatch sets the optional parameter which makes the operation
127903// fail if the object's ETag matches the given value. This is useful for
127904// getting updates only after the object has changed since the last
127905// request. Use googleapi.IsNotModified to check whether the response
127906// error from Do is the result of In-None-Match.
127907func (c *RegionDisksGetCall) IfNoneMatch(entityTag string) *RegionDisksGetCall {
127908	c.ifNoneMatch_ = entityTag
127909	return c
127910}
127911
127912// Context sets the context to be used in this call's Do method. Any
127913// pending HTTP request will be aborted if the provided context is
127914// canceled.
127915func (c *RegionDisksGetCall) Context(ctx context.Context) *RegionDisksGetCall {
127916	c.ctx_ = ctx
127917	return c
127918}
127919
127920// Header returns an http.Header that can be modified by the caller to
127921// add HTTP headers to the request.
127922func (c *RegionDisksGetCall) Header() http.Header {
127923	if c.header_ == nil {
127924		c.header_ = make(http.Header)
127925	}
127926	return c.header_
127927}
127928
127929func (c *RegionDisksGetCall) doRequest(alt string) (*http.Response, error) {
127930	reqHeaders := make(http.Header)
127931	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
127932	for k, v := range c.header_ {
127933		reqHeaders[k] = v
127934	}
127935	reqHeaders.Set("User-Agent", c.s.userAgent())
127936	if c.ifNoneMatch_ != "" {
127937		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
127938	}
127939	var body io.Reader = nil
127940	c.urlParams_.Set("alt", alt)
127941	c.urlParams_.Set("prettyPrint", "false")
127942	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{disk}")
127943	urls += "?" + c.urlParams_.Encode()
127944	req, err := http.NewRequest("GET", urls, body)
127945	if err != nil {
127946		return nil, err
127947	}
127948	req.Header = reqHeaders
127949	googleapi.Expand(req.URL, map[string]string{
127950		"project": c.project,
127951		"region":  c.region,
127952		"disk":    c.disk,
127953	})
127954	return gensupport.SendRequest(c.ctx_, c.s.client, req)
127955}
127956
127957// Do executes the "compute.regionDisks.get" call.
127958// Exactly one of *Disk or error will be non-nil. Any non-2xx status
127959// code is an error. Response headers are in either
127960// *Disk.ServerResponse.Header or (if a response was returned at all) in
127961// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
127962// whether the returned error was because http.StatusNotModified was
127963// returned.
127964func (c *RegionDisksGetCall) Do(opts ...googleapi.CallOption) (*Disk, error) {
127965	gensupport.SetOptions(c.urlParams_, opts...)
127966	res, err := c.doRequest("json")
127967	if res != nil && res.StatusCode == http.StatusNotModified {
127968		if res.Body != nil {
127969			res.Body.Close()
127970		}
127971		return nil, &googleapi.Error{
127972			Code:   res.StatusCode,
127973			Header: res.Header,
127974		}
127975	}
127976	if err != nil {
127977		return nil, err
127978	}
127979	defer googleapi.CloseBody(res)
127980	if err := googleapi.CheckResponse(res); err != nil {
127981		return nil, err
127982	}
127983	ret := &Disk{
127984		ServerResponse: googleapi.ServerResponse{
127985			Header:         res.Header,
127986			HTTPStatusCode: res.StatusCode,
127987		},
127988	}
127989	target := &ret
127990	if err := gensupport.DecodeResponse(target, res); err != nil {
127991		return nil, err
127992	}
127993	return ret, nil
127994	// {
127995	//   "description": "Returns a specified regional persistent disk.",
127996	//   "httpMethod": "GET",
127997	//   "id": "compute.regionDisks.get",
127998	//   "parameterOrder": [
127999	//     "project",
128000	//     "region",
128001	//     "disk"
128002	//   ],
128003	//   "parameters": {
128004	//     "disk": {
128005	//       "description": "Name of the regional persistent disk to return.",
128006	//       "location": "path",
128007	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
128008	//       "required": true,
128009	//       "type": "string"
128010	//     },
128011	//     "project": {
128012	//       "description": "Project ID for this request.",
128013	//       "location": "path",
128014	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
128015	//       "required": true,
128016	//       "type": "string"
128017	//     },
128018	//     "region": {
128019	//       "description": "Name of the region for this request.",
128020	//       "location": "path",
128021	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
128022	//       "required": true,
128023	//       "type": "string"
128024	//     }
128025	//   },
128026	//   "path": "projects/{project}/regions/{region}/disks/{disk}",
128027	//   "response": {
128028	//     "$ref": "Disk"
128029	//   },
128030	//   "scopes": [
128031	//     "https://www.googleapis.com/auth/cloud-platform",
128032	//     "https://www.googleapis.com/auth/compute",
128033	//     "https://www.googleapis.com/auth/compute.readonly"
128034	//   ]
128035	// }
128036
128037}
128038
128039// method id "compute.regionDisks.getIamPolicy":
128040
128041type RegionDisksGetIamPolicyCall struct {
128042	s            *Service
128043	project      string
128044	region       string
128045	resource     string
128046	urlParams_   gensupport.URLParams
128047	ifNoneMatch_ string
128048	ctx_         context.Context
128049	header_      http.Header
128050}
128051
128052// GetIamPolicy: Gets the access control policy for a resource. May be
128053// empty if no such policy or resource exists.
128054func (r *RegionDisksService) GetIamPolicy(project string, region string, resource string) *RegionDisksGetIamPolicyCall {
128055	c := &RegionDisksGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
128056	c.project = project
128057	c.region = region
128058	c.resource = resource
128059	return c
128060}
128061
128062// OptionsRequestedPolicyVersion sets the optional parameter
128063// "optionsRequestedPolicyVersion": Requested IAM Policy version.
128064func (c *RegionDisksGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *RegionDisksGetIamPolicyCall {
128065	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
128066	return c
128067}
128068
128069// Fields allows partial responses to be retrieved. See
128070// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
128071// for more information.
128072func (c *RegionDisksGetIamPolicyCall) Fields(s ...googleapi.Field) *RegionDisksGetIamPolicyCall {
128073	c.urlParams_.Set("fields", googleapi.CombineFields(s))
128074	return c
128075}
128076
128077// IfNoneMatch sets the optional parameter which makes the operation
128078// fail if the object's ETag matches the given value. This is useful for
128079// getting updates only after the object has changed since the last
128080// request. Use googleapi.IsNotModified to check whether the response
128081// error from Do is the result of In-None-Match.
128082func (c *RegionDisksGetIamPolicyCall) IfNoneMatch(entityTag string) *RegionDisksGetIamPolicyCall {
128083	c.ifNoneMatch_ = entityTag
128084	return c
128085}
128086
128087// Context sets the context to be used in this call's Do method. Any
128088// pending HTTP request will be aborted if the provided context is
128089// canceled.
128090func (c *RegionDisksGetIamPolicyCall) Context(ctx context.Context) *RegionDisksGetIamPolicyCall {
128091	c.ctx_ = ctx
128092	return c
128093}
128094
128095// Header returns an http.Header that can be modified by the caller to
128096// add HTTP headers to the request.
128097func (c *RegionDisksGetIamPolicyCall) Header() http.Header {
128098	if c.header_ == nil {
128099		c.header_ = make(http.Header)
128100	}
128101	return c.header_
128102}
128103
128104func (c *RegionDisksGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
128105	reqHeaders := make(http.Header)
128106	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
128107	for k, v := range c.header_ {
128108		reqHeaders[k] = v
128109	}
128110	reqHeaders.Set("User-Agent", c.s.userAgent())
128111	if c.ifNoneMatch_ != "" {
128112		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
128113	}
128114	var body io.Reader = nil
128115	c.urlParams_.Set("alt", alt)
128116	c.urlParams_.Set("prettyPrint", "false")
128117	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{resource}/getIamPolicy")
128118	urls += "?" + c.urlParams_.Encode()
128119	req, err := http.NewRequest("GET", urls, body)
128120	if err != nil {
128121		return nil, err
128122	}
128123	req.Header = reqHeaders
128124	googleapi.Expand(req.URL, map[string]string{
128125		"project":  c.project,
128126		"region":   c.region,
128127		"resource": c.resource,
128128	})
128129	return gensupport.SendRequest(c.ctx_, c.s.client, req)
128130}
128131
128132// Do executes the "compute.regionDisks.getIamPolicy" call.
128133// Exactly one of *Policy or error will be non-nil. Any non-2xx status
128134// code is an error. Response headers are in either
128135// *Policy.ServerResponse.Header or (if a response was returned at all)
128136// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
128137// check whether the returned error was because http.StatusNotModified
128138// was returned.
128139func (c *RegionDisksGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
128140	gensupport.SetOptions(c.urlParams_, opts...)
128141	res, err := c.doRequest("json")
128142	if res != nil && res.StatusCode == http.StatusNotModified {
128143		if res.Body != nil {
128144			res.Body.Close()
128145		}
128146		return nil, &googleapi.Error{
128147			Code:   res.StatusCode,
128148			Header: res.Header,
128149		}
128150	}
128151	if err != nil {
128152		return nil, err
128153	}
128154	defer googleapi.CloseBody(res)
128155	if err := googleapi.CheckResponse(res); err != nil {
128156		return nil, err
128157	}
128158	ret := &Policy{
128159		ServerResponse: googleapi.ServerResponse{
128160			Header:         res.Header,
128161			HTTPStatusCode: res.StatusCode,
128162		},
128163	}
128164	target := &ret
128165	if err := gensupport.DecodeResponse(target, res); err != nil {
128166		return nil, err
128167	}
128168	return ret, nil
128169	// {
128170	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
128171	//   "httpMethod": "GET",
128172	//   "id": "compute.regionDisks.getIamPolicy",
128173	//   "parameterOrder": [
128174	//     "project",
128175	//     "region",
128176	//     "resource"
128177	//   ],
128178	//   "parameters": {
128179	//     "optionsRequestedPolicyVersion": {
128180	//       "description": "Requested IAM Policy version.",
128181	//       "format": "int32",
128182	//       "location": "query",
128183	//       "type": "integer"
128184	//     },
128185	//     "project": {
128186	//       "description": "Project ID for this request.",
128187	//       "location": "path",
128188	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
128189	//       "required": true,
128190	//       "type": "string"
128191	//     },
128192	//     "region": {
128193	//       "description": "The name of the region for this request.",
128194	//       "location": "path",
128195	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
128196	//       "required": true,
128197	//       "type": "string"
128198	//     },
128199	//     "resource": {
128200	//       "description": "Name or id of the resource for this request.",
128201	//       "location": "path",
128202	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
128203	//       "required": true,
128204	//       "type": "string"
128205	//     }
128206	//   },
128207	//   "path": "projects/{project}/regions/{region}/disks/{resource}/getIamPolicy",
128208	//   "response": {
128209	//     "$ref": "Policy"
128210	//   },
128211	//   "scopes": [
128212	//     "https://www.googleapis.com/auth/cloud-platform",
128213	//     "https://www.googleapis.com/auth/compute",
128214	//     "https://www.googleapis.com/auth/compute.readonly"
128215	//   ]
128216	// }
128217
128218}
128219
128220// method id "compute.regionDisks.insert":
128221
128222type RegionDisksInsertCall struct {
128223	s          *Service
128224	project    string
128225	region     string
128226	disk       *Disk
128227	urlParams_ gensupport.URLParams
128228	ctx_       context.Context
128229	header_    http.Header
128230}
128231
128232// Insert: Creates a persistent regional disk in the specified project
128233// using the data included in the request.
128234func (r *RegionDisksService) Insert(project string, region string, disk *Disk) *RegionDisksInsertCall {
128235	c := &RegionDisksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
128236	c.project = project
128237	c.region = region
128238	c.disk = disk
128239	return c
128240}
128241
128242// RequestId sets the optional parameter "requestId": An optional
128243// request ID to identify requests. Specify a unique request ID so that
128244// if you must retry your request, the server will know to ignore the
128245// request if it has already been completed.
128246//
128247// For example, consider a situation where you make an initial request
128248// and the request times out. If you make the request again with the
128249// same request ID, the server can check if original operation with the
128250// same request ID was received, and if so, will ignore the second
128251// request. This prevents clients from accidentally creating duplicate
128252// commitments.
128253//
128254// The request ID must be a valid UUID with the exception that zero UUID
128255// is not supported (00000000-0000-0000-0000-000000000000).
128256func (c *RegionDisksInsertCall) RequestId(requestId string) *RegionDisksInsertCall {
128257	c.urlParams_.Set("requestId", requestId)
128258	return c
128259}
128260
128261// SourceImage sets the optional parameter "sourceImage": Source image
128262// to restore onto a disk. This field is optional.
128263func (c *RegionDisksInsertCall) SourceImage(sourceImage string) *RegionDisksInsertCall {
128264	c.urlParams_.Set("sourceImage", sourceImage)
128265	return c
128266}
128267
128268// Fields allows partial responses to be retrieved. See
128269// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
128270// for more information.
128271func (c *RegionDisksInsertCall) Fields(s ...googleapi.Field) *RegionDisksInsertCall {
128272	c.urlParams_.Set("fields", googleapi.CombineFields(s))
128273	return c
128274}
128275
128276// Context sets the context to be used in this call's Do method. Any
128277// pending HTTP request will be aborted if the provided context is
128278// canceled.
128279func (c *RegionDisksInsertCall) Context(ctx context.Context) *RegionDisksInsertCall {
128280	c.ctx_ = ctx
128281	return c
128282}
128283
128284// Header returns an http.Header that can be modified by the caller to
128285// add HTTP headers to the request.
128286func (c *RegionDisksInsertCall) Header() http.Header {
128287	if c.header_ == nil {
128288		c.header_ = make(http.Header)
128289	}
128290	return c.header_
128291}
128292
128293func (c *RegionDisksInsertCall) doRequest(alt string) (*http.Response, error) {
128294	reqHeaders := make(http.Header)
128295	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
128296	for k, v := range c.header_ {
128297		reqHeaders[k] = v
128298	}
128299	reqHeaders.Set("User-Agent", c.s.userAgent())
128300	var body io.Reader = nil
128301	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disk)
128302	if err != nil {
128303		return nil, err
128304	}
128305	reqHeaders.Set("Content-Type", "application/json")
128306	c.urlParams_.Set("alt", alt)
128307	c.urlParams_.Set("prettyPrint", "false")
128308	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks")
128309	urls += "?" + c.urlParams_.Encode()
128310	req, err := http.NewRequest("POST", urls, body)
128311	if err != nil {
128312		return nil, err
128313	}
128314	req.Header = reqHeaders
128315	googleapi.Expand(req.URL, map[string]string{
128316		"project": c.project,
128317		"region":  c.region,
128318	})
128319	return gensupport.SendRequest(c.ctx_, c.s.client, req)
128320}
128321
128322// Do executes the "compute.regionDisks.insert" call.
128323// Exactly one of *Operation or error will be non-nil. Any non-2xx
128324// status code is an error. Response headers are in either
128325// *Operation.ServerResponse.Header or (if a response was returned at
128326// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
128327// to check whether the returned error was because
128328// http.StatusNotModified was returned.
128329func (c *RegionDisksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
128330	gensupport.SetOptions(c.urlParams_, opts...)
128331	res, err := c.doRequest("json")
128332	if res != nil && res.StatusCode == http.StatusNotModified {
128333		if res.Body != nil {
128334			res.Body.Close()
128335		}
128336		return nil, &googleapi.Error{
128337			Code:   res.StatusCode,
128338			Header: res.Header,
128339		}
128340	}
128341	if err != nil {
128342		return nil, err
128343	}
128344	defer googleapi.CloseBody(res)
128345	if err := googleapi.CheckResponse(res); err != nil {
128346		return nil, err
128347	}
128348	ret := &Operation{
128349		ServerResponse: googleapi.ServerResponse{
128350			Header:         res.Header,
128351			HTTPStatusCode: res.StatusCode,
128352		},
128353	}
128354	target := &ret
128355	if err := gensupport.DecodeResponse(target, res); err != nil {
128356		return nil, err
128357	}
128358	return ret, nil
128359	// {
128360	//   "description": "Creates a persistent regional disk in the specified project using the data included in the request.",
128361	//   "httpMethod": "POST",
128362	//   "id": "compute.regionDisks.insert",
128363	//   "parameterOrder": [
128364	//     "project",
128365	//     "region"
128366	//   ],
128367	//   "parameters": {
128368	//     "project": {
128369	//       "description": "Project ID for this request.",
128370	//       "location": "path",
128371	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
128372	//       "required": true,
128373	//       "type": "string"
128374	//     },
128375	//     "region": {
128376	//       "description": "Name of the region for this request.",
128377	//       "location": "path",
128378	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
128379	//       "required": true,
128380	//       "type": "string"
128381	//     },
128382	//     "requestId": {
128383	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
128384	//       "location": "query",
128385	//       "type": "string"
128386	//     },
128387	//     "sourceImage": {
128388	//       "description": "Source image to restore onto a disk. This field is optional.",
128389	//       "location": "query",
128390	//       "type": "string"
128391	//     }
128392	//   },
128393	//   "path": "projects/{project}/regions/{region}/disks",
128394	//   "request": {
128395	//     "$ref": "Disk"
128396	//   },
128397	//   "response": {
128398	//     "$ref": "Operation"
128399	//   },
128400	//   "scopes": [
128401	//     "https://www.googleapis.com/auth/cloud-platform",
128402	//     "https://www.googleapis.com/auth/compute"
128403	//   ]
128404	// }
128405
128406}
128407
128408// method id "compute.regionDisks.list":
128409
128410type RegionDisksListCall struct {
128411	s            *Service
128412	project      string
128413	region       string
128414	urlParams_   gensupport.URLParams
128415	ifNoneMatch_ string
128416	ctx_         context.Context
128417	header_      http.Header
128418}
128419
128420// List: Retrieves the list of persistent disks contained within the
128421// specified region.
128422func (r *RegionDisksService) List(project string, region string) *RegionDisksListCall {
128423	c := &RegionDisksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
128424	c.project = project
128425	c.region = region
128426	return c
128427}
128428
128429// Filter sets the optional parameter "filter": A filter expression that
128430// filters resources listed in the response. The expression must specify
128431// the field name, a comparison operator, and the value that you want to
128432// use for filtering. The value must be a string, a number, or a
128433// boolean. The comparison operator must be either `=`, `!=`, `>`, or
128434// `<`.
128435//
128436// For example, if you are filtering Compute Engine instances, you can
128437// exclude instances named `example-instance` by specifying `name !=
128438// example-instance`.
128439//
128440// You can also filter nested fields. For example, you could specify
128441// `scheduling.automaticRestart = false` to include instances only if
128442// they are not scheduled for automatic restarts. You can use filtering
128443// on nested fields to filter based on resource labels.
128444//
128445// To filter on multiple expressions, provide each separate expression
128446// within parentheses. For example: ``` (scheduling.automaticRestart =
128447// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
128448// is an `AND` expression. However, you can include `AND` and `OR`
128449// expressions explicitly. For example: ``` (cpuPlatform = "Intel
128450// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
128451// (scheduling.automaticRestart = true) ```
128452func (c *RegionDisksListCall) Filter(filter string) *RegionDisksListCall {
128453	c.urlParams_.Set("filter", filter)
128454	return c
128455}
128456
128457// MaxResults sets the optional parameter "maxResults": The maximum
128458// number of results per page that should be returned. If the number of
128459// available results is larger than `maxResults`, Compute Engine returns
128460// a `nextPageToken` that can be used to get the next page of results in
128461// subsequent list requests. Acceptable values are `0` to `500`,
128462// inclusive. (Default: `500`)
128463func (c *RegionDisksListCall) MaxResults(maxResults int64) *RegionDisksListCall {
128464	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
128465	return c
128466}
128467
128468// OrderBy sets the optional parameter "orderBy": Sorts list results by
128469// a certain order. By default, results are returned in alphanumerical
128470// order based on the resource name.
128471//
128472// You can also sort results in descending order based on the creation
128473// timestamp using `orderBy="creationTimestamp desc". This sorts
128474// results based on the `creationTimestamp` field in reverse
128475// chronological order (newest result first). Use this to sort resources
128476// like operations so that the newest operation is returned
128477// first.
128478//
128479// Currently, only sorting by `name` or `creationTimestamp desc` is
128480// supported.
128481func (c *RegionDisksListCall) OrderBy(orderBy string) *RegionDisksListCall {
128482	c.urlParams_.Set("orderBy", orderBy)
128483	return c
128484}
128485
128486// PageToken sets the optional parameter "pageToken": Specifies a page
128487// token to use. Set `pageToken` to the `nextPageToken` returned by a
128488// previous list request to get the next page of results.
128489func (c *RegionDisksListCall) PageToken(pageToken string) *RegionDisksListCall {
128490	c.urlParams_.Set("pageToken", pageToken)
128491	return c
128492}
128493
128494// ReturnPartialSuccess sets the optional parameter
128495// "returnPartialSuccess": Opt-in for partial success behavior which
128496// provides partial results in case of failure. The default value is
128497// false.
128498func (c *RegionDisksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionDisksListCall {
128499	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
128500	return c
128501}
128502
128503// Fields allows partial responses to be retrieved. See
128504// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
128505// for more information.
128506func (c *RegionDisksListCall) Fields(s ...googleapi.Field) *RegionDisksListCall {
128507	c.urlParams_.Set("fields", googleapi.CombineFields(s))
128508	return c
128509}
128510
128511// IfNoneMatch sets the optional parameter which makes the operation
128512// fail if the object's ETag matches the given value. This is useful for
128513// getting updates only after the object has changed since the last
128514// request. Use googleapi.IsNotModified to check whether the response
128515// error from Do is the result of In-None-Match.
128516func (c *RegionDisksListCall) IfNoneMatch(entityTag string) *RegionDisksListCall {
128517	c.ifNoneMatch_ = entityTag
128518	return c
128519}
128520
128521// Context sets the context to be used in this call's Do method. Any
128522// pending HTTP request will be aborted if the provided context is
128523// canceled.
128524func (c *RegionDisksListCall) Context(ctx context.Context) *RegionDisksListCall {
128525	c.ctx_ = ctx
128526	return c
128527}
128528
128529// Header returns an http.Header that can be modified by the caller to
128530// add HTTP headers to the request.
128531func (c *RegionDisksListCall) Header() http.Header {
128532	if c.header_ == nil {
128533		c.header_ = make(http.Header)
128534	}
128535	return c.header_
128536}
128537
128538func (c *RegionDisksListCall) doRequest(alt string) (*http.Response, error) {
128539	reqHeaders := make(http.Header)
128540	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
128541	for k, v := range c.header_ {
128542		reqHeaders[k] = v
128543	}
128544	reqHeaders.Set("User-Agent", c.s.userAgent())
128545	if c.ifNoneMatch_ != "" {
128546		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
128547	}
128548	var body io.Reader = nil
128549	c.urlParams_.Set("alt", alt)
128550	c.urlParams_.Set("prettyPrint", "false")
128551	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks")
128552	urls += "?" + c.urlParams_.Encode()
128553	req, err := http.NewRequest("GET", urls, body)
128554	if err != nil {
128555		return nil, err
128556	}
128557	req.Header = reqHeaders
128558	googleapi.Expand(req.URL, map[string]string{
128559		"project": c.project,
128560		"region":  c.region,
128561	})
128562	return gensupport.SendRequest(c.ctx_, c.s.client, req)
128563}
128564
128565// Do executes the "compute.regionDisks.list" call.
128566// Exactly one of *DiskList or error will be non-nil. Any non-2xx status
128567// code is an error. Response headers are in either
128568// *DiskList.ServerResponse.Header or (if a response was returned at
128569// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
128570// to check whether the returned error was because
128571// http.StatusNotModified was returned.
128572func (c *RegionDisksListCall) Do(opts ...googleapi.CallOption) (*DiskList, error) {
128573	gensupport.SetOptions(c.urlParams_, opts...)
128574	res, err := c.doRequest("json")
128575	if res != nil && res.StatusCode == http.StatusNotModified {
128576		if res.Body != nil {
128577			res.Body.Close()
128578		}
128579		return nil, &googleapi.Error{
128580			Code:   res.StatusCode,
128581			Header: res.Header,
128582		}
128583	}
128584	if err != nil {
128585		return nil, err
128586	}
128587	defer googleapi.CloseBody(res)
128588	if err := googleapi.CheckResponse(res); err != nil {
128589		return nil, err
128590	}
128591	ret := &DiskList{
128592		ServerResponse: googleapi.ServerResponse{
128593			Header:         res.Header,
128594			HTTPStatusCode: res.StatusCode,
128595		},
128596	}
128597	target := &ret
128598	if err := gensupport.DecodeResponse(target, res); err != nil {
128599		return nil, err
128600	}
128601	return ret, nil
128602	// {
128603	//   "description": "Retrieves the list of persistent disks contained within the specified region.",
128604	//   "httpMethod": "GET",
128605	//   "id": "compute.regionDisks.list",
128606	//   "parameterOrder": [
128607	//     "project",
128608	//     "region"
128609	//   ],
128610	//   "parameters": {
128611	//     "filter": {
128612	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
128613	//       "location": "query",
128614	//       "type": "string"
128615	//     },
128616	//     "maxResults": {
128617	//       "default": "500",
128618	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
128619	//       "format": "uint32",
128620	//       "location": "query",
128621	//       "minimum": "0",
128622	//       "type": "integer"
128623	//     },
128624	//     "orderBy": {
128625	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
128626	//       "location": "query",
128627	//       "type": "string"
128628	//     },
128629	//     "pageToken": {
128630	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
128631	//       "location": "query",
128632	//       "type": "string"
128633	//     },
128634	//     "project": {
128635	//       "description": "Project ID for this request.",
128636	//       "location": "path",
128637	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
128638	//       "required": true,
128639	//       "type": "string"
128640	//     },
128641	//     "region": {
128642	//       "description": "Name of the region for this request.",
128643	//       "location": "path",
128644	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
128645	//       "required": true,
128646	//       "type": "string"
128647	//     },
128648	//     "returnPartialSuccess": {
128649	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
128650	//       "location": "query",
128651	//       "type": "boolean"
128652	//     }
128653	//   },
128654	//   "path": "projects/{project}/regions/{region}/disks",
128655	//   "response": {
128656	//     "$ref": "DiskList"
128657	//   },
128658	//   "scopes": [
128659	//     "https://www.googleapis.com/auth/cloud-platform",
128660	//     "https://www.googleapis.com/auth/compute",
128661	//     "https://www.googleapis.com/auth/compute.readonly"
128662	//   ]
128663	// }
128664
128665}
128666
128667// Pages invokes f for each page of results.
128668// A non-nil error returned from f will halt the iteration.
128669// The provided context supersedes any context provided to the Context method.
128670func (c *RegionDisksListCall) Pages(ctx context.Context, f func(*DiskList) error) error {
128671	c.ctx_ = ctx
128672	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
128673	for {
128674		x, err := c.Do()
128675		if err != nil {
128676			return err
128677		}
128678		if err := f(x); err != nil {
128679			return err
128680		}
128681		if x.NextPageToken == "" {
128682			return nil
128683		}
128684		c.PageToken(x.NextPageToken)
128685	}
128686}
128687
128688// method id "compute.regionDisks.removeResourcePolicies":
128689
128690type RegionDisksRemoveResourcePoliciesCall struct {
128691	s                                        *Service
128692	project                                  string
128693	region                                   string
128694	disk                                     string
128695	regiondisksremoveresourcepoliciesrequest *RegionDisksRemoveResourcePoliciesRequest
128696	urlParams_                               gensupport.URLParams
128697	ctx_                                     context.Context
128698	header_                                  http.Header
128699}
128700
128701// RemoveResourcePolicies: Removes resource policies from a regional
128702// disk.
128703func (r *RegionDisksService) RemoveResourcePolicies(project string, region string, disk string, regiondisksremoveresourcepoliciesrequest *RegionDisksRemoveResourcePoliciesRequest) *RegionDisksRemoveResourcePoliciesCall {
128704	c := &RegionDisksRemoveResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
128705	c.project = project
128706	c.region = region
128707	c.disk = disk
128708	c.regiondisksremoveresourcepoliciesrequest = regiondisksremoveresourcepoliciesrequest
128709	return c
128710}
128711
128712// RequestId sets the optional parameter "requestId": An optional
128713// request ID to identify requests. Specify a unique request ID so that
128714// if you must retry your request, the server will know to ignore the
128715// request if it has already been completed.
128716//
128717// For example, consider a situation where you make an initial request
128718// and the request times out. If you make the request again with the
128719// same request ID, the server can check if original operation with the
128720// same request ID was received, and if so, will ignore the second
128721// request. This prevents clients from accidentally creating duplicate
128722// commitments.
128723//
128724// The request ID must be a valid UUID with the exception that zero UUID
128725// is not supported (00000000-0000-0000-0000-000000000000).
128726func (c *RegionDisksRemoveResourcePoliciesCall) RequestId(requestId string) *RegionDisksRemoveResourcePoliciesCall {
128727	c.urlParams_.Set("requestId", requestId)
128728	return c
128729}
128730
128731// Fields allows partial responses to be retrieved. See
128732// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
128733// for more information.
128734func (c *RegionDisksRemoveResourcePoliciesCall) Fields(s ...googleapi.Field) *RegionDisksRemoveResourcePoliciesCall {
128735	c.urlParams_.Set("fields", googleapi.CombineFields(s))
128736	return c
128737}
128738
128739// Context sets the context to be used in this call's Do method. Any
128740// pending HTTP request will be aborted if the provided context is
128741// canceled.
128742func (c *RegionDisksRemoveResourcePoliciesCall) Context(ctx context.Context) *RegionDisksRemoveResourcePoliciesCall {
128743	c.ctx_ = ctx
128744	return c
128745}
128746
128747// Header returns an http.Header that can be modified by the caller to
128748// add HTTP headers to the request.
128749func (c *RegionDisksRemoveResourcePoliciesCall) Header() http.Header {
128750	if c.header_ == nil {
128751		c.header_ = make(http.Header)
128752	}
128753	return c.header_
128754}
128755
128756func (c *RegionDisksRemoveResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
128757	reqHeaders := make(http.Header)
128758	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
128759	for k, v := range c.header_ {
128760		reqHeaders[k] = v
128761	}
128762	reqHeaders.Set("User-Agent", c.s.userAgent())
128763	var body io.Reader = nil
128764	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regiondisksremoveresourcepoliciesrequest)
128765	if err != nil {
128766		return nil, err
128767	}
128768	reqHeaders.Set("Content-Type", "application/json")
128769	c.urlParams_.Set("alt", alt)
128770	c.urlParams_.Set("prettyPrint", "false")
128771	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{disk}/removeResourcePolicies")
128772	urls += "?" + c.urlParams_.Encode()
128773	req, err := http.NewRequest("POST", urls, body)
128774	if err != nil {
128775		return nil, err
128776	}
128777	req.Header = reqHeaders
128778	googleapi.Expand(req.URL, map[string]string{
128779		"project": c.project,
128780		"region":  c.region,
128781		"disk":    c.disk,
128782	})
128783	return gensupport.SendRequest(c.ctx_, c.s.client, req)
128784}
128785
128786// Do executes the "compute.regionDisks.removeResourcePolicies" call.
128787// Exactly one of *Operation or error will be non-nil. Any non-2xx
128788// status code is an error. Response headers are in either
128789// *Operation.ServerResponse.Header or (if a response was returned at
128790// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
128791// to check whether the returned error was because
128792// http.StatusNotModified was returned.
128793func (c *RegionDisksRemoveResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
128794	gensupport.SetOptions(c.urlParams_, opts...)
128795	res, err := c.doRequest("json")
128796	if res != nil && res.StatusCode == http.StatusNotModified {
128797		if res.Body != nil {
128798			res.Body.Close()
128799		}
128800		return nil, &googleapi.Error{
128801			Code:   res.StatusCode,
128802			Header: res.Header,
128803		}
128804	}
128805	if err != nil {
128806		return nil, err
128807	}
128808	defer googleapi.CloseBody(res)
128809	if err := googleapi.CheckResponse(res); err != nil {
128810		return nil, err
128811	}
128812	ret := &Operation{
128813		ServerResponse: googleapi.ServerResponse{
128814			Header:         res.Header,
128815			HTTPStatusCode: res.StatusCode,
128816		},
128817	}
128818	target := &ret
128819	if err := gensupport.DecodeResponse(target, res); err != nil {
128820		return nil, err
128821	}
128822	return ret, nil
128823	// {
128824	//   "description": "Removes resource policies from a regional disk.",
128825	//   "httpMethod": "POST",
128826	//   "id": "compute.regionDisks.removeResourcePolicies",
128827	//   "parameterOrder": [
128828	//     "project",
128829	//     "region",
128830	//     "disk"
128831	//   ],
128832	//   "parameters": {
128833	//     "disk": {
128834	//       "description": "The disk name for this request.",
128835	//       "location": "path",
128836	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
128837	//       "required": true,
128838	//       "type": "string"
128839	//     },
128840	//     "project": {
128841	//       "description": "Project ID for this request.",
128842	//       "location": "path",
128843	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
128844	//       "required": true,
128845	//       "type": "string"
128846	//     },
128847	//     "region": {
128848	//       "description": "The name of the region for this request.",
128849	//       "location": "path",
128850	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
128851	//       "required": true,
128852	//       "type": "string"
128853	//     },
128854	//     "requestId": {
128855	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
128856	//       "location": "query",
128857	//       "type": "string"
128858	//     }
128859	//   },
128860	//   "path": "projects/{project}/regions/{region}/disks/{disk}/removeResourcePolicies",
128861	//   "request": {
128862	//     "$ref": "RegionDisksRemoveResourcePoliciesRequest"
128863	//   },
128864	//   "response": {
128865	//     "$ref": "Operation"
128866	//   },
128867	//   "scopes": [
128868	//     "https://www.googleapis.com/auth/cloud-platform",
128869	//     "https://www.googleapis.com/auth/compute"
128870	//   ]
128871	// }
128872
128873}
128874
128875// method id "compute.regionDisks.resize":
128876
128877type RegionDisksResizeCall struct {
128878	s                        *Service
128879	project                  string
128880	region                   string
128881	disk                     string
128882	regiondisksresizerequest *RegionDisksResizeRequest
128883	urlParams_               gensupport.URLParams
128884	ctx_                     context.Context
128885	header_                  http.Header
128886}
128887
128888// Resize: Resizes the specified regional persistent disk.
128889func (r *RegionDisksService) Resize(project string, region string, disk string, regiondisksresizerequest *RegionDisksResizeRequest) *RegionDisksResizeCall {
128890	c := &RegionDisksResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
128891	c.project = project
128892	c.region = region
128893	c.disk = disk
128894	c.regiondisksresizerequest = regiondisksresizerequest
128895	return c
128896}
128897
128898// RequestId sets the optional parameter "requestId": An optional
128899// request ID to identify requests. Specify a unique request ID so that
128900// if you must retry your request, the server will know to ignore the
128901// request if it has already been completed.
128902//
128903// For example, consider a situation where you make an initial request
128904// and the request times out. If you make the request again with the
128905// same request ID, the server can check if original operation with the
128906// same request ID was received, and if so, will ignore the second
128907// request. This prevents clients from accidentally creating duplicate
128908// commitments.
128909//
128910// The request ID must be a valid UUID with the exception that zero UUID
128911// is not supported (00000000-0000-0000-0000-000000000000).
128912func (c *RegionDisksResizeCall) RequestId(requestId string) *RegionDisksResizeCall {
128913	c.urlParams_.Set("requestId", requestId)
128914	return c
128915}
128916
128917// Fields allows partial responses to be retrieved. See
128918// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
128919// for more information.
128920func (c *RegionDisksResizeCall) Fields(s ...googleapi.Field) *RegionDisksResizeCall {
128921	c.urlParams_.Set("fields", googleapi.CombineFields(s))
128922	return c
128923}
128924
128925// Context sets the context to be used in this call's Do method. Any
128926// pending HTTP request will be aborted if the provided context is
128927// canceled.
128928func (c *RegionDisksResizeCall) Context(ctx context.Context) *RegionDisksResizeCall {
128929	c.ctx_ = ctx
128930	return c
128931}
128932
128933// Header returns an http.Header that can be modified by the caller to
128934// add HTTP headers to the request.
128935func (c *RegionDisksResizeCall) Header() http.Header {
128936	if c.header_ == nil {
128937		c.header_ = make(http.Header)
128938	}
128939	return c.header_
128940}
128941
128942func (c *RegionDisksResizeCall) doRequest(alt string) (*http.Response, error) {
128943	reqHeaders := make(http.Header)
128944	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
128945	for k, v := range c.header_ {
128946		reqHeaders[k] = v
128947	}
128948	reqHeaders.Set("User-Agent", c.s.userAgent())
128949	var body io.Reader = nil
128950	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regiondisksresizerequest)
128951	if err != nil {
128952		return nil, err
128953	}
128954	reqHeaders.Set("Content-Type", "application/json")
128955	c.urlParams_.Set("alt", alt)
128956	c.urlParams_.Set("prettyPrint", "false")
128957	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{disk}/resize")
128958	urls += "?" + c.urlParams_.Encode()
128959	req, err := http.NewRequest("POST", urls, body)
128960	if err != nil {
128961		return nil, err
128962	}
128963	req.Header = reqHeaders
128964	googleapi.Expand(req.URL, map[string]string{
128965		"project": c.project,
128966		"region":  c.region,
128967		"disk":    c.disk,
128968	})
128969	return gensupport.SendRequest(c.ctx_, c.s.client, req)
128970}
128971
128972// Do executes the "compute.regionDisks.resize" call.
128973// Exactly one of *Operation or error will be non-nil. Any non-2xx
128974// status code is an error. Response headers are in either
128975// *Operation.ServerResponse.Header or (if a response was returned at
128976// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
128977// to check whether the returned error was because
128978// http.StatusNotModified was returned.
128979func (c *RegionDisksResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
128980	gensupport.SetOptions(c.urlParams_, opts...)
128981	res, err := c.doRequest("json")
128982	if res != nil && res.StatusCode == http.StatusNotModified {
128983		if res.Body != nil {
128984			res.Body.Close()
128985		}
128986		return nil, &googleapi.Error{
128987			Code:   res.StatusCode,
128988			Header: res.Header,
128989		}
128990	}
128991	if err != nil {
128992		return nil, err
128993	}
128994	defer googleapi.CloseBody(res)
128995	if err := googleapi.CheckResponse(res); err != nil {
128996		return nil, err
128997	}
128998	ret := &Operation{
128999		ServerResponse: googleapi.ServerResponse{
129000			Header:         res.Header,
129001			HTTPStatusCode: res.StatusCode,
129002		},
129003	}
129004	target := &ret
129005	if err := gensupport.DecodeResponse(target, res); err != nil {
129006		return nil, err
129007	}
129008	return ret, nil
129009	// {
129010	//   "description": "Resizes the specified regional persistent disk.",
129011	//   "httpMethod": "POST",
129012	//   "id": "compute.regionDisks.resize",
129013	//   "parameterOrder": [
129014	//     "project",
129015	//     "region",
129016	//     "disk"
129017	//   ],
129018	//   "parameters": {
129019	//     "disk": {
129020	//       "description": "Name of the regional persistent disk.",
129021	//       "location": "path",
129022	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
129023	//       "required": true,
129024	//       "type": "string"
129025	//     },
129026	//     "project": {
129027	//       "description": "The project ID for this request.",
129028	//       "location": "path",
129029	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
129030	//       "required": true,
129031	//       "type": "string"
129032	//     },
129033	//     "region": {
129034	//       "description": "Name of the region for this request.",
129035	//       "location": "path",
129036	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
129037	//       "required": true,
129038	//       "type": "string"
129039	//     },
129040	//     "requestId": {
129041	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
129042	//       "location": "query",
129043	//       "type": "string"
129044	//     }
129045	//   },
129046	//   "path": "projects/{project}/regions/{region}/disks/{disk}/resize",
129047	//   "request": {
129048	//     "$ref": "RegionDisksResizeRequest"
129049	//   },
129050	//   "response": {
129051	//     "$ref": "Operation"
129052	//   },
129053	//   "scopes": [
129054	//     "https://www.googleapis.com/auth/cloud-platform",
129055	//     "https://www.googleapis.com/auth/compute"
129056	//   ]
129057	// }
129058
129059}
129060
129061// method id "compute.regionDisks.setIamPolicy":
129062
129063type RegionDisksSetIamPolicyCall struct {
129064	s                      *Service
129065	project                string
129066	region                 string
129067	resource               string
129068	regionsetpolicyrequest *RegionSetPolicyRequest
129069	urlParams_             gensupport.URLParams
129070	ctx_                   context.Context
129071	header_                http.Header
129072}
129073
129074// SetIamPolicy: Sets the access control policy on the specified
129075// resource. Replaces any existing policy.
129076func (r *RegionDisksService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *RegionDisksSetIamPolicyCall {
129077	c := &RegionDisksSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129078	c.project = project
129079	c.region = region
129080	c.resource = resource
129081	c.regionsetpolicyrequest = regionsetpolicyrequest
129082	return c
129083}
129084
129085// Fields allows partial responses to be retrieved. See
129086// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
129087// for more information.
129088func (c *RegionDisksSetIamPolicyCall) Fields(s ...googleapi.Field) *RegionDisksSetIamPolicyCall {
129089	c.urlParams_.Set("fields", googleapi.CombineFields(s))
129090	return c
129091}
129092
129093// Context sets the context to be used in this call's Do method. Any
129094// pending HTTP request will be aborted if the provided context is
129095// canceled.
129096func (c *RegionDisksSetIamPolicyCall) Context(ctx context.Context) *RegionDisksSetIamPolicyCall {
129097	c.ctx_ = ctx
129098	return c
129099}
129100
129101// Header returns an http.Header that can be modified by the caller to
129102// add HTTP headers to the request.
129103func (c *RegionDisksSetIamPolicyCall) Header() http.Header {
129104	if c.header_ == nil {
129105		c.header_ = make(http.Header)
129106	}
129107	return c.header_
129108}
129109
129110func (c *RegionDisksSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
129111	reqHeaders := make(http.Header)
129112	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
129113	for k, v := range c.header_ {
129114		reqHeaders[k] = v
129115	}
129116	reqHeaders.Set("User-Agent", c.s.userAgent())
129117	var body io.Reader = nil
129118	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest)
129119	if err != nil {
129120		return nil, err
129121	}
129122	reqHeaders.Set("Content-Type", "application/json")
129123	c.urlParams_.Set("alt", alt)
129124	c.urlParams_.Set("prettyPrint", "false")
129125	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{resource}/setIamPolicy")
129126	urls += "?" + c.urlParams_.Encode()
129127	req, err := http.NewRequest("POST", urls, body)
129128	if err != nil {
129129		return nil, err
129130	}
129131	req.Header = reqHeaders
129132	googleapi.Expand(req.URL, map[string]string{
129133		"project":  c.project,
129134		"region":   c.region,
129135		"resource": c.resource,
129136	})
129137	return gensupport.SendRequest(c.ctx_, c.s.client, req)
129138}
129139
129140// Do executes the "compute.regionDisks.setIamPolicy" call.
129141// Exactly one of *Policy or error will be non-nil. Any non-2xx status
129142// code is an error. Response headers are in either
129143// *Policy.ServerResponse.Header or (if a response was returned at all)
129144// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
129145// check whether the returned error was because http.StatusNotModified
129146// was returned.
129147func (c *RegionDisksSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
129148	gensupport.SetOptions(c.urlParams_, opts...)
129149	res, err := c.doRequest("json")
129150	if res != nil && res.StatusCode == http.StatusNotModified {
129151		if res.Body != nil {
129152			res.Body.Close()
129153		}
129154		return nil, &googleapi.Error{
129155			Code:   res.StatusCode,
129156			Header: res.Header,
129157		}
129158	}
129159	if err != nil {
129160		return nil, err
129161	}
129162	defer googleapi.CloseBody(res)
129163	if err := googleapi.CheckResponse(res); err != nil {
129164		return nil, err
129165	}
129166	ret := &Policy{
129167		ServerResponse: googleapi.ServerResponse{
129168			Header:         res.Header,
129169			HTTPStatusCode: res.StatusCode,
129170		},
129171	}
129172	target := &ret
129173	if err := gensupport.DecodeResponse(target, res); err != nil {
129174		return nil, err
129175	}
129176	return ret, nil
129177	// {
129178	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
129179	//   "httpMethod": "POST",
129180	//   "id": "compute.regionDisks.setIamPolicy",
129181	//   "parameterOrder": [
129182	//     "project",
129183	//     "region",
129184	//     "resource"
129185	//   ],
129186	//   "parameters": {
129187	//     "project": {
129188	//       "description": "Project ID for this request.",
129189	//       "location": "path",
129190	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
129191	//       "required": true,
129192	//       "type": "string"
129193	//     },
129194	//     "region": {
129195	//       "description": "The name of the region for this request.",
129196	//       "location": "path",
129197	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
129198	//       "required": true,
129199	//       "type": "string"
129200	//     },
129201	//     "resource": {
129202	//       "description": "Name or id of the resource for this request.",
129203	//       "location": "path",
129204	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
129205	//       "required": true,
129206	//       "type": "string"
129207	//     }
129208	//   },
129209	//   "path": "projects/{project}/regions/{region}/disks/{resource}/setIamPolicy",
129210	//   "request": {
129211	//     "$ref": "RegionSetPolicyRequest"
129212	//   },
129213	//   "response": {
129214	//     "$ref": "Policy"
129215	//   },
129216	//   "scopes": [
129217	//     "https://www.googleapis.com/auth/cloud-platform",
129218	//     "https://www.googleapis.com/auth/compute"
129219	//   ]
129220	// }
129221
129222}
129223
129224// method id "compute.regionDisks.setLabels":
129225
129226type RegionDisksSetLabelsCall struct {
129227	s                      *Service
129228	project                string
129229	region                 string
129230	resource               string
129231	regionsetlabelsrequest *RegionSetLabelsRequest
129232	urlParams_             gensupport.URLParams
129233	ctx_                   context.Context
129234	header_                http.Header
129235}
129236
129237// SetLabels: Sets the labels on the target regional disk.
129238func (r *RegionDisksService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *RegionDisksSetLabelsCall {
129239	c := &RegionDisksSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129240	c.project = project
129241	c.region = region
129242	c.resource = resource
129243	c.regionsetlabelsrequest = regionsetlabelsrequest
129244	return c
129245}
129246
129247// RequestId sets the optional parameter "requestId": An optional
129248// request ID to identify requests. Specify a unique request ID so that
129249// if you must retry your request, the server will know to ignore the
129250// request if it has already been completed.
129251//
129252// For example, consider a situation where you make an initial request
129253// and the request times out. If you make the request again with the
129254// same request ID, the server can check if original operation with the
129255// same request ID was received, and if so, will ignore the second
129256// request. This prevents clients from accidentally creating duplicate
129257// commitments.
129258//
129259// The request ID must be a valid UUID with the exception that zero UUID
129260// is not supported (00000000-0000-0000-0000-000000000000).
129261func (c *RegionDisksSetLabelsCall) RequestId(requestId string) *RegionDisksSetLabelsCall {
129262	c.urlParams_.Set("requestId", requestId)
129263	return c
129264}
129265
129266// Fields allows partial responses to be retrieved. See
129267// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
129268// for more information.
129269func (c *RegionDisksSetLabelsCall) Fields(s ...googleapi.Field) *RegionDisksSetLabelsCall {
129270	c.urlParams_.Set("fields", googleapi.CombineFields(s))
129271	return c
129272}
129273
129274// Context sets the context to be used in this call's Do method. Any
129275// pending HTTP request will be aborted if the provided context is
129276// canceled.
129277func (c *RegionDisksSetLabelsCall) Context(ctx context.Context) *RegionDisksSetLabelsCall {
129278	c.ctx_ = ctx
129279	return c
129280}
129281
129282// Header returns an http.Header that can be modified by the caller to
129283// add HTTP headers to the request.
129284func (c *RegionDisksSetLabelsCall) Header() http.Header {
129285	if c.header_ == nil {
129286		c.header_ = make(http.Header)
129287	}
129288	return c.header_
129289}
129290
129291func (c *RegionDisksSetLabelsCall) doRequest(alt string) (*http.Response, error) {
129292	reqHeaders := make(http.Header)
129293	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
129294	for k, v := range c.header_ {
129295		reqHeaders[k] = v
129296	}
129297	reqHeaders.Set("User-Agent", c.s.userAgent())
129298	var body io.Reader = nil
129299	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
129300	if err != nil {
129301		return nil, err
129302	}
129303	reqHeaders.Set("Content-Type", "application/json")
129304	c.urlParams_.Set("alt", alt)
129305	c.urlParams_.Set("prettyPrint", "false")
129306	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{resource}/setLabels")
129307	urls += "?" + c.urlParams_.Encode()
129308	req, err := http.NewRequest("POST", urls, body)
129309	if err != nil {
129310		return nil, err
129311	}
129312	req.Header = reqHeaders
129313	googleapi.Expand(req.URL, map[string]string{
129314		"project":  c.project,
129315		"region":   c.region,
129316		"resource": c.resource,
129317	})
129318	return gensupport.SendRequest(c.ctx_, c.s.client, req)
129319}
129320
129321// Do executes the "compute.regionDisks.setLabels" call.
129322// Exactly one of *Operation or error will be non-nil. Any non-2xx
129323// status code is an error. Response headers are in either
129324// *Operation.ServerResponse.Header or (if a response was returned at
129325// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
129326// to check whether the returned error was because
129327// http.StatusNotModified was returned.
129328func (c *RegionDisksSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
129329	gensupport.SetOptions(c.urlParams_, opts...)
129330	res, err := c.doRequest("json")
129331	if res != nil && res.StatusCode == http.StatusNotModified {
129332		if res.Body != nil {
129333			res.Body.Close()
129334		}
129335		return nil, &googleapi.Error{
129336			Code:   res.StatusCode,
129337			Header: res.Header,
129338		}
129339	}
129340	if err != nil {
129341		return nil, err
129342	}
129343	defer googleapi.CloseBody(res)
129344	if err := googleapi.CheckResponse(res); err != nil {
129345		return nil, err
129346	}
129347	ret := &Operation{
129348		ServerResponse: googleapi.ServerResponse{
129349			Header:         res.Header,
129350			HTTPStatusCode: res.StatusCode,
129351		},
129352	}
129353	target := &ret
129354	if err := gensupport.DecodeResponse(target, res); err != nil {
129355		return nil, err
129356	}
129357	return ret, nil
129358	// {
129359	//   "description": "Sets the labels on the target regional disk.",
129360	//   "httpMethod": "POST",
129361	//   "id": "compute.regionDisks.setLabels",
129362	//   "parameterOrder": [
129363	//     "project",
129364	//     "region",
129365	//     "resource"
129366	//   ],
129367	//   "parameters": {
129368	//     "project": {
129369	//       "description": "Project ID for this request.",
129370	//       "location": "path",
129371	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
129372	//       "required": true,
129373	//       "type": "string"
129374	//     },
129375	//     "region": {
129376	//       "description": "The region for this request.",
129377	//       "location": "path",
129378	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
129379	//       "required": true,
129380	//       "type": "string"
129381	//     },
129382	//     "requestId": {
129383	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
129384	//       "location": "query",
129385	//       "type": "string"
129386	//     },
129387	//     "resource": {
129388	//       "description": "Name or id of the resource for this request.",
129389	//       "location": "path",
129390	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
129391	//       "required": true,
129392	//       "type": "string"
129393	//     }
129394	//   },
129395	//   "path": "projects/{project}/regions/{region}/disks/{resource}/setLabels",
129396	//   "request": {
129397	//     "$ref": "RegionSetLabelsRequest"
129398	//   },
129399	//   "response": {
129400	//     "$ref": "Operation"
129401	//   },
129402	//   "scopes": [
129403	//     "https://www.googleapis.com/auth/cloud-platform",
129404	//     "https://www.googleapis.com/auth/compute"
129405	//   ]
129406	// }
129407
129408}
129409
129410// method id "compute.regionDisks.testIamPermissions":
129411
129412type RegionDisksTestIamPermissionsCall struct {
129413	s                      *Service
129414	project                string
129415	region                 string
129416	resource               string
129417	testpermissionsrequest *TestPermissionsRequest
129418	urlParams_             gensupport.URLParams
129419	ctx_                   context.Context
129420	header_                http.Header
129421}
129422
129423// TestIamPermissions: Returns permissions that a caller has on the
129424// specified resource.
129425func (r *RegionDisksService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionDisksTestIamPermissionsCall {
129426	c := &RegionDisksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129427	c.project = project
129428	c.region = region
129429	c.resource = resource
129430	c.testpermissionsrequest = testpermissionsrequest
129431	return c
129432}
129433
129434// Fields allows partial responses to be retrieved. See
129435// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
129436// for more information.
129437func (c *RegionDisksTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionDisksTestIamPermissionsCall {
129438	c.urlParams_.Set("fields", googleapi.CombineFields(s))
129439	return c
129440}
129441
129442// Context sets the context to be used in this call's Do method. Any
129443// pending HTTP request will be aborted if the provided context is
129444// canceled.
129445func (c *RegionDisksTestIamPermissionsCall) Context(ctx context.Context) *RegionDisksTestIamPermissionsCall {
129446	c.ctx_ = ctx
129447	return c
129448}
129449
129450// Header returns an http.Header that can be modified by the caller to
129451// add HTTP headers to the request.
129452func (c *RegionDisksTestIamPermissionsCall) Header() http.Header {
129453	if c.header_ == nil {
129454		c.header_ = make(http.Header)
129455	}
129456	return c.header_
129457}
129458
129459func (c *RegionDisksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
129460	reqHeaders := make(http.Header)
129461	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
129462	for k, v := range c.header_ {
129463		reqHeaders[k] = v
129464	}
129465	reqHeaders.Set("User-Agent", c.s.userAgent())
129466	var body io.Reader = nil
129467	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
129468	if err != nil {
129469		return nil, err
129470	}
129471	reqHeaders.Set("Content-Type", "application/json")
129472	c.urlParams_.Set("alt", alt)
129473	c.urlParams_.Set("prettyPrint", "false")
129474	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{resource}/testIamPermissions")
129475	urls += "?" + c.urlParams_.Encode()
129476	req, err := http.NewRequest("POST", urls, body)
129477	if err != nil {
129478		return nil, err
129479	}
129480	req.Header = reqHeaders
129481	googleapi.Expand(req.URL, map[string]string{
129482		"project":  c.project,
129483		"region":   c.region,
129484		"resource": c.resource,
129485	})
129486	return gensupport.SendRequest(c.ctx_, c.s.client, req)
129487}
129488
129489// Do executes the "compute.regionDisks.testIamPermissions" call.
129490// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
129491// non-2xx status code is an error. Response headers are in either
129492// *TestPermissionsResponse.ServerResponse.Header or (if a response was
129493// returned at all) in error.(*googleapi.Error).Header. Use
129494// googleapi.IsNotModified to check whether the returned error was
129495// because http.StatusNotModified was returned.
129496func (c *RegionDisksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
129497	gensupport.SetOptions(c.urlParams_, opts...)
129498	res, err := c.doRequest("json")
129499	if res != nil && res.StatusCode == http.StatusNotModified {
129500		if res.Body != nil {
129501			res.Body.Close()
129502		}
129503		return nil, &googleapi.Error{
129504			Code:   res.StatusCode,
129505			Header: res.Header,
129506		}
129507	}
129508	if err != nil {
129509		return nil, err
129510	}
129511	defer googleapi.CloseBody(res)
129512	if err := googleapi.CheckResponse(res); err != nil {
129513		return nil, err
129514	}
129515	ret := &TestPermissionsResponse{
129516		ServerResponse: googleapi.ServerResponse{
129517			Header:         res.Header,
129518			HTTPStatusCode: res.StatusCode,
129519		},
129520	}
129521	target := &ret
129522	if err := gensupport.DecodeResponse(target, res); err != nil {
129523		return nil, err
129524	}
129525	return ret, nil
129526	// {
129527	//   "description": "Returns permissions that a caller has on the specified resource.",
129528	//   "httpMethod": "POST",
129529	//   "id": "compute.regionDisks.testIamPermissions",
129530	//   "parameterOrder": [
129531	//     "project",
129532	//     "region",
129533	//     "resource"
129534	//   ],
129535	//   "parameters": {
129536	//     "project": {
129537	//       "description": "Project ID for this request.",
129538	//       "location": "path",
129539	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
129540	//       "required": true,
129541	//       "type": "string"
129542	//     },
129543	//     "region": {
129544	//       "description": "The name of the region for this request.",
129545	//       "location": "path",
129546	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
129547	//       "required": true,
129548	//       "type": "string"
129549	//     },
129550	//     "resource": {
129551	//       "description": "Name or id of the resource for this request.",
129552	//       "location": "path",
129553	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
129554	//       "required": true,
129555	//       "type": "string"
129556	//     }
129557	//   },
129558	//   "path": "projects/{project}/regions/{region}/disks/{resource}/testIamPermissions",
129559	//   "request": {
129560	//     "$ref": "TestPermissionsRequest"
129561	//   },
129562	//   "response": {
129563	//     "$ref": "TestPermissionsResponse"
129564	//   },
129565	//   "scopes": [
129566	//     "https://www.googleapis.com/auth/cloud-platform",
129567	//     "https://www.googleapis.com/auth/compute",
129568	//     "https://www.googleapis.com/auth/compute.readonly"
129569	//   ]
129570	// }
129571
129572}
129573
129574// method id "compute.regionHealthCheckServices.delete":
129575
129576type RegionHealthCheckServicesDeleteCall struct {
129577	s                  *Service
129578	project            string
129579	region             string
129580	healthCheckService string
129581	urlParams_         gensupport.URLParams
129582	ctx_               context.Context
129583	header_            http.Header
129584}
129585
129586// Delete: Deletes the specified regional HealthCheckService.
129587func (r *RegionHealthCheckServicesService) Delete(project string, region string, healthCheckService string) *RegionHealthCheckServicesDeleteCall {
129588	c := &RegionHealthCheckServicesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129589	c.project = project
129590	c.region = region
129591	c.healthCheckService = healthCheckService
129592	return c
129593}
129594
129595// RequestId sets the optional parameter "requestId": An optional
129596// request ID to identify requests. Specify a unique request ID so that
129597// if you must retry your request, the server will know to ignore the
129598// request if it has already been completed.
129599//
129600// For example, consider a situation where you make an initial request
129601// and the request times out. If you make the request again with the
129602// same request ID, the server can check if original operation with the
129603// same request ID was received, and if so, will ignore the second
129604// request. This prevents clients from accidentally creating duplicate
129605// commitments.
129606//
129607// The request ID must be a valid UUID with the exception that zero UUID
129608// is not supported (00000000-0000-0000-0000-000000000000).
129609func (c *RegionHealthCheckServicesDeleteCall) RequestId(requestId string) *RegionHealthCheckServicesDeleteCall {
129610	c.urlParams_.Set("requestId", requestId)
129611	return c
129612}
129613
129614// Fields allows partial responses to be retrieved. See
129615// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
129616// for more information.
129617func (c *RegionHealthCheckServicesDeleteCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesDeleteCall {
129618	c.urlParams_.Set("fields", googleapi.CombineFields(s))
129619	return c
129620}
129621
129622// Context sets the context to be used in this call's Do method. Any
129623// pending HTTP request will be aborted if the provided context is
129624// canceled.
129625func (c *RegionHealthCheckServicesDeleteCall) Context(ctx context.Context) *RegionHealthCheckServicesDeleteCall {
129626	c.ctx_ = ctx
129627	return c
129628}
129629
129630// Header returns an http.Header that can be modified by the caller to
129631// add HTTP headers to the request.
129632func (c *RegionHealthCheckServicesDeleteCall) Header() http.Header {
129633	if c.header_ == nil {
129634		c.header_ = make(http.Header)
129635	}
129636	return c.header_
129637}
129638
129639func (c *RegionHealthCheckServicesDeleteCall) doRequest(alt string) (*http.Response, error) {
129640	reqHeaders := make(http.Header)
129641	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
129642	for k, v := range c.header_ {
129643		reqHeaders[k] = v
129644	}
129645	reqHeaders.Set("User-Agent", c.s.userAgent())
129646	var body io.Reader = nil
129647	c.urlParams_.Set("alt", alt)
129648	c.urlParams_.Set("prettyPrint", "false")
129649	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}")
129650	urls += "?" + c.urlParams_.Encode()
129651	req, err := http.NewRequest("DELETE", urls, body)
129652	if err != nil {
129653		return nil, err
129654	}
129655	req.Header = reqHeaders
129656	googleapi.Expand(req.URL, map[string]string{
129657		"project":            c.project,
129658		"region":             c.region,
129659		"healthCheckService": c.healthCheckService,
129660	})
129661	return gensupport.SendRequest(c.ctx_, c.s.client, req)
129662}
129663
129664// Do executes the "compute.regionHealthCheckServices.delete" call.
129665// Exactly one of *Operation or error will be non-nil. Any non-2xx
129666// status code is an error. Response headers are in either
129667// *Operation.ServerResponse.Header or (if a response was returned at
129668// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
129669// to check whether the returned error was because
129670// http.StatusNotModified was returned.
129671func (c *RegionHealthCheckServicesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
129672	gensupport.SetOptions(c.urlParams_, opts...)
129673	res, err := c.doRequest("json")
129674	if res != nil && res.StatusCode == http.StatusNotModified {
129675		if res.Body != nil {
129676			res.Body.Close()
129677		}
129678		return nil, &googleapi.Error{
129679			Code:   res.StatusCode,
129680			Header: res.Header,
129681		}
129682	}
129683	if err != nil {
129684		return nil, err
129685	}
129686	defer googleapi.CloseBody(res)
129687	if err := googleapi.CheckResponse(res); err != nil {
129688		return nil, err
129689	}
129690	ret := &Operation{
129691		ServerResponse: googleapi.ServerResponse{
129692			Header:         res.Header,
129693			HTTPStatusCode: res.StatusCode,
129694		},
129695	}
129696	target := &ret
129697	if err := gensupport.DecodeResponse(target, res); err != nil {
129698		return nil, err
129699	}
129700	return ret, nil
129701	// {
129702	//   "description": "Deletes the specified regional HealthCheckService.",
129703	//   "httpMethod": "DELETE",
129704	//   "id": "compute.regionHealthCheckServices.delete",
129705	//   "parameterOrder": [
129706	//     "project",
129707	//     "region",
129708	//     "healthCheckService"
129709	//   ],
129710	//   "parameters": {
129711	//     "healthCheckService": {
129712	//       "description": "Name of the HealthCheckService to delete. The name must be 1-63 characters long, and comply with RFC1035.",
129713	//       "location": "path",
129714	//       "required": true,
129715	//       "type": "string"
129716	//     },
129717	//     "project": {
129718	//       "description": "Project ID for this request.",
129719	//       "location": "path",
129720	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
129721	//       "required": true,
129722	//       "type": "string"
129723	//     },
129724	//     "region": {
129725	//       "description": "Name of the region scoping this request.",
129726	//       "location": "path",
129727	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
129728	//       "required": true,
129729	//       "type": "string"
129730	//     },
129731	//     "requestId": {
129732	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
129733	//       "location": "query",
129734	//       "type": "string"
129735	//     }
129736	//   },
129737	//   "path": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}",
129738	//   "response": {
129739	//     "$ref": "Operation"
129740	//   },
129741	//   "scopes": [
129742	//     "https://www.googleapis.com/auth/cloud-platform",
129743	//     "https://www.googleapis.com/auth/compute"
129744	//   ]
129745	// }
129746
129747}
129748
129749// method id "compute.regionHealthCheckServices.get":
129750
129751type RegionHealthCheckServicesGetCall struct {
129752	s                  *Service
129753	project            string
129754	region             string
129755	healthCheckService string
129756	urlParams_         gensupport.URLParams
129757	ifNoneMatch_       string
129758	ctx_               context.Context
129759	header_            http.Header
129760}
129761
129762// Get: Returns the specified regional HealthCheckService resource.
129763func (r *RegionHealthCheckServicesService) Get(project string, region string, healthCheckService string) *RegionHealthCheckServicesGetCall {
129764	c := &RegionHealthCheckServicesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129765	c.project = project
129766	c.region = region
129767	c.healthCheckService = healthCheckService
129768	return c
129769}
129770
129771// Fields allows partial responses to be retrieved. See
129772// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
129773// for more information.
129774func (c *RegionHealthCheckServicesGetCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesGetCall {
129775	c.urlParams_.Set("fields", googleapi.CombineFields(s))
129776	return c
129777}
129778
129779// IfNoneMatch sets the optional parameter which makes the operation
129780// fail if the object's ETag matches the given value. This is useful for
129781// getting updates only after the object has changed since the last
129782// request. Use googleapi.IsNotModified to check whether the response
129783// error from Do is the result of In-None-Match.
129784func (c *RegionHealthCheckServicesGetCall) IfNoneMatch(entityTag string) *RegionHealthCheckServicesGetCall {
129785	c.ifNoneMatch_ = entityTag
129786	return c
129787}
129788
129789// Context sets the context to be used in this call's Do method. Any
129790// pending HTTP request will be aborted if the provided context is
129791// canceled.
129792func (c *RegionHealthCheckServicesGetCall) Context(ctx context.Context) *RegionHealthCheckServicesGetCall {
129793	c.ctx_ = ctx
129794	return c
129795}
129796
129797// Header returns an http.Header that can be modified by the caller to
129798// add HTTP headers to the request.
129799func (c *RegionHealthCheckServicesGetCall) Header() http.Header {
129800	if c.header_ == nil {
129801		c.header_ = make(http.Header)
129802	}
129803	return c.header_
129804}
129805
129806func (c *RegionHealthCheckServicesGetCall) doRequest(alt string) (*http.Response, error) {
129807	reqHeaders := make(http.Header)
129808	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
129809	for k, v := range c.header_ {
129810		reqHeaders[k] = v
129811	}
129812	reqHeaders.Set("User-Agent", c.s.userAgent())
129813	if c.ifNoneMatch_ != "" {
129814		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
129815	}
129816	var body io.Reader = nil
129817	c.urlParams_.Set("alt", alt)
129818	c.urlParams_.Set("prettyPrint", "false")
129819	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}")
129820	urls += "?" + c.urlParams_.Encode()
129821	req, err := http.NewRequest("GET", urls, body)
129822	if err != nil {
129823		return nil, err
129824	}
129825	req.Header = reqHeaders
129826	googleapi.Expand(req.URL, map[string]string{
129827		"project":            c.project,
129828		"region":             c.region,
129829		"healthCheckService": c.healthCheckService,
129830	})
129831	return gensupport.SendRequest(c.ctx_, c.s.client, req)
129832}
129833
129834// Do executes the "compute.regionHealthCheckServices.get" call.
129835// Exactly one of *HealthCheckService or error will be non-nil. Any
129836// non-2xx status code is an error. Response headers are in either
129837// *HealthCheckService.ServerResponse.Header or (if a response was
129838// returned at all) in error.(*googleapi.Error).Header. Use
129839// googleapi.IsNotModified to check whether the returned error was
129840// because http.StatusNotModified was returned.
129841func (c *RegionHealthCheckServicesGetCall) Do(opts ...googleapi.CallOption) (*HealthCheckService, error) {
129842	gensupport.SetOptions(c.urlParams_, opts...)
129843	res, err := c.doRequest("json")
129844	if res != nil && res.StatusCode == http.StatusNotModified {
129845		if res.Body != nil {
129846			res.Body.Close()
129847		}
129848		return nil, &googleapi.Error{
129849			Code:   res.StatusCode,
129850			Header: res.Header,
129851		}
129852	}
129853	if err != nil {
129854		return nil, err
129855	}
129856	defer googleapi.CloseBody(res)
129857	if err := googleapi.CheckResponse(res); err != nil {
129858		return nil, err
129859	}
129860	ret := &HealthCheckService{
129861		ServerResponse: googleapi.ServerResponse{
129862			Header:         res.Header,
129863			HTTPStatusCode: res.StatusCode,
129864		},
129865	}
129866	target := &ret
129867	if err := gensupport.DecodeResponse(target, res); err != nil {
129868		return nil, err
129869	}
129870	return ret, nil
129871	// {
129872	//   "description": "Returns the specified regional HealthCheckService resource.",
129873	//   "httpMethod": "GET",
129874	//   "id": "compute.regionHealthCheckServices.get",
129875	//   "parameterOrder": [
129876	//     "project",
129877	//     "region",
129878	//     "healthCheckService"
129879	//   ],
129880	//   "parameters": {
129881	//     "healthCheckService": {
129882	//       "description": "Name of the HealthCheckService to update. The name must be 1-63 characters long, and comply with RFC1035.",
129883	//       "location": "path",
129884	//       "required": true,
129885	//       "type": "string"
129886	//     },
129887	//     "project": {
129888	//       "description": "Project ID for this request.",
129889	//       "location": "path",
129890	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
129891	//       "required": true,
129892	//       "type": "string"
129893	//     },
129894	//     "region": {
129895	//       "description": "Name of the region scoping this request.",
129896	//       "location": "path",
129897	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
129898	//       "required": true,
129899	//       "type": "string"
129900	//     }
129901	//   },
129902	//   "path": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}",
129903	//   "response": {
129904	//     "$ref": "HealthCheckService"
129905	//   },
129906	//   "scopes": [
129907	//     "https://www.googleapis.com/auth/cloud-platform",
129908	//     "https://www.googleapis.com/auth/compute",
129909	//     "https://www.googleapis.com/auth/compute.readonly"
129910	//   ]
129911	// }
129912
129913}
129914
129915// method id "compute.regionHealthCheckServices.insert":
129916
129917type RegionHealthCheckServicesInsertCall struct {
129918	s                  *Service
129919	project            string
129920	region             string
129921	healthcheckservice *HealthCheckService
129922	urlParams_         gensupport.URLParams
129923	ctx_               context.Context
129924	header_            http.Header
129925}
129926
129927// Insert: Creates a regional HealthCheckService resource in the
129928// specified project and region using the data included in the request.
129929func (r *RegionHealthCheckServicesService) Insert(project string, region string, healthcheckservice *HealthCheckService) *RegionHealthCheckServicesInsertCall {
129930	c := &RegionHealthCheckServicesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129931	c.project = project
129932	c.region = region
129933	c.healthcheckservice = healthcheckservice
129934	return c
129935}
129936
129937// RequestId sets the optional parameter "requestId": An optional
129938// request ID to identify requests. Specify a unique request ID so that
129939// if you must retry your request, the server will know to ignore the
129940// request if it has already been completed.
129941//
129942// For example, consider a situation where you make an initial request
129943// and the request times out. If you make the request again with the
129944// same request ID, the server can check if original operation with the
129945// same request ID was received, and if so, will ignore the second
129946// request. This prevents clients from accidentally creating duplicate
129947// commitments.
129948//
129949// The request ID must be a valid UUID with the exception that zero UUID
129950// is not supported (00000000-0000-0000-0000-000000000000).
129951func (c *RegionHealthCheckServicesInsertCall) RequestId(requestId string) *RegionHealthCheckServicesInsertCall {
129952	c.urlParams_.Set("requestId", requestId)
129953	return c
129954}
129955
129956// Fields allows partial responses to be retrieved. See
129957// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
129958// for more information.
129959func (c *RegionHealthCheckServicesInsertCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesInsertCall {
129960	c.urlParams_.Set("fields", googleapi.CombineFields(s))
129961	return c
129962}
129963
129964// Context sets the context to be used in this call's Do method. Any
129965// pending HTTP request will be aborted if the provided context is
129966// canceled.
129967func (c *RegionHealthCheckServicesInsertCall) Context(ctx context.Context) *RegionHealthCheckServicesInsertCall {
129968	c.ctx_ = ctx
129969	return c
129970}
129971
129972// Header returns an http.Header that can be modified by the caller to
129973// add HTTP headers to the request.
129974func (c *RegionHealthCheckServicesInsertCall) Header() http.Header {
129975	if c.header_ == nil {
129976		c.header_ = make(http.Header)
129977	}
129978	return c.header_
129979}
129980
129981func (c *RegionHealthCheckServicesInsertCall) doRequest(alt string) (*http.Response, error) {
129982	reqHeaders := make(http.Header)
129983	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
129984	for k, v := range c.header_ {
129985		reqHeaders[k] = v
129986	}
129987	reqHeaders.Set("User-Agent", c.s.userAgent())
129988	var body io.Reader = nil
129989	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheckservice)
129990	if err != nil {
129991		return nil, err
129992	}
129993	reqHeaders.Set("Content-Type", "application/json")
129994	c.urlParams_.Set("alt", alt)
129995	c.urlParams_.Set("prettyPrint", "false")
129996	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthCheckServices")
129997	urls += "?" + c.urlParams_.Encode()
129998	req, err := http.NewRequest("POST", urls, body)
129999	if err != nil {
130000		return nil, err
130001	}
130002	req.Header = reqHeaders
130003	googleapi.Expand(req.URL, map[string]string{
130004		"project": c.project,
130005		"region":  c.region,
130006	})
130007	return gensupport.SendRequest(c.ctx_, c.s.client, req)
130008}
130009
130010// Do executes the "compute.regionHealthCheckServices.insert" call.
130011// Exactly one of *Operation or error will be non-nil. Any non-2xx
130012// status code is an error. Response headers are in either
130013// *Operation.ServerResponse.Header or (if a response was returned at
130014// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
130015// to check whether the returned error was because
130016// http.StatusNotModified was returned.
130017func (c *RegionHealthCheckServicesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
130018	gensupport.SetOptions(c.urlParams_, opts...)
130019	res, err := c.doRequest("json")
130020	if res != nil && res.StatusCode == http.StatusNotModified {
130021		if res.Body != nil {
130022			res.Body.Close()
130023		}
130024		return nil, &googleapi.Error{
130025			Code:   res.StatusCode,
130026			Header: res.Header,
130027		}
130028	}
130029	if err != nil {
130030		return nil, err
130031	}
130032	defer googleapi.CloseBody(res)
130033	if err := googleapi.CheckResponse(res); err != nil {
130034		return nil, err
130035	}
130036	ret := &Operation{
130037		ServerResponse: googleapi.ServerResponse{
130038			Header:         res.Header,
130039			HTTPStatusCode: res.StatusCode,
130040		},
130041	}
130042	target := &ret
130043	if err := gensupport.DecodeResponse(target, res); err != nil {
130044		return nil, err
130045	}
130046	return ret, nil
130047	// {
130048	//   "description": "Creates a regional HealthCheckService resource in the specified project and region using the data included in the request.",
130049	//   "httpMethod": "POST",
130050	//   "id": "compute.regionHealthCheckServices.insert",
130051	//   "parameterOrder": [
130052	//     "project",
130053	//     "region"
130054	//   ],
130055	//   "parameters": {
130056	//     "project": {
130057	//       "description": "Project ID for this request.",
130058	//       "location": "path",
130059	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
130060	//       "required": true,
130061	//       "type": "string"
130062	//     },
130063	//     "region": {
130064	//       "description": "Name of the region scoping this request.",
130065	//       "location": "path",
130066	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
130067	//       "required": true,
130068	//       "type": "string"
130069	//     },
130070	//     "requestId": {
130071	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
130072	//       "location": "query",
130073	//       "type": "string"
130074	//     }
130075	//   },
130076	//   "path": "projects/{project}/regions/{region}/healthCheckServices",
130077	//   "request": {
130078	//     "$ref": "HealthCheckService"
130079	//   },
130080	//   "response": {
130081	//     "$ref": "Operation"
130082	//   },
130083	//   "scopes": [
130084	//     "https://www.googleapis.com/auth/cloud-platform",
130085	//     "https://www.googleapis.com/auth/compute"
130086	//   ]
130087	// }
130088
130089}
130090
130091// method id "compute.regionHealthCheckServices.list":
130092
130093type RegionHealthCheckServicesListCall struct {
130094	s            *Service
130095	project      string
130096	region       string
130097	urlParams_   gensupport.URLParams
130098	ifNoneMatch_ string
130099	ctx_         context.Context
130100	header_      http.Header
130101}
130102
130103// List: Lists all the HealthCheckService resources that have been
130104// configured for the specified project in the given region.
130105func (r *RegionHealthCheckServicesService) List(project string, region string) *RegionHealthCheckServicesListCall {
130106	c := &RegionHealthCheckServicesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
130107	c.project = project
130108	c.region = region
130109	return c
130110}
130111
130112// Filter sets the optional parameter "filter": A filter expression that
130113// filters resources listed in the response. The expression must specify
130114// the field name, a comparison operator, and the value that you want to
130115// use for filtering. The value must be a string, a number, or a
130116// boolean. The comparison operator must be either `=`, `!=`, `>`, or
130117// `<`.
130118//
130119// For example, if you are filtering Compute Engine instances, you can
130120// exclude instances named `example-instance` by specifying `name !=
130121// example-instance`.
130122//
130123// You can also filter nested fields. For example, you could specify
130124// `scheduling.automaticRestart = false` to include instances only if
130125// they are not scheduled for automatic restarts. You can use filtering
130126// on nested fields to filter based on resource labels.
130127//
130128// To filter on multiple expressions, provide each separate expression
130129// within parentheses. For example: ``` (scheduling.automaticRestart =
130130// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
130131// is an `AND` expression. However, you can include `AND` and `OR`
130132// expressions explicitly. For example: ``` (cpuPlatform = "Intel
130133// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
130134// (scheduling.automaticRestart = true) ```
130135func (c *RegionHealthCheckServicesListCall) Filter(filter string) *RegionHealthCheckServicesListCall {
130136	c.urlParams_.Set("filter", filter)
130137	return c
130138}
130139
130140// MaxResults sets the optional parameter "maxResults": The maximum
130141// number of results per page that should be returned. If the number of
130142// available results is larger than `maxResults`, Compute Engine returns
130143// a `nextPageToken` that can be used to get the next page of results in
130144// subsequent list requests. Acceptable values are `0` to `500`,
130145// inclusive. (Default: `500`)
130146func (c *RegionHealthCheckServicesListCall) MaxResults(maxResults int64) *RegionHealthCheckServicesListCall {
130147	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
130148	return c
130149}
130150
130151// OrderBy sets the optional parameter "orderBy": Sorts list results by
130152// a certain order. By default, results are returned in alphanumerical
130153// order based on the resource name.
130154//
130155// You can also sort results in descending order based on the creation
130156// timestamp using `orderBy="creationTimestamp desc". This sorts
130157// results based on the `creationTimestamp` field in reverse
130158// chronological order (newest result first). Use this to sort resources
130159// like operations so that the newest operation is returned
130160// first.
130161//
130162// Currently, only sorting by `name` or `creationTimestamp desc` is
130163// supported.
130164func (c *RegionHealthCheckServicesListCall) OrderBy(orderBy string) *RegionHealthCheckServicesListCall {
130165	c.urlParams_.Set("orderBy", orderBy)
130166	return c
130167}
130168
130169// PageToken sets the optional parameter "pageToken": Specifies a page
130170// token to use. Set `pageToken` to the `nextPageToken` returned by a
130171// previous list request to get the next page of results.
130172func (c *RegionHealthCheckServicesListCall) PageToken(pageToken string) *RegionHealthCheckServicesListCall {
130173	c.urlParams_.Set("pageToken", pageToken)
130174	return c
130175}
130176
130177// ReturnPartialSuccess sets the optional parameter
130178// "returnPartialSuccess": Opt-in for partial success behavior which
130179// provides partial results in case of failure. The default value is
130180// false.
130181func (c *RegionHealthCheckServicesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionHealthCheckServicesListCall {
130182	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
130183	return c
130184}
130185
130186// Fields allows partial responses to be retrieved. See
130187// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
130188// for more information.
130189func (c *RegionHealthCheckServicesListCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesListCall {
130190	c.urlParams_.Set("fields", googleapi.CombineFields(s))
130191	return c
130192}
130193
130194// IfNoneMatch sets the optional parameter which makes the operation
130195// fail if the object's ETag matches the given value. This is useful for
130196// getting updates only after the object has changed since the last
130197// request. Use googleapi.IsNotModified to check whether the response
130198// error from Do is the result of In-None-Match.
130199func (c *RegionHealthCheckServicesListCall) IfNoneMatch(entityTag string) *RegionHealthCheckServicesListCall {
130200	c.ifNoneMatch_ = entityTag
130201	return c
130202}
130203
130204// Context sets the context to be used in this call's Do method. Any
130205// pending HTTP request will be aborted if the provided context is
130206// canceled.
130207func (c *RegionHealthCheckServicesListCall) Context(ctx context.Context) *RegionHealthCheckServicesListCall {
130208	c.ctx_ = ctx
130209	return c
130210}
130211
130212// Header returns an http.Header that can be modified by the caller to
130213// add HTTP headers to the request.
130214func (c *RegionHealthCheckServicesListCall) Header() http.Header {
130215	if c.header_ == nil {
130216		c.header_ = make(http.Header)
130217	}
130218	return c.header_
130219}
130220
130221func (c *RegionHealthCheckServicesListCall) doRequest(alt string) (*http.Response, error) {
130222	reqHeaders := make(http.Header)
130223	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
130224	for k, v := range c.header_ {
130225		reqHeaders[k] = v
130226	}
130227	reqHeaders.Set("User-Agent", c.s.userAgent())
130228	if c.ifNoneMatch_ != "" {
130229		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
130230	}
130231	var body io.Reader = nil
130232	c.urlParams_.Set("alt", alt)
130233	c.urlParams_.Set("prettyPrint", "false")
130234	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthCheckServices")
130235	urls += "?" + c.urlParams_.Encode()
130236	req, err := http.NewRequest("GET", urls, body)
130237	if err != nil {
130238		return nil, err
130239	}
130240	req.Header = reqHeaders
130241	googleapi.Expand(req.URL, map[string]string{
130242		"project": c.project,
130243		"region":  c.region,
130244	})
130245	return gensupport.SendRequest(c.ctx_, c.s.client, req)
130246}
130247
130248// Do executes the "compute.regionHealthCheckServices.list" call.
130249// Exactly one of *HealthCheckServicesList or error will be non-nil. Any
130250// non-2xx status code is an error. Response headers are in either
130251// *HealthCheckServicesList.ServerResponse.Header or (if a response was
130252// returned at all) in error.(*googleapi.Error).Header. Use
130253// googleapi.IsNotModified to check whether the returned error was
130254// because http.StatusNotModified was returned.
130255func (c *RegionHealthCheckServicesListCall) Do(opts ...googleapi.CallOption) (*HealthCheckServicesList, error) {
130256	gensupport.SetOptions(c.urlParams_, opts...)
130257	res, err := c.doRequest("json")
130258	if res != nil && res.StatusCode == http.StatusNotModified {
130259		if res.Body != nil {
130260			res.Body.Close()
130261		}
130262		return nil, &googleapi.Error{
130263			Code:   res.StatusCode,
130264			Header: res.Header,
130265		}
130266	}
130267	if err != nil {
130268		return nil, err
130269	}
130270	defer googleapi.CloseBody(res)
130271	if err := googleapi.CheckResponse(res); err != nil {
130272		return nil, err
130273	}
130274	ret := &HealthCheckServicesList{
130275		ServerResponse: googleapi.ServerResponse{
130276			Header:         res.Header,
130277			HTTPStatusCode: res.StatusCode,
130278		},
130279	}
130280	target := &ret
130281	if err := gensupport.DecodeResponse(target, res); err != nil {
130282		return nil, err
130283	}
130284	return ret, nil
130285	// {
130286	//   "description": "Lists all the HealthCheckService resources that have been configured for the specified project in the given region.",
130287	//   "httpMethod": "GET",
130288	//   "id": "compute.regionHealthCheckServices.list",
130289	//   "parameterOrder": [
130290	//     "project",
130291	//     "region"
130292	//   ],
130293	//   "parameters": {
130294	//     "filter": {
130295	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
130296	//       "location": "query",
130297	//       "type": "string"
130298	//     },
130299	//     "maxResults": {
130300	//       "default": "500",
130301	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
130302	//       "format": "uint32",
130303	//       "location": "query",
130304	//       "minimum": "0",
130305	//       "type": "integer"
130306	//     },
130307	//     "orderBy": {
130308	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
130309	//       "location": "query",
130310	//       "type": "string"
130311	//     },
130312	//     "pageToken": {
130313	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
130314	//       "location": "query",
130315	//       "type": "string"
130316	//     },
130317	//     "project": {
130318	//       "description": "Project ID for this request.",
130319	//       "location": "path",
130320	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
130321	//       "required": true,
130322	//       "type": "string"
130323	//     },
130324	//     "region": {
130325	//       "description": "Name of the region scoping this request.",
130326	//       "location": "path",
130327	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
130328	//       "required": true,
130329	//       "type": "string"
130330	//     },
130331	//     "returnPartialSuccess": {
130332	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
130333	//       "location": "query",
130334	//       "type": "boolean"
130335	//     }
130336	//   },
130337	//   "path": "projects/{project}/regions/{region}/healthCheckServices",
130338	//   "response": {
130339	//     "$ref": "HealthCheckServicesList"
130340	//   },
130341	//   "scopes": [
130342	//     "https://www.googleapis.com/auth/cloud-platform",
130343	//     "https://www.googleapis.com/auth/compute",
130344	//     "https://www.googleapis.com/auth/compute.readonly"
130345	//   ]
130346	// }
130347
130348}
130349
130350// Pages invokes f for each page of results.
130351// A non-nil error returned from f will halt the iteration.
130352// The provided context supersedes any context provided to the Context method.
130353func (c *RegionHealthCheckServicesListCall) Pages(ctx context.Context, f func(*HealthCheckServicesList) error) error {
130354	c.ctx_ = ctx
130355	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
130356	for {
130357		x, err := c.Do()
130358		if err != nil {
130359			return err
130360		}
130361		if err := f(x); err != nil {
130362			return err
130363		}
130364		if x.NextPageToken == "" {
130365			return nil
130366		}
130367		c.PageToken(x.NextPageToken)
130368	}
130369}
130370
130371// method id "compute.regionHealthCheckServices.patch":
130372
130373type RegionHealthCheckServicesPatchCall struct {
130374	s                  *Service
130375	project            string
130376	region             string
130377	healthCheckService string
130378	healthcheckservice *HealthCheckService
130379	urlParams_         gensupport.URLParams
130380	ctx_               context.Context
130381	header_            http.Header
130382}
130383
130384// Patch: Updates the specified regional HealthCheckService resource
130385// with the data included in the request. This method supports PATCH
130386// semantics and uses the JSON merge patch format and processing rules.
130387func (r *RegionHealthCheckServicesService) Patch(project string, region string, healthCheckService string, healthcheckservice *HealthCheckService) *RegionHealthCheckServicesPatchCall {
130388	c := &RegionHealthCheckServicesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
130389	c.project = project
130390	c.region = region
130391	c.healthCheckService = healthCheckService
130392	c.healthcheckservice = healthcheckservice
130393	return c
130394}
130395
130396// RequestId sets the optional parameter "requestId": An optional
130397// request ID to identify requests. Specify a unique request ID so that
130398// if you must retry your request, the server will know to ignore the
130399// request if it has already been completed.
130400//
130401// For example, consider a situation where you make an initial request
130402// and the request times out. If you make the request again with the
130403// same request ID, the server can check if original operation with the
130404// same request ID was received, and if so, will ignore the second
130405// request. This prevents clients from accidentally creating duplicate
130406// commitments.
130407//
130408// The request ID must be a valid UUID with the exception that zero UUID
130409// is not supported (00000000-0000-0000-0000-000000000000).
130410func (c *RegionHealthCheckServicesPatchCall) RequestId(requestId string) *RegionHealthCheckServicesPatchCall {
130411	c.urlParams_.Set("requestId", requestId)
130412	return c
130413}
130414
130415// Fields allows partial responses to be retrieved. See
130416// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
130417// for more information.
130418func (c *RegionHealthCheckServicesPatchCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesPatchCall {
130419	c.urlParams_.Set("fields", googleapi.CombineFields(s))
130420	return c
130421}
130422
130423// Context sets the context to be used in this call's Do method. Any
130424// pending HTTP request will be aborted if the provided context is
130425// canceled.
130426func (c *RegionHealthCheckServicesPatchCall) Context(ctx context.Context) *RegionHealthCheckServicesPatchCall {
130427	c.ctx_ = ctx
130428	return c
130429}
130430
130431// Header returns an http.Header that can be modified by the caller to
130432// add HTTP headers to the request.
130433func (c *RegionHealthCheckServicesPatchCall) Header() http.Header {
130434	if c.header_ == nil {
130435		c.header_ = make(http.Header)
130436	}
130437	return c.header_
130438}
130439
130440func (c *RegionHealthCheckServicesPatchCall) doRequest(alt string) (*http.Response, error) {
130441	reqHeaders := make(http.Header)
130442	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
130443	for k, v := range c.header_ {
130444		reqHeaders[k] = v
130445	}
130446	reqHeaders.Set("User-Agent", c.s.userAgent())
130447	var body io.Reader = nil
130448	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheckservice)
130449	if err != nil {
130450		return nil, err
130451	}
130452	reqHeaders.Set("Content-Type", "application/json")
130453	c.urlParams_.Set("alt", alt)
130454	c.urlParams_.Set("prettyPrint", "false")
130455	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}")
130456	urls += "?" + c.urlParams_.Encode()
130457	req, err := http.NewRequest("PATCH", urls, body)
130458	if err != nil {
130459		return nil, err
130460	}
130461	req.Header = reqHeaders
130462	googleapi.Expand(req.URL, map[string]string{
130463		"project":            c.project,
130464		"region":             c.region,
130465		"healthCheckService": c.healthCheckService,
130466	})
130467	return gensupport.SendRequest(c.ctx_, c.s.client, req)
130468}
130469
130470// Do executes the "compute.regionHealthCheckServices.patch" call.
130471// Exactly one of *Operation or error will be non-nil. Any non-2xx
130472// status code is an error. Response headers are in either
130473// *Operation.ServerResponse.Header or (if a response was returned at
130474// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
130475// to check whether the returned error was because
130476// http.StatusNotModified was returned.
130477func (c *RegionHealthCheckServicesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
130478	gensupport.SetOptions(c.urlParams_, opts...)
130479	res, err := c.doRequest("json")
130480	if res != nil && res.StatusCode == http.StatusNotModified {
130481		if res.Body != nil {
130482			res.Body.Close()
130483		}
130484		return nil, &googleapi.Error{
130485			Code:   res.StatusCode,
130486			Header: res.Header,
130487		}
130488	}
130489	if err != nil {
130490		return nil, err
130491	}
130492	defer googleapi.CloseBody(res)
130493	if err := googleapi.CheckResponse(res); err != nil {
130494		return nil, err
130495	}
130496	ret := &Operation{
130497		ServerResponse: googleapi.ServerResponse{
130498			Header:         res.Header,
130499			HTTPStatusCode: res.StatusCode,
130500		},
130501	}
130502	target := &ret
130503	if err := gensupport.DecodeResponse(target, res); err != nil {
130504		return nil, err
130505	}
130506	return ret, nil
130507	// {
130508	//   "description": "Updates the specified regional HealthCheckService resource with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.",
130509	//   "httpMethod": "PATCH",
130510	//   "id": "compute.regionHealthCheckServices.patch",
130511	//   "parameterOrder": [
130512	//     "project",
130513	//     "region",
130514	//     "healthCheckService"
130515	//   ],
130516	//   "parameters": {
130517	//     "healthCheckService": {
130518	//       "description": "Name of the HealthCheckService to update. The name must be 1-63 characters long, and comply with RFC1035.",
130519	//       "location": "path",
130520	//       "required": true,
130521	//       "type": "string"
130522	//     },
130523	//     "project": {
130524	//       "description": "Project ID for this request.",
130525	//       "location": "path",
130526	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
130527	//       "required": true,
130528	//       "type": "string"
130529	//     },
130530	//     "region": {
130531	//       "description": "Name of the region scoping this request.",
130532	//       "location": "path",
130533	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
130534	//       "required": true,
130535	//       "type": "string"
130536	//     },
130537	//     "requestId": {
130538	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
130539	//       "location": "query",
130540	//       "type": "string"
130541	//     }
130542	//   },
130543	//   "path": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}",
130544	//   "request": {
130545	//     "$ref": "HealthCheckService"
130546	//   },
130547	//   "response": {
130548	//     "$ref": "Operation"
130549	//   },
130550	//   "scopes": [
130551	//     "https://www.googleapis.com/auth/cloud-platform",
130552	//     "https://www.googleapis.com/auth/compute"
130553	//   ]
130554	// }
130555
130556}
130557
130558// method id "compute.regionHealthCheckServices.testIamPermissions":
130559
130560type RegionHealthCheckServicesTestIamPermissionsCall struct {
130561	s                      *Service
130562	project                string
130563	region                 string
130564	resource               string
130565	testpermissionsrequest *TestPermissionsRequest
130566	urlParams_             gensupport.URLParams
130567	ctx_                   context.Context
130568	header_                http.Header
130569}
130570
130571// TestIamPermissions: Returns permissions that a caller has on the
130572// specified resource.
130573func (r *RegionHealthCheckServicesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionHealthCheckServicesTestIamPermissionsCall {
130574	c := &RegionHealthCheckServicesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
130575	c.project = project
130576	c.region = region
130577	c.resource = resource
130578	c.testpermissionsrequest = testpermissionsrequest
130579	return c
130580}
130581
130582// Fields allows partial responses to be retrieved. See
130583// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
130584// for more information.
130585func (c *RegionHealthCheckServicesTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesTestIamPermissionsCall {
130586	c.urlParams_.Set("fields", googleapi.CombineFields(s))
130587	return c
130588}
130589
130590// Context sets the context to be used in this call's Do method. Any
130591// pending HTTP request will be aborted if the provided context is
130592// canceled.
130593func (c *RegionHealthCheckServicesTestIamPermissionsCall) Context(ctx context.Context) *RegionHealthCheckServicesTestIamPermissionsCall {
130594	c.ctx_ = ctx
130595	return c
130596}
130597
130598// Header returns an http.Header that can be modified by the caller to
130599// add HTTP headers to the request.
130600func (c *RegionHealthCheckServicesTestIamPermissionsCall) Header() http.Header {
130601	if c.header_ == nil {
130602		c.header_ = make(http.Header)
130603	}
130604	return c.header_
130605}
130606
130607func (c *RegionHealthCheckServicesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
130608	reqHeaders := make(http.Header)
130609	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
130610	for k, v := range c.header_ {
130611		reqHeaders[k] = v
130612	}
130613	reqHeaders.Set("User-Agent", c.s.userAgent())
130614	var body io.Reader = nil
130615	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
130616	if err != nil {
130617		return nil, err
130618	}
130619	reqHeaders.Set("Content-Type", "application/json")
130620	c.urlParams_.Set("alt", alt)
130621	c.urlParams_.Set("prettyPrint", "false")
130622	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthCheckServices/{resource}/testIamPermissions")
130623	urls += "?" + c.urlParams_.Encode()
130624	req, err := http.NewRequest("POST", urls, body)
130625	if err != nil {
130626		return nil, err
130627	}
130628	req.Header = reqHeaders
130629	googleapi.Expand(req.URL, map[string]string{
130630		"project":  c.project,
130631		"region":   c.region,
130632		"resource": c.resource,
130633	})
130634	return gensupport.SendRequest(c.ctx_, c.s.client, req)
130635}
130636
130637// Do executes the "compute.regionHealthCheckServices.testIamPermissions" call.
130638// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
130639// non-2xx status code is an error. Response headers are in either
130640// *TestPermissionsResponse.ServerResponse.Header or (if a response was
130641// returned at all) in error.(*googleapi.Error).Header. Use
130642// googleapi.IsNotModified to check whether the returned error was
130643// because http.StatusNotModified was returned.
130644func (c *RegionHealthCheckServicesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
130645	gensupport.SetOptions(c.urlParams_, opts...)
130646	res, err := c.doRequest("json")
130647	if res != nil && res.StatusCode == http.StatusNotModified {
130648		if res.Body != nil {
130649			res.Body.Close()
130650		}
130651		return nil, &googleapi.Error{
130652			Code:   res.StatusCode,
130653			Header: res.Header,
130654		}
130655	}
130656	if err != nil {
130657		return nil, err
130658	}
130659	defer googleapi.CloseBody(res)
130660	if err := googleapi.CheckResponse(res); err != nil {
130661		return nil, err
130662	}
130663	ret := &TestPermissionsResponse{
130664		ServerResponse: googleapi.ServerResponse{
130665			Header:         res.Header,
130666			HTTPStatusCode: res.StatusCode,
130667		},
130668	}
130669	target := &ret
130670	if err := gensupport.DecodeResponse(target, res); err != nil {
130671		return nil, err
130672	}
130673	return ret, nil
130674	// {
130675	//   "description": "Returns permissions that a caller has on the specified resource.",
130676	//   "httpMethod": "POST",
130677	//   "id": "compute.regionHealthCheckServices.testIamPermissions",
130678	//   "parameterOrder": [
130679	//     "project",
130680	//     "region",
130681	//     "resource"
130682	//   ],
130683	//   "parameters": {
130684	//     "project": {
130685	//       "description": "Project ID for this request.",
130686	//       "location": "path",
130687	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
130688	//       "required": true,
130689	//       "type": "string"
130690	//     },
130691	//     "region": {
130692	//       "description": "The name of the region for this request.",
130693	//       "location": "path",
130694	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
130695	//       "required": true,
130696	//       "type": "string"
130697	//     },
130698	//     "resource": {
130699	//       "description": "Name or id of the resource for this request.",
130700	//       "location": "path",
130701	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
130702	//       "required": true,
130703	//       "type": "string"
130704	//     }
130705	//   },
130706	//   "path": "projects/{project}/regions/{region}/healthCheckServices/{resource}/testIamPermissions",
130707	//   "request": {
130708	//     "$ref": "TestPermissionsRequest"
130709	//   },
130710	//   "response": {
130711	//     "$ref": "TestPermissionsResponse"
130712	//   },
130713	//   "scopes": [
130714	//     "https://www.googleapis.com/auth/cloud-platform",
130715	//     "https://www.googleapis.com/auth/compute",
130716	//     "https://www.googleapis.com/auth/compute.readonly"
130717	//   ]
130718	// }
130719
130720}
130721
130722// method id "compute.regionHealthChecks.delete":
130723
130724type RegionHealthChecksDeleteCall struct {
130725	s           *Service
130726	project     string
130727	region      string
130728	healthCheck string
130729	urlParams_  gensupport.URLParams
130730	ctx_        context.Context
130731	header_     http.Header
130732}
130733
130734// Delete: Deletes the specified HealthCheck resource.
130735func (r *RegionHealthChecksService) Delete(project string, region string, healthCheck string) *RegionHealthChecksDeleteCall {
130736	c := &RegionHealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
130737	c.project = project
130738	c.region = region
130739	c.healthCheck = healthCheck
130740	return c
130741}
130742
130743// RequestId sets the optional parameter "requestId": An optional
130744// request ID to identify requests. Specify a unique request ID so that
130745// if you must retry your request, the server will know to ignore the
130746// request if it has already been completed.
130747//
130748// For example, consider a situation where you make an initial request
130749// and the request times out. If you make the request again with the
130750// same request ID, the server can check if original operation with the
130751// same request ID was received, and if so, will ignore the second
130752// request. This prevents clients from accidentally creating duplicate
130753// commitments.
130754//
130755// The request ID must be a valid UUID with the exception that zero UUID
130756// is not supported (00000000-0000-0000-0000-000000000000).
130757func (c *RegionHealthChecksDeleteCall) RequestId(requestId string) *RegionHealthChecksDeleteCall {
130758	c.urlParams_.Set("requestId", requestId)
130759	return c
130760}
130761
130762// Fields allows partial responses to be retrieved. See
130763// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
130764// for more information.
130765func (c *RegionHealthChecksDeleteCall) Fields(s ...googleapi.Field) *RegionHealthChecksDeleteCall {
130766	c.urlParams_.Set("fields", googleapi.CombineFields(s))
130767	return c
130768}
130769
130770// Context sets the context to be used in this call's Do method. Any
130771// pending HTTP request will be aborted if the provided context is
130772// canceled.
130773func (c *RegionHealthChecksDeleteCall) Context(ctx context.Context) *RegionHealthChecksDeleteCall {
130774	c.ctx_ = ctx
130775	return c
130776}
130777
130778// Header returns an http.Header that can be modified by the caller to
130779// add HTTP headers to the request.
130780func (c *RegionHealthChecksDeleteCall) Header() http.Header {
130781	if c.header_ == nil {
130782		c.header_ = make(http.Header)
130783	}
130784	return c.header_
130785}
130786
130787func (c *RegionHealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) {
130788	reqHeaders := make(http.Header)
130789	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
130790	for k, v := range c.header_ {
130791		reqHeaders[k] = v
130792	}
130793	reqHeaders.Set("User-Agent", c.s.userAgent())
130794	var body io.Reader = nil
130795	c.urlParams_.Set("alt", alt)
130796	c.urlParams_.Set("prettyPrint", "false")
130797	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthChecks/{healthCheck}")
130798	urls += "?" + c.urlParams_.Encode()
130799	req, err := http.NewRequest("DELETE", urls, body)
130800	if err != nil {
130801		return nil, err
130802	}
130803	req.Header = reqHeaders
130804	googleapi.Expand(req.URL, map[string]string{
130805		"project":     c.project,
130806		"region":      c.region,
130807		"healthCheck": c.healthCheck,
130808	})
130809	return gensupport.SendRequest(c.ctx_, c.s.client, req)
130810}
130811
130812// Do executes the "compute.regionHealthChecks.delete" call.
130813// Exactly one of *Operation or error will be non-nil. Any non-2xx
130814// status code is an error. Response headers are in either
130815// *Operation.ServerResponse.Header or (if a response was returned at
130816// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
130817// to check whether the returned error was because
130818// http.StatusNotModified was returned.
130819func (c *RegionHealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
130820	gensupport.SetOptions(c.urlParams_, opts...)
130821	res, err := c.doRequest("json")
130822	if res != nil && res.StatusCode == http.StatusNotModified {
130823		if res.Body != nil {
130824			res.Body.Close()
130825		}
130826		return nil, &googleapi.Error{
130827			Code:   res.StatusCode,
130828			Header: res.Header,
130829		}
130830	}
130831	if err != nil {
130832		return nil, err
130833	}
130834	defer googleapi.CloseBody(res)
130835	if err := googleapi.CheckResponse(res); err != nil {
130836		return nil, err
130837	}
130838	ret := &Operation{
130839		ServerResponse: googleapi.ServerResponse{
130840			Header:         res.Header,
130841			HTTPStatusCode: res.StatusCode,
130842		},
130843	}
130844	target := &ret
130845	if err := gensupport.DecodeResponse(target, res); err != nil {
130846		return nil, err
130847	}
130848	return ret, nil
130849	// {
130850	//   "description": "Deletes the specified HealthCheck resource.",
130851	//   "httpMethod": "DELETE",
130852	//   "id": "compute.regionHealthChecks.delete",
130853	//   "parameterOrder": [
130854	//     "project",
130855	//     "region",
130856	//     "healthCheck"
130857	//   ],
130858	//   "parameters": {
130859	//     "healthCheck": {
130860	//       "description": "Name of the HealthCheck resource to delete.",
130861	//       "location": "path",
130862	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
130863	//       "required": true,
130864	//       "type": "string"
130865	//     },
130866	//     "project": {
130867	//       "description": "Project ID for this request.",
130868	//       "location": "path",
130869	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
130870	//       "required": true,
130871	//       "type": "string"
130872	//     },
130873	//     "region": {
130874	//       "description": "Name of the region scoping this request.",
130875	//       "location": "path",
130876	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
130877	//       "required": true,
130878	//       "type": "string"
130879	//     },
130880	//     "requestId": {
130881	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
130882	//       "location": "query",
130883	//       "type": "string"
130884	//     }
130885	//   },
130886	//   "path": "projects/{project}/regions/{region}/healthChecks/{healthCheck}",
130887	//   "response": {
130888	//     "$ref": "Operation"
130889	//   },
130890	//   "scopes": [
130891	//     "https://www.googleapis.com/auth/cloud-platform",
130892	//     "https://www.googleapis.com/auth/compute"
130893	//   ]
130894	// }
130895
130896}
130897
130898// method id "compute.regionHealthChecks.get":
130899
130900type RegionHealthChecksGetCall struct {
130901	s            *Service
130902	project      string
130903	region       string
130904	healthCheck  string
130905	urlParams_   gensupport.URLParams
130906	ifNoneMatch_ string
130907	ctx_         context.Context
130908	header_      http.Header
130909}
130910
130911// Get: Returns the specified HealthCheck resource. Gets a list of
130912// available health checks by making a list() request.
130913func (r *RegionHealthChecksService) Get(project string, region string, healthCheck string) *RegionHealthChecksGetCall {
130914	c := &RegionHealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
130915	c.project = project
130916	c.region = region
130917	c.healthCheck = healthCheck
130918	return c
130919}
130920
130921// Fields allows partial responses to be retrieved. See
130922// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
130923// for more information.
130924func (c *RegionHealthChecksGetCall) Fields(s ...googleapi.Field) *RegionHealthChecksGetCall {
130925	c.urlParams_.Set("fields", googleapi.CombineFields(s))
130926	return c
130927}
130928
130929// IfNoneMatch sets the optional parameter which makes the operation
130930// fail if the object's ETag matches the given value. This is useful for
130931// getting updates only after the object has changed since the last
130932// request. Use googleapi.IsNotModified to check whether the response
130933// error from Do is the result of In-None-Match.
130934func (c *RegionHealthChecksGetCall) IfNoneMatch(entityTag string) *RegionHealthChecksGetCall {
130935	c.ifNoneMatch_ = entityTag
130936	return c
130937}
130938
130939// Context sets the context to be used in this call's Do method. Any
130940// pending HTTP request will be aborted if the provided context is
130941// canceled.
130942func (c *RegionHealthChecksGetCall) Context(ctx context.Context) *RegionHealthChecksGetCall {
130943	c.ctx_ = ctx
130944	return c
130945}
130946
130947// Header returns an http.Header that can be modified by the caller to
130948// add HTTP headers to the request.
130949func (c *RegionHealthChecksGetCall) Header() http.Header {
130950	if c.header_ == nil {
130951		c.header_ = make(http.Header)
130952	}
130953	return c.header_
130954}
130955
130956func (c *RegionHealthChecksGetCall) doRequest(alt string) (*http.Response, error) {
130957	reqHeaders := make(http.Header)
130958	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
130959	for k, v := range c.header_ {
130960		reqHeaders[k] = v
130961	}
130962	reqHeaders.Set("User-Agent", c.s.userAgent())
130963	if c.ifNoneMatch_ != "" {
130964		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
130965	}
130966	var body io.Reader = nil
130967	c.urlParams_.Set("alt", alt)
130968	c.urlParams_.Set("prettyPrint", "false")
130969	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthChecks/{healthCheck}")
130970	urls += "?" + c.urlParams_.Encode()
130971	req, err := http.NewRequest("GET", urls, body)
130972	if err != nil {
130973		return nil, err
130974	}
130975	req.Header = reqHeaders
130976	googleapi.Expand(req.URL, map[string]string{
130977		"project":     c.project,
130978		"region":      c.region,
130979		"healthCheck": c.healthCheck,
130980	})
130981	return gensupport.SendRequest(c.ctx_, c.s.client, req)
130982}
130983
130984// Do executes the "compute.regionHealthChecks.get" call.
130985// Exactly one of *HealthCheck or error will be non-nil. Any non-2xx
130986// status code is an error. Response headers are in either
130987// *HealthCheck.ServerResponse.Header or (if a response was returned at
130988// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
130989// to check whether the returned error was because
130990// http.StatusNotModified was returned.
130991func (c *RegionHealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HealthCheck, error) {
130992	gensupport.SetOptions(c.urlParams_, opts...)
130993	res, err := c.doRequest("json")
130994	if res != nil && res.StatusCode == http.StatusNotModified {
130995		if res.Body != nil {
130996			res.Body.Close()
130997		}
130998		return nil, &googleapi.Error{
130999			Code:   res.StatusCode,
131000			Header: res.Header,
131001		}
131002	}
131003	if err != nil {
131004		return nil, err
131005	}
131006	defer googleapi.CloseBody(res)
131007	if err := googleapi.CheckResponse(res); err != nil {
131008		return nil, err
131009	}
131010	ret := &HealthCheck{
131011		ServerResponse: googleapi.ServerResponse{
131012			Header:         res.Header,
131013			HTTPStatusCode: res.StatusCode,
131014		},
131015	}
131016	target := &ret
131017	if err := gensupport.DecodeResponse(target, res); err != nil {
131018		return nil, err
131019	}
131020	return ret, nil
131021	// {
131022	//   "description": "Returns the specified HealthCheck resource. Gets a list of available health checks by making a list() request.",
131023	//   "httpMethod": "GET",
131024	//   "id": "compute.regionHealthChecks.get",
131025	//   "parameterOrder": [
131026	//     "project",
131027	//     "region",
131028	//     "healthCheck"
131029	//   ],
131030	//   "parameters": {
131031	//     "healthCheck": {
131032	//       "description": "Name of the HealthCheck resource to return.",
131033	//       "location": "path",
131034	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
131035	//       "required": true,
131036	//       "type": "string"
131037	//     },
131038	//     "project": {
131039	//       "description": "Project ID for this request.",
131040	//       "location": "path",
131041	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
131042	//       "required": true,
131043	//       "type": "string"
131044	//     },
131045	//     "region": {
131046	//       "description": "Name of the region scoping this request.",
131047	//       "location": "path",
131048	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
131049	//       "required": true,
131050	//       "type": "string"
131051	//     }
131052	//   },
131053	//   "path": "projects/{project}/regions/{region}/healthChecks/{healthCheck}",
131054	//   "response": {
131055	//     "$ref": "HealthCheck"
131056	//   },
131057	//   "scopes": [
131058	//     "https://www.googleapis.com/auth/cloud-platform",
131059	//     "https://www.googleapis.com/auth/compute",
131060	//     "https://www.googleapis.com/auth/compute.readonly"
131061	//   ]
131062	// }
131063
131064}
131065
131066// method id "compute.regionHealthChecks.insert":
131067
131068type RegionHealthChecksInsertCall struct {
131069	s           *Service
131070	project     string
131071	region      string
131072	healthcheck *HealthCheck
131073	urlParams_  gensupport.URLParams
131074	ctx_        context.Context
131075	header_     http.Header
131076}
131077
131078// Insert: Creates a HealthCheck resource in the specified project using
131079// the data included in the request.
131080func (r *RegionHealthChecksService) Insert(project string, region string, healthcheck *HealthCheck) *RegionHealthChecksInsertCall {
131081	c := &RegionHealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
131082	c.project = project
131083	c.region = region
131084	c.healthcheck = healthcheck
131085	return c
131086}
131087
131088// RequestId sets the optional parameter "requestId": An optional
131089// request ID to identify requests. Specify a unique request ID so that
131090// if you must retry your request, the server will know to ignore the
131091// request if it has already been completed.
131092//
131093// For example, consider a situation where you make an initial request
131094// and the request times out. If you make the request again with the
131095// same request ID, the server can check if original operation with the
131096// same request ID was received, and if so, will ignore the second
131097// request. This prevents clients from accidentally creating duplicate
131098// commitments.
131099//
131100// The request ID must be a valid UUID with the exception that zero UUID
131101// is not supported (00000000-0000-0000-0000-000000000000).
131102func (c *RegionHealthChecksInsertCall) RequestId(requestId string) *RegionHealthChecksInsertCall {
131103	c.urlParams_.Set("requestId", requestId)
131104	return c
131105}
131106
131107// Fields allows partial responses to be retrieved. See
131108// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
131109// for more information.
131110func (c *RegionHealthChecksInsertCall) Fields(s ...googleapi.Field) *RegionHealthChecksInsertCall {
131111	c.urlParams_.Set("fields", googleapi.CombineFields(s))
131112	return c
131113}
131114
131115// Context sets the context to be used in this call's Do method. Any
131116// pending HTTP request will be aborted if the provided context is
131117// canceled.
131118func (c *RegionHealthChecksInsertCall) Context(ctx context.Context) *RegionHealthChecksInsertCall {
131119	c.ctx_ = ctx
131120	return c
131121}
131122
131123// Header returns an http.Header that can be modified by the caller to
131124// add HTTP headers to the request.
131125func (c *RegionHealthChecksInsertCall) Header() http.Header {
131126	if c.header_ == nil {
131127		c.header_ = make(http.Header)
131128	}
131129	return c.header_
131130}
131131
131132func (c *RegionHealthChecksInsertCall) doRequest(alt string) (*http.Response, error) {
131133	reqHeaders := make(http.Header)
131134	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
131135	for k, v := range c.header_ {
131136		reqHeaders[k] = v
131137	}
131138	reqHeaders.Set("User-Agent", c.s.userAgent())
131139	var body io.Reader = nil
131140	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
131141	if err != nil {
131142		return nil, err
131143	}
131144	reqHeaders.Set("Content-Type", "application/json")
131145	c.urlParams_.Set("alt", alt)
131146	c.urlParams_.Set("prettyPrint", "false")
131147	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthChecks")
131148	urls += "?" + c.urlParams_.Encode()
131149	req, err := http.NewRequest("POST", urls, body)
131150	if err != nil {
131151		return nil, err
131152	}
131153	req.Header = reqHeaders
131154	googleapi.Expand(req.URL, map[string]string{
131155		"project": c.project,
131156		"region":  c.region,
131157	})
131158	return gensupport.SendRequest(c.ctx_, c.s.client, req)
131159}
131160
131161// Do executes the "compute.regionHealthChecks.insert" call.
131162// Exactly one of *Operation or error will be non-nil. Any non-2xx
131163// status code is an error. Response headers are in either
131164// *Operation.ServerResponse.Header or (if a response was returned at
131165// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
131166// to check whether the returned error was because
131167// http.StatusNotModified was returned.
131168func (c *RegionHealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
131169	gensupport.SetOptions(c.urlParams_, opts...)
131170	res, err := c.doRequest("json")
131171	if res != nil && res.StatusCode == http.StatusNotModified {
131172		if res.Body != nil {
131173			res.Body.Close()
131174		}
131175		return nil, &googleapi.Error{
131176			Code:   res.StatusCode,
131177			Header: res.Header,
131178		}
131179	}
131180	if err != nil {
131181		return nil, err
131182	}
131183	defer googleapi.CloseBody(res)
131184	if err := googleapi.CheckResponse(res); err != nil {
131185		return nil, err
131186	}
131187	ret := &Operation{
131188		ServerResponse: googleapi.ServerResponse{
131189			Header:         res.Header,
131190			HTTPStatusCode: res.StatusCode,
131191		},
131192	}
131193	target := &ret
131194	if err := gensupport.DecodeResponse(target, res); err != nil {
131195		return nil, err
131196	}
131197	return ret, nil
131198	// {
131199	//   "description": "Creates a HealthCheck resource in the specified project using the data included in the request.",
131200	//   "httpMethod": "POST",
131201	//   "id": "compute.regionHealthChecks.insert",
131202	//   "parameterOrder": [
131203	//     "project",
131204	//     "region"
131205	//   ],
131206	//   "parameters": {
131207	//     "project": {
131208	//       "description": "Project ID for this request.",
131209	//       "location": "path",
131210	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
131211	//       "required": true,
131212	//       "type": "string"
131213	//     },
131214	//     "region": {
131215	//       "description": "Name of the region scoping this request.",
131216	//       "location": "path",
131217	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
131218	//       "required": true,
131219	//       "type": "string"
131220	//     },
131221	//     "requestId": {
131222	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
131223	//       "location": "query",
131224	//       "type": "string"
131225	//     }
131226	//   },
131227	//   "path": "projects/{project}/regions/{region}/healthChecks",
131228	//   "request": {
131229	//     "$ref": "HealthCheck"
131230	//   },
131231	//   "response": {
131232	//     "$ref": "Operation"
131233	//   },
131234	//   "scopes": [
131235	//     "https://www.googleapis.com/auth/cloud-platform",
131236	//     "https://www.googleapis.com/auth/compute"
131237	//   ]
131238	// }
131239
131240}
131241
131242// method id "compute.regionHealthChecks.list":
131243
131244type RegionHealthChecksListCall struct {
131245	s            *Service
131246	project      string
131247	region       string
131248	urlParams_   gensupport.URLParams
131249	ifNoneMatch_ string
131250	ctx_         context.Context
131251	header_      http.Header
131252}
131253
131254// List: Retrieves the list of HealthCheck resources available to the
131255// specified project.
131256func (r *RegionHealthChecksService) List(project string, region string) *RegionHealthChecksListCall {
131257	c := &RegionHealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
131258	c.project = project
131259	c.region = region
131260	return c
131261}
131262
131263// Filter sets the optional parameter "filter": A filter expression that
131264// filters resources listed in the response. The expression must specify
131265// the field name, a comparison operator, and the value that you want to
131266// use for filtering. The value must be a string, a number, or a
131267// boolean. The comparison operator must be either `=`, `!=`, `>`, or
131268// `<`.
131269//
131270// For example, if you are filtering Compute Engine instances, you can
131271// exclude instances named `example-instance` by specifying `name !=
131272// example-instance`.
131273//
131274// You can also filter nested fields. For example, you could specify
131275// `scheduling.automaticRestart = false` to include instances only if
131276// they are not scheduled for automatic restarts. You can use filtering
131277// on nested fields to filter based on resource labels.
131278//
131279// To filter on multiple expressions, provide each separate expression
131280// within parentheses. For example: ``` (scheduling.automaticRestart =
131281// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
131282// is an `AND` expression. However, you can include `AND` and `OR`
131283// expressions explicitly. For example: ``` (cpuPlatform = "Intel
131284// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
131285// (scheduling.automaticRestart = true) ```
131286func (c *RegionHealthChecksListCall) Filter(filter string) *RegionHealthChecksListCall {
131287	c.urlParams_.Set("filter", filter)
131288	return c
131289}
131290
131291// MaxResults sets the optional parameter "maxResults": The maximum
131292// number of results per page that should be returned. If the number of
131293// available results is larger than `maxResults`, Compute Engine returns
131294// a `nextPageToken` that can be used to get the next page of results in
131295// subsequent list requests. Acceptable values are `0` to `500`,
131296// inclusive. (Default: `500`)
131297func (c *RegionHealthChecksListCall) MaxResults(maxResults int64) *RegionHealthChecksListCall {
131298	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
131299	return c
131300}
131301
131302// OrderBy sets the optional parameter "orderBy": Sorts list results by
131303// a certain order. By default, results are returned in alphanumerical
131304// order based on the resource name.
131305//
131306// You can also sort results in descending order based on the creation
131307// timestamp using `orderBy="creationTimestamp desc". This sorts
131308// results based on the `creationTimestamp` field in reverse
131309// chronological order (newest result first). Use this to sort resources
131310// like operations so that the newest operation is returned
131311// first.
131312//
131313// Currently, only sorting by `name` or `creationTimestamp desc` is
131314// supported.
131315func (c *RegionHealthChecksListCall) OrderBy(orderBy string) *RegionHealthChecksListCall {
131316	c.urlParams_.Set("orderBy", orderBy)
131317	return c
131318}
131319
131320// PageToken sets the optional parameter "pageToken": Specifies a page
131321// token to use. Set `pageToken` to the `nextPageToken` returned by a
131322// previous list request to get the next page of results.
131323func (c *RegionHealthChecksListCall) PageToken(pageToken string) *RegionHealthChecksListCall {
131324	c.urlParams_.Set("pageToken", pageToken)
131325	return c
131326}
131327
131328// ReturnPartialSuccess sets the optional parameter
131329// "returnPartialSuccess": Opt-in for partial success behavior which
131330// provides partial results in case of failure. The default value is
131331// false.
131332func (c *RegionHealthChecksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionHealthChecksListCall {
131333	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
131334	return c
131335}
131336
131337// Fields allows partial responses to be retrieved. See
131338// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
131339// for more information.
131340func (c *RegionHealthChecksListCall) Fields(s ...googleapi.Field) *RegionHealthChecksListCall {
131341	c.urlParams_.Set("fields", googleapi.CombineFields(s))
131342	return c
131343}
131344
131345// IfNoneMatch sets the optional parameter which makes the operation
131346// fail if the object's ETag matches the given value. This is useful for
131347// getting updates only after the object has changed since the last
131348// request. Use googleapi.IsNotModified to check whether the response
131349// error from Do is the result of In-None-Match.
131350func (c *RegionHealthChecksListCall) IfNoneMatch(entityTag string) *RegionHealthChecksListCall {
131351	c.ifNoneMatch_ = entityTag
131352	return c
131353}
131354
131355// Context sets the context to be used in this call's Do method. Any
131356// pending HTTP request will be aborted if the provided context is
131357// canceled.
131358func (c *RegionHealthChecksListCall) Context(ctx context.Context) *RegionHealthChecksListCall {
131359	c.ctx_ = ctx
131360	return c
131361}
131362
131363// Header returns an http.Header that can be modified by the caller to
131364// add HTTP headers to the request.
131365func (c *RegionHealthChecksListCall) Header() http.Header {
131366	if c.header_ == nil {
131367		c.header_ = make(http.Header)
131368	}
131369	return c.header_
131370}
131371
131372func (c *RegionHealthChecksListCall) doRequest(alt string) (*http.Response, error) {
131373	reqHeaders := make(http.Header)
131374	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
131375	for k, v := range c.header_ {
131376		reqHeaders[k] = v
131377	}
131378	reqHeaders.Set("User-Agent", c.s.userAgent())
131379	if c.ifNoneMatch_ != "" {
131380		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
131381	}
131382	var body io.Reader = nil
131383	c.urlParams_.Set("alt", alt)
131384	c.urlParams_.Set("prettyPrint", "false")
131385	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthChecks")
131386	urls += "?" + c.urlParams_.Encode()
131387	req, err := http.NewRequest("GET", urls, body)
131388	if err != nil {
131389		return nil, err
131390	}
131391	req.Header = reqHeaders
131392	googleapi.Expand(req.URL, map[string]string{
131393		"project": c.project,
131394		"region":  c.region,
131395	})
131396	return gensupport.SendRequest(c.ctx_, c.s.client, req)
131397}
131398
131399// Do executes the "compute.regionHealthChecks.list" call.
131400// Exactly one of *HealthCheckList or error will be non-nil. Any non-2xx
131401// status code is an error. Response headers are in either
131402// *HealthCheckList.ServerResponse.Header or (if a response was returned
131403// at all) in error.(*googleapi.Error).Header. Use
131404// googleapi.IsNotModified to check whether the returned error was
131405// because http.StatusNotModified was returned.
131406func (c *RegionHealthChecksListCall) Do(opts ...googleapi.CallOption) (*HealthCheckList, error) {
131407	gensupport.SetOptions(c.urlParams_, opts...)
131408	res, err := c.doRequest("json")
131409	if res != nil && res.StatusCode == http.StatusNotModified {
131410		if res.Body != nil {
131411			res.Body.Close()
131412		}
131413		return nil, &googleapi.Error{
131414			Code:   res.StatusCode,
131415			Header: res.Header,
131416		}
131417	}
131418	if err != nil {
131419		return nil, err
131420	}
131421	defer googleapi.CloseBody(res)
131422	if err := googleapi.CheckResponse(res); err != nil {
131423		return nil, err
131424	}
131425	ret := &HealthCheckList{
131426		ServerResponse: googleapi.ServerResponse{
131427			Header:         res.Header,
131428			HTTPStatusCode: res.StatusCode,
131429		},
131430	}
131431	target := &ret
131432	if err := gensupport.DecodeResponse(target, res); err != nil {
131433		return nil, err
131434	}
131435	return ret, nil
131436	// {
131437	//   "description": "Retrieves the list of HealthCheck resources available to the specified project.",
131438	//   "httpMethod": "GET",
131439	//   "id": "compute.regionHealthChecks.list",
131440	//   "parameterOrder": [
131441	//     "project",
131442	//     "region"
131443	//   ],
131444	//   "parameters": {
131445	//     "filter": {
131446	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
131447	//       "location": "query",
131448	//       "type": "string"
131449	//     },
131450	//     "maxResults": {
131451	//       "default": "500",
131452	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
131453	//       "format": "uint32",
131454	//       "location": "query",
131455	//       "minimum": "0",
131456	//       "type": "integer"
131457	//     },
131458	//     "orderBy": {
131459	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
131460	//       "location": "query",
131461	//       "type": "string"
131462	//     },
131463	//     "pageToken": {
131464	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
131465	//       "location": "query",
131466	//       "type": "string"
131467	//     },
131468	//     "project": {
131469	//       "description": "Project ID for this request.",
131470	//       "location": "path",
131471	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
131472	//       "required": true,
131473	//       "type": "string"
131474	//     },
131475	//     "region": {
131476	//       "description": "Name of the region scoping this request.",
131477	//       "location": "path",
131478	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
131479	//       "required": true,
131480	//       "type": "string"
131481	//     },
131482	//     "returnPartialSuccess": {
131483	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
131484	//       "location": "query",
131485	//       "type": "boolean"
131486	//     }
131487	//   },
131488	//   "path": "projects/{project}/regions/{region}/healthChecks",
131489	//   "response": {
131490	//     "$ref": "HealthCheckList"
131491	//   },
131492	//   "scopes": [
131493	//     "https://www.googleapis.com/auth/cloud-platform",
131494	//     "https://www.googleapis.com/auth/compute",
131495	//     "https://www.googleapis.com/auth/compute.readonly"
131496	//   ]
131497	// }
131498
131499}
131500
131501// Pages invokes f for each page of results.
131502// A non-nil error returned from f will halt the iteration.
131503// The provided context supersedes any context provided to the Context method.
131504func (c *RegionHealthChecksListCall) Pages(ctx context.Context, f func(*HealthCheckList) error) error {
131505	c.ctx_ = ctx
131506	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
131507	for {
131508		x, err := c.Do()
131509		if err != nil {
131510			return err
131511		}
131512		if err := f(x); err != nil {
131513			return err
131514		}
131515		if x.NextPageToken == "" {
131516			return nil
131517		}
131518		c.PageToken(x.NextPageToken)
131519	}
131520}
131521
131522// method id "compute.regionHealthChecks.patch":
131523
131524type RegionHealthChecksPatchCall struct {
131525	s           *Service
131526	project     string
131527	region      string
131528	healthCheck string
131529	healthcheck *HealthCheck
131530	urlParams_  gensupport.URLParams
131531	ctx_        context.Context
131532	header_     http.Header
131533}
131534
131535// Patch: Updates a HealthCheck resource in the specified project using
131536// the data included in the request. This method supports PATCH
131537// semantics and uses the JSON merge patch format and processing rules.
131538func (r *RegionHealthChecksService) Patch(project string, region string, healthCheck string, healthcheck *HealthCheck) *RegionHealthChecksPatchCall {
131539	c := &RegionHealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
131540	c.project = project
131541	c.region = region
131542	c.healthCheck = healthCheck
131543	c.healthcheck = healthcheck
131544	return c
131545}
131546
131547// RequestId sets the optional parameter "requestId": An optional
131548// request ID to identify requests. Specify a unique request ID so that
131549// if you must retry your request, the server will know to ignore the
131550// request if it has already been completed.
131551//
131552// For example, consider a situation where you make an initial request
131553// and the request times out. If you make the request again with the
131554// same request ID, the server can check if original operation with the
131555// same request ID was received, and if so, will ignore the second
131556// request. This prevents clients from accidentally creating duplicate
131557// commitments.
131558//
131559// The request ID must be a valid UUID with the exception that zero UUID
131560// is not supported (00000000-0000-0000-0000-000000000000).
131561func (c *RegionHealthChecksPatchCall) RequestId(requestId string) *RegionHealthChecksPatchCall {
131562	c.urlParams_.Set("requestId", requestId)
131563	return c
131564}
131565
131566// Fields allows partial responses to be retrieved. See
131567// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
131568// for more information.
131569func (c *RegionHealthChecksPatchCall) Fields(s ...googleapi.Field) *RegionHealthChecksPatchCall {
131570	c.urlParams_.Set("fields", googleapi.CombineFields(s))
131571	return c
131572}
131573
131574// Context sets the context to be used in this call's Do method. Any
131575// pending HTTP request will be aborted if the provided context is
131576// canceled.
131577func (c *RegionHealthChecksPatchCall) Context(ctx context.Context) *RegionHealthChecksPatchCall {
131578	c.ctx_ = ctx
131579	return c
131580}
131581
131582// Header returns an http.Header that can be modified by the caller to
131583// add HTTP headers to the request.
131584func (c *RegionHealthChecksPatchCall) Header() http.Header {
131585	if c.header_ == nil {
131586		c.header_ = make(http.Header)
131587	}
131588	return c.header_
131589}
131590
131591func (c *RegionHealthChecksPatchCall) doRequest(alt string) (*http.Response, error) {
131592	reqHeaders := make(http.Header)
131593	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
131594	for k, v := range c.header_ {
131595		reqHeaders[k] = v
131596	}
131597	reqHeaders.Set("User-Agent", c.s.userAgent())
131598	var body io.Reader = nil
131599	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
131600	if err != nil {
131601		return nil, err
131602	}
131603	reqHeaders.Set("Content-Type", "application/json")
131604	c.urlParams_.Set("alt", alt)
131605	c.urlParams_.Set("prettyPrint", "false")
131606	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthChecks/{healthCheck}")
131607	urls += "?" + c.urlParams_.Encode()
131608	req, err := http.NewRequest("PATCH", urls, body)
131609	if err != nil {
131610		return nil, err
131611	}
131612	req.Header = reqHeaders
131613	googleapi.Expand(req.URL, map[string]string{
131614		"project":     c.project,
131615		"region":      c.region,
131616		"healthCheck": c.healthCheck,
131617	})
131618	return gensupport.SendRequest(c.ctx_, c.s.client, req)
131619}
131620
131621// Do executes the "compute.regionHealthChecks.patch" call.
131622// Exactly one of *Operation or error will be non-nil. Any non-2xx
131623// status code is an error. Response headers are in either
131624// *Operation.ServerResponse.Header or (if a response was returned at
131625// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
131626// to check whether the returned error was because
131627// http.StatusNotModified was returned.
131628func (c *RegionHealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
131629	gensupport.SetOptions(c.urlParams_, opts...)
131630	res, err := c.doRequest("json")
131631	if res != nil && res.StatusCode == http.StatusNotModified {
131632		if res.Body != nil {
131633			res.Body.Close()
131634		}
131635		return nil, &googleapi.Error{
131636			Code:   res.StatusCode,
131637			Header: res.Header,
131638		}
131639	}
131640	if err != nil {
131641		return nil, err
131642	}
131643	defer googleapi.CloseBody(res)
131644	if err := googleapi.CheckResponse(res); err != nil {
131645		return nil, err
131646	}
131647	ret := &Operation{
131648		ServerResponse: googleapi.ServerResponse{
131649			Header:         res.Header,
131650			HTTPStatusCode: res.StatusCode,
131651		},
131652	}
131653	target := &ret
131654	if err := gensupport.DecodeResponse(target, res); err != nil {
131655		return nil, err
131656	}
131657	return ret, nil
131658	// {
131659	//   "description": "Updates a HealthCheck resource in the specified project using the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.",
131660	//   "httpMethod": "PATCH",
131661	//   "id": "compute.regionHealthChecks.patch",
131662	//   "parameterOrder": [
131663	//     "project",
131664	//     "region",
131665	//     "healthCheck"
131666	//   ],
131667	//   "parameters": {
131668	//     "healthCheck": {
131669	//       "description": "Name of the HealthCheck resource to patch.",
131670	//       "location": "path",
131671	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
131672	//       "required": true,
131673	//       "type": "string"
131674	//     },
131675	//     "project": {
131676	//       "description": "Project ID for this request.",
131677	//       "location": "path",
131678	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
131679	//       "required": true,
131680	//       "type": "string"
131681	//     },
131682	//     "region": {
131683	//       "description": "Name of the region scoping this request.",
131684	//       "location": "path",
131685	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
131686	//       "required": true,
131687	//       "type": "string"
131688	//     },
131689	//     "requestId": {
131690	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
131691	//       "location": "query",
131692	//       "type": "string"
131693	//     }
131694	//   },
131695	//   "path": "projects/{project}/regions/{region}/healthChecks/{healthCheck}",
131696	//   "request": {
131697	//     "$ref": "HealthCheck"
131698	//   },
131699	//   "response": {
131700	//     "$ref": "Operation"
131701	//   },
131702	//   "scopes": [
131703	//     "https://www.googleapis.com/auth/cloud-platform",
131704	//     "https://www.googleapis.com/auth/compute"
131705	//   ]
131706	// }
131707
131708}
131709
131710// method id "compute.regionHealthChecks.testIamPermissions":
131711
131712type RegionHealthChecksTestIamPermissionsCall struct {
131713	s                      *Service
131714	project                string
131715	region                 string
131716	resource               string
131717	testpermissionsrequest *TestPermissionsRequest
131718	urlParams_             gensupport.URLParams
131719	ctx_                   context.Context
131720	header_                http.Header
131721}
131722
131723// TestIamPermissions: Returns permissions that a caller has on the
131724// specified resource.
131725func (r *RegionHealthChecksService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionHealthChecksTestIamPermissionsCall {
131726	c := &RegionHealthChecksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
131727	c.project = project
131728	c.region = region
131729	c.resource = resource
131730	c.testpermissionsrequest = testpermissionsrequest
131731	return c
131732}
131733
131734// Fields allows partial responses to be retrieved. See
131735// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
131736// for more information.
131737func (c *RegionHealthChecksTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionHealthChecksTestIamPermissionsCall {
131738	c.urlParams_.Set("fields", googleapi.CombineFields(s))
131739	return c
131740}
131741
131742// Context sets the context to be used in this call's Do method. Any
131743// pending HTTP request will be aborted if the provided context is
131744// canceled.
131745func (c *RegionHealthChecksTestIamPermissionsCall) Context(ctx context.Context) *RegionHealthChecksTestIamPermissionsCall {
131746	c.ctx_ = ctx
131747	return c
131748}
131749
131750// Header returns an http.Header that can be modified by the caller to
131751// add HTTP headers to the request.
131752func (c *RegionHealthChecksTestIamPermissionsCall) Header() http.Header {
131753	if c.header_ == nil {
131754		c.header_ = make(http.Header)
131755	}
131756	return c.header_
131757}
131758
131759func (c *RegionHealthChecksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
131760	reqHeaders := make(http.Header)
131761	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
131762	for k, v := range c.header_ {
131763		reqHeaders[k] = v
131764	}
131765	reqHeaders.Set("User-Agent", c.s.userAgent())
131766	var body io.Reader = nil
131767	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
131768	if err != nil {
131769		return nil, err
131770	}
131771	reqHeaders.Set("Content-Type", "application/json")
131772	c.urlParams_.Set("alt", alt)
131773	c.urlParams_.Set("prettyPrint", "false")
131774	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthChecks/{resource}/testIamPermissions")
131775	urls += "?" + c.urlParams_.Encode()
131776	req, err := http.NewRequest("POST", urls, body)
131777	if err != nil {
131778		return nil, err
131779	}
131780	req.Header = reqHeaders
131781	googleapi.Expand(req.URL, map[string]string{
131782		"project":  c.project,
131783		"region":   c.region,
131784		"resource": c.resource,
131785	})
131786	return gensupport.SendRequest(c.ctx_, c.s.client, req)
131787}
131788
131789// Do executes the "compute.regionHealthChecks.testIamPermissions" call.
131790// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
131791// non-2xx status code is an error. Response headers are in either
131792// *TestPermissionsResponse.ServerResponse.Header or (if a response was
131793// returned at all) in error.(*googleapi.Error).Header. Use
131794// googleapi.IsNotModified to check whether the returned error was
131795// because http.StatusNotModified was returned.
131796func (c *RegionHealthChecksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
131797	gensupport.SetOptions(c.urlParams_, opts...)
131798	res, err := c.doRequest("json")
131799	if res != nil && res.StatusCode == http.StatusNotModified {
131800		if res.Body != nil {
131801			res.Body.Close()
131802		}
131803		return nil, &googleapi.Error{
131804			Code:   res.StatusCode,
131805			Header: res.Header,
131806		}
131807	}
131808	if err != nil {
131809		return nil, err
131810	}
131811	defer googleapi.CloseBody(res)
131812	if err := googleapi.CheckResponse(res); err != nil {
131813		return nil, err
131814	}
131815	ret := &TestPermissionsResponse{
131816		ServerResponse: googleapi.ServerResponse{
131817			Header:         res.Header,
131818			HTTPStatusCode: res.StatusCode,
131819		},
131820	}
131821	target := &ret
131822	if err := gensupport.DecodeResponse(target, res); err != nil {
131823		return nil, err
131824	}
131825	return ret, nil
131826	// {
131827	//   "description": "Returns permissions that a caller has on the specified resource.",
131828	//   "httpMethod": "POST",
131829	//   "id": "compute.regionHealthChecks.testIamPermissions",
131830	//   "parameterOrder": [
131831	//     "project",
131832	//     "region",
131833	//     "resource"
131834	//   ],
131835	//   "parameters": {
131836	//     "project": {
131837	//       "description": "Project ID for this request.",
131838	//       "location": "path",
131839	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
131840	//       "required": true,
131841	//       "type": "string"
131842	//     },
131843	//     "region": {
131844	//       "description": "The name of the region for this request.",
131845	//       "location": "path",
131846	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
131847	//       "required": true,
131848	//       "type": "string"
131849	//     },
131850	//     "resource": {
131851	//       "description": "Name or id of the resource for this request.",
131852	//       "location": "path",
131853	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
131854	//       "required": true,
131855	//       "type": "string"
131856	//     }
131857	//   },
131858	//   "path": "projects/{project}/regions/{region}/healthChecks/{resource}/testIamPermissions",
131859	//   "request": {
131860	//     "$ref": "TestPermissionsRequest"
131861	//   },
131862	//   "response": {
131863	//     "$ref": "TestPermissionsResponse"
131864	//   },
131865	//   "scopes": [
131866	//     "https://www.googleapis.com/auth/cloud-platform",
131867	//     "https://www.googleapis.com/auth/compute",
131868	//     "https://www.googleapis.com/auth/compute.readonly"
131869	//   ]
131870	// }
131871
131872}
131873
131874// method id "compute.regionHealthChecks.update":
131875
131876type RegionHealthChecksUpdateCall struct {
131877	s           *Service
131878	project     string
131879	region      string
131880	healthCheck string
131881	healthcheck *HealthCheck
131882	urlParams_  gensupport.URLParams
131883	ctx_        context.Context
131884	header_     http.Header
131885}
131886
131887// Update: Updates a HealthCheck resource in the specified project using
131888// the data included in the request.
131889func (r *RegionHealthChecksService) Update(project string, region string, healthCheck string, healthcheck *HealthCheck) *RegionHealthChecksUpdateCall {
131890	c := &RegionHealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
131891	c.project = project
131892	c.region = region
131893	c.healthCheck = healthCheck
131894	c.healthcheck = healthcheck
131895	return c
131896}
131897
131898// RequestId sets the optional parameter "requestId": An optional
131899// request ID to identify requests. Specify a unique request ID so that
131900// if you must retry your request, the server will know to ignore the
131901// request if it has already been completed.
131902//
131903// For example, consider a situation where you make an initial request
131904// and the request times out. If you make the request again with the
131905// same request ID, the server can check if original operation with the
131906// same request ID was received, and if so, will ignore the second
131907// request. This prevents clients from accidentally creating duplicate
131908// commitments.
131909//
131910// The request ID must be a valid UUID with the exception that zero UUID
131911// is not supported (00000000-0000-0000-0000-000000000000).
131912func (c *RegionHealthChecksUpdateCall) RequestId(requestId string) *RegionHealthChecksUpdateCall {
131913	c.urlParams_.Set("requestId", requestId)
131914	return c
131915}
131916
131917// Fields allows partial responses to be retrieved. See
131918// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
131919// for more information.
131920func (c *RegionHealthChecksUpdateCall) Fields(s ...googleapi.Field) *RegionHealthChecksUpdateCall {
131921	c.urlParams_.Set("fields", googleapi.CombineFields(s))
131922	return c
131923}
131924
131925// Context sets the context to be used in this call's Do method. Any
131926// pending HTTP request will be aborted if the provided context is
131927// canceled.
131928func (c *RegionHealthChecksUpdateCall) Context(ctx context.Context) *RegionHealthChecksUpdateCall {
131929	c.ctx_ = ctx
131930	return c
131931}
131932
131933// Header returns an http.Header that can be modified by the caller to
131934// add HTTP headers to the request.
131935func (c *RegionHealthChecksUpdateCall) Header() http.Header {
131936	if c.header_ == nil {
131937		c.header_ = make(http.Header)
131938	}
131939	return c.header_
131940}
131941
131942func (c *RegionHealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) {
131943	reqHeaders := make(http.Header)
131944	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
131945	for k, v := range c.header_ {
131946		reqHeaders[k] = v
131947	}
131948	reqHeaders.Set("User-Agent", c.s.userAgent())
131949	var body io.Reader = nil
131950	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
131951	if err != nil {
131952		return nil, err
131953	}
131954	reqHeaders.Set("Content-Type", "application/json")
131955	c.urlParams_.Set("alt", alt)
131956	c.urlParams_.Set("prettyPrint", "false")
131957	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthChecks/{healthCheck}")
131958	urls += "?" + c.urlParams_.Encode()
131959	req, err := http.NewRequest("PUT", urls, body)
131960	if err != nil {
131961		return nil, err
131962	}
131963	req.Header = reqHeaders
131964	googleapi.Expand(req.URL, map[string]string{
131965		"project":     c.project,
131966		"region":      c.region,
131967		"healthCheck": c.healthCheck,
131968	})
131969	return gensupport.SendRequest(c.ctx_, c.s.client, req)
131970}
131971
131972// Do executes the "compute.regionHealthChecks.update" call.
131973// Exactly one of *Operation or error will be non-nil. Any non-2xx
131974// status code is an error. Response headers are in either
131975// *Operation.ServerResponse.Header or (if a response was returned at
131976// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
131977// to check whether the returned error was because
131978// http.StatusNotModified was returned.
131979func (c *RegionHealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
131980	gensupport.SetOptions(c.urlParams_, opts...)
131981	res, err := c.doRequest("json")
131982	if res != nil && res.StatusCode == http.StatusNotModified {
131983		if res.Body != nil {
131984			res.Body.Close()
131985		}
131986		return nil, &googleapi.Error{
131987			Code:   res.StatusCode,
131988			Header: res.Header,
131989		}
131990	}
131991	if err != nil {
131992		return nil, err
131993	}
131994	defer googleapi.CloseBody(res)
131995	if err := googleapi.CheckResponse(res); err != nil {
131996		return nil, err
131997	}
131998	ret := &Operation{
131999		ServerResponse: googleapi.ServerResponse{
132000			Header:         res.Header,
132001			HTTPStatusCode: res.StatusCode,
132002		},
132003	}
132004	target := &ret
132005	if err := gensupport.DecodeResponse(target, res); err != nil {
132006		return nil, err
132007	}
132008	return ret, nil
132009	// {
132010	//   "description": "Updates a HealthCheck resource in the specified project using the data included in the request.",
132011	//   "httpMethod": "PUT",
132012	//   "id": "compute.regionHealthChecks.update",
132013	//   "parameterOrder": [
132014	//     "project",
132015	//     "region",
132016	//     "healthCheck"
132017	//   ],
132018	//   "parameters": {
132019	//     "healthCheck": {
132020	//       "description": "Name of the HealthCheck resource to update.",
132021	//       "location": "path",
132022	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
132023	//       "required": true,
132024	//       "type": "string"
132025	//     },
132026	//     "project": {
132027	//       "description": "Project ID for this request.",
132028	//       "location": "path",
132029	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
132030	//       "required": true,
132031	//       "type": "string"
132032	//     },
132033	//     "region": {
132034	//       "description": "Name of the region scoping this request.",
132035	//       "location": "path",
132036	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
132037	//       "required": true,
132038	//       "type": "string"
132039	//     },
132040	//     "requestId": {
132041	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
132042	//       "location": "query",
132043	//       "type": "string"
132044	//     }
132045	//   },
132046	//   "path": "projects/{project}/regions/{region}/healthChecks/{healthCheck}",
132047	//   "request": {
132048	//     "$ref": "HealthCheck"
132049	//   },
132050	//   "response": {
132051	//     "$ref": "Operation"
132052	//   },
132053	//   "scopes": [
132054	//     "https://www.googleapis.com/auth/cloud-platform",
132055	//     "https://www.googleapis.com/auth/compute"
132056	//   ]
132057	// }
132058
132059}
132060
132061// method id "compute.regionInstanceGroupManagers.abandonInstances":
132062
132063type RegionInstanceGroupManagersAbandonInstancesCall struct {
132064	s                                                  *Service
132065	project                                            string
132066	region                                             string
132067	instanceGroupManager                               string
132068	regioninstancegroupmanagersabandoninstancesrequest *RegionInstanceGroupManagersAbandonInstancesRequest
132069	urlParams_                                         gensupport.URLParams
132070	ctx_                                               context.Context
132071	header_                                            http.Header
132072}
132073
132074// AbandonInstances: Flags the specified instances to be immediately
132075// removed from the managed instance group. Abandoning an instance does
132076// not delete the instance, but it does remove the instance from any
132077// target pools that are applied by the managed instance group. This
132078// method reduces the targetSize of the managed instance group by the
132079// number of instances that you abandon. This operation is marked as
132080// DONE when the action is scheduled even if the instances have not yet
132081// been removed from the group. You must separately verify the status of
132082// the abandoning action with the listmanagedinstances method.
132083//
132084// If the group is part of a backend service that has enabled connection
132085// draining, it can take up to 60 seconds after the connection draining
132086// duration has elapsed before the VM instance is removed or
132087// deleted.
132088//
132089// You can specify a maximum of 1000 instances with this method per
132090// request.
132091func (r *RegionInstanceGroupManagersService) AbandonInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersabandoninstancesrequest *RegionInstanceGroupManagersAbandonInstancesRequest) *RegionInstanceGroupManagersAbandonInstancesCall {
132092	c := &RegionInstanceGroupManagersAbandonInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132093	c.project = project
132094	c.region = region
132095	c.instanceGroupManager = instanceGroupManager
132096	c.regioninstancegroupmanagersabandoninstancesrequest = regioninstancegroupmanagersabandoninstancesrequest
132097	return c
132098}
132099
132100// RequestId sets the optional parameter "requestId": An optional
132101// request ID to identify requests. Specify a unique request ID so that
132102// if you must retry your request, the server will know to ignore the
132103// request if it has already been completed.
132104//
132105// For example, consider a situation where you make an initial request
132106// and the request times out. If you make the request again with the
132107// same request ID, the server can check if original operation with the
132108// same request ID was received, and if so, will ignore the second
132109// request. This prevents clients from accidentally creating duplicate
132110// commitments.
132111//
132112// The request ID must be a valid UUID with the exception that zero UUID
132113// is not supported (00000000-0000-0000-0000-000000000000).
132114func (c *RegionInstanceGroupManagersAbandonInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersAbandonInstancesCall {
132115	c.urlParams_.Set("requestId", requestId)
132116	return c
132117}
132118
132119// Fields allows partial responses to be retrieved. See
132120// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132121// for more information.
132122func (c *RegionInstanceGroupManagersAbandonInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersAbandonInstancesCall {
132123	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132124	return c
132125}
132126
132127// Context sets the context to be used in this call's Do method. Any
132128// pending HTTP request will be aborted if the provided context is
132129// canceled.
132130func (c *RegionInstanceGroupManagersAbandonInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersAbandonInstancesCall {
132131	c.ctx_ = ctx
132132	return c
132133}
132134
132135// Header returns an http.Header that can be modified by the caller to
132136// add HTTP headers to the request.
132137func (c *RegionInstanceGroupManagersAbandonInstancesCall) Header() http.Header {
132138	if c.header_ == nil {
132139		c.header_ = make(http.Header)
132140	}
132141	return c.header_
132142}
132143
132144func (c *RegionInstanceGroupManagersAbandonInstancesCall) doRequest(alt string) (*http.Response, error) {
132145	reqHeaders := make(http.Header)
132146	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
132147	for k, v := range c.header_ {
132148		reqHeaders[k] = v
132149	}
132150	reqHeaders.Set("User-Agent", c.s.userAgent())
132151	var body io.Reader = nil
132152	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagersabandoninstancesrequest)
132153	if err != nil {
132154		return nil, err
132155	}
132156	reqHeaders.Set("Content-Type", "application/json")
132157	c.urlParams_.Set("alt", alt)
132158	c.urlParams_.Set("prettyPrint", "false")
132159	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/abandonInstances")
132160	urls += "?" + c.urlParams_.Encode()
132161	req, err := http.NewRequest("POST", urls, body)
132162	if err != nil {
132163		return nil, err
132164	}
132165	req.Header = reqHeaders
132166	googleapi.Expand(req.URL, map[string]string{
132167		"project":              c.project,
132168		"region":               c.region,
132169		"instanceGroupManager": c.instanceGroupManager,
132170	})
132171	return gensupport.SendRequest(c.ctx_, c.s.client, req)
132172}
132173
132174// Do executes the "compute.regionInstanceGroupManagers.abandonInstances" call.
132175// Exactly one of *Operation or error will be non-nil. Any non-2xx
132176// status code is an error. Response headers are in either
132177// *Operation.ServerResponse.Header or (if a response was returned at
132178// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
132179// to check whether the returned error was because
132180// http.StatusNotModified was returned.
132181func (c *RegionInstanceGroupManagersAbandonInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
132182	gensupport.SetOptions(c.urlParams_, opts...)
132183	res, err := c.doRequest("json")
132184	if res != nil && res.StatusCode == http.StatusNotModified {
132185		if res.Body != nil {
132186			res.Body.Close()
132187		}
132188		return nil, &googleapi.Error{
132189			Code:   res.StatusCode,
132190			Header: res.Header,
132191		}
132192	}
132193	if err != nil {
132194		return nil, err
132195	}
132196	defer googleapi.CloseBody(res)
132197	if err := googleapi.CheckResponse(res); err != nil {
132198		return nil, err
132199	}
132200	ret := &Operation{
132201		ServerResponse: googleapi.ServerResponse{
132202			Header:         res.Header,
132203			HTTPStatusCode: res.StatusCode,
132204		},
132205	}
132206	target := &ret
132207	if err := gensupport.DecodeResponse(target, res); err != nil {
132208		return nil, err
132209	}
132210	return ret, nil
132211	// {
132212	//   "description": "Flags the specified instances to be immediately removed from the managed instance group. Abandoning an instance does not delete the instance, but it does remove the instance from any target pools that are applied by the managed instance group. This method reduces the targetSize of the managed instance group by the number of instances that you abandon. This operation is marked as DONE when the action is scheduled even if the instances have not yet been removed from the group. You must separately verify the status of the abandoning action with the listmanagedinstances method.\n\nIf the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted.\n\nYou can specify a maximum of 1000 instances with this method per request.",
132213	//   "httpMethod": "POST",
132214	//   "id": "compute.regionInstanceGroupManagers.abandonInstances",
132215	//   "parameterOrder": [
132216	//     "project",
132217	//     "region",
132218	//     "instanceGroupManager"
132219	//   ],
132220	//   "parameters": {
132221	//     "instanceGroupManager": {
132222	//       "description": "Name of the managed instance group.",
132223	//       "location": "path",
132224	//       "required": true,
132225	//       "type": "string"
132226	//     },
132227	//     "project": {
132228	//       "description": "Project ID for this request.",
132229	//       "location": "path",
132230	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
132231	//       "required": true,
132232	//       "type": "string"
132233	//     },
132234	//     "region": {
132235	//       "description": "Name of the region scoping this request.",
132236	//       "location": "path",
132237	//       "required": true,
132238	//       "type": "string"
132239	//     },
132240	//     "requestId": {
132241	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
132242	//       "location": "query",
132243	//       "type": "string"
132244	//     }
132245	//   },
132246	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/abandonInstances",
132247	//   "request": {
132248	//     "$ref": "RegionInstanceGroupManagersAbandonInstancesRequest"
132249	//   },
132250	//   "response": {
132251	//     "$ref": "Operation"
132252	//   },
132253	//   "scopes": [
132254	//     "https://www.googleapis.com/auth/cloud-platform",
132255	//     "https://www.googleapis.com/auth/compute"
132256	//   ]
132257	// }
132258
132259}
132260
132261// method id "compute.regionInstanceGroupManagers.applyUpdatesToInstances":
132262
132263type RegionInstanceGroupManagersApplyUpdatesToInstancesCall struct {
132264	s                                              *Service
132265	project                                        string
132266	region                                         string
132267	instanceGroupManager                           string
132268	regioninstancegroupmanagersapplyupdatesrequest *RegionInstanceGroupManagersApplyUpdatesRequest
132269	urlParams_                                     gensupport.URLParams
132270	ctx_                                           context.Context
132271	header_                                        http.Header
132272}
132273
132274// ApplyUpdatesToInstances: Apply updates to selected instances the
132275// managed instance group.
132276func (r *RegionInstanceGroupManagersService) ApplyUpdatesToInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersapplyupdatesrequest *RegionInstanceGroupManagersApplyUpdatesRequest) *RegionInstanceGroupManagersApplyUpdatesToInstancesCall {
132277	c := &RegionInstanceGroupManagersApplyUpdatesToInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132278	c.project = project
132279	c.region = region
132280	c.instanceGroupManager = instanceGroupManager
132281	c.regioninstancegroupmanagersapplyupdatesrequest = regioninstancegroupmanagersapplyupdatesrequest
132282	return c
132283}
132284
132285// Fields allows partial responses to be retrieved. See
132286// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132287// for more information.
132288func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersApplyUpdatesToInstancesCall {
132289	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132290	return c
132291}
132292
132293// Context sets the context to be used in this call's Do method. Any
132294// pending HTTP request will be aborted if the provided context is
132295// canceled.
132296func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersApplyUpdatesToInstancesCall {
132297	c.ctx_ = ctx
132298	return c
132299}
132300
132301// Header returns an http.Header that can be modified by the caller to
132302// add HTTP headers to the request.
132303func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) Header() http.Header {
132304	if c.header_ == nil {
132305		c.header_ = make(http.Header)
132306	}
132307	return c.header_
132308}
132309
132310func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) doRequest(alt string) (*http.Response, error) {
132311	reqHeaders := make(http.Header)
132312	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
132313	for k, v := range c.header_ {
132314		reqHeaders[k] = v
132315	}
132316	reqHeaders.Set("User-Agent", c.s.userAgent())
132317	var body io.Reader = nil
132318	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagersapplyupdatesrequest)
132319	if err != nil {
132320		return nil, err
132321	}
132322	reqHeaders.Set("Content-Type", "application/json")
132323	c.urlParams_.Set("alt", alt)
132324	c.urlParams_.Set("prettyPrint", "false")
132325	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances")
132326	urls += "?" + c.urlParams_.Encode()
132327	req, err := http.NewRequest("POST", urls, body)
132328	if err != nil {
132329		return nil, err
132330	}
132331	req.Header = reqHeaders
132332	googleapi.Expand(req.URL, map[string]string{
132333		"project":              c.project,
132334		"region":               c.region,
132335		"instanceGroupManager": c.instanceGroupManager,
132336	})
132337	return gensupport.SendRequest(c.ctx_, c.s.client, req)
132338}
132339
132340// Do executes the "compute.regionInstanceGroupManagers.applyUpdatesToInstances" call.
132341// Exactly one of *Operation or error will be non-nil. Any non-2xx
132342// status code is an error. Response headers are in either
132343// *Operation.ServerResponse.Header or (if a response was returned at
132344// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
132345// to check whether the returned error was because
132346// http.StatusNotModified was returned.
132347func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
132348	gensupport.SetOptions(c.urlParams_, opts...)
132349	res, err := c.doRequest("json")
132350	if res != nil && res.StatusCode == http.StatusNotModified {
132351		if res.Body != nil {
132352			res.Body.Close()
132353		}
132354		return nil, &googleapi.Error{
132355			Code:   res.StatusCode,
132356			Header: res.Header,
132357		}
132358	}
132359	if err != nil {
132360		return nil, err
132361	}
132362	defer googleapi.CloseBody(res)
132363	if err := googleapi.CheckResponse(res); err != nil {
132364		return nil, err
132365	}
132366	ret := &Operation{
132367		ServerResponse: googleapi.ServerResponse{
132368			Header:         res.Header,
132369			HTTPStatusCode: res.StatusCode,
132370		},
132371	}
132372	target := &ret
132373	if err := gensupport.DecodeResponse(target, res); err != nil {
132374		return nil, err
132375	}
132376	return ret, nil
132377	// {
132378	//   "description": "Apply updates to selected instances the managed instance group.",
132379	//   "httpMethod": "POST",
132380	//   "id": "compute.regionInstanceGroupManagers.applyUpdatesToInstances",
132381	//   "parameterOrder": [
132382	//     "project",
132383	//     "region",
132384	//     "instanceGroupManager"
132385	//   ],
132386	//   "parameters": {
132387	//     "instanceGroupManager": {
132388	//       "description": "The name of the managed instance group, should conform to RFC1035.",
132389	//       "location": "path",
132390	//       "required": true,
132391	//       "type": "string"
132392	//     },
132393	//     "project": {
132394	//       "description": "Project ID for this request.",
132395	//       "location": "path",
132396	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
132397	//       "required": true,
132398	//       "type": "string"
132399	//     },
132400	//     "region": {
132401	//       "description": "Name of the region scoping this request, should conform to RFC1035.",
132402	//       "location": "path",
132403	//       "required": true,
132404	//       "type": "string"
132405	//     }
132406	//   },
132407	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances",
132408	//   "request": {
132409	//     "$ref": "RegionInstanceGroupManagersApplyUpdatesRequest"
132410	//   },
132411	//   "response": {
132412	//     "$ref": "Operation"
132413	//   },
132414	//   "scopes": [
132415	//     "https://www.googleapis.com/auth/cloud-platform",
132416	//     "https://www.googleapis.com/auth/compute"
132417	//   ]
132418	// }
132419
132420}
132421
132422// method id "compute.regionInstanceGroupManagers.createInstances":
132423
132424type RegionInstanceGroupManagersCreateInstancesCall struct {
132425	s                                                 *Service
132426	project                                           string
132427	region                                            string
132428	instanceGroupManager                              string
132429	regioninstancegroupmanagerscreateinstancesrequest *RegionInstanceGroupManagersCreateInstancesRequest
132430	urlParams_                                        gensupport.URLParams
132431	ctx_                                              context.Context
132432	header_                                           http.Header
132433}
132434
132435// CreateInstances: Creates instances with per-instance configs in this
132436// regional managed instance group. Instances are created using the
132437// current instance template. The create instances operation is marked
132438// DONE if the createInstances request is successful. The underlying
132439// actions take additional time. You must separately verify the status
132440// of the creating or actions with the listmanagedinstances method.
132441func (r *RegionInstanceGroupManagersService) CreateInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagerscreateinstancesrequest *RegionInstanceGroupManagersCreateInstancesRequest) *RegionInstanceGroupManagersCreateInstancesCall {
132442	c := &RegionInstanceGroupManagersCreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132443	c.project = project
132444	c.region = region
132445	c.instanceGroupManager = instanceGroupManager
132446	c.regioninstancegroupmanagerscreateinstancesrequest = regioninstancegroupmanagerscreateinstancesrequest
132447	return c
132448}
132449
132450// RequestId sets the optional parameter "requestId": An optional
132451// request ID to identify requests. Specify a unique request ID so that
132452// if you must retry your request, the server will know to ignore the
132453// request if it has already been completed.
132454//
132455// For example, consider a situation where you make an initial request
132456// and the request times out. If you make the request again with the
132457// same request ID, the server can check if original operation with the
132458// same request ID was received, and if so, will ignore the second
132459// request.
132460//
132461// The request ID must be a valid UUID with the exception that zero UUID
132462// is not supported (00000000-0000-0000-0000-000000000000).
132463func (c *RegionInstanceGroupManagersCreateInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersCreateInstancesCall {
132464	c.urlParams_.Set("requestId", requestId)
132465	return c
132466}
132467
132468// Fields allows partial responses to be retrieved. See
132469// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132470// for more information.
132471func (c *RegionInstanceGroupManagersCreateInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersCreateInstancesCall {
132472	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132473	return c
132474}
132475
132476// Context sets the context to be used in this call's Do method. Any
132477// pending HTTP request will be aborted if the provided context is
132478// canceled.
132479func (c *RegionInstanceGroupManagersCreateInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersCreateInstancesCall {
132480	c.ctx_ = ctx
132481	return c
132482}
132483
132484// Header returns an http.Header that can be modified by the caller to
132485// add HTTP headers to the request.
132486func (c *RegionInstanceGroupManagersCreateInstancesCall) Header() http.Header {
132487	if c.header_ == nil {
132488		c.header_ = make(http.Header)
132489	}
132490	return c.header_
132491}
132492
132493func (c *RegionInstanceGroupManagersCreateInstancesCall) doRequest(alt string) (*http.Response, error) {
132494	reqHeaders := make(http.Header)
132495	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
132496	for k, v := range c.header_ {
132497		reqHeaders[k] = v
132498	}
132499	reqHeaders.Set("User-Agent", c.s.userAgent())
132500	var body io.Reader = nil
132501	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerscreateinstancesrequest)
132502	if err != nil {
132503		return nil, err
132504	}
132505	reqHeaders.Set("Content-Type", "application/json")
132506	c.urlParams_.Set("alt", alt)
132507	c.urlParams_.Set("prettyPrint", "false")
132508	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/createInstances")
132509	urls += "?" + c.urlParams_.Encode()
132510	req, err := http.NewRequest("POST", urls, body)
132511	if err != nil {
132512		return nil, err
132513	}
132514	req.Header = reqHeaders
132515	googleapi.Expand(req.URL, map[string]string{
132516		"project":              c.project,
132517		"region":               c.region,
132518		"instanceGroupManager": c.instanceGroupManager,
132519	})
132520	return gensupport.SendRequest(c.ctx_, c.s.client, req)
132521}
132522
132523// Do executes the "compute.regionInstanceGroupManagers.createInstances" call.
132524// Exactly one of *Operation or error will be non-nil. Any non-2xx
132525// status code is an error. Response headers are in either
132526// *Operation.ServerResponse.Header or (if a response was returned at
132527// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
132528// to check whether the returned error was because
132529// http.StatusNotModified was returned.
132530func (c *RegionInstanceGroupManagersCreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
132531	gensupport.SetOptions(c.urlParams_, opts...)
132532	res, err := c.doRequest("json")
132533	if res != nil && res.StatusCode == http.StatusNotModified {
132534		if res.Body != nil {
132535			res.Body.Close()
132536		}
132537		return nil, &googleapi.Error{
132538			Code:   res.StatusCode,
132539			Header: res.Header,
132540		}
132541	}
132542	if err != nil {
132543		return nil, err
132544	}
132545	defer googleapi.CloseBody(res)
132546	if err := googleapi.CheckResponse(res); err != nil {
132547		return nil, err
132548	}
132549	ret := &Operation{
132550		ServerResponse: googleapi.ServerResponse{
132551			Header:         res.Header,
132552			HTTPStatusCode: res.StatusCode,
132553		},
132554	}
132555	target := &ret
132556	if err := gensupport.DecodeResponse(target, res); err != nil {
132557		return nil, err
132558	}
132559	return ret, nil
132560	// {
132561	//   "description": "Creates instances with per-instance configs in this regional managed instance group. Instances are created using the current instance template. The create instances operation is marked DONE if the createInstances request is successful. The underlying actions take additional time. You must separately verify the status of the creating or actions with the listmanagedinstances method.",
132562	//   "httpMethod": "POST",
132563	//   "id": "compute.regionInstanceGroupManagers.createInstances",
132564	//   "parameterOrder": [
132565	//     "project",
132566	//     "region",
132567	//     "instanceGroupManager"
132568	//   ],
132569	//   "parameters": {
132570	//     "instanceGroupManager": {
132571	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
132572	//       "location": "path",
132573	//       "required": true,
132574	//       "type": "string"
132575	//     },
132576	//     "project": {
132577	//       "description": "Project ID for this request.",
132578	//       "location": "path",
132579	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
132580	//       "required": true,
132581	//       "type": "string"
132582	//     },
132583	//     "region": {
132584	//       "description": "The name of the region where the managed instance group is located. It should conform to RFC1035.",
132585	//       "location": "path",
132586	//       "required": true,
132587	//       "type": "string"
132588	//     },
132589	//     "requestId": {
132590	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
132591	//       "location": "query",
132592	//       "type": "string"
132593	//     }
132594	//   },
132595	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/createInstances",
132596	//   "request": {
132597	//     "$ref": "RegionInstanceGroupManagersCreateInstancesRequest"
132598	//   },
132599	//   "response": {
132600	//     "$ref": "Operation"
132601	//   },
132602	//   "scopes": [
132603	//     "https://www.googleapis.com/auth/cloud-platform",
132604	//     "https://www.googleapis.com/auth/compute"
132605	//   ]
132606	// }
132607
132608}
132609
132610// method id "compute.regionInstanceGroupManagers.delete":
132611
132612type RegionInstanceGroupManagersDeleteCall struct {
132613	s                    *Service
132614	project              string
132615	region               string
132616	instanceGroupManager string
132617	urlParams_           gensupport.URLParams
132618	ctx_                 context.Context
132619	header_              http.Header
132620}
132621
132622// Delete: Deletes the specified managed instance group and all of the
132623// instances in that group.
132624func (r *RegionInstanceGroupManagersService) Delete(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersDeleteCall {
132625	c := &RegionInstanceGroupManagersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132626	c.project = project
132627	c.region = region
132628	c.instanceGroupManager = instanceGroupManager
132629	return c
132630}
132631
132632// RequestId sets the optional parameter "requestId": An optional
132633// request ID to identify requests. Specify a unique request ID so that
132634// if you must retry your request, the server will know to ignore the
132635// request if it has already been completed.
132636//
132637// For example, consider a situation where you make an initial request
132638// and the request times out. If you make the request again with the
132639// same request ID, the server can check if original operation with the
132640// same request ID was received, and if so, will ignore the second
132641// request. This prevents clients from accidentally creating duplicate
132642// commitments.
132643//
132644// The request ID must be a valid UUID with the exception that zero UUID
132645// is not supported (00000000-0000-0000-0000-000000000000).
132646func (c *RegionInstanceGroupManagersDeleteCall) RequestId(requestId string) *RegionInstanceGroupManagersDeleteCall {
132647	c.urlParams_.Set("requestId", requestId)
132648	return c
132649}
132650
132651// Fields allows partial responses to be retrieved. See
132652// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132653// for more information.
132654func (c *RegionInstanceGroupManagersDeleteCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersDeleteCall {
132655	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132656	return c
132657}
132658
132659// Context sets the context to be used in this call's Do method. Any
132660// pending HTTP request will be aborted if the provided context is
132661// canceled.
132662func (c *RegionInstanceGroupManagersDeleteCall) Context(ctx context.Context) *RegionInstanceGroupManagersDeleteCall {
132663	c.ctx_ = ctx
132664	return c
132665}
132666
132667// Header returns an http.Header that can be modified by the caller to
132668// add HTTP headers to the request.
132669func (c *RegionInstanceGroupManagersDeleteCall) Header() http.Header {
132670	if c.header_ == nil {
132671		c.header_ = make(http.Header)
132672	}
132673	return c.header_
132674}
132675
132676func (c *RegionInstanceGroupManagersDeleteCall) doRequest(alt string) (*http.Response, error) {
132677	reqHeaders := make(http.Header)
132678	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
132679	for k, v := range c.header_ {
132680		reqHeaders[k] = v
132681	}
132682	reqHeaders.Set("User-Agent", c.s.userAgent())
132683	var body io.Reader = nil
132684	c.urlParams_.Set("alt", alt)
132685	c.urlParams_.Set("prettyPrint", "false")
132686	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}")
132687	urls += "?" + c.urlParams_.Encode()
132688	req, err := http.NewRequest("DELETE", urls, body)
132689	if err != nil {
132690		return nil, err
132691	}
132692	req.Header = reqHeaders
132693	googleapi.Expand(req.URL, map[string]string{
132694		"project":              c.project,
132695		"region":               c.region,
132696		"instanceGroupManager": c.instanceGroupManager,
132697	})
132698	return gensupport.SendRequest(c.ctx_, c.s.client, req)
132699}
132700
132701// Do executes the "compute.regionInstanceGroupManagers.delete" call.
132702// Exactly one of *Operation or error will be non-nil. Any non-2xx
132703// status code is an error. Response headers are in either
132704// *Operation.ServerResponse.Header or (if a response was returned at
132705// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
132706// to check whether the returned error was because
132707// http.StatusNotModified was returned.
132708func (c *RegionInstanceGroupManagersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
132709	gensupport.SetOptions(c.urlParams_, opts...)
132710	res, err := c.doRequest("json")
132711	if res != nil && res.StatusCode == http.StatusNotModified {
132712		if res.Body != nil {
132713			res.Body.Close()
132714		}
132715		return nil, &googleapi.Error{
132716			Code:   res.StatusCode,
132717			Header: res.Header,
132718		}
132719	}
132720	if err != nil {
132721		return nil, err
132722	}
132723	defer googleapi.CloseBody(res)
132724	if err := googleapi.CheckResponse(res); err != nil {
132725		return nil, err
132726	}
132727	ret := &Operation{
132728		ServerResponse: googleapi.ServerResponse{
132729			Header:         res.Header,
132730			HTTPStatusCode: res.StatusCode,
132731		},
132732	}
132733	target := &ret
132734	if err := gensupport.DecodeResponse(target, res); err != nil {
132735		return nil, err
132736	}
132737	return ret, nil
132738	// {
132739	//   "description": "Deletes the specified managed instance group and all of the instances in that group.",
132740	//   "httpMethod": "DELETE",
132741	//   "id": "compute.regionInstanceGroupManagers.delete",
132742	//   "parameterOrder": [
132743	//     "project",
132744	//     "region",
132745	//     "instanceGroupManager"
132746	//   ],
132747	//   "parameters": {
132748	//     "instanceGroupManager": {
132749	//       "description": "Name of the managed instance group to delete.",
132750	//       "location": "path",
132751	//       "required": true,
132752	//       "type": "string"
132753	//     },
132754	//     "project": {
132755	//       "description": "Project ID for this request.",
132756	//       "location": "path",
132757	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
132758	//       "required": true,
132759	//       "type": "string"
132760	//     },
132761	//     "region": {
132762	//       "description": "Name of the region scoping this request.",
132763	//       "location": "path",
132764	//       "required": true,
132765	//       "type": "string"
132766	//     },
132767	//     "requestId": {
132768	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
132769	//       "location": "query",
132770	//       "type": "string"
132771	//     }
132772	//   },
132773	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
132774	//   "response": {
132775	//     "$ref": "Operation"
132776	//   },
132777	//   "scopes": [
132778	//     "https://www.googleapis.com/auth/cloud-platform",
132779	//     "https://www.googleapis.com/auth/compute"
132780	//   ]
132781	// }
132782
132783}
132784
132785// method id "compute.regionInstanceGroupManagers.deleteInstances":
132786
132787type RegionInstanceGroupManagersDeleteInstancesCall struct {
132788	s                                                 *Service
132789	project                                           string
132790	region                                            string
132791	instanceGroupManager                              string
132792	regioninstancegroupmanagersdeleteinstancesrequest *RegionInstanceGroupManagersDeleteInstancesRequest
132793	urlParams_                                        gensupport.URLParams
132794	ctx_                                              context.Context
132795	header_                                           http.Header
132796}
132797
132798// DeleteInstances: Flags the specified instances in the managed
132799// instance group to be immediately deleted. The instances are also
132800// removed from any target pools of which they were a member. This
132801// method reduces the targetSize of the managed instance group by the
132802// number of instances that you delete. The deleteInstances operation is
132803// marked DONE if the deleteInstances request is successful. The
132804// underlying actions take additional time. You must separately verify
132805// the status of the deleting action with the listmanagedinstances
132806// method.
132807//
132808// If the group is part of a backend service that has enabled connection
132809// draining, it can take up to 60 seconds after the connection draining
132810// duration has elapsed before the VM instance is removed or
132811// deleted.
132812//
132813// You can specify a maximum of 1000 instances with this method per
132814// request.
132815func (r *RegionInstanceGroupManagersService) DeleteInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersdeleteinstancesrequest *RegionInstanceGroupManagersDeleteInstancesRequest) *RegionInstanceGroupManagersDeleteInstancesCall {
132816	c := &RegionInstanceGroupManagersDeleteInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132817	c.project = project
132818	c.region = region
132819	c.instanceGroupManager = instanceGroupManager
132820	c.regioninstancegroupmanagersdeleteinstancesrequest = regioninstancegroupmanagersdeleteinstancesrequest
132821	return c
132822}
132823
132824// RequestId sets the optional parameter "requestId": An optional
132825// request ID to identify requests. Specify a unique request ID so that
132826// if you must retry your request, the server will know to ignore the
132827// request if it has already been completed.
132828//
132829// For example, consider a situation where you make an initial request
132830// and the request times out. If you make the request again with the
132831// same request ID, the server can check if original operation with the
132832// same request ID was received, and if so, will ignore the second
132833// request. This prevents clients from accidentally creating duplicate
132834// commitments.
132835//
132836// The request ID must be a valid UUID with the exception that zero UUID
132837// is not supported (00000000-0000-0000-0000-000000000000).
132838func (c *RegionInstanceGroupManagersDeleteInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersDeleteInstancesCall {
132839	c.urlParams_.Set("requestId", requestId)
132840	return c
132841}
132842
132843// Fields allows partial responses to be retrieved. See
132844// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132845// for more information.
132846func (c *RegionInstanceGroupManagersDeleteInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersDeleteInstancesCall {
132847	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132848	return c
132849}
132850
132851// Context sets the context to be used in this call's Do method. Any
132852// pending HTTP request will be aborted if the provided context is
132853// canceled.
132854func (c *RegionInstanceGroupManagersDeleteInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersDeleteInstancesCall {
132855	c.ctx_ = ctx
132856	return c
132857}
132858
132859// Header returns an http.Header that can be modified by the caller to
132860// add HTTP headers to the request.
132861func (c *RegionInstanceGroupManagersDeleteInstancesCall) Header() http.Header {
132862	if c.header_ == nil {
132863		c.header_ = make(http.Header)
132864	}
132865	return c.header_
132866}
132867
132868func (c *RegionInstanceGroupManagersDeleteInstancesCall) doRequest(alt string) (*http.Response, error) {
132869	reqHeaders := make(http.Header)
132870	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
132871	for k, v := range c.header_ {
132872		reqHeaders[k] = v
132873	}
132874	reqHeaders.Set("User-Agent", c.s.userAgent())
132875	var body io.Reader = nil
132876	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagersdeleteinstancesrequest)
132877	if err != nil {
132878		return nil, err
132879	}
132880	reqHeaders.Set("Content-Type", "application/json")
132881	c.urlParams_.Set("alt", alt)
132882	c.urlParams_.Set("prettyPrint", "false")
132883	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deleteInstances")
132884	urls += "?" + c.urlParams_.Encode()
132885	req, err := http.NewRequest("POST", urls, body)
132886	if err != nil {
132887		return nil, err
132888	}
132889	req.Header = reqHeaders
132890	googleapi.Expand(req.URL, map[string]string{
132891		"project":              c.project,
132892		"region":               c.region,
132893		"instanceGroupManager": c.instanceGroupManager,
132894	})
132895	return gensupport.SendRequest(c.ctx_, c.s.client, req)
132896}
132897
132898// Do executes the "compute.regionInstanceGroupManagers.deleteInstances" call.
132899// Exactly one of *Operation or error will be non-nil. Any non-2xx
132900// status code is an error. Response headers are in either
132901// *Operation.ServerResponse.Header or (if a response was returned at
132902// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
132903// to check whether the returned error was because
132904// http.StatusNotModified was returned.
132905func (c *RegionInstanceGroupManagersDeleteInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
132906	gensupport.SetOptions(c.urlParams_, opts...)
132907	res, err := c.doRequest("json")
132908	if res != nil && res.StatusCode == http.StatusNotModified {
132909		if res.Body != nil {
132910			res.Body.Close()
132911		}
132912		return nil, &googleapi.Error{
132913			Code:   res.StatusCode,
132914			Header: res.Header,
132915		}
132916	}
132917	if err != nil {
132918		return nil, err
132919	}
132920	defer googleapi.CloseBody(res)
132921	if err := googleapi.CheckResponse(res); err != nil {
132922		return nil, err
132923	}
132924	ret := &Operation{
132925		ServerResponse: googleapi.ServerResponse{
132926			Header:         res.Header,
132927			HTTPStatusCode: res.StatusCode,
132928		},
132929	}
132930	target := &ret
132931	if err := gensupport.DecodeResponse(target, res); err != nil {
132932		return nil, err
132933	}
132934	return ret, nil
132935	// {
132936	//   "description": "Flags the specified instances in the managed instance group to be immediately deleted. The instances are also removed from any target pools of which they were a member. This method reduces the targetSize of the managed instance group by the number of instances that you delete. The deleteInstances operation is marked DONE if the deleteInstances request is successful. The underlying actions take additional time. You must separately verify the status of the deleting action with the listmanagedinstances method.\n\nIf the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted.\n\nYou can specify a maximum of 1000 instances with this method per request.",
132937	//   "httpMethod": "POST",
132938	//   "id": "compute.regionInstanceGroupManagers.deleteInstances",
132939	//   "parameterOrder": [
132940	//     "project",
132941	//     "region",
132942	//     "instanceGroupManager"
132943	//   ],
132944	//   "parameters": {
132945	//     "instanceGroupManager": {
132946	//       "description": "Name of the managed instance group.",
132947	//       "location": "path",
132948	//       "required": true,
132949	//       "type": "string"
132950	//     },
132951	//     "project": {
132952	//       "description": "Project ID for this request.",
132953	//       "location": "path",
132954	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
132955	//       "required": true,
132956	//       "type": "string"
132957	//     },
132958	//     "region": {
132959	//       "description": "Name of the region scoping this request.",
132960	//       "location": "path",
132961	//       "required": true,
132962	//       "type": "string"
132963	//     },
132964	//     "requestId": {
132965	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
132966	//       "location": "query",
132967	//       "type": "string"
132968	//     }
132969	//   },
132970	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deleteInstances",
132971	//   "request": {
132972	//     "$ref": "RegionInstanceGroupManagersDeleteInstancesRequest"
132973	//   },
132974	//   "response": {
132975	//     "$ref": "Operation"
132976	//   },
132977	//   "scopes": [
132978	//     "https://www.googleapis.com/auth/cloud-platform",
132979	//     "https://www.googleapis.com/auth/compute"
132980	//   ]
132981	// }
132982
132983}
132984
132985// method id "compute.regionInstanceGroupManagers.deletePerInstanceConfigs":
132986
132987type RegionInstanceGroupManagersDeletePerInstanceConfigsCall struct {
132988	s                                                 *Service
132989	project                                           string
132990	region                                            string
132991	instanceGroupManager                              string
132992	regioninstancegroupmanagerdeleteinstanceconfigreq *RegionInstanceGroupManagerDeleteInstanceConfigReq
132993	urlParams_                                        gensupport.URLParams
132994	ctx_                                              context.Context
132995	header_                                           http.Header
132996}
132997
132998// DeletePerInstanceConfigs: Deletes selected per-instance configs for
132999// the managed instance group.
133000func (r *RegionInstanceGroupManagersService) DeletePerInstanceConfigs(project string, region string, instanceGroupManager string, regioninstancegroupmanagerdeleteinstanceconfigreq *RegionInstanceGroupManagerDeleteInstanceConfigReq) *RegionInstanceGroupManagersDeletePerInstanceConfigsCall {
133001	c := &RegionInstanceGroupManagersDeletePerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
133002	c.project = project
133003	c.region = region
133004	c.instanceGroupManager = instanceGroupManager
133005	c.regioninstancegroupmanagerdeleteinstanceconfigreq = regioninstancegroupmanagerdeleteinstanceconfigreq
133006	return c
133007}
133008
133009// Fields allows partial responses to be retrieved. See
133010// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
133011// for more information.
133012func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersDeletePerInstanceConfigsCall {
133013	c.urlParams_.Set("fields", googleapi.CombineFields(s))
133014	return c
133015}
133016
133017// Context sets the context to be used in this call's Do method. Any
133018// pending HTTP request will be aborted if the provided context is
133019// canceled.
133020func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) Context(ctx context.Context) *RegionInstanceGroupManagersDeletePerInstanceConfigsCall {
133021	c.ctx_ = ctx
133022	return c
133023}
133024
133025// Header returns an http.Header that can be modified by the caller to
133026// add HTTP headers to the request.
133027func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) Header() http.Header {
133028	if c.header_ == nil {
133029		c.header_ = make(http.Header)
133030	}
133031	return c.header_
133032}
133033
133034func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
133035	reqHeaders := make(http.Header)
133036	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
133037	for k, v := range c.header_ {
133038		reqHeaders[k] = v
133039	}
133040	reqHeaders.Set("User-Agent", c.s.userAgent())
133041	var body io.Reader = nil
133042	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerdeleteinstanceconfigreq)
133043	if err != nil {
133044		return nil, err
133045	}
133046	reqHeaders.Set("Content-Type", "application/json")
133047	c.urlParams_.Set("alt", alt)
133048	c.urlParams_.Set("prettyPrint", "false")
133049	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs")
133050	urls += "?" + c.urlParams_.Encode()
133051	req, err := http.NewRequest("POST", urls, body)
133052	if err != nil {
133053		return nil, err
133054	}
133055	req.Header = reqHeaders
133056	googleapi.Expand(req.URL, map[string]string{
133057		"project":              c.project,
133058		"region":               c.region,
133059		"instanceGroupManager": c.instanceGroupManager,
133060	})
133061	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133062}
133063
133064// Do executes the "compute.regionInstanceGroupManagers.deletePerInstanceConfigs" call.
133065// Exactly one of *Operation or error will be non-nil. Any non-2xx
133066// status code is an error. Response headers are in either
133067// *Operation.ServerResponse.Header or (if a response was returned at
133068// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
133069// to check whether the returned error was because
133070// http.StatusNotModified was returned.
133071func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
133072	gensupport.SetOptions(c.urlParams_, opts...)
133073	res, err := c.doRequest("json")
133074	if res != nil && res.StatusCode == http.StatusNotModified {
133075		if res.Body != nil {
133076			res.Body.Close()
133077		}
133078		return nil, &googleapi.Error{
133079			Code:   res.StatusCode,
133080			Header: res.Header,
133081		}
133082	}
133083	if err != nil {
133084		return nil, err
133085	}
133086	defer googleapi.CloseBody(res)
133087	if err := googleapi.CheckResponse(res); err != nil {
133088		return nil, err
133089	}
133090	ret := &Operation{
133091		ServerResponse: googleapi.ServerResponse{
133092			Header:         res.Header,
133093			HTTPStatusCode: res.StatusCode,
133094		},
133095	}
133096	target := &ret
133097	if err := gensupport.DecodeResponse(target, res); err != nil {
133098		return nil, err
133099	}
133100	return ret, nil
133101	// {
133102	//   "description": "Deletes selected per-instance configs for the managed instance group.",
133103	//   "httpMethod": "POST",
133104	//   "id": "compute.regionInstanceGroupManagers.deletePerInstanceConfigs",
133105	//   "parameterOrder": [
133106	//     "project",
133107	//     "region",
133108	//     "instanceGroupManager"
133109	//   ],
133110	//   "parameters": {
133111	//     "instanceGroupManager": {
133112	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
133113	//       "location": "path",
133114	//       "required": true,
133115	//       "type": "string"
133116	//     },
133117	//     "project": {
133118	//       "description": "Project ID for this request.",
133119	//       "location": "path",
133120	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133121	//       "required": true,
133122	//       "type": "string"
133123	//     },
133124	//     "region": {
133125	//       "description": "Name of the region scoping this request, should conform to RFC1035.",
133126	//       "location": "path",
133127	//       "required": true,
133128	//       "type": "string"
133129	//     }
133130	//   },
133131	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs",
133132	//   "request": {
133133	//     "$ref": "RegionInstanceGroupManagerDeleteInstanceConfigReq"
133134	//   },
133135	//   "response": {
133136	//     "$ref": "Operation"
133137	//   },
133138	//   "scopes": [
133139	//     "https://www.googleapis.com/auth/cloud-platform",
133140	//     "https://www.googleapis.com/auth/compute"
133141	//   ]
133142	// }
133143
133144}
133145
133146// method id "compute.regionInstanceGroupManagers.get":
133147
133148type RegionInstanceGroupManagersGetCall struct {
133149	s                    *Service
133150	project              string
133151	region               string
133152	instanceGroupManager string
133153	urlParams_           gensupport.URLParams
133154	ifNoneMatch_         string
133155	ctx_                 context.Context
133156	header_              http.Header
133157}
133158
133159// Get: Returns all of the details about the specified managed instance
133160// group.
133161func (r *RegionInstanceGroupManagersService) Get(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersGetCall {
133162	c := &RegionInstanceGroupManagersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
133163	c.project = project
133164	c.region = region
133165	c.instanceGroupManager = instanceGroupManager
133166	return c
133167}
133168
133169// Fields allows partial responses to be retrieved. See
133170// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
133171// for more information.
133172func (c *RegionInstanceGroupManagersGetCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersGetCall {
133173	c.urlParams_.Set("fields", googleapi.CombineFields(s))
133174	return c
133175}
133176
133177// IfNoneMatch sets the optional parameter which makes the operation
133178// fail if the object's ETag matches the given value. This is useful for
133179// getting updates only after the object has changed since the last
133180// request. Use googleapi.IsNotModified to check whether the response
133181// error from Do is the result of In-None-Match.
133182func (c *RegionInstanceGroupManagersGetCall) IfNoneMatch(entityTag string) *RegionInstanceGroupManagersGetCall {
133183	c.ifNoneMatch_ = entityTag
133184	return c
133185}
133186
133187// Context sets the context to be used in this call's Do method. Any
133188// pending HTTP request will be aborted if the provided context is
133189// canceled.
133190func (c *RegionInstanceGroupManagersGetCall) Context(ctx context.Context) *RegionInstanceGroupManagersGetCall {
133191	c.ctx_ = ctx
133192	return c
133193}
133194
133195// Header returns an http.Header that can be modified by the caller to
133196// add HTTP headers to the request.
133197func (c *RegionInstanceGroupManagersGetCall) Header() http.Header {
133198	if c.header_ == nil {
133199		c.header_ = make(http.Header)
133200	}
133201	return c.header_
133202}
133203
133204func (c *RegionInstanceGroupManagersGetCall) doRequest(alt string) (*http.Response, error) {
133205	reqHeaders := make(http.Header)
133206	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
133207	for k, v := range c.header_ {
133208		reqHeaders[k] = v
133209	}
133210	reqHeaders.Set("User-Agent", c.s.userAgent())
133211	if c.ifNoneMatch_ != "" {
133212		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
133213	}
133214	var body io.Reader = nil
133215	c.urlParams_.Set("alt", alt)
133216	c.urlParams_.Set("prettyPrint", "false")
133217	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}")
133218	urls += "?" + c.urlParams_.Encode()
133219	req, err := http.NewRequest("GET", urls, body)
133220	if err != nil {
133221		return nil, err
133222	}
133223	req.Header = reqHeaders
133224	googleapi.Expand(req.URL, map[string]string{
133225		"project":              c.project,
133226		"region":               c.region,
133227		"instanceGroupManager": c.instanceGroupManager,
133228	})
133229	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133230}
133231
133232// Do executes the "compute.regionInstanceGroupManagers.get" call.
133233// Exactly one of *InstanceGroupManager or error will be non-nil. Any
133234// non-2xx status code is an error. Response headers are in either
133235// *InstanceGroupManager.ServerResponse.Header or (if a response was
133236// returned at all) in error.(*googleapi.Error).Header. Use
133237// googleapi.IsNotModified to check whether the returned error was
133238// because http.StatusNotModified was returned.
133239func (c *RegionInstanceGroupManagersGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManager, error) {
133240	gensupport.SetOptions(c.urlParams_, opts...)
133241	res, err := c.doRequest("json")
133242	if res != nil && res.StatusCode == http.StatusNotModified {
133243		if res.Body != nil {
133244			res.Body.Close()
133245		}
133246		return nil, &googleapi.Error{
133247			Code:   res.StatusCode,
133248			Header: res.Header,
133249		}
133250	}
133251	if err != nil {
133252		return nil, err
133253	}
133254	defer googleapi.CloseBody(res)
133255	if err := googleapi.CheckResponse(res); err != nil {
133256		return nil, err
133257	}
133258	ret := &InstanceGroupManager{
133259		ServerResponse: googleapi.ServerResponse{
133260			Header:         res.Header,
133261			HTTPStatusCode: res.StatusCode,
133262		},
133263	}
133264	target := &ret
133265	if err := gensupport.DecodeResponse(target, res); err != nil {
133266		return nil, err
133267	}
133268	return ret, nil
133269	// {
133270	//   "description": "Returns all of the details about the specified managed instance group.",
133271	//   "httpMethod": "GET",
133272	//   "id": "compute.regionInstanceGroupManagers.get",
133273	//   "parameterOrder": [
133274	//     "project",
133275	//     "region",
133276	//     "instanceGroupManager"
133277	//   ],
133278	//   "parameters": {
133279	//     "instanceGroupManager": {
133280	//       "description": "Name of the managed instance group to return.",
133281	//       "location": "path",
133282	//       "required": true,
133283	//       "type": "string"
133284	//     },
133285	//     "project": {
133286	//       "description": "Project ID for this request.",
133287	//       "location": "path",
133288	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133289	//       "required": true,
133290	//       "type": "string"
133291	//     },
133292	//     "region": {
133293	//       "description": "Name of the region scoping this request.",
133294	//       "location": "path",
133295	//       "required": true,
133296	//       "type": "string"
133297	//     }
133298	//   },
133299	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
133300	//   "response": {
133301	//     "$ref": "InstanceGroupManager"
133302	//   },
133303	//   "scopes": [
133304	//     "https://www.googleapis.com/auth/cloud-platform",
133305	//     "https://www.googleapis.com/auth/compute",
133306	//     "https://www.googleapis.com/auth/compute.readonly"
133307	//   ]
133308	// }
133309
133310}
133311
133312// method id "compute.regionInstanceGroupManagers.insert":
133313
133314type RegionInstanceGroupManagersInsertCall struct {
133315	s                    *Service
133316	project              string
133317	region               string
133318	instancegroupmanager *InstanceGroupManager
133319	urlParams_           gensupport.URLParams
133320	ctx_                 context.Context
133321	header_              http.Header
133322}
133323
133324// Insert: Creates a managed instance group using the information that
133325// you specify in the request. After the group is created, instances in
133326// the group are created using the specified instance template. This
133327// operation is marked as DONE when the group is created even if the
133328// instances in the group have not yet been created. You must separately
133329// verify the status of the individual instances with the
133330// listmanagedinstances method.
133331//
133332// A regional managed instance group can contain up to 2000 instances.
133333func (r *RegionInstanceGroupManagersService) Insert(project string, region string, instancegroupmanager *InstanceGroupManager) *RegionInstanceGroupManagersInsertCall {
133334	c := &RegionInstanceGroupManagersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
133335	c.project = project
133336	c.region = region
133337	c.instancegroupmanager = instancegroupmanager
133338	return c
133339}
133340
133341// RequestId sets the optional parameter "requestId": An optional
133342// request ID to identify requests. Specify a unique request ID so that
133343// if you must retry your request, the server will know to ignore the
133344// request if it has already been completed.
133345//
133346// For example, consider a situation where you make an initial request
133347// and the request times out. If you make the request again with the
133348// same request ID, the server can check if original operation with the
133349// same request ID was received, and if so, will ignore the second
133350// request. This prevents clients from accidentally creating duplicate
133351// commitments.
133352//
133353// The request ID must be a valid UUID with the exception that zero UUID
133354// is not supported (00000000-0000-0000-0000-000000000000).
133355func (c *RegionInstanceGroupManagersInsertCall) RequestId(requestId string) *RegionInstanceGroupManagersInsertCall {
133356	c.urlParams_.Set("requestId", requestId)
133357	return c
133358}
133359
133360// Fields allows partial responses to be retrieved. See
133361// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
133362// for more information.
133363func (c *RegionInstanceGroupManagersInsertCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersInsertCall {
133364	c.urlParams_.Set("fields", googleapi.CombineFields(s))
133365	return c
133366}
133367
133368// Context sets the context to be used in this call's Do method. Any
133369// pending HTTP request will be aborted if the provided context is
133370// canceled.
133371func (c *RegionInstanceGroupManagersInsertCall) Context(ctx context.Context) *RegionInstanceGroupManagersInsertCall {
133372	c.ctx_ = ctx
133373	return c
133374}
133375
133376// Header returns an http.Header that can be modified by the caller to
133377// add HTTP headers to the request.
133378func (c *RegionInstanceGroupManagersInsertCall) Header() http.Header {
133379	if c.header_ == nil {
133380		c.header_ = make(http.Header)
133381	}
133382	return c.header_
133383}
133384
133385func (c *RegionInstanceGroupManagersInsertCall) doRequest(alt string) (*http.Response, error) {
133386	reqHeaders := make(http.Header)
133387	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
133388	for k, v := range c.header_ {
133389		reqHeaders[k] = v
133390	}
133391	reqHeaders.Set("User-Agent", c.s.userAgent())
133392	var body io.Reader = nil
133393	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
133394	if err != nil {
133395		return nil, err
133396	}
133397	reqHeaders.Set("Content-Type", "application/json")
133398	c.urlParams_.Set("alt", alt)
133399	c.urlParams_.Set("prettyPrint", "false")
133400	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers")
133401	urls += "?" + c.urlParams_.Encode()
133402	req, err := http.NewRequest("POST", urls, body)
133403	if err != nil {
133404		return nil, err
133405	}
133406	req.Header = reqHeaders
133407	googleapi.Expand(req.URL, map[string]string{
133408		"project": c.project,
133409		"region":  c.region,
133410	})
133411	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133412}
133413
133414// Do executes the "compute.regionInstanceGroupManagers.insert" call.
133415// Exactly one of *Operation or error will be non-nil. Any non-2xx
133416// status code is an error. Response headers are in either
133417// *Operation.ServerResponse.Header or (if a response was returned at
133418// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
133419// to check whether the returned error was because
133420// http.StatusNotModified was returned.
133421func (c *RegionInstanceGroupManagersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
133422	gensupport.SetOptions(c.urlParams_, opts...)
133423	res, err := c.doRequest("json")
133424	if res != nil && res.StatusCode == http.StatusNotModified {
133425		if res.Body != nil {
133426			res.Body.Close()
133427		}
133428		return nil, &googleapi.Error{
133429			Code:   res.StatusCode,
133430			Header: res.Header,
133431		}
133432	}
133433	if err != nil {
133434		return nil, err
133435	}
133436	defer googleapi.CloseBody(res)
133437	if err := googleapi.CheckResponse(res); err != nil {
133438		return nil, err
133439	}
133440	ret := &Operation{
133441		ServerResponse: googleapi.ServerResponse{
133442			Header:         res.Header,
133443			HTTPStatusCode: res.StatusCode,
133444		},
133445	}
133446	target := &ret
133447	if err := gensupport.DecodeResponse(target, res); err != nil {
133448		return nil, err
133449	}
133450	return ret, nil
133451	// {
133452	//   "description": "Creates a managed instance group using the information that you specify in the request. After the group is created, instances in the group are created using the specified instance template. This operation is marked as DONE when the group is created even if the instances in the group have not yet been created. You must separately verify the status of the individual instances with the listmanagedinstances method.\n\nA regional managed instance group can contain up to 2000 instances.",
133453	//   "httpMethod": "POST",
133454	//   "id": "compute.regionInstanceGroupManagers.insert",
133455	//   "parameterOrder": [
133456	//     "project",
133457	//     "region"
133458	//   ],
133459	//   "parameters": {
133460	//     "project": {
133461	//       "description": "Project ID for this request.",
133462	//       "location": "path",
133463	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133464	//       "required": true,
133465	//       "type": "string"
133466	//     },
133467	//     "region": {
133468	//       "description": "Name of the region scoping this request.",
133469	//       "location": "path",
133470	//       "required": true,
133471	//       "type": "string"
133472	//     },
133473	//     "requestId": {
133474	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
133475	//       "location": "query",
133476	//       "type": "string"
133477	//     }
133478	//   },
133479	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers",
133480	//   "request": {
133481	//     "$ref": "InstanceGroupManager"
133482	//   },
133483	//   "response": {
133484	//     "$ref": "Operation"
133485	//   },
133486	//   "scopes": [
133487	//     "https://www.googleapis.com/auth/cloud-platform",
133488	//     "https://www.googleapis.com/auth/compute"
133489	//   ]
133490	// }
133491
133492}
133493
133494// method id "compute.regionInstanceGroupManagers.list":
133495
133496type RegionInstanceGroupManagersListCall struct {
133497	s            *Service
133498	project      string
133499	region       string
133500	urlParams_   gensupport.URLParams
133501	ifNoneMatch_ string
133502	ctx_         context.Context
133503	header_      http.Header
133504}
133505
133506// List: Retrieves the list of managed instance groups that are
133507// contained within the specified region.
133508func (r *RegionInstanceGroupManagersService) List(project string, region string) *RegionInstanceGroupManagersListCall {
133509	c := &RegionInstanceGroupManagersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
133510	c.project = project
133511	c.region = region
133512	return c
133513}
133514
133515// Filter sets the optional parameter "filter": A filter expression that
133516// filters resources listed in the response. The expression must specify
133517// the field name, a comparison operator, and the value that you want to
133518// use for filtering. The value must be a string, a number, or a
133519// boolean. The comparison operator must be either `=`, `!=`, `>`, or
133520// `<`.
133521//
133522// For example, if you are filtering Compute Engine instances, you can
133523// exclude instances named `example-instance` by specifying `name !=
133524// example-instance`.
133525//
133526// You can also filter nested fields. For example, you could specify
133527// `scheduling.automaticRestart = false` to include instances only if
133528// they are not scheduled for automatic restarts. You can use filtering
133529// on nested fields to filter based on resource labels.
133530//
133531// To filter on multiple expressions, provide each separate expression
133532// within parentheses. For example: ``` (scheduling.automaticRestart =
133533// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
133534// is an `AND` expression. However, you can include `AND` and `OR`
133535// expressions explicitly. For example: ``` (cpuPlatform = "Intel
133536// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
133537// (scheduling.automaticRestart = true) ```
133538func (c *RegionInstanceGroupManagersListCall) Filter(filter string) *RegionInstanceGroupManagersListCall {
133539	c.urlParams_.Set("filter", filter)
133540	return c
133541}
133542
133543// MaxResults sets the optional parameter "maxResults": The maximum
133544// number of results per page that should be returned. If the number of
133545// available results is larger than `maxResults`, Compute Engine returns
133546// a `nextPageToken` that can be used to get the next page of results in
133547// subsequent list requests. Acceptable values are `0` to `500`,
133548// inclusive. (Default: `500`)
133549func (c *RegionInstanceGroupManagersListCall) MaxResults(maxResults int64) *RegionInstanceGroupManagersListCall {
133550	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
133551	return c
133552}
133553
133554// OrderBy sets the optional parameter "orderBy": Sorts list results by
133555// a certain order. By default, results are returned in alphanumerical
133556// order based on the resource name.
133557//
133558// You can also sort results in descending order based on the creation
133559// timestamp using `orderBy="creationTimestamp desc". This sorts
133560// results based on the `creationTimestamp` field in reverse
133561// chronological order (newest result first). Use this to sort resources
133562// like operations so that the newest operation is returned
133563// first.
133564//
133565// Currently, only sorting by `name` or `creationTimestamp desc` is
133566// supported.
133567func (c *RegionInstanceGroupManagersListCall) OrderBy(orderBy string) *RegionInstanceGroupManagersListCall {
133568	c.urlParams_.Set("orderBy", orderBy)
133569	return c
133570}
133571
133572// PageToken sets the optional parameter "pageToken": Specifies a page
133573// token to use. Set `pageToken` to the `nextPageToken` returned by a
133574// previous list request to get the next page of results.
133575func (c *RegionInstanceGroupManagersListCall) PageToken(pageToken string) *RegionInstanceGroupManagersListCall {
133576	c.urlParams_.Set("pageToken", pageToken)
133577	return c
133578}
133579
133580// ReturnPartialSuccess sets the optional parameter
133581// "returnPartialSuccess": Opt-in for partial success behavior which
133582// provides partial results in case of failure. The default value is
133583// false.
133584func (c *RegionInstanceGroupManagersListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionInstanceGroupManagersListCall {
133585	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
133586	return c
133587}
133588
133589// Fields allows partial responses to be retrieved. See
133590// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
133591// for more information.
133592func (c *RegionInstanceGroupManagersListCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersListCall {
133593	c.urlParams_.Set("fields", googleapi.CombineFields(s))
133594	return c
133595}
133596
133597// IfNoneMatch sets the optional parameter which makes the operation
133598// fail if the object's ETag matches the given value. This is useful for
133599// getting updates only after the object has changed since the last
133600// request. Use googleapi.IsNotModified to check whether the response
133601// error from Do is the result of In-None-Match.
133602func (c *RegionInstanceGroupManagersListCall) IfNoneMatch(entityTag string) *RegionInstanceGroupManagersListCall {
133603	c.ifNoneMatch_ = entityTag
133604	return c
133605}
133606
133607// Context sets the context to be used in this call's Do method. Any
133608// pending HTTP request will be aborted if the provided context is
133609// canceled.
133610func (c *RegionInstanceGroupManagersListCall) Context(ctx context.Context) *RegionInstanceGroupManagersListCall {
133611	c.ctx_ = ctx
133612	return c
133613}
133614
133615// Header returns an http.Header that can be modified by the caller to
133616// add HTTP headers to the request.
133617func (c *RegionInstanceGroupManagersListCall) Header() http.Header {
133618	if c.header_ == nil {
133619		c.header_ = make(http.Header)
133620	}
133621	return c.header_
133622}
133623
133624func (c *RegionInstanceGroupManagersListCall) doRequest(alt string) (*http.Response, error) {
133625	reqHeaders := make(http.Header)
133626	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
133627	for k, v := range c.header_ {
133628		reqHeaders[k] = v
133629	}
133630	reqHeaders.Set("User-Agent", c.s.userAgent())
133631	if c.ifNoneMatch_ != "" {
133632		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
133633	}
133634	var body io.Reader = nil
133635	c.urlParams_.Set("alt", alt)
133636	c.urlParams_.Set("prettyPrint", "false")
133637	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers")
133638	urls += "?" + c.urlParams_.Encode()
133639	req, err := http.NewRequest("GET", urls, body)
133640	if err != nil {
133641		return nil, err
133642	}
133643	req.Header = reqHeaders
133644	googleapi.Expand(req.URL, map[string]string{
133645		"project": c.project,
133646		"region":  c.region,
133647	})
133648	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133649}
133650
133651// Do executes the "compute.regionInstanceGroupManagers.list" call.
133652// Exactly one of *RegionInstanceGroupManagerList or error will be
133653// non-nil. Any non-2xx status code is an error. Response headers are in
133654// either *RegionInstanceGroupManagerList.ServerResponse.Header or (if a
133655// response was returned at all) in error.(*googleapi.Error).Header. Use
133656// googleapi.IsNotModified to check whether the returned error was
133657// because http.StatusNotModified was returned.
133658func (c *RegionInstanceGroupManagersListCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagerList, error) {
133659	gensupport.SetOptions(c.urlParams_, opts...)
133660	res, err := c.doRequest("json")
133661	if res != nil && res.StatusCode == http.StatusNotModified {
133662		if res.Body != nil {
133663			res.Body.Close()
133664		}
133665		return nil, &googleapi.Error{
133666			Code:   res.StatusCode,
133667			Header: res.Header,
133668		}
133669	}
133670	if err != nil {
133671		return nil, err
133672	}
133673	defer googleapi.CloseBody(res)
133674	if err := googleapi.CheckResponse(res); err != nil {
133675		return nil, err
133676	}
133677	ret := &RegionInstanceGroupManagerList{
133678		ServerResponse: googleapi.ServerResponse{
133679			Header:         res.Header,
133680			HTTPStatusCode: res.StatusCode,
133681		},
133682	}
133683	target := &ret
133684	if err := gensupport.DecodeResponse(target, res); err != nil {
133685		return nil, err
133686	}
133687	return ret, nil
133688	// {
133689	//   "description": "Retrieves the list of managed instance groups that are contained within the specified region.",
133690	//   "httpMethod": "GET",
133691	//   "id": "compute.regionInstanceGroupManagers.list",
133692	//   "parameterOrder": [
133693	//     "project",
133694	//     "region"
133695	//   ],
133696	//   "parameters": {
133697	//     "filter": {
133698	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
133699	//       "location": "query",
133700	//       "type": "string"
133701	//     },
133702	//     "maxResults": {
133703	//       "default": "500",
133704	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
133705	//       "format": "uint32",
133706	//       "location": "query",
133707	//       "minimum": "0",
133708	//       "type": "integer"
133709	//     },
133710	//     "orderBy": {
133711	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
133712	//       "location": "query",
133713	//       "type": "string"
133714	//     },
133715	//     "pageToken": {
133716	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
133717	//       "location": "query",
133718	//       "type": "string"
133719	//     },
133720	//     "project": {
133721	//       "description": "Project ID for this request.",
133722	//       "location": "path",
133723	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133724	//       "required": true,
133725	//       "type": "string"
133726	//     },
133727	//     "region": {
133728	//       "description": "Name of the region scoping this request.",
133729	//       "location": "path",
133730	//       "required": true,
133731	//       "type": "string"
133732	//     },
133733	//     "returnPartialSuccess": {
133734	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
133735	//       "location": "query",
133736	//       "type": "boolean"
133737	//     }
133738	//   },
133739	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers",
133740	//   "response": {
133741	//     "$ref": "RegionInstanceGroupManagerList"
133742	//   },
133743	//   "scopes": [
133744	//     "https://www.googleapis.com/auth/cloud-platform",
133745	//     "https://www.googleapis.com/auth/compute",
133746	//     "https://www.googleapis.com/auth/compute.readonly"
133747	//   ]
133748	// }
133749
133750}
133751
133752// Pages invokes f for each page of results.
133753// A non-nil error returned from f will halt the iteration.
133754// The provided context supersedes any context provided to the Context method.
133755func (c *RegionInstanceGroupManagersListCall) Pages(ctx context.Context, f func(*RegionInstanceGroupManagerList) error) error {
133756	c.ctx_ = ctx
133757	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
133758	for {
133759		x, err := c.Do()
133760		if err != nil {
133761			return err
133762		}
133763		if err := f(x); err != nil {
133764			return err
133765		}
133766		if x.NextPageToken == "" {
133767			return nil
133768		}
133769		c.PageToken(x.NextPageToken)
133770	}
133771}
133772
133773// method id "compute.regionInstanceGroupManagers.listErrors":
133774
133775type RegionInstanceGroupManagersListErrorsCall struct {
133776	s                    *Service
133777	project              string
133778	region               string
133779	instanceGroupManager string
133780	urlParams_           gensupport.URLParams
133781	ifNoneMatch_         string
133782	ctx_                 context.Context
133783	header_              http.Header
133784}
133785
133786// ListErrors: Lists all errors thrown by actions on instances for a
133787// given regional managed instance group. The filter and orderBy query
133788// parameters are not supported.
133789func (r *RegionInstanceGroupManagersService) ListErrors(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersListErrorsCall {
133790	c := &RegionInstanceGroupManagersListErrorsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
133791	c.project = project
133792	c.region = region
133793	c.instanceGroupManager = instanceGroupManager
133794	return c
133795}
133796
133797// Filter sets the optional parameter "filter": A filter expression that
133798// filters resources listed in the response. The expression must specify
133799// the field name, a comparison operator, and the value that you want to
133800// use for filtering. The value must be a string, a number, or a
133801// boolean. The comparison operator must be either `=`, `!=`, `>`, or
133802// `<`.
133803//
133804// For example, if you are filtering Compute Engine instances, you can
133805// exclude instances named `example-instance` by specifying `name !=
133806// example-instance`.
133807//
133808// You can also filter nested fields. For example, you could specify
133809// `scheduling.automaticRestart = false` to include instances only if
133810// they are not scheduled for automatic restarts. You can use filtering
133811// on nested fields to filter based on resource labels.
133812//
133813// To filter on multiple expressions, provide each separate expression
133814// within parentheses. For example: ``` (scheduling.automaticRestart =
133815// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
133816// is an `AND` expression. However, you can include `AND` and `OR`
133817// expressions explicitly. For example: ``` (cpuPlatform = "Intel
133818// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
133819// (scheduling.automaticRestart = true) ```
133820func (c *RegionInstanceGroupManagersListErrorsCall) Filter(filter string) *RegionInstanceGroupManagersListErrorsCall {
133821	c.urlParams_.Set("filter", filter)
133822	return c
133823}
133824
133825// MaxResults sets the optional parameter "maxResults": The maximum
133826// number of results per page that should be returned. If the number of
133827// available results is larger than `maxResults`, Compute Engine returns
133828// a `nextPageToken` that can be used to get the next page of results in
133829// subsequent list requests. Acceptable values are `0` to `500`,
133830// inclusive. (Default: `500`)
133831func (c *RegionInstanceGroupManagersListErrorsCall) MaxResults(maxResults int64) *RegionInstanceGroupManagersListErrorsCall {
133832	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
133833	return c
133834}
133835
133836// OrderBy sets the optional parameter "orderBy": Sorts list results by
133837// a certain order. By default, results are returned in alphanumerical
133838// order based on the resource name.
133839//
133840// You can also sort results in descending order based on the creation
133841// timestamp using `orderBy="creationTimestamp desc". This sorts
133842// results based on the `creationTimestamp` field in reverse
133843// chronological order (newest result first). Use this to sort resources
133844// like operations so that the newest operation is returned
133845// first.
133846//
133847// Currently, only sorting by `name` or `creationTimestamp desc` is
133848// supported.
133849func (c *RegionInstanceGroupManagersListErrorsCall) OrderBy(orderBy string) *RegionInstanceGroupManagersListErrorsCall {
133850	c.urlParams_.Set("orderBy", orderBy)
133851	return c
133852}
133853
133854// PageToken sets the optional parameter "pageToken": Specifies a page
133855// token to use. Set `pageToken` to the `nextPageToken` returned by a
133856// previous list request to get the next page of results.
133857func (c *RegionInstanceGroupManagersListErrorsCall) PageToken(pageToken string) *RegionInstanceGroupManagersListErrorsCall {
133858	c.urlParams_.Set("pageToken", pageToken)
133859	return c
133860}
133861
133862// ReturnPartialSuccess sets the optional parameter
133863// "returnPartialSuccess": Opt-in for partial success behavior which
133864// provides partial results in case of failure. The default value is
133865// false.
133866func (c *RegionInstanceGroupManagersListErrorsCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionInstanceGroupManagersListErrorsCall {
133867	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
133868	return c
133869}
133870
133871// Fields allows partial responses to be retrieved. See
133872// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
133873// for more information.
133874func (c *RegionInstanceGroupManagersListErrorsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersListErrorsCall {
133875	c.urlParams_.Set("fields", googleapi.CombineFields(s))
133876	return c
133877}
133878
133879// IfNoneMatch sets the optional parameter which makes the operation
133880// fail if the object's ETag matches the given value. This is useful for
133881// getting updates only after the object has changed since the last
133882// request. Use googleapi.IsNotModified to check whether the response
133883// error from Do is the result of In-None-Match.
133884func (c *RegionInstanceGroupManagersListErrorsCall) IfNoneMatch(entityTag string) *RegionInstanceGroupManagersListErrorsCall {
133885	c.ifNoneMatch_ = entityTag
133886	return c
133887}
133888
133889// Context sets the context to be used in this call's Do method. Any
133890// pending HTTP request will be aborted if the provided context is
133891// canceled.
133892func (c *RegionInstanceGroupManagersListErrorsCall) Context(ctx context.Context) *RegionInstanceGroupManagersListErrorsCall {
133893	c.ctx_ = ctx
133894	return c
133895}
133896
133897// Header returns an http.Header that can be modified by the caller to
133898// add HTTP headers to the request.
133899func (c *RegionInstanceGroupManagersListErrorsCall) Header() http.Header {
133900	if c.header_ == nil {
133901		c.header_ = make(http.Header)
133902	}
133903	return c.header_
133904}
133905
133906func (c *RegionInstanceGroupManagersListErrorsCall) doRequest(alt string) (*http.Response, error) {
133907	reqHeaders := make(http.Header)
133908	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
133909	for k, v := range c.header_ {
133910		reqHeaders[k] = v
133911	}
133912	reqHeaders.Set("User-Agent", c.s.userAgent())
133913	if c.ifNoneMatch_ != "" {
133914		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
133915	}
133916	var body io.Reader = nil
133917	c.urlParams_.Set("alt", alt)
133918	c.urlParams_.Set("prettyPrint", "false")
133919	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listErrors")
133920	urls += "?" + c.urlParams_.Encode()
133921	req, err := http.NewRequest("GET", urls, body)
133922	if err != nil {
133923		return nil, err
133924	}
133925	req.Header = reqHeaders
133926	googleapi.Expand(req.URL, map[string]string{
133927		"project":              c.project,
133928		"region":               c.region,
133929		"instanceGroupManager": c.instanceGroupManager,
133930	})
133931	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133932}
133933
133934// Do executes the "compute.regionInstanceGroupManagers.listErrors" call.
133935// Exactly one of *RegionInstanceGroupManagersListErrorsResponse or
133936// error will be non-nil. Any non-2xx status code is an error. Response
133937// headers are in either
133938// *RegionInstanceGroupManagersListErrorsResponse.ServerResponse.Header
133939// or (if a response was returned at all) in
133940// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
133941// whether the returned error was because http.StatusNotModified was
133942// returned.
133943func (c *RegionInstanceGroupManagersListErrorsCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagersListErrorsResponse, error) {
133944	gensupport.SetOptions(c.urlParams_, opts...)
133945	res, err := c.doRequest("json")
133946	if res != nil && res.StatusCode == http.StatusNotModified {
133947		if res.Body != nil {
133948			res.Body.Close()
133949		}
133950		return nil, &googleapi.Error{
133951			Code:   res.StatusCode,
133952			Header: res.Header,
133953		}
133954	}
133955	if err != nil {
133956		return nil, err
133957	}
133958	defer googleapi.CloseBody(res)
133959	if err := googleapi.CheckResponse(res); err != nil {
133960		return nil, err
133961	}
133962	ret := &RegionInstanceGroupManagersListErrorsResponse{
133963		ServerResponse: googleapi.ServerResponse{
133964			Header:         res.Header,
133965			HTTPStatusCode: res.StatusCode,
133966		},
133967	}
133968	target := &ret
133969	if err := gensupport.DecodeResponse(target, res); err != nil {
133970		return nil, err
133971	}
133972	return ret, nil
133973	// {
133974	//   "description": "Lists all errors thrown by actions on instances for a given regional managed instance group. The filter and orderBy query parameters are not supported.",
133975	//   "httpMethod": "GET",
133976	//   "id": "compute.regionInstanceGroupManagers.listErrors",
133977	//   "parameterOrder": [
133978	//     "project",
133979	//     "region",
133980	//     "instanceGroupManager"
133981	//   ],
133982	//   "parameters": {
133983	//     "filter": {
133984	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
133985	//       "location": "query",
133986	//       "type": "string"
133987	//     },
133988	//     "instanceGroupManager": {
133989	//       "description": "The name of the managed instance group. It must be a string that meets the requirements in RFC1035, or an unsigned long integer: must match regexp pattern: (?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?)|[1-9][0-9]{0,19}.",
133990	//       "location": "path",
133991	//       "required": true,
133992	//       "type": "string"
133993	//     },
133994	//     "maxResults": {
133995	//       "default": "500",
133996	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
133997	//       "format": "uint32",
133998	//       "location": "query",
133999	//       "minimum": "0",
134000	//       "type": "integer"
134001	//     },
134002	//     "orderBy": {
134003	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
134004	//       "location": "query",
134005	//       "type": "string"
134006	//     },
134007	//     "pageToken": {
134008	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
134009	//       "location": "query",
134010	//       "type": "string"
134011	//     },
134012	//     "project": {
134013	//       "description": "Project ID for this request.",
134014	//       "location": "path",
134015	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
134016	//       "required": true,
134017	//       "type": "string"
134018	//     },
134019	//     "region": {
134020	//       "description": "Name of the region scoping this request. This should conform to RFC1035.",
134021	//       "location": "path",
134022	//       "required": true,
134023	//       "type": "string"
134024	//     },
134025	//     "returnPartialSuccess": {
134026	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
134027	//       "location": "query",
134028	//       "type": "boolean"
134029	//     }
134030	//   },
134031	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listErrors",
134032	//   "response": {
134033	//     "$ref": "RegionInstanceGroupManagersListErrorsResponse"
134034	//   },
134035	//   "scopes": [
134036	//     "https://www.googleapis.com/auth/cloud-platform",
134037	//     "https://www.googleapis.com/auth/compute",
134038	//     "https://www.googleapis.com/auth/compute.readonly"
134039	//   ]
134040	// }
134041
134042}
134043
134044// Pages invokes f for each page of results.
134045// A non-nil error returned from f will halt the iteration.
134046// The provided context supersedes any context provided to the Context method.
134047func (c *RegionInstanceGroupManagersListErrorsCall) Pages(ctx context.Context, f func(*RegionInstanceGroupManagersListErrorsResponse) error) error {
134048	c.ctx_ = ctx
134049	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
134050	for {
134051		x, err := c.Do()
134052		if err != nil {
134053			return err
134054		}
134055		if err := f(x); err != nil {
134056			return err
134057		}
134058		if x.NextPageToken == "" {
134059			return nil
134060		}
134061		c.PageToken(x.NextPageToken)
134062	}
134063}
134064
134065// method id "compute.regionInstanceGroupManagers.listManagedInstances":
134066
134067type RegionInstanceGroupManagersListManagedInstancesCall struct {
134068	s                    *Service
134069	project              string
134070	region               string
134071	instanceGroupManager string
134072	urlParams_           gensupport.URLParams
134073	ctx_                 context.Context
134074	header_              http.Header
134075}
134076
134077// ListManagedInstances: Lists the instances in the managed instance
134078// group and instances that are scheduled to be created. The list
134079// includes any current actions that the group has scheduled for its
134080// instances. The orderBy query parameter is not supported.
134081func (r *RegionInstanceGroupManagersService) ListManagedInstances(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersListManagedInstancesCall {
134082	c := &RegionInstanceGroupManagersListManagedInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
134083	c.project = project
134084	c.region = region
134085	c.instanceGroupManager = instanceGroupManager
134086	return c
134087}
134088
134089// Filter sets the optional parameter "filter": A filter expression that
134090// filters resources listed in the response. The expression must specify
134091// the field name, a comparison operator, and the value that you want to
134092// use for filtering. The value must be a string, a number, or a
134093// boolean. The comparison operator must be either `=`, `!=`, `>`, or
134094// `<`.
134095//
134096// For example, if you are filtering Compute Engine instances, you can
134097// exclude instances named `example-instance` by specifying `name !=
134098// example-instance`.
134099//
134100// You can also filter nested fields. For example, you could specify
134101// `scheduling.automaticRestart = false` to include instances only if
134102// they are not scheduled for automatic restarts. You can use filtering
134103// on nested fields to filter based on resource labels.
134104//
134105// To filter on multiple expressions, provide each separate expression
134106// within parentheses. For example: ``` (scheduling.automaticRestart =
134107// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
134108// is an `AND` expression. However, you can include `AND` and `OR`
134109// expressions explicitly. For example: ``` (cpuPlatform = "Intel
134110// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
134111// (scheduling.automaticRestart = true) ```
134112func (c *RegionInstanceGroupManagersListManagedInstancesCall) Filter(filter string) *RegionInstanceGroupManagersListManagedInstancesCall {
134113	c.urlParams_.Set("filter", filter)
134114	return c
134115}
134116
134117// MaxResults sets the optional parameter "maxResults": The maximum
134118// number of results per page that should be returned. If the number of
134119// available results is larger than `maxResults`, Compute Engine returns
134120// a `nextPageToken` that can be used to get the next page of results in
134121// subsequent list requests. Acceptable values are `0` to `500`,
134122// inclusive. (Default: `500`)
134123func (c *RegionInstanceGroupManagersListManagedInstancesCall) MaxResults(maxResults int64) *RegionInstanceGroupManagersListManagedInstancesCall {
134124	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
134125	return c
134126}
134127
134128// OrderBy sets the optional parameter "orderBy": Sorts list results by
134129// a certain order. By default, results are returned in alphanumerical
134130// order based on the resource name.
134131//
134132// You can also sort results in descending order based on the creation
134133// timestamp using `orderBy="creationTimestamp desc". This sorts
134134// results based on the `creationTimestamp` field in reverse
134135// chronological order (newest result first). Use this to sort resources
134136// like operations so that the newest operation is returned
134137// first.
134138//
134139// Currently, only sorting by `name` or `creationTimestamp desc` is
134140// supported.
134141func (c *RegionInstanceGroupManagersListManagedInstancesCall) OrderBy(orderBy string) *RegionInstanceGroupManagersListManagedInstancesCall {
134142	c.urlParams_.Set("orderBy", orderBy)
134143	return c
134144}
134145
134146// PageToken sets the optional parameter "pageToken": Specifies a page
134147// token to use. Set `pageToken` to the `nextPageToken` returned by a
134148// previous list request to get the next page of results.
134149func (c *RegionInstanceGroupManagersListManagedInstancesCall) PageToken(pageToken string) *RegionInstanceGroupManagersListManagedInstancesCall {
134150	c.urlParams_.Set("pageToken", pageToken)
134151	return c
134152}
134153
134154// ReturnPartialSuccess sets the optional parameter
134155// "returnPartialSuccess": Opt-in for partial success behavior which
134156// provides partial results in case of failure. The default value is
134157// false.
134158func (c *RegionInstanceGroupManagersListManagedInstancesCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionInstanceGroupManagersListManagedInstancesCall {
134159	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
134160	return c
134161}
134162
134163// Fields allows partial responses to be retrieved. See
134164// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
134165// for more information.
134166func (c *RegionInstanceGroupManagersListManagedInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersListManagedInstancesCall {
134167	c.urlParams_.Set("fields", googleapi.CombineFields(s))
134168	return c
134169}
134170
134171// Context sets the context to be used in this call's Do method. Any
134172// pending HTTP request will be aborted if the provided context is
134173// canceled.
134174func (c *RegionInstanceGroupManagersListManagedInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersListManagedInstancesCall {
134175	c.ctx_ = ctx
134176	return c
134177}
134178
134179// Header returns an http.Header that can be modified by the caller to
134180// add HTTP headers to the request.
134181func (c *RegionInstanceGroupManagersListManagedInstancesCall) Header() http.Header {
134182	if c.header_ == nil {
134183		c.header_ = make(http.Header)
134184	}
134185	return c.header_
134186}
134187
134188func (c *RegionInstanceGroupManagersListManagedInstancesCall) doRequest(alt string) (*http.Response, error) {
134189	reqHeaders := make(http.Header)
134190	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
134191	for k, v := range c.header_ {
134192		reqHeaders[k] = v
134193	}
134194	reqHeaders.Set("User-Agent", c.s.userAgent())
134195	var body io.Reader = nil
134196	c.urlParams_.Set("alt", alt)
134197	c.urlParams_.Set("prettyPrint", "false")
134198	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances")
134199	urls += "?" + c.urlParams_.Encode()
134200	req, err := http.NewRequest("POST", urls, body)
134201	if err != nil {
134202		return nil, err
134203	}
134204	req.Header = reqHeaders
134205	googleapi.Expand(req.URL, map[string]string{
134206		"project":              c.project,
134207		"region":               c.region,
134208		"instanceGroupManager": c.instanceGroupManager,
134209	})
134210	return gensupport.SendRequest(c.ctx_, c.s.client, req)
134211}
134212
134213// Do executes the "compute.regionInstanceGroupManagers.listManagedInstances" call.
134214// Exactly one of *RegionInstanceGroupManagersListInstancesResponse or
134215// error will be non-nil. Any non-2xx status code is an error. Response
134216// headers are in either
134217// *RegionInstanceGroupManagersListInstancesResponse.ServerResponse.Heade
134218// r or (if a response was returned at all) in
134219// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
134220// whether the returned error was because http.StatusNotModified was
134221// returned.
134222func (c *RegionInstanceGroupManagersListManagedInstancesCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagersListInstancesResponse, error) {
134223	gensupport.SetOptions(c.urlParams_, opts...)
134224	res, err := c.doRequest("json")
134225	if res != nil && res.StatusCode == http.StatusNotModified {
134226		if res.Body != nil {
134227			res.Body.Close()
134228		}
134229		return nil, &googleapi.Error{
134230			Code:   res.StatusCode,
134231			Header: res.Header,
134232		}
134233	}
134234	if err != nil {
134235		return nil, err
134236	}
134237	defer googleapi.CloseBody(res)
134238	if err := googleapi.CheckResponse(res); err != nil {
134239		return nil, err
134240	}
134241	ret := &RegionInstanceGroupManagersListInstancesResponse{
134242		ServerResponse: googleapi.ServerResponse{
134243			Header:         res.Header,
134244			HTTPStatusCode: res.StatusCode,
134245		},
134246	}
134247	target := &ret
134248	if err := gensupport.DecodeResponse(target, res); err != nil {
134249		return nil, err
134250	}
134251	return ret, nil
134252	// {
134253	//   "description": "Lists the instances in the managed instance group and instances that are scheduled to be created. The list includes any current actions that the group has scheduled for its instances. The orderBy query parameter is not supported.",
134254	//   "httpMethod": "POST",
134255	//   "id": "compute.regionInstanceGroupManagers.listManagedInstances",
134256	//   "parameterOrder": [
134257	//     "project",
134258	//     "region",
134259	//     "instanceGroupManager"
134260	//   ],
134261	//   "parameters": {
134262	//     "filter": {
134263	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
134264	//       "location": "query",
134265	//       "type": "string"
134266	//     },
134267	//     "instanceGroupManager": {
134268	//       "description": "The name of the managed instance group.",
134269	//       "location": "path",
134270	//       "required": true,
134271	//       "type": "string"
134272	//     },
134273	//     "maxResults": {
134274	//       "default": "500",
134275	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
134276	//       "format": "uint32",
134277	//       "location": "query",
134278	//       "minimum": "0",
134279	//       "type": "integer"
134280	//     },
134281	//     "orderBy": {
134282	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
134283	//       "location": "query",
134284	//       "type": "string"
134285	//     },
134286	//     "pageToken": {
134287	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
134288	//       "location": "query",
134289	//       "type": "string"
134290	//     },
134291	//     "project": {
134292	//       "description": "Project ID for this request.",
134293	//       "location": "path",
134294	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
134295	//       "required": true,
134296	//       "type": "string"
134297	//     },
134298	//     "region": {
134299	//       "description": "Name of the region scoping this request.",
134300	//       "location": "path",
134301	//       "required": true,
134302	//       "type": "string"
134303	//     },
134304	//     "returnPartialSuccess": {
134305	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
134306	//       "location": "query",
134307	//       "type": "boolean"
134308	//     }
134309	//   },
134310	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances",
134311	//   "response": {
134312	//     "$ref": "RegionInstanceGroupManagersListInstancesResponse"
134313	//   },
134314	//   "scopes": [
134315	//     "https://www.googleapis.com/auth/cloud-platform",
134316	//     "https://www.googleapis.com/auth/compute",
134317	//     "https://www.googleapis.com/auth/compute.readonly"
134318	//   ]
134319	// }
134320
134321}
134322
134323// Pages invokes f for each page of results.
134324// A non-nil error returned from f will halt the iteration.
134325// The provided context supersedes any context provided to the Context method.
134326func (c *RegionInstanceGroupManagersListManagedInstancesCall) Pages(ctx context.Context, f func(*RegionInstanceGroupManagersListInstancesResponse) error) error {
134327	c.ctx_ = ctx
134328	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
134329	for {
134330		x, err := c.Do()
134331		if err != nil {
134332			return err
134333		}
134334		if err := f(x); err != nil {
134335			return err
134336		}
134337		if x.NextPageToken == "" {
134338			return nil
134339		}
134340		c.PageToken(x.NextPageToken)
134341	}
134342}
134343
134344// method id "compute.regionInstanceGroupManagers.listPerInstanceConfigs":
134345
134346type RegionInstanceGroupManagersListPerInstanceConfigsCall struct {
134347	s                    *Service
134348	project              string
134349	region               string
134350	instanceGroupManager string
134351	urlParams_           gensupport.URLParams
134352	ctx_                 context.Context
134353	header_              http.Header
134354}
134355
134356// ListPerInstanceConfigs: Lists all of the per-instance configs defined
134357// for the managed instance group. The orderBy query parameter is not
134358// supported.
134359func (r *RegionInstanceGroupManagersService) ListPerInstanceConfigs(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
134360	c := &RegionInstanceGroupManagersListPerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
134361	c.project = project
134362	c.region = region
134363	c.instanceGroupManager = instanceGroupManager
134364	return c
134365}
134366
134367// Filter sets the optional parameter "filter": A filter expression that
134368// filters resources listed in the response. The expression must specify
134369// the field name, a comparison operator, and the value that you want to
134370// use for filtering. The value must be a string, a number, or a
134371// boolean. The comparison operator must be either `=`, `!=`, `>`, or
134372// `<`.
134373//
134374// For example, if you are filtering Compute Engine instances, you can
134375// exclude instances named `example-instance` by specifying `name !=
134376// example-instance`.
134377//
134378// You can also filter nested fields. For example, you could specify
134379// `scheduling.automaticRestart = false` to include instances only if
134380// they are not scheduled for automatic restarts. You can use filtering
134381// on nested fields to filter based on resource labels.
134382//
134383// To filter on multiple expressions, provide each separate expression
134384// within parentheses. For example: ``` (scheduling.automaticRestart =
134385// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
134386// is an `AND` expression. However, you can include `AND` and `OR`
134387// expressions explicitly. For example: ``` (cpuPlatform = "Intel
134388// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
134389// (scheduling.automaticRestart = true) ```
134390func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Filter(filter string) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
134391	c.urlParams_.Set("filter", filter)
134392	return c
134393}
134394
134395// MaxResults sets the optional parameter "maxResults": The maximum
134396// number of results per page that should be returned. If the number of
134397// available results is larger than `maxResults`, Compute Engine returns
134398// a `nextPageToken` that can be used to get the next page of results in
134399// subsequent list requests. Acceptable values are `0` to `500`,
134400// inclusive. (Default: `500`)
134401func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) MaxResults(maxResults int64) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
134402	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
134403	return c
134404}
134405
134406// OrderBy sets the optional parameter "orderBy": Sorts list results by
134407// a certain order. By default, results are returned in alphanumerical
134408// order based on the resource name.
134409//
134410// You can also sort results in descending order based on the creation
134411// timestamp using `orderBy="creationTimestamp desc". This sorts
134412// results based on the `creationTimestamp` field in reverse
134413// chronological order (newest result first). Use this to sort resources
134414// like operations so that the newest operation is returned
134415// first.
134416//
134417// Currently, only sorting by `name` or `creationTimestamp desc` is
134418// supported.
134419func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) OrderBy(orderBy string) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
134420	c.urlParams_.Set("orderBy", orderBy)
134421	return c
134422}
134423
134424// PageToken sets the optional parameter "pageToken": Specifies a page
134425// token to use. Set `pageToken` to the `nextPageToken` returned by a
134426// previous list request to get the next page of results.
134427func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) PageToken(pageToken string) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
134428	c.urlParams_.Set("pageToken", pageToken)
134429	return c
134430}
134431
134432// ReturnPartialSuccess sets the optional parameter
134433// "returnPartialSuccess": Opt-in for partial success behavior which
134434// provides partial results in case of failure. The default value is
134435// false.
134436func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
134437	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
134438	return c
134439}
134440
134441// Fields allows partial responses to be retrieved. See
134442// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
134443// for more information.
134444func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
134445	c.urlParams_.Set("fields", googleapi.CombineFields(s))
134446	return c
134447}
134448
134449// Context sets the context to be used in this call's Do method. Any
134450// pending HTTP request will be aborted if the provided context is
134451// canceled.
134452func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Context(ctx context.Context) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
134453	c.ctx_ = ctx
134454	return c
134455}
134456
134457// Header returns an http.Header that can be modified by the caller to
134458// add HTTP headers to the request.
134459func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Header() http.Header {
134460	if c.header_ == nil {
134461		c.header_ = make(http.Header)
134462	}
134463	return c.header_
134464}
134465
134466func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
134467	reqHeaders := make(http.Header)
134468	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
134469	for k, v := range c.header_ {
134470		reqHeaders[k] = v
134471	}
134472	reqHeaders.Set("User-Agent", c.s.userAgent())
134473	var body io.Reader = nil
134474	c.urlParams_.Set("alt", alt)
134475	c.urlParams_.Set("prettyPrint", "false")
134476	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs")
134477	urls += "?" + c.urlParams_.Encode()
134478	req, err := http.NewRequest("POST", urls, body)
134479	if err != nil {
134480		return nil, err
134481	}
134482	req.Header = reqHeaders
134483	googleapi.Expand(req.URL, map[string]string{
134484		"project":              c.project,
134485		"region":               c.region,
134486		"instanceGroupManager": c.instanceGroupManager,
134487	})
134488	return gensupport.SendRequest(c.ctx_, c.s.client, req)
134489}
134490
134491// Do executes the "compute.regionInstanceGroupManagers.listPerInstanceConfigs" call.
134492// Exactly one of *RegionInstanceGroupManagersListInstanceConfigsResp or
134493// error will be non-nil. Any non-2xx status code is an error. Response
134494// headers are in either
134495// *RegionInstanceGroupManagersListInstanceConfigsResp.ServerResponse.Hea
134496// der or (if a response was returned at all) in
134497// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
134498// whether the returned error was because http.StatusNotModified was
134499// returned.
134500func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagersListInstanceConfigsResp, error) {
134501	gensupport.SetOptions(c.urlParams_, opts...)
134502	res, err := c.doRequest("json")
134503	if res != nil && res.StatusCode == http.StatusNotModified {
134504		if res.Body != nil {
134505			res.Body.Close()
134506		}
134507		return nil, &googleapi.Error{
134508			Code:   res.StatusCode,
134509			Header: res.Header,
134510		}
134511	}
134512	if err != nil {
134513		return nil, err
134514	}
134515	defer googleapi.CloseBody(res)
134516	if err := googleapi.CheckResponse(res); err != nil {
134517		return nil, err
134518	}
134519	ret := &RegionInstanceGroupManagersListInstanceConfigsResp{
134520		ServerResponse: googleapi.ServerResponse{
134521			Header:         res.Header,
134522			HTTPStatusCode: res.StatusCode,
134523		},
134524	}
134525	target := &ret
134526	if err := gensupport.DecodeResponse(target, res); err != nil {
134527		return nil, err
134528	}
134529	return ret, nil
134530	// {
134531	//   "description": "Lists all of the per-instance configs defined for the managed instance group. The orderBy query parameter is not supported.",
134532	//   "httpMethod": "POST",
134533	//   "id": "compute.regionInstanceGroupManagers.listPerInstanceConfigs",
134534	//   "parameterOrder": [
134535	//     "project",
134536	//     "region",
134537	//     "instanceGroupManager"
134538	//   ],
134539	//   "parameters": {
134540	//     "filter": {
134541	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
134542	//       "location": "query",
134543	//       "type": "string"
134544	//     },
134545	//     "instanceGroupManager": {
134546	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
134547	//       "location": "path",
134548	//       "required": true,
134549	//       "type": "string"
134550	//     },
134551	//     "maxResults": {
134552	//       "default": "500",
134553	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
134554	//       "format": "uint32",
134555	//       "location": "query",
134556	//       "minimum": "0",
134557	//       "type": "integer"
134558	//     },
134559	//     "orderBy": {
134560	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
134561	//       "location": "query",
134562	//       "type": "string"
134563	//     },
134564	//     "pageToken": {
134565	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
134566	//       "location": "query",
134567	//       "type": "string"
134568	//     },
134569	//     "project": {
134570	//       "description": "Project ID for this request.",
134571	//       "location": "path",
134572	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
134573	//       "required": true,
134574	//       "type": "string"
134575	//     },
134576	//     "region": {
134577	//       "description": "Name of the region scoping this request, should conform to RFC1035.",
134578	//       "location": "path",
134579	//       "required": true,
134580	//       "type": "string"
134581	//     },
134582	//     "returnPartialSuccess": {
134583	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
134584	//       "location": "query",
134585	//       "type": "boolean"
134586	//     }
134587	//   },
134588	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs",
134589	//   "response": {
134590	//     "$ref": "RegionInstanceGroupManagersListInstanceConfigsResp"
134591	//   },
134592	//   "scopes": [
134593	//     "https://www.googleapis.com/auth/cloud-platform",
134594	//     "https://www.googleapis.com/auth/compute",
134595	//     "https://www.googleapis.com/auth/compute.readonly"
134596	//   ]
134597	// }
134598
134599}
134600
134601// Pages invokes f for each page of results.
134602// A non-nil error returned from f will halt the iteration.
134603// The provided context supersedes any context provided to the Context method.
134604func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Pages(ctx context.Context, f func(*RegionInstanceGroupManagersListInstanceConfigsResp) error) error {
134605	c.ctx_ = ctx
134606	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
134607	for {
134608		x, err := c.Do()
134609		if err != nil {
134610			return err
134611		}
134612		if err := f(x); err != nil {
134613			return err
134614		}
134615		if x.NextPageToken == "" {
134616			return nil
134617		}
134618		c.PageToken(x.NextPageToken)
134619	}
134620}
134621
134622// method id "compute.regionInstanceGroupManagers.patch":
134623
134624type RegionInstanceGroupManagersPatchCall struct {
134625	s                    *Service
134626	project              string
134627	region               string
134628	instanceGroupManager string
134629	instancegroupmanager *InstanceGroupManager
134630	urlParams_           gensupport.URLParams
134631	ctx_                 context.Context
134632	header_              http.Header
134633}
134634
134635// Patch: Updates a managed instance group using the information that
134636// you specify in the request. This operation is marked as DONE when the
134637// group is patched even if the instances in the group are still in the
134638// process of being patched. You must separately verify the status of
134639// the individual instances with the listmanagedinstances method. This
134640// method supports PATCH semantics and uses the JSON merge patch format
134641// and processing rules.
134642func (r *RegionInstanceGroupManagersService) Patch(project string, region string, instanceGroupManager string, instancegroupmanager *InstanceGroupManager) *RegionInstanceGroupManagersPatchCall {
134643	c := &RegionInstanceGroupManagersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
134644	c.project = project
134645	c.region = region
134646	c.instanceGroupManager = instanceGroupManager
134647	c.instancegroupmanager = instancegroupmanager
134648	return c
134649}
134650
134651// RequestId sets the optional parameter "requestId": An optional
134652// request ID to identify requests. Specify a unique request ID so that
134653// if you must retry your request, the server will know to ignore the
134654// request if it has already been completed.
134655//
134656// For example, consider a situation where you make an initial request
134657// and the request times out. If you make the request again with the
134658// same request ID, the server can check if original operation with the
134659// same request ID was received, and if so, will ignore the second
134660// request. This prevents clients from accidentally creating duplicate
134661// commitments.
134662//
134663// The request ID must be a valid UUID with the exception that zero UUID
134664// is not supported (00000000-0000-0000-0000-000000000000).
134665func (c *RegionInstanceGroupManagersPatchCall) RequestId(requestId string) *RegionInstanceGroupManagersPatchCall {
134666	c.urlParams_.Set("requestId", requestId)
134667	return c
134668}
134669
134670// Fields allows partial responses to be retrieved. See
134671// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
134672// for more information.
134673func (c *RegionInstanceGroupManagersPatchCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersPatchCall {
134674	c.urlParams_.Set("fields", googleapi.CombineFields(s))
134675	return c
134676}
134677
134678// Context sets the context to be used in this call's Do method. Any
134679// pending HTTP request will be aborted if the provided context is
134680// canceled.
134681func (c *RegionInstanceGroupManagersPatchCall) Context(ctx context.Context) *RegionInstanceGroupManagersPatchCall {
134682	c.ctx_ = ctx
134683	return c
134684}
134685
134686// Header returns an http.Header that can be modified by the caller to
134687// add HTTP headers to the request.
134688func (c *RegionInstanceGroupManagersPatchCall) Header() http.Header {
134689	if c.header_ == nil {
134690		c.header_ = make(http.Header)
134691	}
134692	return c.header_
134693}
134694
134695func (c *RegionInstanceGroupManagersPatchCall) doRequest(alt string) (*http.Response, error) {
134696	reqHeaders := make(http.Header)
134697	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
134698	for k, v := range c.header_ {
134699		reqHeaders[k] = v
134700	}
134701	reqHeaders.Set("User-Agent", c.s.userAgent())
134702	var body io.Reader = nil
134703	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
134704	if err != nil {
134705		return nil, err
134706	}
134707	reqHeaders.Set("Content-Type", "application/json")
134708	c.urlParams_.Set("alt", alt)
134709	c.urlParams_.Set("prettyPrint", "false")
134710	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}")
134711	urls += "?" + c.urlParams_.Encode()
134712	req, err := http.NewRequest("PATCH", urls, body)
134713	if err != nil {
134714		return nil, err
134715	}
134716	req.Header = reqHeaders
134717	googleapi.Expand(req.URL, map[string]string{
134718		"project":              c.project,
134719		"region":               c.region,
134720		"instanceGroupManager": c.instanceGroupManager,
134721	})
134722	return gensupport.SendRequest(c.ctx_, c.s.client, req)
134723}
134724
134725// Do executes the "compute.regionInstanceGroupManagers.patch" call.
134726// Exactly one of *Operation or error will be non-nil. Any non-2xx
134727// status code is an error. Response headers are in either
134728// *Operation.ServerResponse.Header or (if a response was returned at
134729// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
134730// to check whether the returned error was because
134731// http.StatusNotModified was returned.
134732func (c *RegionInstanceGroupManagersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
134733	gensupport.SetOptions(c.urlParams_, opts...)
134734	res, err := c.doRequest("json")
134735	if res != nil && res.StatusCode == http.StatusNotModified {
134736		if res.Body != nil {
134737			res.Body.Close()
134738		}
134739		return nil, &googleapi.Error{
134740			Code:   res.StatusCode,
134741			Header: res.Header,
134742		}
134743	}
134744	if err != nil {
134745		return nil, err
134746	}
134747	defer googleapi.CloseBody(res)
134748	if err := googleapi.CheckResponse(res); err != nil {
134749		return nil, err
134750	}
134751	ret := &Operation{
134752		ServerResponse: googleapi.ServerResponse{
134753			Header:         res.Header,
134754			HTTPStatusCode: res.StatusCode,
134755		},
134756	}
134757	target := &ret
134758	if err := gensupport.DecodeResponse(target, res); err != nil {
134759		return nil, err
134760	}
134761	return ret, nil
134762	// {
134763	//   "description": "Updates a managed instance group using the information that you specify in the request. This operation is marked as DONE when the group is patched even if the instances in the group are still in the process of being patched. You must separately verify the status of the individual instances with the listmanagedinstances method. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.",
134764	//   "httpMethod": "PATCH",
134765	//   "id": "compute.regionInstanceGroupManagers.patch",
134766	//   "parameterOrder": [
134767	//     "project",
134768	//     "region",
134769	//     "instanceGroupManager"
134770	//   ],
134771	//   "parameters": {
134772	//     "instanceGroupManager": {
134773	//       "description": "The name of the instance group manager.",
134774	//       "location": "path",
134775	//       "required": true,
134776	//       "type": "string"
134777	//     },
134778	//     "project": {
134779	//       "description": "Project ID for this request.",
134780	//       "location": "path",
134781	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
134782	//       "required": true,
134783	//       "type": "string"
134784	//     },
134785	//     "region": {
134786	//       "description": "Name of the region scoping this request.",
134787	//       "location": "path",
134788	//       "required": true,
134789	//       "type": "string"
134790	//     },
134791	//     "requestId": {
134792	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
134793	//       "location": "query",
134794	//       "type": "string"
134795	//     }
134796	//   },
134797	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
134798	//   "request": {
134799	//     "$ref": "InstanceGroupManager"
134800	//   },
134801	//   "response": {
134802	//     "$ref": "Operation"
134803	//   },
134804	//   "scopes": [
134805	//     "https://www.googleapis.com/auth/cloud-platform",
134806	//     "https://www.googleapis.com/auth/compute"
134807	//   ]
134808	// }
134809
134810}
134811
134812// method id "compute.regionInstanceGroupManagers.patchPerInstanceConfigs":
134813
134814type RegionInstanceGroupManagersPatchPerInstanceConfigsCall struct {
134815	s                                                *Service
134816	project                                          string
134817	region                                           string
134818	instanceGroupManager                             string
134819	regioninstancegroupmanagerpatchinstanceconfigreq *RegionInstanceGroupManagerPatchInstanceConfigReq
134820	urlParams_                                       gensupport.URLParams
134821	ctx_                                             context.Context
134822	header_                                          http.Header
134823}
134824
134825// PatchPerInstanceConfigs: Inserts or patches per-instance configs for
134826// the managed instance group. perInstanceConfig.name serves as a key
134827// used to distinguish whether to perform insert or patch.
134828func (r *RegionInstanceGroupManagersService) PatchPerInstanceConfigs(project string, region string, instanceGroupManager string, regioninstancegroupmanagerpatchinstanceconfigreq *RegionInstanceGroupManagerPatchInstanceConfigReq) *RegionInstanceGroupManagersPatchPerInstanceConfigsCall {
134829	c := &RegionInstanceGroupManagersPatchPerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
134830	c.project = project
134831	c.region = region
134832	c.instanceGroupManager = instanceGroupManager
134833	c.regioninstancegroupmanagerpatchinstanceconfigreq = regioninstancegroupmanagerpatchinstanceconfigreq
134834	return c
134835}
134836
134837// RequestId sets the optional parameter "requestId": An optional
134838// request ID to identify requests. Specify a unique request ID so that
134839// if you must retry your request, the server will know to ignore the
134840// request if it has already been completed.
134841//
134842// For example, consider a situation where you make an initial request
134843// and the request times out. If you make the request again with the
134844// same request ID, the server can check if original operation with the
134845// same request ID was received, and if so, will ignore the second
134846// request. This prevents clients from accidentally creating duplicate
134847// commitments.
134848//
134849// The request ID must be a valid UUID with the exception that zero UUID
134850// is not supported (00000000-0000-0000-0000-000000000000).
134851func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) RequestId(requestId string) *RegionInstanceGroupManagersPatchPerInstanceConfigsCall {
134852	c.urlParams_.Set("requestId", requestId)
134853	return c
134854}
134855
134856// Fields allows partial responses to be retrieved. See
134857// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
134858// for more information.
134859func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersPatchPerInstanceConfigsCall {
134860	c.urlParams_.Set("fields", googleapi.CombineFields(s))
134861	return c
134862}
134863
134864// Context sets the context to be used in this call's Do method. Any
134865// pending HTTP request will be aborted if the provided context is
134866// canceled.
134867func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) Context(ctx context.Context) *RegionInstanceGroupManagersPatchPerInstanceConfigsCall {
134868	c.ctx_ = ctx
134869	return c
134870}
134871
134872// Header returns an http.Header that can be modified by the caller to
134873// add HTTP headers to the request.
134874func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) Header() http.Header {
134875	if c.header_ == nil {
134876		c.header_ = make(http.Header)
134877	}
134878	return c.header_
134879}
134880
134881func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
134882	reqHeaders := make(http.Header)
134883	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
134884	for k, v := range c.header_ {
134885		reqHeaders[k] = v
134886	}
134887	reqHeaders.Set("User-Agent", c.s.userAgent())
134888	var body io.Reader = nil
134889	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerpatchinstanceconfigreq)
134890	if err != nil {
134891		return nil, err
134892	}
134893	reqHeaders.Set("Content-Type", "application/json")
134894	c.urlParams_.Set("alt", alt)
134895	c.urlParams_.Set("prettyPrint", "false")
134896	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs")
134897	urls += "?" + c.urlParams_.Encode()
134898	req, err := http.NewRequest("POST", urls, body)
134899	if err != nil {
134900		return nil, err
134901	}
134902	req.Header = reqHeaders
134903	googleapi.Expand(req.URL, map[string]string{
134904		"project":              c.project,
134905		"region":               c.region,
134906		"instanceGroupManager": c.instanceGroupManager,
134907	})
134908	return gensupport.SendRequest(c.ctx_, c.s.client, req)
134909}
134910
134911// Do executes the "compute.regionInstanceGroupManagers.patchPerInstanceConfigs" call.
134912// Exactly one of *Operation or error will be non-nil. Any non-2xx
134913// status code is an error. Response headers are in either
134914// *Operation.ServerResponse.Header or (if a response was returned at
134915// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
134916// to check whether the returned error was because
134917// http.StatusNotModified was returned.
134918func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
134919	gensupport.SetOptions(c.urlParams_, opts...)
134920	res, err := c.doRequest("json")
134921	if res != nil && res.StatusCode == http.StatusNotModified {
134922		if res.Body != nil {
134923			res.Body.Close()
134924		}
134925		return nil, &googleapi.Error{
134926			Code:   res.StatusCode,
134927			Header: res.Header,
134928		}
134929	}
134930	if err != nil {
134931		return nil, err
134932	}
134933	defer googleapi.CloseBody(res)
134934	if err := googleapi.CheckResponse(res); err != nil {
134935		return nil, err
134936	}
134937	ret := &Operation{
134938		ServerResponse: googleapi.ServerResponse{
134939			Header:         res.Header,
134940			HTTPStatusCode: res.StatusCode,
134941		},
134942	}
134943	target := &ret
134944	if err := gensupport.DecodeResponse(target, res); err != nil {
134945		return nil, err
134946	}
134947	return ret, nil
134948	// {
134949	//   "description": "Inserts or patches per-instance configs for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch.",
134950	//   "httpMethod": "POST",
134951	//   "id": "compute.regionInstanceGroupManagers.patchPerInstanceConfigs",
134952	//   "parameterOrder": [
134953	//     "project",
134954	//     "region",
134955	//     "instanceGroupManager"
134956	//   ],
134957	//   "parameters": {
134958	//     "instanceGroupManager": {
134959	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
134960	//       "location": "path",
134961	//       "required": true,
134962	//       "type": "string"
134963	//     },
134964	//     "project": {
134965	//       "description": "Project ID for this request.",
134966	//       "location": "path",
134967	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
134968	//       "required": true,
134969	//       "type": "string"
134970	//     },
134971	//     "region": {
134972	//       "description": "Name of the region scoping this request, should conform to RFC1035.",
134973	//       "location": "path",
134974	//       "required": true,
134975	//       "type": "string"
134976	//     },
134977	//     "requestId": {
134978	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
134979	//       "location": "query",
134980	//       "type": "string"
134981	//     }
134982	//   },
134983	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs",
134984	//   "request": {
134985	//     "$ref": "RegionInstanceGroupManagerPatchInstanceConfigReq"
134986	//   },
134987	//   "response": {
134988	//     "$ref": "Operation"
134989	//   },
134990	//   "scopes": [
134991	//     "https://www.googleapis.com/auth/cloud-platform",
134992	//     "https://www.googleapis.com/auth/compute"
134993	//   ]
134994	// }
134995
134996}
134997
134998// method id "compute.regionInstanceGroupManagers.recreateInstances":
134999
135000type RegionInstanceGroupManagersRecreateInstancesCall struct {
135001	s                                          *Service
135002	project                                    string
135003	region                                     string
135004	instanceGroupManager                       string
135005	regioninstancegroupmanagersrecreaterequest *RegionInstanceGroupManagersRecreateRequest
135006	urlParams_                                 gensupport.URLParams
135007	ctx_                                       context.Context
135008	header_                                    http.Header
135009}
135010
135011// RecreateInstances: Flags the specified instances in the managed
135012// instance group to be immediately recreated. The instances are deleted
135013// and recreated using the current instance template for the managed
135014// instance group. This operation is marked as DONE when the flag is set
135015// even if the instances have not yet been recreated. You must
135016// separately verify the status of the recreating action with the
135017// listmanagedinstances method.
135018//
135019// If the group is part of a backend service that has enabled connection
135020// draining, it can take up to 60 seconds after the connection draining
135021// duration has elapsed before the VM instance is removed or
135022// deleted.
135023//
135024// You can specify a maximum of 1000 instances with this method per
135025// request.
135026func (r *RegionInstanceGroupManagersService) RecreateInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersrecreaterequest *RegionInstanceGroupManagersRecreateRequest) *RegionInstanceGroupManagersRecreateInstancesCall {
135027	c := &RegionInstanceGroupManagersRecreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135028	c.project = project
135029	c.region = region
135030	c.instanceGroupManager = instanceGroupManager
135031	c.regioninstancegroupmanagersrecreaterequest = regioninstancegroupmanagersrecreaterequest
135032	return c
135033}
135034
135035// RequestId sets the optional parameter "requestId": An optional
135036// request ID to identify requests. Specify a unique request ID so that
135037// if you must retry your request, the server will know to ignore the
135038// request if it has already been completed.
135039//
135040// For example, consider a situation where you make an initial request
135041// and the request times out. If you make the request again with the
135042// same request ID, the server can check if original operation with the
135043// same request ID was received, and if so, will ignore the second
135044// request. This prevents clients from accidentally creating duplicate
135045// commitments.
135046//
135047// The request ID must be a valid UUID with the exception that zero UUID
135048// is not supported (00000000-0000-0000-0000-000000000000).
135049func (c *RegionInstanceGroupManagersRecreateInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersRecreateInstancesCall {
135050	c.urlParams_.Set("requestId", requestId)
135051	return c
135052}
135053
135054// Fields allows partial responses to be retrieved. See
135055// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135056// for more information.
135057func (c *RegionInstanceGroupManagersRecreateInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersRecreateInstancesCall {
135058	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135059	return c
135060}
135061
135062// Context sets the context to be used in this call's Do method. Any
135063// pending HTTP request will be aborted if the provided context is
135064// canceled.
135065func (c *RegionInstanceGroupManagersRecreateInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersRecreateInstancesCall {
135066	c.ctx_ = ctx
135067	return c
135068}
135069
135070// Header returns an http.Header that can be modified by the caller to
135071// add HTTP headers to the request.
135072func (c *RegionInstanceGroupManagersRecreateInstancesCall) Header() http.Header {
135073	if c.header_ == nil {
135074		c.header_ = make(http.Header)
135075	}
135076	return c.header_
135077}
135078
135079func (c *RegionInstanceGroupManagersRecreateInstancesCall) doRequest(alt string) (*http.Response, error) {
135080	reqHeaders := make(http.Header)
135081	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
135082	for k, v := range c.header_ {
135083		reqHeaders[k] = v
135084	}
135085	reqHeaders.Set("User-Agent", c.s.userAgent())
135086	var body io.Reader = nil
135087	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagersrecreaterequest)
135088	if err != nil {
135089		return nil, err
135090	}
135091	reqHeaders.Set("Content-Type", "application/json")
135092	c.urlParams_.Set("alt", alt)
135093	c.urlParams_.Set("prettyPrint", "false")
135094	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/recreateInstances")
135095	urls += "?" + c.urlParams_.Encode()
135096	req, err := http.NewRequest("POST", urls, body)
135097	if err != nil {
135098		return nil, err
135099	}
135100	req.Header = reqHeaders
135101	googleapi.Expand(req.URL, map[string]string{
135102		"project":              c.project,
135103		"region":               c.region,
135104		"instanceGroupManager": c.instanceGroupManager,
135105	})
135106	return gensupport.SendRequest(c.ctx_, c.s.client, req)
135107}
135108
135109// Do executes the "compute.regionInstanceGroupManagers.recreateInstances" call.
135110// Exactly one of *Operation or error will be non-nil. Any non-2xx
135111// status code is an error. Response headers are in either
135112// *Operation.ServerResponse.Header or (if a response was returned at
135113// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
135114// to check whether the returned error was because
135115// http.StatusNotModified was returned.
135116func (c *RegionInstanceGroupManagersRecreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
135117	gensupport.SetOptions(c.urlParams_, opts...)
135118	res, err := c.doRequest("json")
135119	if res != nil && res.StatusCode == http.StatusNotModified {
135120		if res.Body != nil {
135121			res.Body.Close()
135122		}
135123		return nil, &googleapi.Error{
135124			Code:   res.StatusCode,
135125			Header: res.Header,
135126		}
135127	}
135128	if err != nil {
135129		return nil, err
135130	}
135131	defer googleapi.CloseBody(res)
135132	if err := googleapi.CheckResponse(res); err != nil {
135133		return nil, err
135134	}
135135	ret := &Operation{
135136		ServerResponse: googleapi.ServerResponse{
135137			Header:         res.Header,
135138			HTTPStatusCode: res.StatusCode,
135139		},
135140	}
135141	target := &ret
135142	if err := gensupport.DecodeResponse(target, res); err != nil {
135143		return nil, err
135144	}
135145	return ret, nil
135146	// {
135147	//   "description": "Flags the specified instances in the managed instance group to be immediately recreated. The instances are deleted and recreated using the current instance template for the managed instance group. This operation is marked as DONE when the flag is set even if the instances have not yet been recreated. You must separately verify the status of the recreating action with the listmanagedinstances method.\n\nIf the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted.\n\nYou can specify a maximum of 1000 instances with this method per request.",
135148	//   "httpMethod": "POST",
135149	//   "id": "compute.regionInstanceGroupManagers.recreateInstances",
135150	//   "parameterOrder": [
135151	//     "project",
135152	//     "region",
135153	//     "instanceGroupManager"
135154	//   ],
135155	//   "parameters": {
135156	//     "instanceGroupManager": {
135157	//       "description": "Name of the managed instance group.",
135158	//       "location": "path",
135159	//       "required": true,
135160	//       "type": "string"
135161	//     },
135162	//     "project": {
135163	//       "description": "Project ID for this request.",
135164	//       "location": "path",
135165	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
135166	//       "required": true,
135167	//       "type": "string"
135168	//     },
135169	//     "region": {
135170	//       "description": "Name of the region scoping this request.",
135171	//       "location": "path",
135172	//       "required": true,
135173	//       "type": "string"
135174	//     },
135175	//     "requestId": {
135176	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
135177	//       "location": "query",
135178	//       "type": "string"
135179	//     }
135180	//   },
135181	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/recreateInstances",
135182	//   "request": {
135183	//     "$ref": "RegionInstanceGroupManagersRecreateRequest"
135184	//   },
135185	//   "response": {
135186	//     "$ref": "Operation"
135187	//   },
135188	//   "scopes": [
135189	//     "https://www.googleapis.com/auth/cloud-platform",
135190	//     "https://www.googleapis.com/auth/compute"
135191	//   ]
135192	// }
135193
135194}
135195
135196// method id "compute.regionInstanceGroupManagers.resize":
135197
135198type RegionInstanceGroupManagersResizeCall struct {
135199	s                    *Service
135200	project              string
135201	region               string
135202	instanceGroupManager string
135203	urlParams_           gensupport.URLParams
135204	ctx_                 context.Context
135205	header_              http.Header
135206}
135207
135208// Resize: Changes the intended size of the managed instance group. If
135209// you increase the size, the group creates new instances using the
135210// current instance template. If you decrease the size, the group
135211// deletes one or more instances.
135212//
135213// The resize operation is marked DONE if the resize request is
135214// successful. The underlying actions take additional time. You must
135215// separately verify the status of the creating or deleting actions with
135216// the listmanagedinstances method.
135217//
135218// If the group is part of a backend service that has enabled connection
135219// draining, it can take up to 60 seconds after the connection draining
135220// duration has elapsed before the VM instance is removed or deleted.
135221func (r *RegionInstanceGroupManagersService) Resize(project string, region string, instanceGroupManager string, size int64) *RegionInstanceGroupManagersResizeCall {
135222	c := &RegionInstanceGroupManagersResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135223	c.project = project
135224	c.region = region
135225	c.instanceGroupManager = instanceGroupManager
135226	c.urlParams_.Set("size", fmt.Sprint(size))
135227	return c
135228}
135229
135230// RequestId sets the optional parameter "requestId": An optional
135231// request ID to identify requests. Specify a unique request ID so that
135232// if you must retry your request, the server will know to ignore the
135233// request if it has already been completed.
135234//
135235// For example, consider a situation where you make an initial request
135236// and the request times out. If you make the request again with the
135237// same request ID, the server can check if original operation with the
135238// same request ID was received, and if so, will ignore the second
135239// request. This prevents clients from accidentally creating duplicate
135240// commitments.
135241//
135242// The request ID must be a valid UUID with the exception that zero UUID
135243// is not supported (00000000-0000-0000-0000-000000000000).
135244func (c *RegionInstanceGroupManagersResizeCall) RequestId(requestId string) *RegionInstanceGroupManagersResizeCall {
135245	c.urlParams_.Set("requestId", requestId)
135246	return c
135247}
135248
135249// Fields allows partial responses to be retrieved. See
135250// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135251// for more information.
135252func (c *RegionInstanceGroupManagersResizeCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersResizeCall {
135253	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135254	return c
135255}
135256
135257// Context sets the context to be used in this call's Do method. Any
135258// pending HTTP request will be aborted if the provided context is
135259// canceled.
135260func (c *RegionInstanceGroupManagersResizeCall) Context(ctx context.Context) *RegionInstanceGroupManagersResizeCall {
135261	c.ctx_ = ctx
135262	return c
135263}
135264
135265// Header returns an http.Header that can be modified by the caller to
135266// add HTTP headers to the request.
135267func (c *RegionInstanceGroupManagersResizeCall) Header() http.Header {
135268	if c.header_ == nil {
135269		c.header_ = make(http.Header)
135270	}
135271	return c.header_
135272}
135273
135274func (c *RegionInstanceGroupManagersResizeCall) doRequest(alt string) (*http.Response, error) {
135275	reqHeaders := make(http.Header)
135276	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
135277	for k, v := range c.header_ {
135278		reqHeaders[k] = v
135279	}
135280	reqHeaders.Set("User-Agent", c.s.userAgent())
135281	var body io.Reader = nil
135282	c.urlParams_.Set("alt", alt)
135283	c.urlParams_.Set("prettyPrint", "false")
135284	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resize")
135285	urls += "?" + c.urlParams_.Encode()
135286	req, err := http.NewRequest("POST", urls, body)
135287	if err != nil {
135288		return nil, err
135289	}
135290	req.Header = reqHeaders
135291	googleapi.Expand(req.URL, map[string]string{
135292		"project":              c.project,
135293		"region":               c.region,
135294		"instanceGroupManager": c.instanceGroupManager,
135295	})
135296	return gensupport.SendRequest(c.ctx_, c.s.client, req)
135297}
135298
135299// Do executes the "compute.regionInstanceGroupManagers.resize" call.
135300// Exactly one of *Operation or error will be non-nil. Any non-2xx
135301// status code is an error. Response headers are in either
135302// *Operation.ServerResponse.Header or (if a response was returned at
135303// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
135304// to check whether the returned error was because
135305// http.StatusNotModified was returned.
135306func (c *RegionInstanceGroupManagersResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
135307	gensupport.SetOptions(c.urlParams_, opts...)
135308	res, err := c.doRequest("json")
135309	if res != nil && res.StatusCode == http.StatusNotModified {
135310		if res.Body != nil {
135311			res.Body.Close()
135312		}
135313		return nil, &googleapi.Error{
135314			Code:   res.StatusCode,
135315			Header: res.Header,
135316		}
135317	}
135318	if err != nil {
135319		return nil, err
135320	}
135321	defer googleapi.CloseBody(res)
135322	if err := googleapi.CheckResponse(res); err != nil {
135323		return nil, err
135324	}
135325	ret := &Operation{
135326		ServerResponse: googleapi.ServerResponse{
135327			Header:         res.Header,
135328			HTTPStatusCode: res.StatusCode,
135329		},
135330	}
135331	target := &ret
135332	if err := gensupport.DecodeResponse(target, res); err != nil {
135333		return nil, err
135334	}
135335	return ret, nil
135336	// {
135337	//   "description": "Changes the intended size of the managed instance group. If you increase the size, the group creates new instances using the current instance template. If you decrease the size, the group deletes one or more instances.\n\nThe resize operation is marked DONE if the resize request is successful. The underlying actions take additional time. You must separately verify the status of the creating or deleting actions with the listmanagedinstances method.\n\nIf the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted.",
135338	//   "httpMethod": "POST",
135339	//   "id": "compute.regionInstanceGroupManagers.resize",
135340	//   "parameterOrder": [
135341	//     "project",
135342	//     "region",
135343	//     "instanceGroupManager",
135344	//     "size"
135345	//   ],
135346	//   "parameters": {
135347	//     "instanceGroupManager": {
135348	//       "description": "Name of the managed instance group.",
135349	//       "location": "path",
135350	//       "required": true,
135351	//       "type": "string"
135352	//     },
135353	//     "project": {
135354	//       "description": "Project ID for this request.",
135355	//       "location": "path",
135356	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
135357	//       "required": true,
135358	//       "type": "string"
135359	//     },
135360	//     "region": {
135361	//       "description": "Name of the region scoping this request.",
135362	//       "location": "path",
135363	//       "required": true,
135364	//       "type": "string"
135365	//     },
135366	//     "requestId": {
135367	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
135368	//       "location": "query",
135369	//       "type": "string"
135370	//     },
135371	//     "size": {
135372	//       "description": "Number of instances that should exist in this instance group manager.",
135373	//       "format": "int32",
135374	//       "location": "query",
135375	//       "minimum": "0",
135376	//       "required": true,
135377	//       "type": "integer"
135378	//     }
135379	//   },
135380	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resize",
135381	//   "response": {
135382	//     "$ref": "Operation"
135383	//   },
135384	//   "scopes": [
135385	//     "https://www.googleapis.com/auth/cloud-platform",
135386	//     "https://www.googleapis.com/auth/compute"
135387	//   ]
135388	// }
135389
135390}
135391
135392// method id "compute.regionInstanceGroupManagers.setAutoHealingPolicies":
135393
135394type RegionInstanceGroupManagersSetAutoHealingPoliciesCall struct {
135395	s                                                *Service
135396	project                                          string
135397	region                                           string
135398	instanceGroupManager                             string
135399	regioninstancegroupmanagerssetautohealingrequest *RegionInstanceGroupManagersSetAutoHealingRequest
135400	urlParams_                                       gensupport.URLParams
135401	ctx_                                             context.Context
135402	header_                                          http.Header
135403}
135404
135405// SetAutoHealingPolicies: Modifies the autohealing policy for the
135406// instances in this managed instance group. [Deprecated] This method is
135407// deprecated. Use regionInstanceGroupManagers.patch instead.
135408func (r *RegionInstanceGroupManagersService) SetAutoHealingPolicies(project string, region string, instanceGroupManager string, regioninstancegroupmanagerssetautohealingrequest *RegionInstanceGroupManagersSetAutoHealingRequest) *RegionInstanceGroupManagersSetAutoHealingPoliciesCall {
135409	c := &RegionInstanceGroupManagersSetAutoHealingPoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135410	c.project = project
135411	c.region = region
135412	c.instanceGroupManager = instanceGroupManager
135413	c.regioninstancegroupmanagerssetautohealingrequest = regioninstancegroupmanagerssetautohealingrequest
135414	return c
135415}
135416
135417// RequestId sets the optional parameter "requestId": An optional
135418// request ID to identify requests. Specify a unique request ID so that
135419// if you must retry your request, the server will know to ignore the
135420// request if it has already been completed.
135421//
135422// For example, consider a situation where you make an initial request
135423// and the request times out. If you make the request again with the
135424// same request ID, the server can check if original operation with the
135425// same request ID was received, and if so, will ignore the second
135426// request. This prevents clients from accidentally creating duplicate
135427// commitments.
135428//
135429// The request ID must be a valid UUID with the exception that zero UUID
135430// is not supported (00000000-0000-0000-0000-000000000000).
135431func (c *RegionInstanceGroupManagersSetAutoHealingPoliciesCall) RequestId(requestId string) *RegionInstanceGroupManagersSetAutoHealingPoliciesCall {
135432	c.urlParams_.Set("requestId", requestId)
135433	return c
135434}
135435
135436// Fields allows partial responses to be retrieved. See
135437// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135438// for more information.
135439func (c *RegionInstanceGroupManagersSetAutoHealingPoliciesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersSetAutoHealingPoliciesCall {
135440	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135441	return c
135442}
135443
135444// Context sets the context to be used in this call's Do method. Any
135445// pending HTTP request will be aborted if the provided context is
135446// canceled.
135447func (c *RegionInstanceGroupManagersSetAutoHealingPoliciesCall) Context(ctx context.Context) *RegionInstanceGroupManagersSetAutoHealingPoliciesCall {
135448	c.ctx_ = ctx
135449	return c
135450}
135451
135452// Header returns an http.Header that can be modified by the caller to
135453// add HTTP headers to the request.
135454func (c *RegionInstanceGroupManagersSetAutoHealingPoliciesCall) Header() http.Header {
135455	if c.header_ == nil {
135456		c.header_ = make(http.Header)
135457	}
135458	return c.header_
135459}
135460
135461func (c *RegionInstanceGroupManagersSetAutoHealingPoliciesCall) doRequest(alt string) (*http.Response, error) {
135462	reqHeaders := make(http.Header)
135463	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
135464	for k, v := range c.header_ {
135465		reqHeaders[k] = v
135466	}
135467	reqHeaders.Set("User-Agent", c.s.userAgent())
135468	var body io.Reader = nil
135469	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerssetautohealingrequest)
135470	if err != nil {
135471		return nil, err
135472	}
135473	reqHeaders.Set("Content-Type", "application/json")
135474	c.urlParams_.Set("alt", alt)
135475	c.urlParams_.Set("prettyPrint", "false")
135476	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setAutoHealingPolicies")
135477	urls += "?" + c.urlParams_.Encode()
135478	req, err := http.NewRequest("POST", urls, body)
135479	if err != nil {
135480		return nil, err
135481	}
135482	req.Header = reqHeaders
135483	googleapi.Expand(req.URL, map[string]string{
135484		"project":              c.project,
135485		"region":               c.region,
135486		"instanceGroupManager": c.instanceGroupManager,
135487	})
135488	return gensupport.SendRequest(c.ctx_, c.s.client, req)
135489}
135490
135491// Do executes the "compute.regionInstanceGroupManagers.setAutoHealingPolicies" call.
135492// Exactly one of *Operation or error will be non-nil. Any non-2xx
135493// status code is an error. Response headers are in either
135494// *Operation.ServerResponse.Header or (if a response was returned at
135495// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
135496// to check whether the returned error was because
135497// http.StatusNotModified was returned.
135498func (c *RegionInstanceGroupManagersSetAutoHealingPoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
135499	gensupport.SetOptions(c.urlParams_, opts...)
135500	res, err := c.doRequest("json")
135501	if res != nil && res.StatusCode == http.StatusNotModified {
135502		if res.Body != nil {
135503			res.Body.Close()
135504		}
135505		return nil, &googleapi.Error{
135506			Code:   res.StatusCode,
135507			Header: res.Header,
135508		}
135509	}
135510	if err != nil {
135511		return nil, err
135512	}
135513	defer googleapi.CloseBody(res)
135514	if err := googleapi.CheckResponse(res); err != nil {
135515		return nil, err
135516	}
135517	ret := &Operation{
135518		ServerResponse: googleapi.ServerResponse{
135519			Header:         res.Header,
135520			HTTPStatusCode: res.StatusCode,
135521		},
135522	}
135523	target := &ret
135524	if err := gensupport.DecodeResponse(target, res); err != nil {
135525		return nil, err
135526	}
135527	return ret, nil
135528	// {
135529	//   "description": "Modifies the autohealing policy for the instances in this managed instance group. [Deprecated] This method is deprecated. Use regionInstanceGroupManagers.patch instead.",
135530	//   "httpMethod": "POST",
135531	//   "id": "compute.regionInstanceGroupManagers.setAutoHealingPolicies",
135532	//   "parameterOrder": [
135533	//     "project",
135534	//     "region",
135535	//     "instanceGroupManager"
135536	//   ],
135537	//   "parameters": {
135538	//     "instanceGroupManager": {
135539	//       "description": "Name of the managed instance group.",
135540	//       "location": "path",
135541	//       "required": true,
135542	//       "type": "string"
135543	//     },
135544	//     "project": {
135545	//       "description": "Project ID for this request.",
135546	//       "location": "path",
135547	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
135548	//       "required": true,
135549	//       "type": "string"
135550	//     },
135551	//     "region": {
135552	//       "description": "Name of the region scoping this request.",
135553	//       "location": "path",
135554	//       "required": true,
135555	//       "type": "string"
135556	//     },
135557	//     "requestId": {
135558	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
135559	//       "location": "query",
135560	//       "type": "string"
135561	//     }
135562	//   },
135563	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setAutoHealingPolicies",
135564	//   "request": {
135565	//     "$ref": "RegionInstanceGroupManagersSetAutoHealingRequest"
135566	//   },
135567	//   "response": {
135568	//     "$ref": "Operation"
135569	//   },
135570	//   "scopes": [
135571	//     "https://www.googleapis.com/auth/cloud-platform",
135572	//     "https://www.googleapis.com/auth/compute"
135573	//   ]
135574	// }
135575
135576}
135577
135578// method id "compute.regionInstanceGroupManagers.setInstanceTemplate":
135579
135580type RegionInstanceGroupManagersSetInstanceTemplateCall struct {
135581	s                                             *Service
135582	project                                       string
135583	region                                        string
135584	instanceGroupManager                          string
135585	regioninstancegroupmanagerssettemplaterequest *RegionInstanceGroupManagersSetTemplateRequest
135586	urlParams_                                    gensupport.URLParams
135587	ctx_                                          context.Context
135588	header_                                       http.Header
135589}
135590
135591// SetInstanceTemplate: Sets the instance template to use when creating
135592// new instances or recreating instances in this group. Existing
135593// instances are not affected.
135594func (r *RegionInstanceGroupManagersService) SetInstanceTemplate(project string, region string, instanceGroupManager string, regioninstancegroupmanagerssettemplaterequest *RegionInstanceGroupManagersSetTemplateRequest) *RegionInstanceGroupManagersSetInstanceTemplateCall {
135595	c := &RegionInstanceGroupManagersSetInstanceTemplateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135596	c.project = project
135597	c.region = region
135598	c.instanceGroupManager = instanceGroupManager
135599	c.regioninstancegroupmanagerssettemplaterequest = regioninstancegroupmanagerssettemplaterequest
135600	return c
135601}
135602
135603// RequestId sets the optional parameter "requestId": An optional
135604// request ID to identify requests. Specify a unique request ID so that
135605// if you must retry your request, the server will know to ignore the
135606// request if it has already been completed.
135607//
135608// For example, consider a situation where you make an initial request
135609// and the request times out. If you make the request again with the
135610// same request ID, the server can check if original operation with the
135611// same request ID was received, and if so, will ignore the second
135612// request. This prevents clients from accidentally creating duplicate
135613// commitments.
135614//
135615// The request ID must be a valid UUID with the exception that zero UUID
135616// is not supported (00000000-0000-0000-0000-000000000000).
135617func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) RequestId(requestId string) *RegionInstanceGroupManagersSetInstanceTemplateCall {
135618	c.urlParams_.Set("requestId", requestId)
135619	return c
135620}
135621
135622// Fields allows partial responses to be retrieved. See
135623// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135624// for more information.
135625func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersSetInstanceTemplateCall {
135626	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135627	return c
135628}
135629
135630// Context sets the context to be used in this call's Do method. Any
135631// pending HTTP request will be aborted if the provided context is
135632// canceled.
135633func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Context(ctx context.Context) *RegionInstanceGroupManagersSetInstanceTemplateCall {
135634	c.ctx_ = ctx
135635	return c
135636}
135637
135638// Header returns an http.Header that can be modified by the caller to
135639// add HTTP headers to the request.
135640func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Header() http.Header {
135641	if c.header_ == nil {
135642		c.header_ = make(http.Header)
135643	}
135644	return c.header_
135645}
135646
135647func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) doRequest(alt string) (*http.Response, error) {
135648	reqHeaders := make(http.Header)
135649	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
135650	for k, v := range c.header_ {
135651		reqHeaders[k] = v
135652	}
135653	reqHeaders.Set("User-Agent", c.s.userAgent())
135654	var body io.Reader = nil
135655	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerssettemplaterequest)
135656	if err != nil {
135657		return nil, err
135658	}
135659	reqHeaders.Set("Content-Type", "application/json")
135660	c.urlParams_.Set("alt", alt)
135661	c.urlParams_.Set("prettyPrint", "false")
135662	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate")
135663	urls += "?" + c.urlParams_.Encode()
135664	req, err := http.NewRequest("POST", urls, body)
135665	if err != nil {
135666		return nil, err
135667	}
135668	req.Header = reqHeaders
135669	googleapi.Expand(req.URL, map[string]string{
135670		"project":              c.project,
135671		"region":               c.region,
135672		"instanceGroupManager": c.instanceGroupManager,
135673	})
135674	return gensupport.SendRequest(c.ctx_, c.s.client, req)
135675}
135676
135677// Do executes the "compute.regionInstanceGroupManagers.setInstanceTemplate" call.
135678// Exactly one of *Operation or error will be non-nil. Any non-2xx
135679// status code is an error. Response headers are in either
135680// *Operation.ServerResponse.Header or (if a response was returned at
135681// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
135682// to check whether the returned error was because
135683// http.StatusNotModified was returned.
135684func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
135685	gensupport.SetOptions(c.urlParams_, opts...)
135686	res, err := c.doRequest("json")
135687	if res != nil && res.StatusCode == http.StatusNotModified {
135688		if res.Body != nil {
135689			res.Body.Close()
135690		}
135691		return nil, &googleapi.Error{
135692			Code:   res.StatusCode,
135693			Header: res.Header,
135694		}
135695	}
135696	if err != nil {
135697		return nil, err
135698	}
135699	defer googleapi.CloseBody(res)
135700	if err := googleapi.CheckResponse(res); err != nil {
135701		return nil, err
135702	}
135703	ret := &Operation{
135704		ServerResponse: googleapi.ServerResponse{
135705			Header:         res.Header,
135706			HTTPStatusCode: res.StatusCode,
135707		},
135708	}
135709	target := &ret
135710	if err := gensupport.DecodeResponse(target, res); err != nil {
135711		return nil, err
135712	}
135713	return ret, nil
135714	// {
135715	//   "description": "Sets the instance template to use when creating new instances or recreating instances in this group. Existing instances are not affected.",
135716	//   "httpMethod": "POST",
135717	//   "id": "compute.regionInstanceGroupManagers.setInstanceTemplate",
135718	//   "parameterOrder": [
135719	//     "project",
135720	//     "region",
135721	//     "instanceGroupManager"
135722	//   ],
135723	//   "parameters": {
135724	//     "instanceGroupManager": {
135725	//       "description": "The name of the managed instance group.",
135726	//       "location": "path",
135727	//       "required": true,
135728	//       "type": "string"
135729	//     },
135730	//     "project": {
135731	//       "description": "Project ID for this request.",
135732	//       "location": "path",
135733	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
135734	//       "required": true,
135735	//       "type": "string"
135736	//     },
135737	//     "region": {
135738	//       "description": "Name of the region scoping this request.",
135739	//       "location": "path",
135740	//       "required": true,
135741	//       "type": "string"
135742	//     },
135743	//     "requestId": {
135744	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
135745	//       "location": "query",
135746	//       "type": "string"
135747	//     }
135748	//   },
135749	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate",
135750	//   "request": {
135751	//     "$ref": "RegionInstanceGroupManagersSetTemplateRequest"
135752	//   },
135753	//   "response": {
135754	//     "$ref": "Operation"
135755	//   },
135756	//   "scopes": [
135757	//     "https://www.googleapis.com/auth/cloud-platform",
135758	//     "https://www.googleapis.com/auth/compute"
135759	//   ]
135760	// }
135761
135762}
135763
135764// method id "compute.regionInstanceGroupManagers.setTargetPools":
135765
135766type RegionInstanceGroupManagersSetTargetPoolsCall struct {
135767	s                                                *Service
135768	project                                          string
135769	region                                           string
135770	instanceGroupManager                             string
135771	regioninstancegroupmanagerssettargetpoolsrequest *RegionInstanceGroupManagersSetTargetPoolsRequest
135772	urlParams_                                       gensupport.URLParams
135773	ctx_                                             context.Context
135774	header_                                          http.Header
135775}
135776
135777// SetTargetPools: Modifies the target pools to which all new instances
135778// in this group are assigned. Existing instances in the group are not
135779// affected.
135780func (r *RegionInstanceGroupManagersService) SetTargetPools(project string, region string, instanceGroupManager string, regioninstancegroupmanagerssettargetpoolsrequest *RegionInstanceGroupManagersSetTargetPoolsRequest) *RegionInstanceGroupManagersSetTargetPoolsCall {
135781	c := &RegionInstanceGroupManagersSetTargetPoolsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135782	c.project = project
135783	c.region = region
135784	c.instanceGroupManager = instanceGroupManager
135785	c.regioninstancegroupmanagerssettargetpoolsrequest = regioninstancegroupmanagerssettargetpoolsrequest
135786	return c
135787}
135788
135789// RequestId sets the optional parameter "requestId": An optional
135790// request ID to identify requests. Specify a unique request ID so that
135791// if you must retry your request, the server will know to ignore the
135792// request if it has already been completed.
135793//
135794// For example, consider a situation where you make an initial request
135795// and the request times out. If you make the request again with the
135796// same request ID, the server can check if original operation with the
135797// same request ID was received, and if so, will ignore the second
135798// request. This prevents clients from accidentally creating duplicate
135799// commitments.
135800//
135801// The request ID must be a valid UUID with the exception that zero UUID
135802// is not supported (00000000-0000-0000-0000-000000000000).
135803func (c *RegionInstanceGroupManagersSetTargetPoolsCall) RequestId(requestId string) *RegionInstanceGroupManagersSetTargetPoolsCall {
135804	c.urlParams_.Set("requestId", requestId)
135805	return c
135806}
135807
135808// Fields allows partial responses to be retrieved. See
135809// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135810// for more information.
135811func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersSetTargetPoolsCall {
135812	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135813	return c
135814}
135815
135816// Context sets the context to be used in this call's Do method. Any
135817// pending HTTP request will be aborted if the provided context is
135818// canceled.
135819func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Context(ctx context.Context) *RegionInstanceGroupManagersSetTargetPoolsCall {
135820	c.ctx_ = ctx
135821	return c
135822}
135823
135824// Header returns an http.Header that can be modified by the caller to
135825// add HTTP headers to the request.
135826func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Header() http.Header {
135827	if c.header_ == nil {
135828		c.header_ = make(http.Header)
135829	}
135830	return c.header_
135831}
135832
135833func (c *RegionInstanceGroupManagersSetTargetPoolsCall) doRequest(alt string) (*http.Response, error) {
135834	reqHeaders := make(http.Header)
135835	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
135836	for k, v := range c.header_ {
135837		reqHeaders[k] = v
135838	}
135839	reqHeaders.Set("User-Agent", c.s.userAgent())
135840	var body io.Reader = nil
135841	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerssettargetpoolsrequest)
135842	if err != nil {
135843		return nil, err
135844	}
135845	reqHeaders.Set("Content-Type", "application/json")
135846	c.urlParams_.Set("alt", alt)
135847	c.urlParams_.Set("prettyPrint", "false")
135848	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setTargetPools")
135849	urls += "?" + c.urlParams_.Encode()
135850	req, err := http.NewRequest("POST", urls, body)
135851	if err != nil {
135852		return nil, err
135853	}
135854	req.Header = reqHeaders
135855	googleapi.Expand(req.URL, map[string]string{
135856		"project":              c.project,
135857		"region":               c.region,
135858		"instanceGroupManager": c.instanceGroupManager,
135859	})
135860	return gensupport.SendRequest(c.ctx_, c.s.client, req)
135861}
135862
135863// Do executes the "compute.regionInstanceGroupManagers.setTargetPools" call.
135864// Exactly one of *Operation or error will be non-nil. Any non-2xx
135865// status code is an error. Response headers are in either
135866// *Operation.ServerResponse.Header or (if a response was returned at
135867// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
135868// to check whether the returned error was because
135869// http.StatusNotModified was returned.
135870func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
135871	gensupport.SetOptions(c.urlParams_, opts...)
135872	res, err := c.doRequest("json")
135873	if res != nil && res.StatusCode == http.StatusNotModified {
135874		if res.Body != nil {
135875			res.Body.Close()
135876		}
135877		return nil, &googleapi.Error{
135878			Code:   res.StatusCode,
135879			Header: res.Header,
135880		}
135881	}
135882	if err != nil {
135883		return nil, err
135884	}
135885	defer googleapi.CloseBody(res)
135886	if err := googleapi.CheckResponse(res); err != nil {
135887		return nil, err
135888	}
135889	ret := &Operation{
135890		ServerResponse: googleapi.ServerResponse{
135891			Header:         res.Header,
135892			HTTPStatusCode: res.StatusCode,
135893		},
135894	}
135895	target := &ret
135896	if err := gensupport.DecodeResponse(target, res); err != nil {
135897		return nil, err
135898	}
135899	return ret, nil
135900	// {
135901	//   "description": "Modifies the target pools to which all new instances in this group are assigned. Existing instances in the group are not affected.",
135902	//   "httpMethod": "POST",
135903	//   "id": "compute.regionInstanceGroupManagers.setTargetPools",
135904	//   "parameterOrder": [
135905	//     "project",
135906	//     "region",
135907	//     "instanceGroupManager"
135908	//   ],
135909	//   "parameters": {
135910	//     "instanceGroupManager": {
135911	//       "description": "Name of the managed instance group.",
135912	//       "location": "path",
135913	//       "required": true,
135914	//       "type": "string"
135915	//     },
135916	//     "project": {
135917	//       "description": "Project ID for this request.",
135918	//       "location": "path",
135919	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
135920	//       "required": true,
135921	//       "type": "string"
135922	//     },
135923	//     "region": {
135924	//       "description": "Name of the region scoping this request.",
135925	//       "location": "path",
135926	//       "required": true,
135927	//       "type": "string"
135928	//     },
135929	//     "requestId": {
135930	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
135931	//       "location": "query",
135932	//       "type": "string"
135933	//     }
135934	//   },
135935	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setTargetPools",
135936	//   "request": {
135937	//     "$ref": "RegionInstanceGroupManagersSetTargetPoolsRequest"
135938	//   },
135939	//   "response": {
135940	//     "$ref": "Operation"
135941	//   },
135942	//   "scopes": [
135943	//     "https://www.googleapis.com/auth/cloud-platform",
135944	//     "https://www.googleapis.com/auth/compute"
135945	//   ]
135946	// }
135947
135948}
135949
135950// method id "compute.regionInstanceGroupManagers.testIamPermissions":
135951
135952type RegionInstanceGroupManagersTestIamPermissionsCall struct {
135953	s                      *Service
135954	project                string
135955	region                 string
135956	resource               string
135957	testpermissionsrequest *TestPermissionsRequest
135958	urlParams_             gensupport.URLParams
135959	ctx_                   context.Context
135960	header_                http.Header
135961}
135962
135963// TestIamPermissions: Returns permissions that a caller has on the
135964// specified resource.
135965func (r *RegionInstanceGroupManagersService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionInstanceGroupManagersTestIamPermissionsCall {
135966	c := &RegionInstanceGroupManagersTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135967	c.project = project
135968	c.region = region
135969	c.resource = resource
135970	c.testpermissionsrequest = testpermissionsrequest
135971	return c
135972}
135973
135974// Fields allows partial responses to be retrieved. See
135975// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135976// for more information.
135977func (c *RegionInstanceGroupManagersTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersTestIamPermissionsCall {
135978	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135979	return c
135980}
135981
135982// Context sets the context to be used in this call's Do method. Any
135983// pending HTTP request will be aborted if the provided context is
135984// canceled.
135985func (c *RegionInstanceGroupManagersTestIamPermissionsCall) Context(ctx context.Context) *RegionInstanceGroupManagersTestIamPermissionsCall {
135986	c.ctx_ = ctx
135987	return c
135988}
135989
135990// Header returns an http.Header that can be modified by the caller to
135991// add HTTP headers to the request.
135992func (c *RegionInstanceGroupManagersTestIamPermissionsCall) Header() http.Header {
135993	if c.header_ == nil {
135994		c.header_ = make(http.Header)
135995	}
135996	return c.header_
135997}
135998
135999func (c *RegionInstanceGroupManagersTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
136000	reqHeaders := make(http.Header)
136001	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
136002	for k, v := range c.header_ {
136003		reqHeaders[k] = v
136004	}
136005	reqHeaders.Set("User-Agent", c.s.userAgent())
136006	var body io.Reader = nil
136007	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
136008	if err != nil {
136009		return nil, err
136010	}
136011	reqHeaders.Set("Content-Type", "application/json")
136012	c.urlParams_.Set("alt", alt)
136013	c.urlParams_.Set("prettyPrint", "false")
136014	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{resource}/testIamPermissions")
136015	urls += "?" + c.urlParams_.Encode()
136016	req, err := http.NewRequest("POST", urls, body)
136017	if err != nil {
136018		return nil, err
136019	}
136020	req.Header = reqHeaders
136021	googleapi.Expand(req.URL, map[string]string{
136022		"project":  c.project,
136023		"region":   c.region,
136024		"resource": c.resource,
136025	})
136026	return gensupport.SendRequest(c.ctx_, c.s.client, req)
136027}
136028
136029// Do executes the "compute.regionInstanceGroupManagers.testIamPermissions" call.
136030// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
136031// non-2xx status code is an error. Response headers are in either
136032// *TestPermissionsResponse.ServerResponse.Header or (if a response was
136033// returned at all) in error.(*googleapi.Error).Header. Use
136034// googleapi.IsNotModified to check whether the returned error was
136035// because http.StatusNotModified was returned.
136036func (c *RegionInstanceGroupManagersTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
136037	gensupport.SetOptions(c.urlParams_, opts...)
136038	res, err := c.doRequest("json")
136039	if res != nil && res.StatusCode == http.StatusNotModified {
136040		if res.Body != nil {
136041			res.Body.Close()
136042		}
136043		return nil, &googleapi.Error{
136044			Code:   res.StatusCode,
136045			Header: res.Header,
136046		}
136047	}
136048	if err != nil {
136049		return nil, err
136050	}
136051	defer googleapi.CloseBody(res)
136052	if err := googleapi.CheckResponse(res); err != nil {
136053		return nil, err
136054	}
136055	ret := &TestPermissionsResponse{
136056		ServerResponse: googleapi.ServerResponse{
136057			Header:         res.Header,
136058			HTTPStatusCode: res.StatusCode,
136059		},
136060	}
136061	target := &ret
136062	if err := gensupport.DecodeResponse(target, res); err != nil {
136063		return nil, err
136064	}
136065	return ret, nil
136066	// {
136067	//   "description": "Returns permissions that a caller has on the specified resource.",
136068	//   "httpMethod": "POST",
136069	//   "id": "compute.regionInstanceGroupManagers.testIamPermissions",
136070	//   "parameterOrder": [
136071	//     "project",
136072	//     "region",
136073	//     "resource"
136074	//   ],
136075	//   "parameters": {
136076	//     "project": {
136077	//       "description": "Project ID for this request.",
136078	//       "location": "path",
136079	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
136080	//       "required": true,
136081	//       "type": "string"
136082	//     },
136083	//     "region": {
136084	//       "description": "The name of the region for this request.",
136085	//       "location": "path",
136086	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
136087	//       "required": true,
136088	//       "type": "string"
136089	//     },
136090	//     "resource": {
136091	//       "description": "Name or id of the resource for this request.",
136092	//       "location": "path",
136093	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
136094	//       "required": true,
136095	//       "type": "string"
136096	//     }
136097	//   },
136098	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{resource}/testIamPermissions",
136099	//   "request": {
136100	//     "$ref": "TestPermissionsRequest"
136101	//   },
136102	//   "response": {
136103	//     "$ref": "TestPermissionsResponse"
136104	//   },
136105	//   "scopes": [
136106	//     "https://www.googleapis.com/auth/cloud-platform",
136107	//     "https://www.googleapis.com/auth/compute",
136108	//     "https://www.googleapis.com/auth/compute.readonly"
136109	//   ]
136110	// }
136111
136112}
136113
136114// method id "compute.regionInstanceGroupManagers.update":
136115
136116type RegionInstanceGroupManagersUpdateCall struct {
136117	s                    *Service
136118	project              string
136119	region               string
136120	instanceGroupManager string
136121	instancegroupmanager *InstanceGroupManager
136122	urlParams_           gensupport.URLParams
136123	ctx_                 context.Context
136124	header_              http.Header
136125}
136126
136127// Update: Updates a managed instance group using the information that
136128// you specify in the request. This operation is marked as DONE when the
136129// group is updated even if the instances in the group have not yet been
136130// updated. You must separately verify the status of the individual
136131// instances with the listmanagedinstances method.
136132func (r *RegionInstanceGroupManagersService) Update(project string, region string, instanceGroupManager string, instancegroupmanager *InstanceGroupManager) *RegionInstanceGroupManagersUpdateCall {
136133	c := &RegionInstanceGroupManagersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136134	c.project = project
136135	c.region = region
136136	c.instanceGroupManager = instanceGroupManager
136137	c.instancegroupmanager = instancegroupmanager
136138	return c
136139}
136140
136141// RequestId sets the optional parameter "requestId": An optional
136142// request ID to identify requests. Specify a unique request ID so that
136143// if you must retry your request, the server will know to ignore the
136144// request if it has already been completed.
136145//
136146// For example, consider a situation where you make an initial request
136147// and the request times out. If you make the request again with the
136148// same request ID, the server can check if original operation with the
136149// same request ID was received, and if so, will ignore the second
136150// request. This prevents clients from accidentally creating duplicate
136151// commitments.
136152//
136153// The request ID must be a valid UUID with the exception that zero UUID
136154// is not supported (00000000-0000-0000-0000-000000000000).
136155func (c *RegionInstanceGroupManagersUpdateCall) RequestId(requestId string) *RegionInstanceGroupManagersUpdateCall {
136156	c.urlParams_.Set("requestId", requestId)
136157	return c
136158}
136159
136160// Fields allows partial responses to be retrieved. See
136161// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
136162// for more information.
136163func (c *RegionInstanceGroupManagersUpdateCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersUpdateCall {
136164	c.urlParams_.Set("fields", googleapi.CombineFields(s))
136165	return c
136166}
136167
136168// Context sets the context to be used in this call's Do method. Any
136169// pending HTTP request will be aborted if the provided context is
136170// canceled.
136171func (c *RegionInstanceGroupManagersUpdateCall) Context(ctx context.Context) *RegionInstanceGroupManagersUpdateCall {
136172	c.ctx_ = ctx
136173	return c
136174}
136175
136176// Header returns an http.Header that can be modified by the caller to
136177// add HTTP headers to the request.
136178func (c *RegionInstanceGroupManagersUpdateCall) Header() http.Header {
136179	if c.header_ == nil {
136180		c.header_ = make(http.Header)
136181	}
136182	return c.header_
136183}
136184
136185func (c *RegionInstanceGroupManagersUpdateCall) doRequest(alt string) (*http.Response, error) {
136186	reqHeaders := make(http.Header)
136187	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
136188	for k, v := range c.header_ {
136189		reqHeaders[k] = v
136190	}
136191	reqHeaders.Set("User-Agent", c.s.userAgent())
136192	var body io.Reader = nil
136193	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
136194	if err != nil {
136195		return nil, err
136196	}
136197	reqHeaders.Set("Content-Type", "application/json")
136198	c.urlParams_.Set("alt", alt)
136199	c.urlParams_.Set("prettyPrint", "false")
136200	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}")
136201	urls += "?" + c.urlParams_.Encode()
136202	req, err := http.NewRequest("PUT", urls, body)
136203	if err != nil {
136204		return nil, err
136205	}
136206	req.Header = reqHeaders
136207	googleapi.Expand(req.URL, map[string]string{
136208		"project":              c.project,
136209		"region":               c.region,
136210		"instanceGroupManager": c.instanceGroupManager,
136211	})
136212	return gensupport.SendRequest(c.ctx_, c.s.client, req)
136213}
136214
136215// Do executes the "compute.regionInstanceGroupManagers.update" call.
136216// Exactly one of *Operation or error will be non-nil. Any non-2xx
136217// status code is an error. Response headers are in either
136218// *Operation.ServerResponse.Header or (if a response was returned at
136219// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
136220// to check whether the returned error was because
136221// http.StatusNotModified was returned.
136222func (c *RegionInstanceGroupManagersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
136223	gensupport.SetOptions(c.urlParams_, opts...)
136224	res, err := c.doRequest("json")
136225	if res != nil && res.StatusCode == http.StatusNotModified {
136226		if res.Body != nil {
136227			res.Body.Close()
136228		}
136229		return nil, &googleapi.Error{
136230			Code:   res.StatusCode,
136231			Header: res.Header,
136232		}
136233	}
136234	if err != nil {
136235		return nil, err
136236	}
136237	defer googleapi.CloseBody(res)
136238	if err := googleapi.CheckResponse(res); err != nil {
136239		return nil, err
136240	}
136241	ret := &Operation{
136242		ServerResponse: googleapi.ServerResponse{
136243			Header:         res.Header,
136244			HTTPStatusCode: res.StatusCode,
136245		},
136246	}
136247	target := &ret
136248	if err := gensupport.DecodeResponse(target, res); err != nil {
136249		return nil, err
136250	}
136251	return ret, nil
136252	// {
136253	//   "description": "Updates a managed instance group using the information that you specify in the request. This operation is marked as DONE when the group is updated even if the instances in the group have not yet been updated. You must separately verify the status of the individual instances with the listmanagedinstances method.",
136254	//   "httpMethod": "PUT",
136255	//   "id": "compute.regionInstanceGroupManagers.update",
136256	//   "parameterOrder": [
136257	//     "project",
136258	//     "region",
136259	//     "instanceGroupManager"
136260	//   ],
136261	//   "parameters": {
136262	//     "instanceGroupManager": {
136263	//       "description": "The name of the instance group manager.",
136264	//       "location": "path",
136265	//       "required": true,
136266	//       "type": "string"
136267	//     },
136268	//     "project": {
136269	//       "description": "Project ID for this request.",
136270	//       "location": "path",
136271	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
136272	//       "required": true,
136273	//       "type": "string"
136274	//     },
136275	//     "region": {
136276	//       "description": "Name of the region scoping this request.",
136277	//       "location": "path",
136278	//       "required": true,
136279	//       "type": "string"
136280	//     },
136281	//     "requestId": {
136282	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
136283	//       "location": "query",
136284	//       "type": "string"
136285	//     }
136286	//   },
136287	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
136288	//   "request": {
136289	//     "$ref": "InstanceGroupManager"
136290	//   },
136291	//   "response": {
136292	//     "$ref": "Operation"
136293	//   },
136294	//   "scopes": [
136295	//     "https://www.googleapis.com/auth/cloud-platform",
136296	//     "https://www.googleapis.com/auth/compute"
136297	//   ]
136298	// }
136299
136300}
136301
136302// method id "compute.regionInstanceGroupManagers.updatePerInstanceConfigs":
136303
136304type RegionInstanceGroupManagersUpdatePerInstanceConfigsCall struct {
136305	s                                                 *Service
136306	project                                           string
136307	region                                            string
136308	instanceGroupManager                              string
136309	regioninstancegroupmanagerupdateinstanceconfigreq *RegionInstanceGroupManagerUpdateInstanceConfigReq
136310	urlParams_                                        gensupport.URLParams
136311	ctx_                                              context.Context
136312	header_                                           http.Header
136313}
136314
136315// UpdatePerInstanceConfigs: Inserts or updates per-instance configs for
136316// the managed instance group. perInstanceConfig.name serves as a key
136317// used to distinguish whether to perform insert or patch.
136318func (r *RegionInstanceGroupManagersService) UpdatePerInstanceConfigs(project string, region string, instanceGroupManager string, regioninstancegroupmanagerupdateinstanceconfigreq *RegionInstanceGroupManagerUpdateInstanceConfigReq) *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall {
136319	c := &RegionInstanceGroupManagersUpdatePerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136320	c.project = project
136321	c.region = region
136322	c.instanceGroupManager = instanceGroupManager
136323	c.regioninstancegroupmanagerupdateinstanceconfigreq = regioninstancegroupmanagerupdateinstanceconfigreq
136324	return c
136325}
136326
136327// RequestId sets the optional parameter "requestId": An optional
136328// request ID to identify requests. Specify a unique request ID so that
136329// if you must retry your request, the server will know to ignore the
136330// request if it has already been completed.
136331//
136332// For example, consider a situation where you make an initial request
136333// and the request times out. If you make the request again with the
136334// same request ID, the server can check if original operation with the
136335// same request ID was received, and if so, will ignore the second
136336// request. This prevents clients from accidentally creating duplicate
136337// commitments.
136338//
136339// The request ID must be a valid UUID with the exception that zero UUID
136340// is not supported (00000000-0000-0000-0000-000000000000).
136341func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) RequestId(requestId string) *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall {
136342	c.urlParams_.Set("requestId", requestId)
136343	return c
136344}
136345
136346// Fields allows partial responses to be retrieved. See
136347// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
136348// for more information.
136349func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall {
136350	c.urlParams_.Set("fields", googleapi.CombineFields(s))
136351	return c
136352}
136353
136354// Context sets the context to be used in this call's Do method. Any
136355// pending HTTP request will be aborted if the provided context is
136356// canceled.
136357func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) Context(ctx context.Context) *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall {
136358	c.ctx_ = ctx
136359	return c
136360}
136361
136362// Header returns an http.Header that can be modified by the caller to
136363// add HTTP headers to the request.
136364func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) Header() http.Header {
136365	if c.header_ == nil {
136366		c.header_ = make(http.Header)
136367	}
136368	return c.header_
136369}
136370
136371func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
136372	reqHeaders := make(http.Header)
136373	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
136374	for k, v := range c.header_ {
136375		reqHeaders[k] = v
136376	}
136377	reqHeaders.Set("User-Agent", c.s.userAgent())
136378	var body io.Reader = nil
136379	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerupdateinstanceconfigreq)
136380	if err != nil {
136381		return nil, err
136382	}
136383	reqHeaders.Set("Content-Type", "application/json")
136384	c.urlParams_.Set("alt", alt)
136385	c.urlParams_.Set("prettyPrint", "false")
136386	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs")
136387	urls += "?" + c.urlParams_.Encode()
136388	req, err := http.NewRequest("POST", urls, body)
136389	if err != nil {
136390		return nil, err
136391	}
136392	req.Header = reqHeaders
136393	googleapi.Expand(req.URL, map[string]string{
136394		"project":              c.project,
136395		"region":               c.region,
136396		"instanceGroupManager": c.instanceGroupManager,
136397	})
136398	return gensupport.SendRequest(c.ctx_, c.s.client, req)
136399}
136400
136401// Do executes the "compute.regionInstanceGroupManagers.updatePerInstanceConfigs" call.
136402// Exactly one of *Operation or error will be non-nil. Any non-2xx
136403// status code is an error. Response headers are in either
136404// *Operation.ServerResponse.Header or (if a response was returned at
136405// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
136406// to check whether the returned error was because
136407// http.StatusNotModified was returned.
136408func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
136409	gensupport.SetOptions(c.urlParams_, opts...)
136410	res, err := c.doRequest("json")
136411	if res != nil && res.StatusCode == http.StatusNotModified {
136412		if res.Body != nil {
136413			res.Body.Close()
136414		}
136415		return nil, &googleapi.Error{
136416			Code:   res.StatusCode,
136417			Header: res.Header,
136418		}
136419	}
136420	if err != nil {
136421		return nil, err
136422	}
136423	defer googleapi.CloseBody(res)
136424	if err := googleapi.CheckResponse(res); err != nil {
136425		return nil, err
136426	}
136427	ret := &Operation{
136428		ServerResponse: googleapi.ServerResponse{
136429			Header:         res.Header,
136430			HTTPStatusCode: res.StatusCode,
136431		},
136432	}
136433	target := &ret
136434	if err := gensupport.DecodeResponse(target, res); err != nil {
136435		return nil, err
136436	}
136437	return ret, nil
136438	// {
136439	//   "description": "Inserts or updates per-instance configs for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch.",
136440	//   "httpMethod": "POST",
136441	//   "id": "compute.regionInstanceGroupManagers.updatePerInstanceConfigs",
136442	//   "parameterOrder": [
136443	//     "project",
136444	//     "region",
136445	//     "instanceGroupManager"
136446	//   ],
136447	//   "parameters": {
136448	//     "instanceGroupManager": {
136449	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
136450	//       "location": "path",
136451	//       "required": true,
136452	//       "type": "string"
136453	//     },
136454	//     "project": {
136455	//       "description": "Project ID for this request.",
136456	//       "location": "path",
136457	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
136458	//       "required": true,
136459	//       "type": "string"
136460	//     },
136461	//     "region": {
136462	//       "description": "Name of the region scoping this request, should conform to RFC1035.",
136463	//       "location": "path",
136464	//       "required": true,
136465	//       "type": "string"
136466	//     },
136467	//     "requestId": {
136468	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
136469	//       "location": "query",
136470	//       "type": "string"
136471	//     }
136472	//   },
136473	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs",
136474	//   "request": {
136475	//     "$ref": "RegionInstanceGroupManagerUpdateInstanceConfigReq"
136476	//   },
136477	//   "response": {
136478	//     "$ref": "Operation"
136479	//   },
136480	//   "scopes": [
136481	//     "https://www.googleapis.com/auth/cloud-platform",
136482	//     "https://www.googleapis.com/auth/compute"
136483	//   ]
136484	// }
136485
136486}
136487
136488// method id "compute.regionInstanceGroups.get":
136489
136490type RegionInstanceGroupsGetCall struct {
136491	s             *Service
136492	project       string
136493	region        string
136494	instanceGroup string
136495	urlParams_    gensupport.URLParams
136496	ifNoneMatch_  string
136497	ctx_          context.Context
136498	header_       http.Header
136499}
136500
136501// Get: Returns the specified instance group resource.
136502func (r *RegionInstanceGroupsService) Get(project string, region string, instanceGroup string) *RegionInstanceGroupsGetCall {
136503	c := &RegionInstanceGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136504	c.project = project
136505	c.region = region
136506	c.instanceGroup = instanceGroup
136507	return c
136508}
136509
136510// Fields allows partial responses to be retrieved. See
136511// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
136512// for more information.
136513func (c *RegionInstanceGroupsGetCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsGetCall {
136514	c.urlParams_.Set("fields", googleapi.CombineFields(s))
136515	return c
136516}
136517
136518// IfNoneMatch sets the optional parameter which makes the operation
136519// fail if the object's ETag matches the given value. This is useful for
136520// getting updates only after the object has changed since the last
136521// request. Use googleapi.IsNotModified to check whether the response
136522// error from Do is the result of In-None-Match.
136523func (c *RegionInstanceGroupsGetCall) IfNoneMatch(entityTag string) *RegionInstanceGroupsGetCall {
136524	c.ifNoneMatch_ = entityTag
136525	return c
136526}
136527
136528// Context sets the context to be used in this call's Do method. Any
136529// pending HTTP request will be aborted if the provided context is
136530// canceled.
136531func (c *RegionInstanceGroupsGetCall) Context(ctx context.Context) *RegionInstanceGroupsGetCall {
136532	c.ctx_ = ctx
136533	return c
136534}
136535
136536// Header returns an http.Header that can be modified by the caller to
136537// add HTTP headers to the request.
136538func (c *RegionInstanceGroupsGetCall) Header() http.Header {
136539	if c.header_ == nil {
136540		c.header_ = make(http.Header)
136541	}
136542	return c.header_
136543}
136544
136545func (c *RegionInstanceGroupsGetCall) doRequest(alt string) (*http.Response, error) {
136546	reqHeaders := make(http.Header)
136547	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
136548	for k, v := range c.header_ {
136549		reqHeaders[k] = v
136550	}
136551	reqHeaders.Set("User-Agent", c.s.userAgent())
136552	if c.ifNoneMatch_ != "" {
136553		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
136554	}
136555	var body io.Reader = nil
136556	c.urlParams_.Set("alt", alt)
136557	c.urlParams_.Set("prettyPrint", "false")
136558	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}")
136559	urls += "?" + c.urlParams_.Encode()
136560	req, err := http.NewRequest("GET", urls, body)
136561	if err != nil {
136562		return nil, err
136563	}
136564	req.Header = reqHeaders
136565	googleapi.Expand(req.URL, map[string]string{
136566		"project":       c.project,
136567		"region":        c.region,
136568		"instanceGroup": c.instanceGroup,
136569	})
136570	return gensupport.SendRequest(c.ctx_, c.s.client, req)
136571}
136572
136573// Do executes the "compute.regionInstanceGroups.get" call.
136574// Exactly one of *InstanceGroup or error will be non-nil. Any non-2xx
136575// status code is an error. Response headers are in either
136576// *InstanceGroup.ServerResponse.Header or (if a response was returned
136577// at all) in error.(*googleapi.Error).Header. Use
136578// googleapi.IsNotModified to check whether the returned error was
136579// because http.StatusNotModified was returned.
136580func (c *RegionInstanceGroupsGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroup, error) {
136581	gensupport.SetOptions(c.urlParams_, opts...)
136582	res, err := c.doRequest("json")
136583	if res != nil && res.StatusCode == http.StatusNotModified {
136584		if res.Body != nil {
136585			res.Body.Close()
136586		}
136587		return nil, &googleapi.Error{
136588			Code:   res.StatusCode,
136589			Header: res.Header,
136590		}
136591	}
136592	if err != nil {
136593		return nil, err
136594	}
136595	defer googleapi.CloseBody(res)
136596	if err := googleapi.CheckResponse(res); err != nil {
136597		return nil, err
136598	}
136599	ret := &InstanceGroup{
136600		ServerResponse: googleapi.ServerResponse{
136601			Header:         res.Header,
136602			HTTPStatusCode: res.StatusCode,
136603		},
136604	}
136605	target := &ret
136606	if err := gensupport.DecodeResponse(target, res); err != nil {
136607		return nil, err
136608	}
136609	return ret, nil
136610	// {
136611	//   "description": "Returns the specified instance group resource.",
136612	//   "httpMethod": "GET",
136613	//   "id": "compute.regionInstanceGroups.get",
136614	//   "parameterOrder": [
136615	//     "project",
136616	//     "region",
136617	//     "instanceGroup"
136618	//   ],
136619	//   "parameters": {
136620	//     "instanceGroup": {
136621	//       "description": "Name of the instance group resource to return.",
136622	//       "location": "path",
136623	//       "required": true,
136624	//       "type": "string"
136625	//     },
136626	//     "project": {
136627	//       "description": "Project ID for this request.",
136628	//       "location": "path",
136629	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
136630	//       "required": true,
136631	//       "type": "string"
136632	//     },
136633	//     "region": {
136634	//       "description": "Name of the region scoping this request.",
136635	//       "location": "path",
136636	//       "required": true,
136637	//       "type": "string"
136638	//     }
136639	//   },
136640	//   "path": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}",
136641	//   "response": {
136642	//     "$ref": "InstanceGroup"
136643	//   },
136644	//   "scopes": [
136645	//     "https://www.googleapis.com/auth/cloud-platform",
136646	//     "https://www.googleapis.com/auth/compute",
136647	//     "https://www.googleapis.com/auth/compute.readonly"
136648	//   ]
136649	// }
136650
136651}
136652
136653// method id "compute.regionInstanceGroups.list":
136654
136655type RegionInstanceGroupsListCall struct {
136656	s            *Service
136657	project      string
136658	region       string
136659	urlParams_   gensupport.URLParams
136660	ifNoneMatch_ string
136661	ctx_         context.Context
136662	header_      http.Header
136663}
136664
136665// List: Retrieves the list of instance group resources contained within
136666// the specified region.
136667func (r *RegionInstanceGroupsService) List(project string, region string) *RegionInstanceGroupsListCall {
136668	c := &RegionInstanceGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136669	c.project = project
136670	c.region = region
136671	return c
136672}
136673
136674// Filter sets the optional parameter "filter": A filter expression that
136675// filters resources listed in the response. The expression must specify
136676// the field name, a comparison operator, and the value that you want to
136677// use for filtering. The value must be a string, a number, or a
136678// boolean. The comparison operator must be either `=`, `!=`, `>`, or
136679// `<`.
136680//
136681// For example, if you are filtering Compute Engine instances, you can
136682// exclude instances named `example-instance` by specifying `name !=
136683// example-instance`.
136684//
136685// You can also filter nested fields. For example, you could specify
136686// `scheduling.automaticRestart = false` to include instances only if
136687// they are not scheduled for automatic restarts. You can use filtering
136688// on nested fields to filter based on resource labels.
136689//
136690// To filter on multiple expressions, provide each separate expression
136691// within parentheses. For example: ``` (scheduling.automaticRestart =
136692// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
136693// is an `AND` expression. However, you can include `AND` and `OR`
136694// expressions explicitly. For example: ``` (cpuPlatform = "Intel
136695// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
136696// (scheduling.automaticRestart = true) ```
136697func (c *RegionInstanceGroupsListCall) Filter(filter string) *RegionInstanceGroupsListCall {
136698	c.urlParams_.Set("filter", filter)
136699	return c
136700}
136701
136702// MaxResults sets the optional parameter "maxResults": The maximum
136703// number of results per page that should be returned. If the number of
136704// available results is larger than `maxResults`, Compute Engine returns
136705// a `nextPageToken` that can be used to get the next page of results in
136706// subsequent list requests. Acceptable values are `0` to `500`,
136707// inclusive. (Default: `500`)
136708func (c *RegionInstanceGroupsListCall) MaxResults(maxResults int64) *RegionInstanceGroupsListCall {
136709	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
136710	return c
136711}
136712
136713// OrderBy sets the optional parameter "orderBy": Sorts list results by
136714// a certain order. By default, results are returned in alphanumerical
136715// order based on the resource name.
136716//
136717// You can also sort results in descending order based on the creation
136718// timestamp using `orderBy="creationTimestamp desc". This sorts
136719// results based on the `creationTimestamp` field in reverse
136720// chronological order (newest result first). Use this to sort resources
136721// like operations so that the newest operation is returned
136722// first.
136723//
136724// Currently, only sorting by `name` or `creationTimestamp desc` is
136725// supported.
136726func (c *RegionInstanceGroupsListCall) OrderBy(orderBy string) *RegionInstanceGroupsListCall {
136727	c.urlParams_.Set("orderBy", orderBy)
136728	return c
136729}
136730
136731// PageToken sets the optional parameter "pageToken": Specifies a page
136732// token to use. Set `pageToken` to the `nextPageToken` returned by a
136733// previous list request to get the next page of results.
136734func (c *RegionInstanceGroupsListCall) PageToken(pageToken string) *RegionInstanceGroupsListCall {
136735	c.urlParams_.Set("pageToken", pageToken)
136736	return c
136737}
136738
136739// ReturnPartialSuccess sets the optional parameter
136740// "returnPartialSuccess": Opt-in for partial success behavior which
136741// provides partial results in case of failure. The default value is
136742// false.
136743func (c *RegionInstanceGroupsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionInstanceGroupsListCall {
136744	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
136745	return c
136746}
136747
136748// Fields allows partial responses to be retrieved. See
136749// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
136750// for more information.
136751func (c *RegionInstanceGroupsListCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsListCall {
136752	c.urlParams_.Set("fields", googleapi.CombineFields(s))
136753	return c
136754}
136755
136756// IfNoneMatch sets the optional parameter which makes the operation
136757// fail if the object's ETag matches the given value. This is useful for
136758// getting updates only after the object has changed since the last
136759// request. Use googleapi.IsNotModified to check whether the response
136760// error from Do is the result of In-None-Match.
136761func (c *RegionInstanceGroupsListCall) IfNoneMatch(entityTag string) *RegionInstanceGroupsListCall {
136762	c.ifNoneMatch_ = entityTag
136763	return c
136764}
136765
136766// Context sets the context to be used in this call's Do method. Any
136767// pending HTTP request will be aborted if the provided context is
136768// canceled.
136769func (c *RegionInstanceGroupsListCall) Context(ctx context.Context) *RegionInstanceGroupsListCall {
136770	c.ctx_ = ctx
136771	return c
136772}
136773
136774// Header returns an http.Header that can be modified by the caller to
136775// add HTTP headers to the request.
136776func (c *RegionInstanceGroupsListCall) Header() http.Header {
136777	if c.header_ == nil {
136778		c.header_ = make(http.Header)
136779	}
136780	return c.header_
136781}
136782
136783func (c *RegionInstanceGroupsListCall) doRequest(alt string) (*http.Response, error) {
136784	reqHeaders := make(http.Header)
136785	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
136786	for k, v := range c.header_ {
136787		reqHeaders[k] = v
136788	}
136789	reqHeaders.Set("User-Agent", c.s.userAgent())
136790	if c.ifNoneMatch_ != "" {
136791		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
136792	}
136793	var body io.Reader = nil
136794	c.urlParams_.Set("alt", alt)
136795	c.urlParams_.Set("prettyPrint", "false")
136796	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroups")
136797	urls += "?" + c.urlParams_.Encode()
136798	req, err := http.NewRequest("GET", urls, body)
136799	if err != nil {
136800		return nil, err
136801	}
136802	req.Header = reqHeaders
136803	googleapi.Expand(req.URL, map[string]string{
136804		"project": c.project,
136805		"region":  c.region,
136806	})
136807	return gensupport.SendRequest(c.ctx_, c.s.client, req)
136808}
136809
136810// Do executes the "compute.regionInstanceGroups.list" call.
136811// Exactly one of *RegionInstanceGroupList or error will be non-nil. Any
136812// non-2xx status code is an error. Response headers are in either
136813// *RegionInstanceGroupList.ServerResponse.Header or (if a response was
136814// returned at all) in error.(*googleapi.Error).Header. Use
136815// googleapi.IsNotModified to check whether the returned error was
136816// because http.StatusNotModified was returned.
136817func (c *RegionInstanceGroupsListCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupList, error) {
136818	gensupport.SetOptions(c.urlParams_, opts...)
136819	res, err := c.doRequest("json")
136820	if res != nil && res.StatusCode == http.StatusNotModified {
136821		if res.Body != nil {
136822			res.Body.Close()
136823		}
136824		return nil, &googleapi.Error{
136825			Code:   res.StatusCode,
136826			Header: res.Header,
136827		}
136828	}
136829	if err != nil {
136830		return nil, err
136831	}
136832	defer googleapi.CloseBody(res)
136833	if err := googleapi.CheckResponse(res); err != nil {
136834		return nil, err
136835	}
136836	ret := &RegionInstanceGroupList{
136837		ServerResponse: googleapi.ServerResponse{
136838			Header:         res.Header,
136839			HTTPStatusCode: res.StatusCode,
136840		},
136841	}
136842	target := &ret
136843	if err := gensupport.DecodeResponse(target, res); err != nil {
136844		return nil, err
136845	}
136846	return ret, nil
136847	// {
136848	//   "description": "Retrieves the list of instance group resources contained within the specified region.",
136849	//   "httpMethod": "GET",
136850	//   "id": "compute.regionInstanceGroups.list",
136851	//   "parameterOrder": [
136852	//     "project",
136853	//     "region"
136854	//   ],
136855	//   "parameters": {
136856	//     "filter": {
136857	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
136858	//       "location": "query",
136859	//       "type": "string"
136860	//     },
136861	//     "maxResults": {
136862	//       "default": "500",
136863	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
136864	//       "format": "uint32",
136865	//       "location": "query",
136866	//       "minimum": "0",
136867	//       "type": "integer"
136868	//     },
136869	//     "orderBy": {
136870	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
136871	//       "location": "query",
136872	//       "type": "string"
136873	//     },
136874	//     "pageToken": {
136875	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
136876	//       "location": "query",
136877	//       "type": "string"
136878	//     },
136879	//     "project": {
136880	//       "description": "Project ID for this request.",
136881	//       "location": "path",
136882	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
136883	//       "required": true,
136884	//       "type": "string"
136885	//     },
136886	//     "region": {
136887	//       "description": "Name of the region scoping this request.",
136888	//       "location": "path",
136889	//       "required": true,
136890	//       "type": "string"
136891	//     },
136892	//     "returnPartialSuccess": {
136893	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
136894	//       "location": "query",
136895	//       "type": "boolean"
136896	//     }
136897	//   },
136898	//   "path": "projects/{project}/regions/{region}/instanceGroups",
136899	//   "response": {
136900	//     "$ref": "RegionInstanceGroupList"
136901	//   },
136902	//   "scopes": [
136903	//     "https://www.googleapis.com/auth/cloud-platform",
136904	//     "https://www.googleapis.com/auth/compute",
136905	//     "https://www.googleapis.com/auth/compute.readonly"
136906	//   ]
136907	// }
136908
136909}
136910
136911// Pages invokes f for each page of results.
136912// A non-nil error returned from f will halt the iteration.
136913// The provided context supersedes any context provided to the Context method.
136914func (c *RegionInstanceGroupsListCall) Pages(ctx context.Context, f func(*RegionInstanceGroupList) error) error {
136915	c.ctx_ = ctx
136916	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
136917	for {
136918		x, err := c.Do()
136919		if err != nil {
136920			return err
136921		}
136922		if err := f(x); err != nil {
136923			return err
136924		}
136925		if x.NextPageToken == "" {
136926			return nil
136927		}
136928		c.PageToken(x.NextPageToken)
136929	}
136930}
136931
136932// method id "compute.regionInstanceGroups.listInstances":
136933
136934type RegionInstanceGroupsListInstancesCall struct {
136935	s                                        *Service
136936	project                                  string
136937	region                                   string
136938	instanceGroup                            string
136939	regioninstancegroupslistinstancesrequest *RegionInstanceGroupsListInstancesRequest
136940	urlParams_                               gensupport.URLParams
136941	ctx_                                     context.Context
136942	header_                                  http.Header
136943}
136944
136945// ListInstances: Lists the instances in the specified instance group
136946// and displays information about the named ports. Depending on the
136947// specified options, this method can list all instances or only the
136948// instances that are running. The orderBy query parameter is not
136949// supported.
136950func (r *RegionInstanceGroupsService) ListInstances(project string, region string, instanceGroup string, regioninstancegroupslistinstancesrequest *RegionInstanceGroupsListInstancesRequest) *RegionInstanceGroupsListInstancesCall {
136951	c := &RegionInstanceGroupsListInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136952	c.project = project
136953	c.region = region
136954	c.instanceGroup = instanceGroup
136955	c.regioninstancegroupslistinstancesrequest = regioninstancegroupslistinstancesrequest
136956	return c
136957}
136958
136959// Filter sets the optional parameter "filter": A filter expression that
136960// filters resources listed in the response. The expression must specify
136961// the field name, a comparison operator, and the value that you want to
136962// use for filtering. The value must be a string, a number, or a
136963// boolean. The comparison operator must be either `=`, `!=`, `>`, or
136964// `<`.
136965//
136966// For example, if you are filtering Compute Engine instances, you can
136967// exclude instances named `example-instance` by specifying `name !=
136968// example-instance`.
136969//
136970// You can also filter nested fields. For example, you could specify
136971// `scheduling.automaticRestart = false` to include instances only if
136972// they are not scheduled for automatic restarts. You can use filtering
136973// on nested fields to filter based on resource labels.
136974//
136975// To filter on multiple expressions, provide each separate expression
136976// within parentheses. For example: ``` (scheduling.automaticRestart =
136977// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
136978// is an `AND` expression. However, you can include `AND` and `OR`
136979// expressions explicitly. For example: ``` (cpuPlatform = "Intel
136980// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
136981// (scheduling.automaticRestart = true) ```
136982func (c *RegionInstanceGroupsListInstancesCall) Filter(filter string) *RegionInstanceGroupsListInstancesCall {
136983	c.urlParams_.Set("filter", filter)
136984	return c
136985}
136986
136987// MaxResults sets the optional parameter "maxResults": The maximum
136988// number of results per page that should be returned. If the number of
136989// available results is larger than `maxResults`, Compute Engine returns
136990// a `nextPageToken` that can be used to get the next page of results in
136991// subsequent list requests. Acceptable values are `0` to `500`,
136992// inclusive. (Default: `500`)
136993func (c *RegionInstanceGroupsListInstancesCall) MaxResults(maxResults int64) *RegionInstanceGroupsListInstancesCall {
136994	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
136995	return c
136996}
136997
136998// OrderBy sets the optional parameter "orderBy": Sorts list results by
136999// a certain order. By default, results are returned in alphanumerical
137000// order based on the resource name.
137001//
137002// You can also sort results in descending order based on the creation
137003// timestamp using `orderBy="creationTimestamp desc". This sorts
137004// results based on the `creationTimestamp` field in reverse
137005// chronological order (newest result first). Use this to sort resources
137006// like operations so that the newest operation is returned
137007// first.
137008//
137009// Currently, only sorting by `name` or `creationTimestamp desc` is
137010// supported.
137011func (c *RegionInstanceGroupsListInstancesCall) OrderBy(orderBy string) *RegionInstanceGroupsListInstancesCall {
137012	c.urlParams_.Set("orderBy", orderBy)
137013	return c
137014}
137015
137016// PageToken sets the optional parameter "pageToken": Specifies a page
137017// token to use. Set `pageToken` to the `nextPageToken` returned by a
137018// previous list request to get the next page of results.
137019func (c *RegionInstanceGroupsListInstancesCall) PageToken(pageToken string) *RegionInstanceGroupsListInstancesCall {
137020	c.urlParams_.Set("pageToken", pageToken)
137021	return c
137022}
137023
137024// ReturnPartialSuccess sets the optional parameter
137025// "returnPartialSuccess": Opt-in for partial success behavior which
137026// provides partial results in case of failure. The default value is
137027// false.
137028func (c *RegionInstanceGroupsListInstancesCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionInstanceGroupsListInstancesCall {
137029	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
137030	return c
137031}
137032
137033// Fields allows partial responses to be retrieved. See
137034// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
137035// for more information.
137036func (c *RegionInstanceGroupsListInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsListInstancesCall {
137037	c.urlParams_.Set("fields", googleapi.CombineFields(s))
137038	return c
137039}
137040
137041// Context sets the context to be used in this call's Do method. Any
137042// pending HTTP request will be aborted if the provided context is
137043// canceled.
137044func (c *RegionInstanceGroupsListInstancesCall) Context(ctx context.Context) *RegionInstanceGroupsListInstancesCall {
137045	c.ctx_ = ctx
137046	return c
137047}
137048
137049// Header returns an http.Header that can be modified by the caller to
137050// add HTTP headers to the request.
137051func (c *RegionInstanceGroupsListInstancesCall) Header() http.Header {
137052	if c.header_ == nil {
137053		c.header_ = make(http.Header)
137054	}
137055	return c.header_
137056}
137057
137058func (c *RegionInstanceGroupsListInstancesCall) doRequest(alt string) (*http.Response, error) {
137059	reqHeaders := make(http.Header)
137060	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
137061	for k, v := range c.header_ {
137062		reqHeaders[k] = v
137063	}
137064	reqHeaders.Set("User-Agent", c.s.userAgent())
137065	var body io.Reader = nil
137066	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupslistinstancesrequest)
137067	if err != nil {
137068		return nil, err
137069	}
137070	reqHeaders.Set("Content-Type", "application/json")
137071	c.urlParams_.Set("alt", alt)
137072	c.urlParams_.Set("prettyPrint", "false")
137073	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/listInstances")
137074	urls += "?" + c.urlParams_.Encode()
137075	req, err := http.NewRequest("POST", urls, body)
137076	if err != nil {
137077		return nil, err
137078	}
137079	req.Header = reqHeaders
137080	googleapi.Expand(req.URL, map[string]string{
137081		"project":       c.project,
137082		"region":        c.region,
137083		"instanceGroup": c.instanceGroup,
137084	})
137085	return gensupport.SendRequest(c.ctx_, c.s.client, req)
137086}
137087
137088// Do executes the "compute.regionInstanceGroups.listInstances" call.
137089// Exactly one of *RegionInstanceGroupsListInstances or error will be
137090// non-nil. Any non-2xx status code is an error. Response headers are in
137091// either *RegionInstanceGroupsListInstances.ServerResponse.Header or
137092// (if a response was returned at all) in
137093// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
137094// whether the returned error was because http.StatusNotModified was
137095// returned.
137096func (c *RegionInstanceGroupsListInstancesCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupsListInstances, error) {
137097	gensupport.SetOptions(c.urlParams_, opts...)
137098	res, err := c.doRequest("json")
137099	if res != nil && res.StatusCode == http.StatusNotModified {
137100		if res.Body != nil {
137101			res.Body.Close()
137102		}
137103		return nil, &googleapi.Error{
137104			Code:   res.StatusCode,
137105			Header: res.Header,
137106		}
137107	}
137108	if err != nil {
137109		return nil, err
137110	}
137111	defer googleapi.CloseBody(res)
137112	if err := googleapi.CheckResponse(res); err != nil {
137113		return nil, err
137114	}
137115	ret := &RegionInstanceGroupsListInstances{
137116		ServerResponse: googleapi.ServerResponse{
137117			Header:         res.Header,
137118			HTTPStatusCode: res.StatusCode,
137119		},
137120	}
137121	target := &ret
137122	if err := gensupport.DecodeResponse(target, res); err != nil {
137123		return nil, err
137124	}
137125	return ret, nil
137126	// {
137127	//   "description": "Lists the instances in the specified instance group and displays information about the named ports. Depending on the specified options, this method can list all instances or only the instances that are running. The orderBy query parameter is not supported.",
137128	//   "httpMethod": "POST",
137129	//   "id": "compute.regionInstanceGroups.listInstances",
137130	//   "parameterOrder": [
137131	//     "project",
137132	//     "region",
137133	//     "instanceGroup"
137134	//   ],
137135	//   "parameters": {
137136	//     "filter": {
137137	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
137138	//       "location": "query",
137139	//       "type": "string"
137140	//     },
137141	//     "instanceGroup": {
137142	//       "description": "Name of the regional instance group for which we want to list the instances.",
137143	//       "location": "path",
137144	//       "required": true,
137145	//       "type": "string"
137146	//     },
137147	//     "maxResults": {
137148	//       "default": "500",
137149	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
137150	//       "format": "uint32",
137151	//       "location": "query",
137152	//       "minimum": "0",
137153	//       "type": "integer"
137154	//     },
137155	//     "orderBy": {
137156	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
137157	//       "location": "query",
137158	//       "type": "string"
137159	//     },
137160	//     "pageToken": {
137161	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
137162	//       "location": "query",
137163	//       "type": "string"
137164	//     },
137165	//     "project": {
137166	//       "description": "Project ID for this request.",
137167	//       "location": "path",
137168	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
137169	//       "required": true,
137170	//       "type": "string"
137171	//     },
137172	//     "region": {
137173	//       "description": "Name of the region scoping this request.",
137174	//       "location": "path",
137175	//       "required": true,
137176	//       "type": "string"
137177	//     },
137178	//     "returnPartialSuccess": {
137179	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
137180	//       "location": "query",
137181	//       "type": "boolean"
137182	//     }
137183	//   },
137184	//   "path": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/listInstances",
137185	//   "request": {
137186	//     "$ref": "RegionInstanceGroupsListInstancesRequest"
137187	//   },
137188	//   "response": {
137189	//     "$ref": "RegionInstanceGroupsListInstances"
137190	//   },
137191	//   "scopes": [
137192	//     "https://www.googleapis.com/auth/cloud-platform",
137193	//     "https://www.googleapis.com/auth/compute",
137194	//     "https://www.googleapis.com/auth/compute.readonly"
137195	//   ]
137196	// }
137197
137198}
137199
137200// Pages invokes f for each page of results.
137201// A non-nil error returned from f will halt the iteration.
137202// The provided context supersedes any context provided to the Context method.
137203func (c *RegionInstanceGroupsListInstancesCall) Pages(ctx context.Context, f func(*RegionInstanceGroupsListInstances) error) error {
137204	c.ctx_ = ctx
137205	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
137206	for {
137207		x, err := c.Do()
137208		if err != nil {
137209			return err
137210		}
137211		if err := f(x); err != nil {
137212			return err
137213		}
137214		if x.NextPageToken == "" {
137215			return nil
137216		}
137217		c.PageToken(x.NextPageToken)
137218	}
137219}
137220
137221// method id "compute.regionInstanceGroups.setNamedPorts":
137222
137223type RegionInstanceGroupsSetNamedPortsCall struct {
137224	s                                        *Service
137225	project                                  string
137226	region                                   string
137227	instanceGroup                            string
137228	regioninstancegroupssetnamedportsrequest *RegionInstanceGroupsSetNamedPortsRequest
137229	urlParams_                               gensupport.URLParams
137230	ctx_                                     context.Context
137231	header_                                  http.Header
137232}
137233
137234// SetNamedPorts: Sets the named ports for the specified regional
137235// instance group.
137236func (r *RegionInstanceGroupsService) SetNamedPorts(project string, region string, instanceGroup string, regioninstancegroupssetnamedportsrequest *RegionInstanceGroupsSetNamedPortsRequest) *RegionInstanceGroupsSetNamedPortsCall {
137237	c := &RegionInstanceGroupsSetNamedPortsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
137238	c.project = project
137239	c.region = region
137240	c.instanceGroup = instanceGroup
137241	c.regioninstancegroupssetnamedportsrequest = regioninstancegroupssetnamedportsrequest
137242	return c
137243}
137244
137245// RequestId sets the optional parameter "requestId": An optional
137246// request ID to identify requests. Specify a unique request ID so that
137247// if you must retry your request, the server will know to ignore the
137248// request if it has already been completed.
137249//
137250// For example, consider a situation where you make an initial request
137251// and the request times out. If you make the request again with the
137252// same request ID, the server can check if original operation with the
137253// same request ID was received, and if so, will ignore the second
137254// request. This prevents clients from accidentally creating duplicate
137255// commitments.
137256//
137257// The request ID must be a valid UUID with the exception that zero UUID
137258// is not supported (00000000-0000-0000-0000-000000000000).
137259func (c *RegionInstanceGroupsSetNamedPortsCall) RequestId(requestId string) *RegionInstanceGroupsSetNamedPortsCall {
137260	c.urlParams_.Set("requestId", requestId)
137261	return c
137262}
137263
137264// Fields allows partial responses to be retrieved. See
137265// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
137266// for more information.
137267func (c *RegionInstanceGroupsSetNamedPortsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsSetNamedPortsCall {
137268	c.urlParams_.Set("fields", googleapi.CombineFields(s))
137269	return c
137270}
137271
137272// Context sets the context to be used in this call's Do method. Any
137273// pending HTTP request will be aborted if the provided context is
137274// canceled.
137275func (c *RegionInstanceGroupsSetNamedPortsCall) Context(ctx context.Context) *RegionInstanceGroupsSetNamedPortsCall {
137276	c.ctx_ = ctx
137277	return c
137278}
137279
137280// Header returns an http.Header that can be modified by the caller to
137281// add HTTP headers to the request.
137282func (c *RegionInstanceGroupsSetNamedPortsCall) Header() http.Header {
137283	if c.header_ == nil {
137284		c.header_ = make(http.Header)
137285	}
137286	return c.header_
137287}
137288
137289func (c *RegionInstanceGroupsSetNamedPortsCall) doRequest(alt string) (*http.Response, error) {
137290	reqHeaders := make(http.Header)
137291	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
137292	for k, v := range c.header_ {
137293		reqHeaders[k] = v
137294	}
137295	reqHeaders.Set("User-Agent", c.s.userAgent())
137296	var body io.Reader = nil
137297	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupssetnamedportsrequest)
137298	if err != nil {
137299		return nil, err
137300	}
137301	reqHeaders.Set("Content-Type", "application/json")
137302	c.urlParams_.Set("alt", alt)
137303	c.urlParams_.Set("prettyPrint", "false")
137304	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/setNamedPorts")
137305	urls += "?" + c.urlParams_.Encode()
137306	req, err := http.NewRequest("POST", urls, body)
137307	if err != nil {
137308		return nil, err
137309	}
137310	req.Header = reqHeaders
137311	googleapi.Expand(req.URL, map[string]string{
137312		"project":       c.project,
137313		"region":        c.region,
137314		"instanceGroup": c.instanceGroup,
137315	})
137316	return gensupport.SendRequest(c.ctx_, c.s.client, req)
137317}
137318
137319// Do executes the "compute.regionInstanceGroups.setNamedPorts" call.
137320// Exactly one of *Operation or error will be non-nil. Any non-2xx
137321// status code is an error. Response headers are in either
137322// *Operation.ServerResponse.Header or (if a response was returned at
137323// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
137324// to check whether the returned error was because
137325// http.StatusNotModified was returned.
137326func (c *RegionInstanceGroupsSetNamedPortsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
137327	gensupport.SetOptions(c.urlParams_, opts...)
137328	res, err := c.doRequest("json")
137329	if res != nil && res.StatusCode == http.StatusNotModified {
137330		if res.Body != nil {
137331			res.Body.Close()
137332		}
137333		return nil, &googleapi.Error{
137334			Code:   res.StatusCode,
137335			Header: res.Header,
137336		}
137337	}
137338	if err != nil {
137339		return nil, err
137340	}
137341	defer googleapi.CloseBody(res)
137342	if err := googleapi.CheckResponse(res); err != nil {
137343		return nil, err
137344	}
137345	ret := &Operation{
137346		ServerResponse: googleapi.ServerResponse{
137347			Header:         res.Header,
137348			HTTPStatusCode: res.StatusCode,
137349		},
137350	}
137351	target := &ret
137352	if err := gensupport.DecodeResponse(target, res); err != nil {
137353		return nil, err
137354	}
137355	return ret, nil
137356	// {
137357	//   "description": "Sets the named ports for the specified regional instance group.",
137358	//   "httpMethod": "POST",
137359	//   "id": "compute.regionInstanceGroups.setNamedPorts",
137360	//   "parameterOrder": [
137361	//     "project",
137362	//     "region",
137363	//     "instanceGroup"
137364	//   ],
137365	//   "parameters": {
137366	//     "instanceGroup": {
137367	//       "description": "The name of the regional instance group where the named ports are updated.",
137368	//       "location": "path",
137369	//       "required": true,
137370	//       "type": "string"
137371	//     },
137372	//     "project": {
137373	//       "description": "Project ID for this request.",
137374	//       "location": "path",
137375	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
137376	//       "required": true,
137377	//       "type": "string"
137378	//     },
137379	//     "region": {
137380	//       "description": "Name of the region scoping this request.",
137381	//       "location": "path",
137382	//       "required": true,
137383	//       "type": "string"
137384	//     },
137385	//     "requestId": {
137386	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
137387	//       "location": "query",
137388	//       "type": "string"
137389	//     }
137390	//   },
137391	//   "path": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/setNamedPorts",
137392	//   "request": {
137393	//     "$ref": "RegionInstanceGroupsSetNamedPortsRequest"
137394	//   },
137395	//   "response": {
137396	//     "$ref": "Operation"
137397	//   },
137398	//   "scopes": [
137399	//     "https://www.googleapis.com/auth/cloud-platform",
137400	//     "https://www.googleapis.com/auth/compute"
137401	//   ]
137402	// }
137403
137404}
137405
137406// method id "compute.regionInstanceGroups.testIamPermissions":
137407
137408type RegionInstanceGroupsTestIamPermissionsCall struct {
137409	s                      *Service
137410	project                string
137411	region                 string
137412	resource               string
137413	testpermissionsrequest *TestPermissionsRequest
137414	urlParams_             gensupport.URLParams
137415	ctx_                   context.Context
137416	header_                http.Header
137417}
137418
137419// TestIamPermissions: Returns permissions that a caller has on the
137420// specified resource.
137421func (r *RegionInstanceGroupsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionInstanceGroupsTestIamPermissionsCall {
137422	c := &RegionInstanceGroupsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
137423	c.project = project
137424	c.region = region
137425	c.resource = resource
137426	c.testpermissionsrequest = testpermissionsrequest
137427	return c
137428}
137429
137430// Fields allows partial responses to be retrieved. See
137431// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
137432// for more information.
137433func (c *RegionInstanceGroupsTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsTestIamPermissionsCall {
137434	c.urlParams_.Set("fields", googleapi.CombineFields(s))
137435	return c
137436}
137437
137438// Context sets the context to be used in this call's Do method. Any
137439// pending HTTP request will be aborted if the provided context is
137440// canceled.
137441func (c *RegionInstanceGroupsTestIamPermissionsCall) Context(ctx context.Context) *RegionInstanceGroupsTestIamPermissionsCall {
137442	c.ctx_ = ctx
137443	return c
137444}
137445
137446// Header returns an http.Header that can be modified by the caller to
137447// add HTTP headers to the request.
137448func (c *RegionInstanceGroupsTestIamPermissionsCall) Header() http.Header {
137449	if c.header_ == nil {
137450		c.header_ = make(http.Header)
137451	}
137452	return c.header_
137453}
137454
137455func (c *RegionInstanceGroupsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
137456	reqHeaders := make(http.Header)
137457	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
137458	for k, v := range c.header_ {
137459		reqHeaders[k] = v
137460	}
137461	reqHeaders.Set("User-Agent", c.s.userAgent())
137462	var body io.Reader = nil
137463	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
137464	if err != nil {
137465		return nil, err
137466	}
137467	reqHeaders.Set("Content-Type", "application/json")
137468	c.urlParams_.Set("alt", alt)
137469	c.urlParams_.Set("prettyPrint", "false")
137470	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroups/{resource}/testIamPermissions")
137471	urls += "?" + c.urlParams_.Encode()
137472	req, err := http.NewRequest("POST", urls, body)
137473	if err != nil {
137474		return nil, err
137475	}
137476	req.Header = reqHeaders
137477	googleapi.Expand(req.URL, map[string]string{
137478		"project":  c.project,
137479		"region":   c.region,
137480		"resource": c.resource,
137481	})
137482	return gensupport.SendRequest(c.ctx_, c.s.client, req)
137483}
137484
137485// Do executes the "compute.regionInstanceGroups.testIamPermissions" call.
137486// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
137487// non-2xx status code is an error. Response headers are in either
137488// *TestPermissionsResponse.ServerResponse.Header or (if a response was
137489// returned at all) in error.(*googleapi.Error).Header. Use
137490// googleapi.IsNotModified to check whether the returned error was
137491// because http.StatusNotModified was returned.
137492func (c *RegionInstanceGroupsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
137493	gensupport.SetOptions(c.urlParams_, opts...)
137494	res, err := c.doRequest("json")
137495	if res != nil && res.StatusCode == http.StatusNotModified {
137496		if res.Body != nil {
137497			res.Body.Close()
137498		}
137499		return nil, &googleapi.Error{
137500			Code:   res.StatusCode,
137501			Header: res.Header,
137502		}
137503	}
137504	if err != nil {
137505		return nil, err
137506	}
137507	defer googleapi.CloseBody(res)
137508	if err := googleapi.CheckResponse(res); err != nil {
137509		return nil, err
137510	}
137511	ret := &TestPermissionsResponse{
137512		ServerResponse: googleapi.ServerResponse{
137513			Header:         res.Header,
137514			HTTPStatusCode: res.StatusCode,
137515		},
137516	}
137517	target := &ret
137518	if err := gensupport.DecodeResponse(target, res); err != nil {
137519		return nil, err
137520	}
137521	return ret, nil
137522	// {
137523	//   "description": "Returns permissions that a caller has on the specified resource.",
137524	//   "httpMethod": "POST",
137525	//   "id": "compute.regionInstanceGroups.testIamPermissions",
137526	//   "parameterOrder": [
137527	//     "project",
137528	//     "region",
137529	//     "resource"
137530	//   ],
137531	//   "parameters": {
137532	//     "project": {
137533	//       "description": "Project ID for this request.",
137534	//       "location": "path",
137535	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
137536	//       "required": true,
137537	//       "type": "string"
137538	//     },
137539	//     "region": {
137540	//       "description": "The name of the region for this request.",
137541	//       "location": "path",
137542	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
137543	//       "required": true,
137544	//       "type": "string"
137545	//     },
137546	//     "resource": {
137547	//       "description": "Name or id of the resource for this request.",
137548	//       "location": "path",
137549	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
137550	//       "required": true,
137551	//       "type": "string"
137552	//     }
137553	//   },
137554	//   "path": "projects/{project}/regions/{region}/instanceGroups/{resource}/testIamPermissions",
137555	//   "request": {
137556	//     "$ref": "TestPermissionsRequest"
137557	//   },
137558	//   "response": {
137559	//     "$ref": "TestPermissionsResponse"
137560	//   },
137561	//   "scopes": [
137562	//     "https://www.googleapis.com/auth/cloud-platform",
137563	//     "https://www.googleapis.com/auth/compute",
137564	//     "https://www.googleapis.com/auth/compute.readonly"
137565	//   ]
137566	// }
137567
137568}
137569
137570// method id "compute.regionInstances.bulkInsert":
137571
137572type RegionInstancesBulkInsertCall struct {
137573	s                          *Service
137574	project                    string
137575	region                     string
137576	bulkinsertinstanceresource *BulkInsertInstanceResource
137577	urlParams_                 gensupport.URLParams
137578	ctx_                       context.Context
137579	header_                    http.Header
137580}
137581
137582// BulkInsert: Creates multiple instances in a given region. Count
137583// specifies the number of instances to create.
137584func (r *RegionInstancesService) BulkInsert(project string, region string, bulkinsertinstanceresource *BulkInsertInstanceResource) *RegionInstancesBulkInsertCall {
137585	c := &RegionInstancesBulkInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
137586	c.project = project
137587	c.region = region
137588	c.bulkinsertinstanceresource = bulkinsertinstanceresource
137589	return c
137590}
137591
137592// RequestId sets the optional parameter "requestId": An optional
137593// request ID to identify requests. Specify a unique request ID so that
137594// if you must retry your request, the server will know to ignore the
137595// request if it has already been completed.
137596//
137597// For example, consider a situation where you make an initial request
137598// and the request times out. If you make the request again with the
137599// same request ID, the server can check if original operation with the
137600// same request ID was received, and if so, will ignore the second
137601// request. This prevents clients from accidentally creating duplicate
137602// commitments.
137603//
137604// The request ID must be a valid UUID with the exception that zero UUID
137605// is not supported (00000000-0000-0000-0000-000000000000).
137606func (c *RegionInstancesBulkInsertCall) RequestId(requestId string) *RegionInstancesBulkInsertCall {
137607	c.urlParams_.Set("requestId", requestId)
137608	return c
137609}
137610
137611// Fields allows partial responses to be retrieved. See
137612// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
137613// for more information.
137614func (c *RegionInstancesBulkInsertCall) Fields(s ...googleapi.Field) *RegionInstancesBulkInsertCall {
137615	c.urlParams_.Set("fields", googleapi.CombineFields(s))
137616	return c
137617}
137618
137619// Context sets the context to be used in this call's Do method. Any
137620// pending HTTP request will be aborted if the provided context is
137621// canceled.
137622func (c *RegionInstancesBulkInsertCall) Context(ctx context.Context) *RegionInstancesBulkInsertCall {
137623	c.ctx_ = ctx
137624	return c
137625}
137626
137627// Header returns an http.Header that can be modified by the caller to
137628// add HTTP headers to the request.
137629func (c *RegionInstancesBulkInsertCall) Header() http.Header {
137630	if c.header_ == nil {
137631		c.header_ = make(http.Header)
137632	}
137633	return c.header_
137634}
137635
137636func (c *RegionInstancesBulkInsertCall) doRequest(alt string) (*http.Response, error) {
137637	reqHeaders := make(http.Header)
137638	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
137639	for k, v := range c.header_ {
137640		reqHeaders[k] = v
137641	}
137642	reqHeaders.Set("User-Agent", c.s.userAgent())
137643	var body io.Reader = nil
137644	body, err := googleapi.WithoutDataWrapper.JSONReader(c.bulkinsertinstanceresource)
137645	if err != nil {
137646		return nil, err
137647	}
137648	reqHeaders.Set("Content-Type", "application/json")
137649	c.urlParams_.Set("alt", alt)
137650	c.urlParams_.Set("prettyPrint", "false")
137651	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instances/bulkInsert")
137652	urls += "?" + c.urlParams_.Encode()
137653	req, err := http.NewRequest("POST", urls, body)
137654	if err != nil {
137655		return nil, err
137656	}
137657	req.Header = reqHeaders
137658	googleapi.Expand(req.URL, map[string]string{
137659		"project": c.project,
137660		"region":  c.region,
137661	})
137662	return gensupport.SendRequest(c.ctx_, c.s.client, req)
137663}
137664
137665// Do executes the "compute.regionInstances.bulkInsert" call.
137666// Exactly one of *Operation or error will be non-nil. Any non-2xx
137667// status code is an error. Response headers are in either
137668// *Operation.ServerResponse.Header or (if a response was returned at
137669// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
137670// to check whether the returned error was because
137671// http.StatusNotModified was returned.
137672func (c *RegionInstancesBulkInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
137673	gensupport.SetOptions(c.urlParams_, opts...)
137674	res, err := c.doRequest("json")
137675	if res != nil && res.StatusCode == http.StatusNotModified {
137676		if res.Body != nil {
137677			res.Body.Close()
137678		}
137679		return nil, &googleapi.Error{
137680			Code:   res.StatusCode,
137681			Header: res.Header,
137682		}
137683	}
137684	if err != nil {
137685		return nil, err
137686	}
137687	defer googleapi.CloseBody(res)
137688	if err := googleapi.CheckResponse(res); err != nil {
137689		return nil, err
137690	}
137691	ret := &Operation{
137692		ServerResponse: googleapi.ServerResponse{
137693			Header:         res.Header,
137694			HTTPStatusCode: res.StatusCode,
137695		},
137696	}
137697	target := &ret
137698	if err := gensupport.DecodeResponse(target, res); err != nil {
137699		return nil, err
137700	}
137701	return ret, nil
137702	// {
137703	//   "description": "Creates multiple instances in a given region. Count specifies the number of instances to create.",
137704	//   "httpMethod": "POST",
137705	//   "id": "compute.regionInstances.bulkInsert",
137706	//   "parameterOrder": [
137707	//     "project",
137708	//     "region"
137709	//   ],
137710	//   "parameters": {
137711	//     "project": {
137712	//       "description": "Project ID for this request.",
137713	//       "location": "path",
137714	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
137715	//       "required": true,
137716	//       "type": "string"
137717	//     },
137718	//     "region": {
137719	//       "description": "The name of the region for this request.",
137720	//       "location": "path",
137721	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
137722	//       "required": true,
137723	//       "type": "string"
137724	//     },
137725	//     "requestId": {
137726	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
137727	//       "location": "query",
137728	//       "type": "string"
137729	//     }
137730	//   },
137731	//   "path": "projects/{project}/regions/{region}/instances/bulkInsert",
137732	//   "request": {
137733	//     "$ref": "BulkInsertInstanceResource"
137734	//   },
137735	//   "response": {
137736	//     "$ref": "Operation"
137737	//   },
137738	//   "scopes": [
137739	//     "https://www.googleapis.com/auth/cloud-platform",
137740	//     "https://www.googleapis.com/auth/compute"
137741	//   ]
137742	// }
137743
137744}
137745
137746// method id "compute.regionNetworkEndpointGroups.delete":
137747
137748type RegionNetworkEndpointGroupsDeleteCall struct {
137749	s                    *Service
137750	project              string
137751	region               string
137752	networkEndpointGroup string
137753	urlParams_           gensupport.URLParams
137754	ctx_                 context.Context
137755	header_              http.Header
137756}
137757
137758// Delete: Deletes the specified network endpoint group. Note that the
137759// NEG cannot be deleted if it is configured as a backend of a backend
137760// service.
137761func (r *RegionNetworkEndpointGroupsService) Delete(project string, region string, networkEndpointGroup string) *RegionNetworkEndpointGroupsDeleteCall {
137762	c := &RegionNetworkEndpointGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
137763	c.project = project
137764	c.region = region
137765	c.networkEndpointGroup = networkEndpointGroup
137766	return c
137767}
137768
137769// RequestId sets the optional parameter "requestId": An optional
137770// request ID to identify requests. Specify a unique request ID so that
137771// if you must retry your request, the server will know to ignore the
137772// request if it has already been completed.
137773//
137774// For example, consider a situation where you make an initial request
137775// and the request times out. If you make the request again with the
137776// same request ID, the server can check if original operation with the
137777// same request ID was received, and if so, will ignore the second
137778// request. This prevents clients from accidentally creating duplicate
137779// commitments.
137780//
137781// The request ID must be a valid UUID with the exception that zero UUID
137782// is not supported (00000000-0000-0000-0000-000000000000).
137783func (c *RegionNetworkEndpointGroupsDeleteCall) RequestId(requestId string) *RegionNetworkEndpointGroupsDeleteCall {
137784	c.urlParams_.Set("requestId", requestId)
137785	return c
137786}
137787
137788// Fields allows partial responses to be retrieved. See
137789// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
137790// for more information.
137791func (c *RegionNetworkEndpointGroupsDeleteCall) Fields(s ...googleapi.Field) *RegionNetworkEndpointGroupsDeleteCall {
137792	c.urlParams_.Set("fields", googleapi.CombineFields(s))
137793	return c
137794}
137795
137796// Context sets the context to be used in this call's Do method. Any
137797// pending HTTP request will be aborted if the provided context is
137798// canceled.
137799func (c *RegionNetworkEndpointGroupsDeleteCall) Context(ctx context.Context) *RegionNetworkEndpointGroupsDeleteCall {
137800	c.ctx_ = ctx
137801	return c
137802}
137803
137804// Header returns an http.Header that can be modified by the caller to
137805// add HTTP headers to the request.
137806func (c *RegionNetworkEndpointGroupsDeleteCall) Header() http.Header {
137807	if c.header_ == nil {
137808		c.header_ = make(http.Header)
137809	}
137810	return c.header_
137811}
137812
137813func (c *RegionNetworkEndpointGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
137814	reqHeaders := make(http.Header)
137815	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
137816	for k, v := range c.header_ {
137817		reqHeaders[k] = v
137818	}
137819	reqHeaders.Set("User-Agent", c.s.userAgent())
137820	var body io.Reader = nil
137821	c.urlParams_.Set("alt", alt)
137822	c.urlParams_.Set("prettyPrint", "false")
137823	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}")
137824	urls += "?" + c.urlParams_.Encode()
137825	req, err := http.NewRequest("DELETE", urls, body)
137826	if err != nil {
137827		return nil, err
137828	}
137829	req.Header = reqHeaders
137830	googleapi.Expand(req.URL, map[string]string{
137831		"project":              c.project,
137832		"region":               c.region,
137833		"networkEndpointGroup": c.networkEndpointGroup,
137834	})
137835	return gensupport.SendRequest(c.ctx_, c.s.client, req)
137836}
137837
137838// Do executes the "compute.regionNetworkEndpointGroups.delete" call.
137839// Exactly one of *Operation or error will be non-nil. Any non-2xx
137840// status code is an error. Response headers are in either
137841// *Operation.ServerResponse.Header or (if a response was returned at
137842// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
137843// to check whether the returned error was because
137844// http.StatusNotModified was returned.
137845func (c *RegionNetworkEndpointGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
137846	gensupport.SetOptions(c.urlParams_, opts...)
137847	res, err := c.doRequest("json")
137848	if res != nil && res.StatusCode == http.StatusNotModified {
137849		if res.Body != nil {
137850			res.Body.Close()
137851		}
137852		return nil, &googleapi.Error{
137853			Code:   res.StatusCode,
137854			Header: res.Header,
137855		}
137856	}
137857	if err != nil {
137858		return nil, err
137859	}
137860	defer googleapi.CloseBody(res)
137861	if err := googleapi.CheckResponse(res); err != nil {
137862		return nil, err
137863	}
137864	ret := &Operation{
137865		ServerResponse: googleapi.ServerResponse{
137866			Header:         res.Header,
137867			HTTPStatusCode: res.StatusCode,
137868		},
137869	}
137870	target := &ret
137871	if err := gensupport.DecodeResponse(target, res); err != nil {
137872		return nil, err
137873	}
137874	return ret, nil
137875	// {
137876	//   "description": "Deletes the specified network endpoint group. Note that the NEG cannot be deleted if it is configured as a backend of a backend service.",
137877	//   "httpMethod": "DELETE",
137878	//   "id": "compute.regionNetworkEndpointGroups.delete",
137879	//   "parameterOrder": [
137880	//     "project",
137881	//     "region",
137882	//     "networkEndpointGroup"
137883	//   ],
137884	//   "parameters": {
137885	//     "networkEndpointGroup": {
137886	//       "description": "The name of the network endpoint group to delete. It should comply with RFC1035.",
137887	//       "location": "path",
137888	//       "required": true,
137889	//       "type": "string"
137890	//     },
137891	//     "project": {
137892	//       "description": "Project ID for this request.",
137893	//       "location": "path",
137894	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
137895	//       "required": true,
137896	//       "type": "string"
137897	//     },
137898	//     "region": {
137899	//       "description": "The name of the region where the network endpoint group is located. It should comply with RFC1035.",
137900	//       "location": "path",
137901	//       "required": true,
137902	//       "type": "string"
137903	//     },
137904	//     "requestId": {
137905	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
137906	//       "location": "query",
137907	//       "type": "string"
137908	//     }
137909	//   },
137910	//   "path": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}",
137911	//   "response": {
137912	//     "$ref": "Operation"
137913	//   },
137914	//   "scopes": [
137915	//     "https://www.googleapis.com/auth/cloud-platform",
137916	//     "https://www.googleapis.com/auth/compute"
137917	//   ]
137918	// }
137919
137920}
137921
137922// method id "compute.regionNetworkEndpointGroups.get":
137923
137924type RegionNetworkEndpointGroupsGetCall struct {
137925	s                    *Service
137926	project              string
137927	region               string
137928	networkEndpointGroup string
137929	urlParams_           gensupport.URLParams
137930	ifNoneMatch_         string
137931	ctx_                 context.Context
137932	header_              http.Header
137933}
137934
137935// Get: Returns the specified network endpoint group. Gets a list of
137936// available network endpoint groups by making a list() request.
137937func (r *RegionNetworkEndpointGroupsService) Get(project string, region string, networkEndpointGroup string) *RegionNetworkEndpointGroupsGetCall {
137938	c := &RegionNetworkEndpointGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
137939	c.project = project
137940	c.region = region
137941	c.networkEndpointGroup = networkEndpointGroup
137942	return c
137943}
137944
137945// Fields allows partial responses to be retrieved. See
137946// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
137947// for more information.
137948func (c *RegionNetworkEndpointGroupsGetCall) Fields(s ...googleapi.Field) *RegionNetworkEndpointGroupsGetCall {
137949	c.urlParams_.Set("fields", googleapi.CombineFields(s))
137950	return c
137951}
137952
137953// IfNoneMatch sets the optional parameter which makes the operation
137954// fail if the object's ETag matches the given value. This is useful for
137955// getting updates only after the object has changed since the last
137956// request. Use googleapi.IsNotModified to check whether the response
137957// error from Do is the result of In-None-Match.
137958func (c *RegionNetworkEndpointGroupsGetCall) IfNoneMatch(entityTag string) *RegionNetworkEndpointGroupsGetCall {
137959	c.ifNoneMatch_ = entityTag
137960	return c
137961}
137962
137963// Context sets the context to be used in this call's Do method. Any
137964// pending HTTP request will be aborted if the provided context is
137965// canceled.
137966func (c *RegionNetworkEndpointGroupsGetCall) Context(ctx context.Context) *RegionNetworkEndpointGroupsGetCall {
137967	c.ctx_ = ctx
137968	return c
137969}
137970
137971// Header returns an http.Header that can be modified by the caller to
137972// add HTTP headers to the request.
137973func (c *RegionNetworkEndpointGroupsGetCall) Header() http.Header {
137974	if c.header_ == nil {
137975		c.header_ = make(http.Header)
137976	}
137977	return c.header_
137978}
137979
137980func (c *RegionNetworkEndpointGroupsGetCall) doRequest(alt string) (*http.Response, error) {
137981	reqHeaders := make(http.Header)
137982	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
137983	for k, v := range c.header_ {
137984		reqHeaders[k] = v
137985	}
137986	reqHeaders.Set("User-Agent", c.s.userAgent())
137987	if c.ifNoneMatch_ != "" {
137988		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
137989	}
137990	var body io.Reader = nil
137991	c.urlParams_.Set("alt", alt)
137992	c.urlParams_.Set("prettyPrint", "false")
137993	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}")
137994	urls += "?" + c.urlParams_.Encode()
137995	req, err := http.NewRequest("GET", urls, body)
137996	if err != nil {
137997		return nil, err
137998	}
137999	req.Header = reqHeaders
138000	googleapi.Expand(req.URL, map[string]string{
138001		"project":              c.project,
138002		"region":               c.region,
138003		"networkEndpointGroup": c.networkEndpointGroup,
138004	})
138005	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138006}
138007
138008// Do executes the "compute.regionNetworkEndpointGroups.get" call.
138009// Exactly one of *NetworkEndpointGroup or error will be non-nil. Any
138010// non-2xx status code is an error. Response headers are in either
138011// *NetworkEndpointGroup.ServerResponse.Header or (if a response was
138012// returned at all) in error.(*googleapi.Error).Header. Use
138013// googleapi.IsNotModified to check whether the returned error was
138014// because http.StatusNotModified was returned.
138015func (c *RegionNetworkEndpointGroupsGetCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroup, error) {
138016	gensupport.SetOptions(c.urlParams_, opts...)
138017	res, err := c.doRequest("json")
138018	if res != nil && res.StatusCode == http.StatusNotModified {
138019		if res.Body != nil {
138020			res.Body.Close()
138021		}
138022		return nil, &googleapi.Error{
138023			Code:   res.StatusCode,
138024			Header: res.Header,
138025		}
138026	}
138027	if err != nil {
138028		return nil, err
138029	}
138030	defer googleapi.CloseBody(res)
138031	if err := googleapi.CheckResponse(res); err != nil {
138032		return nil, err
138033	}
138034	ret := &NetworkEndpointGroup{
138035		ServerResponse: googleapi.ServerResponse{
138036			Header:         res.Header,
138037			HTTPStatusCode: res.StatusCode,
138038		},
138039	}
138040	target := &ret
138041	if err := gensupport.DecodeResponse(target, res); err != nil {
138042		return nil, err
138043	}
138044	return ret, nil
138045	// {
138046	//   "description": "Returns the specified network endpoint group. Gets a list of available network endpoint groups by making a list() request.",
138047	//   "httpMethod": "GET",
138048	//   "id": "compute.regionNetworkEndpointGroups.get",
138049	//   "parameterOrder": [
138050	//     "project",
138051	//     "region",
138052	//     "networkEndpointGroup"
138053	//   ],
138054	//   "parameters": {
138055	//     "networkEndpointGroup": {
138056	//       "description": "The name of the network endpoint group. It should comply with RFC1035.",
138057	//       "location": "path",
138058	//       "required": true,
138059	//       "type": "string"
138060	//     },
138061	//     "project": {
138062	//       "description": "Project ID for this request.",
138063	//       "location": "path",
138064	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
138065	//       "required": true,
138066	//       "type": "string"
138067	//     },
138068	//     "region": {
138069	//       "description": "The name of the region where the network endpoint group is located. It should comply with RFC1035.",
138070	//       "location": "path",
138071	//       "required": true,
138072	//       "type": "string"
138073	//     }
138074	//   },
138075	//   "path": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}",
138076	//   "response": {
138077	//     "$ref": "NetworkEndpointGroup"
138078	//   },
138079	//   "scopes": [
138080	//     "https://www.googleapis.com/auth/cloud-platform",
138081	//     "https://www.googleapis.com/auth/compute",
138082	//     "https://www.googleapis.com/auth/compute.readonly"
138083	//   ]
138084	// }
138085
138086}
138087
138088// method id "compute.regionNetworkEndpointGroups.insert":
138089
138090type RegionNetworkEndpointGroupsInsertCall struct {
138091	s                    *Service
138092	project              string
138093	region               string
138094	networkendpointgroup *NetworkEndpointGroup
138095	urlParams_           gensupport.URLParams
138096	ctx_                 context.Context
138097	header_              http.Header
138098}
138099
138100// Insert: Creates a network endpoint group in the specified project
138101// using the parameters that are included in the request.
138102func (r *RegionNetworkEndpointGroupsService) Insert(project string, region string, networkendpointgroup *NetworkEndpointGroup) *RegionNetworkEndpointGroupsInsertCall {
138103	c := &RegionNetworkEndpointGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
138104	c.project = project
138105	c.region = region
138106	c.networkendpointgroup = networkendpointgroup
138107	return c
138108}
138109
138110// RequestId sets the optional parameter "requestId": An optional
138111// request ID to identify requests. Specify a unique request ID so that
138112// if you must retry your request, the server will know to ignore the
138113// request if it has already been completed.
138114//
138115// For example, consider a situation where you make an initial request
138116// and the request times out. If you make the request again with the
138117// same request ID, the server can check if original operation with the
138118// same request ID was received, and if so, will ignore the second
138119// request. This prevents clients from accidentally creating duplicate
138120// commitments.
138121//
138122// The request ID must be a valid UUID with the exception that zero UUID
138123// is not supported (00000000-0000-0000-0000-000000000000).
138124func (c *RegionNetworkEndpointGroupsInsertCall) RequestId(requestId string) *RegionNetworkEndpointGroupsInsertCall {
138125	c.urlParams_.Set("requestId", requestId)
138126	return c
138127}
138128
138129// Fields allows partial responses to be retrieved. See
138130// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
138131// for more information.
138132func (c *RegionNetworkEndpointGroupsInsertCall) Fields(s ...googleapi.Field) *RegionNetworkEndpointGroupsInsertCall {
138133	c.urlParams_.Set("fields", googleapi.CombineFields(s))
138134	return c
138135}
138136
138137// Context sets the context to be used in this call's Do method. Any
138138// pending HTTP request will be aborted if the provided context is
138139// canceled.
138140func (c *RegionNetworkEndpointGroupsInsertCall) Context(ctx context.Context) *RegionNetworkEndpointGroupsInsertCall {
138141	c.ctx_ = ctx
138142	return c
138143}
138144
138145// Header returns an http.Header that can be modified by the caller to
138146// add HTTP headers to the request.
138147func (c *RegionNetworkEndpointGroupsInsertCall) Header() http.Header {
138148	if c.header_ == nil {
138149		c.header_ = make(http.Header)
138150	}
138151	return c.header_
138152}
138153
138154func (c *RegionNetworkEndpointGroupsInsertCall) doRequest(alt string) (*http.Response, error) {
138155	reqHeaders := make(http.Header)
138156	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
138157	for k, v := range c.header_ {
138158		reqHeaders[k] = v
138159	}
138160	reqHeaders.Set("User-Agent", c.s.userAgent())
138161	var body io.Reader = nil
138162	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroup)
138163	if err != nil {
138164		return nil, err
138165	}
138166	reqHeaders.Set("Content-Type", "application/json")
138167	c.urlParams_.Set("alt", alt)
138168	c.urlParams_.Set("prettyPrint", "false")
138169	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkEndpointGroups")
138170	urls += "?" + c.urlParams_.Encode()
138171	req, err := http.NewRequest("POST", urls, body)
138172	if err != nil {
138173		return nil, err
138174	}
138175	req.Header = reqHeaders
138176	googleapi.Expand(req.URL, map[string]string{
138177		"project": c.project,
138178		"region":  c.region,
138179	})
138180	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138181}
138182
138183// Do executes the "compute.regionNetworkEndpointGroups.insert" call.
138184// Exactly one of *Operation or error will be non-nil. Any non-2xx
138185// status code is an error. Response headers are in either
138186// *Operation.ServerResponse.Header or (if a response was returned at
138187// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
138188// to check whether the returned error was because
138189// http.StatusNotModified was returned.
138190func (c *RegionNetworkEndpointGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
138191	gensupport.SetOptions(c.urlParams_, opts...)
138192	res, err := c.doRequest("json")
138193	if res != nil && res.StatusCode == http.StatusNotModified {
138194		if res.Body != nil {
138195			res.Body.Close()
138196		}
138197		return nil, &googleapi.Error{
138198			Code:   res.StatusCode,
138199			Header: res.Header,
138200		}
138201	}
138202	if err != nil {
138203		return nil, err
138204	}
138205	defer googleapi.CloseBody(res)
138206	if err := googleapi.CheckResponse(res); err != nil {
138207		return nil, err
138208	}
138209	ret := &Operation{
138210		ServerResponse: googleapi.ServerResponse{
138211			Header:         res.Header,
138212			HTTPStatusCode: res.StatusCode,
138213		},
138214	}
138215	target := &ret
138216	if err := gensupport.DecodeResponse(target, res); err != nil {
138217		return nil, err
138218	}
138219	return ret, nil
138220	// {
138221	//   "description": "Creates a network endpoint group in the specified project using the parameters that are included in the request.",
138222	//   "httpMethod": "POST",
138223	//   "id": "compute.regionNetworkEndpointGroups.insert",
138224	//   "parameterOrder": [
138225	//     "project",
138226	//     "region"
138227	//   ],
138228	//   "parameters": {
138229	//     "project": {
138230	//       "description": "Project ID for this request.",
138231	//       "location": "path",
138232	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
138233	//       "required": true,
138234	//       "type": "string"
138235	//     },
138236	//     "region": {
138237	//       "description": "The name of the region where you want to create the network endpoint group. It should comply with RFC1035.",
138238	//       "location": "path",
138239	//       "required": true,
138240	//       "type": "string"
138241	//     },
138242	//     "requestId": {
138243	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
138244	//       "location": "query",
138245	//       "type": "string"
138246	//     }
138247	//   },
138248	//   "path": "projects/{project}/regions/{region}/networkEndpointGroups",
138249	//   "request": {
138250	//     "$ref": "NetworkEndpointGroup"
138251	//   },
138252	//   "response": {
138253	//     "$ref": "Operation"
138254	//   },
138255	//   "scopes": [
138256	//     "https://www.googleapis.com/auth/cloud-platform",
138257	//     "https://www.googleapis.com/auth/compute"
138258	//   ]
138259	// }
138260
138261}
138262
138263// method id "compute.regionNetworkEndpointGroups.list":
138264
138265type RegionNetworkEndpointGroupsListCall struct {
138266	s            *Service
138267	project      string
138268	region       string
138269	urlParams_   gensupport.URLParams
138270	ifNoneMatch_ string
138271	ctx_         context.Context
138272	header_      http.Header
138273}
138274
138275// List: Retrieves the list of regional network endpoint groups
138276// available to the specified project in the given region.
138277func (r *RegionNetworkEndpointGroupsService) List(project string, region string) *RegionNetworkEndpointGroupsListCall {
138278	c := &RegionNetworkEndpointGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
138279	c.project = project
138280	c.region = region
138281	return c
138282}
138283
138284// Filter sets the optional parameter "filter": A filter expression that
138285// filters resources listed in the response. The expression must specify
138286// the field name, a comparison operator, and the value that you want to
138287// use for filtering. The value must be a string, a number, or a
138288// boolean. The comparison operator must be either `=`, `!=`, `>`, or
138289// `<`.
138290//
138291// For example, if you are filtering Compute Engine instances, you can
138292// exclude instances named `example-instance` by specifying `name !=
138293// example-instance`.
138294//
138295// You can also filter nested fields. For example, you could specify
138296// `scheduling.automaticRestart = false` to include instances only if
138297// they are not scheduled for automatic restarts. You can use filtering
138298// on nested fields to filter based on resource labels.
138299//
138300// To filter on multiple expressions, provide each separate expression
138301// within parentheses. For example: ``` (scheduling.automaticRestart =
138302// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
138303// is an `AND` expression. However, you can include `AND` and `OR`
138304// expressions explicitly. For example: ``` (cpuPlatform = "Intel
138305// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
138306// (scheduling.automaticRestart = true) ```
138307func (c *RegionNetworkEndpointGroupsListCall) Filter(filter string) *RegionNetworkEndpointGroupsListCall {
138308	c.urlParams_.Set("filter", filter)
138309	return c
138310}
138311
138312// MaxResults sets the optional parameter "maxResults": The maximum
138313// number of results per page that should be returned. If the number of
138314// available results is larger than `maxResults`, Compute Engine returns
138315// a `nextPageToken` that can be used to get the next page of results in
138316// subsequent list requests. Acceptable values are `0` to `500`,
138317// inclusive. (Default: `500`)
138318func (c *RegionNetworkEndpointGroupsListCall) MaxResults(maxResults int64) *RegionNetworkEndpointGroupsListCall {
138319	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
138320	return c
138321}
138322
138323// OrderBy sets the optional parameter "orderBy": Sorts list results by
138324// a certain order. By default, results are returned in alphanumerical
138325// order based on the resource name.
138326//
138327// You can also sort results in descending order based on the creation
138328// timestamp using `orderBy="creationTimestamp desc". This sorts
138329// results based on the `creationTimestamp` field in reverse
138330// chronological order (newest result first). Use this to sort resources
138331// like operations so that the newest operation is returned
138332// first.
138333//
138334// Currently, only sorting by `name` or `creationTimestamp desc` is
138335// supported.
138336func (c *RegionNetworkEndpointGroupsListCall) OrderBy(orderBy string) *RegionNetworkEndpointGroupsListCall {
138337	c.urlParams_.Set("orderBy", orderBy)
138338	return c
138339}
138340
138341// PageToken sets the optional parameter "pageToken": Specifies a page
138342// token to use. Set `pageToken` to the `nextPageToken` returned by a
138343// previous list request to get the next page of results.
138344func (c *RegionNetworkEndpointGroupsListCall) PageToken(pageToken string) *RegionNetworkEndpointGroupsListCall {
138345	c.urlParams_.Set("pageToken", pageToken)
138346	return c
138347}
138348
138349// ReturnPartialSuccess sets the optional parameter
138350// "returnPartialSuccess": Opt-in for partial success behavior which
138351// provides partial results in case of failure. The default value is
138352// false.
138353func (c *RegionNetworkEndpointGroupsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionNetworkEndpointGroupsListCall {
138354	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
138355	return c
138356}
138357
138358// Fields allows partial responses to be retrieved. See
138359// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
138360// for more information.
138361func (c *RegionNetworkEndpointGroupsListCall) Fields(s ...googleapi.Field) *RegionNetworkEndpointGroupsListCall {
138362	c.urlParams_.Set("fields", googleapi.CombineFields(s))
138363	return c
138364}
138365
138366// IfNoneMatch sets the optional parameter which makes the operation
138367// fail if the object's ETag matches the given value. This is useful for
138368// getting updates only after the object has changed since the last
138369// request. Use googleapi.IsNotModified to check whether the response
138370// error from Do is the result of In-None-Match.
138371func (c *RegionNetworkEndpointGroupsListCall) IfNoneMatch(entityTag string) *RegionNetworkEndpointGroupsListCall {
138372	c.ifNoneMatch_ = entityTag
138373	return c
138374}
138375
138376// Context sets the context to be used in this call's Do method. Any
138377// pending HTTP request will be aborted if the provided context is
138378// canceled.
138379func (c *RegionNetworkEndpointGroupsListCall) Context(ctx context.Context) *RegionNetworkEndpointGroupsListCall {
138380	c.ctx_ = ctx
138381	return c
138382}
138383
138384// Header returns an http.Header that can be modified by the caller to
138385// add HTTP headers to the request.
138386func (c *RegionNetworkEndpointGroupsListCall) Header() http.Header {
138387	if c.header_ == nil {
138388		c.header_ = make(http.Header)
138389	}
138390	return c.header_
138391}
138392
138393func (c *RegionNetworkEndpointGroupsListCall) doRequest(alt string) (*http.Response, error) {
138394	reqHeaders := make(http.Header)
138395	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
138396	for k, v := range c.header_ {
138397		reqHeaders[k] = v
138398	}
138399	reqHeaders.Set("User-Agent", c.s.userAgent())
138400	if c.ifNoneMatch_ != "" {
138401		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
138402	}
138403	var body io.Reader = nil
138404	c.urlParams_.Set("alt", alt)
138405	c.urlParams_.Set("prettyPrint", "false")
138406	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkEndpointGroups")
138407	urls += "?" + c.urlParams_.Encode()
138408	req, err := http.NewRequest("GET", urls, body)
138409	if err != nil {
138410		return nil, err
138411	}
138412	req.Header = reqHeaders
138413	googleapi.Expand(req.URL, map[string]string{
138414		"project": c.project,
138415		"region":  c.region,
138416	})
138417	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138418}
138419
138420// Do executes the "compute.regionNetworkEndpointGroups.list" call.
138421// Exactly one of *NetworkEndpointGroupList or error will be non-nil.
138422// Any non-2xx status code is an error. Response headers are in either
138423// *NetworkEndpointGroupList.ServerResponse.Header or (if a response was
138424// returned at all) in error.(*googleapi.Error).Header. Use
138425// googleapi.IsNotModified to check whether the returned error was
138426// because http.StatusNotModified was returned.
138427func (c *RegionNetworkEndpointGroupsListCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupList, error) {
138428	gensupport.SetOptions(c.urlParams_, opts...)
138429	res, err := c.doRequest("json")
138430	if res != nil && res.StatusCode == http.StatusNotModified {
138431		if res.Body != nil {
138432			res.Body.Close()
138433		}
138434		return nil, &googleapi.Error{
138435			Code:   res.StatusCode,
138436			Header: res.Header,
138437		}
138438	}
138439	if err != nil {
138440		return nil, err
138441	}
138442	defer googleapi.CloseBody(res)
138443	if err := googleapi.CheckResponse(res); err != nil {
138444		return nil, err
138445	}
138446	ret := &NetworkEndpointGroupList{
138447		ServerResponse: googleapi.ServerResponse{
138448			Header:         res.Header,
138449			HTTPStatusCode: res.StatusCode,
138450		},
138451	}
138452	target := &ret
138453	if err := gensupport.DecodeResponse(target, res); err != nil {
138454		return nil, err
138455	}
138456	return ret, nil
138457	// {
138458	//   "description": "Retrieves the list of regional network endpoint groups available to the specified project in the given region.",
138459	//   "httpMethod": "GET",
138460	//   "id": "compute.regionNetworkEndpointGroups.list",
138461	//   "parameterOrder": [
138462	//     "project",
138463	//     "region"
138464	//   ],
138465	//   "parameters": {
138466	//     "filter": {
138467	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
138468	//       "location": "query",
138469	//       "type": "string"
138470	//     },
138471	//     "maxResults": {
138472	//       "default": "500",
138473	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
138474	//       "format": "uint32",
138475	//       "location": "query",
138476	//       "minimum": "0",
138477	//       "type": "integer"
138478	//     },
138479	//     "orderBy": {
138480	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
138481	//       "location": "query",
138482	//       "type": "string"
138483	//     },
138484	//     "pageToken": {
138485	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
138486	//       "location": "query",
138487	//       "type": "string"
138488	//     },
138489	//     "project": {
138490	//       "description": "Project ID for this request.",
138491	//       "location": "path",
138492	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
138493	//       "required": true,
138494	//       "type": "string"
138495	//     },
138496	//     "region": {
138497	//       "description": "The name of the region where the network endpoint group is located. It should comply with RFC1035.",
138498	//       "location": "path",
138499	//       "required": true,
138500	//       "type": "string"
138501	//     },
138502	//     "returnPartialSuccess": {
138503	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
138504	//       "location": "query",
138505	//       "type": "boolean"
138506	//     }
138507	//   },
138508	//   "path": "projects/{project}/regions/{region}/networkEndpointGroups",
138509	//   "response": {
138510	//     "$ref": "NetworkEndpointGroupList"
138511	//   },
138512	//   "scopes": [
138513	//     "https://www.googleapis.com/auth/cloud-platform",
138514	//     "https://www.googleapis.com/auth/compute",
138515	//     "https://www.googleapis.com/auth/compute.readonly"
138516	//   ]
138517	// }
138518
138519}
138520
138521// Pages invokes f for each page of results.
138522// A non-nil error returned from f will halt the iteration.
138523// The provided context supersedes any context provided to the Context method.
138524func (c *RegionNetworkEndpointGroupsListCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupList) error) error {
138525	c.ctx_ = ctx
138526	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
138527	for {
138528		x, err := c.Do()
138529		if err != nil {
138530			return err
138531		}
138532		if err := f(x); err != nil {
138533			return err
138534		}
138535		if x.NextPageToken == "" {
138536			return nil
138537		}
138538		c.PageToken(x.NextPageToken)
138539	}
138540}
138541
138542// method id "compute.regionNotificationEndpoints.delete":
138543
138544type RegionNotificationEndpointsDeleteCall struct {
138545	s                    *Service
138546	project              string
138547	region               string
138548	notificationEndpoint string
138549	urlParams_           gensupport.URLParams
138550	ctx_                 context.Context
138551	header_              http.Header
138552}
138553
138554// Delete: Deletes the specified NotificationEndpoint in the given
138555// region
138556func (r *RegionNotificationEndpointsService) Delete(project string, region string, notificationEndpoint string) *RegionNotificationEndpointsDeleteCall {
138557	c := &RegionNotificationEndpointsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
138558	c.project = project
138559	c.region = region
138560	c.notificationEndpoint = notificationEndpoint
138561	return c
138562}
138563
138564// RequestId sets the optional parameter "requestId": An optional
138565// request ID to identify requests. Specify a unique request ID so that
138566// if you must retry your request, the server will know to ignore the
138567// request if it has already been completed.
138568//
138569// For example, consider a situation where you make an initial request
138570// and the request times out. If you make the request again with the
138571// same request ID, the server can check if original operation with the
138572// same request ID was received, and if so, will ignore the second
138573// request. This prevents clients from accidentally creating duplicate
138574// commitments.
138575//
138576// The request ID must be a valid UUID with the exception that zero UUID
138577// is not supported (00000000-0000-0000-0000-000000000000).
138578func (c *RegionNotificationEndpointsDeleteCall) RequestId(requestId string) *RegionNotificationEndpointsDeleteCall {
138579	c.urlParams_.Set("requestId", requestId)
138580	return c
138581}
138582
138583// Fields allows partial responses to be retrieved. See
138584// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
138585// for more information.
138586func (c *RegionNotificationEndpointsDeleteCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsDeleteCall {
138587	c.urlParams_.Set("fields", googleapi.CombineFields(s))
138588	return c
138589}
138590
138591// Context sets the context to be used in this call's Do method. Any
138592// pending HTTP request will be aborted if the provided context is
138593// canceled.
138594func (c *RegionNotificationEndpointsDeleteCall) Context(ctx context.Context) *RegionNotificationEndpointsDeleteCall {
138595	c.ctx_ = ctx
138596	return c
138597}
138598
138599// Header returns an http.Header that can be modified by the caller to
138600// add HTTP headers to the request.
138601func (c *RegionNotificationEndpointsDeleteCall) Header() http.Header {
138602	if c.header_ == nil {
138603		c.header_ = make(http.Header)
138604	}
138605	return c.header_
138606}
138607
138608func (c *RegionNotificationEndpointsDeleteCall) doRequest(alt string) (*http.Response, error) {
138609	reqHeaders := make(http.Header)
138610	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
138611	for k, v := range c.header_ {
138612		reqHeaders[k] = v
138613	}
138614	reqHeaders.Set("User-Agent", c.s.userAgent())
138615	var body io.Reader = nil
138616	c.urlParams_.Set("alt", alt)
138617	c.urlParams_.Set("prettyPrint", "false")
138618	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}")
138619	urls += "?" + c.urlParams_.Encode()
138620	req, err := http.NewRequest("DELETE", urls, body)
138621	if err != nil {
138622		return nil, err
138623	}
138624	req.Header = reqHeaders
138625	googleapi.Expand(req.URL, map[string]string{
138626		"project":              c.project,
138627		"region":               c.region,
138628		"notificationEndpoint": c.notificationEndpoint,
138629	})
138630	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138631}
138632
138633// Do executes the "compute.regionNotificationEndpoints.delete" call.
138634// Exactly one of *Operation or error will be non-nil. Any non-2xx
138635// status code is an error. Response headers are in either
138636// *Operation.ServerResponse.Header or (if a response was returned at
138637// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
138638// to check whether the returned error was because
138639// http.StatusNotModified was returned.
138640func (c *RegionNotificationEndpointsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
138641	gensupport.SetOptions(c.urlParams_, opts...)
138642	res, err := c.doRequest("json")
138643	if res != nil && res.StatusCode == http.StatusNotModified {
138644		if res.Body != nil {
138645			res.Body.Close()
138646		}
138647		return nil, &googleapi.Error{
138648			Code:   res.StatusCode,
138649			Header: res.Header,
138650		}
138651	}
138652	if err != nil {
138653		return nil, err
138654	}
138655	defer googleapi.CloseBody(res)
138656	if err := googleapi.CheckResponse(res); err != nil {
138657		return nil, err
138658	}
138659	ret := &Operation{
138660		ServerResponse: googleapi.ServerResponse{
138661			Header:         res.Header,
138662			HTTPStatusCode: res.StatusCode,
138663		},
138664	}
138665	target := &ret
138666	if err := gensupport.DecodeResponse(target, res); err != nil {
138667		return nil, err
138668	}
138669	return ret, nil
138670	// {
138671	//   "description": "Deletes the specified NotificationEndpoint in the given region",
138672	//   "httpMethod": "DELETE",
138673	//   "id": "compute.regionNotificationEndpoints.delete",
138674	//   "parameterOrder": [
138675	//     "project",
138676	//     "region",
138677	//     "notificationEndpoint"
138678	//   ],
138679	//   "parameters": {
138680	//     "notificationEndpoint": {
138681	//       "description": "Name of the NotificationEndpoint resource to delete.",
138682	//       "location": "path",
138683	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
138684	//       "required": true,
138685	//       "type": "string"
138686	//     },
138687	//     "project": {
138688	//       "description": "Project ID for this request.",
138689	//       "location": "path",
138690	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
138691	//       "required": true,
138692	//       "type": "string"
138693	//     },
138694	//     "region": {
138695	//       "description": "Name of the region scoping this request.",
138696	//       "location": "path",
138697	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
138698	//       "required": true,
138699	//       "type": "string"
138700	//     },
138701	//     "requestId": {
138702	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
138703	//       "location": "query",
138704	//       "type": "string"
138705	//     }
138706	//   },
138707	//   "path": "projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}",
138708	//   "response": {
138709	//     "$ref": "Operation"
138710	//   },
138711	//   "scopes": [
138712	//     "https://www.googleapis.com/auth/cloud-platform",
138713	//     "https://www.googleapis.com/auth/compute"
138714	//   ]
138715	// }
138716
138717}
138718
138719// method id "compute.regionNotificationEndpoints.get":
138720
138721type RegionNotificationEndpointsGetCall struct {
138722	s                    *Service
138723	project              string
138724	region               string
138725	notificationEndpoint string
138726	urlParams_           gensupport.URLParams
138727	ifNoneMatch_         string
138728	ctx_                 context.Context
138729	header_              http.Header
138730}
138731
138732// Get: Returns the specified NotificationEndpoint resource in the given
138733// region.
138734func (r *RegionNotificationEndpointsService) Get(project string, region string, notificationEndpoint string) *RegionNotificationEndpointsGetCall {
138735	c := &RegionNotificationEndpointsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
138736	c.project = project
138737	c.region = region
138738	c.notificationEndpoint = notificationEndpoint
138739	return c
138740}
138741
138742// Fields allows partial responses to be retrieved. See
138743// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
138744// for more information.
138745func (c *RegionNotificationEndpointsGetCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsGetCall {
138746	c.urlParams_.Set("fields", googleapi.CombineFields(s))
138747	return c
138748}
138749
138750// IfNoneMatch sets the optional parameter which makes the operation
138751// fail if the object's ETag matches the given value. This is useful for
138752// getting updates only after the object has changed since the last
138753// request. Use googleapi.IsNotModified to check whether the response
138754// error from Do is the result of In-None-Match.
138755func (c *RegionNotificationEndpointsGetCall) IfNoneMatch(entityTag string) *RegionNotificationEndpointsGetCall {
138756	c.ifNoneMatch_ = entityTag
138757	return c
138758}
138759
138760// Context sets the context to be used in this call's Do method. Any
138761// pending HTTP request will be aborted if the provided context is
138762// canceled.
138763func (c *RegionNotificationEndpointsGetCall) Context(ctx context.Context) *RegionNotificationEndpointsGetCall {
138764	c.ctx_ = ctx
138765	return c
138766}
138767
138768// Header returns an http.Header that can be modified by the caller to
138769// add HTTP headers to the request.
138770func (c *RegionNotificationEndpointsGetCall) Header() http.Header {
138771	if c.header_ == nil {
138772		c.header_ = make(http.Header)
138773	}
138774	return c.header_
138775}
138776
138777func (c *RegionNotificationEndpointsGetCall) doRequest(alt string) (*http.Response, error) {
138778	reqHeaders := make(http.Header)
138779	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
138780	for k, v := range c.header_ {
138781		reqHeaders[k] = v
138782	}
138783	reqHeaders.Set("User-Agent", c.s.userAgent())
138784	if c.ifNoneMatch_ != "" {
138785		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
138786	}
138787	var body io.Reader = nil
138788	c.urlParams_.Set("alt", alt)
138789	c.urlParams_.Set("prettyPrint", "false")
138790	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}")
138791	urls += "?" + c.urlParams_.Encode()
138792	req, err := http.NewRequest("GET", urls, body)
138793	if err != nil {
138794		return nil, err
138795	}
138796	req.Header = reqHeaders
138797	googleapi.Expand(req.URL, map[string]string{
138798		"project":              c.project,
138799		"region":               c.region,
138800		"notificationEndpoint": c.notificationEndpoint,
138801	})
138802	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138803}
138804
138805// Do executes the "compute.regionNotificationEndpoints.get" call.
138806// Exactly one of *NotificationEndpoint or error will be non-nil. Any
138807// non-2xx status code is an error. Response headers are in either
138808// *NotificationEndpoint.ServerResponse.Header or (if a response was
138809// returned at all) in error.(*googleapi.Error).Header. Use
138810// googleapi.IsNotModified to check whether the returned error was
138811// because http.StatusNotModified was returned.
138812func (c *RegionNotificationEndpointsGetCall) Do(opts ...googleapi.CallOption) (*NotificationEndpoint, error) {
138813	gensupport.SetOptions(c.urlParams_, opts...)
138814	res, err := c.doRequest("json")
138815	if res != nil && res.StatusCode == http.StatusNotModified {
138816		if res.Body != nil {
138817			res.Body.Close()
138818		}
138819		return nil, &googleapi.Error{
138820			Code:   res.StatusCode,
138821			Header: res.Header,
138822		}
138823	}
138824	if err != nil {
138825		return nil, err
138826	}
138827	defer googleapi.CloseBody(res)
138828	if err := googleapi.CheckResponse(res); err != nil {
138829		return nil, err
138830	}
138831	ret := &NotificationEndpoint{
138832		ServerResponse: googleapi.ServerResponse{
138833			Header:         res.Header,
138834			HTTPStatusCode: res.StatusCode,
138835		},
138836	}
138837	target := &ret
138838	if err := gensupport.DecodeResponse(target, res); err != nil {
138839		return nil, err
138840	}
138841	return ret, nil
138842	// {
138843	//   "description": "Returns the specified NotificationEndpoint resource in the given region.",
138844	//   "httpMethod": "GET",
138845	//   "id": "compute.regionNotificationEndpoints.get",
138846	//   "parameterOrder": [
138847	//     "project",
138848	//     "region",
138849	//     "notificationEndpoint"
138850	//   ],
138851	//   "parameters": {
138852	//     "notificationEndpoint": {
138853	//       "description": "Name of the NotificationEndpoint resource to return.",
138854	//       "location": "path",
138855	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
138856	//       "required": true,
138857	//       "type": "string"
138858	//     },
138859	//     "project": {
138860	//       "description": "Project ID for this request.",
138861	//       "location": "path",
138862	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
138863	//       "required": true,
138864	//       "type": "string"
138865	//     },
138866	//     "region": {
138867	//       "description": "Name of the region scoping this request.",
138868	//       "location": "path",
138869	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
138870	//       "required": true,
138871	//       "type": "string"
138872	//     }
138873	//   },
138874	//   "path": "projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}",
138875	//   "response": {
138876	//     "$ref": "NotificationEndpoint"
138877	//   },
138878	//   "scopes": [
138879	//     "https://www.googleapis.com/auth/cloud-platform",
138880	//     "https://www.googleapis.com/auth/compute",
138881	//     "https://www.googleapis.com/auth/compute.readonly"
138882	//   ]
138883	// }
138884
138885}
138886
138887// method id "compute.regionNotificationEndpoints.insert":
138888
138889type RegionNotificationEndpointsInsertCall struct {
138890	s                    *Service
138891	project              string
138892	region               string
138893	notificationendpoint *NotificationEndpoint
138894	urlParams_           gensupport.URLParams
138895	ctx_                 context.Context
138896	header_              http.Header
138897}
138898
138899// Insert: Create a NotificationEndpoint in the specified project in the
138900// given region using the parameters that are included in the request.
138901func (r *RegionNotificationEndpointsService) Insert(project string, region string, notificationendpoint *NotificationEndpoint) *RegionNotificationEndpointsInsertCall {
138902	c := &RegionNotificationEndpointsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
138903	c.project = project
138904	c.region = region
138905	c.notificationendpoint = notificationendpoint
138906	return c
138907}
138908
138909// RequestId sets the optional parameter "requestId": An optional
138910// request ID to identify requests. Specify a unique request ID so that
138911// if you must retry your request, the server will know to ignore the
138912// request if it has already been completed.
138913//
138914// For example, consider a situation where you make an initial request
138915// and the request times out. If you make the request again with the
138916// same request ID, the server can check if original operation with the
138917// same request ID was received, and if so, will ignore the second
138918// request. This prevents clients from accidentally creating duplicate
138919// commitments.
138920//
138921// The request ID must be a valid UUID with the exception that zero UUID
138922// is not supported (00000000-0000-0000-0000-000000000000).
138923func (c *RegionNotificationEndpointsInsertCall) RequestId(requestId string) *RegionNotificationEndpointsInsertCall {
138924	c.urlParams_.Set("requestId", requestId)
138925	return c
138926}
138927
138928// Fields allows partial responses to be retrieved. See
138929// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
138930// for more information.
138931func (c *RegionNotificationEndpointsInsertCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsInsertCall {
138932	c.urlParams_.Set("fields", googleapi.CombineFields(s))
138933	return c
138934}
138935
138936// Context sets the context to be used in this call's Do method. Any
138937// pending HTTP request will be aborted if the provided context is
138938// canceled.
138939func (c *RegionNotificationEndpointsInsertCall) Context(ctx context.Context) *RegionNotificationEndpointsInsertCall {
138940	c.ctx_ = ctx
138941	return c
138942}
138943
138944// Header returns an http.Header that can be modified by the caller to
138945// add HTTP headers to the request.
138946func (c *RegionNotificationEndpointsInsertCall) Header() http.Header {
138947	if c.header_ == nil {
138948		c.header_ = make(http.Header)
138949	}
138950	return c.header_
138951}
138952
138953func (c *RegionNotificationEndpointsInsertCall) doRequest(alt string) (*http.Response, error) {
138954	reqHeaders := make(http.Header)
138955	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
138956	for k, v := range c.header_ {
138957		reqHeaders[k] = v
138958	}
138959	reqHeaders.Set("User-Agent", c.s.userAgent())
138960	var body io.Reader = nil
138961	body, err := googleapi.WithoutDataWrapper.JSONReader(c.notificationendpoint)
138962	if err != nil {
138963		return nil, err
138964	}
138965	reqHeaders.Set("Content-Type", "application/json")
138966	c.urlParams_.Set("alt", alt)
138967	c.urlParams_.Set("prettyPrint", "false")
138968	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/notificationEndpoints")
138969	urls += "?" + c.urlParams_.Encode()
138970	req, err := http.NewRequest("POST", urls, body)
138971	if err != nil {
138972		return nil, err
138973	}
138974	req.Header = reqHeaders
138975	googleapi.Expand(req.URL, map[string]string{
138976		"project": c.project,
138977		"region":  c.region,
138978	})
138979	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138980}
138981
138982// Do executes the "compute.regionNotificationEndpoints.insert" call.
138983// Exactly one of *Operation or error will be non-nil. Any non-2xx
138984// status code is an error. Response headers are in either
138985// *Operation.ServerResponse.Header or (if a response was returned at
138986// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
138987// to check whether the returned error was because
138988// http.StatusNotModified was returned.
138989func (c *RegionNotificationEndpointsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
138990	gensupport.SetOptions(c.urlParams_, opts...)
138991	res, err := c.doRequest("json")
138992	if res != nil && res.StatusCode == http.StatusNotModified {
138993		if res.Body != nil {
138994			res.Body.Close()
138995		}
138996		return nil, &googleapi.Error{
138997			Code:   res.StatusCode,
138998			Header: res.Header,
138999		}
139000	}
139001	if err != nil {
139002		return nil, err
139003	}
139004	defer googleapi.CloseBody(res)
139005	if err := googleapi.CheckResponse(res); err != nil {
139006		return nil, err
139007	}
139008	ret := &Operation{
139009		ServerResponse: googleapi.ServerResponse{
139010			Header:         res.Header,
139011			HTTPStatusCode: res.StatusCode,
139012		},
139013	}
139014	target := &ret
139015	if err := gensupport.DecodeResponse(target, res); err != nil {
139016		return nil, err
139017	}
139018	return ret, nil
139019	// {
139020	//   "description": "Create a NotificationEndpoint in the specified project in the given region using the parameters that are included in the request.",
139021	//   "httpMethod": "POST",
139022	//   "id": "compute.regionNotificationEndpoints.insert",
139023	//   "parameterOrder": [
139024	//     "project",
139025	//     "region"
139026	//   ],
139027	//   "parameters": {
139028	//     "project": {
139029	//       "description": "Project ID for this request.",
139030	//       "location": "path",
139031	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
139032	//       "required": true,
139033	//       "type": "string"
139034	//     },
139035	//     "region": {
139036	//       "description": "Name of the region scoping this request.",
139037	//       "location": "path",
139038	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
139039	//       "required": true,
139040	//       "type": "string"
139041	//     },
139042	//     "requestId": {
139043	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
139044	//       "location": "query",
139045	//       "type": "string"
139046	//     }
139047	//   },
139048	//   "path": "projects/{project}/regions/{region}/notificationEndpoints",
139049	//   "request": {
139050	//     "$ref": "NotificationEndpoint"
139051	//   },
139052	//   "response": {
139053	//     "$ref": "Operation"
139054	//   },
139055	//   "scopes": [
139056	//     "https://www.googleapis.com/auth/cloud-platform",
139057	//     "https://www.googleapis.com/auth/compute"
139058	//   ]
139059	// }
139060
139061}
139062
139063// method id "compute.regionNotificationEndpoints.list":
139064
139065type RegionNotificationEndpointsListCall struct {
139066	s            *Service
139067	project      string
139068	region       string
139069	urlParams_   gensupport.URLParams
139070	ifNoneMatch_ string
139071	ctx_         context.Context
139072	header_      http.Header
139073}
139074
139075// List: Lists the NotificationEndpoints for a project in the given
139076// region.
139077func (r *RegionNotificationEndpointsService) List(project string, region string) *RegionNotificationEndpointsListCall {
139078	c := &RegionNotificationEndpointsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139079	c.project = project
139080	c.region = region
139081	return c
139082}
139083
139084// Filter sets the optional parameter "filter": A filter expression that
139085// filters resources listed in the response. The expression must specify
139086// the field name, a comparison operator, and the value that you want to
139087// use for filtering. The value must be a string, a number, or a
139088// boolean. The comparison operator must be either `=`, `!=`, `>`, or
139089// `<`.
139090//
139091// For example, if you are filtering Compute Engine instances, you can
139092// exclude instances named `example-instance` by specifying `name !=
139093// example-instance`.
139094//
139095// You can also filter nested fields. For example, you could specify
139096// `scheduling.automaticRestart = false` to include instances only if
139097// they are not scheduled for automatic restarts. You can use filtering
139098// on nested fields to filter based on resource labels.
139099//
139100// To filter on multiple expressions, provide each separate expression
139101// within parentheses. For example: ``` (scheduling.automaticRestart =
139102// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
139103// is an `AND` expression. However, you can include `AND` and `OR`
139104// expressions explicitly. For example: ``` (cpuPlatform = "Intel
139105// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
139106// (scheduling.automaticRestart = true) ```
139107func (c *RegionNotificationEndpointsListCall) Filter(filter string) *RegionNotificationEndpointsListCall {
139108	c.urlParams_.Set("filter", filter)
139109	return c
139110}
139111
139112// MaxResults sets the optional parameter "maxResults": The maximum
139113// number of results per page that should be returned. If the number of
139114// available results is larger than `maxResults`, Compute Engine returns
139115// a `nextPageToken` that can be used to get the next page of results in
139116// subsequent list requests. Acceptable values are `0` to `500`,
139117// inclusive. (Default: `500`)
139118func (c *RegionNotificationEndpointsListCall) MaxResults(maxResults int64) *RegionNotificationEndpointsListCall {
139119	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
139120	return c
139121}
139122
139123// OrderBy sets the optional parameter "orderBy": Sorts list results by
139124// a certain order. By default, results are returned in alphanumerical
139125// order based on the resource name.
139126//
139127// You can also sort results in descending order based on the creation
139128// timestamp using `orderBy="creationTimestamp desc". This sorts
139129// results based on the `creationTimestamp` field in reverse
139130// chronological order (newest result first). Use this to sort resources
139131// like operations so that the newest operation is returned
139132// first.
139133//
139134// Currently, only sorting by `name` or `creationTimestamp desc` is
139135// supported.
139136func (c *RegionNotificationEndpointsListCall) OrderBy(orderBy string) *RegionNotificationEndpointsListCall {
139137	c.urlParams_.Set("orderBy", orderBy)
139138	return c
139139}
139140
139141// PageToken sets the optional parameter "pageToken": Specifies a page
139142// token to use. Set `pageToken` to the `nextPageToken` returned by a
139143// previous list request to get the next page of results.
139144func (c *RegionNotificationEndpointsListCall) PageToken(pageToken string) *RegionNotificationEndpointsListCall {
139145	c.urlParams_.Set("pageToken", pageToken)
139146	return c
139147}
139148
139149// ReturnPartialSuccess sets the optional parameter
139150// "returnPartialSuccess": Opt-in for partial success behavior which
139151// provides partial results in case of failure. The default value is
139152// false.
139153func (c *RegionNotificationEndpointsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionNotificationEndpointsListCall {
139154	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
139155	return c
139156}
139157
139158// Fields allows partial responses to be retrieved. See
139159// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139160// for more information.
139161func (c *RegionNotificationEndpointsListCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsListCall {
139162	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139163	return c
139164}
139165
139166// IfNoneMatch sets the optional parameter which makes the operation
139167// fail if the object's ETag matches the given value. This is useful for
139168// getting updates only after the object has changed since the last
139169// request. Use googleapi.IsNotModified to check whether the response
139170// error from Do is the result of In-None-Match.
139171func (c *RegionNotificationEndpointsListCall) IfNoneMatch(entityTag string) *RegionNotificationEndpointsListCall {
139172	c.ifNoneMatch_ = entityTag
139173	return c
139174}
139175
139176// Context sets the context to be used in this call's Do method. Any
139177// pending HTTP request will be aborted if the provided context is
139178// canceled.
139179func (c *RegionNotificationEndpointsListCall) Context(ctx context.Context) *RegionNotificationEndpointsListCall {
139180	c.ctx_ = ctx
139181	return c
139182}
139183
139184// Header returns an http.Header that can be modified by the caller to
139185// add HTTP headers to the request.
139186func (c *RegionNotificationEndpointsListCall) Header() http.Header {
139187	if c.header_ == nil {
139188		c.header_ = make(http.Header)
139189	}
139190	return c.header_
139191}
139192
139193func (c *RegionNotificationEndpointsListCall) doRequest(alt string) (*http.Response, error) {
139194	reqHeaders := make(http.Header)
139195	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
139196	for k, v := range c.header_ {
139197		reqHeaders[k] = v
139198	}
139199	reqHeaders.Set("User-Agent", c.s.userAgent())
139200	if c.ifNoneMatch_ != "" {
139201		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
139202	}
139203	var body io.Reader = nil
139204	c.urlParams_.Set("alt", alt)
139205	c.urlParams_.Set("prettyPrint", "false")
139206	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/notificationEndpoints")
139207	urls += "?" + c.urlParams_.Encode()
139208	req, err := http.NewRequest("GET", urls, body)
139209	if err != nil {
139210		return nil, err
139211	}
139212	req.Header = reqHeaders
139213	googleapi.Expand(req.URL, map[string]string{
139214		"project": c.project,
139215		"region":  c.region,
139216	})
139217	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139218}
139219
139220// Do executes the "compute.regionNotificationEndpoints.list" call.
139221// Exactly one of *NotificationEndpointList or error will be non-nil.
139222// Any non-2xx status code is an error. Response headers are in either
139223// *NotificationEndpointList.ServerResponse.Header or (if a response was
139224// returned at all) in error.(*googleapi.Error).Header. Use
139225// googleapi.IsNotModified to check whether the returned error was
139226// because http.StatusNotModified was returned.
139227func (c *RegionNotificationEndpointsListCall) Do(opts ...googleapi.CallOption) (*NotificationEndpointList, error) {
139228	gensupport.SetOptions(c.urlParams_, opts...)
139229	res, err := c.doRequest("json")
139230	if res != nil && res.StatusCode == http.StatusNotModified {
139231		if res.Body != nil {
139232			res.Body.Close()
139233		}
139234		return nil, &googleapi.Error{
139235			Code:   res.StatusCode,
139236			Header: res.Header,
139237		}
139238	}
139239	if err != nil {
139240		return nil, err
139241	}
139242	defer googleapi.CloseBody(res)
139243	if err := googleapi.CheckResponse(res); err != nil {
139244		return nil, err
139245	}
139246	ret := &NotificationEndpointList{
139247		ServerResponse: googleapi.ServerResponse{
139248			Header:         res.Header,
139249			HTTPStatusCode: res.StatusCode,
139250		},
139251	}
139252	target := &ret
139253	if err := gensupport.DecodeResponse(target, res); err != nil {
139254		return nil, err
139255	}
139256	return ret, nil
139257	// {
139258	//   "description": "Lists the NotificationEndpoints for a project in the given region.",
139259	//   "httpMethod": "GET",
139260	//   "id": "compute.regionNotificationEndpoints.list",
139261	//   "parameterOrder": [
139262	//     "project",
139263	//     "region"
139264	//   ],
139265	//   "parameters": {
139266	//     "filter": {
139267	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
139268	//       "location": "query",
139269	//       "type": "string"
139270	//     },
139271	//     "maxResults": {
139272	//       "default": "500",
139273	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
139274	//       "format": "uint32",
139275	//       "location": "query",
139276	//       "minimum": "0",
139277	//       "type": "integer"
139278	//     },
139279	//     "orderBy": {
139280	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
139281	//       "location": "query",
139282	//       "type": "string"
139283	//     },
139284	//     "pageToken": {
139285	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
139286	//       "location": "query",
139287	//       "type": "string"
139288	//     },
139289	//     "project": {
139290	//       "description": "Project ID for this request.",
139291	//       "location": "path",
139292	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
139293	//       "required": true,
139294	//       "type": "string"
139295	//     },
139296	//     "region": {
139297	//       "description": "Name of the region scoping this request.",
139298	//       "location": "path",
139299	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
139300	//       "required": true,
139301	//       "type": "string"
139302	//     },
139303	//     "returnPartialSuccess": {
139304	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
139305	//       "location": "query",
139306	//       "type": "boolean"
139307	//     }
139308	//   },
139309	//   "path": "projects/{project}/regions/{region}/notificationEndpoints",
139310	//   "response": {
139311	//     "$ref": "NotificationEndpointList"
139312	//   },
139313	//   "scopes": [
139314	//     "https://www.googleapis.com/auth/cloud-platform",
139315	//     "https://www.googleapis.com/auth/compute",
139316	//     "https://www.googleapis.com/auth/compute.readonly"
139317	//   ]
139318	// }
139319
139320}
139321
139322// Pages invokes f for each page of results.
139323// A non-nil error returned from f will halt the iteration.
139324// The provided context supersedes any context provided to the Context method.
139325func (c *RegionNotificationEndpointsListCall) Pages(ctx context.Context, f func(*NotificationEndpointList) error) error {
139326	c.ctx_ = ctx
139327	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
139328	for {
139329		x, err := c.Do()
139330		if err != nil {
139331			return err
139332		}
139333		if err := f(x); err != nil {
139334			return err
139335		}
139336		if x.NextPageToken == "" {
139337			return nil
139338		}
139339		c.PageToken(x.NextPageToken)
139340	}
139341}
139342
139343// method id "compute.regionNotificationEndpoints.testIamPermissions":
139344
139345type RegionNotificationEndpointsTestIamPermissionsCall struct {
139346	s                      *Service
139347	project                string
139348	region                 string
139349	resource               string
139350	testpermissionsrequest *TestPermissionsRequest
139351	urlParams_             gensupport.URLParams
139352	ctx_                   context.Context
139353	header_                http.Header
139354}
139355
139356// TestIamPermissions: Returns permissions that a caller has on the
139357// specified resource.
139358func (r *RegionNotificationEndpointsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionNotificationEndpointsTestIamPermissionsCall {
139359	c := &RegionNotificationEndpointsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139360	c.project = project
139361	c.region = region
139362	c.resource = resource
139363	c.testpermissionsrequest = testpermissionsrequest
139364	return c
139365}
139366
139367// Fields allows partial responses to be retrieved. See
139368// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139369// for more information.
139370func (c *RegionNotificationEndpointsTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsTestIamPermissionsCall {
139371	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139372	return c
139373}
139374
139375// Context sets the context to be used in this call's Do method. Any
139376// pending HTTP request will be aborted if the provided context is
139377// canceled.
139378func (c *RegionNotificationEndpointsTestIamPermissionsCall) Context(ctx context.Context) *RegionNotificationEndpointsTestIamPermissionsCall {
139379	c.ctx_ = ctx
139380	return c
139381}
139382
139383// Header returns an http.Header that can be modified by the caller to
139384// add HTTP headers to the request.
139385func (c *RegionNotificationEndpointsTestIamPermissionsCall) Header() http.Header {
139386	if c.header_ == nil {
139387		c.header_ = make(http.Header)
139388	}
139389	return c.header_
139390}
139391
139392func (c *RegionNotificationEndpointsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
139393	reqHeaders := make(http.Header)
139394	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
139395	for k, v := range c.header_ {
139396		reqHeaders[k] = v
139397	}
139398	reqHeaders.Set("User-Agent", c.s.userAgent())
139399	var body io.Reader = nil
139400	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
139401	if err != nil {
139402		return nil, err
139403	}
139404	reqHeaders.Set("Content-Type", "application/json")
139405	c.urlParams_.Set("alt", alt)
139406	c.urlParams_.Set("prettyPrint", "false")
139407	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/notificationEndpoints/{resource}/testIamPermissions")
139408	urls += "?" + c.urlParams_.Encode()
139409	req, err := http.NewRequest("POST", urls, body)
139410	if err != nil {
139411		return nil, err
139412	}
139413	req.Header = reqHeaders
139414	googleapi.Expand(req.URL, map[string]string{
139415		"project":  c.project,
139416		"region":   c.region,
139417		"resource": c.resource,
139418	})
139419	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139420}
139421
139422// Do executes the "compute.regionNotificationEndpoints.testIamPermissions" call.
139423// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
139424// non-2xx status code is an error. Response headers are in either
139425// *TestPermissionsResponse.ServerResponse.Header or (if a response was
139426// returned at all) in error.(*googleapi.Error).Header. Use
139427// googleapi.IsNotModified to check whether the returned error was
139428// because http.StatusNotModified was returned.
139429func (c *RegionNotificationEndpointsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
139430	gensupport.SetOptions(c.urlParams_, opts...)
139431	res, err := c.doRequest("json")
139432	if res != nil && res.StatusCode == http.StatusNotModified {
139433		if res.Body != nil {
139434			res.Body.Close()
139435		}
139436		return nil, &googleapi.Error{
139437			Code:   res.StatusCode,
139438			Header: res.Header,
139439		}
139440	}
139441	if err != nil {
139442		return nil, err
139443	}
139444	defer googleapi.CloseBody(res)
139445	if err := googleapi.CheckResponse(res); err != nil {
139446		return nil, err
139447	}
139448	ret := &TestPermissionsResponse{
139449		ServerResponse: googleapi.ServerResponse{
139450			Header:         res.Header,
139451			HTTPStatusCode: res.StatusCode,
139452		},
139453	}
139454	target := &ret
139455	if err := gensupport.DecodeResponse(target, res); err != nil {
139456		return nil, err
139457	}
139458	return ret, nil
139459	// {
139460	//   "description": "Returns permissions that a caller has on the specified resource.",
139461	//   "httpMethod": "POST",
139462	//   "id": "compute.regionNotificationEndpoints.testIamPermissions",
139463	//   "parameterOrder": [
139464	//     "project",
139465	//     "region",
139466	//     "resource"
139467	//   ],
139468	//   "parameters": {
139469	//     "project": {
139470	//       "description": "Project ID for this request.",
139471	//       "location": "path",
139472	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
139473	//       "required": true,
139474	//       "type": "string"
139475	//     },
139476	//     "region": {
139477	//       "description": "The name of the region for this request.",
139478	//       "location": "path",
139479	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
139480	//       "required": true,
139481	//       "type": "string"
139482	//     },
139483	//     "resource": {
139484	//       "description": "Name or id of the resource for this request.",
139485	//       "location": "path",
139486	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
139487	//       "required": true,
139488	//       "type": "string"
139489	//     }
139490	//   },
139491	//   "path": "projects/{project}/regions/{region}/notificationEndpoints/{resource}/testIamPermissions",
139492	//   "request": {
139493	//     "$ref": "TestPermissionsRequest"
139494	//   },
139495	//   "response": {
139496	//     "$ref": "TestPermissionsResponse"
139497	//   },
139498	//   "scopes": [
139499	//     "https://www.googleapis.com/auth/cloud-platform",
139500	//     "https://www.googleapis.com/auth/compute",
139501	//     "https://www.googleapis.com/auth/compute.readonly"
139502	//   ]
139503	// }
139504
139505}
139506
139507// method id "compute.regionOperations.delete":
139508
139509type RegionOperationsDeleteCall struct {
139510	s          *Service
139511	project    string
139512	region     string
139513	operation  string
139514	urlParams_ gensupport.URLParams
139515	ctx_       context.Context
139516	header_    http.Header
139517}
139518
139519// Delete: Deletes the specified region-specific Operations resource.
139520// For details, see https://cloud.google.com/compute/docs/reference/latest/regionOperations/delete
139521func (r *RegionOperationsService) Delete(project string, region string, operation string) *RegionOperationsDeleteCall {
139522	c := &RegionOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139523	c.project = project
139524	c.region = region
139525	c.operation = operation
139526	return c
139527}
139528
139529// Fields allows partial responses to be retrieved. See
139530// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139531// for more information.
139532func (c *RegionOperationsDeleteCall) Fields(s ...googleapi.Field) *RegionOperationsDeleteCall {
139533	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139534	return c
139535}
139536
139537// Context sets the context to be used in this call's Do method. Any
139538// pending HTTP request will be aborted if the provided context is
139539// canceled.
139540func (c *RegionOperationsDeleteCall) Context(ctx context.Context) *RegionOperationsDeleteCall {
139541	c.ctx_ = ctx
139542	return c
139543}
139544
139545// Header returns an http.Header that can be modified by the caller to
139546// add HTTP headers to the request.
139547func (c *RegionOperationsDeleteCall) Header() http.Header {
139548	if c.header_ == nil {
139549		c.header_ = make(http.Header)
139550	}
139551	return c.header_
139552}
139553
139554func (c *RegionOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
139555	reqHeaders := make(http.Header)
139556	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
139557	for k, v := range c.header_ {
139558		reqHeaders[k] = v
139559	}
139560	reqHeaders.Set("User-Agent", c.s.userAgent())
139561	var body io.Reader = nil
139562	c.urlParams_.Set("alt", alt)
139563	c.urlParams_.Set("prettyPrint", "false")
139564	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/operations/{operation}")
139565	urls += "?" + c.urlParams_.Encode()
139566	req, err := http.NewRequest("DELETE", urls, body)
139567	if err != nil {
139568		return nil, err
139569	}
139570	req.Header = reqHeaders
139571	googleapi.Expand(req.URL, map[string]string{
139572		"project":   c.project,
139573		"region":    c.region,
139574		"operation": c.operation,
139575	})
139576	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139577}
139578
139579// Do executes the "compute.regionOperations.delete" call.
139580func (c *RegionOperationsDeleteCall) Do(opts ...googleapi.CallOption) error {
139581	gensupport.SetOptions(c.urlParams_, opts...)
139582	res, err := c.doRequest("json")
139583	if err != nil {
139584		return err
139585	}
139586	defer googleapi.CloseBody(res)
139587	if err := googleapi.CheckResponse(res); err != nil {
139588		return err
139589	}
139590	return nil
139591	// {
139592	//   "description": "Deletes the specified region-specific Operations resource.",
139593	//   "httpMethod": "DELETE",
139594	//   "id": "compute.regionOperations.delete",
139595	//   "parameterOrder": [
139596	//     "project",
139597	//     "region",
139598	//     "operation"
139599	//   ],
139600	//   "parameters": {
139601	//     "operation": {
139602	//       "description": "Name of the Operations resource to delete.",
139603	//       "location": "path",
139604	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
139605	//       "required": true,
139606	//       "type": "string"
139607	//     },
139608	//     "project": {
139609	//       "description": "Project ID for this request.",
139610	//       "location": "path",
139611	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
139612	//       "required": true,
139613	//       "type": "string"
139614	//     },
139615	//     "region": {
139616	//       "description": "Name of the region for this request.",
139617	//       "location": "path",
139618	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
139619	//       "required": true,
139620	//       "type": "string"
139621	//     }
139622	//   },
139623	//   "path": "projects/{project}/regions/{region}/operations/{operation}",
139624	//   "scopes": [
139625	//     "https://www.googleapis.com/auth/cloud-platform",
139626	//     "https://www.googleapis.com/auth/compute"
139627	//   ]
139628	// }
139629
139630}
139631
139632// method id "compute.regionOperations.get":
139633
139634type RegionOperationsGetCall struct {
139635	s            *Service
139636	project      string
139637	region       string
139638	operation    string
139639	urlParams_   gensupport.URLParams
139640	ifNoneMatch_ string
139641	ctx_         context.Context
139642	header_      http.Header
139643}
139644
139645// Get: Retrieves the specified region-specific Operations resource.
139646// For details, see https://cloud.google.com/compute/docs/reference/latest/regionOperations/get
139647func (r *RegionOperationsService) Get(project string, region string, operation string) *RegionOperationsGetCall {
139648	c := &RegionOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139649	c.project = project
139650	c.region = region
139651	c.operation = operation
139652	return c
139653}
139654
139655// Fields allows partial responses to be retrieved. See
139656// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139657// for more information.
139658func (c *RegionOperationsGetCall) Fields(s ...googleapi.Field) *RegionOperationsGetCall {
139659	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139660	return c
139661}
139662
139663// IfNoneMatch sets the optional parameter which makes the operation
139664// fail if the object's ETag matches the given value. This is useful for
139665// getting updates only after the object has changed since the last
139666// request. Use googleapi.IsNotModified to check whether the response
139667// error from Do is the result of In-None-Match.
139668func (c *RegionOperationsGetCall) IfNoneMatch(entityTag string) *RegionOperationsGetCall {
139669	c.ifNoneMatch_ = entityTag
139670	return c
139671}
139672
139673// Context sets the context to be used in this call's Do method. Any
139674// pending HTTP request will be aborted if the provided context is
139675// canceled.
139676func (c *RegionOperationsGetCall) Context(ctx context.Context) *RegionOperationsGetCall {
139677	c.ctx_ = ctx
139678	return c
139679}
139680
139681// Header returns an http.Header that can be modified by the caller to
139682// add HTTP headers to the request.
139683func (c *RegionOperationsGetCall) Header() http.Header {
139684	if c.header_ == nil {
139685		c.header_ = make(http.Header)
139686	}
139687	return c.header_
139688}
139689
139690func (c *RegionOperationsGetCall) doRequest(alt string) (*http.Response, error) {
139691	reqHeaders := make(http.Header)
139692	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
139693	for k, v := range c.header_ {
139694		reqHeaders[k] = v
139695	}
139696	reqHeaders.Set("User-Agent", c.s.userAgent())
139697	if c.ifNoneMatch_ != "" {
139698		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
139699	}
139700	var body io.Reader = nil
139701	c.urlParams_.Set("alt", alt)
139702	c.urlParams_.Set("prettyPrint", "false")
139703	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/operations/{operation}")
139704	urls += "?" + c.urlParams_.Encode()
139705	req, err := http.NewRequest("GET", urls, body)
139706	if err != nil {
139707		return nil, err
139708	}
139709	req.Header = reqHeaders
139710	googleapi.Expand(req.URL, map[string]string{
139711		"project":   c.project,
139712		"region":    c.region,
139713		"operation": c.operation,
139714	})
139715	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139716}
139717
139718// Do executes the "compute.regionOperations.get" call.
139719// Exactly one of *Operation or error will be non-nil. Any non-2xx
139720// status code is an error. Response headers are in either
139721// *Operation.ServerResponse.Header or (if a response was returned at
139722// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
139723// to check whether the returned error was because
139724// http.StatusNotModified was returned.
139725func (c *RegionOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
139726	gensupport.SetOptions(c.urlParams_, opts...)
139727	res, err := c.doRequest("json")
139728	if res != nil && res.StatusCode == http.StatusNotModified {
139729		if res.Body != nil {
139730			res.Body.Close()
139731		}
139732		return nil, &googleapi.Error{
139733			Code:   res.StatusCode,
139734			Header: res.Header,
139735		}
139736	}
139737	if err != nil {
139738		return nil, err
139739	}
139740	defer googleapi.CloseBody(res)
139741	if err := googleapi.CheckResponse(res); err != nil {
139742		return nil, err
139743	}
139744	ret := &Operation{
139745		ServerResponse: googleapi.ServerResponse{
139746			Header:         res.Header,
139747			HTTPStatusCode: res.StatusCode,
139748		},
139749	}
139750	target := &ret
139751	if err := gensupport.DecodeResponse(target, res); err != nil {
139752		return nil, err
139753	}
139754	return ret, nil
139755	// {
139756	//   "description": "Retrieves the specified region-specific Operations resource.",
139757	//   "httpMethod": "GET",
139758	//   "id": "compute.regionOperations.get",
139759	//   "parameterOrder": [
139760	//     "project",
139761	//     "region",
139762	//     "operation"
139763	//   ],
139764	//   "parameters": {
139765	//     "operation": {
139766	//       "description": "Name of the Operations resource to return.",
139767	//       "location": "path",
139768	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
139769	//       "required": true,
139770	//       "type": "string"
139771	//     },
139772	//     "project": {
139773	//       "description": "Project ID for this request.",
139774	//       "location": "path",
139775	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
139776	//       "required": true,
139777	//       "type": "string"
139778	//     },
139779	//     "region": {
139780	//       "description": "Name of the region for this request.",
139781	//       "location": "path",
139782	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
139783	//       "required": true,
139784	//       "type": "string"
139785	//     }
139786	//   },
139787	//   "path": "projects/{project}/regions/{region}/operations/{operation}",
139788	//   "response": {
139789	//     "$ref": "Operation"
139790	//   },
139791	//   "scopes": [
139792	//     "https://www.googleapis.com/auth/cloud-platform",
139793	//     "https://www.googleapis.com/auth/compute",
139794	//     "https://www.googleapis.com/auth/compute.readonly"
139795	//   ]
139796	// }
139797
139798}
139799
139800// method id "compute.regionOperations.list":
139801
139802type RegionOperationsListCall struct {
139803	s            *Service
139804	project      string
139805	region       string
139806	urlParams_   gensupport.URLParams
139807	ifNoneMatch_ string
139808	ctx_         context.Context
139809	header_      http.Header
139810}
139811
139812// List: Retrieves a list of Operation resources contained within the
139813// specified region.
139814// For details, see https://cloud.google.com/compute/docs/reference/latest/regionOperations/list
139815func (r *RegionOperationsService) List(project string, region string) *RegionOperationsListCall {
139816	c := &RegionOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139817	c.project = project
139818	c.region = region
139819	return c
139820}
139821
139822// Filter sets the optional parameter "filter": A filter expression that
139823// filters resources listed in the response. The expression must specify
139824// the field name, a comparison operator, and the value that you want to
139825// use for filtering. The value must be a string, a number, or a
139826// boolean. The comparison operator must be either `=`, `!=`, `>`, or
139827// `<`.
139828//
139829// For example, if you are filtering Compute Engine instances, you can
139830// exclude instances named `example-instance` by specifying `name !=
139831// example-instance`.
139832//
139833// You can also filter nested fields. For example, you could specify
139834// `scheduling.automaticRestart = false` to include instances only if
139835// they are not scheduled for automatic restarts. You can use filtering
139836// on nested fields to filter based on resource labels.
139837//
139838// To filter on multiple expressions, provide each separate expression
139839// within parentheses. For example: ``` (scheduling.automaticRestart =
139840// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
139841// is an `AND` expression. However, you can include `AND` and `OR`
139842// expressions explicitly. For example: ``` (cpuPlatform = "Intel
139843// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
139844// (scheduling.automaticRestart = true) ```
139845func (c *RegionOperationsListCall) Filter(filter string) *RegionOperationsListCall {
139846	c.urlParams_.Set("filter", filter)
139847	return c
139848}
139849
139850// MaxResults sets the optional parameter "maxResults": The maximum
139851// number of results per page that should be returned. If the number of
139852// available results is larger than `maxResults`, Compute Engine returns
139853// a `nextPageToken` that can be used to get the next page of results in
139854// subsequent list requests. Acceptable values are `0` to `500`,
139855// inclusive. (Default: `500`)
139856func (c *RegionOperationsListCall) MaxResults(maxResults int64) *RegionOperationsListCall {
139857	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
139858	return c
139859}
139860
139861// OrderBy sets the optional parameter "orderBy": Sorts list results by
139862// a certain order. By default, results are returned in alphanumerical
139863// order based on the resource name.
139864//
139865// You can also sort results in descending order based on the creation
139866// timestamp using `orderBy="creationTimestamp desc". This sorts
139867// results based on the `creationTimestamp` field in reverse
139868// chronological order (newest result first). Use this to sort resources
139869// like operations so that the newest operation is returned
139870// first.
139871//
139872// Currently, only sorting by `name` or `creationTimestamp desc` is
139873// supported.
139874func (c *RegionOperationsListCall) OrderBy(orderBy string) *RegionOperationsListCall {
139875	c.urlParams_.Set("orderBy", orderBy)
139876	return c
139877}
139878
139879// PageToken sets the optional parameter "pageToken": Specifies a page
139880// token to use. Set `pageToken` to the `nextPageToken` returned by a
139881// previous list request to get the next page of results.
139882func (c *RegionOperationsListCall) PageToken(pageToken string) *RegionOperationsListCall {
139883	c.urlParams_.Set("pageToken", pageToken)
139884	return c
139885}
139886
139887// ReturnPartialSuccess sets the optional parameter
139888// "returnPartialSuccess": Opt-in for partial success behavior which
139889// provides partial results in case of failure. The default value is
139890// false.
139891func (c *RegionOperationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionOperationsListCall {
139892	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
139893	return c
139894}
139895
139896// Fields allows partial responses to be retrieved. See
139897// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139898// for more information.
139899func (c *RegionOperationsListCall) Fields(s ...googleapi.Field) *RegionOperationsListCall {
139900	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139901	return c
139902}
139903
139904// IfNoneMatch sets the optional parameter which makes the operation
139905// fail if the object's ETag matches the given value. This is useful for
139906// getting updates only after the object has changed since the last
139907// request. Use googleapi.IsNotModified to check whether the response
139908// error from Do is the result of In-None-Match.
139909func (c *RegionOperationsListCall) IfNoneMatch(entityTag string) *RegionOperationsListCall {
139910	c.ifNoneMatch_ = entityTag
139911	return c
139912}
139913
139914// Context sets the context to be used in this call's Do method. Any
139915// pending HTTP request will be aborted if the provided context is
139916// canceled.
139917func (c *RegionOperationsListCall) Context(ctx context.Context) *RegionOperationsListCall {
139918	c.ctx_ = ctx
139919	return c
139920}
139921
139922// Header returns an http.Header that can be modified by the caller to
139923// add HTTP headers to the request.
139924func (c *RegionOperationsListCall) Header() http.Header {
139925	if c.header_ == nil {
139926		c.header_ = make(http.Header)
139927	}
139928	return c.header_
139929}
139930
139931func (c *RegionOperationsListCall) doRequest(alt string) (*http.Response, error) {
139932	reqHeaders := make(http.Header)
139933	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
139934	for k, v := range c.header_ {
139935		reqHeaders[k] = v
139936	}
139937	reqHeaders.Set("User-Agent", c.s.userAgent())
139938	if c.ifNoneMatch_ != "" {
139939		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
139940	}
139941	var body io.Reader = nil
139942	c.urlParams_.Set("alt", alt)
139943	c.urlParams_.Set("prettyPrint", "false")
139944	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/operations")
139945	urls += "?" + c.urlParams_.Encode()
139946	req, err := http.NewRequest("GET", urls, body)
139947	if err != nil {
139948		return nil, err
139949	}
139950	req.Header = reqHeaders
139951	googleapi.Expand(req.URL, map[string]string{
139952		"project": c.project,
139953		"region":  c.region,
139954	})
139955	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139956}
139957
139958// Do executes the "compute.regionOperations.list" call.
139959// Exactly one of *OperationList or error will be non-nil. Any non-2xx
139960// status code is an error. Response headers are in either
139961// *OperationList.ServerResponse.Header or (if a response was returned
139962// at all) in error.(*googleapi.Error).Header. Use
139963// googleapi.IsNotModified to check whether the returned error was
139964// because http.StatusNotModified was returned.
139965func (c *RegionOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) {
139966	gensupport.SetOptions(c.urlParams_, opts...)
139967	res, err := c.doRequest("json")
139968	if res != nil && res.StatusCode == http.StatusNotModified {
139969		if res.Body != nil {
139970			res.Body.Close()
139971		}
139972		return nil, &googleapi.Error{
139973			Code:   res.StatusCode,
139974			Header: res.Header,
139975		}
139976	}
139977	if err != nil {
139978		return nil, err
139979	}
139980	defer googleapi.CloseBody(res)
139981	if err := googleapi.CheckResponse(res); err != nil {
139982		return nil, err
139983	}
139984	ret := &OperationList{
139985		ServerResponse: googleapi.ServerResponse{
139986			Header:         res.Header,
139987			HTTPStatusCode: res.StatusCode,
139988		},
139989	}
139990	target := &ret
139991	if err := gensupport.DecodeResponse(target, res); err != nil {
139992		return nil, err
139993	}
139994	return ret, nil
139995	// {
139996	//   "description": "Retrieves a list of Operation resources contained within the specified region.",
139997	//   "httpMethod": "GET",
139998	//   "id": "compute.regionOperations.list",
139999	//   "parameterOrder": [
140000	//     "project",
140001	//     "region"
140002	//   ],
140003	//   "parameters": {
140004	//     "filter": {
140005	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
140006	//       "location": "query",
140007	//       "type": "string"
140008	//     },
140009	//     "maxResults": {
140010	//       "default": "500",
140011	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
140012	//       "format": "uint32",
140013	//       "location": "query",
140014	//       "minimum": "0",
140015	//       "type": "integer"
140016	//     },
140017	//     "orderBy": {
140018	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
140019	//       "location": "query",
140020	//       "type": "string"
140021	//     },
140022	//     "pageToken": {
140023	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
140024	//       "location": "query",
140025	//       "type": "string"
140026	//     },
140027	//     "project": {
140028	//       "description": "Project ID for this request.",
140029	//       "location": "path",
140030	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
140031	//       "required": true,
140032	//       "type": "string"
140033	//     },
140034	//     "region": {
140035	//       "description": "Name of the region for this request.",
140036	//       "location": "path",
140037	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
140038	//       "required": true,
140039	//       "type": "string"
140040	//     },
140041	//     "returnPartialSuccess": {
140042	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
140043	//       "location": "query",
140044	//       "type": "boolean"
140045	//     }
140046	//   },
140047	//   "path": "projects/{project}/regions/{region}/operations",
140048	//   "response": {
140049	//     "$ref": "OperationList"
140050	//   },
140051	//   "scopes": [
140052	//     "https://www.googleapis.com/auth/cloud-platform",
140053	//     "https://www.googleapis.com/auth/compute",
140054	//     "https://www.googleapis.com/auth/compute.readonly"
140055	//   ]
140056	// }
140057
140058}
140059
140060// Pages invokes f for each page of results.
140061// A non-nil error returned from f will halt the iteration.
140062// The provided context supersedes any context provided to the Context method.
140063func (c *RegionOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error {
140064	c.ctx_ = ctx
140065	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
140066	for {
140067		x, err := c.Do()
140068		if err != nil {
140069			return err
140070		}
140071		if err := f(x); err != nil {
140072			return err
140073		}
140074		if x.NextPageToken == "" {
140075			return nil
140076		}
140077		c.PageToken(x.NextPageToken)
140078	}
140079}
140080
140081// method id "compute.regionOperations.wait":
140082
140083type RegionOperationsWaitCall struct {
140084	s          *Service
140085	project    string
140086	region     string
140087	operation  string
140088	urlParams_ gensupport.URLParams
140089	ctx_       context.Context
140090	header_    http.Header
140091}
140092
140093// Wait: Waits for the specified Operation resource to return as `DONE`
140094// or for the request to approach the 2 minute deadline, and retrieves
140095// the specified Operation resource. This method differs from the `GET`
140096// method in that it waits for no more than the default deadline (2
140097// minutes) and then returns the current state of the operation, which
140098// might be `DONE` or still in progress.
140099//
140100// This method is called on a best-effort basis. Specifically:
140101// - In uncommon cases, when the server is overloaded, the request might
140102// return before the default deadline is reached, or might return after
140103// zero seconds.
140104// - If the default deadline is reached, there is no guarantee that the
140105// operation is actually done when the method returns. Be prepared to
140106// retry if the operation is not `DONE`.
140107func (r *RegionOperationsService) Wait(project string, region string, operation string) *RegionOperationsWaitCall {
140108	c := &RegionOperationsWaitCall{s: r.s, urlParams_: make(gensupport.URLParams)}
140109	c.project = project
140110	c.region = region
140111	c.operation = operation
140112	return c
140113}
140114
140115// Fields allows partial responses to be retrieved. See
140116// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
140117// for more information.
140118func (c *RegionOperationsWaitCall) Fields(s ...googleapi.Field) *RegionOperationsWaitCall {
140119	c.urlParams_.Set("fields", googleapi.CombineFields(s))
140120	return c
140121}
140122
140123// Context sets the context to be used in this call's Do method. Any
140124// pending HTTP request will be aborted if the provided context is
140125// canceled.
140126func (c *RegionOperationsWaitCall) Context(ctx context.Context) *RegionOperationsWaitCall {
140127	c.ctx_ = ctx
140128	return c
140129}
140130
140131// Header returns an http.Header that can be modified by the caller to
140132// add HTTP headers to the request.
140133func (c *RegionOperationsWaitCall) Header() http.Header {
140134	if c.header_ == nil {
140135		c.header_ = make(http.Header)
140136	}
140137	return c.header_
140138}
140139
140140func (c *RegionOperationsWaitCall) doRequest(alt string) (*http.Response, error) {
140141	reqHeaders := make(http.Header)
140142	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
140143	for k, v := range c.header_ {
140144		reqHeaders[k] = v
140145	}
140146	reqHeaders.Set("User-Agent", c.s.userAgent())
140147	var body io.Reader = nil
140148	c.urlParams_.Set("alt", alt)
140149	c.urlParams_.Set("prettyPrint", "false")
140150	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/operations/{operation}/wait")
140151	urls += "?" + c.urlParams_.Encode()
140152	req, err := http.NewRequest("POST", urls, body)
140153	if err != nil {
140154		return nil, err
140155	}
140156	req.Header = reqHeaders
140157	googleapi.Expand(req.URL, map[string]string{
140158		"project":   c.project,
140159		"region":    c.region,
140160		"operation": c.operation,
140161	})
140162	return gensupport.SendRequest(c.ctx_, c.s.client, req)
140163}
140164
140165// Do executes the "compute.regionOperations.wait" call.
140166// Exactly one of *Operation or error will be non-nil. Any non-2xx
140167// status code is an error. Response headers are in either
140168// *Operation.ServerResponse.Header or (if a response was returned at
140169// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
140170// to check whether the returned error was because
140171// http.StatusNotModified was returned.
140172func (c *RegionOperationsWaitCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
140173	gensupport.SetOptions(c.urlParams_, opts...)
140174	res, err := c.doRequest("json")
140175	if res != nil && res.StatusCode == http.StatusNotModified {
140176		if res.Body != nil {
140177			res.Body.Close()
140178		}
140179		return nil, &googleapi.Error{
140180			Code:   res.StatusCode,
140181			Header: res.Header,
140182		}
140183	}
140184	if err != nil {
140185		return nil, err
140186	}
140187	defer googleapi.CloseBody(res)
140188	if err := googleapi.CheckResponse(res); err != nil {
140189		return nil, err
140190	}
140191	ret := &Operation{
140192		ServerResponse: googleapi.ServerResponse{
140193			Header:         res.Header,
140194			HTTPStatusCode: res.StatusCode,
140195		},
140196	}
140197	target := &ret
140198	if err := gensupport.DecodeResponse(target, res); err != nil {
140199		return nil, err
140200	}
140201	return ret, nil
140202	// {
140203	//   "description": "Waits for the specified Operation resource to return as `DONE` or for the request to approach the 2 minute deadline, and retrieves the specified Operation resource. This method differs from the `GET` method in that it waits for no more than the default deadline (2 minutes) and then returns the current state of the operation, which might be `DONE` or still in progress.\n\nThis method is called on a best-effort basis. Specifically:  \n- In uncommon cases, when the server is overloaded, the request might return before the default deadline is reached, or might return after zero seconds. \n- If the default deadline is reached, there is no guarantee that the operation is actually done when the method returns. Be prepared to retry if the operation is not `DONE`.",
140204	//   "httpMethod": "POST",
140205	//   "id": "compute.regionOperations.wait",
140206	//   "parameterOrder": [
140207	//     "project",
140208	//     "region",
140209	//     "operation"
140210	//   ],
140211	//   "parameters": {
140212	//     "operation": {
140213	//       "description": "Name of the Operations resource to return.",
140214	//       "location": "path",
140215	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
140216	//       "required": true,
140217	//       "type": "string"
140218	//     },
140219	//     "project": {
140220	//       "description": "Project ID for this request.",
140221	//       "location": "path",
140222	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
140223	//       "required": true,
140224	//       "type": "string"
140225	//     },
140226	//     "region": {
140227	//       "description": "Name of the region for this request.",
140228	//       "location": "path",
140229	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
140230	//       "required": true,
140231	//       "type": "string"
140232	//     }
140233	//   },
140234	//   "path": "projects/{project}/regions/{region}/operations/{operation}/wait",
140235	//   "response": {
140236	//     "$ref": "Operation"
140237	//   },
140238	//   "scopes": [
140239	//     "https://www.googleapis.com/auth/cloud-platform",
140240	//     "https://www.googleapis.com/auth/compute",
140241	//     "https://www.googleapis.com/auth/compute.readonly"
140242	//   ]
140243	// }
140244
140245}
140246
140247// method id "compute.regionSslCertificates.delete":
140248
140249type RegionSslCertificatesDeleteCall struct {
140250	s              *Service
140251	project        string
140252	region         string
140253	sslCertificate string
140254	urlParams_     gensupport.URLParams
140255	ctx_           context.Context
140256	header_        http.Header
140257}
140258
140259// Delete: Deletes the specified SslCertificate resource in the region.
140260func (r *RegionSslCertificatesService) Delete(project string, region string, sslCertificate string) *RegionSslCertificatesDeleteCall {
140261	c := &RegionSslCertificatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
140262	c.project = project
140263	c.region = region
140264	c.sslCertificate = sslCertificate
140265	return c
140266}
140267
140268// RequestId sets the optional parameter "requestId": An optional
140269// request ID to identify requests. Specify a unique request ID so that
140270// if you must retry your request, the server will know to ignore the
140271// request if it has already been completed.
140272//
140273// For example, consider a situation where you make an initial request
140274// and the request times out. If you make the request again with the
140275// same request ID, the server can check if original operation with the
140276// same request ID was received, and if so, will ignore the second
140277// request. This prevents clients from accidentally creating duplicate
140278// commitments.
140279//
140280// The request ID must be a valid UUID with the exception that zero UUID
140281// is not supported (00000000-0000-0000-0000-000000000000).
140282func (c *RegionSslCertificatesDeleteCall) RequestId(requestId string) *RegionSslCertificatesDeleteCall {
140283	c.urlParams_.Set("requestId", requestId)
140284	return c
140285}
140286
140287// Fields allows partial responses to be retrieved. See
140288// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
140289// for more information.
140290func (c *RegionSslCertificatesDeleteCall) Fields(s ...googleapi.Field) *RegionSslCertificatesDeleteCall {
140291	c.urlParams_.Set("fields", googleapi.CombineFields(s))
140292	return c
140293}
140294
140295// Context sets the context to be used in this call's Do method. Any
140296// pending HTTP request will be aborted if the provided context is
140297// canceled.
140298func (c *RegionSslCertificatesDeleteCall) Context(ctx context.Context) *RegionSslCertificatesDeleteCall {
140299	c.ctx_ = ctx
140300	return c
140301}
140302
140303// Header returns an http.Header that can be modified by the caller to
140304// add HTTP headers to the request.
140305func (c *RegionSslCertificatesDeleteCall) Header() http.Header {
140306	if c.header_ == nil {
140307		c.header_ = make(http.Header)
140308	}
140309	return c.header_
140310}
140311
140312func (c *RegionSslCertificatesDeleteCall) doRequest(alt string) (*http.Response, error) {
140313	reqHeaders := make(http.Header)
140314	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
140315	for k, v := range c.header_ {
140316		reqHeaders[k] = v
140317	}
140318	reqHeaders.Set("User-Agent", c.s.userAgent())
140319	var body io.Reader = nil
140320	c.urlParams_.Set("alt", alt)
140321	c.urlParams_.Set("prettyPrint", "false")
140322	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/sslCertificates/{sslCertificate}")
140323	urls += "?" + c.urlParams_.Encode()
140324	req, err := http.NewRequest("DELETE", urls, body)
140325	if err != nil {
140326		return nil, err
140327	}
140328	req.Header = reqHeaders
140329	googleapi.Expand(req.URL, map[string]string{
140330		"project":        c.project,
140331		"region":         c.region,
140332		"sslCertificate": c.sslCertificate,
140333	})
140334	return gensupport.SendRequest(c.ctx_, c.s.client, req)
140335}
140336
140337// Do executes the "compute.regionSslCertificates.delete" call.
140338// Exactly one of *Operation or error will be non-nil. Any non-2xx
140339// status code is an error. Response headers are in either
140340// *Operation.ServerResponse.Header or (if a response was returned at
140341// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
140342// to check whether the returned error was because
140343// http.StatusNotModified was returned.
140344func (c *RegionSslCertificatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
140345	gensupport.SetOptions(c.urlParams_, opts...)
140346	res, err := c.doRequest("json")
140347	if res != nil && res.StatusCode == http.StatusNotModified {
140348		if res.Body != nil {
140349			res.Body.Close()
140350		}
140351		return nil, &googleapi.Error{
140352			Code:   res.StatusCode,
140353			Header: res.Header,
140354		}
140355	}
140356	if err != nil {
140357		return nil, err
140358	}
140359	defer googleapi.CloseBody(res)
140360	if err := googleapi.CheckResponse(res); err != nil {
140361		return nil, err
140362	}
140363	ret := &Operation{
140364		ServerResponse: googleapi.ServerResponse{
140365			Header:         res.Header,
140366			HTTPStatusCode: res.StatusCode,
140367		},
140368	}
140369	target := &ret
140370	if err := gensupport.DecodeResponse(target, res); err != nil {
140371		return nil, err
140372	}
140373	return ret, nil
140374	// {
140375	//   "description": "Deletes the specified SslCertificate resource in the region.",
140376	//   "httpMethod": "DELETE",
140377	//   "id": "compute.regionSslCertificates.delete",
140378	//   "parameterOrder": [
140379	//     "project",
140380	//     "region",
140381	//     "sslCertificate"
140382	//   ],
140383	//   "parameters": {
140384	//     "project": {
140385	//       "description": "Project ID for this request.",
140386	//       "location": "path",
140387	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
140388	//       "required": true,
140389	//       "type": "string"
140390	//     },
140391	//     "region": {
140392	//       "description": "Name of the region scoping this request.",
140393	//       "location": "path",
140394	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
140395	//       "required": true,
140396	//       "type": "string"
140397	//     },
140398	//     "requestId": {
140399	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
140400	//       "location": "query",
140401	//       "type": "string"
140402	//     },
140403	//     "sslCertificate": {
140404	//       "description": "Name of the SslCertificate resource to delete.",
140405	//       "location": "path",
140406	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
140407	//       "required": true,
140408	//       "type": "string"
140409	//     }
140410	//   },
140411	//   "path": "projects/{project}/regions/{region}/sslCertificates/{sslCertificate}",
140412	//   "response": {
140413	//     "$ref": "Operation"
140414	//   },
140415	//   "scopes": [
140416	//     "https://www.googleapis.com/auth/cloud-platform",
140417	//     "https://www.googleapis.com/auth/compute"
140418	//   ]
140419	// }
140420
140421}
140422
140423// method id "compute.regionSslCertificates.get":
140424
140425type RegionSslCertificatesGetCall struct {
140426	s              *Service
140427	project        string
140428	region         string
140429	sslCertificate string
140430	urlParams_     gensupport.URLParams
140431	ifNoneMatch_   string
140432	ctx_           context.Context
140433	header_        http.Header
140434}
140435
140436// Get: Returns the specified SslCertificate resource in the specified
140437// region. Get a list of available SSL certificates by making a list()
140438// request.
140439func (r *RegionSslCertificatesService) Get(project string, region string, sslCertificate string) *RegionSslCertificatesGetCall {
140440	c := &RegionSslCertificatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
140441	c.project = project
140442	c.region = region
140443	c.sslCertificate = sslCertificate
140444	return c
140445}
140446
140447// Fields allows partial responses to be retrieved. See
140448// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
140449// for more information.
140450func (c *RegionSslCertificatesGetCall) Fields(s ...googleapi.Field) *RegionSslCertificatesGetCall {
140451	c.urlParams_.Set("fields", googleapi.CombineFields(s))
140452	return c
140453}
140454
140455// IfNoneMatch sets the optional parameter which makes the operation
140456// fail if the object's ETag matches the given value. This is useful for
140457// getting updates only after the object has changed since the last
140458// request. Use googleapi.IsNotModified to check whether the response
140459// error from Do is the result of In-None-Match.
140460func (c *RegionSslCertificatesGetCall) IfNoneMatch(entityTag string) *RegionSslCertificatesGetCall {
140461	c.ifNoneMatch_ = entityTag
140462	return c
140463}
140464
140465// Context sets the context to be used in this call's Do method. Any
140466// pending HTTP request will be aborted if the provided context is
140467// canceled.
140468func (c *RegionSslCertificatesGetCall) Context(ctx context.Context) *RegionSslCertificatesGetCall {
140469	c.ctx_ = ctx
140470	return c
140471}
140472
140473// Header returns an http.Header that can be modified by the caller to
140474// add HTTP headers to the request.
140475func (c *RegionSslCertificatesGetCall) Header() http.Header {
140476	if c.header_ == nil {
140477		c.header_ = make(http.Header)
140478	}
140479	return c.header_
140480}
140481
140482func (c *RegionSslCertificatesGetCall) doRequest(alt string) (*http.Response, error) {
140483	reqHeaders := make(http.Header)
140484	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
140485	for k, v := range c.header_ {
140486		reqHeaders[k] = v
140487	}
140488	reqHeaders.Set("User-Agent", c.s.userAgent())
140489	if c.ifNoneMatch_ != "" {
140490		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
140491	}
140492	var body io.Reader = nil
140493	c.urlParams_.Set("alt", alt)
140494	c.urlParams_.Set("prettyPrint", "false")
140495	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/sslCertificates/{sslCertificate}")
140496	urls += "?" + c.urlParams_.Encode()
140497	req, err := http.NewRequest("GET", urls, body)
140498	if err != nil {
140499		return nil, err
140500	}
140501	req.Header = reqHeaders
140502	googleapi.Expand(req.URL, map[string]string{
140503		"project":        c.project,
140504		"region":         c.region,
140505		"sslCertificate": c.sslCertificate,
140506	})
140507	return gensupport.SendRequest(c.ctx_, c.s.client, req)
140508}
140509
140510// Do executes the "compute.regionSslCertificates.get" call.
140511// Exactly one of *SslCertificate or error will be non-nil. Any non-2xx
140512// status code is an error. Response headers are in either
140513// *SslCertificate.ServerResponse.Header or (if a response was returned
140514// at all) in error.(*googleapi.Error).Header. Use
140515// googleapi.IsNotModified to check whether the returned error was
140516// because http.StatusNotModified was returned.
140517func (c *RegionSslCertificatesGetCall) Do(opts ...googleapi.CallOption) (*SslCertificate, error) {
140518	gensupport.SetOptions(c.urlParams_, opts...)
140519	res, err := c.doRequest("json")
140520	if res != nil && res.StatusCode == http.StatusNotModified {
140521		if res.Body != nil {
140522			res.Body.Close()
140523		}
140524		return nil, &googleapi.Error{
140525			Code:   res.StatusCode,
140526			Header: res.Header,
140527		}
140528	}
140529	if err != nil {
140530		return nil, err
140531	}
140532	defer googleapi.CloseBody(res)
140533	if err := googleapi.CheckResponse(res); err != nil {
140534		return nil, err
140535	}
140536	ret := &SslCertificate{
140537		ServerResponse: googleapi.ServerResponse{
140538			Header:         res.Header,
140539			HTTPStatusCode: res.StatusCode,
140540		},
140541	}
140542	target := &ret
140543	if err := gensupport.DecodeResponse(target, res); err != nil {
140544		return nil, err
140545	}
140546	return ret, nil
140547	// {
140548	//   "description": "Returns the specified SslCertificate resource in the specified region. Get a list of available SSL certificates by making a list() request.",
140549	//   "httpMethod": "GET",
140550	//   "id": "compute.regionSslCertificates.get",
140551	//   "parameterOrder": [
140552	//     "project",
140553	//     "region",
140554	//     "sslCertificate"
140555	//   ],
140556	//   "parameters": {
140557	//     "project": {
140558	//       "description": "Project ID for this request.",
140559	//       "location": "path",
140560	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
140561	//       "required": true,
140562	//       "type": "string"
140563	//     },
140564	//     "region": {
140565	//       "description": "Name of the region scoping this request.",
140566	//       "location": "path",
140567	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
140568	//       "required": true,
140569	//       "type": "string"
140570	//     },
140571	//     "sslCertificate": {
140572	//       "description": "Name of the SslCertificate resource to return.",
140573	//       "location": "path",
140574	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
140575	//       "required": true,
140576	//       "type": "string"
140577	//     }
140578	//   },
140579	//   "path": "projects/{project}/regions/{region}/sslCertificates/{sslCertificate}",
140580	//   "response": {
140581	//     "$ref": "SslCertificate"
140582	//   },
140583	//   "scopes": [
140584	//     "https://www.googleapis.com/auth/cloud-platform",
140585	//     "https://www.googleapis.com/auth/compute",
140586	//     "https://www.googleapis.com/auth/compute.readonly"
140587	//   ]
140588	// }
140589
140590}
140591
140592// method id "compute.regionSslCertificates.insert":
140593
140594type RegionSslCertificatesInsertCall struct {
140595	s              *Service
140596	project        string
140597	region         string
140598	sslcertificate *SslCertificate
140599	urlParams_     gensupport.URLParams
140600	ctx_           context.Context
140601	header_        http.Header
140602}
140603
140604// Insert: Creates a SslCertificate resource in the specified project
140605// and region using the data included in the request
140606func (r *RegionSslCertificatesService) Insert(project string, region string, sslcertificate *SslCertificate) *RegionSslCertificatesInsertCall {
140607	c := &RegionSslCertificatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
140608	c.project = project
140609	c.region = region
140610	c.sslcertificate = sslcertificate
140611	return c
140612}
140613
140614// RequestId sets the optional parameter "requestId": An optional
140615// request ID to identify requests. Specify a unique request ID so that
140616// if you must retry your request, the server will know to ignore the
140617// request if it has already been completed.
140618//
140619// For example, consider a situation where you make an initial request
140620// and the request times out. If you make the request again with the
140621// same request ID, the server can check if original operation with the
140622// same request ID was received, and if so, will ignore the second
140623// request. This prevents clients from accidentally creating duplicate
140624// commitments.
140625//
140626// The request ID must be a valid UUID with the exception that zero UUID
140627// is not supported (00000000-0000-0000-0000-000000000000).
140628func (c *RegionSslCertificatesInsertCall) RequestId(requestId string) *RegionSslCertificatesInsertCall {
140629	c.urlParams_.Set("requestId", requestId)
140630	return c
140631}
140632
140633// Fields allows partial responses to be retrieved. See
140634// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
140635// for more information.
140636func (c *RegionSslCertificatesInsertCall) Fields(s ...googleapi.Field) *RegionSslCertificatesInsertCall {
140637	c.urlParams_.Set("fields", googleapi.CombineFields(s))
140638	return c
140639}
140640
140641// Context sets the context to be used in this call's Do method. Any
140642// pending HTTP request will be aborted if the provided context is
140643// canceled.
140644func (c *RegionSslCertificatesInsertCall) Context(ctx context.Context) *RegionSslCertificatesInsertCall {
140645	c.ctx_ = ctx
140646	return c
140647}
140648
140649// Header returns an http.Header that can be modified by the caller to
140650// add HTTP headers to the request.
140651func (c *RegionSslCertificatesInsertCall) Header() http.Header {
140652	if c.header_ == nil {
140653		c.header_ = make(http.Header)
140654	}
140655	return c.header_
140656}
140657
140658func (c *RegionSslCertificatesInsertCall) doRequest(alt string) (*http.Response, error) {
140659	reqHeaders := make(http.Header)
140660	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
140661	for k, v := range c.header_ {
140662		reqHeaders[k] = v
140663	}
140664	reqHeaders.Set("User-Agent", c.s.userAgent())
140665	var body io.Reader = nil
140666	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslcertificate)
140667	if err != nil {
140668		return nil, err
140669	}
140670	reqHeaders.Set("Content-Type", "application/json")
140671	c.urlParams_.Set("alt", alt)
140672	c.urlParams_.Set("prettyPrint", "false")
140673	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/sslCertificates")
140674	urls += "?" + c.urlParams_.Encode()
140675	req, err := http.NewRequest("POST", urls, body)
140676	if err != nil {
140677		return nil, err
140678	}
140679	req.Header = reqHeaders
140680	googleapi.Expand(req.URL, map[string]string{
140681		"project": c.project,
140682		"region":  c.region,
140683	})
140684	return gensupport.SendRequest(c.ctx_, c.s.client, req)
140685}
140686
140687// Do executes the "compute.regionSslCertificates.insert" call.
140688// Exactly one of *Operation or error will be non-nil. Any non-2xx
140689// status code is an error. Response headers are in either
140690// *Operation.ServerResponse.Header or (if a response was returned at
140691// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
140692// to check whether the returned error was because
140693// http.StatusNotModified was returned.
140694func (c *RegionSslCertificatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
140695	gensupport.SetOptions(c.urlParams_, opts...)
140696	res, err := c.doRequest("json")
140697	if res != nil && res.StatusCode == http.StatusNotModified {
140698		if res.Body != nil {
140699			res.Body.Close()
140700		}
140701		return nil, &googleapi.Error{
140702			Code:   res.StatusCode,
140703			Header: res.Header,
140704		}
140705	}
140706	if err != nil {
140707		return nil, err
140708	}
140709	defer googleapi.CloseBody(res)
140710	if err := googleapi.CheckResponse(res); err != nil {
140711		return nil, err
140712	}
140713	ret := &Operation{
140714		ServerResponse: googleapi.ServerResponse{
140715			Header:         res.Header,
140716			HTTPStatusCode: res.StatusCode,
140717		},
140718	}
140719	target := &ret
140720	if err := gensupport.DecodeResponse(target, res); err != nil {
140721		return nil, err
140722	}
140723	return ret, nil
140724	// {
140725	//   "description": "Creates a SslCertificate resource in the specified project and region using the data included in the request",
140726	//   "httpMethod": "POST",
140727	//   "id": "compute.regionSslCertificates.insert",
140728	//   "parameterOrder": [
140729	//     "project",
140730	//     "region"
140731	//   ],
140732	//   "parameters": {
140733	//     "project": {
140734	//       "description": "Project ID for this request.",
140735	//       "location": "path",
140736	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
140737	//       "required": true,
140738	//       "type": "string"
140739	//     },
140740	//     "region": {
140741	//       "description": "Name of the region scoping this request.",
140742	//       "location": "path",
140743	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
140744	//       "required": true,
140745	//       "type": "string"
140746	//     },
140747	//     "requestId": {
140748	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
140749	//       "location": "query",
140750	//       "type": "string"
140751	//     }
140752	//   },
140753	//   "path": "projects/{project}/regions/{region}/sslCertificates",
140754	//   "request": {
140755	//     "$ref": "SslCertificate"
140756	//   },
140757	//   "response": {
140758	//     "$ref": "Operation"
140759	//   },
140760	//   "scopes": [
140761	//     "https://www.googleapis.com/auth/cloud-platform",
140762	//     "https://www.googleapis.com/auth/compute"
140763	//   ]
140764	// }
140765
140766}
140767
140768// method id "compute.regionSslCertificates.list":
140769
140770type RegionSslCertificatesListCall struct {
140771	s            *Service
140772	project      string
140773	region       string
140774	urlParams_   gensupport.URLParams
140775	ifNoneMatch_ string
140776	ctx_         context.Context
140777	header_      http.Header
140778}
140779
140780// List: Retrieves the list of SslCertificate resources available to the
140781// specified project in the specified region.
140782func (r *RegionSslCertificatesService) List(project string, region string) *RegionSslCertificatesListCall {
140783	c := &RegionSslCertificatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
140784	c.project = project
140785	c.region = region
140786	return c
140787}
140788
140789// Filter sets the optional parameter "filter": A filter expression that
140790// filters resources listed in the response. The expression must specify
140791// the field name, a comparison operator, and the value that you want to
140792// use for filtering. The value must be a string, a number, or a
140793// boolean. The comparison operator must be either `=`, `!=`, `>`, or
140794// `<`.
140795//
140796// For example, if you are filtering Compute Engine instances, you can
140797// exclude instances named `example-instance` by specifying `name !=
140798// example-instance`.
140799//
140800// You can also filter nested fields. For example, you could specify
140801// `scheduling.automaticRestart = false` to include instances only if
140802// they are not scheduled for automatic restarts. You can use filtering
140803// on nested fields to filter based on resource labels.
140804//
140805// To filter on multiple expressions, provide each separate expression
140806// within parentheses. For example: ``` (scheduling.automaticRestart =
140807// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
140808// is an `AND` expression. However, you can include `AND` and `OR`
140809// expressions explicitly. For example: ``` (cpuPlatform = "Intel
140810// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
140811// (scheduling.automaticRestart = true) ```
140812func (c *RegionSslCertificatesListCall) Filter(filter string) *RegionSslCertificatesListCall {
140813	c.urlParams_.Set("filter", filter)
140814	return c
140815}
140816
140817// MaxResults sets the optional parameter "maxResults": The maximum
140818// number of results per page that should be returned. If the number of
140819// available results is larger than `maxResults`, Compute Engine returns
140820// a `nextPageToken` that can be used to get the next page of results in
140821// subsequent list requests. Acceptable values are `0` to `500`,
140822// inclusive. (Default: `500`)
140823func (c *RegionSslCertificatesListCall) MaxResults(maxResults int64) *RegionSslCertificatesListCall {
140824	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
140825	return c
140826}
140827
140828// OrderBy sets the optional parameter "orderBy": Sorts list results by
140829// a certain order. By default, results are returned in alphanumerical
140830// order based on the resource name.
140831//
140832// You can also sort results in descending order based on the creation
140833// timestamp using `orderBy="creationTimestamp desc". This sorts
140834// results based on the `creationTimestamp` field in reverse
140835// chronological order (newest result first). Use this to sort resources
140836// like operations so that the newest operation is returned
140837// first.
140838//
140839// Currently, only sorting by `name` or `creationTimestamp desc` is
140840// supported.
140841func (c *RegionSslCertificatesListCall) OrderBy(orderBy string) *RegionSslCertificatesListCall {
140842	c.urlParams_.Set("orderBy", orderBy)
140843	return c
140844}
140845
140846// PageToken sets the optional parameter "pageToken": Specifies a page
140847// token to use. Set `pageToken` to the `nextPageToken` returned by a
140848// previous list request to get the next page of results.
140849func (c *RegionSslCertificatesListCall) PageToken(pageToken string) *RegionSslCertificatesListCall {
140850	c.urlParams_.Set("pageToken", pageToken)
140851	return c
140852}
140853
140854// ReturnPartialSuccess sets the optional parameter
140855// "returnPartialSuccess": Opt-in for partial success behavior which
140856// provides partial results in case of failure. The default value is
140857// false.
140858func (c *RegionSslCertificatesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionSslCertificatesListCall {
140859	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
140860	return c
140861}
140862
140863// Fields allows partial responses to be retrieved. See
140864// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
140865// for more information.
140866func (c *RegionSslCertificatesListCall) Fields(s ...googleapi.Field) *RegionSslCertificatesListCall {
140867	c.urlParams_.Set("fields", googleapi.CombineFields(s))
140868	return c
140869}
140870
140871// IfNoneMatch sets the optional parameter which makes the operation
140872// fail if the object's ETag matches the given value. This is useful for
140873// getting updates only after the object has changed since the last
140874// request. Use googleapi.IsNotModified to check whether the response
140875// error from Do is the result of In-None-Match.
140876func (c *RegionSslCertificatesListCall) IfNoneMatch(entityTag string) *RegionSslCertificatesListCall {
140877	c.ifNoneMatch_ = entityTag
140878	return c
140879}
140880
140881// Context sets the context to be used in this call's Do method. Any
140882// pending HTTP request will be aborted if the provided context is
140883// canceled.
140884func (c *RegionSslCertificatesListCall) Context(ctx context.Context) *RegionSslCertificatesListCall {
140885	c.ctx_ = ctx
140886	return c
140887}
140888
140889// Header returns an http.Header that can be modified by the caller to
140890// add HTTP headers to the request.
140891func (c *RegionSslCertificatesListCall) Header() http.Header {
140892	if c.header_ == nil {
140893		c.header_ = make(http.Header)
140894	}
140895	return c.header_
140896}
140897
140898func (c *RegionSslCertificatesListCall) doRequest(alt string) (*http.Response, error) {
140899	reqHeaders := make(http.Header)
140900	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
140901	for k, v := range c.header_ {
140902		reqHeaders[k] = v
140903	}
140904	reqHeaders.Set("User-Agent", c.s.userAgent())
140905	if c.ifNoneMatch_ != "" {
140906		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
140907	}
140908	var body io.Reader = nil
140909	c.urlParams_.Set("alt", alt)
140910	c.urlParams_.Set("prettyPrint", "false")
140911	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/sslCertificates")
140912	urls += "?" + c.urlParams_.Encode()
140913	req, err := http.NewRequest("GET", urls, body)
140914	if err != nil {
140915		return nil, err
140916	}
140917	req.Header = reqHeaders
140918	googleapi.Expand(req.URL, map[string]string{
140919		"project": c.project,
140920		"region":  c.region,
140921	})
140922	return gensupport.SendRequest(c.ctx_, c.s.client, req)
140923}
140924
140925// Do executes the "compute.regionSslCertificates.list" call.
140926// Exactly one of *SslCertificateList or error will be non-nil. Any
140927// non-2xx status code is an error. Response headers are in either
140928// *SslCertificateList.ServerResponse.Header or (if a response was
140929// returned at all) in error.(*googleapi.Error).Header. Use
140930// googleapi.IsNotModified to check whether the returned error was
140931// because http.StatusNotModified was returned.
140932func (c *RegionSslCertificatesListCall) Do(opts ...googleapi.CallOption) (*SslCertificateList, error) {
140933	gensupport.SetOptions(c.urlParams_, opts...)
140934	res, err := c.doRequest("json")
140935	if res != nil && res.StatusCode == http.StatusNotModified {
140936		if res.Body != nil {
140937			res.Body.Close()
140938		}
140939		return nil, &googleapi.Error{
140940			Code:   res.StatusCode,
140941			Header: res.Header,
140942		}
140943	}
140944	if err != nil {
140945		return nil, err
140946	}
140947	defer googleapi.CloseBody(res)
140948	if err := googleapi.CheckResponse(res); err != nil {
140949		return nil, err
140950	}
140951	ret := &SslCertificateList{
140952		ServerResponse: googleapi.ServerResponse{
140953			Header:         res.Header,
140954			HTTPStatusCode: res.StatusCode,
140955		},
140956	}
140957	target := &ret
140958	if err := gensupport.DecodeResponse(target, res); err != nil {
140959		return nil, err
140960	}
140961	return ret, nil
140962	// {
140963	//   "description": "Retrieves the list of SslCertificate resources available to the specified project in the specified region.",
140964	//   "httpMethod": "GET",
140965	//   "id": "compute.regionSslCertificates.list",
140966	//   "parameterOrder": [
140967	//     "project",
140968	//     "region"
140969	//   ],
140970	//   "parameters": {
140971	//     "filter": {
140972	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
140973	//       "location": "query",
140974	//       "type": "string"
140975	//     },
140976	//     "maxResults": {
140977	//       "default": "500",
140978	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
140979	//       "format": "uint32",
140980	//       "location": "query",
140981	//       "minimum": "0",
140982	//       "type": "integer"
140983	//     },
140984	//     "orderBy": {
140985	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
140986	//       "location": "query",
140987	//       "type": "string"
140988	//     },
140989	//     "pageToken": {
140990	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
140991	//       "location": "query",
140992	//       "type": "string"
140993	//     },
140994	//     "project": {
140995	//       "description": "Project ID for this request.",
140996	//       "location": "path",
140997	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
140998	//       "required": true,
140999	//       "type": "string"
141000	//     },
141001	//     "region": {
141002	//       "description": "Name of the region scoping this request.",
141003	//       "location": "path",
141004	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
141005	//       "required": true,
141006	//       "type": "string"
141007	//     },
141008	//     "returnPartialSuccess": {
141009	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
141010	//       "location": "query",
141011	//       "type": "boolean"
141012	//     }
141013	//   },
141014	//   "path": "projects/{project}/regions/{region}/sslCertificates",
141015	//   "response": {
141016	//     "$ref": "SslCertificateList"
141017	//   },
141018	//   "scopes": [
141019	//     "https://www.googleapis.com/auth/cloud-platform",
141020	//     "https://www.googleapis.com/auth/compute",
141021	//     "https://www.googleapis.com/auth/compute.readonly"
141022	//   ]
141023	// }
141024
141025}
141026
141027// Pages invokes f for each page of results.
141028// A non-nil error returned from f will halt the iteration.
141029// The provided context supersedes any context provided to the Context method.
141030func (c *RegionSslCertificatesListCall) Pages(ctx context.Context, f func(*SslCertificateList) error) error {
141031	c.ctx_ = ctx
141032	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
141033	for {
141034		x, err := c.Do()
141035		if err != nil {
141036			return err
141037		}
141038		if err := f(x); err != nil {
141039			return err
141040		}
141041		if x.NextPageToken == "" {
141042			return nil
141043		}
141044		c.PageToken(x.NextPageToken)
141045	}
141046}
141047
141048// method id "compute.regionSslCertificates.testIamPermissions":
141049
141050type RegionSslCertificatesTestIamPermissionsCall struct {
141051	s                      *Service
141052	project                string
141053	region                 string
141054	resource               string
141055	testpermissionsrequest *TestPermissionsRequest
141056	urlParams_             gensupport.URLParams
141057	ctx_                   context.Context
141058	header_                http.Header
141059}
141060
141061// TestIamPermissions: Returns permissions that a caller has on the
141062// specified resource and region.
141063func (r *RegionSslCertificatesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionSslCertificatesTestIamPermissionsCall {
141064	c := &RegionSslCertificatesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141065	c.project = project
141066	c.region = region
141067	c.resource = resource
141068	c.testpermissionsrequest = testpermissionsrequest
141069	return c
141070}
141071
141072// Fields allows partial responses to be retrieved. See
141073// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
141074// for more information.
141075func (c *RegionSslCertificatesTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionSslCertificatesTestIamPermissionsCall {
141076	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141077	return c
141078}
141079
141080// Context sets the context to be used in this call's Do method. Any
141081// pending HTTP request will be aborted if the provided context is
141082// canceled.
141083func (c *RegionSslCertificatesTestIamPermissionsCall) Context(ctx context.Context) *RegionSslCertificatesTestIamPermissionsCall {
141084	c.ctx_ = ctx
141085	return c
141086}
141087
141088// Header returns an http.Header that can be modified by the caller to
141089// add HTTP headers to the request.
141090func (c *RegionSslCertificatesTestIamPermissionsCall) Header() http.Header {
141091	if c.header_ == nil {
141092		c.header_ = make(http.Header)
141093	}
141094	return c.header_
141095}
141096
141097func (c *RegionSslCertificatesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
141098	reqHeaders := make(http.Header)
141099	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
141100	for k, v := range c.header_ {
141101		reqHeaders[k] = v
141102	}
141103	reqHeaders.Set("User-Agent", c.s.userAgent())
141104	var body io.Reader = nil
141105	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
141106	if err != nil {
141107		return nil, err
141108	}
141109	reqHeaders.Set("Content-Type", "application/json")
141110	c.urlParams_.Set("alt", alt)
141111	c.urlParams_.Set("prettyPrint", "false")
141112	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/sslCertificates/{resource}/testIamPermissions")
141113	urls += "?" + c.urlParams_.Encode()
141114	req, err := http.NewRequest("POST", urls, body)
141115	if err != nil {
141116		return nil, err
141117	}
141118	req.Header = reqHeaders
141119	googleapi.Expand(req.URL, map[string]string{
141120		"project":  c.project,
141121		"region":   c.region,
141122		"resource": c.resource,
141123	})
141124	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141125}
141126
141127// Do executes the "compute.regionSslCertificates.testIamPermissions" call.
141128// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
141129// non-2xx status code is an error. Response headers are in either
141130// *TestPermissionsResponse.ServerResponse.Header or (if a response was
141131// returned at all) in error.(*googleapi.Error).Header. Use
141132// googleapi.IsNotModified to check whether the returned error was
141133// because http.StatusNotModified was returned.
141134func (c *RegionSslCertificatesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
141135	gensupport.SetOptions(c.urlParams_, opts...)
141136	res, err := c.doRequest("json")
141137	if res != nil && res.StatusCode == http.StatusNotModified {
141138		if res.Body != nil {
141139			res.Body.Close()
141140		}
141141		return nil, &googleapi.Error{
141142			Code:   res.StatusCode,
141143			Header: res.Header,
141144		}
141145	}
141146	if err != nil {
141147		return nil, err
141148	}
141149	defer googleapi.CloseBody(res)
141150	if err := googleapi.CheckResponse(res); err != nil {
141151		return nil, err
141152	}
141153	ret := &TestPermissionsResponse{
141154		ServerResponse: googleapi.ServerResponse{
141155			Header:         res.Header,
141156			HTTPStatusCode: res.StatusCode,
141157		},
141158	}
141159	target := &ret
141160	if err := gensupport.DecodeResponse(target, res); err != nil {
141161		return nil, err
141162	}
141163	return ret, nil
141164	// {
141165	//   "description": "Returns permissions that a caller has on the specified resource and region.",
141166	//   "httpMethod": "POST",
141167	//   "id": "compute.regionSslCertificates.testIamPermissions",
141168	//   "parameterOrder": [
141169	//     "project",
141170	//     "region",
141171	//     "resource"
141172	//   ],
141173	//   "parameters": {
141174	//     "project": {
141175	//       "description": "Project ID for this request.",
141176	//       "location": "path",
141177	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141178	//       "required": true,
141179	//       "type": "string"
141180	//     },
141181	//     "region": {
141182	//       "description": "The name of the region for this request.",
141183	//       "location": "path",
141184	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
141185	//       "required": true,
141186	//       "type": "string"
141187	//     },
141188	//     "resource": {
141189	//       "description": "Name or id of the resource for this request.",
141190	//       "location": "path",
141191	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
141192	//       "required": true,
141193	//       "type": "string"
141194	//     }
141195	//   },
141196	//   "path": "projects/{project}/regions/{region}/sslCertificates/{resource}/testIamPermissions",
141197	//   "request": {
141198	//     "$ref": "TestPermissionsRequest"
141199	//   },
141200	//   "response": {
141201	//     "$ref": "TestPermissionsResponse"
141202	//   },
141203	//   "scopes": [
141204	//     "https://www.googleapis.com/auth/cloud-platform",
141205	//     "https://www.googleapis.com/auth/compute",
141206	//     "https://www.googleapis.com/auth/compute.readonly"
141207	//   ]
141208	// }
141209
141210}
141211
141212// method id "compute.regionTargetHttpProxies.delete":
141213
141214type RegionTargetHttpProxiesDeleteCall struct {
141215	s               *Service
141216	project         string
141217	region          string
141218	targetHttpProxy string
141219	urlParams_      gensupport.URLParams
141220	ctx_            context.Context
141221	header_         http.Header
141222}
141223
141224// Delete: Deletes the specified TargetHttpProxy resource.
141225func (r *RegionTargetHttpProxiesService) Delete(project string, region string, targetHttpProxy string) *RegionTargetHttpProxiesDeleteCall {
141226	c := &RegionTargetHttpProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141227	c.project = project
141228	c.region = region
141229	c.targetHttpProxy = targetHttpProxy
141230	return c
141231}
141232
141233// RequestId sets the optional parameter "requestId": An optional
141234// request ID to identify requests. Specify a unique request ID so that
141235// if you must retry your request, the server will know to ignore the
141236// request if it has already been completed.
141237//
141238// For example, consider a situation where you make an initial request
141239// and the request times out. If you make the request again with the
141240// same request ID, the server can check if original operation with the
141241// same request ID was received, and if so, will ignore the second
141242// request. This prevents clients from accidentally creating duplicate
141243// commitments.
141244//
141245// The request ID must be a valid UUID with the exception that zero UUID
141246// is not supported (00000000-0000-0000-0000-000000000000).
141247func (c *RegionTargetHttpProxiesDeleteCall) RequestId(requestId string) *RegionTargetHttpProxiesDeleteCall {
141248	c.urlParams_.Set("requestId", requestId)
141249	return c
141250}
141251
141252// Fields allows partial responses to be retrieved. See
141253// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
141254// for more information.
141255func (c *RegionTargetHttpProxiesDeleteCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesDeleteCall {
141256	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141257	return c
141258}
141259
141260// Context sets the context to be used in this call's Do method. Any
141261// pending HTTP request will be aborted if the provided context is
141262// canceled.
141263func (c *RegionTargetHttpProxiesDeleteCall) Context(ctx context.Context) *RegionTargetHttpProxiesDeleteCall {
141264	c.ctx_ = ctx
141265	return c
141266}
141267
141268// Header returns an http.Header that can be modified by the caller to
141269// add HTTP headers to the request.
141270func (c *RegionTargetHttpProxiesDeleteCall) Header() http.Header {
141271	if c.header_ == nil {
141272		c.header_ = make(http.Header)
141273	}
141274	return c.header_
141275}
141276
141277func (c *RegionTargetHttpProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
141278	reqHeaders := make(http.Header)
141279	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
141280	for k, v := range c.header_ {
141281		reqHeaders[k] = v
141282	}
141283	reqHeaders.Set("User-Agent", c.s.userAgent())
141284	var body io.Reader = nil
141285	c.urlParams_.Set("alt", alt)
141286	c.urlParams_.Set("prettyPrint", "false")
141287	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}")
141288	urls += "?" + c.urlParams_.Encode()
141289	req, err := http.NewRequest("DELETE", urls, body)
141290	if err != nil {
141291		return nil, err
141292	}
141293	req.Header = reqHeaders
141294	googleapi.Expand(req.URL, map[string]string{
141295		"project":         c.project,
141296		"region":          c.region,
141297		"targetHttpProxy": c.targetHttpProxy,
141298	})
141299	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141300}
141301
141302// Do executes the "compute.regionTargetHttpProxies.delete" call.
141303// Exactly one of *Operation or error will be non-nil. Any non-2xx
141304// status code is an error. Response headers are in either
141305// *Operation.ServerResponse.Header or (if a response was returned at
141306// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
141307// to check whether the returned error was because
141308// http.StatusNotModified was returned.
141309func (c *RegionTargetHttpProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
141310	gensupport.SetOptions(c.urlParams_, opts...)
141311	res, err := c.doRequest("json")
141312	if res != nil && res.StatusCode == http.StatusNotModified {
141313		if res.Body != nil {
141314			res.Body.Close()
141315		}
141316		return nil, &googleapi.Error{
141317			Code:   res.StatusCode,
141318			Header: res.Header,
141319		}
141320	}
141321	if err != nil {
141322		return nil, err
141323	}
141324	defer googleapi.CloseBody(res)
141325	if err := googleapi.CheckResponse(res); err != nil {
141326		return nil, err
141327	}
141328	ret := &Operation{
141329		ServerResponse: googleapi.ServerResponse{
141330			Header:         res.Header,
141331			HTTPStatusCode: res.StatusCode,
141332		},
141333	}
141334	target := &ret
141335	if err := gensupport.DecodeResponse(target, res); err != nil {
141336		return nil, err
141337	}
141338	return ret, nil
141339	// {
141340	//   "description": "Deletes the specified TargetHttpProxy resource.",
141341	//   "httpMethod": "DELETE",
141342	//   "id": "compute.regionTargetHttpProxies.delete",
141343	//   "parameterOrder": [
141344	//     "project",
141345	//     "region",
141346	//     "targetHttpProxy"
141347	//   ],
141348	//   "parameters": {
141349	//     "project": {
141350	//       "description": "Project ID for this request.",
141351	//       "location": "path",
141352	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141353	//       "required": true,
141354	//       "type": "string"
141355	//     },
141356	//     "region": {
141357	//       "description": "Name of the region scoping this request.",
141358	//       "location": "path",
141359	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
141360	//       "required": true,
141361	//       "type": "string"
141362	//     },
141363	//     "requestId": {
141364	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
141365	//       "location": "query",
141366	//       "type": "string"
141367	//     },
141368	//     "targetHttpProxy": {
141369	//       "description": "Name of the TargetHttpProxy resource to delete.",
141370	//       "location": "path",
141371	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
141372	//       "required": true,
141373	//       "type": "string"
141374	//     }
141375	//   },
141376	//   "path": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}",
141377	//   "response": {
141378	//     "$ref": "Operation"
141379	//   },
141380	//   "scopes": [
141381	//     "https://www.googleapis.com/auth/cloud-platform",
141382	//     "https://www.googleapis.com/auth/compute"
141383	//   ]
141384	// }
141385
141386}
141387
141388// method id "compute.regionTargetHttpProxies.get":
141389
141390type RegionTargetHttpProxiesGetCall struct {
141391	s               *Service
141392	project         string
141393	region          string
141394	targetHttpProxy string
141395	urlParams_      gensupport.URLParams
141396	ifNoneMatch_    string
141397	ctx_            context.Context
141398	header_         http.Header
141399}
141400
141401// Get: Returns the specified TargetHttpProxy resource in the specified
141402// region. Gets a list of available target HTTP proxies by making a
141403// list() request.
141404func (r *RegionTargetHttpProxiesService) Get(project string, region string, targetHttpProxy string) *RegionTargetHttpProxiesGetCall {
141405	c := &RegionTargetHttpProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141406	c.project = project
141407	c.region = region
141408	c.targetHttpProxy = targetHttpProxy
141409	return c
141410}
141411
141412// Fields allows partial responses to be retrieved. See
141413// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
141414// for more information.
141415func (c *RegionTargetHttpProxiesGetCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesGetCall {
141416	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141417	return c
141418}
141419
141420// IfNoneMatch sets the optional parameter which makes the operation
141421// fail if the object's ETag matches the given value. This is useful for
141422// getting updates only after the object has changed since the last
141423// request. Use googleapi.IsNotModified to check whether the response
141424// error from Do is the result of In-None-Match.
141425func (c *RegionTargetHttpProxiesGetCall) IfNoneMatch(entityTag string) *RegionTargetHttpProxiesGetCall {
141426	c.ifNoneMatch_ = entityTag
141427	return c
141428}
141429
141430// Context sets the context to be used in this call's Do method. Any
141431// pending HTTP request will be aborted if the provided context is
141432// canceled.
141433func (c *RegionTargetHttpProxiesGetCall) Context(ctx context.Context) *RegionTargetHttpProxiesGetCall {
141434	c.ctx_ = ctx
141435	return c
141436}
141437
141438// Header returns an http.Header that can be modified by the caller to
141439// add HTTP headers to the request.
141440func (c *RegionTargetHttpProxiesGetCall) Header() http.Header {
141441	if c.header_ == nil {
141442		c.header_ = make(http.Header)
141443	}
141444	return c.header_
141445}
141446
141447func (c *RegionTargetHttpProxiesGetCall) doRequest(alt string) (*http.Response, error) {
141448	reqHeaders := make(http.Header)
141449	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
141450	for k, v := range c.header_ {
141451		reqHeaders[k] = v
141452	}
141453	reqHeaders.Set("User-Agent", c.s.userAgent())
141454	if c.ifNoneMatch_ != "" {
141455		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
141456	}
141457	var body io.Reader = nil
141458	c.urlParams_.Set("alt", alt)
141459	c.urlParams_.Set("prettyPrint", "false")
141460	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}")
141461	urls += "?" + c.urlParams_.Encode()
141462	req, err := http.NewRequest("GET", urls, body)
141463	if err != nil {
141464		return nil, err
141465	}
141466	req.Header = reqHeaders
141467	googleapi.Expand(req.URL, map[string]string{
141468		"project":         c.project,
141469		"region":          c.region,
141470		"targetHttpProxy": c.targetHttpProxy,
141471	})
141472	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141473}
141474
141475// Do executes the "compute.regionTargetHttpProxies.get" call.
141476// Exactly one of *TargetHttpProxy or error will be non-nil. Any non-2xx
141477// status code is an error. Response headers are in either
141478// *TargetHttpProxy.ServerResponse.Header or (if a response was returned
141479// at all) in error.(*googleapi.Error).Header. Use
141480// googleapi.IsNotModified to check whether the returned error was
141481// because http.StatusNotModified was returned.
141482func (c *RegionTargetHttpProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxy, error) {
141483	gensupport.SetOptions(c.urlParams_, opts...)
141484	res, err := c.doRequest("json")
141485	if res != nil && res.StatusCode == http.StatusNotModified {
141486		if res.Body != nil {
141487			res.Body.Close()
141488		}
141489		return nil, &googleapi.Error{
141490			Code:   res.StatusCode,
141491			Header: res.Header,
141492		}
141493	}
141494	if err != nil {
141495		return nil, err
141496	}
141497	defer googleapi.CloseBody(res)
141498	if err := googleapi.CheckResponse(res); err != nil {
141499		return nil, err
141500	}
141501	ret := &TargetHttpProxy{
141502		ServerResponse: googleapi.ServerResponse{
141503			Header:         res.Header,
141504			HTTPStatusCode: res.StatusCode,
141505		},
141506	}
141507	target := &ret
141508	if err := gensupport.DecodeResponse(target, res); err != nil {
141509		return nil, err
141510	}
141511	return ret, nil
141512	// {
141513	//   "description": "Returns the specified TargetHttpProxy resource in the specified region. Gets a list of available target HTTP proxies by making a list() request.",
141514	//   "httpMethod": "GET",
141515	//   "id": "compute.regionTargetHttpProxies.get",
141516	//   "parameterOrder": [
141517	//     "project",
141518	//     "region",
141519	//     "targetHttpProxy"
141520	//   ],
141521	//   "parameters": {
141522	//     "project": {
141523	//       "description": "Project ID for this request.",
141524	//       "location": "path",
141525	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141526	//       "required": true,
141527	//       "type": "string"
141528	//     },
141529	//     "region": {
141530	//       "description": "Name of the region scoping this request.",
141531	//       "location": "path",
141532	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
141533	//       "required": true,
141534	//       "type": "string"
141535	//     },
141536	//     "targetHttpProxy": {
141537	//       "description": "Name of the TargetHttpProxy resource to return.",
141538	//       "location": "path",
141539	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
141540	//       "required": true,
141541	//       "type": "string"
141542	//     }
141543	//   },
141544	//   "path": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}",
141545	//   "response": {
141546	//     "$ref": "TargetHttpProxy"
141547	//   },
141548	//   "scopes": [
141549	//     "https://www.googleapis.com/auth/cloud-platform",
141550	//     "https://www.googleapis.com/auth/compute",
141551	//     "https://www.googleapis.com/auth/compute.readonly"
141552	//   ]
141553	// }
141554
141555}
141556
141557// method id "compute.regionTargetHttpProxies.insert":
141558
141559type RegionTargetHttpProxiesInsertCall struct {
141560	s               *Service
141561	project         string
141562	region          string
141563	targethttpproxy *TargetHttpProxy
141564	urlParams_      gensupport.URLParams
141565	ctx_            context.Context
141566	header_         http.Header
141567}
141568
141569// Insert: Creates a TargetHttpProxy resource in the specified project
141570// and region using the data included in the request.
141571func (r *RegionTargetHttpProxiesService) Insert(project string, region string, targethttpproxy *TargetHttpProxy) *RegionTargetHttpProxiesInsertCall {
141572	c := &RegionTargetHttpProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141573	c.project = project
141574	c.region = region
141575	c.targethttpproxy = targethttpproxy
141576	return c
141577}
141578
141579// RequestId sets the optional parameter "requestId": An optional
141580// request ID to identify requests. Specify a unique request ID so that
141581// if you must retry your request, the server will know to ignore the
141582// request if it has already been completed.
141583//
141584// For example, consider a situation where you make an initial request
141585// and the request times out. If you make the request again with the
141586// same request ID, the server can check if original operation with the
141587// same request ID was received, and if so, will ignore the second
141588// request. This prevents clients from accidentally creating duplicate
141589// commitments.
141590//
141591// The request ID must be a valid UUID with the exception that zero UUID
141592// is not supported (00000000-0000-0000-0000-000000000000).
141593func (c *RegionTargetHttpProxiesInsertCall) RequestId(requestId string) *RegionTargetHttpProxiesInsertCall {
141594	c.urlParams_.Set("requestId", requestId)
141595	return c
141596}
141597
141598// Fields allows partial responses to be retrieved. See
141599// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
141600// for more information.
141601func (c *RegionTargetHttpProxiesInsertCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesInsertCall {
141602	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141603	return c
141604}
141605
141606// Context sets the context to be used in this call's Do method. Any
141607// pending HTTP request will be aborted if the provided context is
141608// canceled.
141609func (c *RegionTargetHttpProxiesInsertCall) Context(ctx context.Context) *RegionTargetHttpProxiesInsertCall {
141610	c.ctx_ = ctx
141611	return c
141612}
141613
141614// Header returns an http.Header that can be modified by the caller to
141615// add HTTP headers to the request.
141616func (c *RegionTargetHttpProxiesInsertCall) Header() http.Header {
141617	if c.header_ == nil {
141618		c.header_ = make(http.Header)
141619	}
141620	return c.header_
141621}
141622
141623func (c *RegionTargetHttpProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
141624	reqHeaders := make(http.Header)
141625	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
141626	for k, v := range c.header_ {
141627		reqHeaders[k] = v
141628	}
141629	reqHeaders.Set("User-Agent", c.s.userAgent())
141630	var body io.Reader = nil
141631	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpproxy)
141632	if err != nil {
141633		return nil, err
141634	}
141635	reqHeaders.Set("Content-Type", "application/json")
141636	c.urlParams_.Set("alt", alt)
141637	c.urlParams_.Set("prettyPrint", "false")
141638	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpProxies")
141639	urls += "?" + c.urlParams_.Encode()
141640	req, err := http.NewRequest("POST", urls, body)
141641	if err != nil {
141642		return nil, err
141643	}
141644	req.Header = reqHeaders
141645	googleapi.Expand(req.URL, map[string]string{
141646		"project": c.project,
141647		"region":  c.region,
141648	})
141649	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141650}
141651
141652// Do executes the "compute.regionTargetHttpProxies.insert" call.
141653// Exactly one of *Operation or error will be non-nil. Any non-2xx
141654// status code is an error. Response headers are in either
141655// *Operation.ServerResponse.Header or (if a response was returned at
141656// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
141657// to check whether the returned error was because
141658// http.StatusNotModified was returned.
141659func (c *RegionTargetHttpProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
141660	gensupport.SetOptions(c.urlParams_, opts...)
141661	res, err := c.doRequest("json")
141662	if res != nil && res.StatusCode == http.StatusNotModified {
141663		if res.Body != nil {
141664			res.Body.Close()
141665		}
141666		return nil, &googleapi.Error{
141667			Code:   res.StatusCode,
141668			Header: res.Header,
141669		}
141670	}
141671	if err != nil {
141672		return nil, err
141673	}
141674	defer googleapi.CloseBody(res)
141675	if err := googleapi.CheckResponse(res); err != nil {
141676		return nil, err
141677	}
141678	ret := &Operation{
141679		ServerResponse: googleapi.ServerResponse{
141680			Header:         res.Header,
141681			HTTPStatusCode: res.StatusCode,
141682		},
141683	}
141684	target := &ret
141685	if err := gensupport.DecodeResponse(target, res); err != nil {
141686		return nil, err
141687	}
141688	return ret, nil
141689	// {
141690	//   "description": "Creates a TargetHttpProxy resource in the specified project and region using the data included in the request.",
141691	//   "httpMethod": "POST",
141692	//   "id": "compute.regionTargetHttpProxies.insert",
141693	//   "parameterOrder": [
141694	//     "project",
141695	//     "region"
141696	//   ],
141697	//   "parameters": {
141698	//     "project": {
141699	//       "description": "Project ID for this request.",
141700	//       "location": "path",
141701	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141702	//       "required": true,
141703	//       "type": "string"
141704	//     },
141705	//     "region": {
141706	//       "description": "Name of the region scoping this request.",
141707	//       "location": "path",
141708	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
141709	//       "required": true,
141710	//       "type": "string"
141711	//     },
141712	//     "requestId": {
141713	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
141714	//       "location": "query",
141715	//       "type": "string"
141716	//     }
141717	//   },
141718	//   "path": "projects/{project}/regions/{region}/targetHttpProxies",
141719	//   "request": {
141720	//     "$ref": "TargetHttpProxy"
141721	//   },
141722	//   "response": {
141723	//     "$ref": "Operation"
141724	//   },
141725	//   "scopes": [
141726	//     "https://www.googleapis.com/auth/cloud-platform",
141727	//     "https://www.googleapis.com/auth/compute"
141728	//   ]
141729	// }
141730
141731}
141732
141733// method id "compute.regionTargetHttpProxies.list":
141734
141735type RegionTargetHttpProxiesListCall struct {
141736	s            *Service
141737	project      string
141738	region       string
141739	urlParams_   gensupport.URLParams
141740	ifNoneMatch_ string
141741	ctx_         context.Context
141742	header_      http.Header
141743}
141744
141745// List: Retrieves the list of TargetHttpProxy resources available to
141746// the specified project in the specified region.
141747func (r *RegionTargetHttpProxiesService) List(project string, region string) *RegionTargetHttpProxiesListCall {
141748	c := &RegionTargetHttpProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141749	c.project = project
141750	c.region = region
141751	return c
141752}
141753
141754// Filter sets the optional parameter "filter": A filter expression that
141755// filters resources listed in the response. The expression must specify
141756// the field name, a comparison operator, and the value that you want to
141757// use for filtering. The value must be a string, a number, or a
141758// boolean. The comparison operator must be either `=`, `!=`, `>`, or
141759// `<`.
141760//
141761// For example, if you are filtering Compute Engine instances, you can
141762// exclude instances named `example-instance` by specifying `name !=
141763// example-instance`.
141764//
141765// You can also filter nested fields. For example, you could specify
141766// `scheduling.automaticRestart = false` to include instances only if
141767// they are not scheduled for automatic restarts. You can use filtering
141768// on nested fields to filter based on resource labels.
141769//
141770// To filter on multiple expressions, provide each separate expression
141771// within parentheses. For example: ``` (scheduling.automaticRestart =
141772// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
141773// is an `AND` expression. However, you can include `AND` and `OR`
141774// expressions explicitly. For example: ``` (cpuPlatform = "Intel
141775// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
141776// (scheduling.automaticRestart = true) ```
141777func (c *RegionTargetHttpProxiesListCall) Filter(filter string) *RegionTargetHttpProxiesListCall {
141778	c.urlParams_.Set("filter", filter)
141779	return c
141780}
141781
141782// MaxResults sets the optional parameter "maxResults": The maximum
141783// number of results per page that should be returned. If the number of
141784// available results is larger than `maxResults`, Compute Engine returns
141785// a `nextPageToken` that can be used to get the next page of results in
141786// subsequent list requests. Acceptable values are `0` to `500`,
141787// inclusive. (Default: `500`)
141788func (c *RegionTargetHttpProxiesListCall) MaxResults(maxResults int64) *RegionTargetHttpProxiesListCall {
141789	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
141790	return c
141791}
141792
141793// OrderBy sets the optional parameter "orderBy": Sorts list results by
141794// a certain order. By default, results are returned in alphanumerical
141795// order based on the resource name.
141796//
141797// You can also sort results in descending order based on the creation
141798// timestamp using `orderBy="creationTimestamp desc". This sorts
141799// results based on the `creationTimestamp` field in reverse
141800// chronological order (newest result first). Use this to sort resources
141801// like operations so that the newest operation is returned
141802// first.
141803//
141804// Currently, only sorting by `name` or `creationTimestamp desc` is
141805// supported.
141806func (c *RegionTargetHttpProxiesListCall) OrderBy(orderBy string) *RegionTargetHttpProxiesListCall {
141807	c.urlParams_.Set("orderBy", orderBy)
141808	return c
141809}
141810
141811// PageToken sets the optional parameter "pageToken": Specifies a page
141812// token to use. Set `pageToken` to the `nextPageToken` returned by a
141813// previous list request to get the next page of results.
141814func (c *RegionTargetHttpProxiesListCall) PageToken(pageToken string) *RegionTargetHttpProxiesListCall {
141815	c.urlParams_.Set("pageToken", pageToken)
141816	return c
141817}
141818
141819// ReturnPartialSuccess sets the optional parameter
141820// "returnPartialSuccess": Opt-in for partial success behavior which
141821// provides partial results in case of failure. The default value is
141822// false.
141823func (c *RegionTargetHttpProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionTargetHttpProxiesListCall {
141824	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
141825	return c
141826}
141827
141828// Fields allows partial responses to be retrieved. See
141829// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
141830// for more information.
141831func (c *RegionTargetHttpProxiesListCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesListCall {
141832	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141833	return c
141834}
141835
141836// IfNoneMatch sets the optional parameter which makes the operation
141837// fail if the object's ETag matches the given value. This is useful for
141838// getting updates only after the object has changed since the last
141839// request. Use googleapi.IsNotModified to check whether the response
141840// error from Do is the result of In-None-Match.
141841func (c *RegionTargetHttpProxiesListCall) IfNoneMatch(entityTag string) *RegionTargetHttpProxiesListCall {
141842	c.ifNoneMatch_ = entityTag
141843	return c
141844}
141845
141846// Context sets the context to be used in this call's Do method. Any
141847// pending HTTP request will be aborted if the provided context is
141848// canceled.
141849func (c *RegionTargetHttpProxiesListCall) Context(ctx context.Context) *RegionTargetHttpProxiesListCall {
141850	c.ctx_ = ctx
141851	return c
141852}
141853
141854// Header returns an http.Header that can be modified by the caller to
141855// add HTTP headers to the request.
141856func (c *RegionTargetHttpProxiesListCall) Header() http.Header {
141857	if c.header_ == nil {
141858		c.header_ = make(http.Header)
141859	}
141860	return c.header_
141861}
141862
141863func (c *RegionTargetHttpProxiesListCall) doRequest(alt string) (*http.Response, error) {
141864	reqHeaders := make(http.Header)
141865	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
141866	for k, v := range c.header_ {
141867		reqHeaders[k] = v
141868	}
141869	reqHeaders.Set("User-Agent", c.s.userAgent())
141870	if c.ifNoneMatch_ != "" {
141871		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
141872	}
141873	var body io.Reader = nil
141874	c.urlParams_.Set("alt", alt)
141875	c.urlParams_.Set("prettyPrint", "false")
141876	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpProxies")
141877	urls += "?" + c.urlParams_.Encode()
141878	req, err := http.NewRequest("GET", urls, body)
141879	if err != nil {
141880		return nil, err
141881	}
141882	req.Header = reqHeaders
141883	googleapi.Expand(req.URL, map[string]string{
141884		"project": c.project,
141885		"region":  c.region,
141886	})
141887	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141888}
141889
141890// Do executes the "compute.regionTargetHttpProxies.list" call.
141891// Exactly one of *TargetHttpProxyList or error will be non-nil. Any
141892// non-2xx status code is an error. Response headers are in either
141893// *TargetHttpProxyList.ServerResponse.Header or (if a response was
141894// returned at all) in error.(*googleapi.Error).Header. Use
141895// googleapi.IsNotModified to check whether the returned error was
141896// because http.StatusNotModified was returned.
141897func (c *RegionTargetHttpProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxyList, error) {
141898	gensupport.SetOptions(c.urlParams_, opts...)
141899	res, err := c.doRequest("json")
141900	if res != nil && res.StatusCode == http.StatusNotModified {
141901		if res.Body != nil {
141902			res.Body.Close()
141903		}
141904		return nil, &googleapi.Error{
141905			Code:   res.StatusCode,
141906			Header: res.Header,
141907		}
141908	}
141909	if err != nil {
141910		return nil, err
141911	}
141912	defer googleapi.CloseBody(res)
141913	if err := googleapi.CheckResponse(res); err != nil {
141914		return nil, err
141915	}
141916	ret := &TargetHttpProxyList{
141917		ServerResponse: googleapi.ServerResponse{
141918			Header:         res.Header,
141919			HTTPStatusCode: res.StatusCode,
141920		},
141921	}
141922	target := &ret
141923	if err := gensupport.DecodeResponse(target, res); err != nil {
141924		return nil, err
141925	}
141926	return ret, nil
141927	// {
141928	//   "description": "Retrieves the list of TargetHttpProxy resources available to the specified project in the specified region.",
141929	//   "httpMethod": "GET",
141930	//   "id": "compute.regionTargetHttpProxies.list",
141931	//   "parameterOrder": [
141932	//     "project",
141933	//     "region"
141934	//   ],
141935	//   "parameters": {
141936	//     "filter": {
141937	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
141938	//       "location": "query",
141939	//       "type": "string"
141940	//     },
141941	//     "maxResults": {
141942	//       "default": "500",
141943	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
141944	//       "format": "uint32",
141945	//       "location": "query",
141946	//       "minimum": "0",
141947	//       "type": "integer"
141948	//     },
141949	//     "orderBy": {
141950	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
141951	//       "location": "query",
141952	//       "type": "string"
141953	//     },
141954	//     "pageToken": {
141955	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
141956	//       "location": "query",
141957	//       "type": "string"
141958	//     },
141959	//     "project": {
141960	//       "description": "Project ID for this request.",
141961	//       "location": "path",
141962	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141963	//       "required": true,
141964	//       "type": "string"
141965	//     },
141966	//     "region": {
141967	//       "description": "Name of the region scoping this request.",
141968	//       "location": "path",
141969	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
141970	//       "required": true,
141971	//       "type": "string"
141972	//     },
141973	//     "returnPartialSuccess": {
141974	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
141975	//       "location": "query",
141976	//       "type": "boolean"
141977	//     }
141978	//   },
141979	//   "path": "projects/{project}/regions/{region}/targetHttpProxies",
141980	//   "response": {
141981	//     "$ref": "TargetHttpProxyList"
141982	//   },
141983	//   "scopes": [
141984	//     "https://www.googleapis.com/auth/cloud-platform",
141985	//     "https://www.googleapis.com/auth/compute",
141986	//     "https://www.googleapis.com/auth/compute.readonly"
141987	//   ]
141988	// }
141989
141990}
141991
141992// Pages invokes f for each page of results.
141993// A non-nil error returned from f will halt the iteration.
141994// The provided context supersedes any context provided to the Context method.
141995func (c *RegionTargetHttpProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpProxyList) error) error {
141996	c.ctx_ = ctx
141997	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
141998	for {
141999		x, err := c.Do()
142000		if err != nil {
142001			return err
142002		}
142003		if err := f(x); err != nil {
142004			return err
142005		}
142006		if x.NextPageToken == "" {
142007			return nil
142008		}
142009		c.PageToken(x.NextPageToken)
142010	}
142011}
142012
142013// method id "compute.regionTargetHttpProxies.setUrlMap":
142014
142015type RegionTargetHttpProxiesSetUrlMapCall struct {
142016	s               *Service
142017	project         string
142018	region          string
142019	targetHttpProxy string
142020	urlmapreference *UrlMapReference
142021	urlParams_      gensupport.URLParams
142022	ctx_            context.Context
142023	header_         http.Header
142024}
142025
142026// SetUrlMap: Changes the URL map for TargetHttpProxy.
142027func (r *RegionTargetHttpProxiesService) SetUrlMap(project string, region string, targetHttpProxy string, urlmapreference *UrlMapReference) *RegionTargetHttpProxiesSetUrlMapCall {
142028	c := &RegionTargetHttpProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)}
142029	c.project = project
142030	c.region = region
142031	c.targetHttpProxy = targetHttpProxy
142032	c.urlmapreference = urlmapreference
142033	return c
142034}
142035
142036// RequestId sets the optional parameter "requestId": An optional
142037// request ID to identify requests. Specify a unique request ID so that
142038// if you must retry your request, the server will know to ignore the
142039// request if it has already been completed.
142040//
142041// For example, consider a situation where you make an initial request
142042// and the request times out. If you make the request again with the
142043// same request ID, the server can check if original operation with the
142044// same request ID was received, and if so, will ignore the second
142045// request. This prevents clients from accidentally creating duplicate
142046// commitments.
142047//
142048// The request ID must be a valid UUID with the exception that zero UUID
142049// is not supported (00000000-0000-0000-0000-000000000000).
142050func (c *RegionTargetHttpProxiesSetUrlMapCall) RequestId(requestId string) *RegionTargetHttpProxiesSetUrlMapCall {
142051	c.urlParams_.Set("requestId", requestId)
142052	return c
142053}
142054
142055// Fields allows partial responses to be retrieved. See
142056// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142057// for more information.
142058func (c *RegionTargetHttpProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesSetUrlMapCall {
142059	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142060	return c
142061}
142062
142063// Context sets the context to be used in this call's Do method. Any
142064// pending HTTP request will be aborted if the provided context is
142065// canceled.
142066func (c *RegionTargetHttpProxiesSetUrlMapCall) Context(ctx context.Context) *RegionTargetHttpProxiesSetUrlMapCall {
142067	c.ctx_ = ctx
142068	return c
142069}
142070
142071// Header returns an http.Header that can be modified by the caller to
142072// add HTTP headers to the request.
142073func (c *RegionTargetHttpProxiesSetUrlMapCall) Header() http.Header {
142074	if c.header_ == nil {
142075		c.header_ = make(http.Header)
142076	}
142077	return c.header_
142078}
142079
142080func (c *RegionTargetHttpProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, error) {
142081	reqHeaders := make(http.Header)
142082	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
142083	for k, v := range c.header_ {
142084		reqHeaders[k] = v
142085	}
142086	reqHeaders.Set("User-Agent", c.s.userAgent())
142087	var body io.Reader = nil
142088	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapreference)
142089	if err != nil {
142090		return nil, err
142091	}
142092	reqHeaders.Set("Content-Type", "application/json")
142093	c.urlParams_.Set("alt", alt)
142094	c.urlParams_.Set("prettyPrint", "false")
142095	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}/setUrlMap")
142096	urls += "?" + c.urlParams_.Encode()
142097	req, err := http.NewRequest("POST", urls, body)
142098	if err != nil {
142099		return nil, err
142100	}
142101	req.Header = reqHeaders
142102	googleapi.Expand(req.URL, map[string]string{
142103		"project":         c.project,
142104		"region":          c.region,
142105		"targetHttpProxy": c.targetHttpProxy,
142106	})
142107	return gensupport.SendRequest(c.ctx_, c.s.client, req)
142108}
142109
142110// Do executes the "compute.regionTargetHttpProxies.setUrlMap" call.
142111// Exactly one of *Operation or error will be non-nil. Any non-2xx
142112// status code is an error. Response headers are in either
142113// *Operation.ServerResponse.Header or (if a response was returned at
142114// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
142115// to check whether the returned error was because
142116// http.StatusNotModified was returned.
142117func (c *RegionTargetHttpProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
142118	gensupport.SetOptions(c.urlParams_, opts...)
142119	res, err := c.doRequest("json")
142120	if res != nil && res.StatusCode == http.StatusNotModified {
142121		if res.Body != nil {
142122			res.Body.Close()
142123		}
142124		return nil, &googleapi.Error{
142125			Code:   res.StatusCode,
142126			Header: res.Header,
142127		}
142128	}
142129	if err != nil {
142130		return nil, err
142131	}
142132	defer googleapi.CloseBody(res)
142133	if err := googleapi.CheckResponse(res); err != nil {
142134		return nil, err
142135	}
142136	ret := &Operation{
142137		ServerResponse: googleapi.ServerResponse{
142138			Header:         res.Header,
142139			HTTPStatusCode: res.StatusCode,
142140		},
142141	}
142142	target := &ret
142143	if err := gensupport.DecodeResponse(target, res); err != nil {
142144		return nil, err
142145	}
142146	return ret, nil
142147	// {
142148	//   "description": "Changes the URL map for TargetHttpProxy.",
142149	//   "httpMethod": "POST",
142150	//   "id": "compute.regionTargetHttpProxies.setUrlMap",
142151	//   "parameterOrder": [
142152	//     "project",
142153	//     "region",
142154	//     "targetHttpProxy"
142155	//   ],
142156	//   "parameters": {
142157	//     "project": {
142158	//       "description": "Project ID for this request.",
142159	//       "location": "path",
142160	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
142161	//       "required": true,
142162	//       "type": "string"
142163	//     },
142164	//     "region": {
142165	//       "description": "Name of the region scoping this request.",
142166	//       "location": "path",
142167	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
142168	//       "required": true,
142169	//       "type": "string"
142170	//     },
142171	//     "requestId": {
142172	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
142173	//       "location": "query",
142174	//       "type": "string"
142175	//     },
142176	//     "targetHttpProxy": {
142177	//       "description": "Name of the TargetHttpProxy to set a URL map for.",
142178	//       "location": "path",
142179	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
142180	//       "required": true,
142181	//       "type": "string"
142182	//     }
142183	//   },
142184	//   "path": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}/setUrlMap",
142185	//   "request": {
142186	//     "$ref": "UrlMapReference"
142187	//   },
142188	//   "response": {
142189	//     "$ref": "Operation"
142190	//   },
142191	//   "scopes": [
142192	//     "https://www.googleapis.com/auth/cloud-platform",
142193	//     "https://www.googleapis.com/auth/compute"
142194	//   ]
142195	// }
142196
142197}
142198
142199// method id "compute.regionTargetHttpProxies.testIamPermissions":
142200
142201type RegionTargetHttpProxiesTestIamPermissionsCall struct {
142202	s                      *Service
142203	project                string
142204	region                 string
142205	resource               string
142206	testpermissionsrequest *TestPermissionsRequest
142207	urlParams_             gensupport.URLParams
142208	ctx_                   context.Context
142209	header_                http.Header
142210}
142211
142212// TestIamPermissions: Returns permissions that a caller has on the
142213// specified resource.
142214func (r *RegionTargetHttpProxiesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionTargetHttpProxiesTestIamPermissionsCall {
142215	c := &RegionTargetHttpProxiesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
142216	c.project = project
142217	c.region = region
142218	c.resource = resource
142219	c.testpermissionsrequest = testpermissionsrequest
142220	return c
142221}
142222
142223// Fields allows partial responses to be retrieved. See
142224// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142225// for more information.
142226func (c *RegionTargetHttpProxiesTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesTestIamPermissionsCall {
142227	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142228	return c
142229}
142230
142231// Context sets the context to be used in this call's Do method. Any
142232// pending HTTP request will be aborted if the provided context is
142233// canceled.
142234func (c *RegionTargetHttpProxiesTestIamPermissionsCall) Context(ctx context.Context) *RegionTargetHttpProxiesTestIamPermissionsCall {
142235	c.ctx_ = ctx
142236	return c
142237}
142238
142239// Header returns an http.Header that can be modified by the caller to
142240// add HTTP headers to the request.
142241func (c *RegionTargetHttpProxiesTestIamPermissionsCall) Header() http.Header {
142242	if c.header_ == nil {
142243		c.header_ = make(http.Header)
142244	}
142245	return c.header_
142246}
142247
142248func (c *RegionTargetHttpProxiesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
142249	reqHeaders := make(http.Header)
142250	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
142251	for k, v := range c.header_ {
142252		reqHeaders[k] = v
142253	}
142254	reqHeaders.Set("User-Agent", c.s.userAgent())
142255	var body io.Reader = nil
142256	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
142257	if err != nil {
142258		return nil, err
142259	}
142260	reqHeaders.Set("Content-Type", "application/json")
142261	c.urlParams_.Set("alt", alt)
142262	c.urlParams_.Set("prettyPrint", "false")
142263	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpProxies/{resource}/testIamPermissions")
142264	urls += "?" + c.urlParams_.Encode()
142265	req, err := http.NewRequest("POST", urls, body)
142266	if err != nil {
142267		return nil, err
142268	}
142269	req.Header = reqHeaders
142270	googleapi.Expand(req.URL, map[string]string{
142271		"project":  c.project,
142272		"region":   c.region,
142273		"resource": c.resource,
142274	})
142275	return gensupport.SendRequest(c.ctx_, c.s.client, req)
142276}
142277
142278// Do executes the "compute.regionTargetHttpProxies.testIamPermissions" call.
142279// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
142280// non-2xx status code is an error. Response headers are in either
142281// *TestPermissionsResponse.ServerResponse.Header or (if a response was
142282// returned at all) in error.(*googleapi.Error).Header. Use
142283// googleapi.IsNotModified to check whether the returned error was
142284// because http.StatusNotModified was returned.
142285func (c *RegionTargetHttpProxiesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
142286	gensupport.SetOptions(c.urlParams_, opts...)
142287	res, err := c.doRequest("json")
142288	if res != nil && res.StatusCode == http.StatusNotModified {
142289		if res.Body != nil {
142290			res.Body.Close()
142291		}
142292		return nil, &googleapi.Error{
142293			Code:   res.StatusCode,
142294			Header: res.Header,
142295		}
142296	}
142297	if err != nil {
142298		return nil, err
142299	}
142300	defer googleapi.CloseBody(res)
142301	if err := googleapi.CheckResponse(res); err != nil {
142302		return nil, err
142303	}
142304	ret := &TestPermissionsResponse{
142305		ServerResponse: googleapi.ServerResponse{
142306			Header:         res.Header,
142307			HTTPStatusCode: res.StatusCode,
142308		},
142309	}
142310	target := &ret
142311	if err := gensupport.DecodeResponse(target, res); err != nil {
142312		return nil, err
142313	}
142314	return ret, nil
142315	// {
142316	//   "description": "Returns permissions that a caller has on the specified resource.",
142317	//   "httpMethod": "POST",
142318	//   "id": "compute.regionTargetHttpProxies.testIamPermissions",
142319	//   "parameterOrder": [
142320	//     "project",
142321	//     "region",
142322	//     "resource"
142323	//   ],
142324	//   "parameters": {
142325	//     "project": {
142326	//       "description": "Project ID for this request.",
142327	//       "location": "path",
142328	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
142329	//       "required": true,
142330	//       "type": "string"
142331	//     },
142332	//     "region": {
142333	//       "description": "The name of the region for this request.",
142334	//       "location": "path",
142335	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
142336	//       "required": true,
142337	//       "type": "string"
142338	//     },
142339	//     "resource": {
142340	//       "description": "Name or id of the resource for this request.",
142341	//       "location": "path",
142342	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
142343	//       "required": true,
142344	//       "type": "string"
142345	//     }
142346	//   },
142347	//   "path": "projects/{project}/regions/{region}/targetHttpProxies/{resource}/testIamPermissions",
142348	//   "request": {
142349	//     "$ref": "TestPermissionsRequest"
142350	//   },
142351	//   "response": {
142352	//     "$ref": "TestPermissionsResponse"
142353	//   },
142354	//   "scopes": [
142355	//     "https://www.googleapis.com/auth/cloud-platform",
142356	//     "https://www.googleapis.com/auth/compute",
142357	//     "https://www.googleapis.com/auth/compute.readonly"
142358	//   ]
142359	// }
142360
142361}
142362
142363// method id "compute.regionTargetHttpsProxies.delete":
142364
142365type RegionTargetHttpsProxiesDeleteCall struct {
142366	s                *Service
142367	project          string
142368	region           string
142369	targetHttpsProxy string
142370	urlParams_       gensupport.URLParams
142371	ctx_             context.Context
142372	header_          http.Header
142373}
142374
142375// Delete: Deletes the specified TargetHttpsProxy resource.
142376func (r *RegionTargetHttpsProxiesService) Delete(project string, region string, targetHttpsProxy string) *RegionTargetHttpsProxiesDeleteCall {
142377	c := &RegionTargetHttpsProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
142378	c.project = project
142379	c.region = region
142380	c.targetHttpsProxy = targetHttpsProxy
142381	return c
142382}
142383
142384// RequestId sets the optional parameter "requestId": An optional
142385// request ID to identify requests. Specify a unique request ID so that
142386// if you must retry your request, the server will know to ignore the
142387// request if it has already been completed.
142388//
142389// For example, consider a situation where you make an initial request
142390// and the request times out. If you make the request again with the
142391// same request ID, the server can check if original operation with the
142392// same request ID was received, and if so, will ignore the second
142393// request. This prevents clients from accidentally creating duplicate
142394// commitments.
142395//
142396// The request ID must be a valid UUID with the exception that zero UUID
142397// is not supported (00000000-0000-0000-0000-000000000000).
142398func (c *RegionTargetHttpsProxiesDeleteCall) RequestId(requestId string) *RegionTargetHttpsProxiesDeleteCall {
142399	c.urlParams_.Set("requestId", requestId)
142400	return c
142401}
142402
142403// Fields allows partial responses to be retrieved. See
142404// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142405// for more information.
142406func (c *RegionTargetHttpsProxiesDeleteCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesDeleteCall {
142407	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142408	return c
142409}
142410
142411// Context sets the context to be used in this call's Do method. Any
142412// pending HTTP request will be aborted if the provided context is
142413// canceled.
142414func (c *RegionTargetHttpsProxiesDeleteCall) Context(ctx context.Context) *RegionTargetHttpsProxiesDeleteCall {
142415	c.ctx_ = ctx
142416	return c
142417}
142418
142419// Header returns an http.Header that can be modified by the caller to
142420// add HTTP headers to the request.
142421func (c *RegionTargetHttpsProxiesDeleteCall) Header() http.Header {
142422	if c.header_ == nil {
142423		c.header_ = make(http.Header)
142424	}
142425	return c.header_
142426}
142427
142428func (c *RegionTargetHttpsProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
142429	reqHeaders := make(http.Header)
142430	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
142431	for k, v := range c.header_ {
142432		reqHeaders[k] = v
142433	}
142434	reqHeaders.Set("User-Agent", c.s.userAgent())
142435	var body io.Reader = nil
142436	c.urlParams_.Set("alt", alt)
142437	c.urlParams_.Set("prettyPrint", "false")
142438	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}")
142439	urls += "?" + c.urlParams_.Encode()
142440	req, err := http.NewRequest("DELETE", urls, body)
142441	if err != nil {
142442		return nil, err
142443	}
142444	req.Header = reqHeaders
142445	googleapi.Expand(req.URL, map[string]string{
142446		"project":          c.project,
142447		"region":           c.region,
142448		"targetHttpsProxy": c.targetHttpsProxy,
142449	})
142450	return gensupport.SendRequest(c.ctx_, c.s.client, req)
142451}
142452
142453// Do executes the "compute.regionTargetHttpsProxies.delete" call.
142454// Exactly one of *Operation or error will be non-nil. Any non-2xx
142455// status code is an error. Response headers are in either
142456// *Operation.ServerResponse.Header or (if a response was returned at
142457// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
142458// to check whether the returned error was because
142459// http.StatusNotModified was returned.
142460func (c *RegionTargetHttpsProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
142461	gensupport.SetOptions(c.urlParams_, opts...)
142462	res, err := c.doRequest("json")
142463	if res != nil && res.StatusCode == http.StatusNotModified {
142464		if res.Body != nil {
142465			res.Body.Close()
142466		}
142467		return nil, &googleapi.Error{
142468			Code:   res.StatusCode,
142469			Header: res.Header,
142470		}
142471	}
142472	if err != nil {
142473		return nil, err
142474	}
142475	defer googleapi.CloseBody(res)
142476	if err := googleapi.CheckResponse(res); err != nil {
142477		return nil, err
142478	}
142479	ret := &Operation{
142480		ServerResponse: googleapi.ServerResponse{
142481			Header:         res.Header,
142482			HTTPStatusCode: res.StatusCode,
142483		},
142484	}
142485	target := &ret
142486	if err := gensupport.DecodeResponse(target, res); err != nil {
142487		return nil, err
142488	}
142489	return ret, nil
142490	// {
142491	//   "description": "Deletes the specified TargetHttpsProxy resource.",
142492	//   "httpMethod": "DELETE",
142493	//   "id": "compute.regionTargetHttpsProxies.delete",
142494	//   "parameterOrder": [
142495	//     "project",
142496	//     "region",
142497	//     "targetHttpsProxy"
142498	//   ],
142499	//   "parameters": {
142500	//     "project": {
142501	//       "description": "Project ID for this request.",
142502	//       "location": "path",
142503	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
142504	//       "required": true,
142505	//       "type": "string"
142506	//     },
142507	//     "region": {
142508	//       "description": "Name of the region scoping this request.",
142509	//       "location": "path",
142510	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
142511	//       "required": true,
142512	//       "type": "string"
142513	//     },
142514	//     "requestId": {
142515	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
142516	//       "location": "query",
142517	//       "type": "string"
142518	//     },
142519	//     "targetHttpsProxy": {
142520	//       "description": "Name of the TargetHttpsProxy resource to delete.",
142521	//       "location": "path",
142522	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
142523	//       "required": true,
142524	//       "type": "string"
142525	//     }
142526	//   },
142527	//   "path": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}",
142528	//   "response": {
142529	//     "$ref": "Operation"
142530	//   },
142531	//   "scopes": [
142532	//     "https://www.googleapis.com/auth/cloud-platform",
142533	//     "https://www.googleapis.com/auth/compute"
142534	//   ]
142535	// }
142536
142537}
142538
142539// method id "compute.regionTargetHttpsProxies.get":
142540
142541type RegionTargetHttpsProxiesGetCall struct {
142542	s                *Service
142543	project          string
142544	region           string
142545	targetHttpsProxy string
142546	urlParams_       gensupport.URLParams
142547	ifNoneMatch_     string
142548	ctx_             context.Context
142549	header_          http.Header
142550}
142551
142552// Get: Returns the specified TargetHttpsProxy resource in the specified
142553// region. Gets a list of available target HTTP proxies by making a
142554// list() request.
142555func (r *RegionTargetHttpsProxiesService) Get(project string, region string, targetHttpsProxy string) *RegionTargetHttpsProxiesGetCall {
142556	c := &RegionTargetHttpsProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
142557	c.project = project
142558	c.region = region
142559	c.targetHttpsProxy = targetHttpsProxy
142560	return c
142561}
142562
142563// Fields allows partial responses to be retrieved. See
142564// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142565// for more information.
142566func (c *RegionTargetHttpsProxiesGetCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesGetCall {
142567	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142568	return c
142569}
142570
142571// IfNoneMatch sets the optional parameter which makes the operation
142572// fail if the object's ETag matches the given value. This is useful for
142573// getting updates only after the object has changed since the last
142574// request. Use googleapi.IsNotModified to check whether the response
142575// error from Do is the result of In-None-Match.
142576func (c *RegionTargetHttpsProxiesGetCall) IfNoneMatch(entityTag string) *RegionTargetHttpsProxiesGetCall {
142577	c.ifNoneMatch_ = entityTag
142578	return c
142579}
142580
142581// Context sets the context to be used in this call's Do method. Any
142582// pending HTTP request will be aborted if the provided context is
142583// canceled.
142584func (c *RegionTargetHttpsProxiesGetCall) Context(ctx context.Context) *RegionTargetHttpsProxiesGetCall {
142585	c.ctx_ = ctx
142586	return c
142587}
142588
142589// Header returns an http.Header that can be modified by the caller to
142590// add HTTP headers to the request.
142591func (c *RegionTargetHttpsProxiesGetCall) Header() http.Header {
142592	if c.header_ == nil {
142593		c.header_ = make(http.Header)
142594	}
142595	return c.header_
142596}
142597
142598func (c *RegionTargetHttpsProxiesGetCall) doRequest(alt string) (*http.Response, error) {
142599	reqHeaders := make(http.Header)
142600	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
142601	for k, v := range c.header_ {
142602		reqHeaders[k] = v
142603	}
142604	reqHeaders.Set("User-Agent", c.s.userAgent())
142605	if c.ifNoneMatch_ != "" {
142606		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
142607	}
142608	var body io.Reader = nil
142609	c.urlParams_.Set("alt", alt)
142610	c.urlParams_.Set("prettyPrint", "false")
142611	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}")
142612	urls += "?" + c.urlParams_.Encode()
142613	req, err := http.NewRequest("GET", urls, body)
142614	if err != nil {
142615		return nil, err
142616	}
142617	req.Header = reqHeaders
142618	googleapi.Expand(req.URL, map[string]string{
142619		"project":          c.project,
142620		"region":           c.region,
142621		"targetHttpsProxy": c.targetHttpsProxy,
142622	})
142623	return gensupport.SendRequest(c.ctx_, c.s.client, req)
142624}
142625
142626// Do executes the "compute.regionTargetHttpsProxies.get" call.
142627// Exactly one of *TargetHttpsProxy or error will be non-nil. Any
142628// non-2xx status code is an error. Response headers are in either
142629// *TargetHttpsProxy.ServerResponse.Header or (if a response was
142630// returned at all) in error.(*googleapi.Error).Header. Use
142631// googleapi.IsNotModified to check whether the returned error was
142632// because http.StatusNotModified was returned.
142633func (c *RegionTargetHttpsProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxy, error) {
142634	gensupport.SetOptions(c.urlParams_, opts...)
142635	res, err := c.doRequest("json")
142636	if res != nil && res.StatusCode == http.StatusNotModified {
142637		if res.Body != nil {
142638			res.Body.Close()
142639		}
142640		return nil, &googleapi.Error{
142641			Code:   res.StatusCode,
142642			Header: res.Header,
142643		}
142644	}
142645	if err != nil {
142646		return nil, err
142647	}
142648	defer googleapi.CloseBody(res)
142649	if err := googleapi.CheckResponse(res); err != nil {
142650		return nil, err
142651	}
142652	ret := &TargetHttpsProxy{
142653		ServerResponse: googleapi.ServerResponse{
142654			Header:         res.Header,
142655			HTTPStatusCode: res.StatusCode,
142656		},
142657	}
142658	target := &ret
142659	if err := gensupport.DecodeResponse(target, res); err != nil {
142660		return nil, err
142661	}
142662	return ret, nil
142663	// {
142664	//   "description": "Returns the specified TargetHttpsProxy resource in the specified region. Gets a list of available target HTTP proxies by making a list() request.",
142665	//   "httpMethod": "GET",
142666	//   "id": "compute.regionTargetHttpsProxies.get",
142667	//   "parameterOrder": [
142668	//     "project",
142669	//     "region",
142670	//     "targetHttpsProxy"
142671	//   ],
142672	//   "parameters": {
142673	//     "project": {
142674	//       "description": "Project ID for this request.",
142675	//       "location": "path",
142676	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
142677	//       "required": true,
142678	//       "type": "string"
142679	//     },
142680	//     "region": {
142681	//       "description": "Name of the region scoping this request.",
142682	//       "location": "path",
142683	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
142684	//       "required": true,
142685	//       "type": "string"
142686	//     },
142687	//     "targetHttpsProxy": {
142688	//       "description": "Name of the TargetHttpsProxy resource to return.",
142689	//       "location": "path",
142690	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
142691	//       "required": true,
142692	//       "type": "string"
142693	//     }
142694	//   },
142695	//   "path": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}",
142696	//   "response": {
142697	//     "$ref": "TargetHttpsProxy"
142698	//   },
142699	//   "scopes": [
142700	//     "https://www.googleapis.com/auth/cloud-platform",
142701	//     "https://www.googleapis.com/auth/compute",
142702	//     "https://www.googleapis.com/auth/compute.readonly"
142703	//   ]
142704	// }
142705
142706}
142707
142708// method id "compute.regionTargetHttpsProxies.insert":
142709
142710type RegionTargetHttpsProxiesInsertCall struct {
142711	s                *Service
142712	project          string
142713	region           string
142714	targethttpsproxy *TargetHttpsProxy
142715	urlParams_       gensupport.URLParams
142716	ctx_             context.Context
142717	header_          http.Header
142718}
142719
142720// Insert: Creates a TargetHttpsProxy resource in the specified project
142721// and region using the data included in the request.
142722func (r *RegionTargetHttpsProxiesService) Insert(project string, region string, targethttpsproxy *TargetHttpsProxy) *RegionTargetHttpsProxiesInsertCall {
142723	c := &RegionTargetHttpsProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
142724	c.project = project
142725	c.region = region
142726	c.targethttpsproxy = targethttpsproxy
142727	return c
142728}
142729
142730// RequestId sets the optional parameter "requestId": An optional
142731// request ID to identify requests. Specify a unique request ID so that
142732// if you must retry your request, the server will know to ignore the
142733// request if it has already been completed.
142734//
142735// For example, consider a situation where you make an initial request
142736// and the request times out. If you make the request again with the
142737// same request ID, the server can check if original operation with the
142738// same request ID was received, and if so, will ignore the second
142739// request. This prevents clients from accidentally creating duplicate
142740// commitments.
142741//
142742// The request ID must be a valid UUID with the exception that zero UUID
142743// is not supported (00000000-0000-0000-0000-000000000000).
142744func (c *RegionTargetHttpsProxiesInsertCall) RequestId(requestId string) *RegionTargetHttpsProxiesInsertCall {
142745	c.urlParams_.Set("requestId", requestId)
142746	return c
142747}
142748
142749// Fields allows partial responses to be retrieved. See
142750// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142751// for more information.
142752func (c *RegionTargetHttpsProxiesInsertCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesInsertCall {
142753	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142754	return c
142755}
142756
142757// Context sets the context to be used in this call's Do method. Any
142758// pending HTTP request will be aborted if the provided context is
142759// canceled.
142760func (c *RegionTargetHttpsProxiesInsertCall) Context(ctx context.Context) *RegionTargetHttpsProxiesInsertCall {
142761	c.ctx_ = ctx
142762	return c
142763}
142764
142765// Header returns an http.Header that can be modified by the caller to
142766// add HTTP headers to the request.
142767func (c *RegionTargetHttpsProxiesInsertCall) Header() http.Header {
142768	if c.header_ == nil {
142769		c.header_ = make(http.Header)
142770	}
142771	return c.header_
142772}
142773
142774func (c *RegionTargetHttpsProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
142775	reqHeaders := make(http.Header)
142776	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
142777	for k, v := range c.header_ {
142778		reqHeaders[k] = v
142779	}
142780	reqHeaders.Set("User-Agent", c.s.userAgent())
142781	var body io.Reader = nil
142782	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxy)
142783	if err != nil {
142784		return nil, err
142785	}
142786	reqHeaders.Set("Content-Type", "application/json")
142787	c.urlParams_.Set("alt", alt)
142788	c.urlParams_.Set("prettyPrint", "false")
142789	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpsProxies")
142790	urls += "?" + c.urlParams_.Encode()
142791	req, err := http.NewRequest("POST", urls, body)
142792	if err != nil {
142793		return nil, err
142794	}
142795	req.Header = reqHeaders
142796	googleapi.Expand(req.URL, map[string]string{
142797		"project": c.project,
142798		"region":  c.region,
142799	})
142800	return gensupport.SendRequest(c.ctx_, c.s.client, req)
142801}
142802
142803// Do executes the "compute.regionTargetHttpsProxies.insert" call.
142804// Exactly one of *Operation or error will be non-nil. Any non-2xx
142805// status code is an error. Response headers are in either
142806// *Operation.ServerResponse.Header or (if a response was returned at
142807// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
142808// to check whether the returned error was because
142809// http.StatusNotModified was returned.
142810func (c *RegionTargetHttpsProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
142811	gensupport.SetOptions(c.urlParams_, opts...)
142812	res, err := c.doRequest("json")
142813	if res != nil && res.StatusCode == http.StatusNotModified {
142814		if res.Body != nil {
142815			res.Body.Close()
142816		}
142817		return nil, &googleapi.Error{
142818			Code:   res.StatusCode,
142819			Header: res.Header,
142820		}
142821	}
142822	if err != nil {
142823		return nil, err
142824	}
142825	defer googleapi.CloseBody(res)
142826	if err := googleapi.CheckResponse(res); err != nil {
142827		return nil, err
142828	}
142829	ret := &Operation{
142830		ServerResponse: googleapi.ServerResponse{
142831			Header:         res.Header,
142832			HTTPStatusCode: res.StatusCode,
142833		},
142834	}
142835	target := &ret
142836	if err := gensupport.DecodeResponse(target, res); err != nil {
142837		return nil, err
142838	}
142839	return ret, nil
142840	// {
142841	//   "description": "Creates a TargetHttpsProxy resource in the specified project and region using the data included in the request.",
142842	//   "httpMethod": "POST",
142843	//   "id": "compute.regionTargetHttpsProxies.insert",
142844	//   "parameterOrder": [
142845	//     "project",
142846	//     "region"
142847	//   ],
142848	//   "parameters": {
142849	//     "project": {
142850	//       "description": "Project ID for this request.",
142851	//       "location": "path",
142852	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
142853	//       "required": true,
142854	//       "type": "string"
142855	//     },
142856	//     "region": {
142857	//       "description": "Name of the region scoping this request.",
142858	//       "location": "path",
142859	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
142860	//       "required": true,
142861	//       "type": "string"
142862	//     },
142863	//     "requestId": {
142864	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
142865	//       "location": "query",
142866	//       "type": "string"
142867	//     }
142868	//   },
142869	//   "path": "projects/{project}/regions/{region}/targetHttpsProxies",
142870	//   "request": {
142871	//     "$ref": "TargetHttpsProxy"
142872	//   },
142873	//   "response": {
142874	//     "$ref": "Operation"
142875	//   },
142876	//   "scopes": [
142877	//     "https://www.googleapis.com/auth/cloud-platform",
142878	//     "https://www.googleapis.com/auth/compute"
142879	//   ]
142880	// }
142881
142882}
142883
142884// method id "compute.regionTargetHttpsProxies.list":
142885
142886type RegionTargetHttpsProxiesListCall struct {
142887	s            *Service
142888	project      string
142889	region       string
142890	urlParams_   gensupport.URLParams
142891	ifNoneMatch_ string
142892	ctx_         context.Context
142893	header_      http.Header
142894}
142895
142896// List: Retrieves the list of TargetHttpsProxy resources available to
142897// the specified project in the specified region.
142898func (r *RegionTargetHttpsProxiesService) List(project string, region string) *RegionTargetHttpsProxiesListCall {
142899	c := &RegionTargetHttpsProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
142900	c.project = project
142901	c.region = region
142902	return c
142903}
142904
142905// Filter sets the optional parameter "filter": A filter expression that
142906// filters resources listed in the response. The expression must specify
142907// the field name, a comparison operator, and the value that you want to
142908// use for filtering. The value must be a string, a number, or a
142909// boolean. The comparison operator must be either `=`, `!=`, `>`, or
142910// `<`.
142911//
142912// For example, if you are filtering Compute Engine instances, you can
142913// exclude instances named `example-instance` by specifying `name !=
142914// example-instance`.
142915//
142916// You can also filter nested fields. For example, you could specify
142917// `scheduling.automaticRestart = false` to include instances only if
142918// they are not scheduled for automatic restarts. You can use filtering
142919// on nested fields to filter based on resource labels.
142920//
142921// To filter on multiple expressions, provide each separate expression
142922// within parentheses. For example: ``` (scheduling.automaticRestart =
142923// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
142924// is an `AND` expression. However, you can include `AND` and `OR`
142925// expressions explicitly. For example: ``` (cpuPlatform = "Intel
142926// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
142927// (scheduling.automaticRestart = true) ```
142928func (c *RegionTargetHttpsProxiesListCall) Filter(filter string) *RegionTargetHttpsProxiesListCall {
142929	c.urlParams_.Set("filter", filter)
142930	return c
142931}
142932
142933// MaxResults sets the optional parameter "maxResults": The maximum
142934// number of results per page that should be returned. If the number of
142935// available results is larger than `maxResults`, Compute Engine returns
142936// a `nextPageToken` that can be used to get the next page of results in
142937// subsequent list requests. Acceptable values are `0` to `500`,
142938// inclusive. (Default: `500`)
142939func (c *RegionTargetHttpsProxiesListCall) MaxResults(maxResults int64) *RegionTargetHttpsProxiesListCall {
142940	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
142941	return c
142942}
142943
142944// OrderBy sets the optional parameter "orderBy": Sorts list results by
142945// a certain order. By default, results are returned in alphanumerical
142946// order based on the resource name.
142947//
142948// You can also sort results in descending order based on the creation
142949// timestamp using `orderBy="creationTimestamp desc". This sorts
142950// results based on the `creationTimestamp` field in reverse
142951// chronological order (newest result first). Use this to sort resources
142952// like operations so that the newest operation is returned
142953// first.
142954//
142955// Currently, only sorting by `name` or `creationTimestamp desc` is
142956// supported.
142957func (c *RegionTargetHttpsProxiesListCall) OrderBy(orderBy string) *RegionTargetHttpsProxiesListCall {
142958	c.urlParams_.Set("orderBy", orderBy)
142959	return c
142960}
142961
142962// PageToken sets the optional parameter "pageToken": Specifies a page
142963// token to use. Set `pageToken` to the `nextPageToken` returned by a
142964// previous list request to get the next page of results.
142965func (c *RegionTargetHttpsProxiesListCall) PageToken(pageToken string) *RegionTargetHttpsProxiesListCall {
142966	c.urlParams_.Set("pageToken", pageToken)
142967	return c
142968}
142969
142970// ReturnPartialSuccess sets the optional parameter
142971// "returnPartialSuccess": Opt-in for partial success behavior which
142972// provides partial results in case of failure. The default value is
142973// false.
142974func (c *RegionTargetHttpsProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionTargetHttpsProxiesListCall {
142975	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
142976	return c
142977}
142978
142979// Fields allows partial responses to be retrieved. See
142980// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142981// for more information.
142982func (c *RegionTargetHttpsProxiesListCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesListCall {
142983	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142984	return c
142985}
142986
142987// IfNoneMatch sets the optional parameter which makes the operation
142988// fail if the object's ETag matches the given value. This is useful for
142989// getting updates only after the object has changed since the last
142990// request. Use googleapi.IsNotModified to check whether the response
142991// error from Do is the result of In-None-Match.
142992func (c *RegionTargetHttpsProxiesListCall) IfNoneMatch(entityTag string) *RegionTargetHttpsProxiesListCall {
142993	c.ifNoneMatch_ = entityTag
142994	return c
142995}
142996
142997// Context sets the context to be used in this call's Do method. Any
142998// pending HTTP request will be aborted if the provided context is
142999// canceled.
143000func (c *RegionTargetHttpsProxiesListCall) Context(ctx context.Context) *RegionTargetHttpsProxiesListCall {
143001	c.ctx_ = ctx
143002	return c
143003}
143004
143005// Header returns an http.Header that can be modified by the caller to
143006// add HTTP headers to the request.
143007func (c *RegionTargetHttpsProxiesListCall) Header() http.Header {
143008	if c.header_ == nil {
143009		c.header_ = make(http.Header)
143010	}
143011	return c.header_
143012}
143013
143014func (c *RegionTargetHttpsProxiesListCall) doRequest(alt string) (*http.Response, error) {
143015	reqHeaders := make(http.Header)
143016	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
143017	for k, v := range c.header_ {
143018		reqHeaders[k] = v
143019	}
143020	reqHeaders.Set("User-Agent", c.s.userAgent())
143021	if c.ifNoneMatch_ != "" {
143022		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
143023	}
143024	var body io.Reader = nil
143025	c.urlParams_.Set("alt", alt)
143026	c.urlParams_.Set("prettyPrint", "false")
143027	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpsProxies")
143028	urls += "?" + c.urlParams_.Encode()
143029	req, err := http.NewRequest("GET", urls, body)
143030	if err != nil {
143031		return nil, err
143032	}
143033	req.Header = reqHeaders
143034	googleapi.Expand(req.URL, map[string]string{
143035		"project": c.project,
143036		"region":  c.region,
143037	})
143038	return gensupport.SendRequest(c.ctx_, c.s.client, req)
143039}
143040
143041// Do executes the "compute.regionTargetHttpsProxies.list" call.
143042// Exactly one of *TargetHttpsProxyList or error will be non-nil. Any
143043// non-2xx status code is an error. Response headers are in either
143044// *TargetHttpsProxyList.ServerResponse.Header or (if a response was
143045// returned at all) in error.(*googleapi.Error).Header. Use
143046// googleapi.IsNotModified to check whether the returned error was
143047// because http.StatusNotModified was returned.
143048func (c *RegionTargetHttpsProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxyList, error) {
143049	gensupport.SetOptions(c.urlParams_, opts...)
143050	res, err := c.doRequest("json")
143051	if res != nil && res.StatusCode == http.StatusNotModified {
143052		if res.Body != nil {
143053			res.Body.Close()
143054		}
143055		return nil, &googleapi.Error{
143056			Code:   res.StatusCode,
143057			Header: res.Header,
143058		}
143059	}
143060	if err != nil {
143061		return nil, err
143062	}
143063	defer googleapi.CloseBody(res)
143064	if err := googleapi.CheckResponse(res); err != nil {
143065		return nil, err
143066	}
143067	ret := &TargetHttpsProxyList{
143068		ServerResponse: googleapi.ServerResponse{
143069			Header:         res.Header,
143070			HTTPStatusCode: res.StatusCode,
143071		},
143072	}
143073	target := &ret
143074	if err := gensupport.DecodeResponse(target, res); err != nil {
143075		return nil, err
143076	}
143077	return ret, nil
143078	// {
143079	//   "description": "Retrieves the list of TargetHttpsProxy resources available to the specified project in the specified region.",
143080	//   "httpMethod": "GET",
143081	//   "id": "compute.regionTargetHttpsProxies.list",
143082	//   "parameterOrder": [
143083	//     "project",
143084	//     "region"
143085	//   ],
143086	//   "parameters": {
143087	//     "filter": {
143088	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
143089	//       "location": "query",
143090	//       "type": "string"
143091	//     },
143092	//     "maxResults": {
143093	//       "default": "500",
143094	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
143095	//       "format": "uint32",
143096	//       "location": "query",
143097	//       "minimum": "0",
143098	//       "type": "integer"
143099	//     },
143100	//     "orderBy": {
143101	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
143102	//       "location": "query",
143103	//       "type": "string"
143104	//     },
143105	//     "pageToken": {
143106	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
143107	//       "location": "query",
143108	//       "type": "string"
143109	//     },
143110	//     "project": {
143111	//       "description": "Project ID for this request.",
143112	//       "location": "path",
143113	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
143114	//       "required": true,
143115	//       "type": "string"
143116	//     },
143117	//     "region": {
143118	//       "description": "Name of the region scoping this request.",
143119	//       "location": "path",
143120	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
143121	//       "required": true,
143122	//       "type": "string"
143123	//     },
143124	//     "returnPartialSuccess": {
143125	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
143126	//       "location": "query",
143127	//       "type": "boolean"
143128	//     }
143129	//   },
143130	//   "path": "projects/{project}/regions/{region}/targetHttpsProxies",
143131	//   "response": {
143132	//     "$ref": "TargetHttpsProxyList"
143133	//   },
143134	//   "scopes": [
143135	//     "https://www.googleapis.com/auth/cloud-platform",
143136	//     "https://www.googleapis.com/auth/compute",
143137	//     "https://www.googleapis.com/auth/compute.readonly"
143138	//   ]
143139	// }
143140
143141}
143142
143143// Pages invokes f for each page of results.
143144// A non-nil error returned from f will halt the iteration.
143145// The provided context supersedes any context provided to the Context method.
143146func (c *RegionTargetHttpsProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpsProxyList) error) error {
143147	c.ctx_ = ctx
143148	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
143149	for {
143150		x, err := c.Do()
143151		if err != nil {
143152			return err
143153		}
143154		if err := f(x); err != nil {
143155			return err
143156		}
143157		if x.NextPageToken == "" {
143158			return nil
143159		}
143160		c.PageToken(x.NextPageToken)
143161	}
143162}
143163
143164// method id "compute.regionTargetHttpsProxies.setSslCertificates":
143165
143166type RegionTargetHttpsProxiesSetSslCertificatesCall struct {
143167	s                                                 *Service
143168	project                                           string
143169	region                                            string
143170	targetHttpsProxy                                  string
143171	regiontargethttpsproxiessetsslcertificatesrequest *RegionTargetHttpsProxiesSetSslCertificatesRequest
143172	urlParams_                                        gensupport.URLParams
143173	ctx_                                              context.Context
143174	header_                                           http.Header
143175}
143176
143177// SetSslCertificates: Replaces SslCertificates for TargetHttpsProxy.
143178func (r *RegionTargetHttpsProxiesService) SetSslCertificates(project string, region string, targetHttpsProxy string, regiontargethttpsproxiessetsslcertificatesrequest *RegionTargetHttpsProxiesSetSslCertificatesRequest) *RegionTargetHttpsProxiesSetSslCertificatesCall {
143179	c := &RegionTargetHttpsProxiesSetSslCertificatesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
143180	c.project = project
143181	c.region = region
143182	c.targetHttpsProxy = targetHttpsProxy
143183	c.regiontargethttpsproxiessetsslcertificatesrequest = regiontargethttpsproxiessetsslcertificatesrequest
143184	return c
143185}
143186
143187// RequestId sets the optional parameter "requestId": An optional
143188// request ID to identify requests. Specify a unique request ID so that
143189// if you must retry your request, the server will know to ignore the
143190// request if it has already been completed.
143191//
143192// For example, consider a situation where you make an initial request
143193// and the request times out. If you make the request again with the
143194// same request ID, the server can check if original operation with the
143195// same request ID was received, and if so, will ignore the second
143196// request. This prevents clients from accidentally creating duplicate
143197// commitments.
143198//
143199// The request ID must be a valid UUID with the exception that zero UUID
143200// is not supported (00000000-0000-0000-0000-000000000000).
143201func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) RequestId(requestId string) *RegionTargetHttpsProxiesSetSslCertificatesCall {
143202	c.urlParams_.Set("requestId", requestId)
143203	return c
143204}
143205
143206// Fields allows partial responses to be retrieved. See
143207// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
143208// for more information.
143209func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesSetSslCertificatesCall {
143210	c.urlParams_.Set("fields", googleapi.CombineFields(s))
143211	return c
143212}
143213
143214// Context sets the context to be used in this call's Do method. Any
143215// pending HTTP request will be aborted if the provided context is
143216// canceled.
143217func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) Context(ctx context.Context) *RegionTargetHttpsProxiesSetSslCertificatesCall {
143218	c.ctx_ = ctx
143219	return c
143220}
143221
143222// Header returns an http.Header that can be modified by the caller to
143223// add HTTP headers to the request.
143224func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) Header() http.Header {
143225	if c.header_ == nil {
143226		c.header_ = make(http.Header)
143227	}
143228	return c.header_
143229}
143230
143231func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) doRequest(alt string) (*http.Response, error) {
143232	reqHeaders := make(http.Header)
143233	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
143234	for k, v := range c.header_ {
143235		reqHeaders[k] = v
143236	}
143237	reqHeaders.Set("User-Agent", c.s.userAgent())
143238	var body io.Reader = nil
143239	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regiontargethttpsproxiessetsslcertificatesrequest)
143240	if err != nil {
143241		return nil, err
143242	}
143243	reqHeaders.Set("Content-Type", "application/json")
143244	c.urlParams_.Set("alt", alt)
143245	c.urlParams_.Set("prettyPrint", "false")
143246	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates")
143247	urls += "?" + c.urlParams_.Encode()
143248	req, err := http.NewRequest("POST", urls, body)
143249	if err != nil {
143250		return nil, err
143251	}
143252	req.Header = reqHeaders
143253	googleapi.Expand(req.URL, map[string]string{
143254		"project":          c.project,
143255		"region":           c.region,
143256		"targetHttpsProxy": c.targetHttpsProxy,
143257	})
143258	return gensupport.SendRequest(c.ctx_, c.s.client, req)
143259}
143260
143261// Do executes the "compute.regionTargetHttpsProxies.setSslCertificates" call.
143262// Exactly one of *Operation or error will be non-nil. Any non-2xx
143263// status code is an error. Response headers are in either
143264// *Operation.ServerResponse.Header or (if a response was returned at
143265// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
143266// to check whether the returned error was because
143267// http.StatusNotModified was returned.
143268func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
143269	gensupport.SetOptions(c.urlParams_, opts...)
143270	res, err := c.doRequest("json")
143271	if res != nil && res.StatusCode == http.StatusNotModified {
143272		if res.Body != nil {
143273			res.Body.Close()
143274		}
143275		return nil, &googleapi.Error{
143276			Code:   res.StatusCode,
143277			Header: res.Header,
143278		}
143279	}
143280	if err != nil {
143281		return nil, err
143282	}
143283	defer googleapi.CloseBody(res)
143284	if err := googleapi.CheckResponse(res); err != nil {
143285		return nil, err
143286	}
143287	ret := &Operation{
143288		ServerResponse: googleapi.ServerResponse{
143289			Header:         res.Header,
143290			HTTPStatusCode: res.StatusCode,
143291		},
143292	}
143293	target := &ret
143294	if err := gensupport.DecodeResponse(target, res); err != nil {
143295		return nil, err
143296	}
143297	return ret, nil
143298	// {
143299	//   "description": "Replaces SslCertificates for TargetHttpsProxy.",
143300	//   "httpMethod": "POST",
143301	//   "id": "compute.regionTargetHttpsProxies.setSslCertificates",
143302	//   "parameterOrder": [
143303	//     "project",
143304	//     "region",
143305	//     "targetHttpsProxy"
143306	//   ],
143307	//   "parameters": {
143308	//     "project": {
143309	//       "description": "Project ID for this request.",
143310	//       "location": "path",
143311	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
143312	//       "required": true,
143313	//       "type": "string"
143314	//     },
143315	//     "region": {
143316	//       "description": "Name of the region scoping this request.",
143317	//       "location": "path",
143318	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
143319	//       "required": true,
143320	//       "type": "string"
143321	//     },
143322	//     "requestId": {
143323	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
143324	//       "location": "query",
143325	//       "type": "string"
143326	//     },
143327	//     "targetHttpsProxy": {
143328	//       "description": "Name of the TargetHttpsProxy resource to set an SslCertificates resource for.",
143329	//       "location": "path",
143330	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
143331	//       "required": true,
143332	//       "type": "string"
143333	//     }
143334	//   },
143335	//   "path": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates",
143336	//   "request": {
143337	//     "$ref": "RegionTargetHttpsProxiesSetSslCertificatesRequest"
143338	//   },
143339	//   "response": {
143340	//     "$ref": "Operation"
143341	//   },
143342	//   "scopes": [
143343	//     "https://www.googleapis.com/auth/cloud-platform",
143344	//     "https://www.googleapis.com/auth/compute"
143345	//   ]
143346	// }
143347
143348}
143349
143350// method id "compute.regionTargetHttpsProxies.setUrlMap":
143351
143352type RegionTargetHttpsProxiesSetUrlMapCall struct {
143353	s                *Service
143354	project          string
143355	region           string
143356	targetHttpsProxy string
143357	urlmapreference  *UrlMapReference
143358	urlParams_       gensupport.URLParams
143359	ctx_             context.Context
143360	header_          http.Header
143361}
143362
143363// SetUrlMap: Changes the URL map for TargetHttpsProxy.
143364func (r *RegionTargetHttpsProxiesService) SetUrlMap(project string, region string, targetHttpsProxy string, urlmapreference *UrlMapReference) *RegionTargetHttpsProxiesSetUrlMapCall {
143365	c := &RegionTargetHttpsProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)}
143366	c.project = project
143367	c.region = region
143368	c.targetHttpsProxy = targetHttpsProxy
143369	c.urlmapreference = urlmapreference
143370	return c
143371}
143372
143373// RequestId sets the optional parameter "requestId": An optional
143374// request ID to identify requests. Specify a unique request ID so that
143375// if you must retry your request, the server will know to ignore the
143376// request if it has already been completed.
143377//
143378// For example, consider a situation where you make an initial request
143379// and the request times out. If you make the request again with the
143380// same request ID, the server can check if original operation with the
143381// same request ID was received, and if so, will ignore the second
143382// request. This prevents clients from accidentally creating duplicate
143383// commitments.
143384//
143385// The request ID must be a valid UUID with the exception that zero UUID
143386// is not supported (00000000-0000-0000-0000-000000000000).
143387func (c *RegionTargetHttpsProxiesSetUrlMapCall) RequestId(requestId string) *RegionTargetHttpsProxiesSetUrlMapCall {
143388	c.urlParams_.Set("requestId", requestId)
143389	return c
143390}
143391
143392// Fields allows partial responses to be retrieved. See
143393// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
143394// for more information.
143395func (c *RegionTargetHttpsProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesSetUrlMapCall {
143396	c.urlParams_.Set("fields", googleapi.CombineFields(s))
143397	return c
143398}
143399
143400// Context sets the context to be used in this call's Do method. Any
143401// pending HTTP request will be aborted if the provided context is
143402// canceled.
143403func (c *RegionTargetHttpsProxiesSetUrlMapCall) Context(ctx context.Context) *RegionTargetHttpsProxiesSetUrlMapCall {
143404	c.ctx_ = ctx
143405	return c
143406}
143407
143408// Header returns an http.Header that can be modified by the caller to
143409// add HTTP headers to the request.
143410func (c *RegionTargetHttpsProxiesSetUrlMapCall) Header() http.Header {
143411	if c.header_ == nil {
143412		c.header_ = make(http.Header)
143413	}
143414	return c.header_
143415}
143416
143417func (c *RegionTargetHttpsProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, error) {
143418	reqHeaders := make(http.Header)
143419	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
143420	for k, v := range c.header_ {
143421		reqHeaders[k] = v
143422	}
143423	reqHeaders.Set("User-Agent", c.s.userAgent())
143424	var body io.Reader = nil
143425	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapreference)
143426	if err != nil {
143427		return nil, err
143428	}
143429	reqHeaders.Set("Content-Type", "application/json")
143430	c.urlParams_.Set("alt", alt)
143431	c.urlParams_.Set("prettyPrint", "false")
143432	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap")
143433	urls += "?" + c.urlParams_.Encode()
143434	req, err := http.NewRequest("POST", urls, body)
143435	if err != nil {
143436		return nil, err
143437	}
143438	req.Header = reqHeaders
143439	googleapi.Expand(req.URL, map[string]string{
143440		"project":          c.project,
143441		"region":           c.region,
143442		"targetHttpsProxy": c.targetHttpsProxy,
143443	})
143444	return gensupport.SendRequest(c.ctx_, c.s.client, req)
143445}
143446
143447// Do executes the "compute.regionTargetHttpsProxies.setUrlMap" call.
143448// Exactly one of *Operation or error will be non-nil. Any non-2xx
143449// status code is an error. Response headers are in either
143450// *Operation.ServerResponse.Header or (if a response was returned at
143451// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
143452// to check whether the returned error was because
143453// http.StatusNotModified was returned.
143454func (c *RegionTargetHttpsProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
143455	gensupport.SetOptions(c.urlParams_, opts...)
143456	res, err := c.doRequest("json")
143457	if res != nil && res.StatusCode == http.StatusNotModified {
143458		if res.Body != nil {
143459			res.Body.Close()
143460		}
143461		return nil, &googleapi.Error{
143462			Code:   res.StatusCode,
143463			Header: res.Header,
143464		}
143465	}
143466	if err != nil {
143467		return nil, err
143468	}
143469	defer googleapi.CloseBody(res)
143470	if err := googleapi.CheckResponse(res); err != nil {
143471		return nil, err
143472	}
143473	ret := &Operation{
143474		ServerResponse: googleapi.ServerResponse{
143475			Header:         res.Header,
143476			HTTPStatusCode: res.StatusCode,
143477		},
143478	}
143479	target := &ret
143480	if err := gensupport.DecodeResponse(target, res); err != nil {
143481		return nil, err
143482	}
143483	return ret, nil
143484	// {
143485	//   "description": "Changes the URL map for TargetHttpsProxy.",
143486	//   "httpMethod": "POST",
143487	//   "id": "compute.regionTargetHttpsProxies.setUrlMap",
143488	//   "parameterOrder": [
143489	//     "project",
143490	//     "region",
143491	//     "targetHttpsProxy"
143492	//   ],
143493	//   "parameters": {
143494	//     "project": {
143495	//       "description": "Project ID for this request.",
143496	//       "location": "path",
143497	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
143498	//       "required": true,
143499	//       "type": "string"
143500	//     },
143501	//     "region": {
143502	//       "description": "Name of the region scoping this request.",
143503	//       "location": "path",
143504	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
143505	//       "required": true,
143506	//       "type": "string"
143507	//     },
143508	//     "requestId": {
143509	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
143510	//       "location": "query",
143511	//       "type": "string"
143512	//     },
143513	//     "targetHttpsProxy": {
143514	//       "description": "Name of the TargetHttpsProxy to set a URL map for.",
143515	//       "location": "path",
143516	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
143517	//       "required": true,
143518	//       "type": "string"
143519	//     }
143520	//   },
143521	//   "path": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap",
143522	//   "request": {
143523	//     "$ref": "UrlMapReference"
143524	//   },
143525	//   "response": {
143526	//     "$ref": "Operation"
143527	//   },
143528	//   "scopes": [
143529	//     "https://www.googleapis.com/auth/cloud-platform",
143530	//     "https://www.googleapis.com/auth/compute"
143531	//   ]
143532	// }
143533
143534}
143535
143536// method id "compute.regionTargetHttpsProxies.testIamPermissions":
143537
143538type RegionTargetHttpsProxiesTestIamPermissionsCall struct {
143539	s                      *Service
143540	project                string
143541	region                 string
143542	resource               string
143543	testpermissionsrequest *TestPermissionsRequest
143544	urlParams_             gensupport.URLParams
143545	ctx_                   context.Context
143546	header_                http.Header
143547}
143548
143549// TestIamPermissions: Returns permissions that a caller has on the
143550// specified resource.
143551func (r *RegionTargetHttpsProxiesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionTargetHttpsProxiesTestIamPermissionsCall {
143552	c := &RegionTargetHttpsProxiesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
143553	c.project = project
143554	c.region = region
143555	c.resource = resource
143556	c.testpermissionsrequest = testpermissionsrequest
143557	return c
143558}
143559
143560// Fields allows partial responses to be retrieved. See
143561// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
143562// for more information.
143563func (c *RegionTargetHttpsProxiesTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesTestIamPermissionsCall {
143564	c.urlParams_.Set("fields", googleapi.CombineFields(s))
143565	return c
143566}
143567
143568// Context sets the context to be used in this call's Do method. Any
143569// pending HTTP request will be aborted if the provided context is
143570// canceled.
143571func (c *RegionTargetHttpsProxiesTestIamPermissionsCall) Context(ctx context.Context) *RegionTargetHttpsProxiesTestIamPermissionsCall {
143572	c.ctx_ = ctx
143573	return c
143574}
143575
143576// Header returns an http.Header that can be modified by the caller to
143577// add HTTP headers to the request.
143578func (c *RegionTargetHttpsProxiesTestIamPermissionsCall) Header() http.Header {
143579	if c.header_ == nil {
143580		c.header_ = make(http.Header)
143581	}
143582	return c.header_
143583}
143584
143585func (c *RegionTargetHttpsProxiesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
143586	reqHeaders := make(http.Header)
143587	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
143588	for k, v := range c.header_ {
143589		reqHeaders[k] = v
143590	}
143591	reqHeaders.Set("User-Agent", c.s.userAgent())
143592	var body io.Reader = nil
143593	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
143594	if err != nil {
143595		return nil, err
143596	}
143597	reqHeaders.Set("Content-Type", "application/json")
143598	c.urlParams_.Set("alt", alt)
143599	c.urlParams_.Set("prettyPrint", "false")
143600	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpsProxies/{resource}/testIamPermissions")
143601	urls += "?" + c.urlParams_.Encode()
143602	req, err := http.NewRequest("POST", urls, body)
143603	if err != nil {
143604		return nil, err
143605	}
143606	req.Header = reqHeaders
143607	googleapi.Expand(req.URL, map[string]string{
143608		"project":  c.project,
143609		"region":   c.region,
143610		"resource": c.resource,
143611	})
143612	return gensupport.SendRequest(c.ctx_, c.s.client, req)
143613}
143614
143615// Do executes the "compute.regionTargetHttpsProxies.testIamPermissions" call.
143616// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
143617// non-2xx status code is an error. Response headers are in either
143618// *TestPermissionsResponse.ServerResponse.Header or (if a response was
143619// returned at all) in error.(*googleapi.Error).Header. Use
143620// googleapi.IsNotModified to check whether the returned error was
143621// because http.StatusNotModified was returned.
143622func (c *RegionTargetHttpsProxiesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
143623	gensupport.SetOptions(c.urlParams_, opts...)
143624	res, err := c.doRequest("json")
143625	if res != nil && res.StatusCode == http.StatusNotModified {
143626		if res.Body != nil {
143627			res.Body.Close()
143628		}
143629		return nil, &googleapi.Error{
143630			Code:   res.StatusCode,
143631			Header: res.Header,
143632		}
143633	}
143634	if err != nil {
143635		return nil, err
143636	}
143637	defer googleapi.CloseBody(res)
143638	if err := googleapi.CheckResponse(res); err != nil {
143639		return nil, err
143640	}
143641	ret := &TestPermissionsResponse{
143642		ServerResponse: googleapi.ServerResponse{
143643			Header:         res.Header,
143644			HTTPStatusCode: res.StatusCode,
143645		},
143646	}
143647	target := &ret
143648	if err := gensupport.DecodeResponse(target, res); err != nil {
143649		return nil, err
143650	}
143651	return ret, nil
143652	// {
143653	//   "description": "Returns permissions that a caller has on the specified resource.",
143654	//   "httpMethod": "POST",
143655	//   "id": "compute.regionTargetHttpsProxies.testIamPermissions",
143656	//   "parameterOrder": [
143657	//     "project",
143658	//     "region",
143659	//     "resource"
143660	//   ],
143661	//   "parameters": {
143662	//     "project": {
143663	//       "description": "Project ID for this request.",
143664	//       "location": "path",
143665	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
143666	//       "required": true,
143667	//       "type": "string"
143668	//     },
143669	//     "region": {
143670	//       "description": "The name of the region for this request.",
143671	//       "location": "path",
143672	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
143673	//       "required": true,
143674	//       "type": "string"
143675	//     },
143676	//     "resource": {
143677	//       "description": "Name or id of the resource for this request.",
143678	//       "location": "path",
143679	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
143680	//       "required": true,
143681	//       "type": "string"
143682	//     }
143683	//   },
143684	//   "path": "projects/{project}/regions/{region}/targetHttpsProxies/{resource}/testIamPermissions",
143685	//   "request": {
143686	//     "$ref": "TestPermissionsRequest"
143687	//   },
143688	//   "response": {
143689	//     "$ref": "TestPermissionsResponse"
143690	//   },
143691	//   "scopes": [
143692	//     "https://www.googleapis.com/auth/cloud-platform",
143693	//     "https://www.googleapis.com/auth/compute",
143694	//     "https://www.googleapis.com/auth/compute.readonly"
143695	//   ]
143696	// }
143697
143698}
143699
143700// method id "compute.regionUrlMaps.delete":
143701
143702type RegionUrlMapsDeleteCall struct {
143703	s          *Service
143704	project    string
143705	region     string
143706	urlMap     string
143707	urlParams_ gensupport.URLParams
143708	ctx_       context.Context
143709	header_    http.Header
143710}
143711
143712// Delete: Deletes the specified UrlMap resource.
143713func (r *RegionUrlMapsService) Delete(project string, region string, urlMap string) *RegionUrlMapsDeleteCall {
143714	c := &RegionUrlMapsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
143715	c.project = project
143716	c.region = region
143717	c.urlMap = urlMap
143718	return c
143719}
143720
143721// RequestId sets the optional parameter "requestId": begin_interface:
143722// MixerMutationRequestBuilder Request ID to support idempotency.
143723func (c *RegionUrlMapsDeleteCall) RequestId(requestId string) *RegionUrlMapsDeleteCall {
143724	c.urlParams_.Set("requestId", requestId)
143725	return c
143726}
143727
143728// Fields allows partial responses to be retrieved. See
143729// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
143730// for more information.
143731func (c *RegionUrlMapsDeleteCall) Fields(s ...googleapi.Field) *RegionUrlMapsDeleteCall {
143732	c.urlParams_.Set("fields", googleapi.CombineFields(s))
143733	return c
143734}
143735
143736// Context sets the context to be used in this call's Do method. Any
143737// pending HTTP request will be aborted if the provided context is
143738// canceled.
143739func (c *RegionUrlMapsDeleteCall) Context(ctx context.Context) *RegionUrlMapsDeleteCall {
143740	c.ctx_ = ctx
143741	return c
143742}
143743
143744// Header returns an http.Header that can be modified by the caller to
143745// add HTTP headers to the request.
143746func (c *RegionUrlMapsDeleteCall) Header() http.Header {
143747	if c.header_ == nil {
143748		c.header_ = make(http.Header)
143749	}
143750	return c.header_
143751}
143752
143753func (c *RegionUrlMapsDeleteCall) doRequest(alt string) (*http.Response, error) {
143754	reqHeaders := make(http.Header)
143755	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
143756	for k, v := range c.header_ {
143757		reqHeaders[k] = v
143758	}
143759	reqHeaders.Set("User-Agent", c.s.userAgent())
143760	var body io.Reader = nil
143761	c.urlParams_.Set("alt", alt)
143762	c.urlParams_.Set("prettyPrint", "false")
143763	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/urlMaps/{urlMap}")
143764	urls += "?" + c.urlParams_.Encode()
143765	req, err := http.NewRequest("DELETE", urls, body)
143766	if err != nil {
143767		return nil, err
143768	}
143769	req.Header = reqHeaders
143770	googleapi.Expand(req.URL, map[string]string{
143771		"project": c.project,
143772		"region":  c.region,
143773		"urlMap":  c.urlMap,
143774	})
143775	return gensupport.SendRequest(c.ctx_, c.s.client, req)
143776}
143777
143778// Do executes the "compute.regionUrlMaps.delete" call.
143779// Exactly one of *Operation or error will be non-nil. Any non-2xx
143780// status code is an error. Response headers are in either
143781// *Operation.ServerResponse.Header or (if a response was returned at
143782// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
143783// to check whether the returned error was because
143784// http.StatusNotModified was returned.
143785func (c *RegionUrlMapsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
143786	gensupport.SetOptions(c.urlParams_, opts...)
143787	res, err := c.doRequest("json")
143788	if res != nil && res.StatusCode == http.StatusNotModified {
143789		if res.Body != nil {
143790			res.Body.Close()
143791		}
143792		return nil, &googleapi.Error{
143793			Code:   res.StatusCode,
143794			Header: res.Header,
143795		}
143796	}
143797	if err != nil {
143798		return nil, err
143799	}
143800	defer googleapi.CloseBody(res)
143801	if err := googleapi.CheckResponse(res); err != nil {
143802		return nil, err
143803	}
143804	ret := &Operation{
143805		ServerResponse: googleapi.ServerResponse{
143806			Header:         res.Header,
143807			HTTPStatusCode: res.StatusCode,
143808		},
143809	}
143810	target := &ret
143811	if err := gensupport.DecodeResponse(target, res); err != nil {
143812		return nil, err
143813	}
143814	return ret, nil
143815	// {
143816	//   "description": "Deletes the specified UrlMap resource.",
143817	//   "httpMethod": "DELETE",
143818	//   "id": "compute.regionUrlMaps.delete",
143819	//   "parameterOrder": [
143820	//     "project",
143821	//     "region",
143822	//     "urlMap"
143823	//   ],
143824	//   "parameters": {
143825	//     "project": {
143826	//       "description": "Project ID for this request.",
143827	//       "location": "path",
143828	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
143829	//       "required": true,
143830	//       "type": "string"
143831	//     },
143832	//     "region": {
143833	//       "description": "Name of the region scoping this request.",
143834	//       "location": "path",
143835	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
143836	//       "required": true,
143837	//       "type": "string"
143838	//     },
143839	//     "requestId": {
143840	//       "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
143841	//       "location": "query",
143842	//       "type": "string"
143843	//     },
143844	//     "urlMap": {
143845	//       "description": "Name of the UrlMap resource to delete.",
143846	//       "location": "path",
143847	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
143848	//       "required": true,
143849	//       "type": "string"
143850	//     }
143851	//   },
143852	//   "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}",
143853	//   "response": {
143854	//     "$ref": "Operation"
143855	//   },
143856	//   "scopes": [
143857	//     "https://www.googleapis.com/auth/cloud-platform",
143858	//     "https://www.googleapis.com/auth/compute"
143859	//   ]
143860	// }
143861
143862}
143863
143864// method id "compute.regionUrlMaps.get":
143865
143866type RegionUrlMapsGetCall struct {
143867	s            *Service
143868	project      string
143869	region       string
143870	urlMap       string
143871	urlParams_   gensupport.URLParams
143872	ifNoneMatch_ string
143873	ctx_         context.Context
143874	header_      http.Header
143875}
143876
143877// Get: Returns the specified UrlMap resource. Gets a list of available
143878// URL maps by making a list() request.
143879func (r *RegionUrlMapsService) Get(project string, region string, urlMap string) *RegionUrlMapsGetCall {
143880	c := &RegionUrlMapsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
143881	c.project = project
143882	c.region = region
143883	c.urlMap = urlMap
143884	return c
143885}
143886
143887// Fields allows partial responses to be retrieved. See
143888// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
143889// for more information.
143890func (c *RegionUrlMapsGetCall) Fields(s ...googleapi.Field) *RegionUrlMapsGetCall {
143891	c.urlParams_.Set("fields", googleapi.CombineFields(s))
143892	return c
143893}
143894
143895// IfNoneMatch sets the optional parameter which makes the operation
143896// fail if the object's ETag matches the given value. This is useful for
143897// getting updates only after the object has changed since the last
143898// request. Use googleapi.IsNotModified to check whether the response
143899// error from Do is the result of In-None-Match.
143900func (c *RegionUrlMapsGetCall) IfNoneMatch(entityTag string) *RegionUrlMapsGetCall {
143901	c.ifNoneMatch_ = entityTag
143902	return c
143903}
143904
143905// Context sets the context to be used in this call's Do method. Any
143906// pending HTTP request will be aborted if the provided context is
143907// canceled.
143908func (c *RegionUrlMapsGetCall) Context(ctx context.Context) *RegionUrlMapsGetCall {
143909	c.ctx_ = ctx
143910	return c
143911}
143912
143913// Header returns an http.Header that can be modified by the caller to
143914// add HTTP headers to the request.
143915func (c *RegionUrlMapsGetCall) Header() http.Header {
143916	if c.header_ == nil {
143917		c.header_ = make(http.Header)
143918	}
143919	return c.header_
143920}
143921
143922func (c *RegionUrlMapsGetCall) doRequest(alt string) (*http.Response, error) {
143923	reqHeaders := make(http.Header)
143924	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
143925	for k, v := range c.header_ {
143926		reqHeaders[k] = v
143927	}
143928	reqHeaders.Set("User-Agent", c.s.userAgent())
143929	if c.ifNoneMatch_ != "" {
143930		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
143931	}
143932	var body io.Reader = nil
143933	c.urlParams_.Set("alt", alt)
143934	c.urlParams_.Set("prettyPrint", "false")
143935	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/urlMaps/{urlMap}")
143936	urls += "?" + c.urlParams_.Encode()
143937	req, err := http.NewRequest("GET", urls, body)
143938	if err != nil {
143939		return nil, err
143940	}
143941	req.Header = reqHeaders
143942	googleapi.Expand(req.URL, map[string]string{
143943		"project": c.project,
143944		"region":  c.region,
143945		"urlMap":  c.urlMap,
143946	})
143947	return gensupport.SendRequest(c.ctx_, c.s.client, req)
143948}
143949
143950// Do executes the "compute.regionUrlMaps.get" call.
143951// Exactly one of *UrlMap or error will be non-nil. Any non-2xx status
143952// code is an error. Response headers are in either
143953// *UrlMap.ServerResponse.Header or (if a response was returned at all)
143954// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
143955// check whether the returned error was because http.StatusNotModified
143956// was returned.
143957func (c *RegionUrlMapsGetCall) Do(opts ...googleapi.CallOption) (*UrlMap, error) {
143958	gensupport.SetOptions(c.urlParams_, opts...)
143959	res, err := c.doRequest("json")
143960	if res != nil && res.StatusCode == http.StatusNotModified {
143961		if res.Body != nil {
143962			res.Body.Close()
143963		}
143964		return nil, &googleapi.Error{
143965			Code:   res.StatusCode,
143966			Header: res.Header,
143967		}
143968	}
143969	if err != nil {
143970		return nil, err
143971	}
143972	defer googleapi.CloseBody(res)
143973	if err := googleapi.CheckResponse(res); err != nil {
143974		return nil, err
143975	}
143976	ret := &UrlMap{
143977		ServerResponse: googleapi.ServerResponse{
143978			Header:         res.Header,
143979			HTTPStatusCode: res.StatusCode,
143980		},
143981	}
143982	target := &ret
143983	if err := gensupport.DecodeResponse(target, res); err != nil {
143984		return nil, err
143985	}
143986	return ret, nil
143987	// {
143988	//   "description": "Returns the specified UrlMap resource. Gets a list of available URL maps by making a list() request.",
143989	//   "httpMethod": "GET",
143990	//   "id": "compute.regionUrlMaps.get",
143991	//   "parameterOrder": [
143992	//     "project",
143993	//     "region",
143994	//     "urlMap"
143995	//   ],
143996	//   "parameters": {
143997	//     "project": {
143998	//       "description": "Project ID for this request.",
143999	//       "location": "path",
144000	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
144001	//       "required": true,
144002	//       "type": "string"
144003	//     },
144004	//     "region": {
144005	//       "description": "Name of the region scoping this request.",
144006	//       "location": "path",
144007	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
144008	//       "required": true,
144009	//       "type": "string"
144010	//     },
144011	//     "urlMap": {
144012	//       "description": "Name of the UrlMap resource to return.",
144013	//       "location": "path",
144014	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
144015	//       "required": true,
144016	//       "type": "string"
144017	//     }
144018	//   },
144019	//   "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}",
144020	//   "response": {
144021	//     "$ref": "UrlMap"
144022	//   },
144023	//   "scopes": [
144024	//     "https://www.googleapis.com/auth/cloud-platform",
144025	//     "https://www.googleapis.com/auth/compute",
144026	//     "https://www.googleapis.com/auth/compute.readonly"
144027	//   ]
144028	// }
144029
144030}
144031
144032// method id "compute.regionUrlMaps.insert":
144033
144034type RegionUrlMapsInsertCall struct {
144035	s          *Service
144036	project    string
144037	region     string
144038	urlmap     *UrlMap
144039	urlParams_ gensupport.URLParams
144040	ctx_       context.Context
144041	header_    http.Header
144042}
144043
144044// Insert: Creates a UrlMap resource in the specified project using the
144045// data included in the request.
144046func (r *RegionUrlMapsService) Insert(project string, region string, urlmap *UrlMap) *RegionUrlMapsInsertCall {
144047	c := &RegionUrlMapsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
144048	c.project = project
144049	c.region = region
144050	c.urlmap = urlmap
144051	return c
144052}
144053
144054// RequestId sets the optional parameter "requestId": begin_interface:
144055// MixerMutationRequestBuilder Request ID to support idempotency.
144056func (c *RegionUrlMapsInsertCall) RequestId(requestId string) *RegionUrlMapsInsertCall {
144057	c.urlParams_.Set("requestId", requestId)
144058	return c
144059}
144060
144061// Fields allows partial responses to be retrieved. See
144062// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
144063// for more information.
144064func (c *RegionUrlMapsInsertCall) Fields(s ...googleapi.Field) *RegionUrlMapsInsertCall {
144065	c.urlParams_.Set("fields", googleapi.CombineFields(s))
144066	return c
144067}
144068
144069// Context sets the context to be used in this call's Do method. Any
144070// pending HTTP request will be aborted if the provided context is
144071// canceled.
144072func (c *RegionUrlMapsInsertCall) Context(ctx context.Context) *RegionUrlMapsInsertCall {
144073	c.ctx_ = ctx
144074	return c
144075}
144076
144077// Header returns an http.Header that can be modified by the caller to
144078// add HTTP headers to the request.
144079func (c *RegionUrlMapsInsertCall) Header() http.Header {
144080	if c.header_ == nil {
144081		c.header_ = make(http.Header)
144082	}
144083	return c.header_
144084}
144085
144086func (c *RegionUrlMapsInsertCall) doRequest(alt string) (*http.Response, error) {
144087	reqHeaders := make(http.Header)
144088	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
144089	for k, v := range c.header_ {
144090		reqHeaders[k] = v
144091	}
144092	reqHeaders.Set("User-Agent", c.s.userAgent())
144093	var body io.Reader = nil
144094	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
144095	if err != nil {
144096		return nil, err
144097	}
144098	reqHeaders.Set("Content-Type", "application/json")
144099	c.urlParams_.Set("alt", alt)
144100	c.urlParams_.Set("prettyPrint", "false")
144101	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/urlMaps")
144102	urls += "?" + c.urlParams_.Encode()
144103	req, err := http.NewRequest("POST", urls, body)
144104	if err != nil {
144105		return nil, err
144106	}
144107	req.Header = reqHeaders
144108	googleapi.Expand(req.URL, map[string]string{
144109		"project": c.project,
144110		"region":  c.region,
144111	})
144112	return gensupport.SendRequest(c.ctx_, c.s.client, req)
144113}
144114
144115// Do executes the "compute.regionUrlMaps.insert" call.
144116// Exactly one of *Operation or error will be non-nil. Any non-2xx
144117// status code is an error. Response headers are in either
144118// *Operation.ServerResponse.Header or (if a response was returned at
144119// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
144120// to check whether the returned error was because
144121// http.StatusNotModified was returned.
144122func (c *RegionUrlMapsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
144123	gensupport.SetOptions(c.urlParams_, opts...)
144124	res, err := c.doRequest("json")
144125	if res != nil && res.StatusCode == http.StatusNotModified {
144126		if res.Body != nil {
144127			res.Body.Close()
144128		}
144129		return nil, &googleapi.Error{
144130			Code:   res.StatusCode,
144131			Header: res.Header,
144132		}
144133	}
144134	if err != nil {
144135		return nil, err
144136	}
144137	defer googleapi.CloseBody(res)
144138	if err := googleapi.CheckResponse(res); err != nil {
144139		return nil, err
144140	}
144141	ret := &Operation{
144142		ServerResponse: googleapi.ServerResponse{
144143			Header:         res.Header,
144144			HTTPStatusCode: res.StatusCode,
144145		},
144146	}
144147	target := &ret
144148	if err := gensupport.DecodeResponse(target, res); err != nil {
144149		return nil, err
144150	}
144151	return ret, nil
144152	// {
144153	//   "description": "Creates a UrlMap resource in the specified project using the data included in the request.",
144154	//   "httpMethod": "POST",
144155	//   "id": "compute.regionUrlMaps.insert",
144156	//   "parameterOrder": [
144157	//     "project",
144158	//     "region"
144159	//   ],
144160	//   "parameters": {
144161	//     "project": {
144162	//       "description": "Project ID for this request.",
144163	//       "location": "path",
144164	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
144165	//       "required": true,
144166	//       "type": "string"
144167	//     },
144168	//     "region": {
144169	//       "description": "Name of the region scoping this request.",
144170	//       "location": "path",
144171	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
144172	//       "required": true,
144173	//       "type": "string"
144174	//     },
144175	//     "requestId": {
144176	//       "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
144177	//       "location": "query",
144178	//       "type": "string"
144179	//     }
144180	//   },
144181	//   "path": "projects/{project}/regions/{region}/urlMaps",
144182	//   "request": {
144183	//     "$ref": "UrlMap"
144184	//   },
144185	//   "response": {
144186	//     "$ref": "Operation"
144187	//   },
144188	//   "scopes": [
144189	//     "https://www.googleapis.com/auth/cloud-platform",
144190	//     "https://www.googleapis.com/auth/compute"
144191	//   ]
144192	// }
144193
144194}
144195
144196// method id "compute.regionUrlMaps.invalidateCache":
144197
144198type RegionUrlMapsInvalidateCacheCall struct {
144199	s                     *Service
144200	project               string
144201	region                string
144202	urlMap                string
144203	cacheinvalidationrule *CacheInvalidationRule
144204	urlParams_            gensupport.URLParams
144205	ctx_                  context.Context
144206	header_               http.Header
144207}
144208
144209// InvalidateCache: Initiates a cache invalidation operation,
144210// invalidating the specified path, scoped to the specified UrlMap.
144211//
144212// For more information, see Invalidating cached content
144213// (/cdn/docs/invalidating-cached-content).
144214func (r *RegionUrlMapsService) InvalidateCache(project string, region string, urlMap string, cacheinvalidationrule *CacheInvalidationRule) *RegionUrlMapsInvalidateCacheCall {
144215	c := &RegionUrlMapsInvalidateCacheCall{s: r.s, urlParams_: make(gensupport.URLParams)}
144216	c.project = project
144217	c.region = region
144218	c.urlMap = urlMap
144219	c.cacheinvalidationrule = cacheinvalidationrule
144220	return c
144221}
144222
144223// RequestId sets the optional parameter "requestId": begin_interface:
144224// MixerMutationRequestBuilder Request ID to support idempotency.
144225func (c *RegionUrlMapsInvalidateCacheCall) RequestId(requestId string) *RegionUrlMapsInvalidateCacheCall {
144226	c.urlParams_.Set("requestId", requestId)
144227	return c
144228}
144229
144230// Fields allows partial responses to be retrieved. See
144231// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
144232// for more information.
144233func (c *RegionUrlMapsInvalidateCacheCall) Fields(s ...googleapi.Field) *RegionUrlMapsInvalidateCacheCall {
144234	c.urlParams_.Set("fields", googleapi.CombineFields(s))
144235	return c
144236}
144237
144238// Context sets the context to be used in this call's Do method. Any
144239// pending HTTP request will be aborted if the provided context is
144240// canceled.
144241func (c *RegionUrlMapsInvalidateCacheCall) Context(ctx context.Context) *RegionUrlMapsInvalidateCacheCall {
144242	c.ctx_ = ctx
144243	return c
144244}
144245
144246// Header returns an http.Header that can be modified by the caller to
144247// add HTTP headers to the request.
144248func (c *RegionUrlMapsInvalidateCacheCall) Header() http.Header {
144249	if c.header_ == nil {
144250		c.header_ = make(http.Header)
144251	}
144252	return c.header_
144253}
144254
144255func (c *RegionUrlMapsInvalidateCacheCall) doRequest(alt string) (*http.Response, error) {
144256	reqHeaders := make(http.Header)
144257	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
144258	for k, v := range c.header_ {
144259		reqHeaders[k] = v
144260	}
144261	reqHeaders.Set("User-Agent", c.s.userAgent())
144262	var body io.Reader = nil
144263	body, err := googleapi.WithoutDataWrapper.JSONReader(c.cacheinvalidationrule)
144264	if err != nil {
144265		return nil, err
144266	}
144267	reqHeaders.Set("Content-Type", "application/json")
144268	c.urlParams_.Set("alt", alt)
144269	c.urlParams_.Set("prettyPrint", "false")
144270	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/urlMaps/{urlMap}/invalidateCache")
144271	urls += "?" + c.urlParams_.Encode()
144272	req, err := http.NewRequest("POST", urls, body)
144273	if err != nil {
144274		return nil, err
144275	}
144276	req.Header = reqHeaders
144277	googleapi.Expand(req.URL, map[string]string{
144278		"project": c.project,
144279		"region":  c.region,
144280		"urlMap":  c.urlMap,
144281	})
144282	return gensupport.SendRequest(c.ctx_, c.s.client, req)
144283}
144284
144285// Do executes the "compute.regionUrlMaps.invalidateCache" call.
144286// Exactly one of *Operation or error will be non-nil. Any non-2xx
144287// status code is an error. Response headers are in either
144288// *Operation.ServerResponse.Header or (if a response was returned at
144289// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
144290// to check whether the returned error was because
144291// http.StatusNotModified was returned.
144292func (c *RegionUrlMapsInvalidateCacheCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
144293	gensupport.SetOptions(c.urlParams_, opts...)
144294	res, err := c.doRequest("json")
144295	if res != nil && res.StatusCode == http.StatusNotModified {
144296		if res.Body != nil {
144297			res.Body.Close()
144298		}
144299		return nil, &googleapi.Error{
144300			Code:   res.StatusCode,
144301			Header: res.Header,
144302		}
144303	}
144304	if err != nil {
144305		return nil, err
144306	}
144307	defer googleapi.CloseBody(res)
144308	if err := googleapi.CheckResponse(res); err != nil {
144309		return nil, err
144310	}
144311	ret := &Operation{
144312		ServerResponse: googleapi.ServerResponse{
144313			Header:         res.Header,
144314			HTTPStatusCode: res.StatusCode,
144315		},
144316	}
144317	target := &ret
144318	if err := gensupport.DecodeResponse(target, res); err != nil {
144319		return nil, err
144320	}
144321	return ret, nil
144322	// {
144323	//   "description": "Initiates a cache invalidation operation, invalidating the specified path, scoped to the specified UrlMap.\n\nFor more information, see [Invalidating cached content](/cdn/docs/invalidating-cached-content).",
144324	//   "httpMethod": "POST",
144325	//   "id": "compute.regionUrlMaps.invalidateCache",
144326	//   "parameterOrder": [
144327	//     "project",
144328	//     "region",
144329	//     "urlMap"
144330	//   ],
144331	//   "parameters": {
144332	//     "project": {
144333	//       "description": "Project ID for this request.",
144334	//       "location": "path",
144335	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
144336	//       "required": true,
144337	//       "type": "string"
144338	//     },
144339	//     "region": {
144340	//       "description": "Name of the region scoping this request.",
144341	//       "location": "path",
144342	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
144343	//       "required": true,
144344	//       "type": "string"
144345	//     },
144346	//     "requestId": {
144347	//       "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
144348	//       "location": "query",
144349	//       "type": "string"
144350	//     },
144351	//     "urlMap": {
144352	//       "description": "Name of the UrlMap scoping this request.",
144353	//       "location": "path",
144354	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
144355	//       "required": true,
144356	//       "type": "string"
144357	//     }
144358	//   },
144359	//   "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}/invalidateCache",
144360	//   "request": {
144361	//     "$ref": "CacheInvalidationRule"
144362	//   },
144363	//   "response": {
144364	//     "$ref": "Operation"
144365	//   },
144366	//   "scopes": [
144367	//     "https://www.googleapis.com/auth/cloud-platform",
144368	//     "https://www.googleapis.com/auth/compute"
144369	//   ]
144370	// }
144371
144372}
144373
144374// method id "compute.regionUrlMaps.list":
144375
144376type RegionUrlMapsListCall struct {
144377	s            *Service
144378	project      string
144379	region       string
144380	urlParams_   gensupport.URLParams
144381	ifNoneMatch_ string
144382	ctx_         context.Context
144383	header_      http.Header
144384}
144385
144386// List: Retrieves the list of UrlMap resources available to the
144387// specified project in the specified region.
144388func (r *RegionUrlMapsService) List(project string, region string) *RegionUrlMapsListCall {
144389	c := &RegionUrlMapsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
144390	c.project = project
144391	c.region = region
144392	return c
144393}
144394
144395// Filter sets the optional parameter "filter": A filter expression that
144396// filters resources listed in the response. The expression must specify
144397// the field name, a comparison operator, and the value that you want to
144398// use for filtering. The value must be a string, a number, or a
144399// boolean. The comparison operator must be either `=`, `!=`, `>`, or
144400// `<`.
144401//
144402// For example, if you are filtering Compute Engine instances, you can
144403// exclude instances named `example-instance` by specifying `name !=
144404// example-instance`.
144405//
144406// You can also filter nested fields. For example, you could specify
144407// `scheduling.automaticRestart = false` to include instances only if
144408// they are not scheduled for automatic restarts. You can use filtering
144409// on nested fields to filter based on resource labels.
144410//
144411// To filter on multiple expressions, provide each separate expression
144412// within parentheses. For example: ``` (scheduling.automaticRestart =
144413// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
144414// is an `AND` expression. However, you can include `AND` and `OR`
144415// expressions explicitly. For example: ``` (cpuPlatform = "Intel
144416// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
144417// (scheduling.automaticRestart = true) ```
144418func (c *RegionUrlMapsListCall) Filter(filter string) *RegionUrlMapsListCall {
144419	c.urlParams_.Set("filter", filter)
144420	return c
144421}
144422
144423// MaxResults sets the optional parameter "maxResults": The maximum
144424// number of results per page that should be returned. If the number of
144425// available results is larger than `maxResults`, Compute Engine returns
144426// a `nextPageToken` that can be used to get the next page of results in
144427// subsequent list requests. Acceptable values are `0` to `500`,
144428// inclusive. (Default: `500`)
144429func (c *RegionUrlMapsListCall) MaxResults(maxResults int64) *RegionUrlMapsListCall {
144430	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
144431	return c
144432}
144433
144434// OrderBy sets the optional parameter "orderBy": Sorts list results by
144435// a certain order. By default, results are returned in alphanumerical
144436// order based on the resource name.
144437//
144438// You can also sort results in descending order based on the creation
144439// timestamp using `orderBy="creationTimestamp desc". This sorts
144440// results based on the `creationTimestamp` field in reverse
144441// chronological order (newest result first). Use this to sort resources
144442// like operations so that the newest operation is returned
144443// first.
144444//
144445// Currently, only sorting by `name` or `creationTimestamp desc` is
144446// supported.
144447func (c *RegionUrlMapsListCall) OrderBy(orderBy string) *RegionUrlMapsListCall {
144448	c.urlParams_.Set("orderBy", orderBy)
144449	return c
144450}
144451
144452// PageToken sets the optional parameter "pageToken": Specifies a page
144453// token to use. Set `pageToken` to the `nextPageToken` returned by a
144454// previous list request to get the next page of results.
144455func (c *RegionUrlMapsListCall) PageToken(pageToken string) *RegionUrlMapsListCall {
144456	c.urlParams_.Set("pageToken", pageToken)
144457	return c
144458}
144459
144460// ReturnPartialSuccess sets the optional parameter
144461// "returnPartialSuccess": Opt-in for partial success behavior which
144462// provides partial results in case of failure. The default value is
144463// false.
144464func (c *RegionUrlMapsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionUrlMapsListCall {
144465	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
144466	return c
144467}
144468
144469// Fields allows partial responses to be retrieved. See
144470// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
144471// for more information.
144472func (c *RegionUrlMapsListCall) Fields(s ...googleapi.Field) *RegionUrlMapsListCall {
144473	c.urlParams_.Set("fields", googleapi.CombineFields(s))
144474	return c
144475}
144476
144477// IfNoneMatch sets the optional parameter which makes the operation
144478// fail if the object's ETag matches the given value. This is useful for
144479// getting updates only after the object has changed since the last
144480// request. Use googleapi.IsNotModified to check whether the response
144481// error from Do is the result of In-None-Match.
144482func (c *RegionUrlMapsListCall) IfNoneMatch(entityTag string) *RegionUrlMapsListCall {
144483	c.ifNoneMatch_ = entityTag
144484	return c
144485}
144486
144487// Context sets the context to be used in this call's Do method. Any
144488// pending HTTP request will be aborted if the provided context is
144489// canceled.
144490func (c *RegionUrlMapsListCall) Context(ctx context.Context) *RegionUrlMapsListCall {
144491	c.ctx_ = ctx
144492	return c
144493}
144494
144495// Header returns an http.Header that can be modified by the caller to
144496// add HTTP headers to the request.
144497func (c *RegionUrlMapsListCall) Header() http.Header {
144498	if c.header_ == nil {
144499		c.header_ = make(http.Header)
144500	}
144501	return c.header_
144502}
144503
144504func (c *RegionUrlMapsListCall) doRequest(alt string) (*http.Response, error) {
144505	reqHeaders := make(http.Header)
144506	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
144507	for k, v := range c.header_ {
144508		reqHeaders[k] = v
144509	}
144510	reqHeaders.Set("User-Agent", c.s.userAgent())
144511	if c.ifNoneMatch_ != "" {
144512		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
144513	}
144514	var body io.Reader = nil
144515	c.urlParams_.Set("alt", alt)
144516	c.urlParams_.Set("prettyPrint", "false")
144517	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/urlMaps")
144518	urls += "?" + c.urlParams_.Encode()
144519	req, err := http.NewRequest("GET", urls, body)
144520	if err != nil {
144521		return nil, err
144522	}
144523	req.Header = reqHeaders
144524	googleapi.Expand(req.URL, map[string]string{
144525		"project": c.project,
144526		"region":  c.region,
144527	})
144528	return gensupport.SendRequest(c.ctx_, c.s.client, req)
144529}
144530
144531// Do executes the "compute.regionUrlMaps.list" call.
144532// Exactly one of *UrlMapList or error will be non-nil. Any non-2xx
144533// status code is an error. Response headers are in either
144534// *UrlMapList.ServerResponse.Header or (if a response was returned at
144535// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
144536// to check whether the returned error was because
144537// http.StatusNotModified was returned.
144538func (c *RegionUrlMapsListCall) Do(opts ...googleapi.CallOption) (*UrlMapList, error) {
144539	gensupport.SetOptions(c.urlParams_, opts...)
144540	res, err := c.doRequest("json")
144541	if res != nil && res.StatusCode == http.StatusNotModified {
144542		if res.Body != nil {
144543			res.Body.Close()
144544		}
144545		return nil, &googleapi.Error{
144546			Code:   res.StatusCode,
144547			Header: res.Header,
144548		}
144549	}
144550	if err != nil {
144551		return nil, err
144552	}
144553	defer googleapi.CloseBody(res)
144554	if err := googleapi.CheckResponse(res); err != nil {
144555		return nil, err
144556	}
144557	ret := &UrlMapList{
144558		ServerResponse: googleapi.ServerResponse{
144559			Header:         res.Header,
144560			HTTPStatusCode: res.StatusCode,
144561		},
144562	}
144563	target := &ret
144564	if err := gensupport.DecodeResponse(target, res); err != nil {
144565		return nil, err
144566	}
144567	return ret, nil
144568	// {
144569	//   "description": "Retrieves the list of UrlMap resources available to the specified project in the specified region.",
144570	//   "httpMethod": "GET",
144571	//   "id": "compute.regionUrlMaps.list",
144572	//   "parameterOrder": [
144573	//     "project",
144574	//     "region"
144575	//   ],
144576	//   "parameters": {
144577	//     "filter": {
144578	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
144579	//       "location": "query",
144580	//       "type": "string"
144581	//     },
144582	//     "maxResults": {
144583	//       "default": "500",
144584	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
144585	//       "format": "uint32",
144586	//       "location": "query",
144587	//       "minimum": "0",
144588	//       "type": "integer"
144589	//     },
144590	//     "orderBy": {
144591	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
144592	//       "location": "query",
144593	//       "type": "string"
144594	//     },
144595	//     "pageToken": {
144596	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
144597	//       "location": "query",
144598	//       "type": "string"
144599	//     },
144600	//     "project": {
144601	//       "description": "Project ID for this request.",
144602	//       "location": "path",
144603	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
144604	//       "required": true,
144605	//       "type": "string"
144606	//     },
144607	//     "region": {
144608	//       "description": "Name of the region scoping this request.",
144609	//       "location": "path",
144610	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
144611	//       "required": true,
144612	//       "type": "string"
144613	//     },
144614	//     "returnPartialSuccess": {
144615	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
144616	//       "location": "query",
144617	//       "type": "boolean"
144618	//     }
144619	//   },
144620	//   "path": "projects/{project}/regions/{region}/urlMaps",
144621	//   "response": {
144622	//     "$ref": "UrlMapList"
144623	//   },
144624	//   "scopes": [
144625	//     "https://www.googleapis.com/auth/cloud-platform",
144626	//     "https://www.googleapis.com/auth/compute",
144627	//     "https://www.googleapis.com/auth/compute.readonly"
144628	//   ]
144629	// }
144630
144631}
144632
144633// Pages invokes f for each page of results.
144634// A non-nil error returned from f will halt the iteration.
144635// The provided context supersedes any context provided to the Context method.
144636func (c *RegionUrlMapsListCall) Pages(ctx context.Context, f func(*UrlMapList) error) error {
144637	c.ctx_ = ctx
144638	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
144639	for {
144640		x, err := c.Do()
144641		if err != nil {
144642			return err
144643		}
144644		if err := f(x); err != nil {
144645			return err
144646		}
144647		if x.NextPageToken == "" {
144648			return nil
144649		}
144650		c.PageToken(x.NextPageToken)
144651	}
144652}
144653
144654// method id "compute.regionUrlMaps.patch":
144655
144656type RegionUrlMapsPatchCall struct {
144657	s          *Service
144658	project    string
144659	region     string
144660	urlMap     string
144661	urlmap     *UrlMap
144662	urlParams_ gensupport.URLParams
144663	ctx_       context.Context
144664	header_    http.Header
144665}
144666
144667// Patch: Patches the specified UrlMap resource with the data included
144668// in the request. This method supports PATCH semantics and uses JSON
144669// merge patch format and processing rules.
144670func (r *RegionUrlMapsService) Patch(project string, region string, urlMap string, urlmap *UrlMap) *RegionUrlMapsPatchCall {
144671	c := &RegionUrlMapsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
144672	c.project = project
144673	c.region = region
144674	c.urlMap = urlMap
144675	c.urlmap = urlmap
144676	return c
144677}
144678
144679// RequestId sets the optional parameter "requestId": begin_interface:
144680// MixerMutationRequestBuilder Request ID to support idempotency.
144681func (c *RegionUrlMapsPatchCall) RequestId(requestId string) *RegionUrlMapsPatchCall {
144682	c.urlParams_.Set("requestId", requestId)
144683	return c
144684}
144685
144686// Fields allows partial responses to be retrieved. See
144687// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
144688// for more information.
144689func (c *RegionUrlMapsPatchCall) Fields(s ...googleapi.Field) *RegionUrlMapsPatchCall {
144690	c.urlParams_.Set("fields", googleapi.CombineFields(s))
144691	return c
144692}
144693
144694// Context sets the context to be used in this call's Do method. Any
144695// pending HTTP request will be aborted if the provided context is
144696// canceled.
144697func (c *RegionUrlMapsPatchCall) Context(ctx context.Context) *RegionUrlMapsPatchCall {
144698	c.ctx_ = ctx
144699	return c
144700}
144701
144702// Header returns an http.Header that can be modified by the caller to
144703// add HTTP headers to the request.
144704func (c *RegionUrlMapsPatchCall) Header() http.Header {
144705	if c.header_ == nil {
144706		c.header_ = make(http.Header)
144707	}
144708	return c.header_
144709}
144710
144711func (c *RegionUrlMapsPatchCall) doRequest(alt string) (*http.Response, error) {
144712	reqHeaders := make(http.Header)
144713	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
144714	for k, v := range c.header_ {
144715		reqHeaders[k] = v
144716	}
144717	reqHeaders.Set("User-Agent", c.s.userAgent())
144718	var body io.Reader = nil
144719	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
144720	if err != nil {
144721		return nil, err
144722	}
144723	reqHeaders.Set("Content-Type", "application/json")
144724	c.urlParams_.Set("alt", alt)
144725	c.urlParams_.Set("prettyPrint", "false")
144726	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/urlMaps/{urlMap}")
144727	urls += "?" + c.urlParams_.Encode()
144728	req, err := http.NewRequest("PATCH", urls, body)
144729	if err != nil {
144730		return nil, err
144731	}
144732	req.Header = reqHeaders
144733	googleapi.Expand(req.URL, map[string]string{
144734		"project": c.project,
144735		"region":  c.region,
144736		"urlMap":  c.urlMap,
144737	})
144738	return gensupport.SendRequest(c.ctx_, c.s.client, req)
144739}
144740
144741// Do executes the "compute.regionUrlMaps.patch" call.
144742// Exactly one of *Operation or error will be non-nil. Any non-2xx
144743// status code is an error. Response headers are in either
144744// *Operation.ServerResponse.Header or (if a response was returned at
144745// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
144746// to check whether the returned error was because
144747// http.StatusNotModified was returned.
144748func (c *RegionUrlMapsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
144749	gensupport.SetOptions(c.urlParams_, opts...)
144750	res, err := c.doRequest("json")
144751	if res != nil && res.StatusCode == http.StatusNotModified {
144752		if res.Body != nil {
144753			res.Body.Close()
144754		}
144755		return nil, &googleapi.Error{
144756			Code:   res.StatusCode,
144757			Header: res.Header,
144758		}
144759	}
144760	if err != nil {
144761		return nil, err
144762	}
144763	defer googleapi.CloseBody(res)
144764	if err := googleapi.CheckResponse(res); err != nil {
144765		return nil, err
144766	}
144767	ret := &Operation{
144768		ServerResponse: googleapi.ServerResponse{
144769			Header:         res.Header,
144770			HTTPStatusCode: res.StatusCode,
144771		},
144772	}
144773	target := &ret
144774	if err := gensupport.DecodeResponse(target, res); err != nil {
144775		return nil, err
144776	}
144777	return ret, nil
144778	// {
144779	//   "description": "Patches the specified UrlMap resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules.",
144780	//   "httpMethod": "PATCH",
144781	//   "id": "compute.regionUrlMaps.patch",
144782	//   "parameterOrder": [
144783	//     "project",
144784	//     "region",
144785	//     "urlMap"
144786	//   ],
144787	//   "parameters": {
144788	//     "project": {
144789	//       "description": "Project ID for this request.",
144790	//       "location": "path",
144791	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
144792	//       "required": true,
144793	//       "type": "string"
144794	//     },
144795	//     "region": {
144796	//       "description": "Name of the region scoping this request.",
144797	//       "location": "path",
144798	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
144799	//       "required": true,
144800	//       "type": "string"
144801	//     },
144802	//     "requestId": {
144803	//       "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
144804	//       "location": "query",
144805	//       "type": "string"
144806	//     },
144807	//     "urlMap": {
144808	//       "description": "Name of the UrlMap resource to patch.",
144809	//       "location": "path",
144810	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
144811	//       "required": true,
144812	//       "type": "string"
144813	//     }
144814	//   },
144815	//   "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}",
144816	//   "request": {
144817	//     "$ref": "UrlMap"
144818	//   },
144819	//   "response": {
144820	//     "$ref": "Operation"
144821	//   },
144822	//   "scopes": [
144823	//     "https://www.googleapis.com/auth/cloud-platform",
144824	//     "https://www.googleapis.com/auth/compute"
144825	//   ]
144826	// }
144827
144828}
144829
144830// method id "compute.regionUrlMaps.testIamPermissions":
144831
144832type RegionUrlMapsTestIamPermissionsCall struct {
144833	s                      *Service
144834	project                string
144835	region                 string
144836	resource               string
144837	testpermissionsrequest *TestPermissionsRequest
144838	urlParams_             gensupport.URLParams
144839	ctx_                   context.Context
144840	header_                http.Header
144841}
144842
144843// TestIamPermissions: Returns permissions that a caller has on the
144844// specified resource.
144845func (r *RegionUrlMapsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionUrlMapsTestIamPermissionsCall {
144846	c := &RegionUrlMapsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
144847	c.project = project
144848	c.region = region
144849	c.resource = resource
144850	c.testpermissionsrequest = testpermissionsrequest
144851	return c
144852}
144853
144854// Fields allows partial responses to be retrieved. See
144855// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
144856// for more information.
144857func (c *RegionUrlMapsTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionUrlMapsTestIamPermissionsCall {
144858	c.urlParams_.Set("fields", googleapi.CombineFields(s))
144859	return c
144860}
144861
144862// Context sets the context to be used in this call's Do method. Any
144863// pending HTTP request will be aborted if the provided context is
144864// canceled.
144865func (c *RegionUrlMapsTestIamPermissionsCall) Context(ctx context.Context) *RegionUrlMapsTestIamPermissionsCall {
144866	c.ctx_ = ctx
144867	return c
144868}
144869
144870// Header returns an http.Header that can be modified by the caller to
144871// add HTTP headers to the request.
144872func (c *RegionUrlMapsTestIamPermissionsCall) Header() http.Header {
144873	if c.header_ == nil {
144874		c.header_ = make(http.Header)
144875	}
144876	return c.header_
144877}
144878
144879func (c *RegionUrlMapsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
144880	reqHeaders := make(http.Header)
144881	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
144882	for k, v := range c.header_ {
144883		reqHeaders[k] = v
144884	}
144885	reqHeaders.Set("User-Agent", c.s.userAgent())
144886	var body io.Reader = nil
144887	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
144888	if err != nil {
144889		return nil, err
144890	}
144891	reqHeaders.Set("Content-Type", "application/json")
144892	c.urlParams_.Set("alt", alt)
144893	c.urlParams_.Set("prettyPrint", "false")
144894	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/urlMaps/{resource}/testIamPermissions")
144895	urls += "?" + c.urlParams_.Encode()
144896	req, err := http.NewRequest("POST", urls, body)
144897	if err != nil {
144898		return nil, err
144899	}
144900	req.Header = reqHeaders
144901	googleapi.Expand(req.URL, map[string]string{
144902		"project":  c.project,
144903		"region":   c.region,
144904		"resource": c.resource,
144905	})
144906	return gensupport.SendRequest(c.ctx_, c.s.client, req)
144907}
144908
144909// Do executes the "compute.regionUrlMaps.testIamPermissions" call.
144910// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
144911// non-2xx status code is an error. Response headers are in either
144912// *TestPermissionsResponse.ServerResponse.Header or (if a response was
144913// returned at all) in error.(*googleapi.Error).Header. Use
144914// googleapi.IsNotModified to check whether the returned error was
144915// because http.StatusNotModified was returned.
144916func (c *RegionUrlMapsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
144917	gensupport.SetOptions(c.urlParams_, opts...)
144918	res, err := c.doRequest("json")
144919	if res != nil && res.StatusCode == http.StatusNotModified {
144920		if res.Body != nil {
144921			res.Body.Close()
144922		}
144923		return nil, &googleapi.Error{
144924			Code:   res.StatusCode,
144925			Header: res.Header,
144926		}
144927	}
144928	if err != nil {
144929		return nil, err
144930	}
144931	defer googleapi.CloseBody(res)
144932	if err := googleapi.CheckResponse(res); err != nil {
144933		return nil, err
144934	}
144935	ret := &TestPermissionsResponse{
144936		ServerResponse: googleapi.ServerResponse{
144937			Header:         res.Header,
144938			HTTPStatusCode: res.StatusCode,
144939		},
144940	}
144941	target := &ret
144942	if err := gensupport.DecodeResponse(target, res); err != nil {
144943		return nil, err
144944	}
144945	return ret, nil
144946	// {
144947	//   "description": "Returns permissions that a caller has on the specified resource.",
144948	//   "httpMethod": "POST",
144949	//   "id": "compute.regionUrlMaps.testIamPermissions",
144950	//   "parameterOrder": [
144951	//     "project",
144952	//     "region",
144953	//     "resource"
144954	//   ],
144955	//   "parameters": {
144956	//     "project": {
144957	//       "description": "Project ID for this request.",
144958	//       "location": "path",
144959	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
144960	//       "required": true,
144961	//       "type": "string"
144962	//     },
144963	//     "region": {
144964	//       "description": "The name of the region for this request.",
144965	//       "location": "path",
144966	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
144967	//       "required": true,
144968	//       "type": "string"
144969	//     },
144970	//     "resource": {
144971	//       "description": "Name or id of the resource for this request.",
144972	//       "location": "path",
144973	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
144974	//       "required": true,
144975	//       "type": "string"
144976	//     }
144977	//   },
144978	//   "path": "projects/{project}/regions/{region}/urlMaps/{resource}/testIamPermissions",
144979	//   "request": {
144980	//     "$ref": "TestPermissionsRequest"
144981	//   },
144982	//   "response": {
144983	//     "$ref": "TestPermissionsResponse"
144984	//   },
144985	//   "scopes": [
144986	//     "https://www.googleapis.com/auth/cloud-platform",
144987	//     "https://www.googleapis.com/auth/compute",
144988	//     "https://www.googleapis.com/auth/compute.readonly"
144989	//   ]
144990	// }
144991
144992}
144993
144994// method id "compute.regionUrlMaps.update":
144995
144996type RegionUrlMapsUpdateCall struct {
144997	s          *Service
144998	project    string
144999	region     string
145000	urlMap     string
145001	urlmap     *UrlMap
145002	urlParams_ gensupport.URLParams
145003	ctx_       context.Context
145004	header_    http.Header
145005}
145006
145007// Update: Updates the specified UrlMap resource with the data included
145008// in the request.
145009func (r *RegionUrlMapsService) Update(project string, region string, urlMap string, urlmap *UrlMap) *RegionUrlMapsUpdateCall {
145010	c := &RegionUrlMapsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
145011	c.project = project
145012	c.region = region
145013	c.urlMap = urlMap
145014	c.urlmap = urlmap
145015	return c
145016}
145017
145018// RequestId sets the optional parameter "requestId": begin_interface:
145019// MixerMutationRequestBuilder Request ID to support idempotency.
145020func (c *RegionUrlMapsUpdateCall) RequestId(requestId string) *RegionUrlMapsUpdateCall {
145021	c.urlParams_.Set("requestId", requestId)
145022	return c
145023}
145024
145025// Fields allows partial responses to be retrieved. See
145026// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
145027// for more information.
145028func (c *RegionUrlMapsUpdateCall) Fields(s ...googleapi.Field) *RegionUrlMapsUpdateCall {
145029	c.urlParams_.Set("fields", googleapi.CombineFields(s))
145030	return c
145031}
145032
145033// Context sets the context to be used in this call's Do method. Any
145034// pending HTTP request will be aborted if the provided context is
145035// canceled.
145036func (c *RegionUrlMapsUpdateCall) Context(ctx context.Context) *RegionUrlMapsUpdateCall {
145037	c.ctx_ = ctx
145038	return c
145039}
145040
145041// Header returns an http.Header that can be modified by the caller to
145042// add HTTP headers to the request.
145043func (c *RegionUrlMapsUpdateCall) Header() http.Header {
145044	if c.header_ == nil {
145045		c.header_ = make(http.Header)
145046	}
145047	return c.header_
145048}
145049
145050func (c *RegionUrlMapsUpdateCall) doRequest(alt string) (*http.Response, error) {
145051	reqHeaders := make(http.Header)
145052	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
145053	for k, v := range c.header_ {
145054		reqHeaders[k] = v
145055	}
145056	reqHeaders.Set("User-Agent", c.s.userAgent())
145057	var body io.Reader = nil
145058	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
145059	if err != nil {
145060		return nil, err
145061	}
145062	reqHeaders.Set("Content-Type", "application/json")
145063	c.urlParams_.Set("alt", alt)
145064	c.urlParams_.Set("prettyPrint", "false")
145065	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/urlMaps/{urlMap}")
145066	urls += "?" + c.urlParams_.Encode()
145067	req, err := http.NewRequest("PUT", urls, body)
145068	if err != nil {
145069		return nil, err
145070	}
145071	req.Header = reqHeaders
145072	googleapi.Expand(req.URL, map[string]string{
145073		"project": c.project,
145074		"region":  c.region,
145075		"urlMap":  c.urlMap,
145076	})
145077	return gensupport.SendRequest(c.ctx_, c.s.client, req)
145078}
145079
145080// Do executes the "compute.regionUrlMaps.update" call.
145081// Exactly one of *Operation or error will be non-nil. Any non-2xx
145082// status code is an error. Response headers are in either
145083// *Operation.ServerResponse.Header or (if a response was returned at
145084// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
145085// to check whether the returned error was because
145086// http.StatusNotModified was returned.
145087func (c *RegionUrlMapsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
145088	gensupport.SetOptions(c.urlParams_, opts...)
145089	res, err := c.doRequest("json")
145090	if res != nil && res.StatusCode == http.StatusNotModified {
145091		if res.Body != nil {
145092			res.Body.Close()
145093		}
145094		return nil, &googleapi.Error{
145095			Code:   res.StatusCode,
145096			Header: res.Header,
145097		}
145098	}
145099	if err != nil {
145100		return nil, err
145101	}
145102	defer googleapi.CloseBody(res)
145103	if err := googleapi.CheckResponse(res); err != nil {
145104		return nil, err
145105	}
145106	ret := &Operation{
145107		ServerResponse: googleapi.ServerResponse{
145108			Header:         res.Header,
145109			HTTPStatusCode: res.StatusCode,
145110		},
145111	}
145112	target := &ret
145113	if err := gensupport.DecodeResponse(target, res); err != nil {
145114		return nil, err
145115	}
145116	return ret, nil
145117	// {
145118	//   "description": "Updates the specified UrlMap resource with the data included in the request.",
145119	//   "httpMethod": "PUT",
145120	//   "id": "compute.regionUrlMaps.update",
145121	//   "parameterOrder": [
145122	//     "project",
145123	//     "region",
145124	//     "urlMap"
145125	//   ],
145126	//   "parameters": {
145127	//     "project": {
145128	//       "description": "Project ID for this request.",
145129	//       "location": "path",
145130	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
145131	//       "required": true,
145132	//       "type": "string"
145133	//     },
145134	//     "region": {
145135	//       "description": "Name of the region scoping this request.",
145136	//       "location": "path",
145137	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
145138	//       "required": true,
145139	//       "type": "string"
145140	//     },
145141	//     "requestId": {
145142	//       "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
145143	//       "location": "query",
145144	//       "type": "string"
145145	//     },
145146	//     "urlMap": {
145147	//       "description": "Name of the UrlMap resource to update.",
145148	//       "location": "path",
145149	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
145150	//       "required": true,
145151	//       "type": "string"
145152	//     }
145153	//   },
145154	//   "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}",
145155	//   "request": {
145156	//     "$ref": "UrlMap"
145157	//   },
145158	//   "response": {
145159	//     "$ref": "Operation"
145160	//   },
145161	//   "scopes": [
145162	//     "https://www.googleapis.com/auth/cloud-platform",
145163	//     "https://www.googleapis.com/auth/compute"
145164	//   ]
145165	// }
145166
145167}
145168
145169// method id "compute.regionUrlMaps.validate":
145170
145171type RegionUrlMapsValidateCall struct {
145172	s                            *Service
145173	project                      string
145174	region                       string
145175	urlMap                       string
145176	regionurlmapsvalidaterequest *RegionUrlMapsValidateRequest
145177	urlParams_                   gensupport.URLParams
145178	ctx_                         context.Context
145179	header_                      http.Header
145180}
145181
145182// Validate: Runs static validation for the UrlMap. In particular, the
145183// tests of the provided UrlMap will be run. Calling this method does
145184// NOT create the UrlMap.
145185func (r *RegionUrlMapsService) Validate(project string, region string, urlMap string, regionurlmapsvalidaterequest *RegionUrlMapsValidateRequest) *RegionUrlMapsValidateCall {
145186	c := &RegionUrlMapsValidateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
145187	c.project = project
145188	c.region = region
145189	c.urlMap = urlMap
145190	c.regionurlmapsvalidaterequest = regionurlmapsvalidaterequest
145191	return c
145192}
145193
145194// Fields allows partial responses to be retrieved. See
145195// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
145196// for more information.
145197func (c *RegionUrlMapsValidateCall) Fields(s ...googleapi.Field) *RegionUrlMapsValidateCall {
145198	c.urlParams_.Set("fields", googleapi.CombineFields(s))
145199	return c
145200}
145201
145202// Context sets the context to be used in this call's Do method. Any
145203// pending HTTP request will be aborted if the provided context is
145204// canceled.
145205func (c *RegionUrlMapsValidateCall) Context(ctx context.Context) *RegionUrlMapsValidateCall {
145206	c.ctx_ = ctx
145207	return c
145208}
145209
145210// Header returns an http.Header that can be modified by the caller to
145211// add HTTP headers to the request.
145212func (c *RegionUrlMapsValidateCall) Header() http.Header {
145213	if c.header_ == nil {
145214		c.header_ = make(http.Header)
145215	}
145216	return c.header_
145217}
145218
145219func (c *RegionUrlMapsValidateCall) doRequest(alt string) (*http.Response, error) {
145220	reqHeaders := make(http.Header)
145221	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
145222	for k, v := range c.header_ {
145223		reqHeaders[k] = v
145224	}
145225	reqHeaders.Set("User-Agent", c.s.userAgent())
145226	var body io.Reader = nil
145227	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionurlmapsvalidaterequest)
145228	if err != nil {
145229		return nil, err
145230	}
145231	reqHeaders.Set("Content-Type", "application/json")
145232	c.urlParams_.Set("alt", alt)
145233	c.urlParams_.Set("prettyPrint", "false")
145234	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/urlMaps/{urlMap}/validate")
145235	urls += "?" + c.urlParams_.Encode()
145236	req, err := http.NewRequest("POST", urls, body)
145237	if err != nil {
145238		return nil, err
145239	}
145240	req.Header = reqHeaders
145241	googleapi.Expand(req.URL, map[string]string{
145242		"project": c.project,
145243		"region":  c.region,
145244		"urlMap":  c.urlMap,
145245	})
145246	return gensupport.SendRequest(c.ctx_, c.s.client, req)
145247}
145248
145249// Do executes the "compute.regionUrlMaps.validate" call.
145250// Exactly one of *UrlMapsValidateResponse or error will be non-nil. Any
145251// non-2xx status code is an error. Response headers are in either
145252// *UrlMapsValidateResponse.ServerResponse.Header or (if a response was
145253// returned at all) in error.(*googleapi.Error).Header. Use
145254// googleapi.IsNotModified to check whether the returned error was
145255// because http.StatusNotModified was returned.
145256func (c *RegionUrlMapsValidateCall) Do(opts ...googleapi.CallOption) (*UrlMapsValidateResponse, error) {
145257	gensupport.SetOptions(c.urlParams_, opts...)
145258	res, err := c.doRequest("json")
145259	if res != nil && res.StatusCode == http.StatusNotModified {
145260		if res.Body != nil {
145261			res.Body.Close()
145262		}
145263		return nil, &googleapi.Error{
145264			Code:   res.StatusCode,
145265			Header: res.Header,
145266		}
145267	}
145268	if err != nil {
145269		return nil, err
145270	}
145271	defer googleapi.CloseBody(res)
145272	if err := googleapi.CheckResponse(res); err != nil {
145273		return nil, err
145274	}
145275	ret := &UrlMapsValidateResponse{
145276		ServerResponse: googleapi.ServerResponse{
145277			Header:         res.Header,
145278			HTTPStatusCode: res.StatusCode,
145279		},
145280	}
145281	target := &ret
145282	if err := gensupport.DecodeResponse(target, res); err != nil {
145283		return nil, err
145284	}
145285	return ret, nil
145286	// {
145287	//   "description": "Runs static validation for the UrlMap. In particular, the tests of the provided UrlMap will be run. Calling this method does NOT create the UrlMap.",
145288	//   "httpMethod": "POST",
145289	//   "id": "compute.regionUrlMaps.validate",
145290	//   "parameterOrder": [
145291	//     "project",
145292	//     "region",
145293	//     "urlMap"
145294	//   ],
145295	//   "parameters": {
145296	//     "project": {
145297	//       "description": "Project ID for this request.",
145298	//       "location": "path",
145299	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
145300	//       "required": true,
145301	//       "type": "string"
145302	//     },
145303	//     "region": {
145304	//       "description": "Name of the region scoping this request.",
145305	//       "location": "path",
145306	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
145307	//       "required": true,
145308	//       "type": "string"
145309	//     },
145310	//     "urlMap": {
145311	//       "description": "Name of the UrlMap resource to be validated as.",
145312	//       "location": "path",
145313	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
145314	//       "required": true,
145315	//       "type": "string"
145316	//     }
145317	//   },
145318	//   "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}/validate",
145319	//   "request": {
145320	//     "$ref": "RegionUrlMapsValidateRequest"
145321	//   },
145322	//   "response": {
145323	//     "$ref": "UrlMapsValidateResponse"
145324	//   },
145325	//   "scopes": [
145326	//     "https://www.googleapis.com/auth/cloud-platform",
145327	//     "https://www.googleapis.com/auth/compute"
145328	//   ]
145329	// }
145330
145331}
145332
145333// method id "compute.regions.get":
145334
145335type RegionsGetCall struct {
145336	s            *Service
145337	project      string
145338	region       string
145339	urlParams_   gensupport.URLParams
145340	ifNoneMatch_ string
145341	ctx_         context.Context
145342	header_      http.Header
145343}
145344
145345// Get: Returns the specified Region resource. Gets a list of available
145346// regions by making a list() request.
145347// For details, see https://cloud.google.com/compute/docs/reference/latest/regions/get
145348func (r *RegionsService) Get(project string, region string) *RegionsGetCall {
145349	c := &RegionsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
145350	c.project = project
145351	c.region = region
145352	return c
145353}
145354
145355// Fields allows partial responses to be retrieved. See
145356// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
145357// for more information.
145358func (c *RegionsGetCall) Fields(s ...googleapi.Field) *RegionsGetCall {
145359	c.urlParams_.Set("fields", googleapi.CombineFields(s))
145360	return c
145361}
145362
145363// IfNoneMatch sets the optional parameter which makes the operation
145364// fail if the object's ETag matches the given value. This is useful for
145365// getting updates only after the object has changed since the last
145366// request. Use googleapi.IsNotModified to check whether the response
145367// error from Do is the result of In-None-Match.
145368func (c *RegionsGetCall) IfNoneMatch(entityTag string) *RegionsGetCall {
145369	c.ifNoneMatch_ = entityTag
145370	return c
145371}
145372
145373// Context sets the context to be used in this call's Do method. Any
145374// pending HTTP request will be aborted if the provided context is
145375// canceled.
145376func (c *RegionsGetCall) Context(ctx context.Context) *RegionsGetCall {
145377	c.ctx_ = ctx
145378	return c
145379}
145380
145381// Header returns an http.Header that can be modified by the caller to
145382// add HTTP headers to the request.
145383func (c *RegionsGetCall) Header() http.Header {
145384	if c.header_ == nil {
145385		c.header_ = make(http.Header)
145386	}
145387	return c.header_
145388}
145389
145390func (c *RegionsGetCall) doRequest(alt string) (*http.Response, error) {
145391	reqHeaders := make(http.Header)
145392	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
145393	for k, v := range c.header_ {
145394		reqHeaders[k] = v
145395	}
145396	reqHeaders.Set("User-Agent", c.s.userAgent())
145397	if c.ifNoneMatch_ != "" {
145398		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
145399	}
145400	var body io.Reader = nil
145401	c.urlParams_.Set("alt", alt)
145402	c.urlParams_.Set("prettyPrint", "false")
145403	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}")
145404	urls += "?" + c.urlParams_.Encode()
145405	req, err := http.NewRequest("GET", urls, body)
145406	if err != nil {
145407		return nil, err
145408	}
145409	req.Header = reqHeaders
145410	googleapi.Expand(req.URL, map[string]string{
145411		"project": c.project,
145412		"region":  c.region,
145413	})
145414	return gensupport.SendRequest(c.ctx_, c.s.client, req)
145415}
145416
145417// Do executes the "compute.regions.get" call.
145418// Exactly one of *Region or error will be non-nil. Any non-2xx status
145419// code is an error. Response headers are in either
145420// *Region.ServerResponse.Header or (if a response was returned at all)
145421// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
145422// check whether the returned error was because http.StatusNotModified
145423// was returned.
145424func (c *RegionsGetCall) Do(opts ...googleapi.CallOption) (*Region, error) {
145425	gensupport.SetOptions(c.urlParams_, opts...)
145426	res, err := c.doRequest("json")
145427	if res != nil && res.StatusCode == http.StatusNotModified {
145428		if res.Body != nil {
145429			res.Body.Close()
145430		}
145431		return nil, &googleapi.Error{
145432			Code:   res.StatusCode,
145433			Header: res.Header,
145434		}
145435	}
145436	if err != nil {
145437		return nil, err
145438	}
145439	defer googleapi.CloseBody(res)
145440	if err := googleapi.CheckResponse(res); err != nil {
145441		return nil, err
145442	}
145443	ret := &Region{
145444		ServerResponse: googleapi.ServerResponse{
145445			Header:         res.Header,
145446			HTTPStatusCode: res.StatusCode,
145447		},
145448	}
145449	target := &ret
145450	if err := gensupport.DecodeResponse(target, res); err != nil {
145451		return nil, err
145452	}
145453	return ret, nil
145454	// {
145455	//   "description": "Returns the specified Region resource. Gets a list of available regions by making a list() request.",
145456	//   "httpMethod": "GET",
145457	//   "id": "compute.regions.get",
145458	//   "parameterOrder": [
145459	//     "project",
145460	//     "region"
145461	//   ],
145462	//   "parameters": {
145463	//     "project": {
145464	//       "description": "Project ID for this request.",
145465	//       "location": "path",
145466	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
145467	//       "required": true,
145468	//       "type": "string"
145469	//     },
145470	//     "region": {
145471	//       "description": "Name of the region resource to return.",
145472	//       "location": "path",
145473	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
145474	//       "required": true,
145475	//       "type": "string"
145476	//     }
145477	//   },
145478	//   "path": "projects/{project}/regions/{region}",
145479	//   "response": {
145480	//     "$ref": "Region"
145481	//   },
145482	//   "scopes": [
145483	//     "https://www.googleapis.com/auth/cloud-platform",
145484	//     "https://www.googleapis.com/auth/compute",
145485	//     "https://www.googleapis.com/auth/compute.readonly"
145486	//   ]
145487	// }
145488
145489}
145490
145491// method id "compute.regions.list":
145492
145493type RegionsListCall struct {
145494	s            *Service
145495	project      string
145496	urlParams_   gensupport.URLParams
145497	ifNoneMatch_ string
145498	ctx_         context.Context
145499	header_      http.Header
145500}
145501
145502// List: Retrieves the list of region resources available to the
145503// specified project.
145504// For details, see https://cloud.google.com/compute/docs/reference/latest/regions/list
145505func (r *RegionsService) List(project string) *RegionsListCall {
145506	c := &RegionsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
145507	c.project = project
145508	return c
145509}
145510
145511// Filter sets the optional parameter "filter": A filter expression that
145512// filters resources listed in the response. The expression must specify
145513// the field name, a comparison operator, and the value that you want to
145514// use for filtering. The value must be a string, a number, or a
145515// boolean. The comparison operator must be either `=`, `!=`, `>`, or
145516// `<`.
145517//
145518// For example, if you are filtering Compute Engine instances, you can
145519// exclude instances named `example-instance` by specifying `name !=
145520// example-instance`.
145521//
145522// You can also filter nested fields. For example, you could specify
145523// `scheduling.automaticRestart = false` to include instances only if
145524// they are not scheduled for automatic restarts. You can use filtering
145525// on nested fields to filter based on resource labels.
145526//
145527// To filter on multiple expressions, provide each separate expression
145528// within parentheses. For example: ``` (scheduling.automaticRestart =
145529// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
145530// is an `AND` expression. However, you can include `AND` and `OR`
145531// expressions explicitly. For example: ``` (cpuPlatform = "Intel
145532// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
145533// (scheduling.automaticRestart = true) ```
145534func (c *RegionsListCall) Filter(filter string) *RegionsListCall {
145535	c.urlParams_.Set("filter", filter)
145536	return c
145537}
145538
145539// MaxResults sets the optional parameter "maxResults": The maximum
145540// number of results per page that should be returned. If the number of
145541// available results is larger than `maxResults`, Compute Engine returns
145542// a `nextPageToken` that can be used to get the next page of results in
145543// subsequent list requests. Acceptable values are `0` to `500`,
145544// inclusive. (Default: `500`)
145545func (c *RegionsListCall) MaxResults(maxResults int64) *RegionsListCall {
145546	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
145547	return c
145548}
145549
145550// OrderBy sets the optional parameter "orderBy": Sorts list results by
145551// a certain order. By default, results are returned in alphanumerical
145552// order based on the resource name.
145553//
145554// You can also sort results in descending order based on the creation
145555// timestamp using `orderBy="creationTimestamp desc". This sorts
145556// results based on the `creationTimestamp` field in reverse
145557// chronological order (newest result first). Use this to sort resources
145558// like operations so that the newest operation is returned
145559// first.
145560//
145561// Currently, only sorting by `name` or `creationTimestamp desc` is
145562// supported.
145563func (c *RegionsListCall) OrderBy(orderBy string) *RegionsListCall {
145564	c.urlParams_.Set("orderBy", orderBy)
145565	return c
145566}
145567
145568// PageToken sets the optional parameter "pageToken": Specifies a page
145569// token to use. Set `pageToken` to the `nextPageToken` returned by a
145570// previous list request to get the next page of results.
145571func (c *RegionsListCall) PageToken(pageToken string) *RegionsListCall {
145572	c.urlParams_.Set("pageToken", pageToken)
145573	return c
145574}
145575
145576// ReturnPartialSuccess sets the optional parameter
145577// "returnPartialSuccess": Opt-in for partial success behavior which
145578// provides partial results in case of failure. The default value is
145579// false.
145580func (c *RegionsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionsListCall {
145581	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
145582	return c
145583}
145584
145585// Fields allows partial responses to be retrieved. See
145586// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
145587// for more information.
145588func (c *RegionsListCall) Fields(s ...googleapi.Field) *RegionsListCall {
145589	c.urlParams_.Set("fields", googleapi.CombineFields(s))
145590	return c
145591}
145592
145593// IfNoneMatch sets the optional parameter which makes the operation
145594// fail if the object's ETag matches the given value. This is useful for
145595// getting updates only after the object has changed since the last
145596// request. Use googleapi.IsNotModified to check whether the response
145597// error from Do is the result of In-None-Match.
145598func (c *RegionsListCall) IfNoneMatch(entityTag string) *RegionsListCall {
145599	c.ifNoneMatch_ = entityTag
145600	return c
145601}
145602
145603// Context sets the context to be used in this call's Do method. Any
145604// pending HTTP request will be aborted if the provided context is
145605// canceled.
145606func (c *RegionsListCall) Context(ctx context.Context) *RegionsListCall {
145607	c.ctx_ = ctx
145608	return c
145609}
145610
145611// Header returns an http.Header that can be modified by the caller to
145612// add HTTP headers to the request.
145613func (c *RegionsListCall) Header() http.Header {
145614	if c.header_ == nil {
145615		c.header_ = make(http.Header)
145616	}
145617	return c.header_
145618}
145619
145620func (c *RegionsListCall) doRequest(alt string) (*http.Response, error) {
145621	reqHeaders := make(http.Header)
145622	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
145623	for k, v := range c.header_ {
145624		reqHeaders[k] = v
145625	}
145626	reqHeaders.Set("User-Agent", c.s.userAgent())
145627	if c.ifNoneMatch_ != "" {
145628		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
145629	}
145630	var body io.Reader = nil
145631	c.urlParams_.Set("alt", alt)
145632	c.urlParams_.Set("prettyPrint", "false")
145633	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions")
145634	urls += "?" + c.urlParams_.Encode()
145635	req, err := http.NewRequest("GET", urls, body)
145636	if err != nil {
145637		return nil, err
145638	}
145639	req.Header = reqHeaders
145640	googleapi.Expand(req.URL, map[string]string{
145641		"project": c.project,
145642	})
145643	return gensupport.SendRequest(c.ctx_, c.s.client, req)
145644}
145645
145646// Do executes the "compute.regions.list" call.
145647// Exactly one of *RegionList or error will be non-nil. Any non-2xx
145648// status code is an error. Response headers are in either
145649// *RegionList.ServerResponse.Header or (if a response was returned at
145650// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
145651// to check whether the returned error was because
145652// http.StatusNotModified was returned.
145653func (c *RegionsListCall) Do(opts ...googleapi.CallOption) (*RegionList, error) {
145654	gensupport.SetOptions(c.urlParams_, opts...)
145655	res, err := c.doRequest("json")
145656	if res != nil && res.StatusCode == http.StatusNotModified {
145657		if res.Body != nil {
145658			res.Body.Close()
145659		}
145660		return nil, &googleapi.Error{
145661			Code:   res.StatusCode,
145662			Header: res.Header,
145663		}
145664	}
145665	if err != nil {
145666		return nil, err
145667	}
145668	defer googleapi.CloseBody(res)
145669	if err := googleapi.CheckResponse(res); err != nil {
145670		return nil, err
145671	}
145672	ret := &RegionList{
145673		ServerResponse: googleapi.ServerResponse{
145674			Header:         res.Header,
145675			HTTPStatusCode: res.StatusCode,
145676		},
145677	}
145678	target := &ret
145679	if err := gensupport.DecodeResponse(target, res); err != nil {
145680		return nil, err
145681	}
145682	return ret, nil
145683	// {
145684	//   "description": "Retrieves the list of region resources available to the specified project.",
145685	//   "httpMethod": "GET",
145686	//   "id": "compute.regions.list",
145687	//   "parameterOrder": [
145688	//     "project"
145689	//   ],
145690	//   "parameters": {
145691	//     "filter": {
145692	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
145693	//       "location": "query",
145694	//       "type": "string"
145695	//     },
145696	//     "maxResults": {
145697	//       "default": "500",
145698	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
145699	//       "format": "uint32",
145700	//       "location": "query",
145701	//       "minimum": "0",
145702	//       "type": "integer"
145703	//     },
145704	//     "orderBy": {
145705	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
145706	//       "location": "query",
145707	//       "type": "string"
145708	//     },
145709	//     "pageToken": {
145710	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
145711	//       "location": "query",
145712	//       "type": "string"
145713	//     },
145714	//     "project": {
145715	//       "description": "Project ID for this request.",
145716	//       "location": "path",
145717	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
145718	//       "required": true,
145719	//       "type": "string"
145720	//     },
145721	//     "returnPartialSuccess": {
145722	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
145723	//       "location": "query",
145724	//       "type": "boolean"
145725	//     }
145726	//   },
145727	//   "path": "projects/{project}/regions",
145728	//   "response": {
145729	//     "$ref": "RegionList"
145730	//   },
145731	//   "scopes": [
145732	//     "https://www.googleapis.com/auth/cloud-platform",
145733	//     "https://www.googleapis.com/auth/compute",
145734	//     "https://www.googleapis.com/auth/compute.readonly"
145735	//   ]
145736	// }
145737
145738}
145739
145740// Pages invokes f for each page of results.
145741// A non-nil error returned from f will halt the iteration.
145742// The provided context supersedes any context provided to the Context method.
145743func (c *RegionsListCall) Pages(ctx context.Context, f func(*RegionList) error) error {
145744	c.ctx_ = ctx
145745	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
145746	for {
145747		x, err := c.Do()
145748		if err != nil {
145749			return err
145750		}
145751		if err := f(x); err != nil {
145752			return err
145753		}
145754		if x.NextPageToken == "" {
145755			return nil
145756		}
145757		c.PageToken(x.NextPageToken)
145758	}
145759}
145760
145761// method id "compute.reservations.aggregatedList":
145762
145763type ReservationsAggregatedListCall struct {
145764	s            *Service
145765	project      string
145766	urlParams_   gensupport.URLParams
145767	ifNoneMatch_ string
145768	ctx_         context.Context
145769	header_      http.Header
145770}
145771
145772// AggregatedList: Retrieves an aggregated list of reservations.
145773func (r *ReservationsService) AggregatedList(project string) *ReservationsAggregatedListCall {
145774	c := &ReservationsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
145775	c.project = project
145776	return c
145777}
145778
145779// Filter sets the optional parameter "filter": A filter expression that
145780// filters resources listed in the response. The expression must specify
145781// the field name, a comparison operator, and the value that you want to
145782// use for filtering. The value must be a string, a number, or a
145783// boolean. The comparison operator must be either `=`, `!=`, `>`, or
145784// `<`.
145785//
145786// For example, if you are filtering Compute Engine instances, you can
145787// exclude instances named `example-instance` by specifying `name !=
145788// example-instance`.
145789//
145790// You can also filter nested fields. For example, you could specify
145791// `scheduling.automaticRestart = false` to include instances only if
145792// they are not scheduled for automatic restarts. You can use filtering
145793// on nested fields to filter based on resource labels.
145794//
145795// To filter on multiple expressions, provide each separate expression
145796// within parentheses. For example: ``` (scheduling.automaticRestart =
145797// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
145798// is an `AND` expression. However, you can include `AND` and `OR`
145799// expressions explicitly. For example: ``` (cpuPlatform = "Intel
145800// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
145801// (scheduling.automaticRestart = true) ```
145802func (c *ReservationsAggregatedListCall) Filter(filter string) *ReservationsAggregatedListCall {
145803	c.urlParams_.Set("filter", filter)
145804	return c
145805}
145806
145807// IncludeAllScopes sets the optional parameter "includeAllScopes":
145808// Indicates whether every visible scope for each scope type (zone,
145809// region, global) should be included in the response. For new resource
145810// types added after this field, the flag has no effect as new resource
145811// types will always include every visible scope for each scope type in
145812// response. For resource types which predate this field, if this flag
145813// is omitted or false, only scopes of the scope types where the
145814// resource type is expected to be found will be included.
145815func (c *ReservationsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *ReservationsAggregatedListCall {
145816	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
145817	return c
145818}
145819
145820// MaxResults sets the optional parameter "maxResults": The maximum
145821// number of results per page that should be returned. If the number of
145822// available results is larger than `maxResults`, Compute Engine returns
145823// a `nextPageToken` that can be used to get the next page of results in
145824// subsequent list requests. Acceptable values are `0` to `500`,
145825// inclusive. (Default: `500`)
145826func (c *ReservationsAggregatedListCall) MaxResults(maxResults int64) *ReservationsAggregatedListCall {
145827	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
145828	return c
145829}
145830
145831// OrderBy sets the optional parameter "orderBy": Sorts list results by
145832// a certain order. By default, results are returned in alphanumerical
145833// order based on the resource name.
145834//
145835// You can also sort results in descending order based on the creation
145836// timestamp using `orderBy="creationTimestamp desc". This sorts
145837// results based on the `creationTimestamp` field in reverse
145838// chronological order (newest result first). Use this to sort resources
145839// like operations so that the newest operation is returned
145840// first.
145841//
145842// Currently, only sorting by `name` or `creationTimestamp desc` is
145843// supported.
145844func (c *ReservationsAggregatedListCall) OrderBy(orderBy string) *ReservationsAggregatedListCall {
145845	c.urlParams_.Set("orderBy", orderBy)
145846	return c
145847}
145848
145849// PageToken sets the optional parameter "pageToken": Specifies a page
145850// token to use. Set `pageToken` to the `nextPageToken` returned by a
145851// previous list request to get the next page of results.
145852func (c *ReservationsAggregatedListCall) PageToken(pageToken string) *ReservationsAggregatedListCall {
145853	c.urlParams_.Set("pageToken", pageToken)
145854	return c
145855}
145856
145857// ReturnPartialSuccess sets the optional parameter
145858// "returnPartialSuccess": Opt-in for partial success behavior which
145859// provides partial results in case of failure. The default value is
145860// false.
145861func (c *ReservationsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ReservationsAggregatedListCall {
145862	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
145863	return c
145864}
145865
145866// Fields allows partial responses to be retrieved. See
145867// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
145868// for more information.
145869func (c *ReservationsAggregatedListCall) Fields(s ...googleapi.Field) *ReservationsAggregatedListCall {
145870	c.urlParams_.Set("fields", googleapi.CombineFields(s))
145871	return c
145872}
145873
145874// IfNoneMatch sets the optional parameter which makes the operation
145875// fail if the object's ETag matches the given value. This is useful for
145876// getting updates only after the object has changed since the last
145877// request. Use googleapi.IsNotModified to check whether the response
145878// error from Do is the result of In-None-Match.
145879func (c *ReservationsAggregatedListCall) IfNoneMatch(entityTag string) *ReservationsAggregatedListCall {
145880	c.ifNoneMatch_ = entityTag
145881	return c
145882}
145883
145884// Context sets the context to be used in this call's Do method. Any
145885// pending HTTP request will be aborted if the provided context is
145886// canceled.
145887func (c *ReservationsAggregatedListCall) Context(ctx context.Context) *ReservationsAggregatedListCall {
145888	c.ctx_ = ctx
145889	return c
145890}
145891
145892// Header returns an http.Header that can be modified by the caller to
145893// add HTTP headers to the request.
145894func (c *ReservationsAggregatedListCall) Header() http.Header {
145895	if c.header_ == nil {
145896		c.header_ = make(http.Header)
145897	}
145898	return c.header_
145899}
145900
145901func (c *ReservationsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
145902	reqHeaders := make(http.Header)
145903	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
145904	for k, v := range c.header_ {
145905		reqHeaders[k] = v
145906	}
145907	reqHeaders.Set("User-Agent", c.s.userAgent())
145908	if c.ifNoneMatch_ != "" {
145909		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
145910	}
145911	var body io.Reader = nil
145912	c.urlParams_.Set("alt", alt)
145913	c.urlParams_.Set("prettyPrint", "false")
145914	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/reservations")
145915	urls += "?" + c.urlParams_.Encode()
145916	req, err := http.NewRequest("GET", urls, body)
145917	if err != nil {
145918		return nil, err
145919	}
145920	req.Header = reqHeaders
145921	googleapi.Expand(req.URL, map[string]string{
145922		"project": c.project,
145923	})
145924	return gensupport.SendRequest(c.ctx_, c.s.client, req)
145925}
145926
145927// Do executes the "compute.reservations.aggregatedList" call.
145928// Exactly one of *ReservationAggregatedList or error will be non-nil.
145929// Any non-2xx status code is an error. Response headers are in either
145930// *ReservationAggregatedList.ServerResponse.Header or (if a response
145931// was returned at all) in error.(*googleapi.Error).Header. Use
145932// googleapi.IsNotModified to check whether the returned error was
145933// because http.StatusNotModified was returned.
145934func (c *ReservationsAggregatedListCall) Do(opts ...googleapi.CallOption) (*ReservationAggregatedList, error) {
145935	gensupport.SetOptions(c.urlParams_, opts...)
145936	res, err := c.doRequest("json")
145937	if res != nil && res.StatusCode == http.StatusNotModified {
145938		if res.Body != nil {
145939			res.Body.Close()
145940		}
145941		return nil, &googleapi.Error{
145942			Code:   res.StatusCode,
145943			Header: res.Header,
145944		}
145945	}
145946	if err != nil {
145947		return nil, err
145948	}
145949	defer googleapi.CloseBody(res)
145950	if err := googleapi.CheckResponse(res); err != nil {
145951		return nil, err
145952	}
145953	ret := &ReservationAggregatedList{
145954		ServerResponse: googleapi.ServerResponse{
145955			Header:         res.Header,
145956			HTTPStatusCode: res.StatusCode,
145957		},
145958	}
145959	target := &ret
145960	if err := gensupport.DecodeResponse(target, res); err != nil {
145961		return nil, err
145962	}
145963	return ret, nil
145964	// {
145965	//   "description": "Retrieves an aggregated list of reservations.",
145966	//   "httpMethod": "GET",
145967	//   "id": "compute.reservations.aggregatedList",
145968	//   "parameterOrder": [
145969	//     "project"
145970	//   ],
145971	//   "parameters": {
145972	//     "filter": {
145973	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
145974	//       "location": "query",
145975	//       "type": "string"
145976	//     },
145977	//     "includeAllScopes": {
145978	//       "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.",
145979	//       "location": "query",
145980	//       "type": "boolean"
145981	//     },
145982	//     "maxResults": {
145983	//       "default": "500",
145984	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
145985	//       "format": "uint32",
145986	//       "location": "query",
145987	//       "minimum": "0",
145988	//       "type": "integer"
145989	//     },
145990	//     "orderBy": {
145991	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
145992	//       "location": "query",
145993	//       "type": "string"
145994	//     },
145995	//     "pageToken": {
145996	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
145997	//       "location": "query",
145998	//       "type": "string"
145999	//     },
146000	//     "project": {
146001	//       "description": "Project ID for this request.",
146002	//       "location": "path",
146003	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
146004	//       "required": true,
146005	//       "type": "string"
146006	//     },
146007	//     "returnPartialSuccess": {
146008	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
146009	//       "location": "query",
146010	//       "type": "boolean"
146011	//     }
146012	//   },
146013	//   "path": "projects/{project}/aggregated/reservations",
146014	//   "response": {
146015	//     "$ref": "ReservationAggregatedList"
146016	//   },
146017	//   "scopes": [
146018	//     "https://www.googleapis.com/auth/cloud-platform",
146019	//     "https://www.googleapis.com/auth/compute",
146020	//     "https://www.googleapis.com/auth/compute.readonly"
146021	//   ]
146022	// }
146023
146024}
146025
146026// Pages invokes f for each page of results.
146027// A non-nil error returned from f will halt the iteration.
146028// The provided context supersedes any context provided to the Context method.
146029func (c *ReservationsAggregatedListCall) Pages(ctx context.Context, f func(*ReservationAggregatedList) error) error {
146030	c.ctx_ = ctx
146031	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
146032	for {
146033		x, err := c.Do()
146034		if err != nil {
146035			return err
146036		}
146037		if err := f(x); err != nil {
146038			return err
146039		}
146040		if x.NextPageToken == "" {
146041			return nil
146042		}
146043		c.PageToken(x.NextPageToken)
146044	}
146045}
146046
146047// method id "compute.reservations.delete":
146048
146049type ReservationsDeleteCall struct {
146050	s           *Service
146051	project     string
146052	zone        string
146053	reservation string
146054	urlParams_  gensupport.URLParams
146055	ctx_        context.Context
146056	header_     http.Header
146057}
146058
146059// Delete: Deletes the specified reservation.
146060func (r *ReservationsService) Delete(project string, zone string, reservation string) *ReservationsDeleteCall {
146061	c := &ReservationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
146062	c.project = project
146063	c.zone = zone
146064	c.reservation = reservation
146065	return c
146066}
146067
146068// RequestId sets the optional parameter "requestId": An optional
146069// request ID to identify requests. Specify a unique request ID so that
146070// if you must retry your request, the server will know to ignore the
146071// request if it has already been completed.
146072//
146073// For example, consider a situation where you make an initial request
146074// and the request times out. If you make the request again with the
146075// same request ID, the server can check if original operation with the
146076// same request ID was received, and if so, will ignore the second
146077// request. This prevents clients from accidentally creating duplicate
146078// commitments.
146079//
146080// The request ID must be a valid UUID with the exception that zero UUID
146081// is not supported (00000000-0000-0000-0000-000000000000).
146082func (c *ReservationsDeleteCall) RequestId(requestId string) *ReservationsDeleteCall {
146083	c.urlParams_.Set("requestId", requestId)
146084	return c
146085}
146086
146087// Fields allows partial responses to be retrieved. See
146088// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
146089// for more information.
146090func (c *ReservationsDeleteCall) Fields(s ...googleapi.Field) *ReservationsDeleteCall {
146091	c.urlParams_.Set("fields", googleapi.CombineFields(s))
146092	return c
146093}
146094
146095// Context sets the context to be used in this call's Do method. Any
146096// pending HTTP request will be aborted if the provided context is
146097// canceled.
146098func (c *ReservationsDeleteCall) Context(ctx context.Context) *ReservationsDeleteCall {
146099	c.ctx_ = ctx
146100	return c
146101}
146102
146103// Header returns an http.Header that can be modified by the caller to
146104// add HTTP headers to the request.
146105func (c *ReservationsDeleteCall) Header() http.Header {
146106	if c.header_ == nil {
146107		c.header_ = make(http.Header)
146108	}
146109	return c.header_
146110}
146111
146112func (c *ReservationsDeleteCall) doRequest(alt string) (*http.Response, error) {
146113	reqHeaders := make(http.Header)
146114	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
146115	for k, v := range c.header_ {
146116		reqHeaders[k] = v
146117	}
146118	reqHeaders.Set("User-Agent", c.s.userAgent())
146119	var body io.Reader = nil
146120	c.urlParams_.Set("alt", alt)
146121	c.urlParams_.Set("prettyPrint", "false")
146122	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations/{reservation}")
146123	urls += "?" + c.urlParams_.Encode()
146124	req, err := http.NewRequest("DELETE", urls, body)
146125	if err != nil {
146126		return nil, err
146127	}
146128	req.Header = reqHeaders
146129	googleapi.Expand(req.URL, map[string]string{
146130		"project":     c.project,
146131		"zone":        c.zone,
146132		"reservation": c.reservation,
146133	})
146134	return gensupport.SendRequest(c.ctx_, c.s.client, req)
146135}
146136
146137// Do executes the "compute.reservations.delete" call.
146138// Exactly one of *Operation or error will be non-nil. Any non-2xx
146139// status code is an error. Response headers are in either
146140// *Operation.ServerResponse.Header or (if a response was returned at
146141// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
146142// to check whether the returned error was because
146143// http.StatusNotModified was returned.
146144func (c *ReservationsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
146145	gensupport.SetOptions(c.urlParams_, opts...)
146146	res, err := c.doRequest("json")
146147	if res != nil && res.StatusCode == http.StatusNotModified {
146148		if res.Body != nil {
146149			res.Body.Close()
146150		}
146151		return nil, &googleapi.Error{
146152			Code:   res.StatusCode,
146153			Header: res.Header,
146154		}
146155	}
146156	if err != nil {
146157		return nil, err
146158	}
146159	defer googleapi.CloseBody(res)
146160	if err := googleapi.CheckResponse(res); err != nil {
146161		return nil, err
146162	}
146163	ret := &Operation{
146164		ServerResponse: googleapi.ServerResponse{
146165			Header:         res.Header,
146166			HTTPStatusCode: res.StatusCode,
146167		},
146168	}
146169	target := &ret
146170	if err := gensupport.DecodeResponse(target, res); err != nil {
146171		return nil, err
146172	}
146173	return ret, nil
146174	// {
146175	//   "description": "Deletes the specified reservation.",
146176	//   "httpMethod": "DELETE",
146177	//   "id": "compute.reservations.delete",
146178	//   "parameterOrder": [
146179	//     "project",
146180	//     "zone",
146181	//     "reservation"
146182	//   ],
146183	//   "parameters": {
146184	//     "project": {
146185	//       "description": "Project ID for this request.",
146186	//       "location": "path",
146187	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
146188	//       "required": true,
146189	//       "type": "string"
146190	//     },
146191	//     "requestId": {
146192	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
146193	//       "location": "query",
146194	//       "type": "string"
146195	//     },
146196	//     "reservation": {
146197	//       "description": "Name of the reservation to delete.",
146198	//       "location": "path",
146199	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
146200	//       "required": true,
146201	//       "type": "string"
146202	//     },
146203	//     "zone": {
146204	//       "description": "Name of the zone for this request.",
146205	//       "location": "path",
146206	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
146207	//       "required": true,
146208	//       "type": "string"
146209	//     }
146210	//   },
146211	//   "path": "projects/{project}/zones/{zone}/reservations/{reservation}",
146212	//   "response": {
146213	//     "$ref": "Operation"
146214	//   },
146215	//   "scopes": [
146216	//     "https://www.googleapis.com/auth/cloud-platform",
146217	//     "https://www.googleapis.com/auth/compute"
146218	//   ]
146219	// }
146220
146221}
146222
146223// method id "compute.reservations.get":
146224
146225type ReservationsGetCall struct {
146226	s            *Service
146227	project      string
146228	zone         string
146229	reservation  string
146230	urlParams_   gensupport.URLParams
146231	ifNoneMatch_ string
146232	ctx_         context.Context
146233	header_      http.Header
146234}
146235
146236// Get: Retrieves information about the specified reservation.
146237func (r *ReservationsService) Get(project string, zone string, reservation string) *ReservationsGetCall {
146238	c := &ReservationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
146239	c.project = project
146240	c.zone = zone
146241	c.reservation = reservation
146242	return c
146243}
146244
146245// Fields allows partial responses to be retrieved. See
146246// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
146247// for more information.
146248func (c *ReservationsGetCall) Fields(s ...googleapi.Field) *ReservationsGetCall {
146249	c.urlParams_.Set("fields", googleapi.CombineFields(s))
146250	return c
146251}
146252
146253// IfNoneMatch sets the optional parameter which makes the operation
146254// fail if the object's ETag matches the given value. This is useful for
146255// getting updates only after the object has changed since the last
146256// request. Use googleapi.IsNotModified to check whether the response
146257// error from Do is the result of In-None-Match.
146258func (c *ReservationsGetCall) IfNoneMatch(entityTag string) *ReservationsGetCall {
146259	c.ifNoneMatch_ = entityTag
146260	return c
146261}
146262
146263// Context sets the context to be used in this call's Do method. Any
146264// pending HTTP request will be aborted if the provided context is
146265// canceled.
146266func (c *ReservationsGetCall) Context(ctx context.Context) *ReservationsGetCall {
146267	c.ctx_ = ctx
146268	return c
146269}
146270
146271// Header returns an http.Header that can be modified by the caller to
146272// add HTTP headers to the request.
146273func (c *ReservationsGetCall) Header() http.Header {
146274	if c.header_ == nil {
146275		c.header_ = make(http.Header)
146276	}
146277	return c.header_
146278}
146279
146280func (c *ReservationsGetCall) doRequest(alt string) (*http.Response, error) {
146281	reqHeaders := make(http.Header)
146282	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
146283	for k, v := range c.header_ {
146284		reqHeaders[k] = v
146285	}
146286	reqHeaders.Set("User-Agent", c.s.userAgent())
146287	if c.ifNoneMatch_ != "" {
146288		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
146289	}
146290	var body io.Reader = nil
146291	c.urlParams_.Set("alt", alt)
146292	c.urlParams_.Set("prettyPrint", "false")
146293	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations/{reservation}")
146294	urls += "?" + c.urlParams_.Encode()
146295	req, err := http.NewRequest("GET", urls, body)
146296	if err != nil {
146297		return nil, err
146298	}
146299	req.Header = reqHeaders
146300	googleapi.Expand(req.URL, map[string]string{
146301		"project":     c.project,
146302		"zone":        c.zone,
146303		"reservation": c.reservation,
146304	})
146305	return gensupport.SendRequest(c.ctx_, c.s.client, req)
146306}
146307
146308// Do executes the "compute.reservations.get" call.
146309// Exactly one of *Reservation or error will be non-nil. Any non-2xx
146310// status code is an error. Response headers are in either
146311// *Reservation.ServerResponse.Header or (if a response was returned at
146312// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
146313// to check whether the returned error was because
146314// http.StatusNotModified was returned.
146315func (c *ReservationsGetCall) Do(opts ...googleapi.CallOption) (*Reservation, error) {
146316	gensupport.SetOptions(c.urlParams_, opts...)
146317	res, err := c.doRequest("json")
146318	if res != nil && res.StatusCode == http.StatusNotModified {
146319		if res.Body != nil {
146320			res.Body.Close()
146321		}
146322		return nil, &googleapi.Error{
146323			Code:   res.StatusCode,
146324			Header: res.Header,
146325		}
146326	}
146327	if err != nil {
146328		return nil, err
146329	}
146330	defer googleapi.CloseBody(res)
146331	if err := googleapi.CheckResponse(res); err != nil {
146332		return nil, err
146333	}
146334	ret := &Reservation{
146335		ServerResponse: googleapi.ServerResponse{
146336			Header:         res.Header,
146337			HTTPStatusCode: res.StatusCode,
146338		},
146339	}
146340	target := &ret
146341	if err := gensupport.DecodeResponse(target, res); err != nil {
146342		return nil, err
146343	}
146344	return ret, nil
146345	// {
146346	//   "description": "Retrieves information about the specified reservation.",
146347	//   "httpMethod": "GET",
146348	//   "id": "compute.reservations.get",
146349	//   "parameterOrder": [
146350	//     "project",
146351	//     "zone",
146352	//     "reservation"
146353	//   ],
146354	//   "parameters": {
146355	//     "project": {
146356	//       "description": "Project ID for this request.",
146357	//       "location": "path",
146358	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
146359	//       "required": true,
146360	//       "type": "string"
146361	//     },
146362	//     "reservation": {
146363	//       "description": "Name of the reservation to retrieve.",
146364	//       "location": "path",
146365	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
146366	//       "required": true,
146367	//       "type": "string"
146368	//     },
146369	//     "zone": {
146370	//       "description": "Name of the zone for this request.",
146371	//       "location": "path",
146372	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
146373	//       "required": true,
146374	//       "type": "string"
146375	//     }
146376	//   },
146377	//   "path": "projects/{project}/zones/{zone}/reservations/{reservation}",
146378	//   "response": {
146379	//     "$ref": "Reservation"
146380	//   },
146381	//   "scopes": [
146382	//     "https://www.googleapis.com/auth/cloud-platform",
146383	//     "https://www.googleapis.com/auth/compute",
146384	//     "https://www.googleapis.com/auth/compute.readonly"
146385	//   ]
146386	// }
146387
146388}
146389
146390// method id "compute.reservations.getIamPolicy":
146391
146392type ReservationsGetIamPolicyCall struct {
146393	s            *Service
146394	project      string
146395	zone         string
146396	resource     string
146397	urlParams_   gensupport.URLParams
146398	ifNoneMatch_ string
146399	ctx_         context.Context
146400	header_      http.Header
146401}
146402
146403// GetIamPolicy: Gets the access control policy for a resource. May be
146404// empty if no such policy or resource exists.
146405func (r *ReservationsService) GetIamPolicy(project string, zone string, resource string) *ReservationsGetIamPolicyCall {
146406	c := &ReservationsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
146407	c.project = project
146408	c.zone = zone
146409	c.resource = resource
146410	return c
146411}
146412
146413// OptionsRequestedPolicyVersion sets the optional parameter
146414// "optionsRequestedPolicyVersion": Requested IAM Policy version.
146415func (c *ReservationsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ReservationsGetIamPolicyCall {
146416	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
146417	return c
146418}
146419
146420// Fields allows partial responses to be retrieved. See
146421// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
146422// for more information.
146423func (c *ReservationsGetIamPolicyCall) Fields(s ...googleapi.Field) *ReservationsGetIamPolicyCall {
146424	c.urlParams_.Set("fields", googleapi.CombineFields(s))
146425	return c
146426}
146427
146428// IfNoneMatch sets the optional parameter which makes the operation
146429// fail if the object's ETag matches the given value. This is useful for
146430// getting updates only after the object has changed since the last
146431// request. Use googleapi.IsNotModified to check whether the response
146432// error from Do is the result of In-None-Match.
146433func (c *ReservationsGetIamPolicyCall) IfNoneMatch(entityTag string) *ReservationsGetIamPolicyCall {
146434	c.ifNoneMatch_ = entityTag
146435	return c
146436}
146437
146438// Context sets the context to be used in this call's Do method. Any
146439// pending HTTP request will be aborted if the provided context is
146440// canceled.
146441func (c *ReservationsGetIamPolicyCall) Context(ctx context.Context) *ReservationsGetIamPolicyCall {
146442	c.ctx_ = ctx
146443	return c
146444}
146445
146446// Header returns an http.Header that can be modified by the caller to
146447// add HTTP headers to the request.
146448func (c *ReservationsGetIamPolicyCall) Header() http.Header {
146449	if c.header_ == nil {
146450		c.header_ = make(http.Header)
146451	}
146452	return c.header_
146453}
146454
146455func (c *ReservationsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
146456	reqHeaders := make(http.Header)
146457	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
146458	for k, v := range c.header_ {
146459		reqHeaders[k] = v
146460	}
146461	reqHeaders.Set("User-Agent", c.s.userAgent())
146462	if c.ifNoneMatch_ != "" {
146463		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
146464	}
146465	var body io.Reader = nil
146466	c.urlParams_.Set("alt", alt)
146467	c.urlParams_.Set("prettyPrint", "false")
146468	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations/{resource}/getIamPolicy")
146469	urls += "?" + c.urlParams_.Encode()
146470	req, err := http.NewRequest("GET", urls, body)
146471	if err != nil {
146472		return nil, err
146473	}
146474	req.Header = reqHeaders
146475	googleapi.Expand(req.URL, map[string]string{
146476		"project":  c.project,
146477		"zone":     c.zone,
146478		"resource": c.resource,
146479	})
146480	return gensupport.SendRequest(c.ctx_, c.s.client, req)
146481}
146482
146483// Do executes the "compute.reservations.getIamPolicy" call.
146484// Exactly one of *Policy or error will be non-nil. Any non-2xx status
146485// code is an error. Response headers are in either
146486// *Policy.ServerResponse.Header or (if a response was returned at all)
146487// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
146488// check whether the returned error was because http.StatusNotModified
146489// was returned.
146490func (c *ReservationsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
146491	gensupport.SetOptions(c.urlParams_, opts...)
146492	res, err := c.doRequest("json")
146493	if res != nil && res.StatusCode == http.StatusNotModified {
146494		if res.Body != nil {
146495			res.Body.Close()
146496		}
146497		return nil, &googleapi.Error{
146498			Code:   res.StatusCode,
146499			Header: res.Header,
146500		}
146501	}
146502	if err != nil {
146503		return nil, err
146504	}
146505	defer googleapi.CloseBody(res)
146506	if err := googleapi.CheckResponse(res); err != nil {
146507		return nil, err
146508	}
146509	ret := &Policy{
146510		ServerResponse: googleapi.ServerResponse{
146511			Header:         res.Header,
146512			HTTPStatusCode: res.StatusCode,
146513		},
146514	}
146515	target := &ret
146516	if err := gensupport.DecodeResponse(target, res); err != nil {
146517		return nil, err
146518	}
146519	return ret, nil
146520	// {
146521	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
146522	//   "httpMethod": "GET",
146523	//   "id": "compute.reservations.getIamPolicy",
146524	//   "parameterOrder": [
146525	//     "project",
146526	//     "zone",
146527	//     "resource"
146528	//   ],
146529	//   "parameters": {
146530	//     "optionsRequestedPolicyVersion": {
146531	//       "description": "Requested IAM Policy version.",
146532	//       "format": "int32",
146533	//       "location": "query",
146534	//       "type": "integer"
146535	//     },
146536	//     "project": {
146537	//       "description": "Project ID for this request.",
146538	//       "location": "path",
146539	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
146540	//       "required": true,
146541	//       "type": "string"
146542	//     },
146543	//     "resource": {
146544	//       "description": "Name or id of the resource for this request.",
146545	//       "location": "path",
146546	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
146547	//       "required": true,
146548	//       "type": "string"
146549	//     },
146550	//     "zone": {
146551	//       "description": "The name of the zone for this request.",
146552	//       "location": "path",
146553	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
146554	//       "required": true,
146555	//       "type": "string"
146556	//     }
146557	//   },
146558	//   "path": "projects/{project}/zones/{zone}/reservations/{resource}/getIamPolicy",
146559	//   "response": {
146560	//     "$ref": "Policy"
146561	//   },
146562	//   "scopes": [
146563	//     "https://www.googleapis.com/auth/cloud-platform",
146564	//     "https://www.googleapis.com/auth/compute",
146565	//     "https://www.googleapis.com/auth/compute.readonly"
146566	//   ]
146567	// }
146568
146569}
146570
146571// method id "compute.reservations.insert":
146572
146573type ReservationsInsertCall struct {
146574	s           *Service
146575	project     string
146576	zone        string
146577	reservation *Reservation
146578	urlParams_  gensupport.URLParams
146579	ctx_        context.Context
146580	header_     http.Header
146581}
146582
146583// Insert: Creates a new reservation. For more information, read
146584// Reserving zonal resources.
146585func (r *ReservationsService) Insert(project string, zone string, reservation *Reservation) *ReservationsInsertCall {
146586	c := &ReservationsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
146587	c.project = project
146588	c.zone = zone
146589	c.reservation = reservation
146590	return c
146591}
146592
146593// RequestId sets the optional parameter "requestId": An optional
146594// request ID to identify requests. Specify a unique request ID so that
146595// if you must retry your request, the server will know to ignore the
146596// request if it has already been completed.
146597//
146598// For example, consider a situation where you make an initial request
146599// and the request times out. If you make the request again with the
146600// same request ID, the server can check if original operation with the
146601// same request ID was received, and if so, will ignore the second
146602// request. This prevents clients from accidentally creating duplicate
146603// commitments.
146604//
146605// The request ID must be a valid UUID with the exception that zero UUID
146606// is not supported (00000000-0000-0000-0000-000000000000).
146607func (c *ReservationsInsertCall) RequestId(requestId string) *ReservationsInsertCall {
146608	c.urlParams_.Set("requestId", requestId)
146609	return c
146610}
146611
146612// Fields allows partial responses to be retrieved. See
146613// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
146614// for more information.
146615func (c *ReservationsInsertCall) Fields(s ...googleapi.Field) *ReservationsInsertCall {
146616	c.urlParams_.Set("fields", googleapi.CombineFields(s))
146617	return c
146618}
146619
146620// Context sets the context to be used in this call's Do method. Any
146621// pending HTTP request will be aborted if the provided context is
146622// canceled.
146623func (c *ReservationsInsertCall) Context(ctx context.Context) *ReservationsInsertCall {
146624	c.ctx_ = ctx
146625	return c
146626}
146627
146628// Header returns an http.Header that can be modified by the caller to
146629// add HTTP headers to the request.
146630func (c *ReservationsInsertCall) Header() http.Header {
146631	if c.header_ == nil {
146632		c.header_ = make(http.Header)
146633	}
146634	return c.header_
146635}
146636
146637func (c *ReservationsInsertCall) doRequest(alt string) (*http.Response, error) {
146638	reqHeaders := make(http.Header)
146639	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
146640	for k, v := range c.header_ {
146641		reqHeaders[k] = v
146642	}
146643	reqHeaders.Set("User-Agent", c.s.userAgent())
146644	var body io.Reader = nil
146645	body, err := googleapi.WithoutDataWrapper.JSONReader(c.reservation)
146646	if err != nil {
146647		return nil, err
146648	}
146649	reqHeaders.Set("Content-Type", "application/json")
146650	c.urlParams_.Set("alt", alt)
146651	c.urlParams_.Set("prettyPrint", "false")
146652	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations")
146653	urls += "?" + c.urlParams_.Encode()
146654	req, err := http.NewRequest("POST", urls, body)
146655	if err != nil {
146656		return nil, err
146657	}
146658	req.Header = reqHeaders
146659	googleapi.Expand(req.URL, map[string]string{
146660		"project": c.project,
146661		"zone":    c.zone,
146662	})
146663	return gensupport.SendRequest(c.ctx_, c.s.client, req)
146664}
146665
146666// Do executes the "compute.reservations.insert" call.
146667// Exactly one of *Operation or error will be non-nil. Any non-2xx
146668// status code is an error. Response headers are in either
146669// *Operation.ServerResponse.Header or (if a response was returned at
146670// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
146671// to check whether the returned error was because
146672// http.StatusNotModified was returned.
146673func (c *ReservationsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
146674	gensupport.SetOptions(c.urlParams_, opts...)
146675	res, err := c.doRequest("json")
146676	if res != nil && res.StatusCode == http.StatusNotModified {
146677		if res.Body != nil {
146678			res.Body.Close()
146679		}
146680		return nil, &googleapi.Error{
146681			Code:   res.StatusCode,
146682			Header: res.Header,
146683		}
146684	}
146685	if err != nil {
146686		return nil, err
146687	}
146688	defer googleapi.CloseBody(res)
146689	if err := googleapi.CheckResponse(res); err != nil {
146690		return nil, err
146691	}
146692	ret := &Operation{
146693		ServerResponse: googleapi.ServerResponse{
146694			Header:         res.Header,
146695			HTTPStatusCode: res.StatusCode,
146696		},
146697	}
146698	target := &ret
146699	if err := gensupport.DecodeResponse(target, res); err != nil {
146700		return nil, err
146701	}
146702	return ret, nil
146703	// {
146704	//   "description": "Creates a new reservation. For more information, read Reserving zonal resources.",
146705	//   "httpMethod": "POST",
146706	//   "id": "compute.reservations.insert",
146707	//   "parameterOrder": [
146708	//     "project",
146709	//     "zone"
146710	//   ],
146711	//   "parameters": {
146712	//     "project": {
146713	//       "description": "Project ID for this request.",
146714	//       "location": "path",
146715	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
146716	//       "required": true,
146717	//       "type": "string"
146718	//     },
146719	//     "requestId": {
146720	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
146721	//       "location": "query",
146722	//       "type": "string"
146723	//     },
146724	//     "zone": {
146725	//       "description": "Name of the zone for this request.",
146726	//       "location": "path",
146727	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
146728	//       "required": true,
146729	//       "type": "string"
146730	//     }
146731	//   },
146732	//   "path": "projects/{project}/zones/{zone}/reservations",
146733	//   "request": {
146734	//     "$ref": "Reservation"
146735	//   },
146736	//   "response": {
146737	//     "$ref": "Operation"
146738	//   },
146739	//   "scopes": [
146740	//     "https://www.googleapis.com/auth/cloud-platform",
146741	//     "https://www.googleapis.com/auth/compute"
146742	//   ]
146743	// }
146744
146745}
146746
146747// method id "compute.reservations.list":
146748
146749type ReservationsListCall struct {
146750	s            *Service
146751	project      string
146752	zone         string
146753	urlParams_   gensupport.URLParams
146754	ifNoneMatch_ string
146755	ctx_         context.Context
146756	header_      http.Header
146757}
146758
146759// List: A list of all the reservations that have been configured for
146760// the specified project in specified zone.
146761func (r *ReservationsService) List(project string, zone string) *ReservationsListCall {
146762	c := &ReservationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
146763	c.project = project
146764	c.zone = zone
146765	return c
146766}
146767
146768// Filter sets the optional parameter "filter": A filter expression that
146769// filters resources listed in the response. The expression must specify
146770// the field name, a comparison operator, and the value that you want to
146771// use for filtering. The value must be a string, a number, or a
146772// boolean. The comparison operator must be either `=`, `!=`, `>`, or
146773// `<`.
146774//
146775// For example, if you are filtering Compute Engine instances, you can
146776// exclude instances named `example-instance` by specifying `name !=
146777// example-instance`.
146778//
146779// You can also filter nested fields. For example, you could specify
146780// `scheduling.automaticRestart = false` to include instances only if
146781// they are not scheduled for automatic restarts. You can use filtering
146782// on nested fields to filter based on resource labels.
146783//
146784// To filter on multiple expressions, provide each separate expression
146785// within parentheses. For example: ``` (scheduling.automaticRestart =
146786// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
146787// is an `AND` expression. However, you can include `AND` and `OR`
146788// expressions explicitly. For example: ``` (cpuPlatform = "Intel
146789// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
146790// (scheduling.automaticRestart = true) ```
146791func (c *ReservationsListCall) Filter(filter string) *ReservationsListCall {
146792	c.urlParams_.Set("filter", filter)
146793	return c
146794}
146795
146796// MaxResults sets the optional parameter "maxResults": The maximum
146797// number of results per page that should be returned. If the number of
146798// available results is larger than `maxResults`, Compute Engine returns
146799// a `nextPageToken` that can be used to get the next page of results in
146800// subsequent list requests. Acceptable values are `0` to `500`,
146801// inclusive. (Default: `500`)
146802func (c *ReservationsListCall) MaxResults(maxResults int64) *ReservationsListCall {
146803	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
146804	return c
146805}
146806
146807// OrderBy sets the optional parameter "orderBy": Sorts list results by
146808// a certain order. By default, results are returned in alphanumerical
146809// order based on the resource name.
146810//
146811// You can also sort results in descending order based on the creation
146812// timestamp using `orderBy="creationTimestamp desc". This sorts
146813// results based on the `creationTimestamp` field in reverse
146814// chronological order (newest result first). Use this to sort resources
146815// like operations so that the newest operation is returned
146816// first.
146817//
146818// Currently, only sorting by `name` or `creationTimestamp desc` is
146819// supported.
146820func (c *ReservationsListCall) OrderBy(orderBy string) *ReservationsListCall {
146821	c.urlParams_.Set("orderBy", orderBy)
146822	return c
146823}
146824
146825// PageToken sets the optional parameter "pageToken": Specifies a page
146826// token to use. Set `pageToken` to the `nextPageToken` returned by a
146827// previous list request to get the next page of results.
146828func (c *ReservationsListCall) PageToken(pageToken string) *ReservationsListCall {
146829	c.urlParams_.Set("pageToken", pageToken)
146830	return c
146831}
146832
146833// ReturnPartialSuccess sets the optional parameter
146834// "returnPartialSuccess": Opt-in for partial success behavior which
146835// provides partial results in case of failure. The default value is
146836// false.
146837func (c *ReservationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ReservationsListCall {
146838	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
146839	return c
146840}
146841
146842// Fields allows partial responses to be retrieved. See
146843// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
146844// for more information.
146845func (c *ReservationsListCall) Fields(s ...googleapi.Field) *ReservationsListCall {
146846	c.urlParams_.Set("fields", googleapi.CombineFields(s))
146847	return c
146848}
146849
146850// IfNoneMatch sets the optional parameter which makes the operation
146851// fail if the object's ETag matches the given value. This is useful for
146852// getting updates only after the object has changed since the last
146853// request. Use googleapi.IsNotModified to check whether the response
146854// error from Do is the result of In-None-Match.
146855func (c *ReservationsListCall) IfNoneMatch(entityTag string) *ReservationsListCall {
146856	c.ifNoneMatch_ = entityTag
146857	return c
146858}
146859
146860// Context sets the context to be used in this call's Do method. Any
146861// pending HTTP request will be aborted if the provided context is
146862// canceled.
146863func (c *ReservationsListCall) Context(ctx context.Context) *ReservationsListCall {
146864	c.ctx_ = ctx
146865	return c
146866}
146867
146868// Header returns an http.Header that can be modified by the caller to
146869// add HTTP headers to the request.
146870func (c *ReservationsListCall) Header() http.Header {
146871	if c.header_ == nil {
146872		c.header_ = make(http.Header)
146873	}
146874	return c.header_
146875}
146876
146877func (c *ReservationsListCall) doRequest(alt string) (*http.Response, error) {
146878	reqHeaders := make(http.Header)
146879	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
146880	for k, v := range c.header_ {
146881		reqHeaders[k] = v
146882	}
146883	reqHeaders.Set("User-Agent", c.s.userAgent())
146884	if c.ifNoneMatch_ != "" {
146885		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
146886	}
146887	var body io.Reader = nil
146888	c.urlParams_.Set("alt", alt)
146889	c.urlParams_.Set("prettyPrint", "false")
146890	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations")
146891	urls += "?" + c.urlParams_.Encode()
146892	req, err := http.NewRequest("GET", urls, body)
146893	if err != nil {
146894		return nil, err
146895	}
146896	req.Header = reqHeaders
146897	googleapi.Expand(req.URL, map[string]string{
146898		"project": c.project,
146899		"zone":    c.zone,
146900	})
146901	return gensupport.SendRequest(c.ctx_, c.s.client, req)
146902}
146903
146904// Do executes the "compute.reservations.list" call.
146905// Exactly one of *ReservationList or error will be non-nil. Any non-2xx
146906// status code is an error. Response headers are in either
146907// *ReservationList.ServerResponse.Header or (if a response was returned
146908// at all) in error.(*googleapi.Error).Header. Use
146909// googleapi.IsNotModified to check whether the returned error was
146910// because http.StatusNotModified was returned.
146911func (c *ReservationsListCall) Do(opts ...googleapi.CallOption) (*ReservationList, error) {
146912	gensupport.SetOptions(c.urlParams_, opts...)
146913	res, err := c.doRequest("json")
146914	if res != nil && res.StatusCode == http.StatusNotModified {
146915		if res.Body != nil {
146916			res.Body.Close()
146917		}
146918		return nil, &googleapi.Error{
146919			Code:   res.StatusCode,
146920			Header: res.Header,
146921		}
146922	}
146923	if err != nil {
146924		return nil, err
146925	}
146926	defer googleapi.CloseBody(res)
146927	if err := googleapi.CheckResponse(res); err != nil {
146928		return nil, err
146929	}
146930	ret := &ReservationList{
146931		ServerResponse: googleapi.ServerResponse{
146932			Header:         res.Header,
146933			HTTPStatusCode: res.StatusCode,
146934		},
146935	}
146936	target := &ret
146937	if err := gensupport.DecodeResponse(target, res); err != nil {
146938		return nil, err
146939	}
146940	return ret, nil
146941	// {
146942	//   "description": "A list of all the reservations that have been configured for the specified project in specified zone.",
146943	//   "httpMethod": "GET",
146944	//   "id": "compute.reservations.list",
146945	//   "parameterOrder": [
146946	//     "project",
146947	//     "zone"
146948	//   ],
146949	//   "parameters": {
146950	//     "filter": {
146951	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
146952	//       "location": "query",
146953	//       "type": "string"
146954	//     },
146955	//     "maxResults": {
146956	//       "default": "500",
146957	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
146958	//       "format": "uint32",
146959	//       "location": "query",
146960	//       "minimum": "0",
146961	//       "type": "integer"
146962	//     },
146963	//     "orderBy": {
146964	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
146965	//       "location": "query",
146966	//       "type": "string"
146967	//     },
146968	//     "pageToken": {
146969	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
146970	//       "location": "query",
146971	//       "type": "string"
146972	//     },
146973	//     "project": {
146974	//       "description": "Project ID for this request.",
146975	//       "location": "path",
146976	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
146977	//       "required": true,
146978	//       "type": "string"
146979	//     },
146980	//     "returnPartialSuccess": {
146981	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
146982	//       "location": "query",
146983	//       "type": "boolean"
146984	//     },
146985	//     "zone": {
146986	//       "description": "Name of the zone for this request.",
146987	//       "location": "path",
146988	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
146989	//       "required": true,
146990	//       "type": "string"
146991	//     }
146992	//   },
146993	//   "path": "projects/{project}/zones/{zone}/reservations",
146994	//   "response": {
146995	//     "$ref": "ReservationList"
146996	//   },
146997	//   "scopes": [
146998	//     "https://www.googleapis.com/auth/cloud-platform",
146999	//     "https://www.googleapis.com/auth/compute",
147000	//     "https://www.googleapis.com/auth/compute.readonly"
147001	//   ]
147002	// }
147003
147004}
147005
147006// Pages invokes f for each page of results.
147007// A non-nil error returned from f will halt the iteration.
147008// The provided context supersedes any context provided to the Context method.
147009func (c *ReservationsListCall) Pages(ctx context.Context, f func(*ReservationList) error) error {
147010	c.ctx_ = ctx
147011	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
147012	for {
147013		x, err := c.Do()
147014		if err != nil {
147015			return err
147016		}
147017		if err := f(x); err != nil {
147018			return err
147019		}
147020		if x.NextPageToken == "" {
147021			return nil
147022		}
147023		c.PageToken(x.NextPageToken)
147024	}
147025}
147026
147027// method id "compute.reservations.resize":
147028
147029type ReservationsResizeCall struct {
147030	s                         *Service
147031	project                   string
147032	zone                      string
147033	reservation               string
147034	reservationsresizerequest *ReservationsResizeRequest
147035	urlParams_                gensupport.URLParams
147036	ctx_                      context.Context
147037	header_                   http.Header
147038}
147039
147040// Resize: Resizes the reservation (applicable to standalone
147041// reservations only). For more information, read Modifying
147042// reservations.
147043func (r *ReservationsService) Resize(project string, zone string, reservation string, reservationsresizerequest *ReservationsResizeRequest) *ReservationsResizeCall {
147044	c := &ReservationsResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
147045	c.project = project
147046	c.zone = zone
147047	c.reservation = reservation
147048	c.reservationsresizerequest = reservationsresizerequest
147049	return c
147050}
147051
147052// RequestId sets the optional parameter "requestId": An optional
147053// request ID to identify requests. Specify a unique request ID so that
147054// if you must retry your request, the server will know to ignore the
147055// request if it has already been completed.
147056//
147057// For example, consider a situation where you make an initial request
147058// and the request times out. If you make the request again with the
147059// same request ID, the server can check if original operation with the
147060// same request ID was received, and if so, will ignore the second
147061// request. This prevents clients from accidentally creating duplicate
147062// commitments.
147063//
147064// The request ID must be a valid UUID with the exception that zero UUID
147065// is not supported (00000000-0000-0000-0000-000000000000).
147066func (c *ReservationsResizeCall) RequestId(requestId string) *ReservationsResizeCall {
147067	c.urlParams_.Set("requestId", requestId)
147068	return c
147069}
147070
147071// Fields allows partial responses to be retrieved. See
147072// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
147073// for more information.
147074func (c *ReservationsResizeCall) Fields(s ...googleapi.Field) *ReservationsResizeCall {
147075	c.urlParams_.Set("fields", googleapi.CombineFields(s))
147076	return c
147077}
147078
147079// Context sets the context to be used in this call's Do method. Any
147080// pending HTTP request will be aborted if the provided context is
147081// canceled.
147082func (c *ReservationsResizeCall) Context(ctx context.Context) *ReservationsResizeCall {
147083	c.ctx_ = ctx
147084	return c
147085}
147086
147087// Header returns an http.Header that can be modified by the caller to
147088// add HTTP headers to the request.
147089func (c *ReservationsResizeCall) Header() http.Header {
147090	if c.header_ == nil {
147091		c.header_ = make(http.Header)
147092	}
147093	return c.header_
147094}
147095
147096func (c *ReservationsResizeCall) doRequest(alt string) (*http.Response, error) {
147097	reqHeaders := make(http.Header)
147098	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
147099	for k, v := range c.header_ {
147100		reqHeaders[k] = v
147101	}
147102	reqHeaders.Set("User-Agent", c.s.userAgent())
147103	var body io.Reader = nil
147104	body, err := googleapi.WithoutDataWrapper.JSONReader(c.reservationsresizerequest)
147105	if err != nil {
147106		return nil, err
147107	}
147108	reqHeaders.Set("Content-Type", "application/json")
147109	c.urlParams_.Set("alt", alt)
147110	c.urlParams_.Set("prettyPrint", "false")
147111	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations/{reservation}/resize")
147112	urls += "?" + c.urlParams_.Encode()
147113	req, err := http.NewRequest("POST", urls, body)
147114	if err != nil {
147115		return nil, err
147116	}
147117	req.Header = reqHeaders
147118	googleapi.Expand(req.URL, map[string]string{
147119		"project":     c.project,
147120		"zone":        c.zone,
147121		"reservation": c.reservation,
147122	})
147123	return gensupport.SendRequest(c.ctx_, c.s.client, req)
147124}
147125
147126// Do executes the "compute.reservations.resize" call.
147127// Exactly one of *Operation or error will be non-nil. Any non-2xx
147128// status code is an error. Response headers are in either
147129// *Operation.ServerResponse.Header or (if a response was returned at
147130// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
147131// to check whether the returned error was because
147132// http.StatusNotModified was returned.
147133func (c *ReservationsResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
147134	gensupport.SetOptions(c.urlParams_, opts...)
147135	res, err := c.doRequest("json")
147136	if res != nil && res.StatusCode == http.StatusNotModified {
147137		if res.Body != nil {
147138			res.Body.Close()
147139		}
147140		return nil, &googleapi.Error{
147141			Code:   res.StatusCode,
147142			Header: res.Header,
147143		}
147144	}
147145	if err != nil {
147146		return nil, err
147147	}
147148	defer googleapi.CloseBody(res)
147149	if err := googleapi.CheckResponse(res); err != nil {
147150		return nil, err
147151	}
147152	ret := &Operation{
147153		ServerResponse: googleapi.ServerResponse{
147154			Header:         res.Header,
147155			HTTPStatusCode: res.StatusCode,
147156		},
147157	}
147158	target := &ret
147159	if err := gensupport.DecodeResponse(target, res); err != nil {
147160		return nil, err
147161	}
147162	return ret, nil
147163	// {
147164	//   "description": "Resizes the reservation (applicable to standalone reservations only). For more information, read Modifying reservations.",
147165	//   "httpMethod": "POST",
147166	//   "id": "compute.reservations.resize",
147167	//   "parameterOrder": [
147168	//     "project",
147169	//     "zone",
147170	//     "reservation"
147171	//   ],
147172	//   "parameters": {
147173	//     "project": {
147174	//       "description": "Project ID for this request.",
147175	//       "location": "path",
147176	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
147177	//       "required": true,
147178	//       "type": "string"
147179	//     },
147180	//     "requestId": {
147181	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
147182	//       "location": "query",
147183	//       "type": "string"
147184	//     },
147185	//     "reservation": {
147186	//       "description": "Name of the reservation to update.",
147187	//       "location": "path",
147188	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
147189	//       "required": true,
147190	//       "type": "string"
147191	//     },
147192	//     "zone": {
147193	//       "description": "Name of the zone for this request.",
147194	//       "location": "path",
147195	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
147196	//       "required": true,
147197	//       "type": "string"
147198	//     }
147199	//   },
147200	//   "path": "projects/{project}/zones/{zone}/reservations/{reservation}/resize",
147201	//   "request": {
147202	//     "$ref": "ReservationsResizeRequest"
147203	//   },
147204	//   "response": {
147205	//     "$ref": "Operation"
147206	//   },
147207	//   "scopes": [
147208	//     "https://www.googleapis.com/auth/cloud-platform",
147209	//     "https://www.googleapis.com/auth/compute"
147210	//   ]
147211	// }
147212
147213}
147214
147215// method id "compute.reservations.setIamPolicy":
147216
147217type ReservationsSetIamPolicyCall struct {
147218	s                    *Service
147219	project              string
147220	zone                 string
147221	resource             string
147222	zonesetpolicyrequest *ZoneSetPolicyRequest
147223	urlParams_           gensupport.URLParams
147224	ctx_                 context.Context
147225	header_              http.Header
147226}
147227
147228// SetIamPolicy: Sets the access control policy on the specified
147229// resource. Replaces any existing policy.
147230func (r *ReservationsService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *ReservationsSetIamPolicyCall {
147231	c := &ReservationsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
147232	c.project = project
147233	c.zone = zone
147234	c.resource = resource
147235	c.zonesetpolicyrequest = zonesetpolicyrequest
147236	return c
147237}
147238
147239// Fields allows partial responses to be retrieved. See
147240// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
147241// for more information.
147242func (c *ReservationsSetIamPolicyCall) Fields(s ...googleapi.Field) *ReservationsSetIamPolicyCall {
147243	c.urlParams_.Set("fields", googleapi.CombineFields(s))
147244	return c
147245}
147246
147247// Context sets the context to be used in this call's Do method. Any
147248// pending HTTP request will be aborted if the provided context is
147249// canceled.
147250func (c *ReservationsSetIamPolicyCall) Context(ctx context.Context) *ReservationsSetIamPolicyCall {
147251	c.ctx_ = ctx
147252	return c
147253}
147254
147255// Header returns an http.Header that can be modified by the caller to
147256// add HTTP headers to the request.
147257func (c *ReservationsSetIamPolicyCall) Header() http.Header {
147258	if c.header_ == nil {
147259		c.header_ = make(http.Header)
147260	}
147261	return c.header_
147262}
147263
147264func (c *ReservationsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
147265	reqHeaders := make(http.Header)
147266	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
147267	for k, v := range c.header_ {
147268		reqHeaders[k] = v
147269	}
147270	reqHeaders.Set("User-Agent", c.s.userAgent())
147271	var body io.Reader = nil
147272	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetpolicyrequest)
147273	if err != nil {
147274		return nil, err
147275	}
147276	reqHeaders.Set("Content-Type", "application/json")
147277	c.urlParams_.Set("alt", alt)
147278	c.urlParams_.Set("prettyPrint", "false")
147279	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations/{resource}/setIamPolicy")
147280	urls += "?" + c.urlParams_.Encode()
147281	req, err := http.NewRequest("POST", urls, body)
147282	if err != nil {
147283		return nil, err
147284	}
147285	req.Header = reqHeaders
147286	googleapi.Expand(req.URL, map[string]string{
147287		"project":  c.project,
147288		"zone":     c.zone,
147289		"resource": c.resource,
147290	})
147291	return gensupport.SendRequest(c.ctx_, c.s.client, req)
147292}
147293
147294// Do executes the "compute.reservations.setIamPolicy" call.
147295// Exactly one of *Policy or error will be non-nil. Any non-2xx status
147296// code is an error. Response headers are in either
147297// *Policy.ServerResponse.Header or (if a response was returned at all)
147298// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
147299// check whether the returned error was because http.StatusNotModified
147300// was returned.
147301func (c *ReservationsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
147302	gensupport.SetOptions(c.urlParams_, opts...)
147303	res, err := c.doRequest("json")
147304	if res != nil && res.StatusCode == http.StatusNotModified {
147305		if res.Body != nil {
147306			res.Body.Close()
147307		}
147308		return nil, &googleapi.Error{
147309			Code:   res.StatusCode,
147310			Header: res.Header,
147311		}
147312	}
147313	if err != nil {
147314		return nil, err
147315	}
147316	defer googleapi.CloseBody(res)
147317	if err := googleapi.CheckResponse(res); err != nil {
147318		return nil, err
147319	}
147320	ret := &Policy{
147321		ServerResponse: googleapi.ServerResponse{
147322			Header:         res.Header,
147323			HTTPStatusCode: res.StatusCode,
147324		},
147325	}
147326	target := &ret
147327	if err := gensupport.DecodeResponse(target, res); err != nil {
147328		return nil, err
147329	}
147330	return ret, nil
147331	// {
147332	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
147333	//   "httpMethod": "POST",
147334	//   "id": "compute.reservations.setIamPolicy",
147335	//   "parameterOrder": [
147336	//     "project",
147337	//     "zone",
147338	//     "resource"
147339	//   ],
147340	//   "parameters": {
147341	//     "project": {
147342	//       "description": "Project ID for this request.",
147343	//       "location": "path",
147344	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
147345	//       "required": true,
147346	//       "type": "string"
147347	//     },
147348	//     "resource": {
147349	//       "description": "Name or id of the resource for this request.",
147350	//       "location": "path",
147351	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
147352	//       "required": true,
147353	//       "type": "string"
147354	//     },
147355	//     "zone": {
147356	//       "description": "The name of the zone for this request.",
147357	//       "location": "path",
147358	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
147359	//       "required": true,
147360	//       "type": "string"
147361	//     }
147362	//   },
147363	//   "path": "projects/{project}/zones/{zone}/reservations/{resource}/setIamPolicy",
147364	//   "request": {
147365	//     "$ref": "ZoneSetPolicyRequest"
147366	//   },
147367	//   "response": {
147368	//     "$ref": "Policy"
147369	//   },
147370	//   "scopes": [
147371	//     "https://www.googleapis.com/auth/cloud-platform",
147372	//     "https://www.googleapis.com/auth/compute"
147373	//   ]
147374	// }
147375
147376}
147377
147378// method id "compute.reservations.testIamPermissions":
147379
147380type ReservationsTestIamPermissionsCall struct {
147381	s                      *Service
147382	project                string
147383	zone                   string
147384	resource               string
147385	testpermissionsrequest *TestPermissionsRequest
147386	urlParams_             gensupport.URLParams
147387	ctx_                   context.Context
147388	header_                http.Header
147389}
147390
147391// TestIamPermissions: Returns permissions that a caller has on the
147392// specified resource.
147393func (r *ReservationsService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *ReservationsTestIamPermissionsCall {
147394	c := &ReservationsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
147395	c.project = project
147396	c.zone = zone
147397	c.resource = resource
147398	c.testpermissionsrequest = testpermissionsrequest
147399	return c
147400}
147401
147402// Fields allows partial responses to be retrieved. See
147403// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
147404// for more information.
147405func (c *ReservationsTestIamPermissionsCall) Fields(s ...googleapi.Field) *ReservationsTestIamPermissionsCall {
147406	c.urlParams_.Set("fields", googleapi.CombineFields(s))
147407	return c
147408}
147409
147410// Context sets the context to be used in this call's Do method. Any
147411// pending HTTP request will be aborted if the provided context is
147412// canceled.
147413func (c *ReservationsTestIamPermissionsCall) Context(ctx context.Context) *ReservationsTestIamPermissionsCall {
147414	c.ctx_ = ctx
147415	return c
147416}
147417
147418// Header returns an http.Header that can be modified by the caller to
147419// add HTTP headers to the request.
147420func (c *ReservationsTestIamPermissionsCall) Header() http.Header {
147421	if c.header_ == nil {
147422		c.header_ = make(http.Header)
147423	}
147424	return c.header_
147425}
147426
147427func (c *ReservationsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
147428	reqHeaders := make(http.Header)
147429	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
147430	for k, v := range c.header_ {
147431		reqHeaders[k] = v
147432	}
147433	reqHeaders.Set("User-Agent", c.s.userAgent())
147434	var body io.Reader = nil
147435	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
147436	if err != nil {
147437		return nil, err
147438	}
147439	reqHeaders.Set("Content-Type", "application/json")
147440	c.urlParams_.Set("alt", alt)
147441	c.urlParams_.Set("prettyPrint", "false")
147442	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations/{resource}/testIamPermissions")
147443	urls += "?" + c.urlParams_.Encode()
147444	req, err := http.NewRequest("POST", urls, body)
147445	if err != nil {
147446		return nil, err
147447	}
147448	req.Header = reqHeaders
147449	googleapi.Expand(req.URL, map[string]string{
147450		"project":  c.project,
147451		"zone":     c.zone,
147452		"resource": c.resource,
147453	})
147454	return gensupport.SendRequest(c.ctx_, c.s.client, req)
147455}
147456
147457// Do executes the "compute.reservations.testIamPermissions" call.
147458// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
147459// non-2xx status code is an error. Response headers are in either
147460// *TestPermissionsResponse.ServerResponse.Header or (if a response was
147461// returned at all) in error.(*googleapi.Error).Header. Use
147462// googleapi.IsNotModified to check whether the returned error was
147463// because http.StatusNotModified was returned.
147464func (c *ReservationsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
147465	gensupport.SetOptions(c.urlParams_, opts...)
147466	res, err := c.doRequest("json")
147467	if res != nil && res.StatusCode == http.StatusNotModified {
147468		if res.Body != nil {
147469			res.Body.Close()
147470		}
147471		return nil, &googleapi.Error{
147472			Code:   res.StatusCode,
147473			Header: res.Header,
147474		}
147475	}
147476	if err != nil {
147477		return nil, err
147478	}
147479	defer googleapi.CloseBody(res)
147480	if err := googleapi.CheckResponse(res); err != nil {
147481		return nil, err
147482	}
147483	ret := &TestPermissionsResponse{
147484		ServerResponse: googleapi.ServerResponse{
147485			Header:         res.Header,
147486			HTTPStatusCode: res.StatusCode,
147487		},
147488	}
147489	target := &ret
147490	if err := gensupport.DecodeResponse(target, res); err != nil {
147491		return nil, err
147492	}
147493	return ret, nil
147494	// {
147495	//   "description": "Returns permissions that a caller has on the specified resource.",
147496	//   "httpMethod": "POST",
147497	//   "id": "compute.reservations.testIamPermissions",
147498	//   "parameterOrder": [
147499	//     "project",
147500	//     "zone",
147501	//     "resource"
147502	//   ],
147503	//   "parameters": {
147504	//     "project": {
147505	//       "description": "Project ID for this request.",
147506	//       "location": "path",
147507	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
147508	//       "required": true,
147509	//       "type": "string"
147510	//     },
147511	//     "resource": {
147512	//       "description": "Name or id of the resource for this request.",
147513	//       "location": "path",
147514	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
147515	//       "required": true,
147516	//       "type": "string"
147517	//     },
147518	//     "zone": {
147519	//       "description": "The name of the zone for this request.",
147520	//       "location": "path",
147521	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
147522	//       "required": true,
147523	//       "type": "string"
147524	//     }
147525	//   },
147526	//   "path": "projects/{project}/zones/{zone}/reservations/{resource}/testIamPermissions",
147527	//   "request": {
147528	//     "$ref": "TestPermissionsRequest"
147529	//   },
147530	//   "response": {
147531	//     "$ref": "TestPermissionsResponse"
147532	//   },
147533	//   "scopes": [
147534	//     "https://www.googleapis.com/auth/cloud-platform",
147535	//     "https://www.googleapis.com/auth/compute",
147536	//     "https://www.googleapis.com/auth/compute.readonly"
147537	//   ]
147538	// }
147539
147540}
147541
147542// method id "compute.resourcePolicies.aggregatedList":
147543
147544type ResourcePoliciesAggregatedListCall struct {
147545	s            *Service
147546	project      string
147547	urlParams_   gensupport.URLParams
147548	ifNoneMatch_ string
147549	ctx_         context.Context
147550	header_      http.Header
147551}
147552
147553// AggregatedList: Retrieves an aggregated list of resource policies.
147554func (r *ResourcePoliciesService) AggregatedList(project string) *ResourcePoliciesAggregatedListCall {
147555	c := &ResourcePoliciesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
147556	c.project = project
147557	return c
147558}
147559
147560// Filter sets the optional parameter "filter": A filter expression that
147561// filters resources listed in the response. The expression must specify
147562// the field name, a comparison operator, and the value that you want to
147563// use for filtering. The value must be a string, a number, or a
147564// boolean. The comparison operator must be either `=`, `!=`, `>`, or
147565// `<`.
147566//
147567// For example, if you are filtering Compute Engine instances, you can
147568// exclude instances named `example-instance` by specifying `name !=
147569// example-instance`.
147570//
147571// You can also filter nested fields. For example, you could specify
147572// `scheduling.automaticRestart = false` to include instances only if
147573// they are not scheduled for automatic restarts. You can use filtering
147574// on nested fields to filter based on resource labels.
147575//
147576// To filter on multiple expressions, provide each separate expression
147577// within parentheses. For example: ``` (scheduling.automaticRestart =
147578// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
147579// is an `AND` expression. However, you can include `AND` and `OR`
147580// expressions explicitly. For example: ``` (cpuPlatform = "Intel
147581// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
147582// (scheduling.automaticRestart = true) ```
147583func (c *ResourcePoliciesAggregatedListCall) Filter(filter string) *ResourcePoliciesAggregatedListCall {
147584	c.urlParams_.Set("filter", filter)
147585	return c
147586}
147587
147588// IncludeAllScopes sets the optional parameter "includeAllScopes":
147589// Indicates whether every visible scope for each scope type (zone,
147590// region, global) should be included in the response. For new resource
147591// types added after this field, the flag has no effect as new resource
147592// types will always include every visible scope for each scope type in
147593// response. For resource types which predate this field, if this flag
147594// is omitted or false, only scopes of the scope types where the
147595// resource type is expected to be found will be included.
147596func (c *ResourcePoliciesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *ResourcePoliciesAggregatedListCall {
147597	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
147598	return c
147599}
147600
147601// MaxResults sets the optional parameter "maxResults": The maximum
147602// number of results per page that should be returned. If the number of
147603// available results is larger than `maxResults`, Compute Engine returns
147604// a `nextPageToken` that can be used to get the next page of results in
147605// subsequent list requests. Acceptable values are `0` to `500`,
147606// inclusive. (Default: `500`)
147607func (c *ResourcePoliciesAggregatedListCall) MaxResults(maxResults int64) *ResourcePoliciesAggregatedListCall {
147608	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
147609	return c
147610}
147611
147612// OrderBy sets the optional parameter "orderBy": Sorts list results by
147613// a certain order. By default, results are returned in alphanumerical
147614// order based on the resource name.
147615//
147616// You can also sort results in descending order based on the creation
147617// timestamp using `orderBy="creationTimestamp desc". This sorts
147618// results based on the `creationTimestamp` field in reverse
147619// chronological order (newest result first). Use this to sort resources
147620// like operations so that the newest operation is returned
147621// first.
147622//
147623// Currently, only sorting by `name` or `creationTimestamp desc` is
147624// supported.
147625func (c *ResourcePoliciesAggregatedListCall) OrderBy(orderBy string) *ResourcePoliciesAggregatedListCall {
147626	c.urlParams_.Set("orderBy", orderBy)
147627	return c
147628}
147629
147630// PageToken sets the optional parameter "pageToken": Specifies a page
147631// token to use. Set `pageToken` to the `nextPageToken` returned by a
147632// previous list request to get the next page of results.
147633func (c *ResourcePoliciesAggregatedListCall) PageToken(pageToken string) *ResourcePoliciesAggregatedListCall {
147634	c.urlParams_.Set("pageToken", pageToken)
147635	return c
147636}
147637
147638// ReturnPartialSuccess sets the optional parameter
147639// "returnPartialSuccess": Opt-in for partial success behavior which
147640// provides partial results in case of failure. The default value is
147641// false.
147642func (c *ResourcePoliciesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ResourcePoliciesAggregatedListCall {
147643	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
147644	return c
147645}
147646
147647// Fields allows partial responses to be retrieved. See
147648// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
147649// for more information.
147650func (c *ResourcePoliciesAggregatedListCall) Fields(s ...googleapi.Field) *ResourcePoliciesAggregatedListCall {
147651	c.urlParams_.Set("fields", googleapi.CombineFields(s))
147652	return c
147653}
147654
147655// IfNoneMatch sets the optional parameter which makes the operation
147656// fail if the object's ETag matches the given value. This is useful for
147657// getting updates only after the object has changed since the last
147658// request. Use googleapi.IsNotModified to check whether the response
147659// error from Do is the result of In-None-Match.
147660func (c *ResourcePoliciesAggregatedListCall) IfNoneMatch(entityTag string) *ResourcePoliciesAggregatedListCall {
147661	c.ifNoneMatch_ = entityTag
147662	return c
147663}
147664
147665// Context sets the context to be used in this call's Do method. Any
147666// pending HTTP request will be aborted if the provided context is
147667// canceled.
147668func (c *ResourcePoliciesAggregatedListCall) Context(ctx context.Context) *ResourcePoliciesAggregatedListCall {
147669	c.ctx_ = ctx
147670	return c
147671}
147672
147673// Header returns an http.Header that can be modified by the caller to
147674// add HTTP headers to the request.
147675func (c *ResourcePoliciesAggregatedListCall) Header() http.Header {
147676	if c.header_ == nil {
147677		c.header_ = make(http.Header)
147678	}
147679	return c.header_
147680}
147681
147682func (c *ResourcePoliciesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
147683	reqHeaders := make(http.Header)
147684	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
147685	for k, v := range c.header_ {
147686		reqHeaders[k] = v
147687	}
147688	reqHeaders.Set("User-Agent", c.s.userAgent())
147689	if c.ifNoneMatch_ != "" {
147690		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
147691	}
147692	var body io.Reader = nil
147693	c.urlParams_.Set("alt", alt)
147694	c.urlParams_.Set("prettyPrint", "false")
147695	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/resourcePolicies")
147696	urls += "?" + c.urlParams_.Encode()
147697	req, err := http.NewRequest("GET", urls, body)
147698	if err != nil {
147699		return nil, err
147700	}
147701	req.Header = reqHeaders
147702	googleapi.Expand(req.URL, map[string]string{
147703		"project": c.project,
147704	})
147705	return gensupport.SendRequest(c.ctx_, c.s.client, req)
147706}
147707
147708// Do executes the "compute.resourcePolicies.aggregatedList" call.
147709// Exactly one of *ResourcePolicyAggregatedList or error will be
147710// non-nil. Any non-2xx status code is an error. Response headers are in
147711// either *ResourcePolicyAggregatedList.ServerResponse.Header or (if a
147712// response was returned at all) in error.(*googleapi.Error).Header. Use
147713// googleapi.IsNotModified to check whether the returned error was
147714// because http.StatusNotModified was returned.
147715func (c *ResourcePoliciesAggregatedListCall) Do(opts ...googleapi.CallOption) (*ResourcePolicyAggregatedList, error) {
147716	gensupport.SetOptions(c.urlParams_, opts...)
147717	res, err := c.doRequest("json")
147718	if res != nil && res.StatusCode == http.StatusNotModified {
147719		if res.Body != nil {
147720			res.Body.Close()
147721		}
147722		return nil, &googleapi.Error{
147723			Code:   res.StatusCode,
147724			Header: res.Header,
147725		}
147726	}
147727	if err != nil {
147728		return nil, err
147729	}
147730	defer googleapi.CloseBody(res)
147731	if err := googleapi.CheckResponse(res); err != nil {
147732		return nil, err
147733	}
147734	ret := &ResourcePolicyAggregatedList{
147735		ServerResponse: googleapi.ServerResponse{
147736			Header:         res.Header,
147737			HTTPStatusCode: res.StatusCode,
147738		},
147739	}
147740	target := &ret
147741	if err := gensupport.DecodeResponse(target, res); err != nil {
147742		return nil, err
147743	}
147744	return ret, nil
147745	// {
147746	//   "description": "Retrieves an aggregated list of resource policies.",
147747	//   "httpMethod": "GET",
147748	//   "id": "compute.resourcePolicies.aggregatedList",
147749	//   "parameterOrder": [
147750	//     "project"
147751	//   ],
147752	//   "parameters": {
147753	//     "filter": {
147754	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
147755	//       "location": "query",
147756	//       "type": "string"
147757	//     },
147758	//     "includeAllScopes": {
147759	//       "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.",
147760	//       "location": "query",
147761	//       "type": "boolean"
147762	//     },
147763	//     "maxResults": {
147764	//       "default": "500",
147765	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
147766	//       "format": "uint32",
147767	//       "location": "query",
147768	//       "minimum": "0",
147769	//       "type": "integer"
147770	//     },
147771	//     "orderBy": {
147772	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
147773	//       "location": "query",
147774	//       "type": "string"
147775	//     },
147776	//     "pageToken": {
147777	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
147778	//       "location": "query",
147779	//       "type": "string"
147780	//     },
147781	//     "project": {
147782	//       "description": "Project ID for this request.",
147783	//       "location": "path",
147784	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
147785	//       "required": true,
147786	//       "type": "string"
147787	//     },
147788	//     "returnPartialSuccess": {
147789	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
147790	//       "location": "query",
147791	//       "type": "boolean"
147792	//     }
147793	//   },
147794	//   "path": "projects/{project}/aggregated/resourcePolicies",
147795	//   "response": {
147796	//     "$ref": "ResourcePolicyAggregatedList"
147797	//   },
147798	//   "scopes": [
147799	//     "https://www.googleapis.com/auth/cloud-platform",
147800	//     "https://www.googleapis.com/auth/compute",
147801	//     "https://www.googleapis.com/auth/compute.readonly"
147802	//   ]
147803	// }
147804
147805}
147806
147807// Pages invokes f for each page of results.
147808// A non-nil error returned from f will halt the iteration.
147809// The provided context supersedes any context provided to the Context method.
147810func (c *ResourcePoliciesAggregatedListCall) Pages(ctx context.Context, f func(*ResourcePolicyAggregatedList) error) error {
147811	c.ctx_ = ctx
147812	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
147813	for {
147814		x, err := c.Do()
147815		if err != nil {
147816			return err
147817		}
147818		if err := f(x); err != nil {
147819			return err
147820		}
147821		if x.NextPageToken == "" {
147822			return nil
147823		}
147824		c.PageToken(x.NextPageToken)
147825	}
147826}
147827
147828// method id "compute.resourcePolicies.delete":
147829
147830type ResourcePoliciesDeleteCall struct {
147831	s              *Service
147832	project        string
147833	region         string
147834	resourcePolicy string
147835	urlParams_     gensupport.URLParams
147836	ctx_           context.Context
147837	header_        http.Header
147838}
147839
147840// Delete: Deletes the specified resource policy.
147841func (r *ResourcePoliciesService) Delete(project string, region string, resourcePolicy string) *ResourcePoliciesDeleteCall {
147842	c := &ResourcePoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
147843	c.project = project
147844	c.region = region
147845	c.resourcePolicy = resourcePolicy
147846	return c
147847}
147848
147849// RequestId sets the optional parameter "requestId": An optional
147850// request ID to identify requests. Specify a unique request ID so that
147851// if you must retry your request, the server will know to ignore the
147852// request if it has already been completed.
147853//
147854// For example, consider a situation where you make an initial request
147855// and the request times out. If you make the request again with the
147856// same request ID, the server can check if original operation with the
147857// same request ID was received, and if so, will ignore the second
147858// request. This prevents clients from accidentally creating duplicate
147859// commitments.
147860//
147861// The request ID must be a valid UUID with the exception that zero UUID
147862// is not supported (00000000-0000-0000-0000-000000000000).
147863func (c *ResourcePoliciesDeleteCall) RequestId(requestId string) *ResourcePoliciesDeleteCall {
147864	c.urlParams_.Set("requestId", requestId)
147865	return c
147866}
147867
147868// Fields allows partial responses to be retrieved. See
147869// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
147870// for more information.
147871func (c *ResourcePoliciesDeleteCall) Fields(s ...googleapi.Field) *ResourcePoliciesDeleteCall {
147872	c.urlParams_.Set("fields", googleapi.CombineFields(s))
147873	return c
147874}
147875
147876// Context sets the context to be used in this call's Do method. Any
147877// pending HTTP request will be aborted if the provided context is
147878// canceled.
147879func (c *ResourcePoliciesDeleteCall) Context(ctx context.Context) *ResourcePoliciesDeleteCall {
147880	c.ctx_ = ctx
147881	return c
147882}
147883
147884// Header returns an http.Header that can be modified by the caller to
147885// add HTTP headers to the request.
147886func (c *ResourcePoliciesDeleteCall) Header() http.Header {
147887	if c.header_ == nil {
147888		c.header_ = make(http.Header)
147889	}
147890	return c.header_
147891}
147892
147893func (c *ResourcePoliciesDeleteCall) doRequest(alt string) (*http.Response, error) {
147894	reqHeaders := make(http.Header)
147895	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
147896	for k, v := range c.header_ {
147897		reqHeaders[k] = v
147898	}
147899	reqHeaders.Set("User-Agent", c.s.userAgent())
147900	var body io.Reader = nil
147901	c.urlParams_.Set("alt", alt)
147902	c.urlParams_.Set("prettyPrint", "false")
147903	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}")
147904	urls += "?" + c.urlParams_.Encode()
147905	req, err := http.NewRequest("DELETE", urls, body)
147906	if err != nil {
147907		return nil, err
147908	}
147909	req.Header = reqHeaders
147910	googleapi.Expand(req.URL, map[string]string{
147911		"project":        c.project,
147912		"region":         c.region,
147913		"resourcePolicy": c.resourcePolicy,
147914	})
147915	return gensupport.SendRequest(c.ctx_, c.s.client, req)
147916}
147917
147918// Do executes the "compute.resourcePolicies.delete" call.
147919// Exactly one of *Operation or error will be non-nil. Any non-2xx
147920// status code is an error. Response headers are in either
147921// *Operation.ServerResponse.Header or (if a response was returned at
147922// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
147923// to check whether the returned error was because
147924// http.StatusNotModified was returned.
147925func (c *ResourcePoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
147926	gensupport.SetOptions(c.urlParams_, opts...)
147927	res, err := c.doRequest("json")
147928	if res != nil && res.StatusCode == http.StatusNotModified {
147929		if res.Body != nil {
147930			res.Body.Close()
147931		}
147932		return nil, &googleapi.Error{
147933			Code:   res.StatusCode,
147934			Header: res.Header,
147935		}
147936	}
147937	if err != nil {
147938		return nil, err
147939	}
147940	defer googleapi.CloseBody(res)
147941	if err := googleapi.CheckResponse(res); err != nil {
147942		return nil, err
147943	}
147944	ret := &Operation{
147945		ServerResponse: googleapi.ServerResponse{
147946			Header:         res.Header,
147947			HTTPStatusCode: res.StatusCode,
147948		},
147949	}
147950	target := &ret
147951	if err := gensupport.DecodeResponse(target, res); err != nil {
147952		return nil, err
147953	}
147954	return ret, nil
147955	// {
147956	//   "description": "Deletes the specified resource policy.",
147957	//   "httpMethod": "DELETE",
147958	//   "id": "compute.resourcePolicies.delete",
147959	//   "parameterOrder": [
147960	//     "project",
147961	//     "region",
147962	//     "resourcePolicy"
147963	//   ],
147964	//   "parameters": {
147965	//     "project": {
147966	//       "description": "Project ID for this request.",
147967	//       "location": "path",
147968	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
147969	//       "required": true,
147970	//       "type": "string"
147971	//     },
147972	//     "region": {
147973	//       "description": "Name of the region for this request.",
147974	//       "location": "path",
147975	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
147976	//       "required": true,
147977	//       "type": "string"
147978	//     },
147979	//     "requestId": {
147980	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
147981	//       "location": "query",
147982	//       "type": "string"
147983	//     },
147984	//     "resourcePolicy": {
147985	//       "description": "Name of the resource policy to delete.",
147986	//       "location": "path",
147987	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
147988	//       "required": true,
147989	//       "type": "string"
147990	//     }
147991	//   },
147992	//   "path": "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}",
147993	//   "response": {
147994	//     "$ref": "Operation"
147995	//   },
147996	//   "scopes": [
147997	//     "https://www.googleapis.com/auth/cloud-platform",
147998	//     "https://www.googleapis.com/auth/compute"
147999	//   ]
148000	// }
148001
148002}
148003
148004// method id "compute.resourcePolicies.get":
148005
148006type ResourcePoliciesGetCall struct {
148007	s              *Service
148008	project        string
148009	region         string
148010	resourcePolicy string
148011	urlParams_     gensupport.URLParams
148012	ifNoneMatch_   string
148013	ctx_           context.Context
148014	header_        http.Header
148015}
148016
148017// Get: Retrieves all information of the specified resource policy.
148018func (r *ResourcePoliciesService) Get(project string, region string, resourcePolicy string) *ResourcePoliciesGetCall {
148019	c := &ResourcePoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
148020	c.project = project
148021	c.region = region
148022	c.resourcePolicy = resourcePolicy
148023	return c
148024}
148025
148026// Fields allows partial responses to be retrieved. See
148027// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
148028// for more information.
148029func (c *ResourcePoliciesGetCall) Fields(s ...googleapi.Field) *ResourcePoliciesGetCall {
148030	c.urlParams_.Set("fields", googleapi.CombineFields(s))
148031	return c
148032}
148033
148034// IfNoneMatch sets the optional parameter which makes the operation
148035// fail if the object's ETag matches the given value. This is useful for
148036// getting updates only after the object has changed since the last
148037// request. Use googleapi.IsNotModified to check whether the response
148038// error from Do is the result of In-None-Match.
148039func (c *ResourcePoliciesGetCall) IfNoneMatch(entityTag string) *ResourcePoliciesGetCall {
148040	c.ifNoneMatch_ = entityTag
148041	return c
148042}
148043
148044// Context sets the context to be used in this call's Do method. Any
148045// pending HTTP request will be aborted if the provided context is
148046// canceled.
148047func (c *ResourcePoliciesGetCall) Context(ctx context.Context) *ResourcePoliciesGetCall {
148048	c.ctx_ = ctx
148049	return c
148050}
148051
148052// Header returns an http.Header that can be modified by the caller to
148053// add HTTP headers to the request.
148054func (c *ResourcePoliciesGetCall) Header() http.Header {
148055	if c.header_ == nil {
148056		c.header_ = make(http.Header)
148057	}
148058	return c.header_
148059}
148060
148061func (c *ResourcePoliciesGetCall) doRequest(alt string) (*http.Response, error) {
148062	reqHeaders := make(http.Header)
148063	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
148064	for k, v := range c.header_ {
148065		reqHeaders[k] = v
148066	}
148067	reqHeaders.Set("User-Agent", c.s.userAgent())
148068	if c.ifNoneMatch_ != "" {
148069		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
148070	}
148071	var body io.Reader = nil
148072	c.urlParams_.Set("alt", alt)
148073	c.urlParams_.Set("prettyPrint", "false")
148074	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}")
148075	urls += "?" + c.urlParams_.Encode()
148076	req, err := http.NewRequest("GET", urls, body)
148077	if err != nil {
148078		return nil, err
148079	}
148080	req.Header = reqHeaders
148081	googleapi.Expand(req.URL, map[string]string{
148082		"project":        c.project,
148083		"region":         c.region,
148084		"resourcePolicy": c.resourcePolicy,
148085	})
148086	return gensupport.SendRequest(c.ctx_, c.s.client, req)
148087}
148088
148089// Do executes the "compute.resourcePolicies.get" call.
148090// Exactly one of *ResourcePolicy or error will be non-nil. Any non-2xx
148091// status code is an error. Response headers are in either
148092// *ResourcePolicy.ServerResponse.Header or (if a response was returned
148093// at all) in error.(*googleapi.Error).Header. Use
148094// googleapi.IsNotModified to check whether the returned error was
148095// because http.StatusNotModified was returned.
148096func (c *ResourcePoliciesGetCall) Do(opts ...googleapi.CallOption) (*ResourcePolicy, error) {
148097	gensupport.SetOptions(c.urlParams_, opts...)
148098	res, err := c.doRequest("json")
148099	if res != nil && res.StatusCode == http.StatusNotModified {
148100		if res.Body != nil {
148101			res.Body.Close()
148102		}
148103		return nil, &googleapi.Error{
148104			Code:   res.StatusCode,
148105			Header: res.Header,
148106		}
148107	}
148108	if err != nil {
148109		return nil, err
148110	}
148111	defer googleapi.CloseBody(res)
148112	if err := googleapi.CheckResponse(res); err != nil {
148113		return nil, err
148114	}
148115	ret := &ResourcePolicy{
148116		ServerResponse: googleapi.ServerResponse{
148117			Header:         res.Header,
148118			HTTPStatusCode: res.StatusCode,
148119		},
148120	}
148121	target := &ret
148122	if err := gensupport.DecodeResponse(target, res); err != nil {
148123		return nil, err
148124	}
148125	return ret, nil
148126	// {
148127	//   "description": "Retrieves all information of the specified resource policy.",
148128	//   "httpMethod": "GET",
148129	//   "id": "compute.resourcePolicies.get",
148130	//   "parameterOrder": [
148131	//     "project",
148132	//     "region",
148133	//     "resourcePolicy"
148134	//   ],
148135	//   "parameters": {
148136	//     "project": {
148137	//       "description": "Project ID for this request.",
148138	//       "location": "path",
148139	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
148140	//       "required": true,
148141	//       "type": "string"
148142	//     },
148143	//     "region": {
148144	//       "description": "Name of the region for this request.",
148145	//       "location": "path",
148146	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
148147	//       "required": true,
148148	//       "type": "string"
148149	//     },
148150	//     "resourcePolicy": {
148151	//       "description": "Name of the resource policy to retrieve.",
148152	//       "location": "path",
148153	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
148154	//       "required": true,
148155	//       "type": "string"
148156	//     }
148157	//   },
148158	//   "path": "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}",
148159	//   "response": {
148160	//     "$ref": "ResourcePolicy"
148161	//   },
148162	//   "scopes": [
148163	//     "https://www.googleapis.com/auth/cloud-platform",
148164	//     "https://www.googleapis.com/auth/compute",
148165	//     "https://www.googleapis.com/auth/compute.readonly"
148166	//   ]
148167	// }
148168
148169}
148170
148171// method id "compute.resourcePolicies.getIamPolicy":
148172
148173type ResourcePoliciesGetIamPolicyCall struct {
148174	s            *Service
148175	project      string
148176	region       string
148177	resource     string
148178	urlParams_   gensupport.URLParams
148179	ifNoneMatch_ string
148180	ctx_         context.Context
148181	header_      http.Header
148182}
148183
148184// GetIamPolicy: Gets the access control policy for a resource. May be
148185// empty if no such policy or resource exists.
148186func (r *ResourcePoliciesService) GetIamPolicy(project string, region string, resource string) *ResourcePoliciesGetIamPolicyCall {
148187	c := &ResourcePoliciesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
148188	c.project = project
148189	c.region = region
148190	c.resource = resource
148191	return c
148192}
148193
148194// OptionsRequestedPolicyVersion sets the optional parameter
148195// "optionsRequestedPolicyVersion": Requested IAM Policy version.
148196func (c *ResourcePoliciesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ResourcePoliciesGetIamPolicyCall {
148197	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
148198	return c
148199}
148200
148201// Fields allows partial responses to be retrieved. See
148202// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
148203// for more information.
148204func (c *ResourcePoliciesGetIamPolicyCall) Fields(s ...googleapi.Field) *ResourcePoliciesGetIamPolicyCall {
148205	c.urlParams_.Set("fields", googleapi.CombineFields(s))
148206	return c
148207}
148208
148209// IfNoneMatch sets the optional parameter which makes the operation
148210// fail if the object's ETag matches the given value. This is useful for
148211// getting updates only after the object has changed since the last
148212// request. Use googleapi.IsNotModified to check whether the response
148213// error from Do is the result of In-None-Match.
148214func (c *ResourcePoliciesGetIamPolicyCall) IfNoneMatch(entityTag string) *ResourcePoliciesGetIamPolicyCall {
148215	c.ifNoneMatch_ = entityTag
148216	return c
148217}
148218
148219// Context sets the context to be used in this call's Do method. Any
148220// pending HTTP request will be aborted if the provided context is
148221// canceled.
148222func (c *ResourcePoliciesGetIamPolicyCall) Context(ctx context.Context) *ResourcePoliciesGetIamPolicyCall {
148223	c.ctx_ = ctx
148224	return c
148225}
148226
148227// Header returns an http.Header that can be modified by the caller to
148228// add HTTP headers to the request.
148229func (c *ResourcePoliciesGetIamPolicyCall) Header() http.Header {
148230	if c.header_ == nil {
148231		c.header_ = make(http.Header)
148232	}
148233	return c.header_
148234}
148235
148236func (c *ResourcePoliciesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
148237	reqHeaders := make(http.Header)
148238	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
148239	for k, v := range c.header_ {
148240		reqHeaders[k] = v
148241	}
148242	reqHeaders.Set("User-Agent", c.s.userAgent())
148243	if c.ifNoneMatch_ != "" {
148244		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
148245	}
148246	var body io.Reader = nil
148247	c.urlParams_.Set("alt", alt)
148248	c.urlParams_.Set("prettyPrint", "false")
148249	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/resourcePolicies/{resource}/getIamPolicy")
148250	urls += "?" + c.urlParams_.Encode()
148251	req, err := http.NewRequest("GET", urls, body)
148252	if err != nil {
148253		return nil, err
148254	}
148255	req.Header = reqHeaders
148256	googleapi.Expand(req.URL, map[string]string{
148257		"project":  c.project,
148258		"region":   c.region,
148259		"resource": c.resource,
148260	})
148261	return gensupport.SendRequest(c.ctx_, c.s.client, req)
148262}
148263
148264// Do executes the "compute.resourcePolicies.getIamPolicy" call.
148265// Exactly one of *Policy or error will be non-nil. Any non-2xx status
148266// code is an error. Response headers are in either
148267// *Policy.ServerResponse.Header or (if a response was returned at all)
148268// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
148269// check whether the returned error was because http.StatusNotModified
148270// was returned.
148271func (c *ResourcePoliciesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
148272	gensupport.SetOptions(c.urlParams_, opts...)
148273	res, err := c.doRequest("json")
148274	if res != nil && res.StatusCode == http.StatusNotModified {
148275		if res.Body != nil {
148276			res.Body.Close()
148277		}
148278		return nil, &googleapi.Error{
148279			Code:   res.StatusCode,
148280			Header: res.Header,
148281		}
148282	}
148283	if err != nil {
148284		return nil, err
148285	}
148286	defer googleapi.CloseBody(res)
148287	if err := googleapi.CheckResponse(res); err != nil {
148288		return nil, err
148289	}
148290	ret := &Policy{
148291		ServerResponse: googleapi.ServerResponse{
148292			Header:         res.Header,
148293			HTTPStatusCode: res.StatusCode,
148294		},
148295	}
148296	target := &ret
148297	if err := gensupport.DecodeResponse(target, res); err != nil {
148298		return nil, err
148299	}
148300	return ret, nil
148301	// {
148302	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
148303	//   "httpMethod": "GET",
148304	//   "id": "compute.resourcePolicies.getIamPolicy",
148305	//   "parameterOrder": [
148306	//     "project",
148307	//     "region",
148308	//     "resource"
148309	//   ],
148310	//   "parameters": {
148311	//     "optionsRequestedPolicyVersion": {
148312	//       "description": "Requested IAM Policy version.",
148313	//       "format": "int32",
148314	//       "location": "query",
148315	//       "type": "integer"
148316	//     },
148317	//     "project": {
148318	//       "description": "Project ID for this request.",
148319	//       "location": "path",
148320	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
148321	//       "required": true,
148322	//       "type": "string"
148323	//     },
148324	//     "region": {
148325	//       "description": "The name of the region for this request.",
148326	//       "location": "path",
148327	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
148328	//       "required": true,
148329	//       "type": "string"
148330	//     },
148331	//     "resource": {
148332	//       "description": "Name or id of the resource for this request.",
148333	//       "location": "path",
148334	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
148335	//       "required": true,
148336	//       "type": "string"
148337	//     }
148338	//   },
148339	//   "path": "projects/{project}/regions/{region}/resourcePolicies/{resource}/getIamPolicy",
148340	//   "response": {
148341	//     "$ref": "Policy"
148342	//   },
148343	//   "scopes": [
148344	//     "https://www.googleapis.com/auth/cloud-platform",
148345	//     "https://www.googleapis.com/auth/compute",
148346	//     "https://www.googleapis.com/auth/compute.readonly"
148347	//   ]
148348	// }
148349
148350}
148351
148352// method id "compute.resourcePolicies.insert":
148353
148354type ResourcePoliciesInsertCall struct {
148355	s              *Service
148356	project        string
148357	region         string
148358	resourcepolicy *ResourcePolicy
148359	urlParams_     gensupport.URLParams
148360	ctx_           context.Context
148361	header_        http.Header
148362}
148363
148364// Insert: Creates a new resource policy.
148365func (r *ResourcePoliciesService) Insert(project string, region string, resourcepolicy *ResourcePolicy) *ResourcePoliciesInsertCall {
148366	c := &ResourcePoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
148367	c.project = project
148368	c.region = region
148369	c.resourcepolicy = resourcepolicy
148370	return c
148371}
148372
148373// RequestId sets the optional parameter "requestId": An optional
148374// request ID to identify requests. Specify a unique request ID so that
148375// if you must retry your request, the server will know to ignore the
148376// request if it has already been completed.
148377//
148378// For example, consider a situation where you make an initial request
148379// and the request times out. If you make the request again with the
148380// same request ID, the server can check if original operation with the
148381// same request ID was received, and if so, will ignore the second
148382// request. This prevents clients from accidentally creating duplicate
148383// commitments.
148384//
148385// The request ID must be a valid UUID with the exception that zero UUID
148386// is not supported (00000000-0000-0000-0000-000000000000).
148387func (c *ResourcePoliciesInsertCall) RequestId(requestId string) *ResourcePoliciesInsertCall {
148388	c.urlParams_.Set("requestId", requestId)
148389	return c
148390}
148391
148392// Fields allows partial responses to be retrieved. See
148393// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
148394// for more information.
148395func (c *ResourcePoliciesInsertCall) Fields(s ...googleapi.Field) *ResourcePoliciesInsertCall {
148396	c.urlParams_.Set("fields", googleapi.CombineFields(s))
148397	return c
148398}
148399
148400// Context sets the context to be used in this call's Do method. Any
148401// pending HTTP request will be aborted if the provided context is
148402// canceled.
148403func (c *ResourcePoliciesInsertCall) Context(ctx context.Context) *ResourcePoliciesInsertCall {
148404	c.ctx_ = ctx
148405	return c
148406}
148407
148408// Header returns an http.Header that can be modified by the caller to
148409// add HTTP headers to the request.
148410func (c *ResourcePoliciesInsertCall) Header() http.Header {
148411	if c.header_ == nil {
148412		c.header_ = make(http.Header)
148413	}
148414	return c.header_
148415}
148416
148417func (c *ResourcePoliciesInsertCall) doRequest(alt string) (*http.Response, error) {
148418	reqHeaders := make(http.Header)
148419	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
148420	for k, v := range c.header_ {
148421		reqHeaders[k] = v
148422	}
148423	reqHeaders.Set("User-Agent", c.s.userAgent())
148424	var body io.Reader = nil
148425	body, err := googleapi.WithoutDataWrapper.JSONReader(c.resourcepolicy)
148426	if err != nil {
148427		return nil, err
148428	}
148429	reqHeaders.Set("Content-Type", "application/json")
148430	c.urlParams_.Set("alt", alt)
148431	c.urlParams_.Set("prettyPrint", "false")
148432	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/resourcePolicies")
148433	urls += "?" + c.urlParams_.Encode()
148434	req, err := http.NewRequest("POST", urls, body)
148435	if err != nil {
148436		return nil, err
148437	}
148438	req.Header = reqHeaders
148439	googleapi.Expand(req.URL, map[string]string{
148440		"project": c.project,
148441		"region":  c.region,
148442	})
148443	return gensupport.SendRequest(c.ctx_, c.s.client, req)
148444}
148445
148446// Do executes the "compute.resourcePolicies.insert" call.
148447// Exactly one of *Operation or error will be non-nil. Any non-2xx
148448// status code is an error. Response headers are in either
148449// *Operation.ServerResponse.Header or (if a response was returned at
148450// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
148451// to check whether the returned error was because
148452// http.StatusNotModified was returned.
148453func (c *ResourcePoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
148454	gensupport.SetOptions(c.urlParams_, opts...)
148455	res, err := c.doRequest("json")
148456	if res != nil && res.StatusCode == http.StatusNotModified {
148457		if res.Body != nil {
148458			res.Body.Close()
148459		}
148460		return nil, &googleapi.Error{
148461			Code:   res.StatusCode,
148462			Header: res.Header,
148463		}
148464	}
148465	if err != nil {
148466		return nil, err
148467	}
148468	defer googleapi.CloseBody(res)
148469	if err := googleapi.CheckResponse(res); err != nil {
148470		return nil, err
148471	}
148472	ret := &Operation{
148473		ServerResponse: googleapi.ServerResponse{
148474			Header:         res.Header,
148475			HTTPStatusCode: res.StatusCode,
148476		},
148477	}
148478	target := &ret
148479	if err := gensupport.DecodeResponse(target, res); err != nil {
148480		return nil, err
148481	}
148482	return ret, nil
148483	// {
148484	//   "description": "Creates a new resource policy.",
148485	//   "httpMethod": "POST",
148486	//   "id": "compute.resourcePolicies.insert",
148487	//   "parameterOrder": [
148488	//     "project",
148489	//     "region"
148490	//   ],
148491	//   "parameters": {
148492	//     "project": {
148493	//       "description": "Project ID for this request.",
148494	//       "location": "path",
148495	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
148496	//       "required": true,
148497	//       "type": "string"
148498	//     },
148499	//     "region": {
148500	//       "description": "Name of the region for this request.",
148501	//       "location": "path",
148502	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
148503	//       "required": true,
148504	//       "type": "string"
148505	//     },
148506	//     "requestId": {
148507	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
148508	//       "location": "query",
148509	//       "type": "string"
148510	//     }
148511	//   },
148512	//   "path": "projects/{project}/regions/{region}/resourcePolicies",
148513	//   "request": {
148514	//     "$ref": "ResourcePolicy"
148515	//   },
148516	//   "response": {
148517	//     "$ref": "Operation"
148518	//   },
148519	//   "scopes": [
148520	//     "https://www.googleapis.com/auth/cloud-platform",
148521	//     "https://www.googleapis.com/auth/compute"
148522	//   ]
148523	// }
148524
148525}
148526
148527// method id "compute.resourcePolicies.list":
148528
148529type ResourcePoliciesListCall struct {
148530	s            *Service
148531	project      string
148532	region       string
148533	urlParams_   gensupport.URLParams
148534	ifNoneMatch_ string
148535	ctx_         context.Context
148536	header_      http.Header
148537}
148538
148539// List: A list all the resource policies that have been configured for
148540// the specified project in specified region.
148541func (r *ResourcePoliciesService) List(project string, region string) *ResourcePoliciesListCall {
148542	c := &ResourcePoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
148543	c.project = project
148544	c.region = region
148545	return c
148546}
148547
148548// Filter sets the optional parameter "filter": A filter expression that
148549// filters resources listed in the response. The expression must specify
148550// the field name, a comparison operator, and the value that you want to
148551// use for filtering. The value must be a string, a number, or a
148552// boolean. The comparison operator must be either `=`, `!=`, `>`, or
148553// `<`.
148554//
148555// For example, if you are filtering Compute Engine instances, you can
148556// exclude instances named `example-instance` by specifying `name !=
148557// example-instance`.
148558//
148559// You can also filter nested fields. For example, you could specify
148560// `scheduling.automaticRestart = false` to include instances only if
148561// they are not scheduled for automatic restarts. You can use filtering
148562// on nested fields to filter based on resource labels.
148563//
148564// To filter on multiple expressions, provide each separate expression
148565// within parentheses. For example: ``` (scheduling.automaticRestart =
148566// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
148567// is an `AND` expression. However, you can include `AND` and `OR`
148568// expressions explicitly. For example: ``` (cpuPlatform = "Intel
148569// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
148570// (scheduling.automaticRestart = true) ```
148571func (c *ResourcePoliciesListCall) Filter(filter string) *ResourcePoliciesListCall {
148572	c.urlParams_.Set("filter", filter)
148573	return c
148574}
148575
148576// MaxResults sets the optional parameter "maxResults": The maximum
148577// number of results per page that should be returned. If the number of
148578// available results is larger than `maxResults`, Compute Engine returns
148579// a `nextPageToken` that can be used to get the next page of results in
148580// subsequent list requests. Acceptable values are `0` to `500`,
148581// inclusive. (Default: `500`)
148582func (c *ResourcePoliciesListCall) MaxResults(maxResults int64) *ResourcePoliciesListCall {
148583	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
148584	return c
148585}
148586
148587// OrderBy sets the optional parameter "orderBy": Sorts list results by
148588// a certain order. By default, results are returned in alphanumerical
148589// order based on the resource name.
148590//
148591// You can also sort results in descending order based on the creation
148592// timestamp using `orderBy="creationTimestamp desc". This sorts
148593// results based on the `creationTimestamp` field in reverse
148594// chronological order (newest result first). Use this to sort resources
148595// like operations so that the newest operation is returned
148596// first.
148597//
148598// Currently, only sorting by `name` or `creationTimestamp desc` is
148599// supported.
148600func (c *ResourcePoliciesListCall) OrderBy(orderBy string) *ResourcePoliciesListCall {
148601	c.urlParams_.Set("orderBy", orderBy)
148602	return c
148603}
148604
148605// PageToken sets the optional parameter "pageToken": Specifies a page
148606// token to use. Set `pageToken` to the `nextPageToken` returned by a
148607// previous list request to get the next page of results.
148608func (c *ResourcePoliciesListCall) PageToken(pageToken string) *ResourcePoliciesListCall {
148609	c.urlParams_.Set("pageToken", pageToken)
148610	return c
148611}
148612
148613// ReturnPartialSuccess sets the optional parameter
148614// "returnPartialSuccess": Opt-in for partial success behavior which
148615// provides partial results in case of failure. The default value is
148616// false.
148617func (c *ResourcePoliciesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ResourcePoliciesListCall {
148618	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
148619	return c
148620}
148621
148622// Fields allows partial responses to be retrieved. See
148623// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
148624// for more information.
148625func (c *ResourcePoliciesListCall) Fields(s ...googleapi.Field) *ResourcePoliciesListCall {
148626	c.urlParams_.Set("fields", googleapi.CombineFields(s))
148627	return c
148628}
148629
148630// IfNoneMatch sets the optional parameter which makes the operation
148631// fail if the object's ETag matches the given value. This is useful for
148632// getting updates only after the object has changed since the last
148633// request. Use googleapi.IsNotModified to check whether the response
148634// error from Do is the result of In-None-Match.
148635func (c *ResourcePoliciesListCall) IfNoneMatch(entityTag string) *ResourcePoliciesListCall {
148636	c.ifNoneMatch_ = entityTag
148637	return c
148638}
148639
148640// Context sets the context to be used in this call's Do method. Any
148641// pending HTTP request will be aborted if the provided context is
148642// canceled.
148643func (c *ResourcePoliciesListCall) Context(ctx context.Context) *ResourcePoliciesListCall {
148644	c.ctx_ = ctx
148645	return c
148646}
148647
148648// Header returns an http.Header that can be modified by the caller to
148649// add HTTP headers to the request.
148650func (c *ResourcePoliciesListCall) Header() http.Header {
148651	if c.header_ == nil {
148652		c.header_ = make(http.Header)
148653	}
148654	return c.header_
148655}
148656
148657func (c *ResourcePoliciesListCall) doRequest(alt string) (*http.Response, error) {
148658	reqHeaders := make(http.Header)
148659	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
148660	for k, v := range c.header_ {
148661		reqHeaders[k] = v
148662	}
148663	reqHeaders.Set("User-Agent", c.s.userAgent())
148664	if c.ifNoneMatch_ != "" {
148665		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
148666	}
148667	var body io.Reader = nil
148668	c.urlParams_.Set("alt", alt)
148669	c.urlParams_.Set("prettyPrint", "false")
148670	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/resourcePolicies")
148671	urls += "?" + c.urlParams_.Encode()
148672	req, err := http.NewRequest("GET", urls, body)
148673	if err != nil {
148674		return nil, err
148675	}
148676	req.Header = reqHeaders
148677	googleapi.Expand(req.URL, map[string]string{
148678		"project": c.project,
148679		"region":  c.region,
148680	})
148681	return gensupport.SendRequest(c.ctx_, c.s.client, req)
148682}
148683
148684// Do executes the "compute.resourcePolicies.list" call.
148685// Exactly one of *ResourcePolicyList or error will be non-nil. Any
148686// non-2xx status code is an error. Response headers are in either
148687// *ResourcePolicyList.ServerResponse.Header or (if a response was
148688// returned at all) in error.(*googleapi.Error).Header. Use
148689// googleapi.IsNotModified to check whether the returned error was
148690// because http.StatusNotModified was returned.
148691func (c *ResourcePoliciesListCall) Do(opts ...googleapi.CallOption) (*ResourcePolicyList, error) {
148692	gensupport.SetOptions(c.urlParams_, opts...)
148693	res, err := c.doRequest("json")
148694	if res != nil && res.StatusCode == http.StatusNotModified {
148695		if res.Body != nil {
148696			res.Body.Close()
148697		}
148698		return nil, &googleapi.Error{
148699			Code:   res.StatusCode,
148700			Header: res.Header,
148701		}
148702	}
148703	if err != nil {
148704		return nil, err
148705	}
148706	defer googleapi.CloseBody(res)
148707	if err := googleapi.CheckResponse(res); err != nil {
148708		return nil, err
148709	}
148710	ret := &ResourcePolicyList{
148711		ServerResponse: googleapi.ServerResponse{
148712			Header:         res.Header,
148713			HTTPStatusCode: res.StatusCode,
148714		},
148715	}
148716	target := &ret
148717	if err := gensupport.DecodeResponse(target, res); err != nil {
148718		return nil, err
148719	}
148720	return ret, nil
148721	// {
148722	//   "description": "A list all the resource policies that have been configured for the specified project in specified region.",
148723	//   "httpMethod": "GET",
148724	//   "id": "compute.resourcePolicies.list",
148725	//   "parameterOrder": [
148726	//     "project",
148727	//     "region"
148728	//   ],
148729	//   "parameters": {
148730	//     "filter": {
148731	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
148732	//       "location": "query",
148733	//       "type": "string"
148734	//     },
148735	//     "maxResults": {
148736	//       "default": "500",
148737	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
148738	//       "format": "uint32",
148739	//       "location": "query",
148740	//       "minimum": "0",
148741	//       "type": "integer"
148742	//     },
148743	//     "orderBy": {
148744	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
148745	//       "location": "query",
148746	//       "type": "string"
148747	//     },
148748	//     "pageToken": {
148749	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
148750	//       "location": "query",
148751	//       "type": "string"
148752	//     },
148753	//     "project": {
148754	//       "description": "Project ID for this request.",
148755	//       "location": "path",
148756	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
148757	//       "required": true,
148758	//       "type": "string"
148759	//     },
148760	//     "region": {
148761	//       "description": "Name of the region for this request.",
148762	//       "location": "path",
148763	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
148764	//       "required": true,
148765	//       "type": "string"
148766	//     },
148767	//     "returnPartialSuccess": {
148768	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
148769	//       "location": "query",
148770	//       "type": "boolean"
148771	//     }
148772	//   },
148773	//   "path": "projects/{project}/regions/{region}/resourcePolicies",
148774	//   "response": {
148775	//     "$ref": "ResourcePolicyList"
148776	//   },
148777	//   "scopes": [
148778	//     "https://www.googleapis.com/auth/cloud-platform",
148779	//     "https://www.googleapis.com/auth/compute",
148780	//     "https://www.googleapis.com/auth/compute.readonly"
148781	//   ]
148782	// }
148783
148784}
148785
148786// Pages invokes f for each page of results.
148787// A non-nil error returned from f will halt the iteration.
148788// The provided context supersedes any context provided to the Context method.
148789func (c *ResourcePoliciesListCall) Pages(ctx context.Context, f func(*ResourcePolicyList) error) error {
148790	c.ctx_ = ctx
148791	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
148792	for {
148793		x, err := c.Do()
148794		if err != nil {
148795			return err
148796		}
148797		if err := f(x); err != nil {
148798			return err
148799		}
148800		if x.NextPageToken == "" {
148801			return nil
148802		}
148803		c.PageToken(x.NextPageToken)
148804	}
148805}
148806
148807// method id "compute.resourcePolicies.setIamPolicy":
148808
148809type ResourcePoliciesSetIamPolicyCall struct {
148810	s                      *Service
148811	project                string
148812	region                 string
148813	resource               string
148814	regionsetpolicyrequest *RegionSetPolicyRequest
148815	urlParams_             gensupport.URLParams
148816	ctx_                   context.Context
148817	header_                http.Header
148818}
148819
148820// SetIamPolicy: Sets the access control policy on the specified
148821// resource. Replaces any existing policy.
148822func (r *ResourcePoliciesService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *ResourcePoliciesSetIamPolicyCall {
148823	c := &ResourcePoliciesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
148824	c.project = project
148825	c.region = region
148826	c.resource = resource
148827	c.regionsetpolicyrequest = regionsetpolicyrequest
148828	return c
148829}
148830
148831// Fields allows partial responses to be retrieved. See
148832// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
148833// for more information.
148834func (c *ResourcePoliciesSetIamPolicyCall) Fields(s ...googleapi.Field) *ResourcePoliciesSetIamPolicyCall {
148835	c.urlParams_.Set("fields", googleapi.CombineFields(s))
148836	return c
148837}
148838
148839// Context sets the context to be used in this call's Do method. Any
148840// pending HTTP request will be aborted if the provided context is
148841// canceled.
148842func (c *ResourcePoliciesSetIamPolicyCall) Context(ctx context.Context) *ResourcePoliciesSetIamPolicyCall {
148843	c.ctx_ = ctx
148844	return c
148845}
148846
148847// Header returns an http.Header that can be modified by the caller to
148848// add HTTP headers to the request.
148849func (c *ResourcePoliciesSetIamPolicyCall) Header() http.Header {
148850	if c.header_ == nil {
148851		c.header_ = make(http.Header)
148852	}
148853	return c.header_
148854}
148855
148856func (c *ResourcePoliciesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
148857	reqHeaders := make(http.Header)
148858	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
148859	for k, v := range c.header_ {
148860		reqHeaders[k] = v
148861	}
148862	reqHeaders.Set("User-Agent", c.s.userAgent())
148863	var body io.Reader = nil
148864	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest)
148865	if err != nil {
148866		return nil, err
148867	}
148868	reqHeaders.Set("Content-Type", "application/json")
148869	c.urlParams_.Set("alt", alt)
148870	c.urlParams_.Set("prettyPrint", "false")
148871	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/resourcePolicies/{resource}/setIamPolicy")
148872	urls += "?" + c.urlParams_.Encode()
148873	req, err := http.NewRequest("POST", urls, body)
148874	if err != nil {
148875		return nil, err
148876	}
148877	req.Header = reqHeaders
148878	googleapi.Expand(req.URL, map[string]string{
148879		"project":  c.project,
148880		"region":   c.region,
148881		"resource": c.resource,
148882	})
148883	return gensupport.SendRequest(c.ctx_, c.s.client, req)
148884}
148885
148886// Do executes the "compute.resourcePolicies.setIamPolicy" call.
148887// Exactly one of *Policy or error will be non-nil. Any non-2xx status
148888// code is an error. Response headers are in either
148889// *Policy.ServerResponse.Header or (if a response was returned at all)
148890// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
148891// check whether the returned error was because http.StatusNotModified
148892// was returned.
148893func (c *ResourcePoliciesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
148894	gensupport.SetOptions(c.urlParams_, opts...)
148895	res, err := c.doRequest("json")
148896	if res != nil && res.StatusCode == http.StatusNotModified {
148897		if res.Body != nil {
148898			res.Body.Close()
148899		}
148900		return nil, &googleapi.Error{
148901			Code:   res.StatusCode,
148902			Header: res.Header,
148903		}
148904	}
148905	if err != nil {
148906		return nil, err
148907	}
148908	defer googleapi.CloseBody(res)
148909	if err := googleapi.CheckResponse(res); err != nil {
148910		return nil, err
148911	}
148912	ret := &Policy{
148913		ServerResponse: googleapi.ServerResponse{
148914			Header:         res.Header,
148915			HTTPStatusCode: res.StatusCode,
148916		},
148917	}
148918	target := &ret
148919	if err := gensupport.DecodeResponse(target, res); err != nil {
148920		return nil, err
148921	}
148922	return ret, nil
148923	// {
148924	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
148925	//   "httpMethod": "POST",
148926	//   "id": "compute.resourcePolicies.setIamPolicy",
148927	//   "parameterOrder": [
148928	//     "project",
148929	//     "region",
148930	//     "resource"
148931	//   ],
148932	//   "parameters": {
148933	//     "project": {
148934	//       "description": "Project ID for this request.",
148935	//       "location": "path",
148936	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
148937	//       "required": true,
148938	//       "type": "string"
148939	//     },
148940	//     "region": {
148941	//       "description": "The name of the region for this request.",
148942	//       "location": "path",
148943	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
148944	//       "required": true,
148945	//       "type": "string"
148946	//     },
148947	//     "resource": {
148948	//       "description": "Name or id of the resource for this request.",
148949	//       "location": "path",
148950	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
148951	//       "required": true,
148952	//       "type": "string"
148953	//     }
148954	//   },
148955	//   "path": "projects/{project}/regions/{region}/resourcePolicies/{resource}/setIamPolicy",
148956	//   "request": {
148957	//     "$ref": "RegionSetPolicyRequest"
148958	//   },
148959	//   "response": {
148960	//     "$ref": "Policy"
148961	//   },
148962	//   "scopes": [
148963	//     "https://www.googleapis.com/auth/cloud-platform",
148964	//     "https://www.googleapis.com/auth/compute"
148965	//   ]
148966	// }
148967
148968}
148969
148970// method id "compute.resourcePolicies.testIamPermissions":
148971
148972type ResourcePoliciesTestIamPermissionsCall struct {
148973	s                      *Service
148974	project                string
148975	region                 string
148976	resource               string
148977	testpermissionsrequest *TestPermissionsRequest
148978	urlParams_             gensupport.URLParams
148979	ctx_                   context.Context
148980	header_                http.Header
148981}
148982
148983// TestIamPermissions: Returns permissions that a caller has on the
148984// specified resource.
148985func (r *ResourcePoliciesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *ResourcePoliciesTestIamPermissionsCall {
148986	c := &ResourcePoliciesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
148987	c.project = project
148988	c.region = region
148989	c.resource = resource
148990	c.testpermissionsrequest = testpermissionsrequest
148991	return c
148992}
148993
148994// Fields allows partial responses to be retrieved. See
148995// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
148996// for more information.
148997func (c *ResourcePoliciesTestIamPermissionsCall) Fields(s ...googleapi.Field) *ResourcePoliciesTestIamPermissionsCall {
148998	c.urlParams_.Set("fields", googleapi.CombineFields(s))
148999	return c
149000}
149001
149002// Context sets the context to be used in this call's Do method. Any
149003// pending HTTP request will be aborted if the provided context is
149004// canceled.
149005func (c *ResourcePoliciesTestIamPermissionsCall) Context(ctx context.Context) *ResourcePoliciesTestIamPermissionsCall {
149006	c.ctx_ = ctx
149007	return c
149008}
149009
149010// Header returns an http.Header that can be modified by the caller to
149011// add HTTP headers to the request.
149012func (c *ResourcePoliciesTestIamPermissionsCall) Header() http.Header {
149013	if c.header_ == nil {
149014		c.header_ = make(http.Header)
149015	}
149016	return c.header_
149017}
149018
149019func (c *ResourcePoliciesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
149020	reqHeaders := make(http.Header)
149021	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
149022	for k, v := range c.header_ {
149023		reqHeaders[k] = v
149024	}
149025	reqHeaders.Set("User-Agent", c.s.userAgent())
149026	var body io.Reader = nil
149027	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
149028	if err != nil {
149029		return nil, err
149030	}
149031	reqHeaders.Set("Content-Type", "application/json")
149032	c.urlParams_.Set("alt", alt)
149033	c.urlParams_.Set("prettyPrint", "false")
149034	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/resourcePolicies/{resource}/testIamPermissions")
149035	urls += "?" + c.urlParams_.Encode()
149036	req, err := http.NewRequest("POST", urls, body)
149037	if err != nil {
149038		return nil, err
149039	}
149040	req.Header = reqHeaders
149041	googleapi.Expand(req.URL, map[string]string{
149042		"project":  c.project,
149043		"region":   c.region,
149044		"resource": c.resource,
149045	})
149046	return gensupport.SendRequest(c.ctx_, c.s.client, req)
149047}
149048
149049// Do executes the "compute.resourcePolicies.testIamPermissions" call.
149050// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
149051// non-2xx status code is an error. Response headers are in either
149052// *TestPermissionsResponse.ServerResponse.Header or (if a response was
149053// returned at all) in error.(*googleapi.Error).Header. Use
149054// googleapi.IsNotModified to check whether the returned error was
149055// because http.StatusNotModified was returned.
149056func (c *ResourcePoliciesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
149057	gensupport.SetOptions(c.urlParams_, opts...)
149058	res, err := c.doRequest("json")
149059	if res != nil && res.StatusCode == http.StatusNotModified {
149060		if res.Body != nil {
149061			res.Body.Close()
149062		}
149063		return nil, &googleapi.Error{
149064			Code:   res.StatusCode,
149065			Header: res.Header,
149066		}
149067	}
149068	if err != nil {
149069		return nil, err
149070	}
149071	defer googleapi.CloseBody(res)
149072	if err := googleapi.CheckResponse(res); err != nil {
149073		return nil, err
149074	}
149075	ret := &TestPermissionsResponse{
149076		ServerResponse: googleapi.ServerResponse{
149077			Header:         res.Header,
149078			HTTPStatusCode: res.StatusCode,
149079		},
149080	}
149081	target := &ret
149082	if err := gensupport.DecodeResponse(target, res); err != nil {
149083		return nil, err
149084	}
149085	return ret, nil
149086	// {
149087	//   "description": "Returns permissions that a caller has on the specified resource.",
149088	//   "httpMethod": "POST",
149089	//   "id": "compute.resourcePolicies.testIamPermissions",
149090	//   "parameterOrder": [
149091	//     "project",
149092	//     "region",
149093	//     "resource"
149094	//   ],
149095	//   "parameters": {
149096	//     "project": {
149097	//       "description": "Project ID for this request.",
149098	//       "location": "path",
149099	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
149100	//       "required": true,
149101	//       "type": "string"
149102	//     },
149103	//     "region": {
149104	//       "description": "The name of the region for this request.",
149105	//       "location": "path",
149106	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
149107	//       "required": true,
149108	//       "type": "string"
149109	//     },
149110	//     "resource": {
149111	//       "description": "Name or id of the resource for this request.",
149112	//       "location": "path",
149113	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
149114	//       "required": true,
149115	//       "type": "string"
149116	//     }
149117	//   },
149118	//   "path": "projects/{project}/regions/{region}/resourcePolicies/{resource}/testIamPermissions",
149119	//   "request": {
149120	//     "$ref": "TestPermissionsRequest"
149121	//   },
149122	//   "response": {
149123	//     "$ref": "TestPermissionsResponse"
149124	//   },
149125	//   "scopes": [
149126	//     "https://www.googleapis.com/auth/cloud-platform",
149127	//     "https://www.googleapis.com/auth/compute",
149128	//     "https://www.googleapis.com/auth/compute.readonly"
149129	//   ]
149130	// }
149131
149132}
149133
149134// method id "compute.routers.aggregatedList":
149135
149136type RoutersAggregatedListCall struct {
149137	s            *Service
149138	project      string
149139	urlParams_   gensupport.URLParams
149140	ifNoneMatch_ string
149141	ctx_         context.Context
149142	header_      http.Header
149143}
149144
149145// AggregatedList: Retrieves an aggregated list of routers.
149146func (r *RoutersService) AggregatedList(project string) *RoutersAggregatedListCall {
149147	c := &RoutersAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
149148	c.project = project
149149	return c
149150}
149151
149152// Filter sets the optional parameter "filter": A filter expression that
149153// filters resources listed in the response. The expression must specify
149154// the field name, a comparison operator, and the value that you want to
149155// use for filtering. The value must be a string, a number, or a
149156// boolean. The comparison operator must be either `=`, `!=`, `>`, or
149157// `<`.
149158//
149159// For example, if you are filtering Compute Engine instances, you can
149160// exclude instances named `example-instance` by specifying `name !=
149161// example-instance`.
149162//
149163// You can also filter nested fields. For example, you could specify
149164// `scheduling.automaticRestart = false` to include instances only if
149165// they are not scheduled for automatic restarts. You can use filtering
149166// on nested fields to filter based on resource labels.
149167//
149168// To filter on multiple expressions, provide each separate expression
149169// within parentheses. For example: ``` (scheduling.automaticRestart =
149170// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
149171// is an `AND` expression. However, you can include `AND` and `OR`
149172// expressions explicitly. For example: ``` (cpuPlatform = "Intel
149173// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
149174// (scheduling.automaticRestart = true) ```
149175func (c *RoutersAggregatedListCall) Filter(filter string) *RoutersAggregatedListCall {
149176	c.urlParams_.Set("filter", filter)
149177	return c
149178}
149179
149180// IncludeAllScopes sets the optional parameter "includeAllScopes":
149181// Indicates whether every visible scope for each scope type (zone,
149182// region, global) should be included in the response. For new resource
149183// types added after this field, the flag has no effect as new resource
149184// types will always include every visible scope for each scope type in
149185// response. For resource types which predate this field, if this flag
149186// is omitted or false, only scopes of the scope types where the
149187// resource type is expected to be found will be included.
149188func (c *RoutersAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *RoutersAggregatedListCall {
149189	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
149190	return c
149191}
149192
149193// MaxResults sets the optional parameter "maxResults": The maximum
149194// number of results per page that should be returned. If the number of
149195// available results is larger than `maxResults`, Compute Engine returns
149196// a `nextPageToken` that can be used to get the next page of results in
149197// subsequent list requests. Acceptable values are `0` to `500`,
149198// inclusive. (Default: `500`)
149199func (c *RoutersAggregatedListCall) MaxResults(maxResults int64) *RoutersAggregatedListCall {
149200	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
149201	return c
149202}
149203
149204// OrderBy sets the optional parameter "orderBy": Sorts list results by
149205// a certain order. By default, results are returned in alphanumerical
149206// order based on the resource name.
149207//
149208// You can also sort results in descending order based on the creation
149209// timestamp using `orderBy="creationTimestamp desc". This sorts
149210// results based on the `creationTimestamp` field in reverse
149211// chronological order (newest result first). Use this to sort resources
149212// like operations so that the newest operation is returned
149213// first.
149214//
149215// Currently, only sorting by `name` or `creationTimestamp desc` is
149216// supported.
149217func (c *RoutersAggregatedListCall) OrderBy(orderBy string) *RoutersAggregatedListCall {
149218	c.urlParams_.Set("orderBy", orderBy)
149219	return c
149220}
149221
149222// PageToken sets the optional parameter "pageToken": Specifies a page
149223// token to use. Set `pageToken` to the `nextPageToken` returned by a
149224// previous list request to get the next page of results.
149225func (c *RoutersAggregatedListCall) PageToken(pageToken string) *RoutersAggregatedListCall {
149226	c.urlParams_.Set("pageToken", pageToken)
149227	return c
149228}
149229
149230// ReturnPartialSuccess sets the optional parameter
149231// "returnPartialSuccess": Opt-in for partial success behavior which
149232// provides partial results in case of failure. The default value is
149233// false.
149234func (c *RoutersAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RoutersAggregatedListCall {
149235	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
149236	return c
149237}
149238
149239// Fields allows partial responses to be retrieved. See
149240// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
149241// for more information.
149242func (c *RoutersAggregatedListCall) Fields(s ...googleapi.Field) *RoutersAggregatedListCall {
149243	c.urlParams_.Set("fields", googleapi.CombineFields(s))
149244	return c
149245}
149246
149247// IfNoneMatch sets the optional parameter which makes the operation
149248// fail if the object's ETag matches the given value. This is useful for
149249// getting updates only after the object has changed since the last
149250// request. Use googleapi.IsNotModified to check whether the response
149251// error from Do is the result of In-None-Match.
149252func (c *RoutersAggregatedListCall) IfNoneMatch(entityTag string) *RoutersAggregatedListCall {
149253	c.ifNoneMatch_ = entityTag
149254	return c
149255}
149256
149257// Context sets the context to be used in this call's Do method. Any
149258// pending HTTP request will be aborted if the provided context is
149259// canceled.
149260func (c *RoutersAggregatedListCall) Context(ctx context.Context) *RoutersAggregatedListCall {
149261	c.ctx_ = ctx
149262	return c
149263}
149264
149265// Header returns an http.Header that can be modified by the caller to
149266// add HTTP headers to the request.
149267func (c *RoutersAggregatedListCall) Header() http.Header {
149268	if c.header_ == nil {
149269		c.header_ = make(http.Header)
149270	}
149271	return c.header_
149272}
149273
149274func (c *RoutersAggregatedListCall) doRequest(alt string) (*http.Response, error) {
149275	reqHeaders := make(http.Header)
149276	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
149277	for k, v := range c.header_ {
149278		reqHeaders[k] = v
149279	}
149280	reqHeaders.Set("User-Agent", c.s.userAgent())
149281	if c.ifNoneMatch_ != "" {
149282		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
149283	}
149284	var body io.Reader = nil
149285	c.urlParams_.Set("alt", alt)
149286	c.urlParams_.Set("prettyPrint", "false")
149287	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/routers")
149288	urls += "?" + c.urlParams_.Encode()
149289	req, err := http.NewRequest("GET", urls, body)
149290	if err != nil {
149291		return nil, err
149292	}
149293	req.Header = reqHeaders
149294	googleapi.Expand(req.URL, map[string]string{
149295		"project": c.project,
149296	})
149297	return gensupport.SendRequest(c.ctx_, c.s.client, req)
149298}
149299
149300// Do executes the "compute.routers.aggregatedList" call.
149301// Exactly one of *RouterAggregatedList or error will be non-nil. Any
149302// non-2xx status code is an error. Response headers are in either
149303// *RouterAggregatedList.ServerResponse.Header or (if a response was
149304// returned at all) in error.(*googleapi.Error).Header. Use
149305// googleapi.IsNotModified to check whether the returned error was
149306// because http.StatusNotModified was returned.
149307func (c *RoutersAggregatedListCall) Do(opts ...googleapi.CallOption) (*RouterAggregatedList, error) {
149308	gensupport.SetOptions(c.urlParams_, opts...)
149309	res, err := c.doRequest("json")
149310	if res != nil && res.StatusCode == http.StatusNotModified {
149311		if res.Body != nil {
149312			res.Body.Close()
149313		}
149314		return nil, &googleapi.Error{
149315			Code:   res.StatusCode,
149316			Header: res.Header,
149317		}
149318	}
149319	if err != nil {
149320		return nil, err
149321	}
149322	defer googleapi.CloseBody(res)
149323	if err := googleapi.CheckResponse(res); err != nil {
149324		return nil, err
149325	}
149326	ret := &RouterAggregatedList{
149327		ServerResponse: googleapi.ServerResponse{
149328			Header:         res.Header,
149329			HTTPStatusCode: res.StatusCode,
149330		},
149331	}
149332	target := &ret
149333	if err := gensupport.DecodeResponse(target, res); err != nil {
149334		return nil, err
149335	}
149336	return ret, nil
149337	// {
149338	//   "description": "Retrieves an aggregated list of routers.",
149339	//   "httpMethod": "GET",
149340	//   "id": "compute.routers.aggregatedList",
149341	//   "parameterOrder": [
149342	//     "project"
149343	//   ],
149344	//   "parameters": {
149345	//     "filter": {
149346	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
149347	//       "location": "query",
149348	//       "type": "string"
149349	//     },
149350	//     "includeAllScopes": {
149351	//       "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.",
149352	//       "location": "query",
149353	//       "type": "boolean"
149354	//     },
149355	//     "maxResults": {
149356	//       "default": "500",
149357	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
149358	//       "format": "uint32",
149359	//       "location": "query",
149360	//       "minimum": "0",
149361	//       "type": "integer"
149362	//     },
149363	//     "orderBy": {
149364	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
149365	//       "location": "query",
149366	//       "type": "string"
149367	//     },
149368	//     "pageToken": {
149369	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
149370	//       "location": "query",
149371	//       "type": "string"
149372	//     },
149373	//     "project": {
149374	//       "description": "Project ID for this request.",
149375	//       "location": "path",
149376	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
149377	//       "required": true,
149378	//       "type": "string"
149379	//     },
149380	//     "returnPartialSuccess": {
149381	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
149382	//       "location": "query",
149383	//       "type": "boolean"
149384	//     }
149385	//   },
149386	//   "path": "projects/{project}/aggregated/routers",
149387	//   "response": {
149388	//     "$ref": "RouterAggregatedList"
149389	//   },
149390	//   "scopes": [
149391	//     "https://www.googleapis.com/auth/cloud-platform",
149392	//     "https://www.googleapis.com/auth/compute",
149393	//     "https://www.googleapis.com/auth/compute.readonly"
149394	//   ]
149395	// }
149396
149397}
149398
149399// Pages invokes f for each page of results.
149400// A non-nil error returned from f will halt the iteration.
149401// The provided context supersedes any context provided to the Context method.
149402func (c *RoutersAggregatedListCall) Pages(ctx context.Context, f func(*RouterAggregatedList) error) error {
149403	c.ctx_ = ctx
149404	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
149405	for {
149406		x, err := c.Do()
149407		if err != nil {
149408			return err
149409		}
149410		if err := f(x); err != nil {
149411			return err
149412		}
149413		if x.NextPageToken == "" {
149414			return nil
149415		}
149416		c.PageToken(x.NextPageToken)
149417	}
149418}
149419
149420// method id "compute.routers.delete":
149421
149422type RoutersDeleteCall struct {
149423	s          *Service
149424	project    string
149425	region     string
149426	router     string
149427	urlParams_ gensupport.URLParams
149428	ctx_       context.Context
149429	header_    http.Header
149430}
149431
149432// Delete: Deletes the specified Router resource.
149433func (r *RoutersService) Delete(project string, region string, router string) *RoutersDeleteCall {
149434	c := &RoutersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
149435	c.project = project
149436	c.region = region
149437	c.router = router
149438	return c
149439}
149440
149441// RequestId sets the optional parameter "requestId": An optional
149442// request ID to identify requests. Specify a unique request ID so that
149443// if you must retry your request, the server will know to ignore the
149444// request if it has already been completed.
149445//
149446// For example, consider a situation where you make an initial request
149447// and the request times out. If you make the request again with the
149448// same request ID, the server can check if original operation with the
149449// same request ID was received, and if so, will ignore the second
149450// request. This prevents clients from accidentally creating duplicate
149451// commitments.
149452//
149453// The request ID must be a valid UUID with the exception that zero UUID
149454// is not supported (00000000-0000-0000-0000-000000000000).
149455func (c *RoutersDeleteCall) RequestId(requestId string) *RoutersDeleteCall {
149456	c.urlParams_.Set("requestId", requestId)
149457	return c
149458}
149459
149460// Fields allows partial responses to be retrieved. See
149461// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
149462// for more information.
149463func (c *RoutersDeleteCall) Fields(s ...googleapi.Field) *RoutersDeleteCall {
149464	c.urlParams_.Set("fields", googleapi.CombineFields(s))
149465	return c
149466}
149467
149468// Context sets the context to be used in this call's Do method. Any
149469// pending HTTP request will be aborted if the provided context is
149470// canceled.
149471func (c *RoutersDeleteCall) Context(ctx context.Context) *RoutersDeleteCall {
149472	c.ctx_ = ctx
149473	return c
149474}
149475
149476// Header returns an http.Header that can be modified by the caller to
149477// add HTTP headers to the request.
149478func (c *RoutersDeleteCall) Header() http.Header {
149479	if c.header_ == nil {
149480		c.header_ = make(http.Header)
149481	}
149482	return c.header_
149483}
149484
149485func (c *RoutersDeleteCall) doRequest(alt string) (*http.Response, error) {
149486	reqHeaders := make(http.Header)
149487	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
149488	for k, v := range c.header_ {
149489		reqHeaders[k] = v
149490	}
149491	reqHeaders.Set("User-Agent", c.s.userAgent())
149492	var body io.Reader = nil
149493	c.urlParams_.Set("alt", alt)
149494	c.urlParams_.Set("prettyPrint", "false")
149495	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}")
149496	urls += "?" + c.urlParams_.Encode()
149497	req, err := http.NewRequest("DELETE", urls, body)
149498	if err != nil {
149499		return nil, err
149500	}
149501	req.Header = reqHeaders
149502	googleapi.Expand(req.URL, map[string]string{
149503		"project": c.project,
149504		"region":  c.region,
149505		"router":  c.router,
149506	})
149507	return gensupport.SendRequest(c.ctx_, c.s.client, req)
149508}
149509
149510// Do executes the "compute.routers.delete" call.
149511// Exactly one of *Operation or error will be non-nil. Any non-2xx
149512// status code is an error. Response headers are in either
149513// *Operation.ServerResponse.Header or (if a response was returned at
149514// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
149515// to check whether the returned error was because
149516// http.StatusNotModified was returned.
149517func (c *RoutersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
149518	gensupport.SetOptions(c.urlParams_, opts...)
149519	res, err := c.doRequest("json")
149520	if res != nil && res.StatusCode == http.StatusNotModified {
149521		if res.Body != nil {
149522			res.Body.Close()
149523		}
149524		return nil, &googleapi.Error{
149525			Code:   res.StatusCode,
149526			Header: res.Header,
149527		}
149528	}
149529	if err != nil {
149530		return nil, err
149531	}
149532	defer googleapi.CloseBody(res)
149533	if err := googleapi.CheckResponse(res); err != nil {
149534		return nil, err
149535	}
149536	ret := &Operation{
149537		ServerResponse: googleapi.ServerResponse{
149538			Header:         res.Header,
149539			HTTPStatusCode: res.StatusCode,
149540		},
149541	}
149542	target := &ret
149543	if err := gensupport.DecodeResponse(target, res); err != nil {
149544		return nil, err
149545	}
149546	return ret, nil
149547	// {
149548	//   "description": "Deletes the specified Router resource.",
149549	//   "httpMethod": "DELETE",
149550	//   "id": "compute.routers.delete",
149551	//   "parameterOrder": [
149552	//     "project",
149553	//     "region",
149554	//     "router"
149555	//   ],
149556	//   "parameters": {
149557	//     "project": {
149558	//       "description": "Project ID for this request.",
149559	//       "location": "path",
149560	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
149561	//       "required": true,
149562	//       "type": "string"
149563	//     },
149564	//     "region": {
149565	//       "description": "Name of the region for this request.",
149566	//       "location": "path",
149567	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
149568	//       "required": true,
149569	//       "type": "string"
149570	//     },
149571	//     "requestId": {
149572	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
149573	//       "location": "query",
149574	//       "type": "string"
149575	//     },
149576	//     "router": {
149577	//       "description": "Name of the Router resource to delete.",
149578	//       "location": "path",
149579	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
149580	//       "required": true,
149581	//       "type": "string"
149582	//     }
149583	//   },
149584	//   "path": "projects/{project}/regions/{region}/routers/{router}",
149585	//   "response": {
149586	//     "$ref": "Operation"
149587	//   },
149588	//   "scopes": [
149589	//     "https://www.googleapis.com/auth/cloud-platform",
149590	//     "https://www.googleapis.com/auth/compute"
149591	//   ]
149592	// }
149593
149594}
149595
149596// method id "compute.routers.get":
149597
149598type RoutersGetCall struct {
149599	s            *Service
149600	project      string
149601	region       string
149602	router       string
149603	urlParams_   gensupport.URLParams
149604	ifNoneMatch_ string
149605	ctx_         context.Context
149606	header_      http.Header
149607}
149608
149609// Get: Returns the specified Router resource. Gets a list of available
149610// routers by making a list() request.
149611func (r *RoutersService) Get(project string, region string, router string) *RoutersGetCall {
149612	c := &RoutersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
149613	c.project = project
149614	c.region = region
149615	c.router = router
149616	return c
149617}
149618
149619// Fields allows partial responses to be retrieved. See
149620// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
149621// for more information.
149622func (c *RoutersGetCall) Fields(s ...googleapi.Field) *RoutersGetCall {
149623	c.urlParams_.Set("fields", googleapi.CombineFields(s))
149624	return c
149625}
149626
149627// IfNoneMatch sets the optional parameter which makes the operation
149628// fail if the object's ETag matches the given value. This is useful for
149629// getting updates only after the object has changed since the last
149630// request. Use googleapi.IsNotModified to check whether the response
149631// error from Do is the result of In-None-Match.
149632func (c *RoutersGetCall) IfNoneMatch(entityTag string) *RoutersGetCall {
149633	c.ifNoneMatch_ = entityTag
149634	return c
149635}
149636
149637// Context sets the context to be used in this call's Do method. Any
149638// pending HTTP request will be aborted if the provided context is
149639// canceled.
149640func (c *RoutersGetCall) Context(ctx context.Context) *RoutersGetCall {
149641	c.ctx_ = ctx
149642	return c
149643}
149644
149645// Header returns an http.Header that can be modified by the caller to
149646// add HTTP headers to the request.
149647func (c *RoutersGetCall) Header() http.Header {
149648	if c.header_ == nil {
149649		c.header_ = make(http.Header)
149650	}
149651	return c.header_
149652}
149653
149654func (c *RoutersGetCall) doRequest(alt string) (*http.Response, error) {
149655	reqHeaders := make(http.Header)
149656	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
149657	for k, v := range c.header_ {
149658		reqHeaders[k] = v
149659	}
149660	reqHeaders.Set("User-Agent", c.s.userAgent())
149661	if c.ifNoneMatch_ != "" {
149662		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
149663	}
149664	var body io.Reader = nil
149665	c.urlParams_.Set("alt", alt)
149666	c.urlParams_.Set("prettyPrint", "false")
149667	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}")
149668	urls += "?" + c.urlParams_.Encode()
149669	req, err := http.NewRequest("GET", urls, body)
149670	if err != nil {
149671		return nil, err
149672	}
149673	req.Header = reqHeaders
149674	googleapi.Expand(req.URL, map[string]string{
149675		"project": c.project,
149676		"region":  c.region,
149677		"router":  c.router,
149678	})
149679	return gensupport.SendRequest(c.ctx_, c.s.client, req)
149680}
149681
149682// Do executes the "compute.routers.get" call.
149683// Exactly one of *Router or error will be non-nil. Any non-2xx status
149684// code is an error. Response headers are in either
149685// *Router.ServerResponse.Header or (if a response was returned at all)
149686// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
149687// check whether the returned error was because http.StatusNotModified
149688// was returned.
149689func (c *RoutersGetCall) Do(opts ...googleapi.CallOption) (*Router, error) {
149690	gensupport.SetOptions(c.urlParams_, opts...)
149691	res, err := c.doRequest("json")
149692	if res != nil && res.StatusCode == http.StatusNotModified {
149693		if res.Body != nil {
149694			res.Body.Close()
149695		}
149696		return nil, &googleapi.Error{
149697			Code:   res.StatusCode,
149698			Header: res.Header,
149699		}
149700	}
149701	if err != nil {
149702		return nil, err
149703	}
149704	defer googleapi.CloseBody(res)
149705	if err := googleapi.CheckResponse(res); err != nil {
149706		return nil, err
149707	}
149708	ret := &Router{
149709		ServerResponse: googleapi.ServerResponse{
149710			Header:         res.Header,
149711			HTTPStatusCode: res.StatusCode,
149712		},
149713	}
149714	target := &ret
149715	if err := gensupport.DecodeResponse(target, res); err != nil {
149716		return nil, err
149717	}
149718	return ret, nil
149719	// {
149720	//   "description": "Returns the specified Router resource. Gets a list of available routers by making a list() request.",
149721	//   "httpMethod": "GET",
149722	//   "id": "compute.routers.get",
149723	//   "parameterOrder": [
149724	//     "project",
149725	//     "region",
149726	//     "router"
149727	//   ],
149728	//   "parameters": {
149729	//     "project": {
149730	//       "description": "Project ID for this request.",
149731	//       "location": "path",
149732	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
149733	//       "required": true,
149734	//       "type": "string"
149735	//     },
149736	//     "region": {
149737	//       "description": "Name of the region for this request.",
149738	//       "location": "path",
149739	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
149740	//       "required": true,
149741	//       "type": "string"
149742	//     },
149743	//     "router": {
149744	//       "description": "Name of the Router resource to return.",
149745	//       "location": "path",
149746	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
149747	//       "required": true,
149748	//       "type": "string"
149749	//     }
149750	//   },
149751	//   "path": "projects/{project}/regions/{region}/routers/{router}",
149752	//   "response": {
149753	//     "$ref": "Router"
149754	//   },
149755	//   "scopes": [
149756	//     "https://www.googleapis.com/auth/cloud-platform",
149757	//     "https://www.googleapis.com/auth/compute",
149758	//     "https://www.googleapis.com/auth/compute.readonly"
149759	//   ]
149760	// }
149761
149762}
149763
149764// method id "compute.routers.getNatMappingInfo":
149765
149766type RoutersGetNatMappingInfoCall struct {
149767	s            *Service
149768	project      string
149769	region       string
149770	router       string
149771	urlParams_   gensupport.URLParams
149772	ifNoneMatch_ string
149773	ctx_         context.Context
149774	header_      http.Header
149775}
149776
149777// GetNatMappingInfo: Retrieves runtime Nat mapping information of VM
149778// endpoints.
149779func (r *RoutersService) GetNatMappingInfo(project string, region string, router string) *RoutersGetNatMappingInfoCall {
149780	c := &RoutersGetNatMappingInfoCall{s: r.s, urlParams_: make(gensupport.URLParams)}
149781	c.project = project
149782	c.region = region
149783	c.router = router
149784	return c
149785}
149786
149787// Filter sets the optional parameter "filter": A filter expression that
149788// filters resources listed in the response. The expression must specify
149789// the field name, a comparison operator, and the value that you want to
149790// use for filtering. The value must be a string, a number, or a
149791// boolean. The comparison operator must be either `=`, `!=`, `>`, or
149792// `<`.
149793//
149794// For example, if you are filtering Compute Engine instances, you can
149795// exclude instances named `example-instance` by specifying `name !=
149796// example-instance`.
149797//
149798// You can also filter nested fields. For example, you could specify
149799// `scheduling.automaticRestart = false` to include instances only if
149800// they are not scheduled for automatic restarts. You can use filtering
149801// on nested fields to filter based on resource labels.
149802//
149803// To filter on multiple expressions, provide each separate expression
149804// within parentheses. For example: ``` (scheduling.automaticRestart =
149805// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
149806// is an `AND` expression. However, you can include `AND` and `OR`
149807// expressions explicitly. For example: ``` (cpuPlatform = "Intel
149808// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
149809// (scheduling.automaticRestart = true) ```
149810func (c *RoutersGetNatMappingInfoCall) Filter(filter string) *RoutersGetNatMappingInfoCall {
149811	c.urlParams_.Set("filter", filter)
149812	return c
149813}
149814
149815// MaxResults sets the optional parameter "maxResults": The maximum
149816// number of results per page that should be returned. If the number of
149817// available results is larger than `maxResults`, Compute Engine returns
149818// a `nextPageToken` that can be used to get the next page of results in
149819// subsequent list requests. Acceptable values are `0` to `500`,
149820// inclusive. (Default: `500`)
149821func (c *RoutersGetNatMappingInfoCall) MaxResults(maxResults int64) *RoutersGetNatMappingInfoCall {
149822	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
149823	return c
149824}
149825
149826// NatName sets the optional parameter "natName": Name of the nat
149827// service to filter the Nat Mapping information. If it is omitted, all
149828// nats for this router will be returned. Name should conform to
149829// RFC1035.
149830func (c *RoutersGetNatMappingInfoCall) NatName(natName string) *RoutersGetNatMappingInfoCall {
149831	c.urlParams_.Set("natName", natName)
149832	return c
149833}
149834
149835// OrderBy sets the optional parameter "orderBy": Sorts list results by
149836// a certain order. By default, results are returned in alphanumerical
149837// order based on the resource name.
149838//
149839// You can also sort results in descending order based on the creation
149840// timestamp using `orderBy="creationTimestamp desc". This sorts
149841// results based on the `creationTimestamp` field in reverse
149842// chronological order (newest result first). Use this to sort resources
149843// like operations so that the newest operation is returned
149844// first.
149845//
149846// Currently, only sorting by `name` or `creationTimestamp desc` is
149847// supported.
149848func (c *RoutersGetNatMappingInfoCall) OrderBy(orderBy string) *RoutersGetNatMappingInfoCall {
149849	c.urlParams_.Set("orderBy", orderBy)
149850	return c
149851}
149852
149853// PageToken sets the optional parameter "pageToken": Specifies a page
149854// token to use. Set `pageToken` to the `nextPageToken` returned by a
149855// previous list request to get the next page of results.
149856func (c *RoutersGetNatMappingInfoCall) PageToken(pageToken string) *RoutersGetNatMappingInfoCall {
149857	c.urlParams_.Set("pageToken", pageToken)
149858	return c
149859}
149860
149861// ReturnPartialSuccess sets the optional parameter
149862// "returnPartialSuccess": Opt-in for partial success behavior which
149863// provides partial results in case of failure. The default value is
149864// false.
149865func (c *RoutersGetNatMappingInfoCall) ReturnPartialSuccess(returnPartialSuccess bool) *RoutersGetNatMappingInfoCall {
149866	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
149867	return c
149868}
149869
149870// Fields allows partial responses to be retrieved. See
149871// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
149872// for more information.
149873func (c *RoutersGetNatMappingInfoCall) Fields(s ...googleapi.Field) *RoutersGetNatMappingInfoCall {
149874	c.urlParams_.Set("fields", googleapi.CombineFields(s))
149875	return c
149876}
149877
149878// IfNoneMatch sets the optional parameter which makes the operation
149879// fail if the object's ETag matches the given value. This is useful for
149880// getting updates only after the object has changed since the last
149881// request. Use googleapi.IsNotModified to check whether the response
149882// error from Do is the result of In-None-Match.
149883func (c *RoutersGetNatMappingInfoCall) IfNoneMatch(entityTag string) *RoutersGetNatMappingInfoCall {
149884	c.ifNoneMatch_ = entityTag
149885	return c
149886}
149887
149888// Context sets the context to be used in this call's Do method. Any
149889// pending HTTP request will be aborted if the provided context is
149890// canceled.
149891func (c *RoutersGetNatMappingInfoCall) Context(ctx context.Context) *RoutersGetNatMappingInfoCall {
149892	c.ctx_ = ctx
149893	return c
149894}
149895
149896// Header returns an http.Header that can be modified by the caller to
149897// add HTTP headers to the request.
149898func (c *RoutersGetNatMappingInfoCall) Header() http.Header {
149899	if c.header_ == nil {
149900		c.header_ = make(http.Header)
149901	}
149902	return c.header_
149903}
149904
149905func (c *RoutersGetNatMappingInfoCall) doRequest(alt string) (*http.Response, error) {
149906	reqHeaders := make(http.Header)
149907	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
149908	for k, v := range c.header_ {
149909		reqHeaders[k] = v
149910	}
149911	reqHeaders.Set("User-Agent", c.s.userAgent())
149912	if c.ifNoneMatch_ != "" {
149913		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
149914	}
149915	var body io.Reader = nil
149916	c.urlParams_.Set("alt", alt)
149917	c.urlParams_.Set("prettyPrint", "false")
149918	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}/getNatMappingInfo")
149919	urls += "?" + c.urlParams_.Encode()
149920	req, err := http.NewRequest("GET", urls, body)
149921	if err != nil {
149922		return nil, err
149923	}
149924	req.Header = reqHeaders
149925	googleapi.Expand(req.URL, map[string]string{
149926		"project": c.project,
149927		"region":  c.region,
149928		"router":  c.router,
149929	})
149930	return gensupport.SendRequest(c.ctx_, c.s.client, req)
149931}
149932
149933// Do executes the "compute.routers.getNatMappingInfo" call.
149934// Exactly one of *VmEndpointNatMappingsList or error will be non-nil.
149935// Any non-2xx status code is an error. Response headers are in either
149936// *VmEndpointNatMappingsList.ServerResponse.Header or (if a response
149937// was returned at all) in error.(*googleapi.Error).Header. Use
149938// googleapi.IsNotModified to check whether the returned error was
149939// because http.StatusNotModified was returned.
149940func (c *RoutersGetNatMappingInfoCall) Do(opts ...googleapi.CallOption) (*VmEndpointNatMappingsList, error) {
149941	gensupport.SetOptions(c.urlParams_, opts...)
149942	res, err := c.doRequest("json")
149943	if res != nil && res.StatusCode == http.StatusNotModified {
149944		if res.Body != nil {
149945			res.Body.Close()
149946		}
149947		return nil, &googleapi.Error{
149948			Code:   res.StatusCode,
149949			Header: res.Header,
149950		}
149951	}
149952	if err != nil {
149953		return nil, err
149954	}
149955	defer googleapi.CloseBody(res)
149956	if err := googleapi.CheckResponse(res); err != nil {
149957		return nil, err
149958	}
149959	ret := &VmEndpointNatMappingsList{
149960		ServerResponse: googleapi.ServerResponse{
149961			Header:         res.Header,
149962			HTTPStatusCode: res.StatusCode,
149963		},
149964	}
149965	target := &ret
149966	if err := gensupport.DecodeResponse(target, res); err != nil {
149967		return nil, err
149968	}
149969	return ret, nil
149970	// {
149971	//   "description": "Retrieves runtime Nat mapping information of VM endpoints.",
149972	//   "httpMethod": "GET",
149973	//   "id": "compute.routers.getNatMappingInfo",
149974	//   "parameterOrder": [
149975	//     "project",
149976	//     "region",
149977	//     "router"
149978	//   ],
149979	//   "parameters": {
149980	//     "filter": {
149981	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
149982	//       "location": "query",
149983	//       "type": "string"
149984	//     },
149985	//     "maxResults": {
149986	//       "default": "500",
149987	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
149988	//       "format": "uint32",
149989	//       "location": "query",
149990	//       "minimum": "0",
149991	//       "type": "integer"
149992	//     },
149993	//     "natName": {
149994	//       "description": "Name of the nat service to filter the Nat Mapping information. If it is omitted, all nats for this router will be returned. Name should conform to RFC1035.",
149995	//       "location": "query",
149996	//       "type": "string"
149997	//     },
149998	//     "orderBy": {
149999	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
150000	//       "location": "query",
150001	//       "type": "string"
150002	//     },
150003	//     "pageToken": {
150004	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
150005	//       "location": "query",
150006	//       "type": "string"
150007	//     },
150008	//     "project": {
150009	//       "description": "Project ID for this request.",
150010	//       "location": "path",
150011	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
150012	//       "required": true,
150013	//       "type": "string"
150014	//     },
150015	//     "region": {
150016	//       "description": "Name of the region for this request.",
150017	//       "location": "path",
150018	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
150019	//       "required": true,
150020	//       "type": "string"
150021	//     },
150022	//     "returnPartialSuccess": {
150023	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
150024	//       "location": "query",
150025	//       "type": "boolean"
150026	//     },
150027	//     "router": {
150028	//       "description": "Name of the Router resource to query for Nat Mapping information of VM endpoints.",
150029	//       "location": "path",
150030	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
150031	//       "required": true,
150032	//       "type": "string"
150033	//     }
150034	//   },
150035	//   "path": "projects/{project}/regions/{region}/routers/{router}/getNatMappingInfo",
150036	//   "response": {
150037	//     "$ref": "VmEndpointNatMappingsList"
150038	//   },
150039	//   "scopes": [
150040	//     "https://www.googleapis.com/auth/cloud-platform",
150041	//     "https://www.googleapis.com/auth/compute",
150042	//     "https://www.googleapis.com/auth/compute.readonly"
150043	//   ]
150044	// }
150045
150046}
150047
150048// Pages invokes f for each page of results.
150049// A non-nil error returned from f will halt the iteration.
150050// The provided context supersedes any context provided to the Context method.
150051func (c *RoutersGetNatMappingInfoCall) Pages(ctx context.Context, f func(*VmEndpointNatMappingsList) error) error {
150052	c.ctx_ = ctx
150053	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
150054	for {
150055		x, err := c.Do()
150056		if err != nil {
150057			return err
150058		}
150059		if err := f(x); err != nil {
150060			return err
150061		}
150062		if x.NextPageToken == "" {
150063			return nil
150064		}
150065		c.PageToken(x.NextPageToken)
150066	}
150067}
150068
150069// method id "compute.routers.getRouterStatus":
150070
150071type RoutersGetRouterStatusCall struct {
150072	s            *Service
150073	project      string
150074	region       string
150075	router       string
150076	urlParams_   gensupport.URLParams
150077	ifNoneMatch_ string
150078	ctx_         context.Context
150079	header_      http.Header
150080}
150081
150082// GetRouterStatus: Retrieves runtime information of the specified
150083// router.
150084func (r *RoutersService) GetRouterStatus(project string, region string, router string) *RoutersGetRouterStatusCall {
150085	c := &RoutersGetRouterStatusCall{s: r.s, urlParams_: make(gensupport.URLParams)}
150086	c.project = project
150087	c.region = region
150088	c.router = router
150089	return c
150090}
150091
150092// Fields allows partial responses to be retrieved. See
150093// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
150094// for more information.
150095func (c *RoutersGetRouterStatusCall) Fields(s ...googleapi.Field) *RoutersGetRouterStatusCall {
150096	c.urlParams_.Set("fields", googleapi.CombineFields(s))
150097	return c
150098}
150099
150100// IfNoneMatch sets the optional parameter which makes the operation
150101// fail if the object's ETag matches the given value. This is useful for
150102// getting updates only after the object has changed since the last
150103// request. Use googleapi.IsNotModified to check whether the response
150104// error from Do is the result of In-None-Match.
150105func (c *RoutersGetRouterStatusCall) IfNoneMatch(entityTag string) *RoutersGetRouterStatusCall {
150106	c.ifNoneMatch_ = entityTag
150107	return c
150108}
150109
150110// Context sets the context to be used in this call's Do method. Any
150111// pending HTTP request will be aborted if the provided context is
150112// canceled.
150113func (c *RoutersGetRouterStatusCall) Context(ctx context.Context) *RoutersGetRouterStatusCall {
150114	c.ctx_ = ctx
150115	return c
150116}
150117
150118// Header returns an http.Header that can be modified by the caller to
150119// add HTTP headers to the request.
150120func (c *RoutersGetRouterStatusCall) Header() http.Header {
150121	if c.header_ == nil {
150122		c.header_ = make(http.Header)
150123	}
150124	return c.header_
150125}
150126
150127func (c *RoutersGetRouterStatusCall) doRequest(alt string) (*http.Response, error) {
150128	reqHeaders := make(http.Header)
150129	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
150130	for k, v := range c.header_ {
150131		reqHeaders[k] = v
150132	}
150133	reqHeaders.Set("User-Agent", c.s.userAgent())
150134	if c.ifNoneMatch_ != "" {
150135		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
150136	}
150137	var body io.Reader = nil
150138	c.urlParams_.Set("alt", alt)
150139	c.urlParams_.Set("prettyPrint", "false")
150140	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}/getRouterStatus")
150141	urls += "?" + c.urlParams_.Encode()
150142	req, err := http.NewRequest("GET", urls, body)
150143	if err != nil {
150144		return nil, err
150145	}
150146	req.Header = reqHeaders
150147	googleapi.Expand(req.URL, map[string]string{
150148		"project": c.project,
150149		"region":  c.region,
150150		"router":  c.router,
150151	})
150152	return gensupport.SendRequest(c.ctx_, c.s.client, req)
150153}
150154
150155// Do executes the "compute.routers.getRouterStatus" call.
150156// Exactly one of *RouterStatusResponse or error will be non-nil. Any
150157// non-2xx status code is an error. Response headers are in either
150158// *RouterStatusResponse.ServerResponse.Header or (if a response was
150159// returned at all) in error.(*googleapi.Error).Header. Use
150160// googleapi.IsNotModified to check whether the returned error was
150161// because http.StatusNotModified was returned.
150162func (c *RoutersGetRouterStatusCall) Do(opts ...googleapi.CallOption) (*RouterStatusResponse, error) {
150163	gensupport.SetOptions(c.urlParams_, opts...)
150164	res, err := c.doRequest("json")
150165	if res != nil && res.StatusCode == http.StatusNotModified {
150166		if res.Body != nil {
150167			res.Body.Close()
150168		}
150169		return nil, &googleapi.Error{
150170			Code:   res.StatusCode,
150171			Header: res.Header,
150172		}
150173	}
150174	if err != nil {
150175		return nil, err
150176	}
150177	defer googleapi.CloseBody(res)
150178	if err := googleapi.CheckResponse(res); err != nil {
150179		return nil, err
150180	}
150181	ret := &RouterStatusResponse{
150182		ServerResponse: googleapi.ServerResponse{
150183			Header:         res.Header,
150184			HTTPStatusCode: res.StatusCode,
150185		},
150186	}
150187	target := &ret
150188	if err := gensupport.DecodeResponse(target, res); err != nil {
150189		return nil, err
150190	}
150191	return ret, nil
150192	// {
150193	//   "description": "Retrieves runtime information of the specified router.",
150194	//   "httpMethod": "GET",
150195	//   "id": "compute.routers.getRouterStatus",
150196	//   "parameterOrder": [
150197	//     "project",
150198	//     "region",
150199	//     "router"
150200	//   ],
150201	//   "parameters": {
150202	//     "project": {
150203	//       "description": "Project ID for this request.",
150204	//       "location": "path",
150205	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
150206	//       "required": true,
150207	//       "type": "string"
150208	//     },
150209	//     "region": {
150210	//       "description": "Name of the region for this request.",
150211	//       "location": "path",
150212	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
150213	//       "required": true,
150214	//       "type": "string"
150215	//     },
150216	//     "router": {
150217	//       "description": "Name of the Router resource to query.",
150218	//       "location": "path",
150219	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
150220	//       "required": true,
150221	//       "type": "string"
150222	//     }
150223	//   },
150224	//   "path": "projects/{project}/regions/{region}/routers/{router}/getRouterStatus",
150225	//   "response": {
150226	//     "$ref": "RouterStatusResponse"
150227	//   },
150228	//   "scopes": [
150229	//     "https://www.googleapis.com/auth/cloud-platform",
150230	//     "https://www.googleapis.com/auth/compute",
150231	//     "https://www.googleapis.com/auth/compute.readonly"
150232	//   ]
150233	// }
150234
150235}
150236
150237// method id "compute.routers.insert":
150238
150239type RoutersInsertCall struct {
150240	s          *Service
150241	project    string
150242	region     string
150243	router     *Router
150244	urlParams_ gensupport.URLParams
150245	ctx_       context.Context
150246	header_    http.Header
150247}
150248
150249// Insert: Creates a Router resource in the specified project and region
150250// using the data included in the request.
150251func (r *RoutersService) Insert(project string, region string, router *Router) *RoutersInsertCall {
150252	c := &RoutersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
150253	c.project = project
150254	c.region = region
150255	c.router = router
150256	return c
150257}
150258
150259// RequestId sets the optional parameter "requestId": An optional
150260// request ID to identify requests. Specify a unique request ID so that
150261// if you must retry your request, the server will know to ignore the
150262// request if it has already been completed.
150263//
150264// For example, consider a situation where you make an initial request
150265// and the request times out. If you make the request again with the
150266// same request ID, the server can check if original operation with the
150267// same request ID was received, and if so, will ignore the second
150268// request. This prevents clients from accidentally creating duplicate
150269// commitments.
150270//
150271// The request ID must be a valid UUID with the exception that zero UUID
150272// is not supported (00000000-0000-0000-0000-000000000000).
150273func (c *RoutersInsertCall) RequestId(requestId string) *RoutersInsertCall {
150274	c.urlParams_.Set("requestId", requestId)
150275	return c
150276}
150277
150278// Fields allows partial responses to be retrieved. See
150279// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
150280// for more information.
150281func (c *RoutersInsertCall) Fields(s ...googleapi.Field) *RoutersInsertCall {
150282	c.urlParams_.Set("fields", googleapi.CombineFields(s))
150283	return c
150284}
150285
150286// Context sets the context to be used in this call's Do method. Any
150287// pending HTTP request will be aborted if the provided context is
150288// canceled.
150289func (c *RoutersInsertCall) Context(ctx context.Context) *RoutersInsertCall {
150290	c.ctx_ = ctx
150291	return c
150292}
150293
150294// Header returns an http.Header that can be modified by the caller to
150295// add HTTP headers to the request.
150296func (c *RoutersInsertCall) Header() http.Header {
150297	if c.header_ == nil {
150298		c.header_ = make(http.Header)
150299	}
150300	return c.header_
150301}
150302
150303func (c *RoutersInsertCall) doRequest(alt string) (*http.Response, error) {
150304	reqHeaders := make(http.Header)
150305	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
150306	for k, v := range c.header_ {
150307		reqHeaders[k] = v
150308	}
150309	reqHeaders.Set("User-Agent", c.s.userAgent())
150310	var body io.Reader = nil
150311	body, err := googleapi.WithoutDataWrapper.JSONReader(c.router)
150312	if err != nil {
150313		return nil, err
150314	}
150315	reqHeaders.Set("Content-Type", "application/json")
150316	c.urlParams_.Set("alt", alt)
150317	c.urlParams_.Set("prettyPrint", "false")
150318	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers")
150319	urls += "?" + c.urlParams_.Encode()
150320	req, err := http.NewRequest("POST", urls, body)
150321	if err != nil {
150322		return nil, err
150323	}
150324	req.Header = reqHeaders
150325	googleapi.Expand(req.URL, map[string]string{
150326		"project": c.project,
150327		"region":  c.region,
150328	})
150329	return gensupport.SendRequest(c.ctx_, c.s.client, req)
150330}
150331
150332// Do executes the "compute.routers.insert" call.
150333// Exactly one of *Operation or error will be non-nil. Any non-2xx
150334// status code is an error. Response headers are in either
150335// *Operation.ServerResponse.Header or (if a response was returned at
150336// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
150337// to check whether the returned error was because
150338// http.StatusNotModified was returned.
150339func (c *RoutersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
150340	gensupport.SetOptions(c.urlParams_, opts...)
150341	res, err := c.doRequest("json")
150342	if res != nil && res.StatusCode == http.StatusNotModified {
150343		if res.Body != nil {
150344			res.Body.Close()
150345		}
150346		return nil, &googleapi.Error{
150347			Code:   res.StatusCode,
150348			Header: res.Header,
150349		}
150350	}
150351	if err != nil {
150352		return nil, err
150353	}
150354	defer googleapi.CloseBody(res)
150355	if err := googleapi.CheckResponse(res); err != nil {
150356		return nil, err
150357	}
150358	ret := &Operation{
150359		ServerResponse: googleapi.ServerResponse{
150360			Header:         res.Header,
150361			HTTPStatusCode: res.StatusCode,
150362		},
150363	}
150364	target := &ret
150365	if err := gensupport.DecodeResponse(target, res); err != nil {
150366		return nil, err
150367	}
150368	return ret, nil
150369	// {
150370	//   "description": "Creates a Router resource in the specified project and region using the data included in the request.",
150371	//   "httpMethod": "POST",
150372	//   "id": "compute.routers.insert",
150373	//   "parameterOrder": [
150374	//     "project",
150375	//     "region"
150376	//   ],
150377	//   "parameters": {
150378	//     "project": {
150379	//       "description": "Project ID for this request.",
150380	//       "location": "path",
150381	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
150382	//       "required": true,
150383	//       "type": "string"
150384	//     },
150385	//     "region": {
150386	//       "description": "Name of the region for this request.",
150387	//       "location": "path",
150388	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
150389	//       "required": true,
150390	//       "type": "string"
150391	//     },
150392	//     "requestId": {
150393	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
150394	//       "location": "query",
150395	//       "type": "string"
150396	//     }
150397	//   },
150398	//   "path": "projects/{project}/regions/{region}/routers",
150399	//   "request": {
150400	//     "$ref": "Router"
150401	//   },
150402	//   "response": {
150403	//     "$ref": "Operation"
150404	//   },
150405	//   "scopes": [
150406	//     "https://www.googleapis.com/auth/cloud-platform",
150407	//     "https://www.googleapis.com/auth/compute"
150408	//   ]
150409	// }
150410
150411}
150412
150413// method id "compute.routers.list":
150414
150415type RoutersListCall struct {
150416	s            *Service
150417	project      string
150418	region       string
150419	urlParams_   gensupport.URLParams
150420	ifNoneMatch_ string
150421	ctx_         context.Context
150422	header_      http.Header
150423}
150424
150425// List: Retrieves a list of Router resources available to the specified
150426// project.
150427func (r *RoutersService) List(project string, region string) *RoutersListCall {
150428	c := &RoutersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
150429	c.project = project
150430	c.region = region
150431	return c
150432}
150433
150434// Filter sets the optional parameter "filter": A filter expression that
150435// filters resources listed in the response. The expression must specify
150436// the field name, a comparison operator, and the value that you want to
150437// use for filtering. The value must be a string, a number, or a
150438// boolean. The comparison operator must be either `=`, `!=`, `>`, or
150439// `<`.
150440//
150441// For example, if you are filtering Compute Engine instances, you can
150442// exclude instances named `example-instance` by specifying `name !=
150443// example-instance`.
150444//
150445// You can also filter nested fields. For example, you could specify
150446// `scheduling.automaticRestart = false` to include instances only if
150447// they are not scheduled for automatic restarts. You can use filtering
150448// on nested fields to filter based on resource labels.
150449//
150450// To filter on multiple expressions, provide each separate expression
150451// within parentheses. For example: ``` (scheduling.automaticRestart =
150452// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
150453// is an `AND` expression. However, you can include `AND` and `OR`
150454// expressions explicitly. For example: ``` (cpuPlatform = "Intel
150455// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
150456// (scheduling.automaticRestart = true) ```
150457func (c *RoutersListCall) Filter(filter string) *RoutersListCall {
150458	c.urlParams_.Set("filter", filter)
150459	return c
150460}
150461
150462// MaxResults sets the optional parameter "maxResults": The maximum
150463// number of results per page that should be returned. If the number of
150464// available results is larger than `maxResults`, Compute Engine returns
150465// a `nextPageToken` that can be used to get the next page of results in
150466// subsequent list requests. Acceptable values are `0` to `500`,
150467// inclusive. (Default: `500`)
150468func (c *RoutersListCall) MaxResults(maxResults int64) *RoutersListCall {
150469	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
150470	return c
150471}
150472
150473// OrderBy sets the optional parameter "orderBy": Sorts list results by
150474// a certain order. By default, results are returned in alphanumerical
150475// order based on the resource name.
150476//
150477// You can also sort results in descending order based on the creation
150478// timestamp using `orderBy="creationTimestamp desc". This sorts
150479// results based on the `creationTimestamp` field in reverse
150480// chronological order (newest result first). Use this to sort resources
150481// like operations so that the newest operation is returned
150482// first.
150483//
150484// Currently, only sorting by `name` or `creationTimestamp desc` is
150485// supported.
150486func (c *RoutersListCall) OrderBy(orderBy string) *RoutersListCall {
150487	c.urlParams_.Set("orderBy", orderBy)
150488	return c
150489}
150490
150491// PageToken sets the optional parameter "pageToken": Specifies a page
150492// token to use. Set `pageToken` to the `nextPageToken` returned by a
150493// previous list request to get the next page of results.
150494func (c *RoutersListCall) PageToken(pageToken string) *RoutersListCall {
150495	c.urlParams_.Set("pageToken", pageToken)
150496	return c
150497}
150498
150499// ReturnPartialSuccess sets the optional parameter
150500// "returnPartialSuccess": Opt-in for partial success behavior which
150501// provides partial results in case of failure. The default value is
150502// false.
150503func (c *RoutersListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RoutersListCall {
150504	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
150505	return c
150506}
150507
150508// Fields allows partial responses to be retrieved. See
150509// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
150510// for more information.
150511func (c *RoutersListCall) Fields(s ...googleapi.Field) *RoutersListCall {
150512	c.urlParams_.Set("fields", googleapi.CombineFields(s))
150513	return c
150514}
150515
150516// IfNoneMatch sets the optional parameter which makes the operation
150517// fail if the object's ETag matches the given value. This is useful for
150518// getting updates only after the object has changed since the last
150519// request. Use googleapi.IsNotModified to check whether the response
150520// error from Do is the result of In-None-Match.
150521func (c *RoutersListCall) IfNoneMatch(entityTag string) *RoutersListCall {
150522	c.ifNoneMatch_ = entityTag
150523	return c
150524}
150525
150526// Context sets the context to be used in this call's Do method. Any
150527// pending HTTP request will be aborted if the provided context is
150528// canceled.
150529func (c *RoutersListCall) Context(ctx context.Context) *RoutersListCall {
150530	c.ctx_ = ctx
150531	return c
150532}
150533
150534// Header returns an http.Header that can be modified by the caller to
150535// add HTTP headers to the request.
150536func (c *RoutersListCall) Header() http.Header {
150537	if c.header_ == nil {
150538		c.header_ = make(http.Header)
150539	}
150540	return c.header_
150541}
150542
150543func (c *RoutersListCall) doRequest(alt string) (*http.Response, error) {
150544	reqHeaders := make(http.Header)
150545	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
150546	for k, v := range c.header_ {
150547		reqHeaders[k] = v
150548	}
150549	reqHeaders.Set("User-Agent", c.s.userAgent())
150550	if c.ifNoneMatch_ != "" {
150551		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
150552	}
150553	var body io.Reader = nil
150554	c.urlParams_.Set("alt", alt)
150555	c.urlParams_.Set("prettyPrint", "false")
150556	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers")
150557	urls += "?" + c.urlParams_.Encode()
150558	req, err := http.NewRequest("GET", urls, body)
150559	if err != nil {
150560		return nil, err
150561	}
150562	req.Header = reqHeaders
150563	googleapi.Expand(req.URL, map[string]string{
150564		"project": c.project,
150565		"region":  c.region,
150566	})
150567	return gensupport.SendRequest(c.ctx_, c.s.client, req)
150568}
150569
150570// Do executes the "compute.routers.list" call.
150571// Exactly one of *RouterList or error will be non-nil. Any non-2xx
150572// status code is an error. Response headers are in either
150573// *RouterList.ServerResponse.Header or (if a response was returned at
150574// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
150575// to check whether the returned error was because
150576// http.StatusNotModified was returned.
150577func (c *RoutersListCall) Do(opts ...googleapi.CallOption) (*RouterList, error) {
150578	gensupport.SetOptions(c.urlParams_, opts...)
150579	res, err := c.doRequest("json")
150580	if res != nil && res.StatusCode == http.StatusNotModified {
150581		if res.Body != nil {
150582			res.Body.Close()
150583		}
150584		return nil, &googleapi.Error{
150585			Code:   res.StatusCode,
150586			Header: res.Header,
150587		}
150588	}
150589	if err != nil {
150590		return nil, err
150591	}
150592	defer googleapi.CloseBody(res)
150593	if err := googleapi.CheckResponse(res); err != nil {
150594		return nil, err
150595	}
150596	ret := &RouterList{
150597		ServerResponse: googleapi.ServerResponse{
150598			Header:         res.Header,
150599			HTTPStatusCode: res.StatusCode,
150600		},
150601	}
150602	target := &ret
150603	if err := gensupport.DecodeResponse(target, res); err != nil {
150604		return nil, err
150605	}
150606	return ret, nil
150607	// {
150608	//   "description": "Retrieves a list of Router resources available to the specified project.",
150609	//   "httpMethod": "GET",
150610	//   "id": "compute.routers.list",
150611	//   "parameterOrder": [
150612	//     "project",
150613	//     "region"
150614	//   ],
150615	//   "parameters": {
150616	//     "filter": {
150617	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
150618	//       "location": "query",
150619	//       "type": "string"
150620	//     },
150621	//     "maxResults": {
150622	//       "default": "500",
150623	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
150624	//       "format": "uint32",
150625	//       "location": "query",
150626	//       "minimum": "0",
150627	//       "type": "integer"
150628	//     },
150629	//     "orderBy": {
150630	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
150631	//       "location": "query",
150632	//       "type": "string"
150633	//     },
150634	//     "pageToken": {
150635	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
150636	//       "location": "query",
150637	//       "type": "string"
150638	//     },
150639	//     "project": {
150640	//       "description": "Project ID for this request.",
150641	//       "location": "path",
150642	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
150643	//       "required": true,
150644	//       "type": "string"
150645	//     },
150646	//     "region": {
150647	//       "description": "Name of the region for this request.",
150648	//       "location": "path",
150649	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
150650	//       "required": true,
150651	//       "type": "string"
150652	//     },
150653	//     "returnPartialSuccess": {
150654	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
150655	//       "location": "query",
150656	//       "type": "boolean"
150657	//     }
150658	//   },
150659	//   "path": "projects/{project}/regions/{region}/routers",
150660	//   "response": {
150661	//     "$ref": "RouterList"
150662	//   },
150663	//   "scopes": [
150664	//     "https://www.googleapis.com/auth/cloud-platform",
150665	//     "https://www.googleapis.com/auth/compute",
150666	//     "https://www.googleapis.com/auth/compute.readonly"
150667	//   ]
150668	// }
150669
150670}
150671
150672// Pages invokes f for each page of results.
150673// A non-nil error returned from f will halt the iteration.
150674// The provided context supersedes any context provided to the Context method.
150675func (c *RoutersListCall) Pages(ctx context.Context, f func(*RouterList) error) error {
150676	c.ctx_ = ctx
150677	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
150678	for {
150679		x, err := c.Do()
150680		if err != nil {
150681			return err
150682		}
150683		if err := f(x); err != nil {
150684			return err
150685		}
150686		if x.NextPageToken == "" {
150687			return nil
150688		}
150689		c.PageToken(x.NextPageToken)
150690	}
150691}
150692
150693// method id "compute.routers.patch":
150694
150695type RoutersPatchCall struct {
150696	s          *Service
150697	project    string
150698	region     string
150699	router     string
150700	router2    *Router
150701	urlParams_ gensupport.URLParams
150702	ctx_       context.Context
150703	header_    http.Header
150704}
150705
150706// Patch: Patches the specified Router resource with the data included
150707// in the request. This method supports PATCH semantics and uses JSON
150708// merge patch format and processing rules.
150709func (r *RoutersService) Patch(project string, region string, router string, router2 *Router) *RoutersPatchCall {
150710	c := &RoutersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
150711	c.project = project
150712	c.region = region
150713	c.router = router
150714	c.router2 = router2
150715	return c
150716}
150717
150718// RequestId sets the optional parameter "requestId": An optional
150719// request ID to identify requests. Specify a unique request ID so that
150720// if you must retry your request, the server will know to ignore the
150721// request if it has already been completed.
150722//
150723// For example, consider a situation where you make an initial request
150724// and the request times out. If you make the request again with the
150725// same request ID, the server can check if original operation with the
150726// same request ID was received, and if so, will ignore the second
150727// request. This prevents clients from accidentally creating duplicate
150728// commitments.
150729//
150730// The request ID must be a valid UUID with the exception that zero UUID
150731// is not supported (00000000-0000-0000-0000-000000000000).
150732func (c *RoutersPatchCall) RequestId(requestId string) *RoutersPatchCall {
150733	c.urlParams_.Set("requestId", requestId)
150734	return c
150735}
150736
150737// Fields allows partial responses to be retrieved. See
150738// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
150739// for more information.
150740func (c *RoutersPatchCall) Fields(s ...googleapi.Field) *RoutersPatchCall {
150741	c.urlParams_.Set("fields", googleapi.CombineFields(s))
150742	return c
150743}
150744
150745// Context sets the context to be used in this call's Do method. Any
150746// pending HTTP request will be aborted if the provided context is
150747// canceled.
150748func (c *RoutersPatchCall) Context(ctx context.Context) *RoutersPatchCall {
150749	c.ctx_ = ctx
150750	return c
150751}
150752
150753// Header returns an http.Header that can be modified by the caller to
150754// add HTTP headers to the request.
150755func (c *RoutersPatchCall) Header() http.Header {
150756	if c.header_ == nil {
150757		c.header_ = make(http.Header)
150758	}
150759	return c.header_
150760}
150761
150762func (c *RoutersPatchCall) doRequest(alt string) (*http.Response, error) {
150763	reqHeaders := make(http.Header)
150764	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
150765	for k, v := range c.header_ {
150766		reqHeaders[k] = v
150767	}
150768	reqHeaders.Set("User-Agent", c.s.userAgent())
150769	var body io.Reader = nil
150770	body, err := googleapi.WithoutDataWrapper.JSONReader(c.router2)
150771	if err != nil {
150772		return nil, err
150773	}
150774	reqHeaders.Set("Content-Type", "application/json")
150775	c.urlParams_.Set("alt", alt)
150776	c.urlParams_.Set("prettyPrint", "false")
150777	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}")
150778	urls += "?" + c.urlParams_.Encode()
150779	req, err := http.NewRequest("PATCH", urls, body)
150780	if err != nil {
150781		return nil, err
150782	}
150783	req.Header = reqHeaders
150784	googleapi.Expand(req.URL, map[string]string{
150785		"project": c.project,
150786		"region":  c.region,
150787		"router":  c.router,
150788	})
150789	return gensupport.SendRequest(c.ctx_, c.s.client, req)
150790}
150791
150792// Do executes the "compute.routers.patch" call.
150793// Exactly one of *Operation or error will be non-nil. Any non-2xx
150794// status code is an error. Response headers are in either
150795// *Operation.ServerResponse.Header or (if a response was returned at
150796// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
150797// to check whether the returned error was because
150798// http.StatusNotModified was returned.
150799func (c *RoutersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
150800	gensupport.SetOptions(c.urlParams_, opts...)
150801	res, err := c.doRequest("json")
150802	if res != nil && res.StatusCode == http.StatusNotModified {
150803		if res.Body != nil {
150804			res.Body.Close()
150805		}
150806		return nil, &googleapi.Error{
150807			Code:   res.StatusCode,
150808			Header: res.Header,
150809		}
150810	}
150811	if err != nil {
150812		return nil, err
150813	}
150814	defer googleapi.CloseBody(res)
150815	if err := googleapi.CheckResponse(res); err != nil {
150816		return nil, err
150817	}
150818	ret := &Operation{
150819		ServerResponse: googleapi.ServerResponse{
150820			Header:         res.Header,
150821			HTTPStatusCode: res.StatusCode,
150822		},
150823	}
150824	target := &ret
150825	if err := gensupport.DecodeResponse(target, res); err != nil {
150826		return nil, err
150827	}
150828	return ret, nil
150829	// {
150830	//   "description": "Patches the specified Router resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules.",
150831	//   "httpMethod": "PATCH",
150832	//   "id": "compute.routers.patch",
150833	//   "parameterOrder": [
150834	//     "project",
150835	//     "region",
150836	//     "router"
150837	//   ],
150838	//   "parameters": {
150839	//     "project": {
150840	//       "description": "Project ID for this request.",
150841	//       "location": "path",
150842	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
150843	//       "required": true,
150844	//       "type": "string"
150845	//     },
150846	//     "region": {
150847	//       "description": "Name of the region for this request.",
150848	//       "location": "path",
150849	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
150850	//       "required": true,
150851	//       "type": "string"
150852	//     },
150853	//     "requestId": {
150854	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
150855	//       "location": "query",
150856	//       "type": "string"
150857	//     },
150858	//     "router": {
150859	//       "description": "Name of the Router resource to patch.",
150860	//       "location": "path",
150861	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
150862	//       "required": true,
150863	//       "type": "string"
150864	//     }
150865	//   },
150866	//   "path": "projects/{project}/regions/{region}/routers/{router}",
150867	//   "request": {
150868	//     "$ref": "Router"
150869	//   },
150870	//   "response": {
150871	//     "$ref": "Operation"
150872	//   },
150873	//   "scopes": [
150874	//     "https://www.googleapis.com/auth/cloud-platform",
150875	//     "https://www.googleapis.com/auth/compute"
150876	//   ]
150877	// }
150878
150879}
150880
150881// method id "compute.routers.preview":
150882
150883type RoutersPreviewCall struct {
150884	s          *Service
150885	project    string
150886	region     string
150887	router     string
150888	router2    *Router
150889	urlParams_ gensupport.URLParams
150890	ctx_       context.Context
150891	header_    http.Header
150892}
150893
150894// Preview: Preview fields auto-generated during router create and
150895// update operations. Calling this method does NOT create or update the
150896// router.
150897func (r *RoutersService) Preview(project string, region string, router string, router2 *Router) *RoutersPreviewCall {
150898	c := &RoutersPreviewCall{s: r.s, urlParams_: make(gensupport.URLParams)}
150899	c.project = project
150900	c.region = region
150901	c.router = router
150902	c.router2 = router2
150903	return c
150904}
150905
150906// Fields allows partial responses to be retrieved. See
150907// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
150908// for more information.
150909func (c *RoutersPreviewCall) Fields(s ...googleapi.Field) *RoutersPreviewCall {
150910	c.urlParams_.Set("fields", googleapi.CombineFields(s))
150911	return c
150912}
150913
150914// Context sets the context to be used in this call's Do method. Any
150915// pending HTTP request will be aborted if the provided context is
150916// canceled.
150917func (c *RoutersPreviewCall) Context(ctx context.Context) *RoutersPreviewCall {
150918	c.ctx_ = ctx
150919	return c
150920}
150921
150922// Header returns an http.Header that can be modified by the caller to
150923// add HTTP headers to the request.
150924func (c *RoutersPreviewCall) Header() http.Header {
150925	if c.header_ == nil {
150926		c.header_ = make(http.Header)
150927	}
150928	return c.header_
150929}
150930
150931func (c *RoutersPreviewCall) doRequest(alt string) (*http.Response, error) {
150932	reqHeaders := make(http.Header)
150933	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
150934	for k, v := range c.header_ {
150935		reqHeaders[k] = v
150936	}
150937	reqHeaders.Set("User-Agent", c.s.userAgent())
150938	var body io.Reader = nil
150939	body, err := googleapi.WithoutDataWrapper.JSONReader(c.router2)
150940	if err != nil {
150941		return nil, err
150942	}
150943	reqHeaders.Set("Content-Type", "application/json")
150944	c.urlParams_.Set("alt", alt)
150945	c.urlParams_.Set("prettyPrint", "false")
150946	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}/preview")
150947	urls += "?" + c.urlParams_.Encode()
150948	req, err := http.NewRequest("POST", urls, body)
150949	if err != nil {
150950		return nil, err
150951	}
150952	req.Header = reqHeaders
150953	googleapi.Expand(req.URL, map[string]string{
150954		"project": c.project,
150955		"region":  c.region,
150956		"router":  c.router,
150957	})
150958	return gensupport.SendRequest(c.ctx_, c.s.client, req)
150959}
150960
150961// Do executes the "compute.routers.preview" call.
150962// Exactly one of *RoutersPreviewResponse or error will be non-nil. Any
150963// non-2xx status code is an error. Response headers are in either
150964// *RoutersPreviewResponse.ServerResponse.Header or (if a response was
150965// returned at all) in error.(*googleapi.Error).Header. Use
150966// googleapi.IsNotModified to check whether the returned error was
150967// because http.StatusNotModified was returned.
150968func (c *RoutersPreviewCall) Do(opts ...googleapi.CallOption) (*RoutersPreviewResponse, error) {
150969	gensupport.SetOptions(c.urlParams_, opts...)
150970	res, err := c.doRequest("json")
150971	if res != nil && res.StatusCode == http.StatusNotModified {
150972		if res.Body != nil {
150973			res.Body.Close()
150974		}
150975		return nil, &googleapi.Error{
150976			Code:   res.StatusCode,
150977			Header: res.Header,
150978		}
150979	}
150980	if err != nil {
150981		return nil, err
150982	}
150983	defer googleapi.CloseBody(res)
150984	if err := googleapi.CheckResponse(res); err != nil {
150985		return nil, err
150986	}
150987	ret := &RoutersPreviewResponse{
150988		ServerResponse: googleapi.ServerResponse{
150989			Header:         res.Header,
150990			HTTPStatusCode: res.StatusCode,
150991		},
150992	}
150993	target := &ret
150994	if err := gensupport.DecodeResponse(target, res); err != nil {
150995		return nil, err
150996	}
150997	return ret, nil
150998	// {
150999	//   "description": "Preview fields auto-generated during router create and update operations. Calling this method does NOT create or update the router.",
151000	//   "httpMethod": "POST",
151001	//   "id": "compute.routers.preview",
151002	//   "parameterOrder": [
151003	//     "project",
151004	//     "region",
151005	//     "router"
151006	//   ],
151007	//   "parameters": {
151008	//     "project": {
151009	//       "description": "Project ID for this request.",
151010	//       "location": "path",
151011	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
151012	//       "required": true,
151013	//       "type": "string"
151014	//     },
151015	//     "region": {
151016	//       "description": "Name of the region for this request.",
151017	//       "location": "path",
151018	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
151019	//       "required": true,
151020	//       "type": "string"
151021	//     },
151022	//     "router": {
151023	//       "description": "Name of the Router resource to query.",
151024	//       "location": "path",
151025	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
151026	//       "required": true,
151027	//       "type": "string"
151028	//     }
151029	//   },
151030	//   "path": "projects/{project}/regions/{region}/routers/{router}/preview",
151031	//   "request": {
151032	//     "$ref": "Router"
151033	//   },
151034	//   "response": {
151035	//     "$ref": "RoutersPreviewResponse"
151036	//   },
151037	//   "scopes": [
151038	//     "https://www.googleapis.com/auth/cloud-platform",
151039	//     "https://www.googleapis.com/auth/compute",
151040	//     "https://www.googleapis.com/auth/compute.readonly"
151041	//   ]
151042	// }
151043
151044}
151045
151046// method id "compute.routers.testIamPermissions":
151047
151048type RoutersTestIamPermissionsCall struct {
151049	s                      *Service
151050	project                string
151051	region                 string
151052	resource               string
151053	testpermissionsrequest *TestPermissionsRequest
151054	urlParams_             gensupport.URLParams
151055	ctx_                   context.Context
151056	header_                http.Header
151057}
151058
151059// TestIamPermissions: Returns permissions that a caller has on the
151060// specified resource.
151061func (r *RoutersService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RoutersTestIamPermissionsCall {
151062	c := &RoutersTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
151063	c.project = project
151064	c.region = region
151065	c.resource = resource
151066	c.testpermissionsrequest = testpermissionsrequest
151067	return c
151068}
151069
151070// Fields allows partial responses to be retrieved. See
151071// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
151072// for more information.
151073func (c *RoutersTestIamPermissionsCall) Fields(s ...googleapi.Field) *RoutersTestIamPermissionsCall {
151074	c.urlParams_.Set("fields", googleapi.CombineFields(s))
151075	return c
151076}
151077
151078// Context sets the context to be used in this call's Do method. Any
151079// pending HTTP request will be aborted if the provided context is
151080// canceled.
151081func (c *RoutersTestIamPermissionsCall) Context(ctx context.Context) *RoutersTestIamPermissionsCall {
151082	c.ctx_ = ctx
151083	return c
151084}
151085
151086// Header returns an http.Header that can be modified by the caller to
151087// add HTTP headers to the request.
151088func (c *RoutersTestIamPermissionsCall) Header() http.Header {
151089	if c.header_ == nil {
151090		c.header_ = make(http.Header)
151091	}
151092	return c.header_
151093}
151094
151095func (c *RoutersTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
151096	reqHeaders := make(http.Header)
151097	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
151098	for k, v := range c.header_ {
151099		reqHeaders[k] = v
151100	}
151101	reqHeaders.Set("User-Agent", c.s.userAgent())
151102	var body io.Reader = nil
151103	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
151104	if err != nil {
151105		return nil, err
151106	}
151107	reqHeaders.Set("Content-Type", "application/json")
151108	c.urlParams_.Set("alt", alt)
151109	c.urlParams_.Set("prettyPrint", "false")
151110	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{resource}/testIamPermissions")
151111	urls += "?" + c.urlParams_.Encode()
151112	req, err := http.NewRequest("POST", urls, body)
151113	if err != nil {
151114		return nil, err
151115	}
151116	req.Header = reqHeaders
151117	googleapi.Expand(req.URL, map[string]string{
151118		"project":  c.project,
151119		"region":   c.region,
151120		"resource": c.resource,
151121	})
151122	return gensupport.SendRequest(c.ctx_, c.s.client, req)
151123}
151124
151125// Do executes the "compute.routers.testIamPermissions" call.
151126// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
151127// non-2xx status code is an error. Response headers are in either
151128// *TestPermissionsResponse.ServerResponse.Header or (if a response was
151129// returned at all) in error.(*googleapi.Error).Header. Use
151130// googleapi.IsNotModified to check whether the returned error was
151131// because http.StatusNotModified was returned.
151132func (c *RoutersTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
151133	gensupport.SetOptions(c.urlParams_, opts...)
151134	res, err := c.doRequest("json")
151135	if res != nil && res.StatusCode == http.StatusNotModified {
151136		if res.Body != nil {
151137			res.Body.Close()
151138		}
151139		return nil, &googleapi.Error{
151140			Code:   res.StatusCode,
151141			Header: res.Header,
151142		}
151143	}
151144	if err != nil {
151145		return nil, err
151146	}
151147	defer googleapi.CloseBody(res)
151148	if err := googleapi.CheckResponse(res); err != nil {
151149		return nil, err
151150	}
151151	ret := &TestPermissionsResponse{
151152		ServerResponse: googleapi.ServerResponse{
151153			Header:         res.Header,
151154			HTTPStatusCode: res.StatusCode,
151155		},
151156	}
151157	target := &ret
151158	if err := gensupport.DecodeResponse(target, res); err != nil {
151159		return nil, err
151160	}
151161	return ret, nil
151162	// {
151163	//   "description": "Returns permissions that a caller has on the specified resource.",
151164	//   "httpMethod": "POST",
151165	//   "id": "compute.routers.testIamPermissions",
151166	//   "parameterOrder": [
151167	//     "project",
151168	//     "region",
151169	//     "resource"
151170	//   ],
151171	//   "parameters": {
151172	//     "project": {
151173	//       "description": "Project ID for this request.",
151174	//       "location": "path",
151175	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
151176	//       "required": true,
151177	//       "type": "string"
151178	//     },
151179	//     "region": {
151180	//       "description": "The name of the region for this request.",
151181	//       "location": "path",
151182	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
151183	//       "required": true,
151184	//       "type": "string"
151185	//     },
151186	//     "resource": {
151187	//       "description": "Name or id of the resource for this request.",
151188	//       "location": "path",
151189	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
151190	//       "required": true,
151191	//       "type": "string"
151192	//     }
151193	//   },
151194	//   "path": "projects/{project}/regions/{region}/routers/{resource}/testIamPermissions",
151195	//   "request": {
151196	//     "$ref": "TestPermissionsRequest"
151197	//   },
151198	//   "response": {
151199	//     "$ref": "TestPermissionsResponse"
151200	//   },
151201	//   "scopes": [
151202	//     "https://www.googleapis.com/auth/cloud-platform",
151203	//     "https://www.googleapis.com/auth/compute",
151204	//     "https://www.googleapis.com/auth/compute.readonly"
151205	//   ]
151206	// }
151207
151208}
151209
151210// method id "compute.routers.update":
151211
151212type RoutersUpdateCall struct {
151213	s          *Service
151214	project    string
151215	region     string
151216	router     string
151217	router2    *Router
151218	urlParams_ gensupport.URLParams
151219	ctx_       context.Context
151220	header_    http.Header
151221}
151222
151223// Update: Updates the specified Router resource with the data included
151224// in the request. This method conforms to PUT semantics, which requests
151225// that the state of the target resource be created or replaced with the
151226// state defined by the representation enclosed in the request message
151227// payload.
151228func (r *RoutersService) Update(project string, region string, router string, router2 *Router) *RoutersUpdateCall {
151229	c := &RoutersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
151230	c.project = project
151231	c.region = region
151232	c.router = router
151233	c.router2 = router2
151234	return c
151235}
151236
151237// RequestId sets the optional parameter "requestId": An optional
151238// request ID to identify requests. Specify a unique request ID so that
151239// if you must retry your request, the server will know to ignore the
151240// request if it has already been completed.
151241//
151242// For example, consider a situation where you make an initial request
151243// and the request times out. If you make the request again with the
151244// same request ID, the server can check if original operation with the
151245// same request ID was received, and if so, will ignore the second
151246// request. This prevents clients from accidentally creating duplicate
151247// commitments.
151248//
151249// The request ID must be a valid UUID with the exception that zero UUID
151250// is not supported (00000000-0000-0000-0000-000000000000).
151251func (c *RoutersUpdateCall) RequestId(requestId string) *RoutersUpdateCall {
151252	c.urlParams_.Set("requestId", requestId)
151253	return c
151254}
151255
151256// Fields allows partial responses to be retrieved. See
151257// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
151258// for more information.
151259func (c *RoutersUpdateCall) Fields(s ...googleapi.Field) *RoutersUpdateCall {
151260	c.urlParams_.Set("fields", googleapi.CombineFields(s))
151261	return c
151262}
151263
151264// Context sets the context to be used in this call's Do method. Any
151265// pending HTTP request will be aborted if the provided context is
151266// canceled.
151267func (c *RoutersUpdateCall) Context(ctx context.Context) *RoutersUpdateCall {
151268	c.ctx_ = ctx
151269	return c
151270}
151271
151272// Header returns an http.Header that can be modified by the caller to
151273// add HTTP headers to the request.
151274func (c *RoutersUpdateCall) Header() http.Header {
151275	if c.header_ == nil {
151276		c.header_ = make(http.Header)
151277	}
151278	return c.header_
151279}
151280
151281func (c *RoutersUpdateCall) doRequest(alt string) (*http.Response, error) {
151282	reqHeaders := make(http.Header)
151283	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
151284	for k, v := range c.header_ {
151285		reqHeaders[k] = v
151286	}
151287	reqHeaders.Set("User-Agent", c.s.userAgent())
151288	var body io.Reader = nil
151289	body, err := googleapi.WithoutDataWrapper.JSONReader(c.router2)
151290	if err != nil {
151291		return nil, err
151292	}
151293	reqHeaders.Set("Content-Type", "application/json")
151294	c.urlParams_.Set("alt", alt)
151295	c.urlParams_.Set("prettyPrint", "false")
151296	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}")
151297	urls += "?" + c.urlParams_.Encode()
151298	req, err := http.NewRequest("PUT", urls, body)
151299	if err != nil {
151300		return nil, err
151301	}
151302	req.Header = reqHeaders
151303	googleapi.Expand(req.URL, map[string]string{
151304		"project": c.project,
151305		"region":  c.region,
151306		"router":  c.router,
151307	})
151308	return gensupport.SendRequest(c.ctx_, c.s.client, req)
151309}
151310
151311// Do executes the "compute.routers.update" call.
151312// Exactly one of *Operation or error will be non-nil. Any non-2xx
151313// status code is an error. Response headers are in either
151314// *Operation.ServerResponse.Header or (if a response was returned at
151315// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
151316// to check whether the returned error was because
151317// http.StatusNotModified was returned.
151318func (c *RoutersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
151319	gensupport.SetOptions(c.urlParams_, opts...)
151320	res, err := c.doRequest("json")
151321	if res != nil && res.StatusCode == http.StatusNotModified {
151322		if res.Body != nil {
151323			res.Body.Close()
151324		}
151325		return nil, &googleapi.Error{
151326			Code:   res.StatusCode,
151327			Header: res.Header,
151328		}
151329	}
151330	if err != nil {
151331		return nil, err
151332	}
151333	defer googleapi.CloseBody(res)
151334	if err := googleapi.CheckResponse(res); err != nil {
151335		return nil, err
151336	}
151337	ret := &Operation{
151338		ServerResponse: googleapi.ServerResponse{
151339			Header:         res.Header,
151340			HTTPStatusCode: res.StatusCode,
151341		},
151342	}
151343	target := &ret
151344	if err := gensupport.DecodeResponse(target, res); err != nil {
151345		return nil, err
151346	}
151347	return ret, nil
151348	// {
151349	//   "description": "Updates the specified Router resource with the data included in the request. This method conforms to PUT semantics, which requests that the state of the target resource be created or replaced with the state defined by the representation enclosed in the request message payload.",
151350	//   "httpMethod": "PUT",
151351	//   "id": "compute.routers.update",
151352	//   "parameterOrder": [
151353	//     "project",
151354	//     "region",
151355	//     "router"
151356	//   ],
151357	//   "parameters": {
151358	//     "project": {
151359	//       "description": "Project ID for this request.",
151360	//       "location": "path",
151361	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
151362	//       "required": true,
151363	//       "type": "string"
151364	//     },
151365	//     "region": {
151366	//       "description": "Name of the region for this request.",
151367	//       "location": "path",
151368	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
151369	//       "required": true,
151370	//       "type": "string"
151371	//     },
151372	//     "requestId": {
151373	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
151374	//       "location": "query",
151375	//       "type": "string"
151376	//     },
151377	//     "router": {
151378	//       "description": "Name of the Router resource to update.",
151379	//       "location": "path",
151380	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
151381	//       "required": true,
151382	//       "type": "string"
151383	//     }
151384	//   },
151385	//   "path": "projects/{project}/regions/{region}/routers/{router}",
151386	//   "request": {
151387	//     "$ref": "Router"
151388	//   },
151389	//   "response": {
151390	//     "$ref": "Operation"
151391	//   },
151392	//   "scopes": [
151393	//     "https://www.googleapis.com/auth/cloud-platform",
151394	//     "https://www.googleapis.com/auth/compute"
151395	//   ]
151396	// }
151397
151398}
151399
151400// method id "compute.routes.delete":
151401
151402type RoutesDeleteCall struct {
151403	s          *Service
151404	project    string
151405	route      string
151406	urlParams_ gensupport.URLParams
151407	ctx_       context.Context
151408	header_    http.Header
151409}
151410
151411// Delete: Deletes the specified Route resource.
151412// For details, see https://cloud.google.com/compute/docs/reference/latest/routes/delete
151413func (r *RoutesService) Delete(project string, route string) *RoutesDeleteCall {
151414	c := &RoutesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
151415	c.project = project
151416	c.route = route
151417	return c
151418}
151419
151420// RequestId sets the optional parameter "requestId": An optional
151421// request ID to identify requests. Specify a unique request ID so that
151422// if you must retry your request, the server will know to ignore the
151423// request if it has already been completed.
151424//
151425// For example, consider a situation where you make an initial request
151426// and the request times out. If you make the request again with the
151427// same request ID, the server can check if original operation with the
151428// same request ID was received, and if so, will ignore the second
151429// request. This prevents clients from accidentally creating duplicate
151430// commitments.
151431//
151432// The request ID must be a valid UUID with the exception that zero UUID
151433// is not supported (00000000-0000-0000-0000-000000000000).
151434func (c *RoutesDeleteCall) RequestId(requestId string) *RoutesDeleteCall {
151435	c.urlParams_.Set("requestId", requestId)
151436	return c
151437}
151438
151439// Fields allows partial responses to be retrieved. See
151440// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
151441// for more information.
151442func (c *RoutesDeleteCall) Fields(s ...googleapi.Field) *RoutesDeleteCall {
151443	c.urlParams_.Set("fields", googleapi.CombineFields(s))
151444	return c
151445}
151446
151447// Context sets the context to be used in this call's Do method. Any
151448// pending HTTP request will be aborted if the provided context is
151449// canceled.
151450func (c *RoutesDeleteCall) Context(ctx context.Context) *RoutesDeleteCall {
151451	c.ctx_ = ctx
151452	return c
151453}
151454
151455// Header returns an http.Header that can be modified by the caller to
151456// add HTTP headers to the request.
151457func (c *RoutesDeleteCall) Header() http.Header {
151458	if c.header_ == nil {
151459		c.header_ = make(http.Header)
151460	}
151461	return c.header_
151462}
151463
151464func (c *RoutesDeleteCall) doRequest(alt string) (*http.Response, error) {
151465	reqHeaders := make(http.Header)
151466	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
151467	for k, v := range c.header_ {
151468		reqHeaders[k] = v
151469	}
151470	reqHeaders.Set("User-Agent", c.s.userAgent())
151471	var body io.Reader = nil
151472	c.urlParams_.Set("alt", alt)
151473	c.urlParams_.Set("prettyPrint", "false")
151474	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/routes/{route}")
151475	urls += "?" + c.urlParams_.Encode()
151476	req, err := http.NewRequest("DELETE", urls, body)
151477	if err != nil {
151478		return nil, err
151479	}
151480	req.Header = reqHeaders
151481	googleapi.Expand(req.URL, map[string]string{
151482		"project": c.project,
151483		"route":   c.route,
151484	})
151485	return gensupport.SendRequest(c.ctx_, c.s.client, req)
151486}
151487
151488// Do executes the "compute.routes.delete" call.
151489// Exactly one of *Operation or error will be non-nil. Any non-2xx
151490// status code is an error. Response headers are in either
151491// *Operation.ServerResponse.Header or (if a response was returned at
151492// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
151493// to check whether the returned error was because
151494// http.StatusNotModified was returned.
151495func (c *RoutesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
151496	gensupport.SetOptions(c.urlParams_, opts...)
151497	res, err := c.doRequest("json")
151498	if res != nil && res.StatusCode == http.StatusNotModified {
151499		if res.Body != nil {
151500			res.Body.Close()
151501		}
151502		return nil, &googleapi.Error{
151503			Code:   res.StatusCode,
151504			Header: res.Header,
151505		}
151506	}
151507	if err != nil {
151508		return nil, err
151509	}
151510	defer googleapi.CloseBody(res)
151511	if err := googleapi.CheckResponse(res); err != nil {
151512		return nil, err
151513	}
151514	ret := &Operation{
151515		ServerResponse: googleapi.ServerResponse{
151516			Header:         res.Header,
151517			HTTPStatusCode: res.StatusCode,
151518		},
151519	}
151520	target := &ret
151521	if err := gensupport.DecodeResponse(target, res); err != nil {
151522		return nil, err
151523	}
151524	return ret, nil
151525	// {
151526	//   "description": "Deletes the specified Route resource.",
151527	//   "httpMethod": "DELETE",
151528	//   "id": "compute.routes.delete",
151529	//   "parameterOrder": [
151530	//     "project",
151531	//     "route"
151532	//   ],
151533	//   "parameters": {
151534	//     "project": {
151535	//       "description": "Project ID for this request.",
151536	//       "location": "path",
151537	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
151538	//       "required": true,
151539	//       "type": "string"
151540	//     },
151541	//     "requestId": {
151542	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
151543	//       "location": "query",
151544	//       "type": "string"
151545	//     },
151546	//     "route": {
151547	//       "description": "Name of the Route resource to delete.",
151548	//       "location": "path",
151549	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
151550	//       "required": true,
151551	//       "type": "string"
151552	//     }
151553	//   },
151554	//   "path": "projects/{project}/global/routes/{route}",
151555	//   "response": {
151556	//     "$ref": "Operation"
151557	//   },
151558	//   "scopes": [
151559	//     "https://www.googleapis.com/auth/cloud-platform",
151560	//     "https://www.googleapis.com/auth/compute"
151561	//   ]
151562	// }
151563
151564}
151565
151566// method id "compute.routes.get":
151567
151568type RoutesGetCall struct {
151569	s            *Service
151570	project      string
151571	route        string
151572	urlParams_   gensupport.URLParams
151573	ifNoneMatch_ string
151574	ctx_         context.Context
151575	header_      http.Header
151576}
151577
151578// Get: Returns the specified Route resource. Gets a list of available
151579// routes by making a list() request.
151580// For details, see https://cloud.google.com/compute/docs/reference/latest/routes/get
151581func (r *RoutesService) Get(project string, route string) *RoutesGetCall {
151582	c := &RoutesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
151583	c.project = project
151584	c.route = route
151585	return c
151586}
151587
151588// Fields allows partial responses to be retrieved. See
151589// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
151590// for more information.
151591func (c *RoutesGetCall) Fields(s ...googleapi.Field) *RoutesGetCall {
151592	c.urlParams_.Set("fields", googleapi.CombineFields(s))
151593	return c
151594}
151595
151596// IfNoneMatch sets the optional parameter which makes the operation
151597// fail if the object's ETag matches the given value. This is useful for
151598// getting updates only after the object has changed since the last
151599// request. Use googleapi.IsNotModified to check whether the response
151600// error from Do is the result of In-None-Match.
151601func (c *RoutesGetCall) IfNoneMatch(entityTag string) *RoutesGetCall {
151602	c.ifNoneMatch_ = entityTag
151603	return c
151604}
151605
151606// Context sets the context to be used in this call's Do method. Any
151607// pending HTTP request will be aborted if the provided context is
151608// canceled.
151609func (c *RoutesGetCall) Context(ctx context.Context) *RoutesGetCall {
151610	c.ctx_ = ctx
151611	return c
151612}
151613
151614// Header returns an http.Header that can be modified by the caller to
151615// add HTTP headers to the request.
151616func (c *RoutesGetCall) Header() http.Header {
151617	if c.header_ == nil {
151618		c.header_ = make(http.Header)
151619	}
151620	return c.header_
151621}
151622
151623func (c *RoutesGetCall) doRequest(alt string) (*http.Response, error) {
151624	reqHeaders := make(http.Header)
151625	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
151626	for k, v := range c.header_ {
151627		reqHeaders[k] = v
151628	}
151629	reqHeaders.Set("User-Agent", c.s.userAgent())
151630	if c.ifNoneMatch_ != "" {
151631		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
151632	}
151633	var body io.Reader = nil
151634	c.urlParams_.Set("alt", alt)
151635	c.urlParams_.Set("prettyPrint", "false")
151636	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/routes/{route}")
151637	urls += "?" + c.urlParams_.Encode()
151638	req, err := http.NewRequest("GET", urls, body)
151639	if err != nil {
151640		return nil, err
151641	}
151642	req.Header = reqHeaders
151643	googleapi.Expand(req.URL, map[string]string{
151644		"project": c.project,
151645		"route":   c.route,
151646	})
151647	return gensupport.SendRequest(c.ctx_, c.s.client, req)
151648}
151649
151650// Do executes the "compute.routes.get" call.
151651// Exactly one of *Route or error will be non-nil. Any non-2xx status
151652// code is an error. Response headers are in either
151653// *Route.ServerResponse.Header or (if a response was returned at all)
151654// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
151655// check whether the returned error was because http.StatusNotModified
151656// was returned.
151657func (c *RoutesGetCall) Do(opts ...googleapi.CallOption) (*Route, error) {
151658	gensupport.SetOptions(c.urlParams_, opts...)
151659	res, err := c.doRequest("json")
151660	if res != nil && res.StatusCode == http.StatusNotModified {
151661		if res.Body != nil {
151662			res.Body.Close()
151663		}
151664		return nil, &googleapi.Error{
151665			Code:   res.StatusCode,
151666			Header: res.Header,
151667		}
151668	}
151669	if err != nil {
151670		return nil, err
151671	}
151672	defer googleapi.CloseBody(res)
151673	if err := googleapi.CheckResponse(res); err != nil {
151674		return nil, err
151675	}
151676	ret := &Route{
151677		ServerResponse: googleapi.ServerResponse{
151678			Header:         res.Header,
151679			HTTPStatusCode: res.StatusCode,
151680		},
151681	}
151682	target := &ret
151683	if err := gensupport.DecodeResponse(target, res); err != nil {
151684		return nil, err
151685	}
151686	return ret, nil
151687	// {
151688	//   "description": "Returns the specified Route resource. Gets a list of available routes by making a list() request.",
151689	//   "httpMethod": "GET",
151690	//   "id": "compute.routes.get",
151691	//   "parameterOrder": [
151692	//     "project",
151693	//     "route"
151694	//   ],
151695	//   "parameters": {
151696	//     "project": {
151697	//       "description": "Project ID for this request.",
151698	//       "location": "path",
151699	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
151700	//       "required": true,
151701	//       "type": "string"
151702	//     },
151703	//     "route": {
151704	//       "description": "Name of the Route resource to return.",
151705	//       "location": "path",
151706	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
151707	//       "required": true,
151708	//       "type": "string"
151709	//     }
151710	//   },
151711	//   "path": "projects/{project}/global/routes/{route}",
151712	//   "response": {
151713	//     "$ref": "Route"
151714	//   },
151715	//   "scopes": [
151716	//     "https://www.googleapis.com/auth/cloud-platform",
151717	//     "https://www.googleapis.com/auth/compute",
151718	//     "https://www.googleapis.com/auth/compute.readonly"
151719	//   ]
151720	// }
151721
151722}
151723
151724// method id "compute.routes.insert":
151725
151726type RoutesInsertCall struct {
151727	s          *Service
151728	project    string
151729	route      *Route
151730	urlParams_ gensupport.URLParams
151731	ctx_       context.Context
151732	header_    http.Header
151733}
151734
151735// Insert: Creates a Route resource in the specified project using the
151736// data included in the request.
151737// For details, see https://cloud.google.com/compute/docs/reference/latest/routes/insert
151738func (r *RoutesService) Insert(project string, route *Route) *RoutesInsertCall {
151739	c := &RoutesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
151740	c.project = project
151741	c.route = route
151742	return c
151743}
151744
151745// RequestId sets the optional parameter "requestId": An optional
151746// request ID to identify requests. Specify a unique request ID so that
151747// if you must retry your request, the server will know to ignore the
151748// request if it has already been completed.
151749//
151750// For example, consider a situation where you make an initial request
151751// and the request times out. If you make the request again with the
151752// same request ID, the server can check if original operation with the
151753// same request ID was received, and if so, will ignore the second
151754// request. This prevents clients from accidentally creating duplicate
151755// commitments.
151756//
151757// The request ID must be a valid UUID with the exception that zero UUID
151758// is not supported (00000000-0000-0000-0000-000000000000).
151759func (c *RoutesInsertCall) RequestId(requestId string) *RoutesInsertCall {
151760	c.urlParams_.Set("requestId", requestId)
151761	return c
151762}
151763
151764// Fields allows partial responses to be retrieved. See
151765// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
151766// for more information.
151767func (c *RoutesInsertCall) Fields(s ...googleapi.Field) *RoutesInsertCall {
151768	c.urlParams_.Set("fields", googleapi.CombineFields(s))
151769	return c
151770}
151771
151772// Context sets the context to be used in this call's Do method. Any
151773// pending HTTP request will be aborted if the provided context is
151774// canceled.
151775func (c *RoutesInsertCall) Context(ctx context.Context) *RoutesInsertCall {
151776	c.ctx_ = ctx
151777	return c
151778}
151779
151780// Header returns an http.Header that can be modified by the caller to
151781// add HTTP headers to the request.
151782func (c *RoutesInsertCall) Header() http.Header {
151783	if c.header_ == nil {
151784		c.header_ = make(http.Header)
151785	}
151786	return c.header_
151787}
151788
151789func (c *RoutesInsertCall) doRequest(alt string) (*http.Response, error) {
151790	reqHeaders := make(http.Header)
151791	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
151792	for k, v := range c.header_ {
151793		reqHeaders[k] = v
151794	}
151795	reqHeaders.Set("User-Agent", c.s.userAgent())
151796	var body io.Reader = nil
151797	body, err := googleapi.WithoutDataWrapper.JSONReader(c.route)
151798	if err != nil {
151799		return nil, err
151800	}
151801	reqHeaders.Set("Content-Type", "application/json")
151802	c.urlParams_.Set("alt", alt)
151803	c.urlParams_.Set("prettyPrint", "false")
151804	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/routes")
151805	urls += "?" + c.urlParams_.Encode()
151806	req, err := http.NewRequest("POST", urls, body)
151807	if err != nil {
151808		return nil, err
151809	}
151810	req.Header = reqHeaders
151811	googleapi.Expand(req.URL, map[string]string{
151812		"project": c.project,
151813	})
151814	return gensupport.SendRequest(c.ctx_, c.s.client, req)
151815}
151816
151817// Do executes the "compute.routes.insert" call.
151818// Exactly one of *Operation or error will be non-nil. Any non-2xx
151819// status code is an error. Response headers are in either
151820// *Operation.ServerResponse.Header or (if a response was returned at
151821// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
151822// to check whether the returned error was because
151823// http.StatusNotModified was returned.
151824func (c *RoutesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
151825	gensupport.SetOptions(c.urlParams_, opts...)
151826	res, err := c.doRequest("json")
151827	if res != nil && res.StatusCode == http.StatusNotModified {
151828		if res.Body != nil {
151829			res.Body.Close()
151830		}
151831		return nil, &googleapi.Error{
151832			Code:   res.StatusCode,
151833			Header: res.Header,
151834		}
151835	}
151836	if err != nil {
151837		return nil, err
151838	}
151839	defer googleapi.CloseBody(res)
151840	if err := googleapi.CheckResponse(res); err != nil {
151841		return nil, err
151842	}
151843	ret := &Operation{
151844		ServerResponse: googleapi.ServerResponse{
151845			Header:         res.Header,
151846			HTTPStatusCode: res.StatusCode,
151847		},
151848	}
151849	target := &ret
151850	if err := gensupport.DecodeResponse(target, res); err != nil {
151851		return nil, err
151852	}
151853	return ret, nil
151854	// {
151855	//   "description": "Creates a Route resource in the specified project using the data included in the request.",
151856	//   "httpMethod": "POST",
151857	//   "id": "compute.routes.insert",
151858	//   "parameterOrder": [
151859	//     "project"
151860	//   ],
151861	//   "parameters": {
151862	//     "project": {
151863	//       "description": "Project ID for this request.",
151864	//       "location": "path",
151865	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
151866	//       "required": true,
151867	//       "type": "string"
151868	//     },
151869	//     "requestId": {
151870	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
151871	//       "location": "query",
151872	//       "type": "string"
151873	//     }
151874	//   },
151875	//   "path": "projects/{project}/global/routes",
151876	//   "request": {
151877	//     "$ref": "Route"
151878	//   },
151879	//   "response": {
151880	//     "$ref": "Operation"
151881	//   },
151882	//   "scopes": [
151883	//     "https://www.googleapis.com/auth/cloud-platform",
151884	//     "https://www.googleapis.com/auth/compute"
151885	//   ]
151886	// }
151887
151888}
151889
151890// method id "compute.routes.list":
151891
151892type RoutesListCall struct {
151893	s            *Service
151894	project      string
151895	urlParams_   gensupport.URLParams
151896	ifNoneMatch_ string
151897	ctx_         context.Context
151898	header_      http.Header
151899}
151900
151901// List: Retrieves the list of Route resources available to the
151902// specified project.
151903// For details, see https://cloud.google.com/compute/docs/reference/latest/routes/list
151904func (r *RoutesService) List(project string) *RoutesListCall {
151905	c := &RoutesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
151906	c.project = project
151907	return c
151908}
151909
151910// Filter sets the optional parameter "filter": A filter expression that
151911// filters resources listed in the response. The expression must specify
151912// the field name, a comparison operator, and the value that you want to
151913// use for filtering. The value must be a string, a number, or a
151914// boolean. The comparison operator must be either `=`, `!=`, `>`, or
151915// `<`.
151916//
151917// For example, if you are filtering Compute Engine instances, you can
151918// exclude instances named `example-instance` by specifying `name !=
151919// example-instance`.
151920//
151921// You can also filter nested fields. For example, you could specify
151922// `scheduling.automaticRestart = false` to include instances only if
151923// they are not scheduled for automatic restarts. You can use filtering
151924// on nested fields to filter based on resource labels.
151925//
151926// To filter on multiple expressions, provide each separate expression
151927// within parentheses. For example: ``` (scheduling.automaticRestart =
151928// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
151929// is an `AND` expression. However, you can include `AND` and `OR`
151930// expressions explicitly. For example: ``` (cpuPlatform = "Intel
151931// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
151932// (scheduling.automaticRestart = true) ```
151933func (c *RoutesListCall) Filter(filter string) *RoutesListCall {
151934	c.urlParams_.Set("filter", filter)
151935	return c
151936}
151937
151938// MaxResults sets the optional parameter "maxResults": The maximum
151939// number of results per page that should be returned. If the number of
151940// available results is larger than `maxResults`, Compute Engine returns
151941// a `nextPageToken` that can be used to get the next page of results in
151942// subsequent list requests. Acceptable values are `0` to `500`,
151943// inclusive. (Default: `500`)
151944func (c *RoutesListCall) MaxResults(maxResults int64) *RoutesListCall {
151945	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
151946	return c
151947}
151948
151949// OrderBy sets the optional parameter "orderBy": Sorts list results by
151950// a certain order. By default, results are returned in alphanumerical
151951// order based on the resource name.
151952//
151953// You can also sort results in descending order based on the creation
151954// timestamp using `orderBy="creationTimestamp desc". This sorts
151955// results based on the `creationTimestamp` field in reverse
151956// chronological order (newest result first). Use this to sort resources
151957// like operations so that the newest operation is returned
151958// first.
151959//
151960// Currently, only sorting by `name` or `creationTimestamp desc` is
151961// supported.
151962func (c *RoutesListCall) OrderBy(orderBy string) *RoutesListCall {
151963	c.urlParams_.Set("orderBy", orderBy)
151964	return c
151965}
151966
151967// PageToken sets the optional parameter "pageToken": Specifies a page
151968// token to use. Set `pageToken` to the `nextPageToken` returned by a
151969// previous list request to get the next page of results.
151970func (c *RoutesListCall) PageToken(pageToken string) *RoutesListCall {
151971	c.urlParams_.Set("pageToken", pageToken)
151972	return c
151973}
151974
151975// ReturnPartialSuccess sets the optional parameter
151976// "returnPartialSuccess": Opt-in for partial success behavior which
151977// provides partial results in case of failure. The default value is
151978// false.
151979func (c *RoutesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RoutesListCall {
151980	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
151981	return c
151982}
151983
151984// Fields allows partial responses to be retrieved. See
151985// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
151986// for more information.
151987func (c *RoutesListCall) Fields(s ...googleapi.Field) *RoutesListCall {
151988	c.urlParams_.Set("fields", googleapi.CombineFields(s))
151989	return c
151990}
151991
151992// IfNoneMatch sets the optional parameter which makes the operation
151993// fail if the object's ETag matches the given value. This is useful for
151994// getting updates only after the object has changed since the last
151995// request. Use googleapi.IsNotModified to check whether the response
151996// error from Do is the result of In-None-Match.
151997func (c *RoutesListCall) IfNoneMatch(entityTag string) *RoutesListCall {
151998	c.ifNoneMatch_ = entityTag
151999	return c
152000}
152001
152002// Context sets the context to be used in this call's Do method. Any
152003// pending HTTP request will be aborted if the provided context is
152004// canceled.
152005func (c *RoutesListCall) Context(ctx context.Context) *RoutesListCall {
152006	c.ctx_ = ctx
152007	return c
152008}
152009
152010// Header returns an http.Header that can be modified by the caller to
152011// add HTTP headers to the request.
152012func (c *RoutesListCall) Header() http.Header {
152013	if c.header_ == nil {
152014		c.header_ = make(http.Header)
152015	}
152016	return c.header_
152017}
152018
152019func (c *RoutesListCall) doRequest(alt string) (*http.Response, error) {
152020	reqHeaders := make(http.Header)
152021	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
152022	for k, v := range c.header_ {
152023		reqHeaders[k] = v
152024	}
152025	reqHeaders.Set("User-Agent", c.s.userAgent())
152026	if c.ifNoneMatch_ != "" {
152027		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
152028	}
152029	var body io.Reader = nil
152030	c.urlParams_.Set("alt", alt)
152031	c.urlParams_.Set("prettyPrint", "false")
152032	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/routes")
152033	urls += "?" + c.urlParams_.Encode()
152034	req, err := http.NewRequest("GET", urls, body)
152035	if err != nil {
152036		return nil, err
152037	}
152038	req.Header = reqHeaders
152039	googleapi.Expand(req.URL, map[string]string{
152040		"project": c.project,
152041	})
152042	return gensupport.SendRequest(c.ctx_, c.s.client, req)
152043}
152044
152045// Do executes the "compute.routes.list" call.
152046// Exactly one of *RouteList or error will be non-nil. Any non-2xx
152047// status code is an error. Response headers are in either
152048// *RouteList.ServerResponse.Header or (if a response was returned at
152049// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
152050// to check whether the returned error was because
152051// http.StatusNotModified was returned.
152052func (c *RoutesListCall) Do(opts ...googleapi.CallOption) (*RouteList, error) {
152053	gensupport.SetOptions(c.urlParams_, opts...)
152054	res, err := c.doRequest("json")
152055	if res != nil && res.StatusCode == http.StatusNotModified {
152056		if res.Body != nil {
152057			res.Body.Close()
152058		}
152059		return nil, &googleapi.Error{
152060			Code:   res.StatusCode,
152061			Header: res.Header,
152062		}
152063	}
152064	if err != nil {
152065		return nil, err
152066	}
152067	defer googleapi.CloseBody(res)
152068	if err := googleapi.CheckResponse(res); err != nil {
152069		return nil, err
152070	}
152071	ret := &RouteList{
152072		ServerResponse: googleapi.ServerResponse{
152073			Header:         res.Header,
152074			HTTPStatusCode: res.StatusCode,
152075		},
152076	}
152077	target := &ret
152078	if err := gensupport.DecodeResponse(target, res); err != nil {
152079		return nil, err
152080	}
152081	return ret, nil
152082	// {
152083	//   "description": "Retrieves the list of Route resources available to the specified project.",
152084	//   "httpMethod": "GET",
152085	//   "id": "compute.routes.list",
152086	//   "parameterOrder": [
152087	//     "project"
152088	//   ],
152089	//   "parameters": {
152090	//     "filter": {
152091	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
152092	//       "location": "query",
152093	//       "type": "string"
152094	//     },
152095	//     "maxResults": {
152096	//       "default": "500",
152097	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
152098	//       "format": "uint32",
152099	//       "location": "query",
152100	//       "minimum": "0",
152101	//       "type": "integer"
152102	//     },
152103	//     "orderBy": {
152104	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
152105	//       "location": "query",
152106	//       "type": "string"
152107	//     },
152108	//     "pageToken": {
152109	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
152110	//       "location": "query",
152111	//       "type": "string"
152112	//     },
152113	//     "project": {
152114	//       "description": "Project ID for this request.",
152115	//       "location": "path",
152116	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
152117	//       "required": true,
152118	//       "type": "string"
152119	//     },
152120	//     "returnPartialSuccess": {
152121	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
152122	//       "location": "query",
152123	//       "type": "boolean"
152124	//     }
152125	//   },
152126	//   "path": "projects/{project}/global/routes",
152127	//   "response": {
152128	//     "$ref": "RouteList"
152129	//   },
152130	//   "scopes": [
152131	//     "https://www.googleapis.com/auth/cloud-platform",
152132	//     "https://www.googleapis.com/auth/compute",
152133	//     "https://www.googleapis.com/auth/compute.readonly"
152134	//   ]
152135	// }
152136
152137}
152138
152139// Pages invokes f for each page of results.
152140// A non-nil error returned from f will halt the iteration.
152141// The provided context supersedes any context provided to the Context method.
152142func (c *RoutesListCall) Pages(ctx context.Context, f func(*RouteList) error) error {
152143	c.ctx_ = ctx
152144	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
152145	for {
152146		x, err := c.Do()
152147		if err != nil {
152148			return err
152149		}
152150		if err := f(x); err != nil {
152151			return err
152152		}
152153		if x.NextPageToken == "" {
152154			return nil
152155		}
152156		c.PageToken(x.NextPageToken)
152157	}
152158}
152159
152160// method id "compute.routes.testIamPermissions":
152161
152162type RoutesTestIamPermissionsCall struct {
152163	s                      *Service
152164	project                string
152165	resource               string
152166	testpermissionsrequest *TestPermissionsRequest
152167	urlParams_             gensupport.URLParams
152168	ctx_                   context.Context
152169	header_                http.Header
152170}
152171
152172// TestIamPermissions: Returns permissions that a caller has on the
152173// specified resource.
152174func (r *RoutesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *RoutesTestIamPermissionsCall {
152175	c := &RoutesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
152176	c.project = project
152177	c.resource = resource
152178	c.testpermissionsrequest = testpermissionsrequest
152179	return c
152180}
152181
152182// Fields allows partial responses to be retrieved. See
152183// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
152184// for more information.
152185func (c *RoutesTestIamPermissionsCall) Fields(s ...googleapi.Field) *RoutesTestIamPermissionsCall {
152186	c.urlParams_.Set("fields", googleapi.CombineFields(s))
152187	return c
152188}
152189
152190// Context sets the context to be used in this call's Do method. Any
152191// pending HTTP request will be aborted if the provided context is
152192// canceled.
152193func (c *RoutesTestIamPermissionsCall) Context(ctx context.Context) *RoutesTestIamPermissionsCall {
152194	c.ctx_ = ctx
152195	return c
152196}
152197
152198// Header returns an http.Header that can be modified by the caller to
152199// add HTTP headers to the request.
152200func (c *RoutesTestIamPermissionsCall) Header() http.Header {
152201	if c.header_ == nil {
152202		c.header_ = make(http.Header)
152203	}
152204	return c.header_
152205}
152206
152207func (c *RoutesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
152208	reqHeaders := make(http.Header)
152209	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
152210	for k, v := range c.header_ {
152211		reqHeaders[k] = v
152212	}
152213	reqHeaders.Set("User-Agent", c.s.userAgent())
152214	var body io.Reader = nil
152215	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
152216	if err != nil {
152217		return nil, err
152218	}
152219	reqHeaders.Set("Content-Type", "application/json")
152220	c.urlParams_.Set("alt", alt)
152221	c.urlParams_.Set("prettyPrint", "false")
152222	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/routes/{resource}/testIamPermissions")
152223	urls += "?" + c.urlParams_.Encode()
152224	req, err := http.NewRequest("POST", urls, body)
152225	if err != nil {
152226		return nil, err
152227	}
152228	req.Header = reqHeaders
152229	googleapi.Expand(req.URL, map[string]string{
152230		"project":  c.project,
152231		"resource": c.resource,
152232	})
152233	return gensupport.SendRequest(c.ctx_, c.s.client, req)
152234}
152235
152236// Do executes the "compute.routes.testIamPermissions" call.
152237// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
152238// non-2xx status code is an error. Response headers are in either
152239// *TestPermissionsResponse.ServerResponse.Header or (if a response was
152240// returned at all) in error.(*googleapi.Error).Header. Use
152241// googleapi.IsNotModified to check whether the returned error was
152242// because http.StatusNotModified was returned.
152243func (c *RoutesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
152244	gensupport.SetOptions(c.urlParams_, opts...)
152245	res, err := c.doRequest("json")
152246	if res != nil && res.StatusCode == http.StatusNotModified {
152247		if res.Body != nil {
152248			res.Body.Close()
152249		}
152250		return nil, &googleapi.Error{
152251			Code:   res.StatusCode,
152252			Header: res.Header,
152253		}
152254	}
152255	if err != nil {
152256		return nil, err
152257	}
152258	defer googleapi.CloseBody(res)
152259	if err := googleapi.CheckResponse(res); err != nil {
152260		return nil, err
152261	}
152262	ret := &TestPermissionsResponse{
152263		ServerResponse: googleapi.ServerResponse{
152264			Header:         res.Header,
152265			HTTPStatusCode: res.StatusCode,
152266		},
152267	}
152268	target := &ret
152269	if err := gensupport.DecodeResponse(target, res); err != nil {
152270		return nil, err
152271	}
152272	return ret, nil
152273	// {
152274	//   "description": "Returns permissions that a caller has on the specified resource.",
152275	//   "httpMethod": "POST",
152276	//   "id": "compute.routes.testIamPermissions",
152277	//   "parameterOrder": [
152278	//     "project",
152279	//     "resource"
152280	//   ],
152281	//   "parameters": {
152282	//     "project": {
152283	//       "description": "Project ID for this request.",
152284	//       "location": "path",
152285	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
152286	//       "required": true,
152287	//       "type": "string"
152288	//     },
152289	//     "resource": {
152290	//       "description": "Name or id of the resource for this request.",
152291	//       "location": "path",
152292	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
152293	//       "required": true,
152294	//       "type": "string"
152295	//     }
152296	//   },
152297	//   "path": "projects/{project}/global/routes/{resource}/testIamPermissions",
152298	//   "request": {
152299	//     "$ref": "TestPermissionsRequest"
152300	//   },
152301	//   "response": {
152302	//     "$ref": "TestPermissionsResponse"
152303	//   },
152304	//   "scopes": [
152305	//     "https://www.googleapis.com/auth/cloud-platform",
152306	//     "https://www.googleapis.com/auth/compute",
152307	//     "https://www.googleapis.com/auth/compute.readonly"
152308	//   ]
152309	// }
152310
152311}
152312
152313// method id "compute.securityPolicies.addRule":
152314
152315type SecurityPoliciesAddRuleCall struct {
152316	s                  *Service
152317	project            string
152318	securityPolicy     string
152319	securitypolicyrule *SecurityPolicyRule
152320	urlParams_         gensupport.URLParams
152321	ctx_               context.Context
152322	header_            http.Header
152323}
152324
152325// AddRule: Inserts a rule into a security policy.
152326func (r *SecurityPoliciesService) AddRule(project string, securityPolicy string, securitypolicyrule *SecurityPolicyRule) *SecurityPoliciesAddRuleCall {
152327	c := &SecurityPoliciesAddRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
152328	c.project = project
152329	c.securityPolicy = securityPolicy
152330	c.securitypolicyrule = securitypolicyrule
152331	return c
152332}
152333
152334// ValidateOnly sets the optional parameter "validateOnly": If true, the
152335// request will not be committed.
152336func (c *SecurityPoliciesAddRuleCall) ValidateOnly(validateOnly bool) *SecurityPoliciesAddRuleCall {
152337	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
152338	return c
152339}
152340
152341// Fields allows partial responses to be retrieved. See
152342// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
152343// for more information.
152344func (c *SecurityPoliciesAddRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesAddRuleCall {
152345	c.urlParams_.Set("fields", googleapi.CombineFields(s))
152346	return c
152347}
152348
152349// Context sets the context to be used in this call's Do method. Any
152350// pending HTTP request will be aborted if the provided context is
152351// canceled.
152352func (c *SecurityPoliciesAddRuleCall) Context(ctx context.Context) *SecurityPoliciesAddRuleCall {
152353	c.ctx_ = ctx
152354	return c
152355}
152356
152357// Header returns an http.Header that can be modified by the caller to
152358// add HTTP headers to the request.
152359func (c *SecurityPoliciesAddRuleCall) Header() http.Header {
152360	if c.header_ == nil {
152361		c.header_ = make(http.Header)
152362	}
152363	return c.header_
152364}
152365
152366func (c *SecurityPoliciesAddRuleCall) doRequest(alt string) (*http.Response, error) {
152367	reqHeaders := make(http.Header)
152368	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
152369	for k, v := range c.header_ {
152370		reqHeaders[k] = v
152371	}
152372	reqHeaders.Set("User-Agent", c.s.userAgent())
152373	var body io.Reader = nil
152374	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyrule)
152375	if err != nil {
152376		return nil, err
152377	}
152378	reqHeaders.Set("Content-Type", "application/json")
152379	c.urlParams_.Set("alt", alt)
152380	c.urlParams_.Set("prettyPrint", "false")
152381	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/{securityPolicy}/addRule")
152382	urls += "?" + c.urlParams_.Encode()
152383	req, err := http.NewRequest("POST", urls, body)
152384	if err != nil {
152385		return nil, err
152386	}
152387	req.Header = reqHeaders
152388	googleapi.Expand(req.URL, map[string]string{
152389		"project":        c.project,
152390		"securityPolicy": c.securityPolicy,
152391	})
152392	return gensupport.SendRequest(c.ctx_, c.s.client, req)
152393}
152394
152395// Do executes the "compute.securityPolicies.addRule" call.
152396// Exactly one of *Operation or error will be non-nil. Any non-2xx
152397// status code is an error. Response headers are in either
152398// *Operation.ServerResponse.Header or (if a response was returned at
152399// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
152400// to check whether the returned error was because
152401// http.StatusNotModified was returned.
152402func (c *SecurityPoliciesAddRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
152403	gensupport.SetOptions(c.urlParams_, opts...)
152404	res, err := c.doRequest("json")
152405	if res != nil && res.StatusCode == http.StatusNotModified {
152406		if res.Body != nil {
152407			res.Body.Close()
152408		}
152409		return nil, &googleapi.Error{
152410			Code:   res.StatusCode,
152411			Header: res.Header,
152412		}
152413	}
152414	if err != nil {
152415		return nil, err
152416	}
152417	defer googleapi.CloseBody(res)
152418	if err := googleapi.CheckResponse(res); err != nil {
152419		return nil, err
152420	}
152421	ret := &Operation{
152422		ServerResponse: googleapi.ServerResponse{
152423			Header:         res.Header,
152424			HTTPStatusCode: res.StatusCode,
152425		},
152426	}
152427	target := &ret
152428	if err := gensupport.DecodeResponse(target, res); err != nil {
152429		return nil, err
152430	}
152431	return ret, nil
152432	// {
152433	//   "description": "Inserts a rule into a security policy.",
152434	//   "httpMethod": "POST",
152435	//   "id": "compute.securityPolicies.addRule",
152436	//   "parameterOrder": [
152437	//     "project",
152438	//     "securityPolicy"
152439	//   ],
152440	//   "parameters": {
152441	//     "project": {
152442	//       "description": "Project ID for this request.",
152443	//       "location": "path",
152444	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
152445	//       "required": true,
152446	//       "type": "string"
152447	//     },
152448	//     "securityPolicy": {
152449	//       "description": "Name of the security policy to update.",
152450	//       "location": "path",
152451	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
152452	//       "required": true,
152453	//       "type": "string"
152454	//     },
152455	//     "validateOnly": {
152456	//       "description": "If true, the request will not be committed.",
152457	//       "location": "query",
152458	//       "type": "boolean"
152459	//     }
152460	//   },
152461	//   "path": "projects/{project}/global/securityPolicies/{securityPolicy}/addRule",
152462	//   "request": {
152463	//     "$ref": "SecurityPolicyRule"
152464	//   },
152465	//   "response": {
152466	//     "$ref": "Operation"
152467	//   },
152468	//   "scopes": [
152469	//     "https://www.googleapis.com/auth/cloud-platform",
152470	//     "https://www.googleapis.com/auth/compute"
152471	//   ]
152472	// }
152473
152474}
152475
152476// method id "compute.securityPolicies.delete":
152477
152478type SecurityPoliciesDeleteCall struct {
152479	s              *Service
152480	project        string
152481	securityPolicy string
152482	urlParams_     gensupport.URLParams
152483	ctx_           context.Context
152484	header_        http.Header
152485}
152486
152487// Delete: Deletes the specified policy.
152488func (r *SecurityPoliciesService) Delete(project string, securityPolicy string) *SecurityPoliciesDeleteCall {
152489	c := &SecurityPoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
152490	c.project = project
152491	c.securityPolicy = securityPolicy
152492	return c
152493}
152494
152495// RequestId sets the optional parameter "requestId": An optional
152496// request ID to identify requests. Specify a unique request ID so that
152497// if you must retry your request, the server will know to ignore the
152498// request if it has already been completed.
152499//
152500// For example, consider a situation where you make an initial request
152501// and the request times out. If you make the request again with the
152502// same request ID, the server can check if original operation with the
152503// same request ID was received, and if so, will ignore the second
152504// request. This prevents clients from accidentally creating duplicate
152505// commitments.
152506//
152507// The request ID must be a valid UUID with the exception that zero UUID
152508// is not supported (00000000-0000-0000-0000-000000000000).
152509func (c *SecurityPoliciesDeleteCall) RequestId(requestId string) *SecurityPoliciesDeleteCall {
152510	c.urlParams_.Set("requestId", requestId)
152511	return c
152512}
152513
152514// Fields allows partial responses to be retrieved. See
152515// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
152516// for more information.
152517func (c *SecurityPoliciesDeleteCall) Fields(s ...googleapi.Field) *SecurityPoliciesDeleteCall {
152518	c.urlParams_.Set("fields", googleapi.CombineFields(s))
152519	return c
152520}
152521
152522// Context sets the context to be used in this call's Do method. Any
152523// pending HTTP request will be aborted if the provided context is
152524// canceled.
152525func (c *SecurityPoliciesDeleteCall) Context(ctx context.Context) *SecurityPoliciesDeleteCall {
152526	c.ctx_ = ctx
152527	return c
152528}
152529
152530// Header returns an http.Header that can be modified by the caller to
152531// add HTTP headers to the request.
152532func (c *SecurityPoliciesDeleteCall) Header() http.Header {
152533	if c.header_ == nil {
152534		c.header_ = make(http.Header)
152535	}
152536	return c.header_
152537}
152538
152539func (c *SecurityPoliciesDeleteCall) doRequest(alt string) (*http.Response, error) {
152540	reqHeaders := make(http.Header)
152541	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
152542	for k, v := range c.header_ {
152543		reqHeaders[k] = v
152544	}
152545	reqHeaders.Set("User-Agent", c.s.userAgent())
152546	var body io.Reader = nil
152547	c.urlParams_.Set("alt", alt)
152548	c.urlParams_.Set("prettyPrint", "false")
152549	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/{securityPolicy}")
152550	urls += "?" + c.urlParams_.Encode()
152551	req, err := http.NewRequest("DELETE", urls, body)
152552	if err != nil {
152553		return nil, err
152554	}
152555	req.Header = reqHeaders
152556	googleapi.Expand(req.URL, map[string]string{
152557		"project":        c.project,
152558		"securityPolicy": c.securityPolicy,
152559	})
152560	return gensupport.SendRequest(c.ctx_, c.s.client, req)
152561}
152562
152563// Do executes the "compute.securityPolicies.delete" call.
152564// Exactly one of *Operation or error will be non-nil. Any non-2xx
152565// status code is an error. Response headers are in either
152566// *Operation.ServerResponse.Header or (if a response was returned at
152567// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
152568// to check whether the returned error was because
152569// http.StatusNotModified was returned.
152570func (c *SecurityPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
152571	gensupport.SetOptions(c.urlParams_, opts...)
152572	res, err := c.doRequest("json")
152573	if res != nil && res.StatusCode == http.StatusNotModified {
152574		if res.Body != nil {
152575			res.Body.Close()
152576		}
152577		return nil, &googleapi.Error{
152578			Code:   res.StatusCode,
152579			Header: res.Header,
152580		}
152581	}
152582	if err != nil {
152583		return nil, err
152584	}
152585	defer googleapi.CloseBody(res)
152586	if err := googleapi.CheckResponse(res); err != nil {
152587		return nil, err
152588	}
152589	ret := &Operation{
152590		ServerResponse: googleapi.ServerResponse{
152591			Header:         res.Header,
152592			HTTPStatusCode: res.StatusCode,
152593		},
152594	}
152595	target := &ret
152596	if err := gensupport.DecodeResponse(target, res); err != nil {
152597		return nil, err
152598	}
152599	return ret, nil
152600	// {
152601	//   "description": "Deletes the specified policy.",
152602	//   "httpMethod": "DELETE",
152603	//   "id": "compute.securityPolicies.delete",
152604	//   "parameterOrder": [
152605	//     "project",
152606	//     "securityPolicy"
152607	//   ],
152608	//   "parameters": {
152609	//     "project": {
152610	//       "description": "Project ID for this request.",
152611	//       "location": "path",
152612	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
152613	//       "required": true,
152614	//       "type": "string"
152615	//     },
152616	//     "requestId": {
152617	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
152618	//       "location": "query",
152619	//       "type": "string"
152620	//     },
152621	//     "securityPolicy": {
152622	//       "description": "Name of the security policy to delete.",
152623	//       "location": "path",
152624	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
152625	//       "required": true,
152626	//       "type": "string"
152627	//     }
152628	//   },
152629	//   "path": "projects/{project}/global/securityPolicies/{securityPolicy}",
152630	//   "response": {
152631	//     "$ref": "Operation"
152632	//   },
152633	//   "scopes": [
152634	//     "https://www.googleapis.com/auth/cloud-platform",
152635	//     "https://www.googleapis.com/auth/compute"
152636	//   ]
152637	// }
152638
152639}
152640
152641// method id "compute.securityPolicies.get":
152642
152643type SecurityPoliciesGetCall struct {
152644	s              *Service
152645	project        string
152646	securityPolicy string
152647	urlParams_     gensupport.URLParams
152648	ifNoneMatch_   string
152649	ctx_           context.Context
152650	header_        http.Header
152651}
152652
152653// Get: List all of the ordered rules present in a single specified
152654// policy.
152655func (r *SecurityPoliciesService) Get(project string, securityPolicy string) *SecurityPoliciesGetCall {
152656	c := &SecurityPoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
152657	c.project = project
152658	c.securityPolicy = securityPolicy
152659	return c
152660}
152661
152662// Fields allows partial responses to be retrieved. See
152663// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
152664// for more information.
152665func (c *SecurityPoliciesGetCall) Fields(s ...googleapi.Field) *SecurityPoliciesGetCall {
152666	c.urlParams_.Set("fields", googleapi.CombineFields(s))
152667	return c
152668}
152669
152670// IfNoneMatch sets the optional parameter which makes the operation
152671// fail if the object's ETag matches the given value. This is useful for
152672// getting updates only after the object has changed since the last
152673// request. Use googleapi.IsNotModified to check whether the response
152674// error from Do is the result of In-None-Match.
152675func (c *SecurityPoliciesGetCall) IfNoneMatch(entityTag string) *SecurityPoliciesGetCall {
152676	c.ifNoneMatch_ = entityTag
152677	return c
152678}
152679
152680// Context sets the context to be used in this call's Do method. Any
152681// pending HTTP request will be aborted if the provided context is
152682// canceled.
152683func (c *SecurityPoliciesGetCall) Context(ctx context.Context) *SecurityPoliciesGetCall {
152684	c.ctx_ = ctx
152685	return c
152686}
152687
152688// Header returns an http.Header that can be modified by the caller to
152689// add HTTP headers to the request.
152690func (c *SecurityPoliciesGetCall) Header() http.Header {
152691	if c.header_ == nil {
152692		c.header_ = make(http.Header)
152693	}
152694	return c.header_
152695}
152696
152697func (c *SecurityPoliciesGetCall) doRequest(alt string) (*http.Response, error) {
152698	reqHeaders := make(http.Header)
152699	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
152700	for k, v := range c.header_ {
152701		reqHeaders[k] = v
152702	}
152703	reqHeaders.Set("User-Agent", c.s.userAgent())
152704	if c.ifNoneMatch_ != "" {
152705		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
152706	}
152707	var body io.Reader = nil
152708	c.urlParams_.Set("alt", alt)
152709	c.urlParams_.Set("prettyPrint", "false")
152710	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/{securityPolicy}")
152711	urls += "?" + c.urlParams_.Encode()
152712	req, err := http.NewRequest("GET", urls, body)
152713	if err != nil {
152714		return nil, err
152715	}
152716	req.Header = reqHeaders
152717	googleapi.Expand(req.URL, map[string]string{
152718		"project":        c.project,
152719		"securityPolicy": c.securityPolicy,
152720	})
152721	return gensupport.SendRequest(c.ctx_, c.s.client, req)
152722}
152723
152724// Do executes the "compute.securityPolicies.get" call.
152725// Exactly one of *SecurityPolicy or error will be non-nil. Any non-2xx
152726// status code is an error. Response headers are in either
152727// *SecurityPolicy.ServerResponse.Header or (if a response was returned
152728// at all) in error.(*googleapi.Error).Header. Use
152729// googleapi.IsNotModified to check whether the returned error was
152730// because http.StatusNotModified was returned.
152731func (c *SecurityPoliciesGetCall) Do(opts ...googleapi.CallOption) (*SecurityPolicy, error) {
152732	gensupport.SetOptions(c.urlParams_, opts...)
152733	res, err := c.doRequest("json")
152734	if res != nil && res.StatusCode == http.StatusNotModified {
152735		if res.Body != nil {
152736			res.Body.Close()
152737		}
152738		return nil, &googleapi.Error{
152739			Code:   res.StatusCode,
152740			Header: res.Header,
152741		}
152742	}
152743	if err != nil {
152744		return nil, err
152745	}
152746	defer googleapi.CloseBody(res)
152747	if err := googleapi.CheckResponse(res); err != nil {
152748		return nil, err
152749	}
152750	ret := &SecurityPolicy{
152751		ServerResponse: googleapi.ServerResponse{
152752			Header:         res.Header,
152753			HTTPStatusCode: res.StatusCode,
152754		},
152755	}
152756	target := &ret
152757	if err := gensupport.DecodeResponse(target, res); err != nil {
152758		return nil, err
152759	}
152760	return ret, nil
152761	// {
152762	//   "description": "List all of the ordered rules present in a single specified policy.",
152763	//   "httpMethod": "GET",
152764	//   "id": "compute.securityPolicies.get",
152765	//   "parameterOrder": [
152766	//     "project",
152767	//     "securityPolicy"
152768	//   ],
152769	//   "parameters": {
152770	//     "project": {
152771	//       "description": "Project ID for this request.",
152772	//       "location": "path",
152773	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
152774	//       "required": true,
152775	//       "type": "string"
152776	//     },
152777	//     "securityPolicy": {
152778	//       "description": "Name of the security policy to get.",
152779	//       "location": "path",
152780	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
152781	//       "required": true,
152782	//       "type": "string"
152783	//     }
152784	//   },
152785	//   "path": "projects/{project}/global/securityPolicies/{securityPolicy}",
152786	//   "response": {
152787	//     "$ref": "SecurityPolicy"
152788	//   },
152789	//   "scopes": [
152790	//     "https://www.googleapis.com/auth/cloud-platform",
152791	//     "https://www.googleapis.com/auth/compute",
152792	//     "https://www.googleapis.com/auth/compute.readonly"
152793	//   ]
152794	// }
152795
152796}
152797
152798// method id "compute.securityPolicies.getRule":
152799
152800type SecurityPoliciesGetRuleCall struct {
152801	s              *Service
152802	project        string
152803	securityPolicy string
152804	urlParams_     gensupport.URLParams
152805	ifNoneMatch_   string
152806	ctx_           context.Context
152807	header_        http.Header
152808}
152809
152810// GetRule: Gets a rule at the specified priority.
152811func (r *SecurityPoliciesService) GetRule(project string, securityPolicy string) *SecurityPoliciesGetRuleCall {
152812	c := &SecurityPoliciesGetRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
152813	c.project = project
152814	c.securityPolicy = securityPolicy
152815	return c
152816}
152817
152818// Priority sets the optional parameter "priority": The priority of the
152819// rule to get from the security policy.
152820func (c *SecurityPoliciesGetRuleCall) Priority(priority int64) *SecurityPoliciesGetRuleCall {
152821	c.urlParams_.Set("priority", fmt.Sprint(priority))
152822	return c
152823}
152824
152825// Fields allows partial responses to be retrieved. See
152826// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
152827// for more information.
152828func (c *SecurityPoliciesGetRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesGetRuleCall {
152829	c.urlParams_.Set("fields", googleapi.CombineFields(s))
152830	return c
152831}
152832
152833// IfNoneMatch sets the optional parameter which makes the operation
152834// fail if the object's ETag matches the given value. This is useful for
152835// getting updates only after the object has changed since the last
152836// request. Use googleapi.IsNotModified to check whether the response
152837// error from Do is the result of In-None-Match.
152838func (c *SecurityPoliciesGetRuleCall) IfNoneMatch(entityTag string) *SecurityPoliciesGetRuleCall {
152839	c.ifNoneMatch_ = entityTag
152840	return c
152841}
152842
152843// Context sets the context to be used in this call's Do method. Any
152844// pending HTTP request will be aborted if the provided context is
152845// canceled.
152846func (c *SecurityPoliciesGetRuleCall) Context(ctx context.Context) *SecurityPoliciesGetRuleCall {
152847	c.ctx_ = ctx
152848	return c
152849}
152850
152851// Header returns an http.Header that can be modified by the caller to
152852// add HTTP headers to the request.
152853func (c *SecurityPoliciesGetRuleCall) Header() http.Header {
152854	if c.header_ == nil {
152855		c.header_ = make(http.Header)
152856	}
152857	return c.header_
152858}
152859
152860func (c *SecurityPoliciesGetRuleCall) doRequest(alt string) (*http.Response, error) {
152861	reqHeaders := make(http.Header)
152862	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
152863	for k, v := range c.header_ {
152864		reqHeaders[k] = v
152865	}
152866	reqHeaders.Set("User-Agent", c.s.userAgent())
152867	if c.ifNoneMatch_ != "" {
152868		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
152869	}
152870	var body io.Reader = nil
152871	c.urlParams_.Set("alt", alt)
152872	c.urlParams_.Set("prettyPrint", "false")
152873	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/{securityPolicy}/getRule")
152874	urls += "?" + c.urlParams_.Encode()
152875	req, err := http.NewRequest("GET", urls, body)
152876	if err != nil {
152877		return nil, err
152878	}
152879	req.Header = reqHeaders
152880	googleapi.Expand(req.URL, map[string]string{
152881		"project":        c.project,
152882		"securityPolicy": c.securityPolicy,
152883	})
152884	return gensupport.SendRequest(c.ctx_, c.s.client, req)
152885}
152886
152887// Do executes the "compute.securityPolicies.getRule" call.
152888// Exactly one of *SecurityPolicyRule or error will be non-nil. Any
152889// non-2xx status code is an error. Response headers are in either
152890// *SecurityPolicyRule.ServerResponse.Header or (if a response was
152891// returned at all) in error.(*googleapi.Error).Header. Use
152892// googleapi.IsNotModified to check whether the returned error was
152893// because http.StatusNotModified was returned.
152894func (c *SecurityPoliciesGetRuleCall) Do(opts ...googleapi.CallOption) (*SecurityPolicyRule, error) {
152895	gensupport.SetOptions(c.urlParams_, opts...)
152896	res, err := c.doRequest("json")
152897	if res != nil && res.StatusCode == http.StatusNotModified {
152898		if res.Body != nil {
152899			res.Body.Close()
152900		}
152901		return nil, &googleapi.Error{
152902			Code:   res.StatusCode,
152903			Header: res.Header,
152904		}
152905	}
152906	if err != nil {
152907		return nil, err
152908	}
152909	defer googleapi.CloseBody(res)
152910	if err := googleapi.CheckResponse(res); err != nil {
152911		return nil, err
152912	}
152913	ret := &SecurityPolicyRule{
152914		ServerResponse: googleapi.ServerResponse{
152915			Header:         res.Header,
152916			HTTPStatusCode: res.StatusCode,
152917		},
152918	}
152919	target := &ret
152920	if err := gensupport.DecodeResponse(target, res); err != nil {
152921		return nil, err
152922	}
152923	return ret, nil
152924	// {
152925	//   "description": "Gets a rule at the specified priority.",
152926	//   "httpMethod": "GET",
152927	//   "id": "compute.securityPolicies.getRule",
152928	//   "parameterOrder": [
152929	//     "project",
152930	//     "securityPolicy"
152931	//   ],
152932	//   "parameters": {
152933	//     "priority": {
152934	//       "description": "The priority of the rule to get from the security policy.",
152935	//       "format": "int32",
152936	//       "location": "query",
152937	//       "type": "integer"
152938	//     },
152939	//     "project": {
152940	//       "description": "Project ID for this request.",
152941	//       "location": "path",
152942	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
152943	//       "required": true,
152944	//       "type": "string"
152945	//     },
152946	//     "securityPolicy": {
152947	//       "description": "Name of the security policy to which the queried rule belongs.",
152948	//       "location": "path",
152949	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
152950	//       "required": true,
152951	//       "type": "string"
152952	//     }
152953	//   },
152954	//   "path": "projects/{project}/global/securityPolicies/{securityPolicy}/getRule",
152955	//   "response": {
152956	//     "$ref": "SecurityPolicyRule"
152957	//   },
152958	//   "scopes": [
152959	//     "https://www.googleapis.com/auth/cloud-platform",
152960	//     "https://www.googleapis.com/auth/compute",
152961	//     "https://www.googleapis.com/auth/compute.readonly"
152962	//   ]
152963	// }
152964
152965}
152966
152967// method id "compute.securityPolicies.insert":
152968
152969type SecurityPoliciesInsertCall struct {
152970	s              *Service
152971	project        string
152972	securitypolicy *SecurityPolicy
152973	urlParams_     gensupport.URLParams
152974	ctx_           context.Context
152975	header_        http.Header
152976}
152977
152978// Insert: Creates a new policy in the specified project using the data
152979// included in the request.
152980func (r *SecurityPoliciesService) Insert(project string, securitypolicy *SecurityPolicy) *SecurityPoliciesInsertCall {
152981	c := &SecurityPoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
152982	c.project = project
152983	c.securitypolicy = securitypolicy
152984	return c
152985}
152986
152987// RequestId sets the optional parameter "requestId": An optional
152988// request ID to identify requests. Specify a unique request ID so that
152989// if you must retry your request, the server will know to ignore the
152990// request if it has already been completed.
152991//
152992// For example, consider a situation where you make an initial request
152993// and the request times out. If you make the request again with the
152994// same request ID, the server can check if original operation with the
152995// same request ID was received, and if so, will ignore the second
152996// request. This prevents clients from accidentally creating duplicate
152997// commitments.
152998//
152999// The request ID must be a valid UUID with the exception that zero UUID
153000// is not supported (00000000-0000-0000-0000-000000000000).
153001func (c *SecurityPoliciesInsertCall) RequestId(requestId string) *SecurityPoliciesInsertCall {
153002	c.urlParams_.Set("requestId", requestId)
153003	return c
153004}
153005
153006// ValidateOnly sets the optional parameter "validateOnly": If true, the
153007// request will not be committed.
153008func (c *SecurityPoliciesInsertCall) ValidateOnly(validateOnly bool) *SecurityPoliciesInsertCall {
153009	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
153010	return c
153011}
153012
153013// Fields allows partial responses to be retrieved. See
153014// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
153015// for more information.
153016func (c *SecurityPoliciesInsertCall) Fields(s ...googleapi.Field) *SecurityPoliciesInsertCall {
153017	c.urlParams_.Set("fields", googleapi.CombineFields(s))
153018	return c
153019}
153020
153021// Context sets the context to be used in this call's Do method. Any
153022// pending HTTP request will be aborted if the provided context is
153023// canceled.
153024func (c *SecurityPoliciesInsertCall) Context(ctx context.Context) *SecurityPoliciesInsertCall {
153025	c.ctx_ = ctx
153026	return c
153027}
153028
153029// Header returns an http.Header that can be modified by the caller to
153030// add HTTP headers to the request.
153031func (c *SecurityPoliciesInsertCall) Header() http.Header {
153032	if c.header_ == nil {
153033		c.header_ = make(http.Header)
153034	}
153035	return c.header_
153036}
153037
153038func (c *SecurityPoliciesInsertCall) doRequest(alt string) (*http.Response, error) {
153039	reqHeaders := make(http.Header)
153040	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
153041	for k, v := range c.header_ {
153042		reqHeaders[k] = v
153043	}
153044	reqHeaders.Set("User-Agent", c.s.userAgent())
153045	var body io.Reader = nil
153046	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicy)
153047	if err != nil {
153048		return nil, err
153049	}
153050	reqHeaders.Set("Content-Type", "application/json")
153051	c.urlParams_.Set("alt", alt)
153052	c.urlParams_.Set("prettyPrint", "false")
153053	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies")
153054	urls += "?" + c.urlParams_.Encode()
153055	req, err := http.NewRequest("POST", urls, body)
153056	if err != nil {
153057		return nil, err
153058	}
153059	req.Header = reqHeaders
153060	googleapi.Expand(req.URL, map[string]string{
153061		"project": c.project,
153062	})
153063	return gensupport.SendRequest(c.ctx_, c.s.client, req)
153064}
153065
153066// Do executes the "compute.securityPolicies.insert" call.
153067// Exactly one of *Operation or error will be non-nil. Any non-2xx
153068// status code is an error. Response headers are in either
153069// *Operation.ServerResponse.Header or (if a response was returned at
153070// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
153071// to check whether the returned error was because
153072// http.StatusNotModified was returned.
153073func (c *SecurityPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
153074	gensupport.SetOptions(c.urlParams_, opts...)
153075	res, err := c.doRequest("json")
153076	if res != nil && res.StatusCode == http.StatusNotModified {
153077		if res.Body != nil {
153078			res.Body.Close()
153079		}
153080		return nil, &googleapi.Error{
153081			Code:   res.StatusCode,
153082			Header: res.Header,
153083		}
153084	}
153085	if err != nil {
153086		return nil, err
153087	}
153088	defer googleapi.CloseBody(res)
153089	if err := googleapi.CheckResponse(res); err != nil {
153090		return nil, err
153091	}
153092	ret := &Operation{
153093		ServerResponse: googleapi.ServerResponse{
153094			Header:         res.Header,
153095			HTTPStatusCode: res.StatusCode,
153096		},
153097	}
153098	target := &ret
153099	if err := gensupport.DecodeResponse(target, res); err != nil {
153100		return nil, err
153101	}
153102	return ret, nil
153103	// {
153104	//   "description": "Creates a new policy in the specified project using the data included in the request.",
153105	//   "httpMethod": "POST",
153106	//   "id": "compute.securityPolicies.insert",
153107	//   "parameterOrder": [
153108	//     "project"
153109	//   ],
153110	//   "parameters": {
153111	//     "project": {
153112	//       "description": "Project ID for this request.",
153113	//       "location": "path",
153114	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
153115	//       "required": true,
153116	//       "type": "string"
153117	//     },
153118	//     "requestId": {
153119	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
153120	//       "location": "query",
153121	//       "type": "string"
153122	//     },
153123	//     "validateOnly": {
153124	//       "description": "If true, the request will not be committed.",
153125	//       "location": "query",
153126	//       "type": "boolean"
153127	//     }
153128	//   },
153129	//   "path": "projects/{project}/global/securityPolicies",
153130	//   "request": {
153131	//     "$ref": "SecurityPolicy"
153132	//   },
153133	//   "response": {
153134	//     "$ref": "Operation"
153135	//   },
153136	//   "scopes": [
153137	//     "https://www.googleapis.com/auth/cloud-platform",
153138	//     "https://www.googleapis.com/auth/compute"
153139	//   ]
153140	// }
153141
153142}
153143
153144// method id "compute.securityPolicies.list":
153145
153146type SecurityPoliciesListCall struct {
153147	s            *Service
153148	project      string
153149	urlParams_   gensupport.URLParams
153150	ifNoneMatch_ string
153151	ctx_         context.Context
153152	header_      http.Header
153153}
153154
153155// List: List all the policies that have been configured for the
153156// specified project.
153157func (r *SecurityPoliciesService) List(project string) *SecurityPoliciesListCall {
153158	c := &SecurityPoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
153159	c.project = project
153160	return c
153161}
153162
153163// Filter sets the optional parameter "filter": A filter expression that
153164// filters resources listed in the response. The expression must specify
153165// the field name, a comparison operator, and the value that you want to
153166// use for filtering. The value must be a string, a number, or a
153167// boolean. The comparison operator must be either `=`, `!=`, `>`, or
153168// `<`.
153169//
153170// For example, if you are filtering Compute Engine instances, you can
153171// exclude instances named `example-instance` by specifying `name !=
153172// example-instance`.
153173//
153174// You can also filter nested fields. For example, you could specify
153175// `scheduling.automaticRestart = false` to include instances only if
153176// they are not scheduled for automatic restarts. You can use filtering
153177// on nested fields to filter based on resource labels.
153178//
153179// To filter on multiple expressions, provide each separate expression
153180// within parentheses. For example: ``` (scheduling.automaticRestart =
153181// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
153182// is an `AND` expression. However, you can include `AND` and `OR`
153183// expressions explicitly. For example: ``` (cpuPlatform = "Intel
153184// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
153185// (scheduling.automaticRestart = true) ```
153186func (c *SecurityPoliciesListCall) Filter(filter string) *SecurityPoliciesListCall {
153187	c.urlParams_.Set("filter", filter)
153188	return c
153189}
153190
153191// MaxResults sets the optional parameter "maxResults": The maximum
153192// number of results per page that should be returned. If the number of
153193// available results is larger than `maxResults`, Compute Engine returns
153194// a `nextPageToken` that can be used to get the next page of results in
153195// subsequent list requests. Acceptable values are `0` to `500`,
153196// inclusive. (Default: `500`)
153197func (c *SecurityPoliciesListCall) MaxResults(maxResults int64) *SecurityPoliciesListCall {
153198	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
153199	return c
153200}
153201
153202// OrderBy sets the optional parameter "orderBy": Sorts list results by
153203// a certain order. By default, results are returned in alphanumerical
153204// order based on the resource name.
153205//
153206// You can also sort results in descending order based on the creation
153207// timestamp using `orderBy="creationTimestamp desc". This sorts
153208// results based on the `creationTimestamp` field in reverse
153209// chronological order (newest result first). Use this to sort resources
153210// like operations so that the newest operation is returned
153211// first.
153212//
153213// Currently, only sorting by `name` or `creationTimestamp desc` is
153214// supported.
153215func (c *SecurityPoliciesListCall) OrderBy(orderBy string) *SecurityPoliciesListCall {
153216	c.urlParams_.Set("orderBy", orderBy)
153217	return c
153218}
153219
153220// PageToken sets the optional parameter "pageToken": Specifies a page
153221// token to use. Set `pageToken` to the `nextPageToken` returned by a
153222// previous list request to get the next page of results.
153223func (c *SecurityPoliciesListCall) PageToken(pageToken string) *SecurityPoliciesListCall {
153224	c.urlParams_.Set("pageToken", pageToken)
153225	return c
153226}
153227
153228// ReturnPartialSuccess sets the optional parameter
153229// "returnPartialSuccess": Opt-in for partial success behavior which
153230// provides partial results in case of failure. The default value is
153231// false.
153232func (c *SecurityPoliciesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SecurityPoliciesListCall {
153233	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
153234	return c
153235}
153236
153237// Fields allows partial responses to be retrieved. See
153238// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
153239// for more information.
153240func (c *SecurityPoliciesListCall) Fields(s ...googleapi.Field) *SecurityPoliciesListCall {
153241	c.urlParams_.Set("fields", googleapi.CombineFields(s))
153242	return c
153243}
153244
153245// IfNoneMatch sets the optional parameter which makes the operation
153246// fail if the object's ETag matches the given value. This is useful for
153247// getting updates only after the object has changed since the last
153248// request. Use googleapi.IsNotModified to check whether the response
153249// error from Do is the result of In-None-Match.
153250func (c *SecurityPoliciesListCall) IfNoneMatch(entityTag string) *SecurityPoliciesListCall {
153251	c.ifNoneMatch_ = entityTag
153252	return c
153253}
153254
153255// Context sets the context to be used in this call's Do method. Any
153256// pending HTTP request will be aborted if the provided context is
153257// canceled.
153258func (c *SecurityPoliciesListCall) Context(ctx context.Context) *SecurityPoliciesListCall {
153259	c.ctx_ = ctx
153260	return c
153261}
153262
153263// Header returns an http.Header that can be modified by the caller to
153264// add HTTP headers to the request.
153265func (c *SecurityPoliciesListCall) Header() http.Header {
153266	if c.header_ == nil {
153267		c.header_ = make(http.Header)
153268	}
153269	return c.header_
153270}
153271
153272func (c *SecurityPoliciesListCall) doRequest(alt string) (*http.Response, error) {
153273	reqHeaders := make(http.Header)
153274	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
153275	for k, v := range c.header_ {
153276		reqHeaders[k] = v
153277	}
153278	reqHeaders.Set("User-Agent", c.s.userAgent())
153279	if c.ifNoneMatch_ != "" {
153280		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
153281	}
153282	var body io.Reader = nil
153283	c.urlParams_.Set("alt", alt)
153284	c.urlParams_.Set("prettyPrint", "false")
153285	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies")
153286	urls += "?" + c.urlParams_.Encode()
153287	req, err := http.NewRequest("GET", urls, body)
153288	if err != nil {
153289		return nil, err
153290	}
153291	req.Header = reqHeaders
153292	googleapi.Expand(req.URL, map[string]string{
153293		"project": c.project,
153294	})
153295	return gensupport.SendRequest(c.ctx_, c.s.client, req)
153296}
153297
153298// Do executes the "compute.securityPolicies.list" call.
153299// Exactly one of *SecurityPolicyList or error will be non-nil. Any
153300// non-2xx status code is an error. Response headers are in either
153301// *SecurityPolicyList.ServerResponse.Header or (if a response was
153302// returned at all) in error.(*googleapi.Error).Header. Use
153303// googleapi.IsNotModified to check whether the returned error was
153304// because http.StatusNotModified was returned.
153305func (c *SecurityPoliciesListCall) Do(opts ...googleapi.CallOption) (*SecurityPolicyList, error) {
153306	gensupport.SetOptions(c.urlParams_, opts...)
153307	res, err := c.doRequest("json")
153308	if res != nil && res.StatusCode == http.StatusNotModified {
153309		if res.Body != nil {
153310			res.Body.Close()
153311		}
153312		return nil, &googleapi.Error{
153313			Code:   res.StatusCode,
153314			Header: res.Header,
153315		}
153316	}
153317	if err != nil {
153318		return nil, err
153319	}
153320	defer googleapi.CloseBody(res)
153321	if err := googleapi.CheckResponse(res); err != nil {
153322		return nil, err
153323	}
153324	ret := &SecurityPolicyList{
153325		ServerResponse: googleapi.ServerResponse{
153326			Header:         res.Header,
153327			HTTPStatusCode: res.StatusCode,
153328		},
153329	}
153330	target := &ret
153331	if err := gensupport.DecodeResponse(target, res); err != nil {
153332		return nil, err
153333	}
153334	return ret, nil
153335	// {
153336	//   "description": "List all the policies that have been configured for the specified project.",
153337	//   "httpMethod": "GET",
153338	//   "id": "compute.securityPolicies.list",
153339	//   "parameterOrder": [
153340	//     "project"
153341	//   ],
153342	//   "parameters": {
153343	//     "filter": {
153344	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
153345	//       "location": "query",
153346	//       "type": "string"
153347	//     },
153348	//     "maxResults": {
153349	//       "default": "500",
153350	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
153351	//       "format": "uint32",
153352	//       "location": "query",
153353	//       "minimum": "0",
153354	//       "type": "integer"
153355	//     },
153356	//     "orderBy": {
153357	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
153358	//       "location": "query",
153359	//       "type": "string"
153360	//     },
153361	//     "pageToken": {
153362	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
153363	//       "location": "query",
153364	//       "type": "string"
153365	//     },
153366	//     "project": {
153367	//       "description": "Project ID for this request.",
153368	//       "location": "path",
153369	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
153370	//       "required": true,
153371	//       "type": "string"
153372	//     },
153373	//     "returnPartialSuccess": {
153374	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
153375	//       "location": "query",
153376	//       "type": "boolean"
153377	//     }
153378	//   },
153379	//   "path": "projects/{project}/global/securityPolicies",
153380	//   "response": {
153381	//     "$ref": "SecurityPolicyList"
153382	//   },
153383	//   "scopes": [
153384	//     "https://www.googleapis.com/auth/cloud-platform",
153385	//     "https://www.googleapis.com/auth/compute",
153386	//     "https://www.googleapis.com/auth/compute.readonly"
153387	//   ]
153388	// }
153389
153390}
153391
153392// Pages invokes f for each page of results.
153393// A non-nil error returned from f will halt the iteration.
153394// The provided context supersedes any context provided to the Context method.
153395func (c *SecurityPoliciesListCall) Pages(ctx context.Context, f func(*SecurityPolicyList) error) error {
153396	c.ctx_ = ctx
153397	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
153398	for {
153399		x, err := c.Do()
153400		if err != nil {
153401			return err
153402		}
153403		if err := f(x); err != nil {
153404			return err
153405		}
153406		if x.NextPageToken == "" {
153407			return nil
153408		}
153409		c.PageToken(x.NextPageToken)
153410	}
153411}
153412
153413// method id "compute.securityPolicies.listPreconfiguredExpressionSets":
153414
153415type SecurityPoliciesListPreconfiguredExpressionSetsCall struct {
153416	s            *Service
153417	project      string
153418	urlParams_   gensupport.URLParams
153419	ifNoneMatch_ string
153420	ctx_         context.Context
153421	header_      http.Header
153422}
153423
153424// ListPreconfiguredExpressionSets: Gets the current list of
153425// preconfigured Web Application Firewall (WAF) expressions.
153426func (r *SecurityPoliciesService) ListPreconfiguredExpressionSets(project string) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
153427	c := &SecurityPoliciesListPreconfiguredExpressionSetsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
153428	c.project = project
153429	return c
153430}
153431
153432// Filter sets the optional parameter "filter": A filter expression that
153433// filters resources listed in the response. The expression must specify
153434// the field name, a comparison operator, and the value that you want to
153435// use for filtering. The value must be a string, a number, or a
153436// boolean. The comparison operator must be either `=`, `!=`, `>`, or
153437// `<`.
153438//
153439// For example, if you are filtering Compute Engine instances, you can
153440// exclude instances named `example-instance` by specifying `name !=
153441// example-instance`.
153442//
153443// You can also filter nested fields. For example, you could specify
153444// `scheduling.automaticRestart = false` to include instances only if
153445// they are not scheduled for automatic restarts. You can use filtering
153446// on nested fields to filter based on resource labels.
153447//
153448// To filter on multiple expressions, provide each separate expression
153449// within parentheses. For example: ``` (scheduling.automaticRestart =
153450// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
153451// is an `AND` expression. However, you can include `AND` and `OR`
153452// expressions explicitly. For example: ``` (cpuPlatform = "Intel
153453// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
153454// (scheduling.automaticRestart = true) ```
153455func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Filter(filter string) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
153456	c.urlParams_.Set("filter", filter)
153457	return c
153458}
153459
153460// MaxResults sets the optional parameter "maxResults": The maximum
153461// number of results per page that should be returned. If the number of
153462// available results is larger than `maxResults`, Compute Engine returns
153463// a `nextPageToken` that can be used to get the next page of results in
153464// subsequent list requests. Acceptable values are `0` to `500`,
153465// inclusive. (Default: `500`)
153466func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) MaxResults(maxResults int64) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
153467	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
153468	return c
153469}
153470
153471// OrderBy sets the optional parameter "orderBy": Sorts list results by
153472// a certain order. By default, results are returned in alphanumerical
153473// order based on the resource name.
153474//
153475// You can also sort results in descending order based on the creation
153476// timestamp using `orderBy="creationTimestamp desc". This sorts
153477// results based on the `creationTimestamp` field in reverse
153478// chronological order (newest result first). Use this to sort resources
153479// like operations so that the newest operation is returned
153480// first.
153481//
153482// Currently, only sorting by `name` or `creationTimestamp desc` is
153483// supported.
153484func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) OrderBy(orderBy string) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
153485	c.urlParams_.Set("orderBy", orderBy)
153486	return c
153487}
153488
153489// PageToken sets the optional parameter "pageToken": Specifies a page
153490// token to use. Set `pageToken` to the `nextPageToken` returned by a
153491// previous list request to get the next page of results.
153492func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) PageToken(pageToken string) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
153493	c.urlParams_.Set("pageToken", pageToken)
153494	return c
153495}
153496
153497// ReturnPartialSuccess sets the optional parameter
153498// "returnPartialSuccess": Opt-in for partial success behavior which
153499// provides partial results in case of failure. The default value is
153500// false.
153501func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) ReturnPartialSuccess(returnPartialSuccess bool) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
153502	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
153503	return c
153504}
153505
153506// Fields allows partial responses to be retrieved. See
153507// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
153508// for more information.
153509func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Fields(s ...googleapi.Field) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
153510	c.urlParams_.Set("fields", googleapi.CombineFields(s))
153511	return c
153512}
153513
153514// IfNoneMatch sets the optional parameter which makes the operation
153515// fail if the object's ETag matches the given value. This is useful for
153516// getting updates only after the object has changed since the last
153517// request. Use googleapi.IsNotModified to check whether the response
153518// error from Do is the result of In-None-Match.
153519func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) IfNoneMatch(entityTag string) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
153520	c.ifNoneMatch_ = entityTag
153521	return c
153522}
153523
153524// Context sets the context to be used in this call's Do method. Any
153525// pending HTTP request will be aborted if the provided context is
153526// canceled.
153527func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Context(ctx context.Context) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
153528	c.ctx_ = ctx
153529	return c
153530}
153531
153532// Header returns an http.Header that can be modified by the caller to
153533// add HTTP headers to the request.
153534func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Header() http.Header {
153535	if c.header_ == nil {
153536		c.header_ = make(http.Header)
153537	}
153538	return c.header_
153539}
153540
153541func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) doRequest(alt string) (*http.Response, error) {
153542	reqHeaders := make(http.Header)
153543	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
153544	for k, v := range c.header_ {
153545		reqHeaders[k] = v
153546	}
153547	reqHeaders.Set("User-Agent", c.s.userAgent())
153548	if c.ifNoneMatch_ != "" {
153549		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
153550	}
153551	var body io.Reader = nil
153552	c.urlParams_.Set("alt", alt)
153553	c.urlParams_.Set("prettyPrint", "false")
153554	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/listPreconfiguredExpressionSets")
153555	urls += "?" + c.urlParams_.Encode()
153556	req, err := http.NewRequest("GET", urls, body)
153557	if err != nil {
153558		return nil, err
153559	}
153560	req.Header = reqHeaders
153561	googleapi.Expand(req.URL, map[string]string{
153562		"project": c.project,
153563	})
153564	return gensupport.SendRequest(c.ctx_, c.s.client, req)
153565}
153566
153567// Do executes the "compute.securityPolicies.listPreconfiguredExpressionSets" call.
153568// Exactly one of
153569// *SecurityPoliciesListPreconfiguredExpressionSetsResponse or error
153570// will be non-nil. Any non-2xx status code is an error. Response
153571// headers are in either
153572// *SecurityPoliciesListPreconfiguredExpressionSetsResponse.ServerRespons
153573// e.Header or (if a response was returned at all) in
153574// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
153575// whether the returned error was because http.StatusNotModified was
153576// returned.
153577func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Do(opts ...googleapi.CallOption) (*SecurityPoliciesListPreconfiguredExpressionSetsResponse, error) {
153578	gensupport.SetOptions(c.urlParams_, opts...)
153579	res, err := c.doRequest("json")
153580	if res != nil && res.StatusCode == http.StatusNotModified {
153581		if res.Body != nil {
153582			res.Body.Close()
153583		}
153584		return nil, &googleapi.Error{
153585			Code:   res.StatusCode,
153586			Header: res.Header,
153587		}
153588	}
153589	if err != nil {
153590		return nil, err
153591	}
153592	defer googleapi.CloseBody(res)
153593	if err := googleapi.CheckResponse(res); err != nil {
153594		return nil, err
153595	}
153596	ret := &SecurityPoliciesListPreconfiguredExpressionSetsResponse{
153597		ServerResponse: googleapi.ServerResponse{
153598			Header:         res.Header,
153599			HTTPStatusCode: res.StatusCode,
153600		},
153601	}
153602	target := &ret
153603	if err := gensupport.DecodeResponse(target, res); err != nil {
153604		return nil, err
153605	}
153606	return ret, nil
153607	// {
153608	//   "description": "Gets the current list of preconfigured Web Application Firewall (WAF) expressions.",
153609	//   "httpMethod": "GET",
153610	//   "id": "compute.securityPolicies.listPreconfiguredExpressionSets",
153611	//   "parameterOrder": [
153612	//     "project"
153613	//   ],
153614	//   "parameters": {
153615	//     "filter": {
153616	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
153617	//       "location": "query",
153618	//       "type": "string"
153619	//     },
153620	//     "maxResults": {
153621	//       "default": "500",
153622	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
153623	//       "format": "uint32",
153624	//       "location": "query",
153625	//       "minimum": "0",
153626	//       "type": "integer"
153627	//     },
153628	//     "orderBy": {
153629	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
153630	//       "location": "query",
153631	//       "type": "string"
153632	//     },
153633	//     "pageToken": {
153634	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
153635	//       "location": "query",
153636	//       "type": "string"
153637	//     },
153638	//     "project": {
153639	//       "description": "Project ID for this request.",
153640	//       "location": "path",
153641	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
153642	//       "required": true,
153643	//       "type": "string"
153644	//     },
153645	//     "returnPartialSuccess": {
153646	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
153647	//       "location": "query",
153648	//       "type": "boolean"
153649	//     }
153650	//   },
153651	//   "path": "projects/{project}/global/securityPolicies/listPreconfiguredExpressionSets",
153652	//   "response": {
153653	//     "$ref": "SecurityPoliciesListPreconfiguredExpressionSetsResponse"
153654	//   },
153655	//   "scopes": [
153656	//     "https://www.googleapis.com/auth/cloud-platform",
153657	//     "https://www.googleapis.com/auth/compute"
153658	//   ]
153659	// }
153660
153661}
153662
153663// method id "compute.securityPolicies.patch":
153664
153665type SecurityPoliciesPatchCall struct {
153666	s              *Service
153667	project        string
153668	securityPolicy string
153669	securitypolicy *SecurityPolicy
153670	urlParams_     gensupport.URLParams
153671	ctx_           context.Context
153672	header_        http.Header
153673}
153674
153675// Patch: Patches the specified policy with the data included in the
153676// request. This cannot be used to be update the rules in the policy.
153677// Please use the per rule methods like addRule, patchRule, and
153678// removeRule instead.
153679func (r *SecurityPoliciesService) Patch(project string, securityPolicy string, securitypolicy *SecurityPolicy) *SecurityPoliciesPatchCall {
153680	c := &SecurityPoliciesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
153681	c.project = project
153682	c.securityPolicy = securityPolicy
153683	c.securitypolicy = securitypolicy
153684	return c
153685}
153686
153687// RequestId sets the optional parameter "requestId": An optional
153688// request ID to identify requests. Specify a unique request ID so that
153689// if you must retry your request, the server will know to ignore the
153690// request if it has already been completed.
153691//
153692// For example, consider a situation where you make an initial request
153693// and the request times out. If you make the request again with the
153694// same request ID, the server can check if original operation with the
153695// same request ID was received, and if so, will ignore the second
153696// request. This prevents clients from accidentally creating duplicate
153697// commitments.
153698//
153699// The request ID must be a valid UUID with the exception that zero UUID
153700// is not supported (00000000-0000-0000-0000-000000000000).
153701func (c *SecurityPoliciesPatchCall) RequestId(requestId string) *SecurityPoliciesPatchCall {
153702	c.urlParams_.Set("requestId", requestId)
153703	return c
153704}
153705
153706// Fields allows partial responses to be retrieved. See
153707// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
153708// for more information.
153709func (c *SecurityPoliciesPatchCall) Fields(s ...googleapi.Field) *SecurityPoliciesPatchCall {
153710	c.urlParams_.Set("fields", googleapi.CombineFields(s))
153711	return c
153712}
153713
153714// Context sets the context to be used in this call's Do method. Any
153715// pending HTTP request will be aborted if the provided context is
153716// canceled.
153717func (c *SecurityPoliciesPatchCall) Context(ctx context.Context) *SecurityPoliciesPatchCall {
153718	c.ctx_ = ctx
153719	return c
153720}
153721
153722// Header returns an http.Header that can be modified by the caller to
153723// add HTTP headers to the request.
153724func (c *SecurityPoliciesPatchCall) Header() http.Header {
153725	if c.header_ == nil {
153726		c.header_ = make(http.Header)
153727	}
153728	return c.header_
153729}
153730
153731func (c *SecurityPoliciesPatchCall) doRequest(alt string) (*http.Response, error) {
153732	reqHeaders := make(http.Header)
153733	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
153734	for k, v := range c.header_ {
153735		reqHeaders[k] = v
153736	}
153737	reqHeaders.Set("User-Agent", c.s.userAgent())
153738	var body io.Reader = nil
153739	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicy)
153740	if err != nil {
153741		return nil, err
153742	}
153743	reqHeaders.Set("Content-Type", "application/json")
153744	c.urlParams_.Set("alt", alt)
153745	c.urlParams_.Set("prettyPrint", "false")
153746	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/{securityPolicy}")
153747	urls += "?" + c.urlParams_.Encode()
153748	req, err := http.NewRequest("PATCH", urls, body)
153749	if err != nil {
153750		return nil, err
153751	}
153752	req.Header = reqHeaders
153753	googleapi.Expand(req.URL, map[string]string{
153754		"project":        c.project,
153755		"securityPolicy": c.securityPolicy,
153756	})
153757	return gensupport.SendRequest(c.ctx_, c.s.client, req)
153758}
153759
153760// Do executes the "compute.securityPolicies.patch" call.
153761// Exactly one of *Operation or error will be non-nil. Any non-2xx
153762// status code is an error. Response headers are in either
153763// *Operation.ServerResponse.Header or (if a response was returned at
153764// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
153765// to check whether the returned error was because
153766// http.StatusNotModified was returned.
153767func (c *SecurityPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
153768	gensupport.SetOptions(c.urlParams_, opts...)
153769	res, err := c.doRequest("json")
153770	if res != nil && res.StatusCode == http.StatusNotModified {
153771		if res.Body != nil {
153772			res.Body.Close()
153773		}
153774		return nil, &googleapi.Error{
153775			Code:   res.StatusCode,
153776			Header: res.Header,
153777		}
153778	}
153779	if err != nil {
153780		return nil, err
153781	}
153782	defer googleapi.CloseBody(res)
153783	if err := googleapi.CheckResponse(res); err != nil {
153784		return nil, err
153785	}
153786	ret := &Operation{
153787		ServerResponse: googleapi.ServerResponse{
153788			Header:         res.Header,
153789			HTTPStatusCode: res.StatusCode,
153790		},
153791	}
153792	target := &ret
153793	if err := gensupport.DecodeResponse(target, res); err != nil {
153794		return nil, err
153795	}
153796	return ret, nil
153797	// {
153798	//   "description": "Patches the specified policy with the data included in the request. This cannot be used to be update the rules in the policy. Please use the per rule methods like addRule, patchRule, and removeRule instead.",
153799	//   "httpMethod": "PATCH",
153800	//   "id": "compute.securityPolicies.patch",
153801	//   "parameterOrder": [
153802	//     "project",
153803	//     "securityPolicy"
153804	//   ],
153805	//   "parameters": {
153806	//     "project": {
153807	//       "description": "Project ID for this request.",
153808	//       "location": "path",
153809	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
153810	//       "required": true,
153811	//       "type": "string"
153812	//     },
153813	//     "requestId": {
153814	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
153815	//       "location": "query",
153816	//       "type": "string"
153817	//     },
153818	//     "securityPolicy": {
153819	//       "description": "Name of the security policy to update.",
153820	//       "location": "path",
153821	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
153822	//       "required": true,
153823	//       "type": "string"
153824	//     }
153825	//   },
153826	//   "path": "projects/{project}/global/securityPolicies/{securityPolicy}",
153827	//   "request": {
153828	//     "$ref": "SecurityPolicy"
153829	//   },
153830	//   "response": {
153831	//     "$ref": "Operation"
153832	//   },
153833	//   "scopes": [
153834	//     "https://www.googleapis.com/auth/cloud-platform",
153835	//     "https://www.googleapis.com/auth/compute"
153836	//   ]
153837	// }
153838
153839}
153840
153841// method id "compute.securityPolicies.patchRule":
153842
153843type SecurityPoliciesPatchRuleCall struct {
153844	s                  *Service
153845	project            string
153846	securityPolicy     string
153847	securitypolicyrule *SecurityPolicyRule
153848	urlParams_         gensupport.URLParams
153849	ctx_               context.Context
153850	header_            http.Header
153851}
153852
153853// PatchRule: Patches a rule at the specified priority.
153854func (r *SecurityPoliciesService) PatchRule(project string, securityPolicy string, securitypolicyrule *SecurityPolicyRule) *SecurityPoliciesPatchRuleCall {
153855	c := &SecurityPoliciesPatchRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
153856	c.project = project
153857	c.securityPolicy = securityPolicy
153858	c.securitypolicyrule = securitypolicyrule
153859	return c
153860}
153861
153862// Priority sets the optional parameter "priority": The priority of the
153863// rule to patch.
153864func (c *SecurityPoliciesPatchRuleCall) Priority(priority int64) *SecurityPoliciesPatchRuleCall {
153865	c.urlParams_.Set("priority", fmt.Sprint(priority))
153866	return c
153867}
153868
153869// ValidateOnly sets the optional parameter "validateOnly": If true, the
153870// request will not be committed.
153871func (c *SecurityPoliciesPatchRuleCall) ValidateOnly(validateOnly bool) *SecurityPoliciesPatchRuleCall {
153872	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
153873	return c
153874}
153875
153876// Fields allows partial responses to be retrieved. See
153877// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
153878// for more information.
153879func (c *SecurityPoliciesPatchRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesPatchRuleCall {
153880	c.urlParams_.Set("fields", googleapi.CombineFields(s))
153881	return c
153882}
153883
153884// Context sets the context to be used in this call's Do method. Any
153885// pending HTTP request will be aborted if the provided context is
153886// canceled.
153887func (c *SecurityPoliciesPatchRuleCall) Context(ctx context.Context) *SecurityPoliciesPatchRuleCall {
153888	c.ctx_ = ctx
153889	return c
153890}
153891
153892// Header returns an http.Header that can be modified by the caller to
153893// add HTTP headers to the request.
153894func (c *SecurityPoliciesPatchRuleCall) Header() http.Header {
153895	if c.header_ == nil {
153896		c.header_ = make(http.Header)
153897	}
153898	return c.header_
153899}
153900
153901func (c *SecurityPoliciesPatchRuleCall) doRequest(alt string) (*http.Response, error) {
153902	reqHeaders := make(http.Header)
153903	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
153904	for k, v := range c.header_ {
153905		reqHeaders[k] = v
153906	}
153907	reqHeaders.Set("User-Agent", c.s.userAgent())
153908	var body io.Reader = nil
153909	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyrule)
153910	if err != nil {
153911		return nil, err
153912	}
153913	reqHeaders.Set("Content-Type", "application/json")
153914	c.urlParams_.Set("alt", alt)
153915	c.urlParams_.Set("prettyPrint", "false")
153916	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/{securityPolicy}/patchRule")
153917	urls += "?" + c.urlParams_.Encode()
153918	req, err := http.NewRequest("POST", urls, body)
153919	if err != nil {
153920		return nil, err
153921	}
153922	req.Header = reqHeaders
153923	googleapi.Expand(req.URL, map[string]string{
153924		"project":        c.project,
153925		"securityPolicy": c.securityPolicy,
153926	})
153927	return gensupport.SendRequest(c.ctx_, c.s.client, req)
153928}
153929
153930// Do executes the "compute.securityPolicies.patchRule" call.
153931// Exactly one of *Operation or error will be non-nil. Any non-2xx
153932// status code is an error. Response headers are in either
153933// *Operation.ServerResponse.Header or (if a response was returned at
153934// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
153935// to check whether the returned error was because
153936// http.StatusNotModified was returned.
153937func (c *SecurityPoliciesPatchRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
153938	gensupport.SetOptions(c.urlParams_, opts...)
153939	res, err := c.doRequest("json")
153940	if res != nil && res.StatusCode == http.StatusNotModified {
153941		if res.Body != nil {
153942			res.Body.Close()
153943		}
153944		return nil, &googleapi.Error{
153945			Code:   res.StatusCode,
153946			Header: res.Header,
153947		}
153948	}
153949	if err != nil {
153950		return nil, err
153951	}
153952	defer googleapi.CloseBody(res)
153953	if err := googleapi.CheckResponse(res); err != nil {
153954		return nil, err
153955	}
153956	ret := &Operation{
153957		ServerResponse: googleapi.ServerResponse{
153958			Header:         res.Header,
153959			HTTPStatusCode: res.StatusCode,
153960		},
153961	}
153962	target := &ret
153963	if err := gensupport.DecodeResponse(target, res); err != nil {
153964		return nil, err
153965	}
153966	return ret, nil
153967	// {
153968	//   "description": "Patches a rule at the specified priority.",
153969	//   "httpMethod": "POST",
153970	//   "id": "compute.securityPolicies.patchRule",
153971	//   "parameterOrder": [
153972	//     "project",
153973	//     "securityPolicy"
153974	//   ],
153975	//   "parameters": {
153976	//     "priority": {
153977	//       "description": "The priority of the rule to patch.",
153978	//       "format": "int32",
153979	//       "location": "query",
153980	//       "type": "integer"
153981	//     },
153982	//     "project": {
153983	//       "description": "Project ID for this request.",
153984	//       "location": "path",
153985	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
153986	//       "required": true,
153987	//       "type": "string"
153988	//     },
153989	//     "securityPolicy": {
153990	//       "description": "Name of the security policy to update.",
153991	//       "location": "path",
153992	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
153993	//       "required": true,
153994	//       "type": "string"
153995	//     },
153996	//     "validateOnly": {
153997	//       "description": "If true, the request will not be committed.",
153998	//       "location": "query",
153999	//       "type": "boolean"
154000	//     }
154001	//   },
154002	//   "path": "projects/{project}/global/securityPolicies/{securityPolicy}/patchRule",
154003	//   "request": {
154004	//     "$ref": "SecurityPolicyRule"
154005	//   },
154006	//   "response": {
154007	//     "$ref": "Operation"
154008	//   },
154009	//   "scopes": [
154010	//     "https://www.googleapis.com/auth/cloud-platform",
154011	//     "https://www.googleapis.com/auth/compute"
154012	//   ]
154013	// }
154014
154015}
154016
154017// method id "compute.securityPolicies.removeRule":
154018
154019type SecurityPoliciesRemoveRuleCall struct {
154020	s              *Service
154021	project        string
154022	securityPolicy string
154023	urlParams_     gensupport.URLParams
154024	ctx_           context.Context
154025	header_        http.Header
154026}
154027
154028// RemoveRule: Deletes a rule at the specified priority.
154029func (r *SecurityPoliciesService) RemoveRule(project string, securityPolicy string) *SecurityPoliciesRemoveRuleCall {
154030	c := &SecurityPoliciesRemoveRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
154031	c.project = project
154032	c.securityPolicy = securityPolicy
154033	return c
154034}
154035
154036// Priority sets the optional parameter "priority": The priority of the
154037// rule to remove from the security policy.
154038func (c *SecurityPoliciesRemoveRuleCall) Priority(priority int64) *SecurityPoliciesRemoveRuleCall {
154039	c.urlParams_.Set("priority", fmt.Sprint(priority))
154040	return c
154041}
154042
154043// Fields allows partial responses to be retrieved. See
154044// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
154045// for more information.
154046func (c *SecurityPoliciesRemoveRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesRemoveRuleCall {
154047	c.urlParams_.Set("fields", googleapi.CombineFields(s))
154048	return c
154049}
154050
154051// Context sets the context to be used in this call's Do method. Any
154052// pending HTTP request will be aborted if the provided context is
154053// canceled.
154054func (c *SecurityPoliciesRemoveRuleCall) Context(ctx context.Context) *SecurityPoliciesRemoveRuleCall {
154055	c.ctx_ = ctx
154056	return c
154057}
154058
154059// Header returns an http.Header that can be modified by the caller to
154060// add HTTP headers to the request.
154061func (c *SecurityPoliciesRemoveRuleCall) Header() http.Header {
154062	if c.header_ == nil {
154063		c.header_ = make(http.Header)
154064	}
154065	return c.header_
154066}
154067
154068func (c *SecurityPoliciesRemoveRuleCall) doRequest(alt string) (*http.Response, error) {
154069	reqHeaders := make(http.Header)
154070	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
154071	for k, v := range c.header_ {
154072		reqHeaders[k] = v
154073	}
154074	reqHeaders.Set("User-Agent", c.s.userAgent())
154075	var body io.Reader = nil
154076	c.urlParams_.Set("alt", alt)
154077	c.urlParams_.Set("prettyPrint", "false")
154078	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/{securityPolicy}/removeRule")
154079	urls += "?" + c.urlParams_.Encode()
154080	req, err := http.NewRequest("POST", urls, body)
154081	if err != nil {
154082		return nil, err
154083	}
154084	req.Header = reqHeaders
154085	googleapi.Expand(req.URL, map[string]string{
154086		"project":        c.project,
154087		"securityPolicy": c.securityPolicy,
154088	})
154089	return gensupport.SendRequest(c.ctx_, c.s.client, req)
154090}
154091
154092// Do executes the "compute.securityPolicies.removeRule" call.
154093// Exactly one of *Operation or error will be non-nil. Any non-2xx
154094// status code is an error. Response headers are in either
154095// *Operation.ServerResponse.Header or (if a response was returned at
154096// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
154097// to check whether the returned error was because
154098// http.StatusNotModified was returned.
154099func (c *SecurityPoliciesRemoveRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
154100	gensupport.SetOptions(c.urlParams_, opts...)
154101	res, err := c.doRequest("json")
154102	if res != nil && res.StatusCode == http.StatusNotModified {
154103		if res.Body != nil {
154104			res.Body.Close()
154105		}
154106		return nil, &googleapi.Error{
154107			Code:   res.StatusCode,
154108			Header: res.Header,
154109		}
154110	}
154111	if err != nil {
154112		return nil, err
154113	}
154114	defer googleapi.CloseBody(res)
154115	if err := googleapi.CheckResponse(res); err != nil {
154116		return nil, err
154117	}
154118	ret := &Operation{
154119		ServerResponse: googleapi.ServerResponse{
154120			Header:         res.Header,
154121			HTTPStatusCode: res.StatusCode,
154122		},
154123	}
154124	target := &ret
154125	if err := gensupport.DecodeResponse(target, res); err != nil {
154126		return nil, err
154127	}
154128	return ret, nil
154129	// {
154130	//   "description": "Deletes a rule at the specified priority.",
154131	//   "httpMethod": "POST",
154132	//   "id": "compute.securityPolicies.removeRule",
154133	//   "parameterOrder": [
154134	//     "project",
154135	//     "securityPolicy"
154136	//   ],
154137	//   "parameters": {
154138	//     "priority": {
154139	//       "description": "The priority of the rule to remove from the security policy.",
154140	//       "format": "int32",
154141	//       "location": "query",
154142	//       "type": "integer"
154143	//     },
154144	//     "project": {
154145	//       "description": "Project ID for this request.",
154146	//       "location": "path",
154147	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
154148	//       "required": true,
154149	//       "type": "string"
154150	//     },
154151	//     "securityPolicy": {
154152	//       "description": "Name of the security policy to update.",
154153	//       "location": "path",
154154	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
154155	//       "required": true,
154156	//       "type": "string"
154157	//     }
154158	//   },
154159	//   "path": "projects/{project}/global/securityPolicies/{securityPolicy}/removeRule",
154160	//   "response": {
154161	//     "$ref": "Operation"
154162	//   },
154163	//   "scopes": [
154164	//     "https://www.googleapis.com/auth/cloud-platform",
154165	//     "https://www.googleapis.com/auth/compute"
154166	//   ]
154167	// }
154168
154169}
154170
154171// method id "compute.securityPolicies.setLabels":
154172
154173type SecurityPoliciesSetLabelsCall struct {
154174	s                      *Service
154175	project                string
154176	resource               string
154177	globalsetlabelsrequest *GlobalSetLabelsRequest
154178	urlParams_             gensupport.URLParams
154179	ctx_                   context.Context
154180	header_                http.Header
154181}
154182
154183// SetLabels: Sets the labels on a security policy. To learn more about
154184// labels, read the Labeling Resources documentation.
154185func (r *SecurityPoliciesService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *SecurityPoliciesSetLabelsCall {
154186	c := &SecurityPoliciesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
154187	c.project = project
154188	c.resource = resource
154189	c.globalsetlabelsrequest = globalsetlabelsrequest
154190	return c
154191}
154192
154193// Fields allows partial responses to be retrieved. See
154194// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
154195// for more information.
154196func (c *SecurityPoliciesSetLabelsCall) Fields(s ...googleapi.Field) *SecurityPoliciesSetLabelsCall {
154197	c.urlParams_.Set("fields", googleapi.CombineFields(s))
154198	return c
154199}
154200
154201// Context sets the context to be used in this call's Do method. Any
154202// pending HTTP request will be aborted if the provided context is
154203// canceled.
154204func (c *SecurityPoliciesSetLabelsCall) Context(ctx context.Context) *SecurityPoliciesSetLabelsCall {
154205	c.ctx_ = ctx
154206	return c
154207}
154208
154209// Header returns an http.Header that can be modified by the caller to
154210// add HTTP headers to the request.
154211func (c *SecurityPoliciesSetLabelsCall) Header() http.Header {
154212	if c.header_ == nil {
154213		c.header_ = make(http.Header)
154214	}
154215	return c.header_
154216}
154217
154218func (c *SecurityPoliciesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
154219	reqHeaders := make(http.Header)
154220	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
154221	for k, v := range c.header_ {
154222		reqHeaders[k] = v
154223	}
154224	reqHeaders.Set("User-Agent", c.s.userAgent())
154225	var body io.Reader = nil
154226	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
154227	if err != nil {
154228		return nil, err
154229	}
154230	reqHeaders.Set("Content-Type", "application/json")
154231	c.urlParams_.Set("alt", alt)
154232	c.urlParams_.Set("prettyPrint", "false")
154233	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/{resource}/setLabels")
154234	urls += "?" + c.urlParams_.Encode()
154235	req, err := http.NewRequest("POST", urls, body)
154236	if err != nil {
154237		return nil, err
154238	}
154239	req.Header = reqHeaders
154240	googleapi.Expand(req.URL, map[string]string{
154241		"project":  c.project,
154242		"resource": c.resource,
154243	})
154244	return gensupport.SendRequest(c.ctx_, c.s.client, req)
154245}
154246
154247// Do executes the "compute.securityPolicies.setLabels" call.
154248// Exactly one of *Operation or error will be non-nil. Any non-2xx
154249// status code is an error. Response headers are in either
154250// *Operation.ServerResponse.Header or (if a response was returned at
154251// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
154252// to check whether the returned error was because
154253// http.StatusNotModified was returned.
154254func (c *SecurityPoliciesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
154255	gensupport.SetOptions(c.urlParams_, opts...)
154256	res, err := c.doRequest("json")
154257	if res != nil && res.StatusCode == http.StatusNotModified {
154258		if res.Body != nil {
154259			res.Body.Close()
154260		}
154261		return nil, &googleapi.Error{
154262			Code:   res.StatusCode,
154263			Header: res.Header,
154264		}
154265	}
154266	if err != nil {
154267		return nil, err
154268	}
154269	defer googleapi.CloseBody(res)
154270	if err := googleapi.CheckResponse(res); err != nil {
154271		return nil, err
154272	}
154273	ret := &Operation{
154274		ServerResponse: googleapi.ServerResponse{
154275			Header:         res.Header,
154276			HTTPStatusCode: res.StatusCode,
154277		},
154278	}
154279	target := &ret
154280	if err := gensupport.DecodeResponse(target, res); err != nil {
154281		return nil, err
154282	}
154283	return ret, nil
154284	// {
154285	//   "description": "Sets the labels on a security policy. To learn more about labels, read the Labeling Resources documentation.",
154286	//   "httpMethod": "POST",
154287	//   "id": "compute.securityPolicies.setLabels",
154288	//   "parameterOrder": [
154289	//     "project",
154290	//     "resource"
154291	//   ],
154292	//   "parameters": {
154293	//     "project": {
154294	//       "description": "Project ID for this request.",
154295	//       "location": "path",
154296	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
154297	//       "required": true,
154298	//       "type": "string"
154299	//     },
154300	//     "resource": {
154301	//       "description": "Name or id of the resource for this request.",
154302	//       "location": "path",
154303	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
154304	//       "required": true,
154305	//       "type": "string"
154306	//     }
154307	//   },
154308	//   "path": "projects/{project}/global/securityPolicies/{resource}/setLabels",
154309	//   "request": {
154310	//     "$ref": "GlobalSetLabelsRequest"
154311	//   },
154312	//   "response": {
154313	//     "$ref": "Operation"
154314	//   },
154315	//   "scopes": [
154316	//     "https://www.googleapis.com/auth/cloud-platform",
154317	//     "https://www.googleapis.com/auth/compute"
154318	//   ]
154319	// }
154320
154321}
154322
154323// method id "compute.securityPolicies.testIamPermissions":
154324
154325type SecurityPoliciesTestIamPermissionsCall struct {
154326	s                      *Service
154327	project                string
154328	resource               string
154329	testpermissionsrequest *TestPermissionsRequest
154330	urlParams_             gensupport.URLParams
154331	ctx_                   context.Context
154332	header_                http.Header
154333}
154334
154335// TestIamPermissions: Returns permissions that a caller has on the
154336// specified resource.
154337func (r *SecurityPoliciesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *SecurityPoliciesTestIamPermissionsCall {
154338	c := &SecurityPoliciesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
154339	c.project = project
154340	c.resource = resource
154341	c.testpermissionsrequest = testpermissionsrequest
154342	return c
154343}
154344
154345// Fields allows partial responses to be retrieved. See
154346// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
154347// for more information.
154348func (c *SecurityPoliciesTestIamPermissionsCall) Fields(s ...googleapi.Field) *SecurityPoliciesTestIamPermissionsCall {
154349	c.urlParams_.Set("fields", googleapi.CombineFields(s))
154350	return c
154351}
154352
154353// Context sets the context to be used in this call's Do method. Any
154354// pending HTTP request will be aborted if the provided context is
154355// canceled.
154356func (c *SecurityPoliciesTestIamPermissionsCall) Context(ctx context.Context) *SecurityPoliciesTestIamPermissionsCall {
154357	c.ctx_ = ctx
154358	return c
154359}
154360
154361// Header returns an http.Header that can be modified by the caller to
154362// add HTTP headers to the request.
154363func (c *SecurityPoliciesTestIamPermissionsCall) Header() http.Header {
154364	if c.header_ == nil {
154365		c.header_ = make(http.Header)
154366	}
154367	return c.header_
154368}
154369
154370func (c *SecurityPoliciesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
154371	reqHeaders := make(http.Header)
154372	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
154373	for k, v := range c.header_ {
154374		reqHeaders[k] = v
154375	}
154376	reqHeaders.Set("User-Agent", c.s.userAgent())
154377	var body io.Reader = nil
154378	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
154379	if err != nil {
154380		return nil, err
154381	}
154382	reqHeaders.Set("Content-Type", "application/json")
154383	c.urlParams_.Set("alt", alt)
154384	c.urlParams_.Set("prettyPrint", "false")
154385	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/{resource}/testIamPermissions")
154386	urls += "?" + c.urlParams_.Encode()
154387	req, err := http.NewRequest("POST", urls, body)
154388	if err != nil {
154389		return nil, err
154390	}
154391	req.Header = reqHeaders
154392	googleapi.Expand(req.URL, map[string]string{
154393		"project":  c.project,
154394		"resource": c.resource,
154395	})
154396	return gensupport.SendRequest(c.ctx_, c.s.client, req)
154397}
154398
154399// Do executes the "compute.securityPolicies.testIamPermissions" call.
154400// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
154401// non-2xx status code is an error. Response headers are in either
154402// *TestPermissionsResponse.ServerResponse.Header or (if a response was
154403// returned at all) in error.(*googleapi.Error).Header. Use
154404// googleapi.IsNotModified to check whether the returned error was
154405// because http.StatusNotModified was returned.
154406func (c *SecurityPoliciesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
154407	gensupport.SetOptions(c.urlParams_, opts...)
154408	res, err := c.doRequest("json")
154409	if res != nil && res.StatusCode == http.StatusNotModified {
154410		if res.Body != nil {
154411			res.Body.Close()
154412		}
154413		return nil, &googleapi.Error{
154414			Code:   res.StatusCode,
154415			Header: res.Header,
154416		}
154417	}
154418	if err != nil {
154419		return nil, err
154420	}
154421	defer googleapi.CloseBody(res)
154422	if err := googleapi.CheckResponse(res); err != nil {
154423		return nil, err
154424	}
154425	ret := &TestPermissionsResponse{
154426		ServerResponse: googleapi.ServerResponse{
154427			Header:         res.Header,
154428			HTTPStatusCode: res.StatusCode,
154429		},
154430	}
154431	target := &ret
154432	if err := gensupport.DecodeResponse(target, res); err != nil {
154433		return nil, err
154434	}
154435	return ret, nil
154436	// {
154437	//   "description": "Returns permissions that a caller has on the specified resource.",
154438	//   "httpMethod": "POST",
154439	//   "id": "compute.securityPolicies.testIamPermissions",
154440	//   "parameterOrder": [
154441	//     "project",
154442	//     "resource"
154443	//   ],
154444	//   "parameters": {
154445	//     "project": {
154446	//       "description": "Project ID for this request.",
154447	//       "location": "path",
154448	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
154449	//       "required": true,
154450	//       "type": "string"
154451	//     },
154452	//     "resource": {
154453	//       "description": "Name or id of the resource for this request.",
154454	//       "location": "path",
154455	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
154456	//       "required": true,
154457	//       "type": "string"
154458	//     }
154459	//   },
154460	//   "path": "projects/{project}/global/securityPolicies/{resource}/testIamPermissions",
154461	//   "request": {
154462	//     "$ref": "TestPermissionsRequest"
154463	//   },
154464	//   "response": {
154465	//     "$ref": "TestPermissionsResponse"
154466	//   },
154467	//   "scopes": [
154468	//     "https://www.googleapis.com/auth/cloud-platform",
154469	//     "https://www.googleapis.com/auth/compute",
154470	//     "https://www.googleapis.com/auth/compute.readonly"
154471	//   ]
154472	// }
154473
154474}
154475
154476// method id "compute.serviceAttachments.aggregatedList":
154477
154478type ServiceAttachmentsAggregatedListCall struct {
154479	s            *Service
154480	project      string
154481	urlParams_   gensupport.URLParams
154482	ifNoneMatch_ string
154483	ctx_         context.Context
154484	header_      http.Header
154485}
154486
154487// AggregatedList: Retrieves the list of all ServiceAttachment
154488// resources, regional and global, available to the specified project.
154489func (r *ServiceAttachmentsService) AggregatedList(project string) *ServiceAttachmentsAggregatedListCall {
154490	c := &ServiceAttachmentsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
154491	c.project = project
154492	return c
154493}
154494
154495// Filter sets the optional parameter "filter": A filter expression that
154496// filters resources listed in the response. The expression must specify
154497// the field name, a comparison operator, and the value that you want to
154498// use for filtering. The value must be a string, a number, or a
154499// boolean. The comparison operator must be either `=`, `!=`, `>`, or
154500// `<`.
154501//
154502// For example, if you are filtering Compute Engine instances, you can
154503// exclude instances named `example-instance` by specifying `name !=
154504// example-instance`.
154505//
154506// You can also filter nested fields. For example, you could specify
154507// `scheduling.automaticRestart = false` to include instances only if
154508// they are not scheduled for automatic restarts. You can use filtering
154509// on nested fields to filter based on resource labels.
154510//
154511// To filter on multiple expressions, provide each separate expression
154512// within parentheses. For example: ``` (scheduling.automaticRestart =
154513// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
154514// is an `AND` expression. However, you can include `AND` and `OR`
154515// expressions explicitly. For example: ``` (cpuPlatform = "Intel
154516// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
154517// (scheduling.automaticRestart = true) ```
154518func (c *ServiceAttachmentsAggregatedListCall) Filter(filter string) *ServiceAttachmentsAggregatedListCall {
154519	c.urlParams_.Set("filter", filter)
154520	return c
154521}
154522
154523// IncludeAllScopes sets the optional parameter "includeAllScopes":
154524// Indicates whether every visible scope for each scope type (zone,
154525// region, global) should be included in the response. For new resource
154526// types added after this field, the flag has no effect as new resource
154527// types will always include every visible scope for each scope type in
154528// response. For resource types which predate this field, if this flag
154529// is omitted or false, only scopes of the scope types where the
154530// resource type is expected to be found will be included.
154531func (c *ServiceAttachmentsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *ServiceAttachmentsAggregatedListCall {
154532	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
154533	return c
154534}
154535
154536// MaxResults sets the optional parameter "maxResults": The maximum
154537// number of results per page that should be returned. If the number of
154538// available results is larger than `maxResults`, Compute Engine returns
154539// a `nextPageToken` that can be used to get the next page of results in
154540// subsequent list requests. Acceptable values are `0` to `500`,
154541// inclusive. (Default: `500`)
154542func (c *ServiceAttachmentsAggregatedListCall) MaxResults(maxResults int64) *ServiceAttachmentsAggregatedListCall {
154543	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
154544	return c
154545}
154546
154547// OrderBy sets the optional parameter "orderBy": Sorts list results by
154548// a certain order. By default, results are returned in alphanumerical
154549// order based on the resource name.
154550//
154551// You can also sort results in descending order based on the creation
154552// timestamp using `orderBy="creationTimestamp desc". This sorts
154553// results based on the `creationTimestamp` field in reverse
154554// chronological order (newest result first). Use this to sort resources
154555// like operations so that the newest operation is returned
154556// first.
154557//
154558// Currently, only sorting by `name` or `creationTimestamp desc` is
154559// supported.
154560func (c *ServiceAttachmentsAggregatedListCall) OrderBy(orderBy string) *ServiceAttachmentsAggregatedListCall {
154561	c.urlParams_.Set("orderBy", orderBy)
154562	return c
154563}
154564
154565// PageToken sets the optional parameter "pageToken": Specifies a page
154566// token to use. Set `pageToken` to the `nextPageToken` returned by a
154567// previous list request to get the next page of results.
154568func (c *ServiceAttachmentsAggregatedListCall) PageToken(pageToken string) *ServiceAttachmentsAggregatedListCall {
154569	c.urlParams_.Set("pageToken", pageToken)
154570	return c
154571}
154572
154573// ReturnPartialSuccess sets the optional parameter
154574// "returnPartialSuccess": Opt-in for partial success behavior which
154575// provides partial results in case of failure. The default value is
154576// false.
154577func (c *ServiceAttachmentsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ServiceAttachmentsAggregatedListCall {
154578	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
154579	return c
154580}
154581
154582// Fields allows partial responses to be retrieved. See
154583// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
154584// for more information.
154585func (c *ServiceAttachmentsAggregatedListCall) Fields(s ...googleapi.Field) *ServiceAttachmentsAggregatedListCall {
154586	c.urlParams_.Set("fields", googleapi.CombineFields(s))
154587	return c
154588}
154589
154590// IfNoneMatch sets the optional parameter which makes the operation
154591// fail if the object's ETag matches the given value. This is useful for
154592// getting updates only after the object has changed since the last
154593// request. Use googleapi.IsNotModified to check whether the response
154594// error from Do is the result of In-None-Match.
154595func (c *ServiceAttachmentsAggregatedListCall) IfNoneMatch(entityTag string) *ServiceAttachmentsAggregatedListCall {
154596	c.ifNoneMatch_ = entityTag
154597	return c
154598}
154599
154600// Context sets the context to be used in this call's Do method. Any
154601// pending HTTP request will be aborted if the provided context is
154602// canceled.
154603func (c *ServiceAttachmentsAggregatedListCall) Context(ctx context.Context) *ServiceAttachmentsAggregatedListCall {
154604	c.ctx_ = ctx
154605	return c
154606}
154607
154608// Header returns an http.Header that can be modified by the caller to
154609// add HTTP headers to the request.
154610func (c *ServiceAttachmentsAggregatedListCall) Header() http.Header {
154611	if c.header_ == nil {
154612		c.header_ = make(http.Header)
154613	}
154614	return c.header_
154615}
154616
154617func (c *ServiceAttachmentsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
154618	reqHeaders := make(http.Header)
154619	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
154620	for k, v := range c.header_ {
154621		reqHeaders[k] = v
154622	}
154623	reqHeaders.Set("User-Agent", c.s.userAgent())
154624	if c.ifNoneMatch_ != "" {
154625		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
154626	}
154627	var body io.Reader = nil
154628	c.urlParams_.Set("alt", alt)
154629	c.urlParams_.Set("prettyPrint", "false")
154630	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/serviceAttachments")
154631	urls += "?" + c.urlParams_.Encode()
154632	req, err := http.NewRequest("GET", urls, body)
154633	if err != nil {
154634		return nil, err
154635	}
154636	req.Header = reqHeaders
154637	googleapi.Expand(req.URL, map[string]string{
154638		"project": c.project,
154639	})
154640	return gensupport.SendRequest(c.ctx_, c.s.client, req)
154641}
154642
154643// Do executes the "compute.serviceAttachments.aggregatedList" call.
154644// Exactly one of *ServiceAttachmentAggregatedList or error will be
154645// non-nil. Any non-2xx status code is an error. Response headers are in
154646// either *ServiceAttachmentAggregatedList.ServerResponse.Header or (if
154647// a response was returned at all) in error.(*googleapi.Error).Header.
154648// Use googleapi.IsNotModified to check whether the returned error was
154649// because http.StatusNotModified was returned.
154650func (c *ServiceAttachmentsAggregatedListCall) Do(opts ...googleapi.CallOption) (*ServiceAttachmentAggregatedList, error) {
154651	gensupport.SetOptions(c.urlParams_, opts...)
154652	res, err := c.doRequest("json")
154653	if res != nil && res.StatusCode == http.StatusNotModified {
154654		if res.Body != nil {
154655			res.Body.Close()
154656		}
154657		return nil, &googleapi.Error{
154658			Code:   res.StatusCode,
154659			Header: res.Header,
154660		}
154661	}
154662	if err != nil {
154663		return nil, err
154664	}
154665	defer googleapi.CloseBody(res)
154666	if err := googleapi.CheckResponse(res); err != nil {
154667		return nil, err
154668	}
154669	ret := &ServiceAttachmentAggregatedList{
154670		ServerResponse: googleapi.ServerResponse{
154671			Header:         res.Header,
154672			HTTPStatusCode: res.StatusCode,
154673		},
154674	}
154675	target := &ret
154676	if err := gensupport.DecodeResponse(target, res); err != nil {
154677		return nil, err
154678	}
154679	return ret, nil
154680	// {
154681	//   "description": "Retrieves the list of all ServiceAttachment resources, regional and global, available to the specified project.",
154682	//   "httpMethod": "GET",
154683	//   "id": "compute.serviceAttachments.aggregatedList",
154684	//   "parameterOrder": [
154685	//     "project"
154686	//   ],
154687	//   "parameters": {
154688	//     "filter": {
154689	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
154690	//       "location": "query",
154691	//       "type": "string"
154692	//     },
154693	//     "includeAllScopes": {
154694	//       "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.",
154695	//       "location": "query",
154696	//       "type": "boolean"
154697	//     },
154698	//     "maxResults": {
154699	//       "default": "500",
154700	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
154701	//       "format": "uint32",
154702	//       "location": "query",
154703	//       "minimum": "0",
154704	//       "type": "integer"
154705	//     },
154706	//     "orderBy": {
154707	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
154708	//       "location": "query",
154709	//       "type": "string"
154710	//     },
154711	//     "pageToken": {
154712	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
154713	//       "location": "query",
154714	//       "type": "string"
154715	//     },
154716	//     "project": {
154717	//       "description": "Name of the project scoping this request.",
154718	//       "location": "path",
154719	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
154720	//       "required": true,
154721	//       "type": "string"
154722	//     },
154723	//     "returnPartialSuccess": {
154724	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
154725	//       "location": "query",
154726	//       "type": "boolean"
154727	//     }
154728	//   },
154729	//   "path": "projects/{project}/aggregated/serviceAttachments",
154730	//   "response": {
154731	//     "$ref": "ServiceAttachmentAggregatedList"
154732	//   },
154733	//   "scopes": [
154734	//     "https://www.googleapis.com/auth/cloud-platform",
154735	//     "https://www.googleapis.com/auth/compute",
154736	//     "https://www.googleapis.com/auth/compute.readonly"
154737	//   ]
154738	// }
154739
154740}
154741
154742// Pages invokes f for each page of results.
154743// A non-nil error returned from f will halt the iteration.
154744// The provided context supersedes any context provided to the Context method.
154745func (c *ServiceAttachmentsAggregatedListCall) Pages(ctx context.Context, f func(*ServiceAttachmentAggregatedList) error) error {
154746	c.ctx_ = ctx
154747	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
154748	for {
154749		x, err := c.Do()
154750		if err != nil {
154751			return err
154752		}
154753		if err := f(x); err != nil {
154754			return err
154755		}
154756		if x.NextPageToken == "" {
154757			return nil
154758		}
154759		c.PageToken(x.NextPageToken)
154760	}
154761}
154762
154763// method id "compute.serviceAttachments.delete":
154764
154765type ServiceAttachmentsDeleteCall struct {
154766	s                 *Service
154767	project           string
154768	region            string
154769	serviceAttachment string
154770	urlParams_        gensupport.URLParams
154771	ctx_              context.Context
154772	header_           http.Header
154773}
154774
154775// Delete: Deletes the specified ServiceAttachment in the given scope
154776func (r *ServiceAttachmentsService) Delete(project string, region string, serviceAttachment string) *ServiceAttachmentsDeleteCall {
154777	c := &ServiceAttachmentsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
154778	c.project = project
154779	c.region = region
154780	c.serviceAttachment = serviceAttachment
154781	return c
154782}
154783
154784// RequestId sets the optional parameter "requestId": An optional
154785// request ID to identify requests. Specify a unique request ID so that
154786// if you must retry your request, the server will know to ignore the
154787// request if it has already been completed.
154788//
154789// For example, consider a situation where you make an initial request
154790// and the request times out. If you make the request again with the
154791// same request ID, the server can check if original operation with the
154792// same request ID was received, and if so, will ignore the second
154793// request. This prevents clients from accidentally creating duplicate
154794// commitments.
154795//
154796// The request ID must be a valid UUID with the exception that zero UUID
154797// is not supported (00000000-0000-0000-0000-000000000000).
154798func (c *ServiceAttachmentsDeleteCall) RequestId(requestId string) *ServiceAttachmentsDeleteCall {
154799	c.urlParams_.Set("requestId", requestId)
154800	return c
154801}
154802
154803// Fields allows partial responses to be retrieved. See
154804// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
154805// for more information.
154806func (c *ServiceAttachmentsDeleteCall) Fields(s ...googleapi.Field) *ServiceAttachmentsDeleteCall {
154807	c.urlParams_.Set("fields", googleapi.CombineFields(s))
154808	return c
154809}
154810
154811// Context sets the context to be used in this call's Do method. Any
154812// pending HTTP request will be aborted if the provided context is
154813// canceled.
154814func (c *ServiceAttachmentsDeleteCall) Context(ctx context.Context) *ServiceAttachmentsDeleteCall {
154815	c.ctx_ = ctx
154816	return c
154817}
154818
154819// Header returns an http.Header that can be modified by the caller to
154820// add HTTP headers to the request.
154821func (c *ServiceAttachmentsDeleteCall) Header() http.Header {
154822	if c.header_ == nil {
154823		c.header_ = make(http.Header)
154824	}
154825	return c.header_
154826}
154827
154828func (c *ServiceAttachmentsDeleteCall) doRequest(alt string) (*http.Response, error) {
154829	reqHeaders := make(http.Header)
154830	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
154831	for k, v := range c.header_ {
154832		reqHeaders[k] = v
154833	}
154834	reqHeaders.Set("User-Agent", c.s.userAgent())
154835	var body io.Reader = nil
154836	c.urlParams_.Set("alt", alt)
154837	c.urlParams_.Set("prettyPrint", "false")
154838	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}")
154839	urls += "?" + c.urlParams_.Encode()
154840	req, err := http.NewRequest("DELETE", urls, body)
154841	if err != nil {
154842		return nil, err
154843	}
154844	req.Header = reqHeaders
154845	googleapi.Expand(req.URL, map[string]string{
154846		"project":           c.project,
154847		"region":            c.region,
154848		"serviceAttachment": c.serviceAttachment,
154849	})
154850	return gensupport.SendRequest(c.ctx_, c.s.client, req)
154851}
154852
154853// Do executes the "compute.serviceAttachments.delete" call.
154854// Exactly one of *Operation or error will be non-nil. Any non-2xx
154855// status code is an error. Response headers are in either
154856// *Operation.ServerResponse.Header or (if a response was returned at
154857// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
154858// to check whether the returned error was because
154859// http.StatusNotModified was returned.
154860func (c *ServiceAttachmentsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
154861	gensupport.SetOptions(c.urlParams_, opts...)
154862	res, err := c.doRequest("json")
154863	if res != nil && res.StatusCode == http.StatusNotModified {
154864		if res.Body != nil {
154865			res.Body.Close()
154866		}
154867		return nil, &googleapi.Error{
154868			Code:   res.StatusCode,
154869			Header: res.Header,
154870		}
154871	}
154872	if err != nil {
154873		return nil, err
154874	}
154875	defer googleapi.CloseBody(res)
154876	if err := googleapi.CheckResponse(res); err != nil {
154877		return nil, err
154878	}
154879	ret := &Operation{
154880		ServerResponse: googleapi.ServerResponse{
154881			Header:         res.Header,
154882			HTTPStatusCode: res.StatusCode,
154883		},
154884	}
154885	target := &ret
154886	if err := gensupport.DecodeResponse(target, res); err != nil {
154887		return nil, err
154888	}
154889	return ret, nil
154890	// {
154891	//   "description": "Deletes the specified ServiceAttachment in the given scope",
154892	//   "httpMethod": "DELETE",
154893	//   "id": "compute.serviceAttachments.delete",
154894	//   "parameterOrder": [
154895	//     "project",
154896	//     "region",
154897	//     "serviceAttachment"
154898	//   ],
154899	//   "parameters": {
154900	//     "project": {
154901	//       "description": "Project ID for this request.",
154902	//       "location": "path",
154903	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
154904	//       "required": true,
154905	//       "type": "string"
154906	//     },
154907	//     "region": {
154908	//       "description": "Name of the region of this request.",
154909	//       "location": "path",
154910	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
154911	//       "required": true,
154912	//       "type": "string"
154913	//     },
154914	//     "requestId": {
154915	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
154916	//       "location": "query",
154917	//       "type": "string"
154918	//     },
154919	//     "serviceAttachment": {
154920	//       "description": "Name of the ServiceAttachment resource to delete.",
154921	//       "location": "path",
154922	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
154923	//       "required": true,
154924	//       "type": "string"
154925	//     }
154926	//   },
154927	//   "path": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}",
154928	//   "response": {
154929	//     "$ref": "Operation"
154930	//   },
154931	//   "scopes": [
154932	//     "https://www.googleapis.com/auth/cloud-platform",
154933	//     "https://www.googleapis.com/auth/compute"
154934	//   ]
154935	// }
154936
154937}
154938
154939// method id "compute.serviceAttachments.get":
154940
154941type ServiceAttachmentsGetCall struct {
154942	s                 *Service
154943	project           string
154944	region            string
154945	serviceAttachment string
154946	urlParams_        gensupport.URLParams
154947	ifNoneMatch_      string
154948	ctx_              context.Context
154949	header_           http.Header
154950}
154951
154952// Get: Returns the specified ServiceAttachment resource in the given
154953// scope.
154954func (r *ServiceAttachmentsService) Get(project string, region string, serviceAttachment string) *ServiceAttachmentsGetCall {
154955	c := &ServiceAttachmentsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
154956	c.project = project
154957	c.region = region
154958	c.serviceAttachment = serviceAttachment
154959	return c
154960}
154961
154962// Fields allows partial responses to be retrieved. See
154963// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
154964// for more information.
154965func (c *ServiceAttachmentsGetCall) Fields(s ...googleapi.Field) *ServiceAttachmentsGetCall {
154966	c.urlParams_.Set("fields", googleapi.CombineFields(s))
154967	return c
154968}
154969
154970// IfNoneMatch sets the optional parameter which makes the operation
154971// fail if the object's ETag matches the given value. This is useful for
154972// getting updates only after the object has changed since the last
154973// request. Use googleapi.IsNotModified to check whether the response
154974// error from Do is the result of In-None-Match.
154975func (c *ServiceAttachmentsGetCall) IfNoneMatch(entityTag string) *ServiceAttachmentsGetCall {
154976	c.ifNoneMatch_ = entityTag
154977	return c
154978}
154979
154980// Context sets the context to be used in this call's Do method. Any
154981// pending HTTP request will be aborted if the provided context is
154982// canceled.
154983func (c *ServiceAttachmentsGetCall) Context(ctx context.Context) *ServiceAttachmentsGetCall {
154984	c.ctx_ = ctx
154985	return c
154986}
154987
154988// Header returns an http.Header that can be modified by the caller to
154989// add HTTP headers to the request.
154990func (c *ServiceAttachmentsGetCall) Header() http.Header {
154991	if c.header_ == nil {
154992		c.header_ = make(http.Header)
154993	}
154994	return c.header_
154995}
154996
154997func (c *ServiceAttachmentsGetCall) doRequest(alt string) (*http.Response, error) {
154998	reqHeaders := make(http.Header)
154999	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
155000	for k, v := range c.header_ {
155001		reqHeaders[k] = v
155002	}
155003	reqHeaders.Set("User-Agent", c.s.userAgent())
155004	if c.ifNoneMatch_ != "" {
155005		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
155006	}
155007	var body io.Reader = nil
155008	c.urlParams_.Set("alt", alt)
155009	c.urlParams_.Set("prettyPrint", "false")
155010	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}")
155011	urls += "?" + c.urlParams_.Encode()
155012	req, err := http.NewRequest("GET", urls, body)
155013	if err != nil {
155014		return nil, err
155015	}
155016	req.Header = reqHeaders
155017	googleapi.Expand(req.URL, map[string]string{
155018		"project":           c.project,
155019		"region":            c.region,
155020		"serviceAttachment": c.serviceAttachment,
155021	})
155022	return gensupport.SendRequest(c.ctx_, c.s.client, req)
155023}
155024
155025// Do executes the "compute.serviceAttachments.get" call.
155026// Exactly one of *ServiceAttachment or error will be non-nil. Any
155027// non-2xx status code is an error. Response headers are in either
155028// *ServiceAttachment.ServerResponse.Header or (if a response was
155029// returned at all) in error.(*googleapi.Error).Header. Use
155030// googleapi.IsNotModified to check whether the returned error was
155031// because http.StatusNotModified was returned.
155032func (c *ServiceAttachmentsGetCall) Do(opts ...googleapi.CallOption) (*ServiceAttachment, error) {
155033	gensupport.SetOptions(c.urlParams_, opts...)
155034	res, err := c.doRequest("json")
155035	if res != nil && res.StatusCode == http.StatusNotModified {
155036		if res.Body != nil {
155037			res.Body.Close()
155038		}
155039		return nil, &googleapi.Error{
155040			Code:   res.StatusCode,
155041			Header: res.Header,
155042		}
155043	}
155044	if err != nil {
155045		return nil, err
155046	}
155047	defer googleapi.CloseBody(res)
155048	if err := googleapi.CheckResponse(res); err != nil {
155049		return nil, err
155050	}
155051	ret := &ServiceAttachment{
155052		ServerResponse: googleapi.ServerResponse{
155053			Header:         res.Header,
155054			HTTPStatusCode: res.StatusCode,
155055		},
155056	}
155057	target := &ret
155058	if err := gensupport.DecodeResponse(target, res); err != nil {
155059		return nil, err
155060	}
155061	return ret, nil
155062	// {
155063	//   "description": "Returns the specified ServiceAttachment resource in the given scope.",
155064	//   "httpMethod": "GET",
155065	//   "id": "compute.serviceAttachments.get",
155066	//   "parameterOrder": [
155067	//     "project",
155068	//     "region",
155069	//     "serviceAttachment"
155070	//   ],
155071	//   "parameters": {
155072	//     "project": {
155073	//       "description": "Project ID for this request.",
155074	//       "location": "path",
155075	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
155076	//       "required": true,
155077	//       "type": "string"
155078	//     },
155079	//     "region": {
155080	//       "description": "Name of the region of this request.",
155081	//       "location": "path",
155082	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
155083	//       "required": true,
155084	//       "type": "string"
155085	//     },
155086	//     "serviceAttachment": {
155087	//       "description": "Name of the ServiceAttachment resource to return.",
155088	//       "location": "path",
155089	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
155090	//       "required": true,
155091	//       "type": "string"
155092	//     }
155093	//   },
155094	//   "path": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}",
155095	//   "response": {
155096	//     "$ref": "ServiceAttachment"
155097	//   },
155098	//   "scopes": [
155099	//     "https://www.googleapis.com/auth/cloud-platform",
155100	//     "https://www.googleapis.com/auth/compute",
155101	//     "https://www.googleapis.com/auth/compute.readonly"
155102	//   ]
155103	// }
155104
155105}
155106
155107// method id "compute.serviceAttachments.getIamPolicy":
155108
155109type ServiceAttachmentsGetIamPolicyCall struct {
155110	s            *Service
155111	project      string
155112	region       string
155113	resource     string
155114	urlParams_   gensupport.URLParams
155115	ifNoneMatch_ string
155116	ctx_         context.Context
155117	header_      http.Header
155118}
155119
155120// GetIamPolicy: Gets the access control policy for a resource. May be
155121// empty if no such policy or resource exists.
155122func (r *ServiceAttachmentsService) GetIamPolicy(project string, region string, resource string) *ServiceAttachmentsGetIamPolicyCall {
155123	c := &ServiceAttachmentsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
155124	c.project = project
155125	c.region = region
155126	c.resource = resource
155127	return c
155128}
155129
155130// OptionsRequestedPolicyVersion sets the optional parameter
155131// "optionsRequestedPolicyVersion": Requested IAM Policy version.
155132func (c *ServiceAttachmentsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ServiceAttachmentsGetIamPolicyCall {
155133	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
155134	return c
155135}
155136
155137// Fields allows partial responses to be retrieved. See
155138// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
155139// for more information.
155140func (c *ServiceAttachmentsGetIamPolicyCall) Fields(s ...googleapi.Field) *ServiceAttachmentsGetIamPolicyCall {
155141	c.urlParams_.Set("fields", googleapi.CombineFields(s))
155142	return c
155143}
155144
155145// IfNoneMatch sets the optional parameter which makes the operation
155146// fail if the object's ETag matches the given value. This is useful for
155147// getting updates only after the object has changed since the last
155148// request. Use googleapi.IsNotModified to check whether the response
155149// error from Do is the result of In-None-Match.
155150func (c *ServiceAttachmentsGetIamPolicyCall) IfNoneMatch(entityTag string) *ServiceAttachmentsGetIamPolicyCall {
155151	c.ifNoneMatch_ = entityTag
155152	return c
155153}
155154
155155// Context sets the context to be used in this call's Do method. Any
155156// pending HTTP request will be aborted if the provided context is
155157// canceled.
155158func (c *ServiceAttachmentsGetIamPolicyCall) Context(ctx context.Context) *ServiceAttachmentsGetIamPolicyCall {
155159	c.ctx_ = ctx
155160	return c
155161}
155162
155163// Header returns an http.Header that can be modified by the caller to
155164// add HTTP headers to the request.
155165func (c *ServiceAttachmentsGetIamPolicyCall) Header() http.Header {
155166	if c.header_ == nil {
155167		c.header_ = make(http.Header)
155168	}
155169	return c.header_
155170}
155171
155172func (c *ServiceAttachmentsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
155173	reqHeaders := make(http.Header)
155174	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
155175	for k, v := range c.header_ {
155176		reqHeaders[k] = v
155177	}
155178	reqHeaders.Set("User-Agent", c.s.userAgent())
155179	if c.ifNoneMatch_ != "" {
155180		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
155181	}
155182	var body io.Reader = nil
155183	c.urlParams_.Set("alt", alt)
155184	c.urlParams_.Set("prettyPrint", "false")
155185	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/serviceAttachments/{resource}/getIamPolicy")
155186	urls += "?" + c.urlParams_.Encode()
155187	req, err := http.NewRequest("GET", urls, body)
155188	if err != nil {
155189		return nil, err
155190	}
155191	req.Header = reqHeaders
155192	googleapi.Expand(req.URL, map[string]string{
155193		"project":  c.project,
155194		"region":   c.region,
155195		"resource": c.resource,
155196	})
155197	return gensupport.SendRequest(c.ctx_, c.s.client, req)
155198}
155199
155200// Do executes the "compute.serviceAttachments.getIamPolicy" call.
155201// Exactly one of *Policy or error will be non-nil. Any non-2xx status
155202// code is an error. Response headers are in either
155203// *Policy.ServerResponse.Header or (if a response was returned at all)
155204// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
155205// check whether the returned error was because http.StatusNotModified
155206// was returned.
155207func (c *ServiceAttachmentsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
155208	gensupport.SetOptions(c.urlParams_, opts...)
155209	res, err := c.doRequest("json")
155210	if res != nil && res.StatusCode == http.StatusNotModified {
155211		if res.Body != nil {
155212			res.Body.Close()
155213		}
155214		return nil, &googleapi.Error{
155215			Code:   res.StatusCode,
155216			Header: res.Header,
155217		}
155218	}
155219	if err != nil {
155220		return nil, err
155221	}
155222	defer googleapi.CloseBody(res)
155223	if err := googleapi.CheckResponse(res); err != nil {
155224		return nil, err
155225	}
155226	ret := &Policy{
155227		ServerResponse: googleapi.ServerResponse{
155228			Header:         res.Header,
155229			HTTPStatusCode: res.StatusCode,
155230		},
155231	}
155232	target := &ret
155233	if err := gensupport.DecodeResponse(target, res); err != nil {
155234		return nil, err
155235	}
155236	return ret, nil
155237	// {
155238	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
155239	//   "httpMethod": "GET",
155240	//   "id": "compute.serviceAttachments.getIamPolicy",
155241	//   "parameterOrder": [
155242	//     "project",
155243	//     "region",
155244	//     "resource"
155245	//   ],
155246	//   "parameters": {
155247	//     "optionsRequestedPolicyVersion": {
155248	//       "description": "Requested IAM Policy version.",
155249	//       "format": "int32",
155250	//       "location": "query",
155251	//       "type": "integer"
155252	//     },
155253	//     "project": {
155254	//       "description": "Project ID for this request.",
155255	//       "location": "path",
155256	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
155257	//       "required": true,
155258	//       "type": "string"
155259	//     },
155260	//     "region": {
155261	//       "description": "The name of the region for this request.",
155262	//       "location": "path",
155263	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
155264	//       "required": true,
155265	//       "type": "string"
155266	//     },
155267	//     "resource": {
155268	//       "description": "Name or id of the resource for this request.",
155269	//       "location": "path",
155270	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
155271	//       "required": true,
155272	//       "type": "string"
155273	//     }
155274	//   },
155275	//   "path": "projects/{project}/regions/{region}/serviceAttachments/{resource}/getIamPolicy",
155276	//   "response": {
155277	//     "$ref": "Policy"
155278	//   },
155279	//   "scopes": [
155280	//     "https://www.googleapis.com/auth/cloud-platform",
155281	//     "https://www.googleapis.com/auth/compute",
155282	//     "https://www.googleapis.com/auth/compute.readonly"
155283	//   ]
155284	// }
155285
155286}
155287
155288// method id "compute.serviceAttachments.insert":
155289
155290type ServiceAttachmentsInsertCall struct {
155291	s                 *Service
155292	project           string
155293	region            string
155294	serviceattachment *ServiceAttachment
155295	urlParams_        gensupport.URLParams
155296	ctx_              context.Context
155297	header_           http.Header
155298}
155299
155300// Insert: Creates a ServiceAttachment in the specified project in the
155301// given scope using the parameters that are included in the request.
155302func (r *ServiceAttachmentsService) Insert(project string, region string, serviceattachment *ServiceAttachment) *ServiceAttachmentsInsertCall {
155303	c := &ServiceAttachmentsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
155304	c.project = project
155305	c.region = region
155306	c.serviceattachment = serviceattachment
155307	return c
155308}
155309
155310// RequestId sets the optional parameter "requestId": An optional
155311// request ID to identify requests. Specify a unique request ID so that
155312// if you must retry your request, the server will know to ignore the
155313// request if it has already been completed.
155314//
155315// For example, consider a situation where you make an initial request
155316// and the request times out. If you make the request again with the
155317// same request ID, the server can check if original operation with the
155318// same request ID was received, and if so, will ignore the second
155319// request. This prevents clients from accidentally creating duplicate
155320// commitments.
155321//
155322// The request ID must be a valid UUID with the exception that zero UUID
155323// is not supported (00000000-0000-0000-0000-000000000000).
155324func (c *ServiceAttachmentsInsertCall) RequestId(requestId string) *ServiceAttachmentsInsertCall {
155325	c.urlParams_.Set("requestId", requestId)
155326	return c
155327}
155328
155329// Fields allows partial responses to be retrieved. See
155330// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
155331// for more information.
155332func (c *ServiceAttachmentsInsertCall) Fields(s ...googleapi.Field) *ServiceAttachmentsInsertCall {
155333	c.urlParams_.Set("fields", googleapi.CombineFields(s))
155334	return c
155335}
155336
155337// Context sets the context to be used in this call's Do method. Any
155338// pending HTTP request will be aborted if the provided context is
155339// canceled.
155340func (c *ServiceAttachmentsInsertCall) Context(ctx context.Context) *ServiceAttachmentsInsertCall {
155341	c.ctx_ = ctx
155342	return c
155343}
155344
155345// Header returns an http.Header that can be modified by the caller to
155346// add HTTP headers to the request.
155347func (c *ServiceAttachmentsInsertCall) Header() http.Header {
155348	if c.header_ == nil {
155349		c.header_ = make(http.Header)
155350	}
155351	return c.header_
155352}
155353
155354func (c *ServiceAttachmentsInsertCall) doRequest(alt string) (*http.Response, error) {
155355	reqHeaders := make(http.Header)
155356	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
155357	for k, v := range c.header_ {
155358		reqHeaders[k] = v
155359	}
155360	reqHeaders.Set("User-Agent", c.s.userAgent())
155361	var body io.Reader = nil
155362	body, err := googleapi.WithoutDataWrapper.JSONReader(c.serviceattachment)
155363	if err != nil {
155364		return nil, err
155365	}
155366	reqHeaders.Set("Content-Type", "application/json")
155367	c.urlParams_.Set("alt", alt)
155368	c.urlParams_.Set("prettyPrint", "false")
155369	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/serviceAttachments")
155370	urls += "?" + c.urlParams_.Encode()
155371	req, err := http.NewRequest("POST", urls, body)
155372	if err != nil {
155373		return nil, err
155374	}
155375	req.Header = reqHeaders
155376	googleapi.Expand(req.URL, map[string]string{
155377		"project": c.project,
155378		"region":  c.region,
155379	})
155380	return gensupport.SendRequest(c.ctx_, c.s.client, req)
155381}
155382
155383// Do executes the "compute.serviceAttachments.insert" call.
155384// Exactly one of *Operation or error will be non-nil. Any non-2xx
155385// status code is an error. Response headers are in either
155386// *Operation.ServerResponse.Header or (if a response was returned at
155387// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
155388// to check whether the returned error was because
155389// http.StatusNotModified was returned.
155390func (c *ServiceAttachmentsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
155391	gensupport.SetOptions(c.urlParams_, opts...)
155392	res, err := c.doRequest("json")
155393	if res != nil && res.StatusCode == http.StatusNotModified {
155394		if res.Body != nil {
155395			res.Body.Close()
155396		}
155397		return nil, &googleapi.Error{
155398			Code:   res.StatusCode,
155399			Header: res.Header,
155400		}
155401	}
155402	if err != nil {
155403		return nil, err
155404	}
155405	defer googleapi.CloseBody(res)
155406	if err := googleapi.CheckResponse(res); err != nil {
155407		return nil, err
155408	}
155409	ret := &Operation{
155410		ServerResponse: googleapi.ServerResponse{
155411			Header:         res.Header,
155412			HTTPStatusCode: res.StatusCode,
155413		},
155414	}
155415	target := &ret
155416	if err := gensupport.DecodeResponse(target, res); err != nil {
155417		return nil, err
155418	}
155419	return ret, nil
155420	// {
155421	//   "description": "Creates a ServiceAttachment in the specified project in the given scope using the parameters that are included in the request.",
155422	//   "httpMethod": "POST",
155423	//   "id": "compute.serviceAttachments.insert",
155424	//   "parameterOrder": [
155425	//     "project",
155426	//     "region"
155427	//   ],
155428	//   "parameters": {
155429	//     "project": {
155430	//       "description": "Project ID for this request.",
155431	//       "location": "path",
155432	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
155433	//       "required": true,
155434	//       "type": "string"
155435	//     },
155436	//     "region": {
155437	//       "description": "Name of the region of this request.",
155438	//       "location": "path",
155439	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
155440	//       "required": true,
155441	//       "type": "string"
155442	//     },
155443	//     "requestId": {
155444	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
155445	//       "location": "query",
155446	//       "type": "string"
155447	//     }
155448	//   },
155449	//   "path": "projects/{project}/regions/{region}/serviceAttachments",
155450	//   "request": {
155451	//     "$ref": "ServiceAttachment"
155452	//   },
155453	//   "response": {
155454	//     "$ref": "Operation"
155455	//   },
155456	//   "scopes": [
155457	//     "https://www.googleapis.com/auth/cloud-platform",
155458	//     "https://www.googleapis.com/auth/compute"
155459	//   ]
155460	// }
155461
155462}
155463
155464// method id "compute.serviceAttachments.list":
155465
155466type ServiceAttachmentsListCall struct {
155467	s            *Service
155468	project      string
155469	region       string
155470	urlParams_   gensupport.URLParams
155471	ifNoneMatch_ string
155472	ctx_         context.Context
155473	header_      http.Header
155474}
155475
155476// List: Lists the ServiceAttachments for a project in the given scope.
155477func (r *ServiceAttachmentsService) List(project string, region string) *ServiceAttachmentsListCall {
155478	c := &ServiceAttachmentsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
155479	c.project = project
155480	c.region = region
155481	return c
155482}
155483
155484// Filter sets the optional parameter "filter": A filter expression that
155485// filters resources listed in the response. The expression must specify
155486// the field name, a comparison operator, and the value that you want to
155487// use for filtering. The value must be a string, a number, or a
155488// boolean. The comparison operator must be either `=`, `!=`, `>`, or
155489// `<`.
155490//
155491// For example, if you are filtering Compute Engine instances, you can
155492// exclude instances named `example-instance` by specifying `name !=
155493// example-instance`.
155494//
155495// You can also filter nested fields. For example, you could specify
155496// `scheduling.automaticRestart = false` to include instances only if
155497// they are not scheduled for automatic restarts. You can use filtering
155498// on nested fields to filter based on resource labels.
155499//
155500// To filter on multiple expressions, provide each separate expression
155501// within parentheses. For example: ``` (scheduling.automaticRestart =
155502// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
155503// is an `AND` expression. However, you can include `AND` and `OR`
155504// expressions explicitly. For example: ``` (cpuPlatform = "Intel
155505// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
155506// (scheduling.automaticRestart = true) ```
155507func (c *ServiceAttachmentsListCall) Filter(filter string) *ServiceAttachmentsListCall {
155508	c.urlParams_.Set("filter", filter)
155509	return c
155510}
155511
155512// MaxResults sets the optional parameter "maxResults": The maximum
155513// number of results per page that should be returned. If the number of
155514// available results is larger than `maxResults`, Compute Engine returns
155515// a `nextPageToken` that can be used to get the next page of results in
155516// subsequent list requests. Acceptable values are `0` to `500`,
155517// inclusive. (Default: `500`)
155518func (c *ServiceAttachmentsListCall) MaxResults(maxResults int64) *ServiceAttachmentsListCall {
155519	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
155520	return c
155521}
155522
155523// OrderBy sets the optional parameter "orderBy": Sorts list results by
155524// a certain order. By default, results are returned in alphanumerical
155525// order based on the resource name.
155526//
155527// You can also sort results in descending order based on the creation
155528// timestamp using `orderBy="creationTimestamp desc". This sorts
155529// results based on the `creationTimestamp` field in reverse
155530// chronological order (newest result first). Use this to sort resources
155531// like operations so that the newest operation is returned
155532// first.
155533//
155534// Currently, only sorting by `name` or `creationTimestamp desc` is
155535// supported.
155536func (c *ServiceAttachmentsListCall) OrderBy(orderBy string) *ServiceAttachmentsListCall {
155537	c.urlParams_.Set("orderBy", orderBy)
155538	return c
155539}
155540
155541// PageToken sets the optional parameter "pageToken": Specifies a page
155542// token to use. Set `pageToken` to the `nextPageToken` returned by a
155543// previous list request to get the next page of results.
155544func (c *ServiceAttachmentsListCall) PageToken(pageToken string) *ServiceAttachmentsListCall {
155545	c.urlParams_.Set("pageToken", pageToken)
155546	return c
155547}
155548
155549// ReturnPartialSuccess sets the optional parameter
155550// "returnPartialSuccess": Opt-in for partial success behavior which
155551// provides partial results in case of failure. The default value is
155552// false.
155553func (c *ServiceAttachmentsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ServiceAttachmentsListCall {
155554	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
155555	return c
155556}
155557
155558// Fields allows partial responses to be retrieved. See
155559// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
155560// for more information.
155561func (c *ServiceAttachmentsListCall) Fields(s ...googleapi.Field) *ServiceAttachmentsListCall {
155562	c.urlParams_.Set("fields", googleapi.CombineFields(s))
155563	return c
155564}
155565
155566// IfNoneMatch sets the optional parameter which makes the operation
155567// fail if the object's ETag matches the given value. This is useful for
155568// getting updates only after the object has changed since the last
155569// request. Use googleapi.IsNotModified to check whether the response
155570// error from Do is the result of In-None-Match.
155571func (c *ServiceAttachmentsListCall) IfNoneMatch(entityTag string) *ServiceAttachmentsListCall {
155572	c.ifNoneMatch_ = entityTag
155573	return c
155574}
155575
155576// Context sets the context to be used in this call's Do method. Any
155577// pending HTTP request will be aborted if the provided context is
155578// canceled.
155579func (c *ServiceAttachmentsListCall) Context(ctx context.Context) *ServiceAttachmentsListCall {
155580	c.ctx_ = ctx
155581	return c
155582}
155583
155584// Header returns an http.Header that can be modified by the caller to
155585// add HTTP headers to the request.
155586func (c *ServiceAttachmentsListCall) Header() http.Header {
155587	if c.header_ == nil {
155588		c.header_ = make(http.Header)
155589	}
155590	return c.header_
155591}
155592
155593func (c *ServiceAttachmentsListCall) doRequest(alt string) (*http.Response, error) {
155594	reqHeaders := make(http.Header)
155595	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
155596	for k, v := range c.header_ {
155597		reqHeaders[k] = v
155598	}
155599	reqHeaders.Set("User-Agent", c.s.userAgent())
155600	if c.ifNoneMatch_ != "" {
155601		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
155602	}
155603	var body io.Reader = nil
155604	c.urlParams_.Set("alt", alt)
155605	c.urlParams_.Set("prettyPrint", "false")
155606	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/serviceAttachments")
155607	urls += "?" + c.urlParams_.Encode()
155608	req, err := http.NewRequest("GET", urls, body)
155609	if err != nil {
155610		return nil, err
155611	}
155612	req.Header = reqHeaders
155613	googleapi.Expand(req.URL, map[string]string{
155614		"project": c.project,
155615		"region":  c.region,
155616	})
155617	return gensupport.SendRequest(c.ctx_, c.s.client, req)
155618}
155619
155620// Do executes the "compute.serviceAttachments.list" call.
155621// Exactly one of *ServiceAttachmentList or error will be non-nil. Any
155622// non-2xx status code is an error. Response headers are in either
155623// *ServiceAttachmentList.ServerResponse.Header or (if a response was
155624// returned at all) in error.(*googleapi.Error).Header. Use
155625// googleapi.IsNotModified to check whether the returned error was
155626// because http.StatusNotModified was returned.
155627func (c *ServiceAttachmentsListCall) Do(opts ...googleapi.CallOption) (*ServiceAttachmentList, error) {
155628	gensupport.SetOptions(c.urlParams_, opts...)
155629	res, err := c.doRequest("json")
155630	if res != nil && res.StatusCode == http.StatusNotModified {
155631		if res.Body != nil {
155632			res.Body.Close()
155633		}
155634		return nil, &googleapi.Error{
155635			Code:   res.StatusCode,
155636			Header: res.Header,
155637		}
155638	}
155639	if err != nil {
155640		return nil, err
155641	}
155642	defer googleapi.CloseBody(res)
155643	if err := googleapi.CheckResponse(res); err != nil {
155644		return nil, err
155645	}
155646	ret := &ServiceAttachmentList{
155647		ServerResponse: googleapi.ServerResponse{
155648			Header:         res.Header,
155649			HTTPStatusCode: res.StatusCode,
155650		},
155651	}
155652	target := &ret
155653	if err := gensupport.DecodeResponse(target, res); err != nil {
155654		return nil, err
155655	}
155656	return ret, nil
155657	// {
155658	//   "description": "Lists the ServiceAttachments for a project in the given scope.",
155659	//   "httpMethod": "GET",
155660	//   "id": "compute.serviceAttachments.list",
155661	//   "parameterOrder": [
155662	//     "project",
155663	//     "region"
155664	//   ],
155665	//   "parameters": {
155666	//     "filter": {
155667	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
155668	//       "location": "query",
155669	//       "type": "string"
155670	//     },
155671	//     "maxResults": {
155672	//       "default": "500",
155673	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
155674	//       "format": "uint32",
155675	//       "location": "query",
155676	//       "minimum": "0",
155677	//       "type": "integer"
155678	//     },
155679	//     "orderBy": {
155680	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
155681	//       "location": "query",
155682	//       "type": "string"
155683	//     },
155684	//     "pageToken": {
155685	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
155686	//       "location": "query",
155687	//       "type": "string"
155688	//     },
155689	//     "project": {
155690	//       "description": "Project ID for this request.",
155691	//       "location": "path",
155692	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
155693	//       "required": true,
155694	//       "type": "string"
155695	//     },
155696	//     "region": {
155697	//       "description": "Name of the region of this request.",
155698	//       "location": "path",
155699	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
155700	//       "required": true,
155701	//       "type": "string"
155702	//     },
155703	//     "returnPartialSuccess": {
155704	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
155705	//       "location": "query",
155706	//       "type": "boolean"
155707	//     }
155708	//   },
155709	//   "path": "projects/{project}/regions/{region}/serviceAttachments",
155710	//   "response": {
155711	//     "$ref": "ServiceAttachmentList"
155712	//   },
155713	//   "scopes": [
155714	//     "https://www.googleapis.com/auth/cloud-platform",
155715	//     "https://www.googleapis.com/auth/compute",
155716	//     "https://www.googleapis.com/auth/compute.readonly"
155717	//   ]
155718	// }
155719
155720}
155721
155722// Pages invokes f for each page of results.
155723// A non-nil error returned from f will halt the iteration.
155724// The provided context supersedes any context provided to the Context method.
155725func (c *ServiceAttachmentsListCall) Pages(ctx context.Context, f func(*ServiceAttachmentList) error) error {
155726	c.ctx_ = ctx
155727	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
155728	for {
155729		x, err := c.Do()
155730		if err != nil {
155731			return err
155732		}
155733		if err := f(x); err != nil {
155734			return err
155735		}
155736		if x.NextPageToken == "" {
155737			return nil
155738		}
155739		c.PageToken(x.NextPageToken)
155740	}
155741}
155742
155743// method id "compute.serviceAttachments.setIamPolicy":
155744
155745type ServiceAttachmentsSetIamPolicyCall struct {
155746	s                      *Service
155747	project                string
155748	region                 string
155749	resource               string
155750	regionsetpolicyrequest *RegionSetPolicyRequest
155751	urlParams_             gensupport.URLParams
155752	ctx_                   context.Context
155753	header_                http.Header
155754}
155755
155756// SetIamPolicy: Sets the access control policy on the specified
155757// resource. Replaces any existing policy.
155758func (r *ServiceAttachmentsService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *ServiceAttachmentsSetIamPolicyCall {
155759	c := &ServiceAttachmentsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
155760	c.project = project
155761	c.region = region
155762	c.resource = resource
155763	c.regionsetpolicyrequest = regionsetpolicyrequest
155764	return c
155765}
155766
155767// Fields allows partial responses to be retrieved. See
155768// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
155769// for more information.
155770func (c *ServiceAttachmentsSetIamPolicyCall) Fields(s ...googleapi.Field) *ServiceAttachmentsSetIamPolicyCall {
155771	c.urlParams_.Set("fields", googleapi.CombineFields(s))
155772	return c
155773}
155774
155775// Context sets the context to be used in this call's Do method. Any
155776// pending HTTP request will be aborted if the provided context is
155777// canceled.
155778func (c *ServiceAttachmentsSetIamPolicyCall) Context(ctx context.Context) *ServiceAttachmentsSetIamPolicyCall {
155779	c.ctx_ = ctx
155780	return c
155781}
155782
155783// Header returns an http.Header that can be modified by the caller to
155784// add HTTP headers to the request.
155785func (c *ServiceAttachmentsSetIamPolicyCall) Header() http.Header {
155786	if c.header_ == nil {
155787		c.header_ = make(http.Header)
155788	}
155789	return c.header_
155790}
155791
155792func (c *ServiceAttachmentsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
155793	reqHeaders := make(http.Header)
155794	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
155795	for k, v := range c.header_ {
155796		reqHeaders[k] = v
155797	}
155798	reqHeaders.Set("User-Agent", c.s.userAgent())
155799	var body io.Reader = nil
155800	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest)
155801	if err != nil {
155802		return nil, err
155803	}
155804	reqHeaders.Set("Content-Type", "application/json")
155805	c.urlParams_.Set("alt", alt)
155806	c.urlParams_.Set("prettyPrint", "false")
155807	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/serviceAttachments/{resource}/setIamPolicy")
155808	urls += "?" + c.urlParams_.Encode()
155809	req, err := http.NewRequest("POST", urls, body)
155810	if err != nil {
155811		return nil, err
155812	}
155813	req.Header = reqHeaders
155814	googleapi.Expand(req.URL, map[string]string{
155815		"project":  c.project,
155816		"region":   c.region,
155817		"resource": c.resource,
155818	})
155819	return gensupport.SendRequest(c.ctx_, c.s.client, req)
155820}
155821
155822// Do executes the "compute.serviceAttachments.setIamPolicy" call.
155823// Exactly one of *Policy or error will be non-nil. Any non-2xx status
155824// code is an error. Response headers are in either
155825// *Policy.ServerResponse.Header or (if a response was returned at all)
155826// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
155827// check whether the returned error was because http.StatusNotModified
155828// was returned.
155829func (c *ServiceAttachmentsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
155830	gensupport.SetOptions(c.urlParams_, opts...)
155831	res, err := c.doRequest("json")
155832	if res != nil && res.StatusCode == http.StatusNotModified {
155833		if res.Body != nil {
155834			res.Body.Close()
155835		}
155836		return nil, &googleapi.Error{
155837			Code:   res.StatusCode,
155838			Header: res.Header,
155839		}
155840	}
155841	if err != nil {
155842		return nil, err
155843	}
155844	defer googleapi.CloseBody(res)
155845	if err := googleapi.CheckResponse(res); err != nil {
155846		return nil, err
155847	}
155848	ret := &Policy{
155849		ServerResponse: googleapi.ServerResponse{
155850			Header:         res.Header,
155851			HTTPStatusCode: res.StatusCode,
155852		},
155853	}
155854	target := &ret
155855	if err := gensupport.DecodeResponse(target, res); err != nil {
155856		return nil, err
155857	}
155858	return ret, nil
155859	// {
155860	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
155861	//   "httpMethod": "POST",
155862	//   "id": "compute.serviceAttachments.setIamPolicy",
155863	//   "parameterOrder": [
155864	//     "project",
155865	//     "region",
155866	//     "resource"
155867	//   ],
155868	//   "parameters": {
155869	//     "project": {
155870	//       "description": "Project ID for this request.",
155871	//       "location": "path",
155872	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
155873	//       "required": true,
155874	//       "type": "string"
155875	//     },
155876	//     "region": {
155877	//       "description": "The name of the region for this request.",
155878	//       "location": "path",
155879	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
155880	//       "required": true,
155881	//       "type": "string"
155882	//     },
155883	//     "resource": {
155884	//       "description": "Name or id of the resource for this request.",
155885	//       "location": "path",
155886	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
155887	//       "required": true,
155888	//       "type": "string"
155889	//     }
155890	//   },
155891	//   "path": "projects/{project}/regions/{region}/serviceAttachments/{resource}/setIamPolicy",
155892	//   "request": {
155893	//     "$ref": "RegionSetPolicyRequest"
155894	//   },
155895	//   "response": {
155896	//     "$ref": "Policy"
155897	//   },
155898	//   "scopes": [
155899	//     "https://www.googleapis.com/auth/cloud-platform",
155900	//     "https://www.googleapis.com/auth/compute"
155901	//   ]
155902	// }
155903
155904}
155905
155906// method id "compute.serviceAttachments.testIamPermissions":
155907
155908type ServiceAttachmentsTestIamPermissionsCall struct {
155909	s                      *Service
155910	project                string
155911	region                 string
155912	resource               string
155913	testpermissionsrequest *TestPermissionsRequest
155914	urlParams_             gensupport.URLParams
155915	ctx_                   context.Context
155916	header_                http.Header
155917}
155918
155919// TestIamPermissions: Returns permissions that a caller has on the
155920// specified resource.
155921func (r *ServiceAttachmentsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *ServiceAttachmentsTestIamPermissionsCall {
155922	c := &ServiceAttachmentsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
155923	c.project = project
155924	c.region = region
155925	c.resource = resource
155926	c.testpermissionsrequest = testpermissionsrequest
155927	return c
155928}
155929
155930// Fields allows partial responses to be retrieved. See
155931// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
155932// for more information.
155933func (c *ServiceAttachmentsTestIamPermissionsCall) Fields(s ...googleapi.Field) *ServiceAttachmentsTestIamPermissionsCall {
155934	c.urlParams_.Set("fields", googleapi.CombineFields(s))
155935	return c
155936}
155937
155938// Context sets the context to be used in this call's Do method. Any
155939// pending HTTP request will be aborted if the provided context is
155940// canceled.
155941func (c *ServiceAttachmentsTestIamPermissionsCall) Context(ctx context.Context) *ServiceAttachmentsTestIamPermissionsCall {
155942	c.ctx_ = ctx
155943	return c
155944}
155945
155946// Header returns an http.Header that can be modified by the caller to
155947// add HTTP headers to the request.
155948func (c *ServiceAttachmentsTestIamPermissionsCall) Header() http.Header {
155949	if c.header_ == nil {
155950		c.header_ = make(http.Header)
155951	}
155952	return c.header_
155953}
155954
155955func (c *ServiceAttachmentsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
155956	reqHeaders := make(http.Header)
155957	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
155958	for k, v := range c.header_ {
155959		reqHeaders[k] = v
155960	}
155961	reqHeaders.Set("User-Agent", c.s.userAgent())
155962	var body io.Reader = nil
155963	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
155964	if err != nil {
155965		return nil, err
155966	}
155967	reqHeaders.Set("Content-Type", "application/json")
155968	c.urlParams_.Set("alt", alt)
155969	c.urlParams_.Set("prettyPrint", "false")
155970	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/serviceAttachments/{resource}/testIamPermissions")
155971	urls += "?" + c.urlParams_.Encode()
155972	req, err := http.NewRequest("POST", urls, body)
155973	if err != nil {
155974		return nil, err
155975	}
155976	req.Header = reqHeaders
155977	googleapi.Expand(req.URL, map[string]string{
155978		"project":  c.project,
155979		"region":   c.region,
155980		"resource": c.resource,
155981	})
155982	return gensupport.SendRequest(c.ctx_, c.s.client, req)
155983}
155984
155985// Do executes the "compute.serviceAttachments.testIamPermissions" call.
155986// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
155987// non-2xx status code is an error. Response headers are in either
155988// *TestPermissionsResponse.ServerResponse.Header or (if a response was
155989// returned at all) in error.(*googleapi.Error).Header. Use
155990// googleapi.IsNotModified to check whether the returned error was
155991// because http.StatusNotModified was returned.
155992func (c *ServiceAttachmentsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
155993	gensupport.SetOptions(c.urlParams_, opts...)
155994	res, err := c.doRequest("json")
155995	if res != nil && res.StatusCode == http.StatusNotModified {
155996		if res.Body != nil {
155997			res.Body.Close()
155998		}
155999		return nil, &googleapi.Error{
156000			Code:   res.StatusCode,
156001			Header: res.Header,
156002		}
156003	}
156004	if err != nil {
156005		return nil, err
156006	}
156007	defer googleapi.CloseBody(res)
156008	if err := googleapi.CheckResponse(res); err != nil {
156009		return nil, err
156010	}
156011	ret := &TestPermissionsResponse{
156012		ServerResponse: googleapi.ServerResponse{
156013			Header:         res.Header,
156014			HTTPStatusCode: res.StatusCode,
156015		},
156016	}
156017	target := &ret
156018	if err := gensupport.DecodeResponse(target, res); err != nil {
156019		return nil, err
156020	}
156021	return ret, nil
156022	// {
156023	//   "description": "Returns permissions that a caller has on the specified resource.",
156024	//   "httpMethod": "POST",
156025	//   "id": "compute.serviceAttachments.testIamPermissions",
156026	//   "parameterOrder": [
156027	//     "project",
156028	//     "region",
156029	//     "resource"
156030	//   ],
156031	//   "parameters": {
156032	//     "project": {
156033	//       "description": "Project ID for this request.",
156034	//       "location": "path",
156035	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
156036	//       "required": true,
156037	//       "type": "string"
156038	//     },
156039	//     "region": {
156040	//       "description": "The name of the region for this request.",
156041	//       "location": "path",
156042	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
156043	//       "required": true,
156044	//       "type": "string"
156045	//     },
156046	//     "resource": {
156047	//       "description": "Name or id of the resource for this request.",
156048	//       "location": "path",
156049	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
156050	//       "required": true,
156051	//       "type": "string"
156052	//     }
156053	//   },
156054	//   "path": "projects/{project}/regions/{region}/serviceAttachments/{resource}/testIamPermissions",
156055	//   "request": {
156056	//     "$ref": "TestPermissionsRequest"
156057	//   },
156058	//   "response": {
156059	//     "$ref": "TestPermissionsResponse"
156060	//   },
156061	//   "scopes": [
156062	//     "https://www.googleapis.com/auth/cloud-platform",
156063	//     "https://www.googleapis.com/auth/compute",
156064	//     "https://www.googleapis.com/auth/compute.readonly"
156065	//   ]
156066	// }
156067
156068}
156069
156070// method id "compute.snapshots.delete":
156071
156072type SnapshotsDeleteCall struct {
156073	s          *Service
156074	project    string
156075	snapshot   string
156076	urlParams_ gensupport.URLParams
156077	ctx_       context.Context
156078	header_    http.Header
156079}
156080
156081// Delete: Deletes the specified Snapshot resource. Keep in mind that
156082// deleting a single snapshot might not necessarily delete all the data
156083// on that snapshot. If any data on the snapshot that is marked for
156084// deletion is needed for subsequent snapshots, the data will be moved
156085// to the next corresponding snapshot.
156086//
156087// For more information, see Deleting snapshots.
156088// For details, see https://cloud.google.com/compute/docs/reference/latest/snapshots/delete
156089func (r *SnapshotsService) Delete(project string, snapshot string) *SnapshotsDeleteCall {
156090	c := &SnapshotsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
156091	c.project = project
156092	c.snapshot = snapshot
156093	return c
156094}
156095
156096// RequestId sets the optional parameter "requestId": An optional
156097// request ID to identify requests. Specify a unique request ID so that
156098// if you must retry your request, the server will know to ignore the
156099// request if it has already been completed.
156100//
156101// For example, consider a situation where you make an initial request
156102// and the request times out. If you make the request again with the
156103// same request ID, the server can check if original operation with the
156104// same request ID was received, and if so, will ignore the second
156105// request. This prevents clients from accidentally creating duplicate
156106// commitments.
156107//
156108// The request ID must be a valid UUID with the exception that zero UUID
156109// is not supported (00000000-0000-0000-0000-000000000000).
156110func (c *SnapshotsDeleteCall) RequestId(requestId string) *SnapshotsDeleteCall {
156111	c.urlParams_.Set("requestId", requestId)
156112	return c
156113}
156114
156115// Fields allows partial responses to be retrieved. See
156116// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
156117// for more information.
156118func (c *SnapshotsDeleteCall) Fields(s ...googleapi.Field) *SnapshotsDeleteCall {
156119	c.urlParams_.Set("fields", googleapi.CombineFields(s))
156120	return c
156121}
156122
156123// Context sets the context to be used in this call's Do method. Any
156124// pending HTTP request will be aborted if the provided context is
156125// canceled.
156126func (c *SnapshotsDeleteCall) Context(ctx context.Context) *SnapshotsDeleteCall {
156127	c.ctx_ = ctx
156128	return c
156129}
156130
156131// Header returns an http.Header that can be modified by the caller to
156132// add HTTP headers to the request.
156133func (c *SnapshotsDeleteCall) Header() http.Header {
156134	if c.header_ == nil {
156135		c.header_ = make(http.Header)
156136	}
156137	return c.header_
156138}
156139
156140func (c *SnapshotsDeleteCall) doRequest(alt string) (*http.Response, error) {
156141	reqHeaders := make(http.Header)
156142	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
156143	for k, v := range c.header_ {
156144		reqHeaders[k] = v
156145	}
156146	reqHeaders.Set("User-Agent", c.s.userAgent())
156147	var body io.Reader = nil
156148	c.urlParams_.Set("alt", alt)
156149	c.urlParams_.Set("prettyPrint", "false")
156150	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/snapshots/{snapshot}")
156151	urls += "?" + c.urlParams_.Encode()
156152	req, err := http.NewRequest("DELETE", urls, body)
156153	if err != nil {
156154		return nil, err
156155	}
156156	req.Header = reqHeaders
156157	googleapi.Expand(req.URL, map[string]string{
156158		"project":  c.project,
156159		"snapshot": c.snapshot,
156160	})
156161	return gensupport.SendRequest(c.ctx_, c.s.client, req)
156162}
156163
156164// Do executes the "compute.snapshots.delete" call.
156165// Exactly one of *Operation or error will be non-nil. Any non-2xx
156166// status code is an error. Response headers are in either
156167// *Operation.ServerResponse.Header or (if a response was returned at
156168// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
156169// to check whether the returned error was because
156170// http.StatusNotModified was returned.
156171func (c *SnapshotsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
156172	gensupport.SetOptions(c.urlParams_, opts...)
156173	res, err := c.doRequest("json")
156174	if res != nil && res.StatusCode == http.StatusNotModified {
156175		if res.Body != nil {
156176			res.Body.Close()
156177		}
156178		return nil, &googleapi.Error{
156179			Code:   res.StatusCode,
156180			Header: res.Header,
156181		}
156182	}
156183	if err != nil {
156184		return nil, err
156185	}
156186	defer googleapi.CloseBody(res)
156187	if err := googleapi.CheckResponse(res); err != nil {
156188		return nil, err
156189	}
156190	ret := &Operation{
156191		ServerResponse: googleapi.ServerResponse{
156192			Header:         res.Header,
156193			HTTPStatusCode: res.StatusCode,
156194		},
156195	}
156196	target := &ret
156197	if err := gensupport.DecodeResponse(target, res); err != nil {
156198		return nil, err
156199	}
156200	return ret, nil
156201	// {
156202	//   "description": "Deletes the specified Snapshot resource. Keep in mind that deleting a single snapshot might not necessarily delete all the data on that snapshot. If any data on the snapshot that is marked for deletion is needed for subsequent snapshots, the data will be moved to the next corresponding snapshot.\n\nFor more information, see Deleting snapshots.",
156203	//   "httpMethod": "DELETE",
156204	//   "id": "compute.snapshots.delete",
156205	//   "parameterOrder": [
156206	//     "project",
156207	//     "snapshot"
156208	//   ],
156209	//   "parameters": {
156210	//     "project": {
156211	//       "description": "Project ID for this request.",
156212	//       "location": "path",
156213	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
156214	//       "required": true,
156215	//       "type": "string"
156216	//     },
156217	//     "requestId": {
156218	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
156219	//       "location": "query",
156220	//       "type": "string"
156221	//     },
156222	//     "snapshot": {
156223	//       "description": "Name of the Snapshot resource to delete.",
156224	//       "location": "path",
156225	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
156226	//       "required": true,
156227	//       "type": "string"
156228	//     }
156229	//   },
156230	//   "path": "projects/{project}/global/snapshots/{snapshot}",
156231	//   "response": {
156232	//     "$ref": "Operation"
156233	//   },
156234	//   "scopes": [
156235	//     "https://www.googleapis.com/auth/cloud-platform",
156236	//     "https://www.googleapis.com/auth/compute"
156237	//   ]
156238	// }
156239
156240}
156241
156242// method id "compute.snapshots.get":
156243
156244type SnapshotsGetCall struct {
156245	s            *Service
156246	project      string
156247	snapshot     string
156248	urlParams_   gensupport.URLParams
156249	ifNoneMatch_ string
156250	ctx_         context.Context
156251	header_      http.Header
156252}
156253
156254// Get: Returns the specified Snapshot resource. Gets a list of
156255// available snapshots by making a list() request.
156256// For details, see https://cloud.google.com/compute/docs/reference/latest/snapshots/get
156257func (r *SnapshotsService) Get(project string, snapshot string) *SnapshotsGetCall {
156258	c := &SnapshotsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
156259	c.project = project
156260	c.snapshot = snapshot
156261	return c
156262}
156263
156264// Fields allows partial responses to be retrieved. See
156265// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
156266// for more information.
156267func (c *SnapshotsGetCall) Fields(s ...googleapi.Field) *SnapshotsGetCall {
156268	c.urlParams_.Set("fields", googleapi.CombineFields(s))
156269	return c
156270}
156271
156272// IfNoneMatch sets the optional parameter which makes the operation
156273// fail if the object's ETag matches the given value. This is useful for
156274// getting updates only after the object has changed since the last
156275// request. Use googleapi.IsNotModified to check whether the response
156276// error from Do is the result of In-None-Match.
156277func (c *SnapshotsGetCall) IfNoneMatch(entityTag string) *SnapshotsGetCall {
156278	c.ifNoneMatch_ = entityTag
156279	return c
156280}
156281
156282// Context sets the context to be used in this call's Do method. Any
156283// pending HTTP request will be aborted if the provided context is
156284// canceled.
156285func (c *SnapshotsGetCall) Context(ctx context.Context) *SnapshotsGetCall {
156286	c.ctx_ = ctx
156287	return c
156288}
156289
156290// Header returns an http.Header that can be modified by the caller to
156291// add HTTP headers to the request.
156292func (c *SnapshotsGetCall) Header() http.Header {
156293	if c.header_ == nil {
156294		c.header_ = make(http.Header)
156295	}
156296	return c.header_
156297}
156298
156299func (c *SnapshotsGetCall) doRequest(alt string) (*http.Response, error) {
156300	reqHeaders := make(http.Header)
156301	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
156302	for k, v := range c.header_ {
156303		reqHeaders[k] = v
156304	}
156305	reqHeaders.Set("User-Agent", c.s.userAgent())
156306	if c.ifNoneMatch_ != "" {
156307		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
156308	}
156309	var body io.Reader = nil
156310	c.urlParams_.Set("alt", alt)
156311	c.urlParams_.Set("prettyPrint", "false")
156312	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/snapshots/{snapshot}")
156313	urls += "?" + c.urlParams_.Encode()
156314	req, err := http.NewRequest("GET", urls, body)
156315	if err != nil {
156316		return nil, err
156317	}
156318	req.Header = reqHeaders
156319	googleapi.Expand(req.URL, map[string]string{
156320		"project":  c.project,
156321		"snapshot": c.snapshot,
156322	})
156323	return gensupport.SendRequest(c.ctx_, c.s.client, req)
156324}
156325
156326// Do executes the "compute.snapshots.get" call.
156327// Exactly one of *Snapshot or error will be non-nil. Any non-2xx status
156328// code is an error. Response headers are in either
156329// *Snapshot.ServerResponse.Header or (if a response was returned at
156330// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
156331// to check whether the returned error was because
156332// http.StatusNotModified was returned.
156333func (c *SnapshotsGetCall) Do(opts ...googleapi.CallOption) (*Snapshot, error) {
156334	gensupport.SetOptions(c.urlParams_, opts...)
156335	res, err := c.doRequest("json")
156336	if res != nil && res.StatusCode == http.StatusNotModified {
156337		if res.Body != nil {
156338			res.Body.Close()
156339		}
156340		return nil, &googleapi.Error{
156341			Code:   res.StatusCode,
156342			Header: res.Header,
156343		}
156344	}
156345	if err != nil {
156346		return nil, err
156347	}
156348	defer googleapi.CloseBody(res)
156349	if err := googleapi.CheckResponse(res); err != nil {
156350		return nil, err
156351	}
156352	ret := &Snapshot{
156353		ServerResponse: googleapi.ServerResponse{
156354			Header:         res.Header,
156355			HTTPStatusCode: res.StatusCode,
156356		},
156357	}
156358	target := &ret
156359	if err := gensupport.DecodeResponse(target, res); err != nil {
156360		return nil, err
156361	}
156362	return ret, nil
156363	// {
156364	//   "description": "Returns the specified Snapshot resource. Gets a list of available snapshots by making a list() request.",
156365	//   "httpMethod": "GET",
156366	//   "id": "compute.snapshots.get",
156367	//   "parameterOrder": [
156368	//     "project",
156369	//     "snapshot"
156370	//   ],
156371	//   "parameters": {
156372	//     "project": {
156373	//       "description": "Project ID for this request.",
156374	//       "location": "path",
156375	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
156376	//       "required": true,
156377	//       "type": "string"
156378	//     },
156379	//     "snapshot": {
156380	//       "description": "Name of the Snapshot resource to return.",
156381	//       "location": "path",
156382	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
156383	//       "required": true,
156384	//       "type": "string"
156385	//     }
156386	//   },
156387	//   "path": "projects/{project}/global/snapshots/{snapshot}",
156388	//   "response": {
156389	//     "$ref": "Snapshot"
156390	//   },
156391	//   "scopes": [
156392	//     "https://www.googleapis.com/auth/cloud-platform",
156393	//     "https://www.googleapis.com/auth/compute",
156394	//     "https://www.googleapis.com/auth/compute.readonly"
156395	//   ]
156396	// }
156397
156398}
156399
156400// method id "compute.snapshots.getIamPolicy":
156401
156402type SnapshotsGetIamPolicyCall struct {
156403	s            *Service
156404	project      string
156405	resource     string
156406	urlParams_   gensupport.URLParams
156407	ifNoneMatch_ string
156408	ctx_         context.Context
156409	header_      http.Header
156410}
156411
156412// GetIamPolicy: Gets the access control policy for a resource. May be
156413// empty if no such policy or resource exists.
156414func (r *SnapshotsService) GetIamPolicy(project string, resource string) *SnapshotsGetIamPolicyCall {
156415	c := &SnapshotsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
156416	c.project = project
156417	c.resource = resource
156418	return c
156419}
156420
156421// OptionsRequestedPolicyVersion sets the optional parameter
156422// "optionsRequestedPolicyVersion": Requested IAM Policy version.
156423func (c *SnapshotsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *SnapshotsGetIamPolicyCall {
156424	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
156425	return c
156426}
156427
156428// Fields allows partial responses to be retrieved. See
156429// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
156430// for more information.
156431func (c *SnapshotsGetIamPolicyCall) Fields(s ...googleapi.Field) *SnapshotsGetIamPolicyCall {
156432	c.urlParams_.Set("fields", googleapi.CombineFields(s))
156433	return c
156434}
156435
156436// IfNoneMatch sets the optional parameter which makes the operation
156437// fail if the object's ETag matches the given value. This is useful for
156438// getting updates only after the object has changed since the last
156439// request. Use googleapi.IsNotModified to check whether the response
156440// error from Do is the result of In-None-Match.
156441func (c *SnapshotsGetIamPolicyCall) IfNoneMatch(entityTag string) *SnapshotsGetIamPolicyCall {
156442	c.ifNoneMatch_ = entityTag
156443	return c
156444}
156445
156446// Context sets the context to be used in this call's Do method. Any
156447// pending HTTP request will be aborted if the provided context is
156448// canceled.
156449func (c *SnapshotsGetIamPolicyCall) Context(ctx context.Context) *SnapshotsGetIamPolicyCall {
156450	c.ctx_ = ctx
156451	return c
156452}
156453
156454// Header returns an http.Header that can be modified by the caller to
156455// add HTTP headers to the request.
156456func (c *SnapshotsGetIamPolicyCall) Header() http.Header {
156457	if c.header_ == nil {
156458		c.header_ = make(http.Header)
156459	}
156460	return c.header_
156461}
156462
156463func (c *SnapshotsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
156464	reqHeaders := make(http.Header)
156465	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
156466	for k, v := range c.header_ {
156467		reqHeaders[k] = v
156468	}
156469	reqHeaders.Set("User-Agent", c.s.userAgent())
156470	if c.ifNoneMatch_ != "" {
156471		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
156472	}
156473	var body io.Reader = nil
156474	c.urlParams_.Set("alt", alt)
156475	c.urlParams_.Set("prettyPrint", "false")
156476	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/snapshots/{resource}/getIamPolicy")
156477	urls += "?" + c.urlParams_.Encode()
156478	req, err := http.NewRequest("GET", urls, body)
156479	if err != nil {
156480		return nil, err
156481	}
156482	req.Header = reqHeaders
156483	googleapi.Expand(req.URL, map[string]string{
156484		"project":  c.project,
156485		"resource": c.resource,
156486	})
156487	return gensupport.SendRequest(c.ctx_, c.s.client, req)
156488}
156489
156490// Do executes the "compute.snapshots.getIamPolicy" call.
156491// Exactly one of *Policy or error will be non-nil. Any non-2xx status
156492// code is an error. Response headers are in either
156493// *Policy.ServerResponse.Header or (if a response was returned at all)
156494// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
156495// check whether the returned error was because http.StatusNotModified
156496// was returned.
156497func (c *SnapshotsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
156498	gensupport.SetOptions(c.urlParams_, opts...)
156499	res, err := c.doRequest("json")
156500	if res != nil && res.StatusCode == http.StatusNotModified {
156501		if res.Body != nil {
156502			res.Body.Close()
156503		}
156504		return nil, &googleapi.Error{
156505			Code:   res.StatusCode,
156506			Header: res.Header,
156507		}
156508	}
156509	if err != nil {
156510		return nil, err
156511	}
156512	defer googleapi.CloseBody(res)
156513	if err := googleapi.CheckResponse(res); err != nil {
156514		return nil, err
156515	}
156516	ret := &Policy{
156517		ServerResponse: googleapi.ServerResponse{
156518			Header:         res.Header,
156519			HTTPStatusCode: res.StatusCode,
156520		},
156521	}
156522	target := &ret
156523	if err := gensupport.DecodeResponse(target, res); err != nil {
156524		return nil, err
156525	}
156526	return ret, nil
156527	// {
156528	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
156529	//   "httpMethod": "GET",
156530	//   "id": "compute.snapshots.getIamPolicy",
156531	//   "parameterOrder": [
156532	//     "project",
156533	//     "resource"
156534	//   ],
156535	//   "parameters": {
156536	//     "optionsRequestedPolicyVersion": {
156537	//       "description": "Requested IAM Policy version.",
156538	//       "format": "int32",
156539	//       "location": "query",
156540	//       "type": "integer"
156541	//     },
156542	//     "project": {
156543	//       "description": "Project ID for this request.",
156544	//       "location": "path",
156545	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
156546	//       "required": true,
156547	//       "type": "string"
156548	//     },
156549	//     "resource": {
156550	//       "description": "Name or id of the resource for this request.",
156551	//       "location": "path",
156552	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
156553	//       "required": true,
156554	//       "type": "string"
156555	//     }
156556	//   },
156557	//   "path": "projects/{project}/global/snapshots/{resource}/getIamPolicy",
156558	//   "response": {
156559	//     "$ref": "Policy"
156560	//   },
156561	//   "scopes": [
156562	//     "https://www.googleapis.com/auth/cloud-platform",
156563	//     "https://www.googleapis.com/auth/compute",
156564	//     "https://www.googleapis.com/auth/compute.readonly"
156565	//   ]
156566	// }
156567
156568}
156569
156570// method id "compute.snapshots.insert":
156571
156572type SnapshotsInsertCall struct {
156573	s          *Service
156574	project    string
156575	snapshot   *Snapshot
156576	urlParams_ gensupport.URLParams
156577	ctx_       context.Context
156578	header_    http.Header
156579}
156580
156581// Insert: Creates a snapshot in the specified project using the data
156582// included in the request.
156583func (r *SnapshotsService) Insert(project string, snapshot *Snapshot) *SnapshotsInsertCall {
156584	c := &SnapshotsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
156585	c.project = project
156586	c.snapshot = snapshot
156587	return c
156588}
156589
156590// RequestId sets the optional parameter "requestId": An optional
156591// request ID to identify requests. Specify a unique request ID so that
156592// if you must retry your request, the server will know to ignore the
156593// request if it has already been completed.
156594//
156595// For example, consider a situation where you make an initial request
156596// and the request times out. If you make the request again with the
156597// same request ID, the server can check if original operation with the
156598// same request ID was received, and if so, will ignore the second
156599// request. This prevents clients from accidentally creating duplicate
156600// commitments.
156601//
156602// The request ID must be a valid UUID with the exception that zero UUID
156603// is not supported (00000000-0000-0000-0000-000000000000).
156604func (c *SnapshotsInsertCall) RequestId(requestId string) *SnapshotsInsertCall {
156605	c.urlParams_.Set("requestId", requestId)
156606	return c
156607}
156608
156609// Fields allows partial responses to be retrieved. See
156610// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
156611// for more information.
156612func (c *SnapshotsInsertCall) Fields(s ...googleapi.Field) *SnapshotsInsertCall {
156613	c.urlParams_.Set("fields", googleapi.CombineFields(s))
156614	return c
156615}
156616
156617// Context sets the context to be used in this call's Do method. Any
156618// pending HTTP request will be aborted if the provided context is
156619// canceled.
156620func (c *SnapshotsInsertCall) Context(ctx context.Context) *SnapshotsInsertCall {
156621	c.ctx_ = ctx
156622	return c
156623}
156624
156625// Header returns an http.Header that can be modified by the caller to
156626// add HTTP headers to the request.
156627func (c *SnapshotsInsertCall) Header() http.Header {
156628	if c.header_ == nil {
156629		c.header_ = make(http.Header)
156630	}
156631	return c.header_
156632}
156633
156634func (c *SnapshotsInsertCall) doRequest(alt string) (*http.Response, error) {
156635	reqHeaders := make(http.Header)
156636	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
156637	for k, v := range c.header_ {
156638		reqHeaders[k] = v
156639	}
156640	reqHeaders.Set("User-Agent", c.s.userAgent())
156641	var body io.Reader = nil
156642	body, err := googleapi.WithoutDataWrapper.JSONReader(c.snapshot)
156643	if err != nil {
156644		return nil, err
156645	}
156646	reqHeaders.Set("Content-Type", "application/json")
156647	c.urlParams_.Set("alt", alt)
156648	c.urlParams_.Set("prettyPrint", "false")
156649	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/snapshots")
156650	urls += "?" + c.urlParams_.Encode()
156651	req, err := http.NewRequest("POST", urls, body)
156652	if err != nil {
156653		return nil, err
156654	}
156655	req.Header = reqHeaders
156656	googleapi.Expand(req.URL, map[string]string{
156657		"project": c.project,
156658	})
156659	return gensupport.SendRequest(c.ctx_, c.s.client, req)
156660}
156661
156662// Do executes the "compute.snapshots.insert" call.
156663// Exactly one of *Operation or error will be non-nil. Any non-2xx
156664// status code is an error. Response headers are in either
156665// *Operation.ServerResponse.Header or (if a response was returned at
156666// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
156667// to check whether the returned error was because
156668// http.StatusNotModified was returned.
156669func (c *SnapshotsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
156670	gensupport.SetOptions(c.urlParams_, opts...)
156671	res, err := c.doRequest("json")
156672	if res != nil && res.StatusCode == http.StatusNotModified {
156673		if res.Body != nil {
156674			res.Body.Close()
156675		}
156676		return nil, &googleapi.Error{
156677			Code:   res.StatusCode,
156678			Header: res.Header,
156679		}
156680	}
156681	if err != nil {
156682		return nil, err
156683	}
156684	defer googleapi.CloseBody(res)
156685	if err := googleapi.CheckResponse(res); err != nil {
156686		return nil, err
156687	}
156688	ret := &Operation{
156689		ServerResponse: googleapi.ServerResponse{
156690			Header:         res.Header,
156691			HTTPStatusCode: res.StatusCode,
156692		},
156693	}
156694	target := &ret
156695	if err := gensupport.DecodeResponse(target, res); err != nil {
156696		return nil, err
156697	}
156698	return ret, nil
156699	// {
156700	//   "description": "Creates a snapshot in the specified project using the data included in the request.",
156701	//   "httpMethod": "POST",
156702	//   "id": "compute.snapshots.insert",
156703	//   "parameterOrder": [
156704	//     "project"
156705	//   ],
156706	//   "parameters": {
156707	//     "project": {
156708	//       "description": "Project ID for this request.",
156709	//       "location": "path",
156710	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
156711	//       "required": true,
156712	//       "type": "string"
156713	//     },
156714	//     "requestId": {
156715	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
156716	//       "location": "query",
156717	//       "type": "string"
156718	//     }
156719	//   },
156720	//   "path": "projects/{project}/global/snapshots",
156721	//   "request": {
156722	//     "$ref": "Snapshot"
156723	//   },
156724	//   "response": {
156725	//     "$ref": "Operation"
156726	//   },
156727	//   "scopes": [
156728	//     "https://www.googleapis.com/auth/cloud-platform",
156729	//     "https://www.googleapis.com/auth/compute"
156730	//   ]
156731	// }
156732
156733}
156734
156735// method id "compute.snapshots.list":
156736
156737type SnapshotsListCall struct {
156738	s            *Service
156739	project      string
156740	urlParams_   gensupport.URLParams
156741	ifNoneMatch_ string
156742	ctx_         context.Context
156743	header_      http.Header
156744}
156745
156746// List: Retrieves the list of Snapshot resources contained within the
156747// specified project.
156748// For details, see https://cloud.google.com/compute/docs/reference/latest/snapshots/list
156749func (r *SnapshotsService) List(project string) *SnapshotsListCall {
156750	c := &SnapshotsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
156751	c.project = project
156752	return c
156753}
156754
156755// Filter sets the optional parameter "filter": A filter expression that
156756// filters resources listed in the response. The expression must specify
156757// the field name, a comparison operator, and the value that you want to
156758// use for filtering. The value must be a string, a number, or a
156759// boolean. The comparison operator must be either `=`, `!=`, `>`, or
156760// `<`.
156761//
156762// For example, if you are filtering Compute Engine instances, you can
156763// exclude instances named `example-instance` by specifying `name !=
156764// example-instance`.
156765//
156766// You can also filter nested fields. For example, you could specify
156767// `scheduling.automaticRestart = false` to include instances only if
156768// they are not scheduled for automatic restarts. You can use filtering
156769// on nested fields to filter based on resource labels.
156770//
156771// To filter on multiple expressions, provide each separate expression
156772// within parentheses. For example: ``` (scheduling.automaticRestart =
156773// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
156774// is an `AND` expression. However, you can include `AND` and `OR`
156775// expressions explicitly. For example: ``` (cpuPlatform = "Intel
156776// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
156777// (scheduling.automaticRestart = true) ```
156778func (c *SnapshotsListCall) Filter(filter string) *SnapshotsListCall {
156779	c.urlParams_.Set("filter", filter)
156780	return c
156781}
156782
156783// MaxResults sets the optional parameter "maxResults": The maximum
156784// number of results per page that should be returned. If the number of
156785// available results is larger than `maxResults`, Compute Engine returns
156786// a `nextPageToken` that can be used to get the next page of results in
156787// subsequent list requests. Acceptable values are `0` to `500`,
156788// inclusive. (Default: `500`)
156789func (c *SnapshotsListCall) MaxResults(maxResults int64) *SnapshotsListCall {
156790	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
156791	return c
156792}
156793
156794// OrderBy sets the optional parameter "orderBy": Sorts list results by
156795// a certain order. By default, results are returned in alphanumerical
156796// order based on the resource name.
156797//
156798// You can also sort results in descending order based on the creation
156799// timestamp using `orderBy="creationTimestamp desc". This sorts
156800// results based on the `creationTimestamp` field in reverse
156801// chronological order (newest result first). Use this to sort resources
156802// like operations so that the newest operation is returned
156803// first.
156804//
156805// Currently, only sorting by `name` or `creationTimestamp desc` is
156806// supported.
156807func (c *SnapshotsListCall) OrderBy(orderBy string) *SnapshotsListCall {
156808	c.urlParams_.Set("orderBy", orderBy)
156809	return c
156810}
156811
156812// PageToken sets the optional parameter "pageToken": Specifies a page
156813// token to use. Set `pageToken` to the `nextPageToken` returned by a
156814// previous list request to get the next page of results.
156815func (c *SnapshotsListCall) PageToken(pageToken string) *SnapshotsListCall {
156816	c.urlParams_.Set("pageToken", pageToken)
156817	return c
156818}
156819
156820// ReturnPartialSuccess sets the optional parameter
156821// "returnPartialSuccess": Opt-in for partial success behavior which
156822// provides partial results in case of failure. The default value is
156823// false.
156824func (c *SnapshotsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SnapshotsListCall {
156825	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
156826	return c
156827}
156828
156829// Fields allows partial responses to be retrieved. See
156830// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
156831// for more information.
156832func (c *SnapshotsListCall) Fields(s ...googleapi.Field) *SnapshotsListCall {
156833	c.urlParams_.Set("fields", googleapi.CombineFields(s))
156834	return c
156835}
156836
156837// IfNoneMatch sets the optional parameter which makes the operation
156838// fail if the object's ETag matches the given value. This is useful for
156839// getting updates only after the object has changed since the last
156840// request. Use googleapi.IsNotModified to check whether the response
156841// error from Do is the result of In-None-Match.
156842func (c *SnapshotsListCall) IfNoneMatch(entityTag string) *SnapshotsListCall {
156843	c.ifNoneMatch_ = entityTag
156844	return c
156845}
156846
156847// Context sets the context to be used in this call's Do method. Any
156848// pending HTTP request will be aborted if the provided context is
156849// canceled.
156850func (c *SnapshotsListCall) Context(ctx context.Context) *SnapshotsListCall {
156851	c.ctx_ = ctx
156852	return c
156853}
156854
156855// Header returns an http.Header that can be modified by the caller to
156856// add HTTP headers to the request.
156857func (c *SnapshotsListCall) Header() http.Header {
156858	if c.header_ == nil {
156859		c.header_ = make(http.Header)
156860	}
156861	return c.header_
156862}
156863
156864func (c *SnapshotsListCall) doRequest(alt string) (*http.Response, error) {
156865	reqHeaders := make(http.Header)
156866	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
156867	for k, v := range c.header_ {
156868		reqHeaders[k] = v
156869	}
156870	reqHeaders.Set("User-Agent", c.s.userAgent())
156871	if c.ifNoneMatch_ != "" {
156872		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
156873	}
156874	var body io.Reader = nil
156875	c.urlParams_.Set("alt", alt)
156876	c.urlParams_.Set("prettyPrint", "false")
156877	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/snapshots")
156878	urls += "?" + c.urlParams_.Encode()
156879	req, err := http.NewRequest("GET", urls, body)
156880	if err != nil {
156881		return nil, err
156882	}
156883	req.Header = reqHeaders
156884	googleapi.Expand(req.URL, map[string]string{
156885		"project": c.project,
156886	})
156887	return gensupport.SendRequest(c.ctx_, c.s.client, req)
156888}
156889
156890// Do executes the "compute.snapshots.list" call.
156891// Exactly one of *SnapshotList or error will be non-nil. Any non-2xx
156892// status code is an error. Response headers are in either
156893// *SnapshotList.ServerResponse.Header or (if a response was returned at
156894// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
156895// to check whether the returned error was because
156896// http.StatusNotModified was returned.
156897func (c *SnapshotsListCall) Do(opts ...googleapi.CallOption) (*SnapshotList, error) {
156898	gensupport.SetOptions(c.urlParams_, opts...)
156899	res, err := c.doRequest("json")
156900	if res != nil && res.StatusCode == http.StatusNotModified {
156901		if res.Body != nil {
156902			res.Body.Close()
156903		}
156904		return nil, &googleapi.Error{
156905			Code:   res.StatusCode,
156906			Header: res.Header,
156907		}
156908	}
156909	if err != nil {
156910		return nil, err
156911	}
156912	defer googleapi.CloseBody(res)
156913	if err := googleapi.CheckResponse(res); err != nil {
156914		return nil, err
156915	}
156916	ret := &SnapshotList{
156917		ServerResponse: googleapi.ServerResponse{
156918			Header:         res.Header,
156919			HTTPStatusCode: res.StatusCode,
156920		},
156921	}
156922	target := &ret
156923	if err := gensupport.DecodeResponse(target, res); err != nil {
156924		return nil, err
156925	}
156926	return ret, nil
156927	// {
156928	//   "description": "Retrieves the list of Snapshot resources contained within the specified project.",
156929	//   "httpMethod": "GET",
156930	//   "id": "compute.snapshots.list",
156931	//   "parameterOrder": [
156932	//     "project"
156933	//   ],
156934	//   "parameters": {
156935	//     "filter": {
156936	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
156937	//       "location": "query",
156938	//       "type": "string"
156939	//     },
156940	//     "maxResults": {
156941	//       "default": "500",
156942	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
156943	//       "format": "uint32",
156944	//       "location": "query",
156945	//       "minimum": "0",
156946	//       "type": "integer"
156947	//     },
156948	//     "orderBy": {
156949	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
156950	//       "location": "query",
156951	//       "type": "string"
156952	//     },
156953	//     "pageToken": {
156954	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
156955	//       "location": "query",
156956	//       "type": "string"
156957	//     },
156958	//     "project": {
156959	//       "description": "Project ID for this request.",
156960	//       "location": "path",
156961	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
156962	//       "required": true,
156963	//       "type": "string"
156964	//     },
156965	//     "returnPartialSuccess": {
156966	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
156967	//       "location": "query",
156968	//       "type": "boolean"
156969	//     }
156970	//   },
156971	//   "path": "projects/{project}/global/snapshots",
156972	//   "response": {
156973	//     "$ref": "SnapshotList"
156974	//   },
156975	//   "scopes": [
156976	//     "https://www.googleapis.com/auth/cloud-platform",
156977	//     "https://www.googleapis.com/auth/compute",
156978	//     "https://www.googleapis.com/auth/compute.readonly"
156979	//   ]
156980	// }
156981
156982}
156983
156984// Pages invokes f for each page of results.
156985// A non-nil error returned from f will halt the iteration.
156986// The provided context supersedes any context provided to the Context method.
156987func (c *SnapshotsListCall) Pages(ctx context.Context, f func(*SnapshotList) error) error {
156988	c.ctx_ = ctx
156989	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
156990	for {
156991		x, err := c.Do()
156992		if err != nil {
156993			return err
156994		}
156995		if err := f(x); err != nil {
156996			return err
156997		}
156998		if x.NextPageToken == "" {
156999			return nil
157000		}
157001		c.PageToken(x.NextPageToken)
157002	}
157003}
157004
157005// method id "compute.snapshots.setIamPolicy":
157006
157007type SnapshotsSetIamPolicyCall struct {
157008	s                      *Service
157009	project                string
157010	resource               string
157011	globalsetpolicyrequest *GlobalSetPolicyRequest
157012	urlParams_             gensupport.URLParams
157013	ctx_                   context.Context
157014	header_                http.Header
157015}
157016
157017// SetIamPolicy: Sets the access control policy on the specified
157018// resource. Replaces any existing policy.
157019func (r *SnapshotsService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *SnapshotsSetIamPolicyCall {
157020	c := &SnapshotsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
157021	c.project = project
157022	c.resource = resource
157023	c.globalsetpolicyrequest = globalsetpolicyrequest
157024	return c
157025}
157026
157027// Fields allows partial responses to be retrieved. See
157028// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
157029// for more information.
157030func (c *SnapshotsSetIamPolicyCall) Fields(s ...googleapi.Field) *SnapshotsSetIamPolicyCall {
157031	c.urlParams_.Set("fields", googleapi.CombineFields(s))
157032	return c
157033}
157034
157035// Context sets the context to be used in this call's Do method. Any
157036// pending HTTP request will be aborted if the provided context is
157037// canceled.
157038func (c *SnapshotsSetIamPolicyCall) Context(ctx context.Context) *SnapshotsSetIamPolicyCall {
157039	c.ctx_ = ctx
157040	return c
157041}
157042
157043// Header returns an http.Header that can be modified by the caller to
157044// add HTTP headers to the request.
157045func (c *SnapshotsSetIamPolicyCall) Header() http.Header {
157046	if c.header_ == nil {
157047		c.header_ = make(http.Header)
157048	}
157049	return c.header_
157050}
157051
157052func (c *SnapshotsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
157053	reqHeaders := make(http.Header)
157054	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
157055	for k, v := range c.header_ {
157056		reqHeaders[k] = v
157057	}
157058	reqHeaders.Set("User-Agent", c.s.userAgent())
157059	var body io.Reader = nil
157060	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
157061	if err != nil {
157062		return nil, err
157063	}
157064	reqHeaders.Set("Content-Type", "application/json")
157065	c.urlParams_.Set("alt", alt)
157066	c.urlParams_.Set("prettyPrint", "false")
157067	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/snapshots/{resource}/setIamPolicy")
157068	urls += "?" + c.urlParams_.Encode()
157069	req, err := http.NewRequest("POST", urls, body)
157070	if err != nil {
157071		return nil, err
157072	}
157073	req.Header = reqHeaders
157074	googleapi.Expand(req.URL, map[string]string{
157075		"project":  c.project,
157076		"resource": c.resource,
157077	})
157078	return gensupport.SendRequest(c.ctx_, c.s.client, req)
157079}
157080
157081// Do executes the "compute.snapshots.setIamPolicy" call.
157082// Exactly one of *Policy or error will be non-nil. Any non-2xx status
157083// code is an error. Response headers are in either
157084// *Policy.ServerResponse.Header or (if a response was returned at all)
157085// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
157086// check whether the returned error was because http.StatusNotModified
157087// was returned.
157088func (c *SnapshotsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
157089	gensupport.SetOptions(c.urlParams_, opts...)
157090	res, err := c.doRequest("json")
157091	if res != nil && res.StatusCode == http.StatusNotModified {
157092		if res.Body != nil {
157093			res.Body.Close()
157094		}
157095		return nil, &googleapi.Error{
157096			Code:   res.StatusCode,
157097			Header: res.Header,
157098		}
157099	}
157100	if err != nil {
157101		return nil, err
157102	}
157103	defer googleapi.CloseBody(res)
157104	if err := googleapi.CheckResponse(res); err != nil {
157105		return nil, err
157106	}
157107	ret := &Policy{
157108		ServerResponse: googleapi.ServerResponse{
157109			Header:         res.Header,
157110			HTTPStatusCode: res.StatusCode,
157111		},
157112	}
157113	target := &ret
157114	if err := gensupport.DecodeResponse(target, res); err != nil {
157115		return nil, err
157116	}
157117	return ret, nil
157118	// {
157119	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
157120	//   "httpMethod": "POST",
157121	//   "id": "compute.snapshots.setIamPolicy",
157122	//   "parameterOrder": [
157123	//     "project",
157124	//     "resource"
157125	//   ],
157126	//   "parameters": {
157127	//     "project": {
157128	//       "description": "Project ID for this request.",
157129	//       "location": "path",
157130	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
157131	//       "required": true,
157132	//       "type": "string"
157133	//     },
157134	//     "resource": {
157135	//       "description": "Name or id of the resource for this request.",
157136	//       "location": "path",
157137	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
157138	//       "required": true,
157139	//       "type": "string"
157140	//     }
157141	//   },
157142	//   "path": "projects/{project}/global/snapshots/{resource}/setIamPolicy",
157143	//   "request": {
157144	//     "$ref": "GlobalSetPolicyRequest"
157145	//   },
157146	//   "response": {
157147	//     "$ref": "Policy"
157148	//   },
157149	//   "scopes": [
157150	//     "https://www.googleapis.com/auth/cloud-platform",
157151	//     "https://www.googleapis.com/auth/compute"
157152	//   ]
157153	// }
157154
157155}
157156
157157// method id "compute.snapshots.setLabels":
157158
157159type SnapshotsSetLabelsCall struct {
157160	s                      *Service
157161	project                string
157162	resource               string
157163	globalsetlabelsrequest *GlobalSetLabelsRequest
157164	urlParams_             gensupport.URLParams
157165	ctx_                   context.Context
157166	header_                http.Header
157167}
157168
157169// SetLabels: Sets the labels on a snapshot. To learn more about labels,
157170// read the Labeling Resources documentation.
157171func (r *SnapshotsService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *SnapshotsSetLabelsCall {
157172	c := &SnapshotsSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
157173	c.project = project
157174	c.resource = resource
157175	c.globalsetlabelsrequest = globalsetlabelsrequest
157176	return c
157177}
157178
157179// Fields allows partial responses to be retrieved. See
157180// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
157181// for more information.
157182func (c *SnapshotsSetLabelsCall) Fields(s ...googleapi.Field) *SnapshotsSetLabelsCall {
157183	c.urlParams_.Set("fields", googleapi.CombineFields(s))
157184	return c
157185}
157186
157187// Context sets the context to be used in this call's Do method. Any
157188// pending HTTP request will be aborted if the provided context is
157189// canceled.
157190func (c *SnapshotsSetLabelsCall) Context(ctx context.Context) *SnapshotsSetLabelsCall {
157191	c.ctx_ = ctx
157192	return c
157193}
157194
157195// Header returns an http.Header that can be modified by the caller to
157196// add HTTP headers to the request.
157197func (c *SnapshotsSetLabelsCall) Header() http.Header {
157198	if c.header_ == nil {
157199		c.header_ = make(http.Header)
157200	}
157201	return c.header_
157202}
157203
157204func (c *SnapshotsSetLabelsCall) doRequest(alt string) (*http.Response, error) {
157205	reqHeaders := make(http.Header)
157206	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
157207	for k, v := range c.header_ {
157208		reqHeaders[k] = v
157209	}
157210	reqHeaders.Set("User-Agent", c.s.userAgent())
157211	var body io.Reader = nil
157212	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
157213	if err != nil {
157214		return nil, err
157215	}
157216	reqHeaders.Set("Content-Type", "application/json")
157217	c.urlParams_.Set("alt", alt)
157218	c.urlParams_.Set("prettyPrint", "false")
157219	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/snapshots/{resource}/setLabels")
157220	urls += "?" + c.urlParams_.Encode()
157221	req, err := http.NewRequest("POST", urls, body)
157222	if err != nil {
157223		return nil, err
157224	}
157225	req.Header = reqHeaders
157226	googleapi.Expand(req.URL, map[string]string{
157227		"project":  c.project,
157228		"resource": c.resource,
157229	})
157230	return gensupport.SendRequest(c.ctx_, c.s.client, req)
157231}
157232
157233// Do executes the "compute.snapshots.setLabels" call.
157234// Exactly one of *Operation or error will be non-nil. Any non-2xx
157235// status code is an error. Response headers are in either
157236// *Operation.ServerResponse.Header or (if a response was returned at
157237// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
157238// to check whether the returned error was because
157239// http.StatusNotModified was returned.
157240func (c *SnapshotsSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
157241	gensupport.SetOptions(c.urlParams_, opts...)
157242	res, err := c.doRequest("json")
157243	if res != nil && res.StatusCode == http.StatusNotModified {
157244		if res.Body != nil {
157245			res.Body.Close()
157246		}
157247		return nil, &googleapi.Error{
157248			Code:   res.StatusCode,
157249			Header: res.Header,
157250		}
157251	}
157252	if err != nil {
157253		return nil, err
157254	}
157255	defer googleapi.CloseBody(res)
157256	if err := googleapi.CheckResponse(res); err != nil {
157257		return nil, err
157258	}
157259	ret := &Operation{
157260		ServerResponse: googleapi.ServerResponse{
157261			Header:         res.Header,
157262			HTTPStatusCode: res.StatusCode,
157263		},
157264	}
157265	target := &ret
157266	if err := gensupport.DecodeResponse(target, res); err != nil {
157267		return nil, err
157268	}
157269	return ret, nil
157270	// {
157271	//   "description": "Sets the labels on a snapshot. To learn more about labels, read the Labeling Resources documentation.",
157272	//   "httpMethod": "POST",
157273	//   "id": "compute.snapshots.setLabels",
157274	//   "parameterOrder": [
157275	//     "project",
157276	//     "resource"
157277	//   ],
157278	//   "parameters": {
157279	//     "project": {
157280	//       "description": "Project ID for this request.",
157281	//       "location": "path",
157282	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
157283	//       "required": true,
157284	//       "type": "string"
157285	//     },
157286	//     "resource": {
157287	//       "description": "Name or id of the resource for this request.",
157288	//       "location": "path",
157289	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
157290	//       "required": true,
157291	//       "type": "string"
157292	//     }
157293	//   },
157294	//   "path": "projects/{project}/global/snapshots/{resource}/setLabels",
157295	//   "request": {
157296	//     "$ref": "GlobalSetLabelsRequest"
157297	//   },
157298	//   "response": {
157299	//     "$ref": "Operation"
157300	//   },
157301	//   "scopes": [
157302	//     "https://www.googleapis.com/auth/cloud-platform",
157303	//     "https://www.googleapis.com/auth/compute"
157304	//   ]
157305	// }
157306
157307}
157308
157309// method id "compute.snapshots.testIamPermissions":
157310
157311type SnapshotsTestIamPermissionsCall struct {
157312	s                      *Service
157313	project                string
157314	resource               string
157315	testpermissionsrequest *TestPermissionsRequest
157316	urlParams_             gensupport.URLParams
157317	ctx_                   context.Context
157318	header_                http.Header
157319}
157320
157321// TestIamPermissions: Returns permissions that a caller has on the
157322// specified resource.
157323func (r *SnapshotsService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *SnapshotsTestIamPermissionsCall {
157324	c := &SnapshotsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
157325	c.project = project
157326	c.resource = resource
157327	c.testpermissionsrequest = testpermissionsrequest
157328	return c
157329}
157330
157331// Fields allows partial responses to be retrieved. See
157332// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
157333// for more information.
157334func (c *SnapshotsTestIamPermissionsCall) Fields(s ...googleapi.Field) *SnapshotsTestIamPermissionsCall {
157335	c.urlParams_.Set("fields", googleapi.CombineFields(s))
157336	return c
157337}
157338
157339// Context sets the context to be used in this call's Do method. Any
157340// pending HTTP request will be aborted if the provided context is
157341// canceled.
157342func (c *SnapshotsTestIamPermissionsCall) Context(ctx context.Context) *SnapshotsTestIamPermissionsCall {
157343	c.ctx_ = ctx
157344	return c
157345}
157346
157347// Header returns an http.Header that can be modified by the caller to
157348// add HTTP headers to the request.
157349func (c *SnapshotsTestIamPermissionsCall) Header() http.Header {
157350	if c.header_ == nil {
157351		c.header_ = make(http.Header)
157352	}
157353	return c.header_
157354}
157355
157356func (c *SnapshotsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
157357	reqHeaders := make(http.Header)
157358	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
157359	for k, v := range c.header_ {
157360		reqHeaders[k] = v
157361	}
157362	reqHeaders.Set("User-Agent", c.s.userAgent())
157363	var body io.Reader = nil
157364	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
157365	if err != nil {
157366		return nil, err
157367	}
157368	reqHeaders.Set("Content-Type", "application/json")
157369	c.urlParams_.Set("alt", alt)
157370	c.urlParams_.Set("prettyPrint", "false")
157371	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/snapshots/{resource}/testIamPermissions")
157372	urls += "?" + c.urlParams_.Encode()
157373	req, err := http.NewRequest("POST", urls, body)
157374	if err != nil {
157375		return nil, err
157376	}
157377	req.Header = reqHeaders
157378	googleapi.Expand(req.URL, map[string]string{
157379		"project":  c.project,
157380		"resource": c.resource,
157381	})
157382	return gensupport.SendRequest(c.ctx_, c.s.client, req)
157383}
157384
157385// Do executes the "compute.snapshots.testIamPermissions" call.
157386// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
157387// non-2xx status code is an error. Response headers are in either
157388// *TestPermissionsResponse.ServerResponse.Header or (if a response was
157389// returned at all) in error.(*googleapi.Error).Header. Use
157390// googleapi.IsNotModified to check whether the returned error was
157391// because http.StatusNotModified was returned.
157392func (c *SnapshotsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
157393	gensupport.SetOptions(c.urlParams_, opts...)
157394	res, err := c.doRequest("json")
157395	if res != nil && res.StatusCode == http.StatusNotModified {
157396		if res.Body != nil {
157397			res.Body.Close()
157398		}
157399		return nil, &googleapi.Error{
157400			Code:   res.StatusCode,
157401			Header: res.Header,
157402		}
157403	}
157404	if err != nil {
157405		return nil, err
157406	}
157407	defer googleapi.CloseBody(res)
157408	if err := googleapi.CheckResponse(res); err != nil {
157409		return nil, err
157410	}
157411	ret := &TestPermissionsResponse{
157412		ServerResponse: googleapi.ServerResponse{
157413			Header:         res.Header,
157414			HTTPStatusCode: res.StatusCode,
157415		},
157416	}
157417	target := &ret
157418	if err := gensupport.DecodeResponse(target, res); err != nil {
157419		return nil, err
157420	}
157421	return ret, nil
157422	// {
157423	//   "description": "Returns permissions that a caller has on the specified resource.",
157424	//   "httpMethod": "POST",
157425	//   "id": "compute.snapshots.testIamPermissions",
157426	//   "parameterOrder": [
157427	//     "project",
157428	//     "resource"
157429	//   ],
157430	//   "parameters": {
157431	//     "project": {
157432	//       "description": "Project ID for this request.",
157433	//       "location": "path",
157434	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
157435	//       "required": true,
157436	//       "type": "string"
157437	//     },
157438	//     "resource": {
157439	//       "description": "Name or id of the resource for this request.",
157440	//       "location": "path",
157441	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
157442	//       "required": true,
157443	//       "type": "string"
157444	//     }
157445	//   },
157446	//   "path": "projects/{project}/global/snapshots/{resource}/testIamPermissions",
157447	//   "request": {
157448	//     "$ref": "TestPermissionsRequest"
157449	//   },
157450	//   "response": {
157451	//     "$ref": "TestPermissionsResponse"
157452	//   },
157453	//   "scopes": [
157454	//     "https://www.googleapis.com/auth/cloud-platform",
157455	//     "https://www.googleapis.com/auth/compute",
157456	//     "https://www.googleapis.com/auth/compute.readonly"
157457	//   ]
157458	// }
157459
157460}
157461
157462// method id "compute.sslCertificates.aggregatedList":
157463
157464type SslCertificatesAggregatedListCall struct {
157465	s            *Service
157466	project      string
157467	urlParams_   gensupport.URLParams
157468	ifNoneMatch_ string
157469	ctx_         context.Context
157470	header_      http.Header
157471}
157472
157473// AggregatedList: Retrieves the list of all SslCertificate resources,
157474// regional and global, available to the specified project.
157475func (r *SslCertificatesService) AggregatedList(project string) *SslCertificatesAggregatedListCall {
157476	c := &SslCertificatesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
157477	c.project = project
157478	return c
157479}
157480
157481// Filter sets the optional parameter "filter": A filter expression that
157482// filters resources listed in the response. The expression must specify
157483// the field name, a comparison operator, and the value that you want to
157484// use for filtering. The value must be a string, a number, or a
157485// boolean. The comparison operator must be either `=`, `!=`, `>`, or
157486// `<`.
157487//
157488// For example, if you are filtering Compute Engine instances, you can
157489// exclude instances named `example-instance` by specifying `name !=
157490// example-instance`.
157491//
157492// You can also filter nested fields. For example, you could specify
157493// `scheduling.automaticRestart = false` to include instances only if
157494// they are not scheduled for automatic restarts. You can use filtering
157495// on nested fields to filter based on resource labels.
157496//
157497// To filter on multiple expressions, provide each separate expression
157498// within parentheses. For example: ``` (scheduling.automaticRestart =
157499// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
157500// is an `AND` expression. However, you can include `AND` and `OR`
157501// expressions explicitly. For example: ``` (cpuPlatform = "Intel
157502// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
157503// (scheduling.automaticRestart = true) ```
157504func (c *SslCertificatesAggregatedListCall) Filter(filter string) *SslCertificatesAggregatedListCall {
157505	c.urlParams_.Set("filter", filter)
157506	return c
157507}
157508
157509// IncludeAllScopes sets the optional parameter "includeAllScopes":
157510// Indicates whether every visible scope for each scope type (zone,
157511// region, global) should be included in the response. For new resource
157512// types added after this field, the flag has no effect as new resource
157513// types will always include every visible scope for each scope type in
157514// response. For resource types which predate this field, if this flag
157515// is omitted or false, only scopes of the scope types where the
157516// resource type is expected to be found will be included.
157517func (c *SslCertificatesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *SslCertificatesAggregatedListCall {
157518	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
157519	return c
157520}
157521
157522// MaxResults sets the optional parameter "maxResults": The maximum
157523// number of results per page that should be returned. If the number of
157524// available results is larger than `maxResults`, Compute Engine returns
157525// a `nextPageToken` that can be used to get the next page of results in
157526// subsequent list requests. Acceptable values are `0` to `500`,
157527// inclusive. (Default: `500`)
157528func (c *SslCertificatesAggregatedListCall) MaxResults(maxResults int64) *SslCertificatesAggregatedListCall {
157529	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
157530	return c
157531}
157532
157533// OrderBy sets the optional parameter "orderBy": Sorts list results by
157534// a certain order. By default, results are returned in alphanumerical
157535// order based on the resource name.
157536//
157537// You can also sort results in descending order based on the creation
157538// timestamp using `orderBy="creationTimestamp desc". This sorts
157539// results based on the `creationTimestamp` field in reverse
157540// chronological order (newest result first). Use this to sort resources
157541// like operations so that the newest operation is returned
157542// first.
157543//
157544// Currently, only sorting by `name` or `creationTimestamp desc` is
157545// supported.
157546func (c *SslCertificatesAggregatedListCall) OrderBy(orderBy string) *SslCertificatesAggregatedListCall {
157547	c.urlParams_.Set("orderBy", orderBy)
157548	return c
157549}
157550
157551// PageToken sets the optional parameter "pageToken": Specifies a page
157552// token to use. Set `pageToken` to the `nextPageToken` returned by a
157553// previous list request to get the next page of results.
157554func (c *SslCertificatesAggregatedListCall) PageToken(pageToken string) *SslCertificatesAggregatedListCall {
157555	c.urlParams_.Set("pageToken", pageToken)
157556	return c
157557}
157558
157559// ReturnPartialSuccess sets the optional parameter
157560// "returnPartialSuccess": Opt-in for partial success behavior which
157561// provides partial results in case of failure. The default value is
157562// false.
157563func (c *SslCertificatesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SslCertificatesAggregatedListCall {
157564	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
157565	return c
157566}
157567
157568// Fields allows partial responses to be retrieved. See
157569// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
157570// for more information.
157571func (c *SslCertificatesAggregatedListCall) Fields(s ...googleapi.Field) *SslCertificatesAggregatedListCall {
157572	c.urlParams_.Set("fields", googleapi.CombineFields(s))
157573	return c
157574}
157575
157576// IfNoneMatch sets the optional parameter which makes the operation
157577// fail if the object's ETag matches the given value. This is useful for
157578// getting updates only after the object has changed since the last
157579// request. Use googleapi.IsNotModified to check whether the response
157580// error from Do is the result of In-None-Match.
157581func (c *SslCertificatesAggregatedListCall) IfNoneMatch(entityTag string) *SslCertificatesAggregatedListCall {
157582	c.ifNoneMatch_ = entityTag
157583	return c
157584}
157585
157586// Context sets the context to be used in this call's Do method. Any
157587// pending HTTP request will be aborted if the provided context is
157588// canceled.
157589func (c *SslCertificatesAggregatedListCall) Context(ctx context.Context) *SslCertificatesAggregatedListCall {
157590	c.ctx_ = ctx
157591	return c
157592}
157593
157594// Header returns an http.Header that can be modified by the caller to
157595// add HTTP headers to the request.
157596func (c *SslCertificatesAggregatedListCall) Header() http.Header {
157597	if c.header_ == nil {
157598		c.header_ = make(http.Header)
157599	}
157600	return c.header_
157601}
157602
157603func (c *SslCertificatesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
157604	reqHeaders := make(http.Header)
157605	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
157606	for k, v := range c.header_ {
157607		reqHeaders[k] = v
157608	}
157609	reqHeaders.Set("User-Agent", c.s.userAgent())
157610	if c.ifNoneMatch_ != "" {
157611		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
157612	}
157613	var body io.Reader = nil
157614	c.urlParams_.Set("alt", alt)
157615	c.urlParams_.Set("prettyPrint", "false")
157616	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/sslCertificates")
157617	urls += "?" + c.urlParams_.Encode()
157618	req, err := http.NewRequest("GET", urls, body)
157619	if err != nil {
157620		return nil, err
157621	}
157622	req.Header = reqHeaders
157623	googleapi.Expand(req.URL, map[string]string{
157624		"project": c.project,
157625	})
157626	return gensupport.SendRequest(c.ctx_, c.s.client, req)
157627}
157628
157629// Do executes the "compute.sslCertificates.aggregatedList" call.
157630// Exactly one of *SslCertificateAggregatedList or error will be
157631// non-nil. Any non-2xx status code is an error. Response headers are in
157632// either *SslCertificateAggregatedList.ServerResponse.Header or (if a
157633// response was returned at all) in error.(*googleapi.Error).Header. Use
157634// googleapi.IsNotModified to check whether the returned error was
157635// because http.StatusNotModified was returned.
157636func (c *SslCertificatesAggregatedListCall) Do(opts ...googleapi.CallOption) (*SslCertificateAggregatedList, error) {
157637	gensupport.SetOptions(c.urlParams_, opts...)
157638	res, err := c.doRequest("json")
157639	if res != nil && res.StatusCode == http.StatusNotModified {
157640		if res.Body != nil {
157641			res.Body.Close()
157642		}
157643		return nil, &googleapi.Error{
157644			Code:   res.StatusCode,
157645			Header: res.Header,
157646		}
157647	}
157648	if err != nil {
157649		return nil, err
157650	}
157651	defer googleapi.CloseBody(res)
157652	if err := googleapi.CheckResponse(res); err != nil {
157653		return nil, err
157654	}
157655	ret := &SslCertificateAggregatedList{
157656		ServerResponse: googleapi.ServerResponse{
157657			Header:         res.Header,
157658			HTTPStatusCode: res.StatusCode,
157659		},
157660	}
157661	target := &ret
157662	if err := gensupport.DecodeResponse(target, res); err != nil {
157663		return nil, err
157664	}
157665	return ret, nil
157666	// {
157667	//   "description": "Retrieves the list of all SslCertificate resources, regional and global, available to the specified project.",
157668	//   "httpMethod": "GET",
157669	//   "id": "compute.sslCertificates.aggregatedList",
157670	//   "parameterOrder": [
157671	//     "project"
157672	//   ],
157673	//   "parameters": {
157674	//     "filter": {
157675	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
157676	//       "location": "query",
157677	//       "type": "string"
157678	//     },
157679	//     "includeAllScopes": {
157680	//       "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.",
157681	//       "location": "query",
157682	//       "type": "boolean"
157683	//     },
157684	//     "maxResults": {
157685	//       "default": "500",
157686	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
157687	//       "format": "uint32",
157688	//       "location": "query",
157689	//       "minimum": "0",
157690	//       "type": "integer"
157691	//     },
157692	//     "orderBy": {
157693	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
157694	//       "location": "query",
157695	//       "type": "string"
157696	//     },
157697	//     "pageToken": {
157698	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
157699	//       "location": "query",
157700	//       "type": "string"
157701	//     },
157702	//     "project": {
157703	//       "description": "Name of the project scoping this request.",
157704	//       "location": "path",
157705	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
157706	//       "required": true,
157707	//       "type": "string"
157708	//     },
157709	//     "returnPartialSuccess": {
157710	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
157711	//       "location": "query",
157712	//       "type": "boolean"
157713	//     }
157714	//   },
157715	//   "path": "projects/{project}/aggregated/sslCertificates",
157716	//   "response": {
157717	//     "$ref": "SslCertificateAggregatedList"
157718	//   },
157719	//   "scopes": [
157720	//     "https://www.googleapis.com/auth/cloud-platform",
157721	//     "https://www.googleapis.com/auth/compute",
157722	//     "https://www.googleapis.com/auth/compute.readonly"
157723	//   ]
157724	// }
157725
157726}
157727
157728// Pages invokes f for each page of results.
157729// A non-nil error returned from f will halt the iteration.
157730// The provided context supersedes any context provided to the Context method.
157731func (c *SslCertificatesAggregatedListCall) Pages(ctx context.Context, f func(*SslCertificateAggregatedList) error) error {
157732	c.ctx_ = ctx
157733	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
157734	for {
157735		x, err := c.Do()
157736		if err != nil {
157737			return err
157738		}
157739		if err := f(x); err != nil {
157740			return err
157741		}
157742		if x.NextPageToken == "" {
157743			return nil
157744		}
157745		c.PageToken(x.NextPageToken)
157746	}
157747}
157748
157749// method id "compute.sslCertificates.delete":
157750
157751type SslCertificatesDeleteCall struct {
157752	s              *Service
157753	project        string
157754	sslCertificate string
157755	urlParams_     gensupport.URLParams
157756	ctx_           context.Context
157757	header_        http.Header
157758}
157759
157760// Delete: Deletes the specified SslCertificate resource.
157761func (r *SslCertificatesService) Delete(project string, sslCertificate string) *SslCertificatesDeleteCall {
157762	c := &SslCertificatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
157763	c.project = project
157764	c.sslCertificate = sslCertificate
157765	return c
157766}
157767
157768// RequestId sets the optional parameter "requestId": An optional
157769// request ID to identify requests. Specify a unique request ID so that
157770// if you must retry your request, the server will know to ignore the
157771// request if it has already been completed.
157772//
157773// For example, consider a situation where you make an initial request
157774// and the request times out. If you make the request again with the
157775// same request ID, the server can check if original operation with the
157776// same request ID was received, and if so, will ignore the second
157777// request. This prevents clients from accidentally creating duplicate
157778// commitments.
157779//
157780// The request ID must be a valid UUID with the exception that zero UUID
157781// is not supported (00000000-0000-0000-0000-000000000000).
157782func (c *SslCertificatesDeleteCall) RequestId(requestId string) *SslCertificatesDeleteCall {
157783	c.urlParams_.Set("requestId", requestId)
157784	return c
157785}
157786
157787// Fields allows partial responses to be retrieved. See
157788// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
157789// for more information.
157790func (c *SslCertificatesDeleteCall) Fields(s ...googleapi.Field) *SslCertificatesDeleteCall {
157791	c.urlParams_.Set("fields", googleapi.CombineFields(s))
157792	return c
157793}
157794
157795// Context sets the context to be used in this call's Do method. Any
157796// pending HTTP request will be aborted if the provided context is
157797// canceled.
157798func (c *SslCertificatesDeleteCall) Context(ctx context.Context) *SslCertificatesDeleteCall {
157799	c.ctx_ = ctx
157800	return c
157801}
157802
157803// Header returns an http.Header that can be modified by the caller to
157804// add HTTP headers to the request.
157805func (c *SslCertificatesDeleteCall) Header() http.Header {
157806	if c.header_ == nil {
157807		c.header_ = make(http.Header)
157808	}
157809	return c.header_
157810}
157811
157812func (c *SslCertificatesDeleteCall) doRequest(alt string) (*http.Response, error) {
157813	reqHeaders := make(http.Header)
157814	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
157815	for k, v := range c.header_ {
157816		reqHeaders[k] = v
157817	}
157818	reqHeaders.Set("User-Agent", c.s.userAgent())
157819	var body io.Reader = nil
157820	c.urlParams_.Set("alt", alt)
157821	c.urlParams_.Set("prettyPrint", "false")
157822	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslCertificates/{sslCertificate}")
157823	urls += "?" + c.urlParams_.Encode()
157824	req, err := http.NewRequest("DELETE", urls, body)
157825	if err != nil {
157826		return nil, err
157827	}
157828	req.Header = reqHeaders
157829	googleapi.Expand(req.URL, map[string]string{
157830		"project":        c.project,
157831		"sslCertificate": c.sslCertificate,
157832	})
157833	return gensupport.SendRequest(c.ctx_, c.s.client, req)
157834}
157835
157836// Do executes the "compute.sslCertificates.delete" call.
157837// Exactly one of *Operation or error will be non-nil. Any non-2xx
157838// status code is an error. Response headers are in either
157839// *Operation.ServerResponse.Header or (if a response was returned at
157840// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
157841// to check whether the returned error was because
157842// http.StatusNotModified was returned.
157843func (c *SslCertificatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
157844	gensupport.SetOptions(c.urlParams_, opts...)
157845	res, err := c.doRequest("json")
157846	if res != nil && res.StatusCode == http.StatusNotModified {
157847		if res.Body != nil {
157848			res.Body.Close()
157849		}
157850		return nil, &googleapi.Error{
157851			Code:   res.StatusCode,
157852			Header: res.Header,
157853		}
157854	}
157855	if err != nil {
157856		return nil, err
157857	}
157858	defer googleapi.CloseBody(res)
157859	if err := googleapi.CheckResponse(res); err != nil {
157860		return nil, err
157861	}
157862	ret := &Operation{
157863		ServerResponse: googleapi.ServerResponse{
157864			Header:         res.Header,
157865			HTTPStatusCode: res.StatusCode,
157866		},
157867	}
157868	target := &ret
157869	if err := gensupport.DecodeResponse(target, res); err != nil {
157870		return nil, err
157871	}
157872	return ret, nil
157873	// {
157874	//   "description": "Deletes the specified SslCertificate resource.",
157875	//   "httpMethod": "DELETE",
157876	//   "id": "compute.sslCertificates.delete",
157877	//   "parameterOrder": [
157878	//     "project",
157879	//     "sslCertificate"
157880	//   ],
157881	//   "parameters": {
157882	//     "project": {
157883	//       "description": "Project ID for this request.",
157884	//       "location": "path",
157885	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
157886	//       "required": true,
157887	//       "type": "string"
157888	//     },
157889	//     "requestId": {
157890	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
157891	//       "location": "query",
157892	//       "type": "string"
157893	//     },
157894	//     "sslCertificate": {
157895	//       "description": "Name of the SslCertificate resource to delete.",
157896	//       "location": "path",
157897	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
157898	//       "required": true,
157899	//       "type": "string"
157900	//     }
157901	//   },
157902	//   "path": "projects/{project}/global/sslCertificates/{sslCertificate}",
157903	//   "response": {
157904	//     "$ref": "Operation"
157905	//   },
157906	//   "scopes": [
157907	//     "https://www.googleapis.com/auth/cloud-platform",
157908	//     "https://www.googleapis.com/auth/compute"
157909	//   ]
157910	// }
157911
157912}
157913
157914// method id "compute.sslCertificates.get":
157915
157916type SslCertificatesGetCall struct {
157917	s              *Service
157918	project        string
157919	sslCertificate string
157920	urlParams_     gensupport.URLParams
157921	ifNoneMatch_   string
157922	ctx_           context.Context
157923	header_        http.Header
157924}
157925
157926// Get: Returns the specified SslCertificate resource. Gets a list of
157927// available SSL certificates by making a list() request.
157928func (r *SslCertificatesService) Get(project string, sslCertificate string) *SslCertificatesGetCall {
157929	c := &SslCertificatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
157930	c.project = project
157931	c.sslCertificate = sslCertificate
157932	return c
157933}
157934
157935// Fields allows partial responses to be retrieved. See
157936// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
157937// for more information.
157938func (c *SslCertificatesGetCall) Fields(s ...googleapi.Field) *SslCertificatesGetCall {
157939	c.urlParams_.Set("fields", googleapi.CombineFields(s))
157940	return c
157941}
157942
157943// IfNoneMatch sets the optional parameter which makes the operation
157944// fail if the object's ETag matches the given value. This is useful for
157945// getting updates only after the object has changed since the last
157946// request. Use googleapi.IsNotModified to check whether the response
157947// error from Do is the result of In-None-Match.
157948func (c *SslCertificatesGetCall) IfNoneMatch(entityTag string) *SslCertificatesGetCall {
157949	c.ifNoneMatch_ = entityTag
157950	return c
157951}
157952
157953// Context sets the context to be used in this call's Do method. Any
157954// pending HTTP request will be aborted if the provided context is
157955// canceled.
157956func (c *SslCertificatesGetCall) Context(ctx context.Context) *SslCertificatesGetCall {
157957	c.ctx_ = ctx
157958	return c
157959}
157960
157961// Header returns an http.Header that can be modified by the caller to
157962// add HTTP headers to the request.
157963func (c *SslCertificatesGetCall) Header() http.Header {
157964	if c.header_ == nil {
157965		c.header_ = make(http.Header)
157966	}
157967	return c.header_
157968}
157969
157970func (c *SslCertificatesGetCall) doRequest(alt string) (*http.Response, error) {
157971	reqHeaders := make(http.Header)
157972	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
157973	for k, v := range c.header_ {
157974		reqHeaders[k] = v
157975	}
157976	reqHeaders.Set("User-Agent", c.s.userAgent())
157977	if c.ifNoneMatch_ != "" {
157978		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
157979	}
157980	var body io.Reader = nil
157981	c.urlParams_.Set("alt", alt)
157982	c.urlParams_.Set("prettyPrint", "false")
157983	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslCertificates/{sslCertificate}")
157984	urls += "?" + c.urlParams_.Encode()
157985	req, err := http.NewRequest("GET", urls, body)
157986	if err != nil {
157987		return nil, err
157988	}
157989	req.Header = reqHeaders
157990	googleapi.Expand(req.URL, map[string]string{
157991		"project":        c.project,
157992		"sslCertificate": c.sslCertificate,
157993	})
157994	return gensupport.SendRequest(c.ctx_, c.s.client, req)
157995}
157996
157997// Do executes the "compute.sslCertificates.get" call.
157998// Exactly one of *SslCertificate or error will be non-nil. Any non-2xx
157999// status code is an error. Response headers are in either
158000// *SslCertificate.ServerResponse.Header or (if a response was returned
158001// at all) in error.(*googleapi.Error).Header. Use
158002// googleapi.IsNotModified to check whether the returned error was
158003// because http.StatusNotModified was returned.
158004func (c *SslCertificatesGetCall) Do(opts ...googleapi.CallOption) (*SslCertificate, error) {
158005	gensupport.SetOptions(c.urlParams_, opts...)
158006	res, err := c.doRequest("json")
158007	if res != nil && res.StatusCode == http.StatusNotModified {
158008		if res.Body != nil {
158009			res.Body.Close()
158010		}
158011		return nil, &googleapi.Error{
158012			Code:   res.StatusCode,
158013			Header: res.Header,
158014		}
158015	}
158016	if err != nil {
158017		return nil, err
158018	}
158019	defer googleapi.CloseBody(res)
158020	if err := googleapi.CheckResponse(res); err != nil {
158021		return nil, err
158022	}
158023	ret := &SslCertificate{
158024		ServerResponse: googleapi.ServerResponse{
158025			Header:         res.Header,
158026			HTTPStatusCode: res.StatusCode,
158027		},
158028	}
158029	target := &ret
158030	if err := gensupport.DecodeResponse(target, res); err != nil {
158031		return nil, err
158032	}
158033	return ret, nil
158034	// {
158035	//   "description": "Returns the specified SslCertificate resource. Gets a list of available SSL certificates by making a list() request.",
158036	//   "httpMethod": "GET",
158037	//   "id": "compute.sslCertificates.get",
158038	//   "parameterOrder": [
158039	//     "project",
158040	//     "sslCertificate"
158041	//   ],
158042	//   "parameters": {
158043	//     "project": {
158044	//       "description": "Project ID for this request.",
158045	//       "location": "path",
158046	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
158047	//       "required": true,
158048	//       "type": "string"
158049	//     },
158050	//     "sslCertificate": {
158051	//       "description": "Name of the SslCertificate resource to return.",
158052	//       "location": "path",
158053	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
158054	//       "required": true,
158055	//       "type": "string"
158056	//     }
158057	//   },
158058	//   "path": "projects/{project}/global/sslCertificates/{sslCertificate}",
158059	//   "response": {
158060	//     "$ref": "SslCertificate"
158061	//   },
158062	//   "scopes": [
158063	//     "https://www.googleapis.com/auth/cloud-platform",
158064	//     "https://www.googleapis.com/auth/compute",
158065	//     "https://www.googleapis.com/auth/compute.readonly"
158066	//   ]
158067	// }
158068
158069}
158070
158071// method id "compute.sslCertificates.insert":
158072
158073type SslCertificatesInsertCall struct {
158074	s              *Service
158075	project        string
158076	sslcertificate *SslCertificate
158077	urlParams_     gensupport.URLParams
158078	ctx_           context.Context
158079	header_        http.Header
158080}
158081
158082// Insert: Creates a SslCertificate resource in the specified project
158083// using the data included in the request.
158084func (r *SslCertificatesService) Insert(project string, sslcertificate *SslCertificate) *SslCertificatesInsertCall {
158085	c := &SslCertificatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
158086	c.project = project
158087	c.sslcertificate = sslcertificate
158088	return c
158089}
158090
158091// RequestId sets the optional parameter "requestId": An optional
158092// request ID to identify requests. Specify a unique request ID so that
158093// if you must retry your request, the server will know to ignore the
158094// request if it has already been completed.
158095//
158096// For example, consider a situation where you make an initial request
158097// and the request times out. If you make the request again with the
158098// same request ID, the server can check if original operation with the
158099// same request ID was received, and if so, will ignore the second
158100// request. This prevents clients from accidentally creating duplicate
158101// commitments.
158102//
158103// The request ID must be a valid UUID with the exception that zero UUID
158104// is not supported (00000000-0000-0000-0000-000000000000).
158105func (c *SslCertificatesInsertCall) RequestId(requestId string) *SslCertificatesInsertCall {
158106	c.urlParams_.Set("requestId", requestId)
158107	return c
158108}
158109
158110// Fields allows partial responses to be retrieved. See
158111// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
158112// for more information.
158113func (c *SslCertificatesInsertCall) Fields(s ...googleapi.Field) *SslCertificatesInsertCall {
158114	c.urlParams_.Set("fields", googleapi.CombineFields(s))
158115	return c
158116}
158117
158118// Context sets the context to be used in this call's Do method. Any
158119// pending HTTP request will be aborted if the provided context is
158120// canceled.
158121func (c *SslCertificatesInsertCall) Context(ctx context.Context) *SslCertificatesInsertCall {
158122	c.ctx_ = ctx
158123	return c
158124}
158125
158126// Header returns an http.Header that can be modified by the caller to
158127// add HTTP headers to the request.
158128func (c *SslCertificatesInsertCall) Header() http.Header {
158129	if c.header_ == nil {
158130		c.header_ = make(http.Header)
158131	}
158132	return c.header_
158133}
158134
158135func (c *SslCertificatesInsertCall) doRequest(alt string) (*http.Response, error) {
158136	reqHeaders := make(http.Header)
158137	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
158138	for k, v := range c.header_ {
158139		reqHeaders[k] = v
158140	}
158141	reqHeaders.Set("User-Agent", c.s.userAgent())
158142	var body io.Reader = nil
158143	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslcertificate)
158144	if err != nil {
158145		return nil, err
158146	}
158147	reqHeaders.Set("Content-Type", "application/json")
158148	c.urlParams_.Set("alt", alt)
158149	c.urlParams_.Set("prettyPrint", "false")
158150	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslCertificates")
158151	urls += "?" + c.urlParams_.Encode()
158152	req, err := http.NewRequest("POST", urls, body)
158153	if err != nil {
158154		return nil, err
158155	}
158156	req.Header = reqHeaders
158157	googleapi.Expand(req.URL, map[string]string{
158158		"project": c.project,
158159	})
158160	return gensupport.SendRequest(c.ctx_, c.s.client, req)
158161}
158162
158163// Do executes the "compute.sslCertificates.insert" call.
158164// Exactly one of *Operation or error will be non-nil. Any non-2xx
158165// status code is an error. Response headers are in either
158166// *Operation.ServerResponse.Header or (if a response was returned at
158167// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
158168// to check whether the returned error was because
158169// http.StatusNotModified was returned.
158170func (c *SslCertificatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
158171	gensupport.SetOptions(c.urlParams_, opts...)
158172	res, err := c.doRequest("json")
158173	if res != nil && res.StatusCode == http.StatusNotModified {
158174		if res.Body != nil {
158175			res.Body.Close()
158176		}
158177		return nil, &googleapi.Error{
158178			Code:   res.StatusCode,
158179			Header: res.Header,
158180		}
158181	}
158182	if err != nil {
158183		return nil, err
158184	}
158185	defer googleapi.CloseBody(res)
158186	if err := googleapi.CheckResponse(res); err != nil {
158187		return nil, err
158188	}
158189	ret := &Operation{
158190		ServerResponse: googleapi.ServerResponse{
158191			Header:         res.Header,
158192			HTTPStatusCode: res.StatusCode,
158193		},
158194	}
158195	target := &ret
158196	if err := gensupport.DecodeResponse(target, res); err != nil {
158197		return nil, err
158198	}
158199	return ret, nil
158200	// {
158201	//   "description": "Creates a SslCertificate resource in the specified project using the data included in the request.",
158202	//   "httpMethod": "POST",
158203	//   "id": "compute.sslCertificates.insert",
158204	//   "parameterOrder": [
158205	//     "project"
158206	//   ],
158207	//   "parameters": {
158208	//     "project": {
158209	//       "description": "Project ID for this request.",
158210	//       "location": "path",
158211	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
158212	//       "required": true,
158213	//       "type": "string"
158214	//     },
158215	//     "requestId": {
158216	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
158217	//       "location": "query",
158218	//       "type": "string"
158219	//     }
158220	//   },
158221	//   "path": "projects/{project}/global/sslCertificates",
158222	//   "request": {
158223	//     "$ref": "SslCertificate"
158224	//   },
158225	//   "response": {
158226	//     "$ref": "Operation"
158227	//   },
158228	//   "scopes": [
158229	//     "https://www.googleapis.com/auth/cloud-platform",
158230	//     "https://www.googleapis.com/auth/compute"
158231	//   ]
158232	// }
158233
158234}
158235
158236// method id "compute.sslCertificates.list":
158237
158238type SslCertificatesListCall struct {
158239	s            *Service
158240	project      string
158241	urlParams_   gensupport.URLParams
158242	ifNoneMatch_ string
158243	ctx_         context.Context
158244	header_      http.Header
158245}
158246
158247// List: Retrieves the list of SslCertificate resources available to the
158248// specified project.
158249func (r *SslCertificatesService) List(project string) *SslCertificatesListCall {
158250	c := &SslCertificatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
158251	c.project = project
158252	return c
158253}
158254
158255// Filter sets the optional parameter "filter": A filter expression that
158256// filters resources listed in the response. The expression must specify
158257// the field name, a comparison operator, and the value that you want to
158258// use for filtering. The value must be a string, a number, or a
158259// boolean. The comparison operator must be either `=`, `!=`, `>`, or
158260// `<`.
158261//
158262// For example, if you are filtering Compute Engine instances, you can
158263// exclude instances named `example-instance` by specifying `name !=
158264// example-instance`.
158265//
158266// You can also filter nested fields. For example, you could specify
158267// `scheduling.automaticRestart = false` to include instances only if
158268// they are not scheduled for automatic restarts. You can use filtering
158269// on nested fields to filter based on resource labels.
158270//
158271// To filter on multiple expressions, provide each separate expression
158272// within parentheses. For example: ``` (scheduling.automaticRestart =
158273// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
158274// is an `AND` expression. However, you can include `AND` and `OR`
158275// expressions explicitly. For example: ``` (cpuPlatform = "Intel
158276// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
158277// (scheduling.automaticRestart = true) ```
158278func (c *SslCertificatesListCall) Filter(filter string) *SslCertificatesListCall {
158279	c.urlParams_.Set("filter", filter)
158280	return c
158281}
158282
158283// MaxResults sets the optional parameter "maxResults": The maximum
158284// number of results per page that should be returned. If the number of
158285// available results is larger than `maxResults`, Compute Engine returns
158286// a `nextPageToken` that can be used to get the next page of results in
158287// subsequent list requests. Acceptable values are `0` to `500`,
158288// inclusive. (Default: `500`)
158289func (c *SslCertificatesListCall) MaxResults(maxResults int64) *SslCertificatesListCall {
158290	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
158291	return c
158292}
158293
158294// OrderBy sets the optional parameter "orderBy": Sorts list results by
158295// a certain order. By default, results are returned in alphanumerical
158296// order based on the resource name.
158297//
158298// You can also sort results in descending order based on the creation
158299// timestamp using `orderBy="creationTimestamp desc". This sorts
158300// results based on the `creationTimestamp` field in reverse
158301// chronological order (newest result first). Use this to sort resources
158302// like operations so that the newest operation is returned
158303// first.
158304//
158305// Currently, only sorting by `name` or `creationTimestamp desc` is
158306// supported.
158307func (c *SslCertificatesListCall) OrderBy(orderBy string) *SslCertificatesListCall {
158308	c.urlParams_.Set("orderBy", orderBy)
158309	return c
158310}
158311
158312// PageToken sets the optional parameter "pageToken": Specifies a page
158313// token to use. Set `pageToken` to the `nextPageToken` returned by a
158314// previous list request to get the next page of results.
158315func (c *SslCertificatesListCall) PageToken(pageToken string) *SslCertificatesListCall {
158316	c.urlParams_.Set("pageToken", pageToken)
158317	return c
158318}
158319
158320// ReturnPartialSuccess sets the optional parameter
158321// "returnPartialSuccess": Opt-in for partial success behavior which
158322// provides partial results in case of failure. The default value is
158323// false.
158324func (c *SslCertificatesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SslCertificatesListCall {
158325	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
158326	return c
158327}
158328
158329// Fields allows partial responses to be retrieved. See
158330// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
158331// for more information.
158332func (c *SslCertificatesListCall) Fields(s ...googleapi.Field) *SslCertificatesListCall {
158333	c.urlParams_.Set("fields", googleapi.CombineFields(s))
158334	return c
158335}
158336
158337// IfNoneMatch sets the optional parameter which makes the operation
158338// fail if the object's ETag matches the given value. This is useful for
158339// getting updates only after the object has changed since the last
158340// request. Use googleapi.IsNotModified to check whether the response
158341// error from Do is the result of In-None-Match.
158342func (c *SslCertificatesListCall) IfNoneMatch(entityTag string) *SslCertificatesListCall {
158343	c.ifNoneMatch_ = entityTag
158344	return c
158345}
158346
158347// Context sets the context to be used in this call's Do method. Any
158348// pending HTTP request will be aborted if the provided context is
158349// canceled.
158350func (c *SslCertificatesListCall) Context(ctx context.Context) *SslCertificatesListCall {
158351	c.ctx_ = ctx
158352	return c
158353}
158354
158355// Header returns an http.Header that can be modified by the caller to
158356// add HTTP headers to the request.
158357func (c *SslCertificatesListCall) Header() http.Header {
158358	if c.header_ == nil {
158359		c.header_ = make(http.Header)
158360	}
158361	return c.header_
158362}
158363
158364func (c *SslCertificatesListCall) doRequest(alt string) (*http.Response, error) {
158365	reqHeaders := make(http.Header)
158366	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
158367	for k, v := range c.header_ {
158368		reqHeaders[k] = v
158369	}
158370	reqHeaders.Set("User-Agent", c.s.userAgent())
158371	if c.ifNoneMatch_ != "" {
158372		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
158373	}
158374	var body io.Reader = nil
158375	c.urlParams_.Set("alt", alt)
158376	c.urlParams_.Set("prettyPrint", "false")
158377	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslCertificates")
158378	urls += "?" + c.urlParams_.Encode()
158379	req, err := http.NewRequest("GET", urls, body)
158380	if err != nil {
158381		return nil, err
158382	}
158383	req.Header = reqHeaders
158384	googleapi.Expand(req.URL, map[string]string{
158385		"project": c.project,
158386	})
158387	return gensupport.SendRequest(c.ctx_, c.s.client, req)
158388}
158389
158390// Do executes the "compute.sslCertificates.list" call.
158391// Exactly one of *SslCertificateList or error will be non-nil. Any
158392// non-2xx status code is an error. Response headers are in either
158393// *SslCertificateList.ServerResponse.Header or (if a response was
158394// returned at all) in error.(*googleapi.Error).Header. Use
158395// googleapi.IsNotModified to check whether the returned error was
158396// because http.StatusNotModified was returned.
158397func (c *SslCertificatesListCall) Do(opts ...googleapi.CallOption) (*SslCertificateList, error) {
158398	gensupport.SetOptions(c.urlParams_, opts...)
158399	res, err := c.doRequest("json")
158400	if res != nil && res.StatusCode == http.StatusNotModified {
158401		if res.Body != nil {
158402			res.Body.Close()
158403		}
158404		return nil, &googleapi.Error{
158405			Code:   res.StatusCode,
158406			Header: res.Header,
158407		}
158408	}
158409	if err != nil {
158410		return nil, err
158411	}
158412	defer googleapi.CloseBody(res)
158413	if err := googleapi.CheckResponse(res); err != nil {
158414		return nil, err
158415	}
158416	ret := &SslCertificateList{
158417		ServerResponse: googleapi.ServerResponse{
158418			Header:         res.Header,
158419			HTTPStatusCode: res.StatusCode,
158420		},
158421	}
158422	target := &ret
158423	if err := gensupport.DecodeResponse(target, res); err != nil {
158424		return nil, err
158425	}
158426	return ret, nil
158427	// {
158428	//   "description": "Retrieves the list of SslCertificate resources available to the specified project.",
158429	//   "httpMethod": "GET",
158430	//   "id": "compute.sslCertificates.list",
158431	//   "parameterOrder": [
158432	//     "project"
158433	//   ],
158434	//   "parameters": {
158435	//     "filter": {
158436	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
158437	//       "location": "query",
158438	//       "type": "string"
158439	//     },
158440	//     "maxResults": {
158441	//       "default": "500",
158442	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
158443	//       "format": "uint32",
158444	//       "location": "query",
158445	//       "minimum": "0",
158446	//       "type": "integer"
158447	//     },
158448	//     "orderBy": {
158449	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
158450	//       "location": "query",
158451	//       "type": "string"
158452	//     },
158453	//     "pageToken": {
158454	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
158455	//       "location": "query",
158456	//       "type": "string"
158457	//     },
158458	//     "project": {
158459	//       "description": "Project ID for this request.",
158460	//       "location": "path",
158461	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
158462	//       "required": true,
158463	//       "type": "string"
158464	//     },
158465	//     "returnPartialSuccess": {
158466	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
158467	//       "location": "query",
158468	//       "type": "boolean"
158469	//     }
158470	//   },
158471	//   "path": "projects/{project}/global/sslCertificates",
158472	//   "response": {
158473	//     "$ref": "SslCertificateList"
158474	//   },
158475	//   "scopes": [
158476	//     "https://www.googleapis.com/auth/cloud-platform",
158477	//     "https://www.googleapis.com/auth/compute",
158478	//     "https://www.googleapis.com/auth/compute.readonly"
158479	//   ]
158480	// }
158481
158482}
158483
158484// Pages invokes f for each page of results.
158485// A non-nil error returned from f will halt the iteration.
158486// The provided context supersedes any context provided to the Context method.
158487func (c *SslCertificatesListCall) Pages(ctx context.Context, f func(*SslCertificateList) error) error {
158488	c.ctx_ = ctx
158489	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
158490	for {
158491		x, err := c.Do()
158492		if err != nil {
158493			return err
158494		}
158495		if err := f(x); err != nil {
158496			return err
158497		}
158498		if x.NextPageToken == "" {
158499			return nil
158500		}
158501		c.PageToken(x.NextPageToken)
158502	}
158503}
158504
158505// method id "compute.sslCertificates.testIamPermissions":
158506
158507type SslCertificatesTestIamPermissionsCall struct {
158508	s                      *Service
158509	project                string
158510	resource               string
158511	testpermissionsrequest *TestPermissionsRequest
158512	urlParams_             gensupport.URLParams
158513	ctx_                   context.Context
158514	header_                http.Header
158515}
158516
158517// TestIamPermissions: Returns permissions that a caller has on the
158518// specified resource.
158519func (r *SslCertificatesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *SslCertificatesTestIamPermissionsCall {
158520	c := &SslCertificatesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
158521	c.project = project
158522	c.resource = resource
158523	c.testpermissionsrequest = testpermissionsrequest
158524	return c
158525}
158526
158527// Fields allows partial responses to be retrieved. See
158528// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
158529// for more information.
158530func (c *SslCertificatesTestIamPermissionsCall) Fields(s ...googleapi.Field) *SslCertificatesTestIamPermissionsCall {
158531	c.urlParams_.Set("fields", googleapi.CombineFields(s))
158532	return c
158533}
158534
158535// Context sets the context to be used in this call's Do method. Any
158536// pending HTTP request will be aborted if the provided context is
158537// canceled.
158538func (c *SslCertificatesTestIamPermissionsCall) Context(ctx context.Context) *SslCertificatesTestIamPermissionsCall {
158539	c.ctx_ = ctx
158540	return c
158541}
158542
158543// Header returns an http.Header that can be modified by the caller to
158544// add HTTP headers to the request.
158545func (c *SslCertificatesTestIamPermissionsCall) Header() http.Header {
158546	if c.header_ == nil {
158547		c.header_ = make(http.Header)
158548	}
158549	return c.header_
158550}
158551
158552func (c *SslCertificatesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
158553	reqHeaders := make(http.Header)
158554	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
158555	for k, v := range c.header_ {
158556		reqHeaders[k] = v
158557	}
158558	reqHeaders.Set("User-Agent", c.s.userAgent())
158559	var body io.Reader = nil
158560	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
158561	if err != nil {
158562		return nil, err
158563	}
158564	reqHeaders.Set("Content-Type", "application/json")
158565	c.urlParams_.Set("alt", alt)
158566	c.urlParams_.Set("prettyPrint", "false")
158567	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslCertificates/{resource}/testIamPermissions")
158568	urls += "?" + c.urlParams_.Encode()
158569	req, err := http.NewRequest("POST", urls, body)
158570	if err != nil {
158571		return nil, err
158572	}
158573	req.Header = reqHeaders
158574	googleapi.Expand(req.URL, map[string]string{
158575		"project":  c.project,
158576		"resource": c.resource,
158577	})
158578	return gensupport.SendRequest(c.ctx_, c.s.client, req)
158579}
158580
158581// Do executes the "compute.sslCertificates.testIamPermissions" call.
158582// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
158583// non-2xx status code is an error. Response headers are in either
158584// *TestPermissionsResponse.ServerResponse.Header or (if a response was
158585// returned at all) in error.(*googleapi.Error).Header. Use
158586// googleapi.IsNotModified to check whether the returned error was
158587// because http.StatusNotModified was returned.
158588func (c *SslCertificatesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
158589	gensupport.SetOptions(c.urlParams_, opts...)
158590	res, err := c.doRequest("json")
158591	if res != nil && res.StatusCode == http.StatusNotModified {
158592		if res.Body != nil {
158593			res.Body.Close()
158594		}
158595		return nil, &googleapi.Error{
158596			Code:   res.StatusCode,
158597			Header: res.Header,
158598		}
158599	}
158600	if err != nil {
158601		return nil, err
158602	}
158603	defer googleapi.CloseBody(res)
158604	if err := googleapi.CheckResponse(res); err != nil {
158605		return nil, err
158606	}
158607	ret := &TestPermissionsResponse{
158608		ServerResponse: googleapi.ServerResponse{
158609			Header:         res.Header,
158610			HTTPStatusCode: res.StatusCode,
158611		},
158612	}
158613	target := &ret
158614	if err := gensupport.DecodeResponse(target, res); err != nil {
158615		return nil, err
158616	}
158617	return ret, nil
158618	// {
158619	//   "description": "Returns permissions that a caller has on the specified resource.",
158620	//   "httpMethod": "POST",
158621	//   "id": "compute.sslCertificates.testIamPermissions",
158622	//   "parameterOrder": [
158623	//     "project",
158624	//     "resource"
158625	//   ],
158626	//   "parameters": {
158627	//     "project": {
158628	//       "description": "Project ID for this request.",
158629	//       "location": "path",
158630	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
158631	//       "required": true,
158632	//       "type": "string"
158633	//     },
158634	//     "resource": {
158635	//       "description": "Name or id of the resource for this request.",
158636	//       "location": "path",
158637	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
158638	//       "required": true,
158639	//       "type": "string"
158640	//     }
158641	//   },
158642	//   "path": "projects/{project}/global/sslCertificates/{resource}/testIamPermissions",
158643	//   "request": {
158644	//     "$ref": "TestPermissionsRequest"
158645	//   },
158646	//   "response": {
158647	//     "$ref": "TestPermissionsResponse"
158648	//   },
158649	//   "scopes": [
158650	//     "https://www.googleapis.com/auth/cloud-platform",
158651	//     "https://www.googleapis.com/auth/compute",
158652	//     "https://www.googleapis.com/auth/compute.readonly"
158653	//   ]
158654	// }
158655
158656}
158657
158658// method id "compute.sslPolicies.delete":
158659
158660type SslPoliciesDeleteCall struct {
158661	s          *Service
158662	project    string
158663	sslPolicy  string
158664	urlParams_ gensupport.URLParams
158665	ctx_       context.Context
158666	header_    http.Header
158667}
158668
158669// Delete: Deletes the specified SSL policy. The SSL policy resource can
158670// be deleted only if it is not in use by any TargetHttpsProxy or
158671// TargetSslProxy resources.
158672func (r *SslPoliciesService) Delete(project string, sslPolicy string) *SslPoliciesDeleteCall {
158673	c := &SslPoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
158674	c.project = project
158675	c.sslPolicy = sslPolicy
158676	return c
158677}
158678
158679// RequestId sets the optional parameter "requestId": An optional
158680// request ID to identify requests. Specify a unique request ID so that
158681// if you must retry your request, the server will know to ignore the
158682// request if it has already been completed.
158683//
158684// For example, consider a situation where you make an initial request
158685// and the request times out. If you make the request again with the
158686// same request ID, the server can check if original operation with the
158687// same request ID was received, and if so, will ignore the second
158688// request. This prevents clients from accidentally creating duplicate
158689// commitments.
158690//
158691// The request ID must be a valid UUID with the exception that zero UUID
158692// is not supported (00000000-0000-0000-0000-000000000000).
158693func (c *SslPoliciesDeleteCall) RequestId(requestId string) *SslPoliciesDeleteCall {
158694	c.urlParams_.Set("requestId", requestId)
158695	return c
158696}
158697
158698// Fields allows partial responses to be retrieved. See
158699// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
158700// for more information.
158701func (c *SslPoliciesDeleteCall) Fields(s ...googleapi.Field) *SslPoliciesDeleteCall {
158702	c.urlParams_.Set("fields", googleapi.CombineFields(s))
158703	return c
158704}
158705
158706// Context sets the context to be used in this call's Do method. Any
158707// pending HTTP request will be aborted if the provided context is
158708// canceled.
158709func (c *SslPoliciesDeleteCall) Context(ctx context.Context) *SslPoliciesDeleteCall {
158710	c.ctx_ = ctx
158711	return c
158712}
158713
158714// Header returns an http.Header that can be modified by the caller to
158715// add HTTP headers to the request.
158716func (c *SslPoliciesDeleteCall) Header() http.Header {
158717	if c.header_ == nil {
158718		c.header_ = make(http.Header)
158719	}
158720	return c.header_
158721}
158722
158723func (c *SslPoliciesDeleteCall) doRequest(alt string) (*http.Response, error) {
158724	reqHeaders := make(http.Header)
158725	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
158726	for k, v := range c.header_ {
158727		reqHeaders[k] = v
158728	}
158729	reqHeaders.Set("User-Agent", c.s.userAgent())
158730	var body io.Reader = nil
158731	c.urlParams_.Set("alt", alt)
158732	c.urlParams_.Set("prettyPrint", "false")
158733	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslPolicies/{sslPolicy}")
158734	urls += "?" + c.urlParams_.Encode()
158735	req, err := http.NewRequest("DELETE", urls, body)
158736	if err != nil {
158737		return nil, err
158738	}
158739	req.Header = reqHeaders
158740	googleapi.Expand(req.URL, map[string]string{
158741		"project":   c.project,
158742		"sslPolicy": c.sslPolicy,
158743	})
158744	return gensupport.SendRequest(c.ctx_, c.s.client, req)
158745}
158746
158747// Do executes the "compute.sslPolicies.delete" call.
158748// Exactly one of *Operation or error will be non-nil. Any non-2xx
158749// status code is an error. Response headers are in either
158750// *Operation.ServerResponse.Header or (if a response was returned at
158751// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
158752// to check whether the returned error was because
158753// http.StatusNotModified was returned.
158754func (c *SslPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
158755	gensupport.SetOptions(c.urlParams_, opts...)
158756	res, err := c.doRequest("json")
158757	if res != nil && res.StatusCode == http.StatusNotModified {
158758		if res.Body != nil {
158759			res.Body.Close()
158760		}
158761		return nil, &googleapi.Error{
158762			Code:   res.StatusCode,
158763			Header: res.Header,
158764		}
158765	}
158766	if err != nil {
158767		return nil, err
158768	}
158769	defer googleapi.CloseBody(res)
158770	if err := googleapi.CheckResponse(res); err != nil {
158771		return nil, err
158772	}
158773	ret := &Operation{
158774		ServerResponse: googleapi.ServerResponse{
158775			Header:         res.Header,
158776			HTTPStatusCode: res.StatusCode,
158777		},
158778	}
158779	target := &ret
158780	if err := gensupport.DecodeResponse(target, res); err != nil {
158781		return nil, err
158782	}
158783	return ret, nil
158784	// {
158785	//   "description": "Deletes the specified SSL policy. The SSL policy resource can be deleted only if it is not in use by any TargetHttpsProxy or TargetSslProxy resources.",
158786	//   "httpMethod": "DELETE",
158787	//   "id": "compute.sslPolicies.delete",
158788	//   "parameterOrder": [
158789	//     "project",
158790	//     "sslPolicy"
158791	//   ],
158792	//   "parameters": {
158793	//     "project": {
158794	//       "description": "Project ID for this request.",
158795	//       "location": "path",
158796	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
158797	//       "required": true,
158798	//       "type": "string"
158799	//     },
158800	//     "requestId": {
158801	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
158802	//       "location": "query",
158803	//       "type": "string"
158804	//     },
158805	//     "sslPolicy": {
158806	//       "description": "Name of the SSL policy to delete. The name must be 1-63 characters long, and comply with RFC1035.",
158807	//       "location": "path",
158808	//       "required": true,
158809	//       "type": "string"
158810	//     }
158811	//   },
158812	//   "path": "projects/{project}/global/sslPolicies/{sslPolicy}",
158813	//   "response": {
158814	//     "$ref": "Operation"
158815	//   },
158816	//   "scopes": [
158817	//     "https://www.googleapis.com/auth/cloud-platform",
158818	//     "https://www.googleapis.com/auth/compute"
158819	//   ]
158820	// }
158821
158822}
158823
158824// method id "compute.sslPolicies.get":
158825
158826type SslPoliciesGetCall struct {
158827	s            *Service
158828	project      string
158829	sslPolicy    string
158830	urlParams_   gensupport.URLParams
158831	ifNoneMatch_ string
158832	ctx_         context.Context
158833	header_      http.Header
158834}
158835
158836// Get: Lists all of the ordered rules present in a single specified
158837// policy.
158838func (r *SslPoliciesService) Get(project string, sslPolicy string) *SslPoliciesGetCall {
158839	c := &SslPoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
158840	c.project = project
158841	c.sslPolicy = sslPolicy
158842	return c
158843}
158844
158845// Fields allows partial responses to be retrieved. See
158846// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
158847// for more information.
158848func (c *SslPoliciesGetCall) Fields(s ...googleapi.Field) *SslPoliciesGetCall {
158849	c.urlParams_.Set("fields", googleapi.CombineFields(s))
158850	return c
158851}
158852
158853// IfNoneMatch sets the optional parameter which makes the operation
158854// fail if the object's ETag matches the given value. This is useful for
158855// getting updates only after the object has changed since the last
158856// request. Use googleapi.IsNotModified to check whether the response
158857// error from Do is the result of In-None-Match.
158858func (c *SslPoliciesGetCall) IfNoneMatch(entityTag string) *SslPoliciesGetCall {
158859	c.ifNoneMatch_ = entityTag
158860	return c
158861}
158862
158863// Context sets the context to be used in this call's Do method. Any
158864// pending HTTP request will be aborted if the provided context is
158865// canceled.
158866func (c *SslPoliciesGetCall) Context(ctx context.Context) *SslPoliciesGetCall {
158867	c.ctx_ = ctx
158868	return c
158869}
158870
158871// Header returns an http.Header that can be modified by the caller to
158872// add HTTP headers to the request.
158873func (c *SslPoliciesGetCall) Header() http.Header {
158874	if c.header_ == nil {
158875		c.header_ = make(http.Header)
158876	}
158877	return c.header_
158878}
158879
158880func (c *SslPoliciesGetCall) doRequest(alt string) (*http.Response, error) {
158881	reqHeaders := make(http.Header)
158882	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
158883	for k, v := range c.header_ {
158884		reqHeaders[k] = v
158885	}
158886	reqHeaders.Set("User-Agent", c.s.userAgent())
158887	if c.ifNoneMatch_ != "" {
158888		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
158889	}
158890	var body io.Reader = nil
158891	c.urlParams_.Set("alt", alt)
158892	c.urlParams_.Set("prettyPrint", "false")
158893	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslPolicies/{sslPolicy}")
158894	urls += "?" + c.urlParams_.Encode()
158895	req, err := http.NewRequest("GET", urls, body)
158896	if err != nil {
158897		return nil, err
158898	}
158899	req.Header = reqHeaders
158900	googleapi.Expand(req.URL, map[string]string{
158901		"project":   c.project,
158902		"sslPolicy": c.sslPolicy,
158903	})
158904	return gensupport.SendRequest(c.ctx_, c.s.client, req)
158905}
158906
158907// Do executes the "compute.sslPolicies.get" call.
158908// Exactly one of *SslPolicy or error will be non-nil. Any non-2xx
158909// status code is an error. Response headers are in either
158910// *SslPolicy.ServerResponse.Header or (if a response was returned at
158911// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
158912// to check whether the returned error was because
158913// http.StatusNotModified was returned.
158914func (c *SslPoliciesGetCall) Do(opts ...googleapi.CallOption) (*SslPolicy, error) {
158915	gensupport.SetOptions(c.urlParams_, opts...)
158916	res, err := c.doRequest("json")
158917	if res != nil && res.StatusCode == http.StatusNotModified {
158918		if res.Body != nil {
158919			res.Body.Close()
158920		}
158921		return nil, &googleapi.Error{
158922			Code:   res.StatusCode,
158923			Header: res.Header,
158924		}
158925	}
158926	if err != nil {
158927		return nil, err
158928	}
158929	defer googleapi.CloseBody(res)
158930	if err := googleapi.CheckResponse(res); err != nil {
158931		return nil, err
158932	}
158933	ret := &SslPolicy{
158934		ServerResponse: googleapi.ServerResponse{
158935			Header:         res.Header,
158936			HTTPStatusCode: res.StatusCode,
158937		},
158938	}
158939	target := &ret
158940	if err := gensupport.DecodeResponse(target, res); err != nil {
158941		return nil, err
158942	}
158943	return ret, nil
158944	// {
158945	//   "description": "Lists all of the ordered rules present in a single specified policy.",
158946	//   "httpMethod": "GET",
158947	//   "id": "compute.sslPolicies.get",
158948	//   "parameterOrder": [
158949	//     "project",
158950	//     "sslPolicy"
158951	//   ],
158952	//   "parameters": {
158953	//     "project": {
158954	//       "description": "Project ID for this request.",
158955	//       "location": "path",
158956	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
158957	//       "required": true,
158958	//       "type": "string"
158959	//     },
158960	//     "sslPolicy": {
158961	//       "description": "Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035.",
158962	//       "location": "path",
158963	//       "required": true,
158964	//       "type": "string"
158965	//     }
158966	//   },
158967	//   "path": "projects/{project}/global/sslPolicies/{sslPolicy}",
158968	//   "response": {
158969	//     "$ref": "SslPolicy"
158970	//   },
158971	//   "scopes": [
158972	//     "https://www.googleapis.com/auth/cloud-platform",
158973	//     "https://www.googleapis.com/auth/compute",
158974	//     "https://www.googleapis.com/auth/compute.readonly"
158975	//   ]
158976	// }
158977
158978}
158979
158980// method id "compute.sslPolicies.insert":
158981
158982type SslPoliciesInsertCall struct {
158983	s          *Service
158984	project    string
158985	sslpolicy  *SslPolicy
158986	urlParams_ gensupport.URLParams
158987	ctx_       context.Context
158988	header_    http.Header
158989}
158990
158991// Insert: Returns the specified SSL policy resource. Gets a list of
158992// available SSL policies by making a list() request.
158993func (r *SslPoliciesService) Insert(project string, sslpolicy *SslPolicy) *SslPoliciesInsertCall {
158994	c := &SslPoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
158995	c.project = project
158996	c.sslpolicy = sslpolicy
158997	return c
158998}
158999
159000// RequestId sets the optional parameter "requestId": An optional
159001// request ID to identify requests. Specify a unique request ID so that
159002// if you must retry your request, the server will know to ignore the
159003// request if it has already been completed.
159004//
159005// For example, consider a situation where you make an initial request
159006// and the request times out. If you make the request again with the
159007// same request ID, the server can check if original operation with the
159008// same request ID was received, and if so, will ignore the second
159009// request. This prevents clients from accidentally creating duplicate
159010// commitments.
159011//
159012// The request ID must be a valid UUID with the exception that zero UUID
159013// is not supported (00000000-0000-0000-0000-000000000000).
159014func (c *SslPoliciesInsertCall) RequestId(requestId string) *SslPoliciesInsertCall {
159015	c.urlParams_.Set("requestId", requestId)
159016	return c
159017}
159018
159019// Fields allows partial responses to be retrieved. See
159020// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
159021// for more information.
159022func (c *SslPoliciesInsertCall) Fields(s ...googleapi.Field) *SslPoliciesInsertCall {
159023	c.urlParams_.Set("fields", googleapi.CombineFields(s))
159024	return c
159025}
159026
159027// Context sets the context to be used in this call's Do method. Any
159028// pending HTTP request will be aborted if the provided context is
159029// canceled.
159030func (c *SslPoliciesInsertCall) Context(ctx context.Context) *SslPoliciesInsertCall {
159031	c.ctx_ = ctx
159032	return c
159033}
159034
159035// Header returns an http.Header that can be modified by the caller to
159036// add HTTP headers to the request.
159037func (c *SslPoliciesInsertCall) Header() http.Header {
159038	if c.header_ == nil {
159039		c.header_ = make(http.Header)
159040	}
159041	return c.header_
159042}
159043
159044func (c *SslPoliciesInsertCall) doRequest(alt string) (*http.Response, error) {
159045	reqHeaders := make(http.Header)
159046	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
159047	for k, v := range c.header_ {
159048		reqHeaders[k] = v
159049	}
159050	reqHeaders.Set("User-Agent", c.s.userAgent())
159051	var body io.Reader = nil
159052	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicy)
159053	if err != nil {
159054		return nil, err
159055	}
159056	reqHeaders.Set("Content-Type", "application/json")
159057	c.urlParams_.Set("alt", alt)
159058	c.urlParams_.Set("prettyPrint", "false")
159059	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslPolicies")
159060	urls += "?" + c.urlParams_.Encode()
159061	req, err := http.NewRequest("POST", urls, body)
159062	if err != nil {
159063		return nil, err
159064	}
159065	req.Header = reqHeaders
159066	googleapi.Expand(req.URL, map[string]string{
159067		"project": c.project,
159068	})
159069	return gensupport.SendRequest(c.ctx_, c.s.client, req)
159070}
159071
159072// Do executes the "compute.sslPolicies.insert" call.
159073// Exactly one of *Operation or error will be non-nil. Any non-2xx
159074// status code is an error. Response headers are in either
159075// *Operation.ServerResponse.Header or (if a response was returned at
159076// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
159077// to check whether the returned error was because
159078// http.StatusNotModified was returned.
159079func (c *SslPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
159080	gensupport.SetOptions(c.urlParams_, opts...)
159081	res, err := c.doRequest("json")
159082	if res != nil && res.StatusCode == http.StatusNotModified {
159083		if res.Body != nil {
159084			res.Body.Close()
159085		}
159086		return nil, &googleapi.Error{
159087			Code:   res.StatusCode,
159088			Header: res.Header,
159089		}
159090	}
159091	if err != nil {
159092		return nil, err
159093	}
159094	defer googleapi.CloseBody(res)
159095	if err := googleapi.CheckResponse(res); err != nil {
159096		return nil, err
159097	}
159098	ret := &Operation{
159099		ServerResponse: googleapi.ServerResponse{
159100			Header:         res.Header,
159101			HTTPStatusCode: res.StatusCode,
159102		},
159103	}
159104	target := &ret
159105	if err := gensupport.DecodeResponse(target, res); err != nil {
159106		return nil, err
159107	}
159108	return ret, nil
159109	// {
159110	//   "description": "Returns the specified SSL policy resource. Gets a list of available SSL policies by making a list() request.",
159111	//   "httpMethod": "POST",
159112	//   "id": "compute.sslPolicies.insert",
159113	//   "parameterOrder": [
159114	//     "project"
159115	//   ],
159116	//   "parameters": {
159117	//     "project": {
159118	//       "description": "Project ID for this request.",
159119	//       "location": "path",
159120	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
159121	//       "required": true,
159122	//       "type": "string"
159123	//     },
159124	//     "requestId": {
159125	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
159126	//       "location": "query",
159127	//       "type": "string"
159128	//     }
159129	//   },
159130	//   "path": "projects/{project}/global/sslPolicies",
159131	//   "request": {
159132	//     "$ref": "SslPolicy"
159133	//   },
159134	//   "response": {
159135	//     "$ref": "Operation"
159136	//   },
159137	//   "scopes": [
159138	//     "https://www.googleapis.com/auth/cloud-platform",
159139	//     "https://www.googleapis.com/auth/compute"
159140	//   ]
159141	// }
159142
159143}
159144
159145// method id "compute.sslPolicies.list":
159146
159147type SslPoliciesListCall struct {
159148	s            *Service
159149	project      string
159150	urlParams_   gensupport.URLParams
159151	ifNoneMatch_ string
159152	ctx_         context.Context
159153	header_      http.Header
159154}
159155
159156// List: Lists all the SSL policies that have been configured for the
159157// specified project.
159158func (r *SslPoliciesService) List(project string) *SslPoliciesListCall {
159159	c := &SslPoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
159160	c.project = project
159161	return c
159162}
159163
159164// Filter sets the optional parameter "filter": A filter expression that
159165// filters resources listed in the response. The expression must specify
159166// the field name, a comparison operator, and the value that you want to
159167// use for filtering. The value must be a string, a number, or a
159168// boolean. The comparison operator must be either `=`, `!=`, `>`, or
159169// `<`.
159170//
159171// For example, if you are filtering Compute Engine instances, you can
159172// exclude instances named `example-instance` by specifying `name !=
159173// example-instance`.
159174//
159175// You can also filter nested fields. For example, you could specify
159176// `scheduling.automaticRestart = false` to include instances only if
159177// they are not scheduled for automatic restarts. You can use filtering
159178// on nested fields to filter based on resource labels.
159179//
159180// To filter on multiple expressions, provide each separate expression
159181// within parentheses. For example: ``` (scheduling.automaticRestart =
159182// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
159183// is an `AND` expression. However, you can include `AND` and `OR`
159184// expressions explicitly. For example: ``` (cpuPlatform = "Intel
159185// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
159186// (scheduling.automaticRestart = true) ```
159187func (c *SslPoliciesListCall) Filter(filter string) *SslPoliciesListCall {
159188	c.urlParams_.Set("filter", filter)
159189	return c
159190}
159191
159192// MaxResults sets the optional parameter "maxResults": The maximum
159193// number of results per page that should be returned. If the number of
159194// available results is larger than `maxResults`, Compute Engine returns
159195// a `nextPageToken` that can be used to get the next page of results in
159196// subsequent list requests. Acceptable values are `0` to `500`,
159197// inclusive. (Default: `500`)
159198func (c *SslPoliciesListCall) MaxResults(maxResults int64) *SslPoliciesListCall {
159199	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
159200	return c
159201}
159202
159203// OrderBy sets the optional parameter "orderBy": Sorts list results by
159204// a certain order. By default, results are returned in alphanumerical
159205// order based on the resource name.
159206//
159207// You can also sort results in descending order based on the creation
159208// timestamp using `orderBy="creationTimestamp desc". This sorts
159209// results based on the `creationTimestamp` field in reverse
159210// chronological order (newest result first). Use this to sort resources
159211// like operations so that the newest operation is returned
159212// first.
159213//
159214// Currently, only sorting by `name` or `creationTimestamp desc` is
159215// supported.
159216func (c *SslPoliciesListCall) OrderBy(orderBy string) *SslPoliciesListCall {
159217	c.urlParams_.Set("orderBy", orderBy)
159218	return c
159219}
159220
159221// PageToken sets the optional parameter "pageToken": Specifies a page
159222// token to use. Set `pageToken` to the `nextPageToken` returned by a
159223// previous list request to get the next page of results.
159224func (c *SslPoliciesListCall) PageToken(pageToken string) *SslPoliciesListCall {
159225	c.urlParams_.Set("pageToken", pageToken)
159226	return c
159227}
159228
159229// ReturnPartialSuccess sets the optional parameter
159230// "returnPartialSuccess": Opt-in for partial success behavior which
159231// provides partial results in case of failure. The default value is
159232// false.
159233func (c *SslPoliciesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SslPoliciesListCall {
159234	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
159235	return c
159236}
159237
159238// Fields allows partial responses to be retrieved. See
159239// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
159240// for more information.
159241func (c *SslPoliciesListCall) Fields(s ...googleapi.Field) *SslPoliciesListCall {
159242	c.urlParams_.Set("fields", googleapi.CombineFields(s))
159243	return c
159244}
159245
159246// IfNoneMatch sets the optional parameter which makes the operation
159247// fail if the object's ETag matches the given value. This is useful for
159248// getting updates only after the object has changed since the last
159249// request. Use googleapi.IsNotModified to check whether the response
159250// error from Do is the result of In-None-Match.
159251func (c *SslPoliciesListCall) IfNoneMatch(entityTag string) *SslPoliciesListCall {
159252	c.ifNoneMatch_ = entityTag
159253	return c
159254}
159255
159256// Context sets the context to be used in this call's Do method. Any
159257// pending HTTP request will be aborted if the provided context is
159258// canceled.
159259func (c *SslPoliciesListCall) Context(ctx context.Context) *SslPoliciesListCall {
159260	c.ctx_ = ctx
159261	return c
159262}
159263
159264// Header returns an http.Header that can be modified by the caller to
159265// add HTTP headers to the request.
159266func (c *SslPoliciesListCall) Header() http.Header {
159267	if c.header_ == nil {
159268		c.header_ = make(http.Header)
159269	}
159270	return c.header_
159271}
159272
159273func (c *SslPoliciesListCall) doRequest(alt string) (*http.Response, error) {
159274	reqHeaders := make(http.Header)
159275	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
159276	for k, v := range c.header_ {
159277		reqHeaders[k] = v
159278	}
159279	reqHeaders.Set("User-Agent", c.s.userAgent())
159280	if c.ifNoneMatch_ != "" {
159281		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
159282	}
159283	var body io.Reader = nil
159284	c.urlParams_.Set("alt", alt)
159285	c.urlParams_.Set("prettyPrint", "false")
159286	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslPolicies")
159287	urls += "?" + c.urlParams_.Encode()
159288	req, err := http.NewRequest("GET", urls, body)
159289	if err != nil {
159290		return nil, err
159291	}
159292	req.Header = reqHeaders
159293	googleapi.Expand(req.URL, map[string]string{
159294		"project": c.project,
159295	})
159296	return gensupport.SendRequest(c.ctx_, c.s.client, req)
159297}
159298
159299// Do executes the "compute.sslPolicies.list" call.
159300// Exactly one of *SslPoliciesList or error will be non-nil. Any non-2xx
159301// status code is an error. Response headers are in either
159302// *SslPoliciesList.ServerResponse.Header or (if a response was returned
159303// at all) in error.(*googleapi.Error).Header. Use
159304// googleapi.IsNotModified to check whether the returned error was
159305// because http.StatusNotModified was returned.
159306func (c *SslPoliciesListCall) Do(opts ...googleapi.CallOption) (*SslPoliciesList, error) {
159307	gensupport.SetOptions(c.urlParams_, opts...)
159308	res, err := c.doRequest("json")
159309	if res != nil && res.StatusCode == http.StatusNotModified {
159310		if res.Body != nil {
159311			res.Body.Close()
159312		}
159313		return nil, &googleapi.Error{
159314			Code:   res.StatusCode,
159315			Header: res.Header,
159316		}
159317	}
159318	if err != nil {
159319		return nil, err
159320	}
159321	defer googleapi.CloseBody(res)
159322	if err := googleapi.CheckResponse(res); err != nil {
159323		return nil, err
159324	}
159325	ret := &SslPoliciesList{
159326		ServerResponse: googleapi.ServerResponse{
159327			Header:         res.Header,
159328			HTTPStatusCode: res.StatusCode,
159329		},
159330	}
159331	target := &ret
159332	if err := gensupport.DecodeResponse(target, res); err != nil {
159333		return nil, err
159334	}
159335	return ret, nil
159336	// {
159337	//   "description": "Lists all the SSL policies that have been configured for the specified project.",
159338	//   "httpMethod": "GET",
159339	//   "id": "compute.sslPolicies.list",
159340	//   "parameterOrder": [
159341	//     "project"
159342	//   ],
159343	//   "parameters": {
159344	//     "filter": {
159345	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
159346	//       "location": "query",
159347	//       "type": "string"
159348	//     },
159349	//     "maxResults": {
159350	//       "default": "500",
159351	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
159352	//       "format": "uint32",
159353	//       "location": "query",
159354	//       "minimum": "0",
159355	//       "type": "integer"
159356	//     },
159357	//     "orderBy": {
159358	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
159359	//       "location": "query",
159360	//       "type": "string"
159361	//     },
159362	//     "pageToken": {
159363	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
159364	//       "location": "query",
159365	//       "type": "string"
159366	//     },
159367	//     "project": {
159368	//       "description": "Project ID for this request.",
159369	//       "location": "path",
159370	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
159371	//       "required": true,
159372	//       "type": "string"
159373	//     },
159374	//     "returnPartialSuccess": {
159375	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
159376	//       "location": "query",
159377	//       "type": "boolean"
159378	//     }
159379	//   },
159380	//   "path": "projects/{project}/global/sslPolicies",
159381	//   "response": {
159382	//     "$ref": "SslPoliciesList"
159383	//   },
159384	//   "scopes": [
159385	//     "https://www.googleapis.com/auth/cloud-platform",
159386	//     "https://www.googleapis.com/auth/compute",
159387	//     "https://www.googleapis.com/auth/compute.readonly"
159388	//   ]
159389	// }
159390
159391}
159392
159393// Pages invokes f for each page of results.
159394// A non-nil error returned from f will halt the iteration.
159395// The provided context supersedes any context provided to the Context method.
159396func (c *SslPoliciesListCall) Pages(ctx context.Context, f func(*SslPoliciesList) error) error {
159397	c.ctx_ = ctx
159398	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
159399	for {
159400		x, err := c.Do()
159401		if err != nil {
159402			return err
159403		}
159404		if err := f(x); err != nil {
159405			return err
159406		}
159407		if x.NextPageToken == "" {
159408			return nil
159409		}
159410		c.PageToken(x.NextPageToken)
159411	}
159412}
159413
159414// method id "compute.sslPolicies.listAvailableFeatures":
159415
159416type SslPoliciesListAvailableFeaturesCall struct {
159417	s            *Service
159418	project      string
159419	urlParams_   gensupport.URLParams
159420	ifNoneMatch_ string
159421	ctx_         context.Context
159422	header_      http.Header
159423}
159424
159425// ListAvailableFeatures: Lists all features that can be specified in
159426// the SSL policy when using custom profile.
159427func (r *SslPoliciesService) ListAvailableFeatures(project string) *SslPoliciesListAvailableFeaturesCall {
159428	c := &SslPoliciesListAvailableFeaturesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
159429	c.project = project
159430	return c
159431}
159432
159433// Filter sets the optional parameter "filter": A filter expression that
159434// filters resources listed in the response. The expression must specify
159435// the field name, a comparison operator, and the value that you want to
159436// use for filtering. The value must be a string, a number, or a
159437// boolean. The comparison operator must be either `=`, `!=`, `>`, or
159438// `<`.
159439//
159440// For example, if you are filtering Compute Engine instances, you can
159441// exclude instances named `example-instance` by specifying `name !=
159442// example-instance`.
159443//
159444// You can also filter nested fields. For example, you could specify
159445// `scheduling.automaticRestart = false` to include instances only if
159446// they are not scheduled for automatic restarts. You can use filtering
159447// on nested fields to filter based on resource labels.
159448//
159449// To filter on multiple expressions, provide each separate expression
159450// within parentheses. For example: ``` (scheduling.automaticRestart =
159451// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
159452// is an `AND` expression. However, you can include `AND` and `OR`
159453// expressions explicitly. For example: ``` (cpuPlatform = "Intel
159454// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
159455// (scheduling.automaticRestart = true) ```
159456func (c *SslPoliciesListAvailableFeaturesCall) Filter(filter string) *SslPoliciesListAvailableFeaturesCall {
159457	c.urlParams_.Set("filter", filter)
159458	return c
159459}
159460
159461// MaxResults sets the optional parameter "maxResults": The maximum
159462// number of results per page that should be returned. If the number of
159463// available results is larger than `maxResults`, Compute Engine returns
159464// a `nextPageToken` that can be used to get the next page of results in
159465// subsequent list requests. Acceptable values are `0` to `500`,
159466// inclusive. (Default: `500`)
159467func (c *SslPoliciesListAvailableFeaturesCall) MaxResults(maxResults int64) *SslPoliciesListAvailableFeaturesCall {
159468	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
159469	return c
159470}
159471
159472// OrderBy sets the optional parameter "orderBy": Sorts list results by
159473// a certain order. By default, results are returned in alphanumerical
159474// order based on the resource name.
159475//
159476// You can also sort results in descending order based on the creation
159477// timestamp using `orderBy="creationTimestamp desc". This sorts
159478// results based on the `creationTimestamp` field in reverse
159479// chronological order (newest result first). Use this to sort resources
159480// like operations so that the newest operation is returned
159481// first.
159482//
159483// Currently, only sorting by `name` or `creationTimestamp desc` is
159484// supported.
159485func (c *SslPoliciesListAvailableFeaturesCall) OrderBy(orderBy string) *SslPoliciesListAvailableFeaturesCall {
159486	c.urlParams_.Set("orderBy", orderBy)
159487	return c
159488}
159489
159490// PageToken sets the optional parameter "pageToken": Specifies a page
159491// token to use. Set `pageToken` to the `nextPageToken` returned by a
159492// previous list request to get the next page of results.
159493func (c *SslPoliciesListAvailableFeaturesCall) PageToken(pageToken string) *SslPoliciesListAvailableFeaturesCall {
159494	c.urlParams_.Set("pageToken", pageToken)
159495	return c
159496}
159497
159498// ReturnPartialSuccess sets the optional parameter
159499// "returnPartialSuccess": Opt-in for partial success behavior which
159500// provides partial results in case of failure. The default value is
159501// false.
159502func (c *SslPoliciesListAvailableFeaturesCall) ReturnPartialSuccess(returnPartialSuccess bool) *SslPoliciesListAvailableFeaturesCall {
159503	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
159504	return c
159505}
159506
159507// Fields allows partial responses to be retrieved. See
159508// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
159509// for more information.
159510func (c *SslPoliciesListAvailableFeaturesCall) Fields(s ...googleapi.Field) *SslPoliciesListAvailableFeaturesCall {
159511	c.urlParams_.Set("fields", googleapi.CombineFields(s))
159512	return c
159513}
159514
159515// IfNoneMatch sets the optional parameter which makes the operation
159516// fail if the object's ETag matches the given value. This is useful for
159517// getting updates only after the object has changed since the last
159518// request. Use googleapi.IsNotModified to check whether the response
159519// error from Do is the result of In-None-Match.
159520func (c *SslPoliciesListAvailableFeaturesCall) IfNoneMatch(entityTag string) *SslPoliciesListAvailableFeaturesCall {
159521	c.ifNoneMatch_ = entityTag
159522	return c
159523}
159524
159525// Context sets the context to be used in this call's Do method. Any
159526// pending HTTP request will be aborted if the provided context is
159527// canceled.
159528func (c *SslPoliciesListAvailableFeaturesCall) Context(ctx context.Context) *SslPoliciesListAvailableFeaturesCall {
159529	c.ctx_ = ctx
159530	return c
159531}
159532
159533// Header returns an http.Header that can be modified by the caller to
159534// add HTTP headers to the request.
159535func (c *SslPoliciesListAvailableFeaturesCall) Header() http.Header {
159536	if c.header_ == nil {
159537		c.header_ = make(http.Header)
159538	}
159539	return c.header_
159540}
159541
159542func (c *SslPoliciesListAvailableFeaturesCall) doRequest(alt string) (*http.Response, error) {
159543	reqHeaders := make(http.Header)
159544	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
159545	for k, v := range c.header_ {
159546		reqHeaders[k] = v
159547	}
159548	reqHeaders.Set("User-Agent", c.s.userAgent())
159549	if c.ifNoneMatch_ != "" {
159550		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
159551	}
159552	var body io.Reader = nil
159553	c.urlParams_.Set("alt", alt)
159554	c.urlParams_.Set("prettyPrint", "false")
159555	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslPolicies/listAvailableFeatures")
159556	urls += "?" + c.urlParams_.Encode()
159557	req, err := http.NewRequest("GET", urls, body)
159558	if err != nil {
159559		return nil, err
159560	}
159561	req.Header = reqHeaders
159562	googleapi.Expand(req.URL, map[string]string{
159563		"project": c.project,
159564	})
159565	return gensupport.SendRequest(c.ctx_, c.s.client, req)
159566}
159567
159568// Do executes the "compute.sslPolicies.listAvailableFeatures" call.
159569// Exactly one of *SslPoliciesListAvailableFeaturesResponse or error
159570// will be non-nil. Any non-2xx status code is an error. Response
159571// headers are in either
159572// *SslPoliciesListAvailableFeaturesResponse.ServerResponse.Header or
159573// (if a response was returned at all) in
159574// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
159575// whether the returned error was because http.StatusNotModified was
159576// returned.
159577func (c *SslPoliciesListAvailableFeaturesCall) Do(opts ...googleapi.CallOption) (*SslPoliciesListAvailableFeaturesResponse, error) {
159578	gensupport.SetOptions(c.urlParams_, opts...)
159579	res, err := c.doRequest("json")
159580	if res != nil && res.StatusCode == http.StatusNotModified {
159581		if res.Body != nil {
159582			res.Body.Close()
159583		}
159584		return nil, &googleapi.Error{
159585			Code:   res.StatusCode,
159586			Header: res.Header,
159587		}
159588	}
159589	if err != nil {
159590		return nil, err
159591	}
159592	defer googleapi.CloseBody(res)
159593	if err := googleapi.CheckResponse(res); err != nil {
159594		return nil, err
159595	}
159596	ret := &SslPoliciesListAvailableFeaturesResponse{
159597		ServerResponse: googleapi.ServerResponse{
159598			Header:         res.Header,
159599			HTTPStatusCode: res.StatusCode,
159600		},
159601	}
159602	target := &ret
159603	if err := gensupport.DecodeResponse(target, res); err != nil {
159604		return nil, err
159605	}
159606	return ret, nil
159607	// {
159608	//   "description": "Lists all features that can be specified in the SSL policy when using custom profile.",
159609	//   "httpMethod": "GET",
159610	//   "id": "compute.sslPolicies.listAvailableFeatures",
159611	//   "parameterOrder": [
159612	//     "project"
159613	//   ],
159614	//   "parameters": {
159615	//     "filter": {
159616	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
159617	//       "location": "query",
159618	//       "type": "string"
159619	//     },
159620	//     "maxResults": {
159621	//       "default": "500",
159622	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
159623	//       "format": "uint32",
159624	//       "location": "query",
159625	//       "minimum": "0",
159626	//       "type": "integer"
159627	//     },
159628	//     "orderBy": {
159629	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
159630	//       "location": "query",
159631	//       "type": "string"
159632	//     },
159633	//     "pageToken": {
159634	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
159635	//       "location": "query",
159636	//       "type": "string"
159637	//     },
159638	//     "project": {
159639	//       "description": "Project ID for this request.",
159640	//       "location": "path",
159641	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
159642	//       "required": true,
159643	//       "type": "string"
159644	//     },
159645	//     "returnPartialSuccess": {
159646	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
159647	//       "location": "query",
159648	//       "type": "boolean"
159649	//     }
159650	//   },
159651	//   "path": "projects/{project}/global/sslPolicies/listAvailableFeatures",
159652	//   "response": {
159653	//     "$ref": "SslPoliciesListAvailableFeaturesResponse"
159654	//   },
159655	//   "scopes": [
159656	//     "https://www.googleapis.com/auth/cloud-platform",
159657	//     "https://www.googleapis.com/auth/compute",
159658	//     "https://www.googleapis.com/auth/compute.readonly"
159659	//   ]
159660	// }
159661
159662}
159663
159664// method id "compute.sslPolicies.patch":
159665
159666type SslPoliciesPatchCall struct {
159667	s          *Service
159668	project    string
159669	sslPolicy  string
159670	sslpolicy  *SslPolicy
159671	urlParams_ gensupport.URLParams
159672	ctx_       context.Context
159673	header_    http.Header
159674}
159675
159676// Patch: Patches the specified SSL policy with the data included in the
159677// request.
159678func (r *SslPoliciesService) Patch(project string, sslPolicy string, sslpolicy *SslPolicy) *SslPoliciesPatchCall {
159679	c := &SslPoliciesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
159680	c.project = project
159681	c.sslPolicy = sslPolicy
159682	c.sslpolicy = sslpolicy
159683	return c
159684}
159685
159686// RequestId sets the optional parameter "requestId": An optional
159687// request ID to identify requests. Specify a unique request ID so that
159688// if you must retry your request, the server will know to ignore the
159689// request if it has already been completed.
159690//
159691// For example, consider a situation where you make an initial request
159692// and the request times out. If you make the request again with the
159693// same request ID, the server can check if original operation with the
159694// same request ID was received, and if so, will ignore the second
159695// request. This prevents clients from accidentally creating duplicate
159696// commitments.
159697//
159698// The request ID must be a valid UUID with the exception that zero UUID
159699// is not supported (00000000-0000-0000-0000-000000000000).
159700func (c *SslPoliciesPatchCall) RequestId(requestId string) *SslPoliciesPatchCall {
159701	c.urlParams_.Set("requestId", requestId)
159702	return c
159703}
159704
159705// Fields allows partial responses to be retrieved. See
159706// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
159707// for more information.
159708func (c *SslPoliciesPatchCall) Fields(s ...googleapi.Field) *SslPoliciesPatchCall {
159709	c.urlParams_.Set("fields", googleapi.CombineFields(s))
159710	return c
159711}
159712
159713// Context sets the context to be used in this call's Do method. Any
159714// pending HTTP request will be aborted if the provided context is
159715// canceled.
159716func (c *SslPoliciesPatchCall) Context(ctx context.Context) *SslPoliciesPatchCall {
159717	c.ctx_ = ctx
159718	return c
159719}
159720
159721// Header returns an http.Header that can be modified by the caller to
159722// add HTTP headers to the request.
159723func (c *SslPoliciesPatchCall) Header() http.Header {
159724	if c.header_ == nil {
159725		c.header_ = make(http.Header)
159726	}
159727	return c.header_
159728}
159729
159730func (c *SslPoliciesPatchCall) doRequest(alt string) (*http.Response, error) {
159731	reqHeaders := make(http.Header)
159732	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
159733	for k, v := range c.header_ {
159734		reqHeaders[k] = v
159735	}
159736	reqHeaders.Set("User-Agent", c.s.userAgent())
159737	var body io.Reader = nil
159738	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicy)
159739	if err != nil {
159740		return nil, err
159741	}
159742	reqHeaders.Set("Content-Type", "application/json")
159743	c.urlParams_.Set("alt", alt)
159744	c.urlParams_.Set("prettyPrint", "false")
159745	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslPolicies/{sslPolicy}")
159746	urls += "?" + c.urlParams_.Encode()
159747	req, err := http.NewRequest("PATCH", urls, body)
159748	if err != nil {
159749		return nil, err
159750	}
159751	req.Header = reqHeaders
159752	googleapi.Expand(req.URL, map[string]string{
159753		"project":   c.project,
159754		"sslPolicy": c.sslPolicy,
159755	})
159756	return gensupport.SendRequest(c.ctx_, c.s.client, req)
159757}
159758
159759// Do executes the "compute.sslPolicies.patch" call.
159760// Exactly one of *Operation or error will be non-nil. Any non-2xx
159761// status code is an error. Response headers are in either
159762// *Operation.ServerResponse.Header or (if a response was returned at
159763// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
159764// to check whether the returned error was because
159765// http.StatusNotModified was returned.
159766func (c *SslPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
159767	gensupport.SetOptions(c.urlParams_, opts...)
159768	res, err := c.doRequest("json")
159769	if res != nil && res.StatusCode == http.StatusNotModified {
159770		if res.Body != nil {
159771			res.Body.Close()
159772		}
159773		return nil, &googleapi.Error{
159774			Code:   res.StatusCode,
159775			Header: res.Header,
159776		}
159777	}
159778	if err != nil {
159779		return nil, err
159780	}
159781	defer googleapi.CloseBody(res)
159782	if err := googleapi.CheckResponse(res); err != nil {
159783		return nil, err
159784	}
159785	ret := &Operation{
159786		ServerResponse: googleapi.ServerResponse{
159787			Header:         res.Header,
159788			HTTPStatusCode: res.StatusCode,
159789		},
159790	}
159791	target := &ret
159792	if err := gensupport.DecodeResponse(target, res); err != nil {
159793		return nil, err
159794	}
159795	return ret, nil
159796	// {
159797	//   "description": "Patches the specified SSL policy with the data included in the request.",
159798	//   "httpMethod": "PATCH",
159799	//   "id": "compute.sslPolicies.patch",
159800	//   "parameterOrder": [
159801	//     "project",
159802	//     "sslPolicy"
159803	//   ],
159804	//   "parameters": {
159805	//     "project": {
159806	//       "description": "Project ID for this request.",
159807	//       "location": "path",
159808	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
159809	//       "required": true,
159810	//       "type": "string"
159811	//     },
159812	//     "requestId": {
159813	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
159814	//       "location": "query",
159815	//       "type": "string"
159816	//     },
159817	//     "sslPolicy": {
159818	//       "description": "Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035.",
159819	//       "location": "path",
159820	//       "required": true,
159821	//       "type": "string"
159822	//     }
159823	//   },
159824	//   "path": "projects/{project}/global/sslPolicies/{sslPolicy}",
159825	//   "request": {
159826	//     "$ref": "SslPolicy"
159827	//   },
159828	//   "response": {
159829	//     "$ref": "Operation"
159830	//   },
159831	//   "scopes": [
159832	//     "https://www.googleapis.com/auth/cloud-platform",
159833	//     "https://www.googleapis.com/auth/compute"
159834	//   ]
159835	// }
159836
159837}
159838
159839// method id "compute.sslPolicies.testIamPermissions":
159840
159841type SslPoliciesTestIamPermissionsCall struct {
159842	s                      *Service
159843	project                string
159844	resource               string
159845	testpermissionsrequest *TestPermissionsRequest
159846	urlParams_             gensupport.URLParams
159847	ctx_                   context.Context
159848	header_                http.Header
159849}
159850
159851// TestIamPermissions: Returns permissions that a caller has on the
159852// specified resource.
159853func (r *SslPoliciesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *SslPoliciesTestIamPermissionsCall {
159854	c := &SslPoliciesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
159855	c.project = project
159856	c.resource = resource
159857	c.testpermissionsrequest = testpermissionsrequest
159858	return c
159859}
159860
159861// Fields allows partial responses to be retrieved. See
159862// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
159863// for more information.
159864func (c *SslPoliciesTestIamPermissionsCall) Fields(s ...googleapi.Field) *SslPoliciesTestIamPermissionsCall {
159865	c.urlParams_.Set("fields", googleapi.CombineFields(s))
159866	return c
159867}
159868
159869// Context sets the context to be used in this call's Do method. Any
159870// pending HTTP request will be aborted if the provided context is
159871// canceled.
159872func (c *SslPoliciesTestIamPermissionsCall) Context(ctx context.Context) *SslPoliciesTestIamPermissionsCall {
159873	c.ctx_ = ctx
159874	return c
159875}
159876
159877// Header returns an http.Header that can be modified by the caller to
159878// add HTTP headers to the request.
159879func (c *SslPoliciesTestIamPermissionsCall) Header() http.Header {
159880	if c.header_ == nil {
159881		c.header_ = make(http.Header)
159882	}
159883	return c.header_
159884}
159885
159886func (c *SslPoliciesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
159887	reqHeaders := make(http.Header)
159888	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
159889	for k, v := range c.header_ {
159890		reqHeaders[k] = v
159891	}
159892	reqHeaders.Set("User-Agent", c.s.userAgent())
159893	var body io.Reader = nil
159894	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
159895	if err != nil {
159896		return nil, err
159897	}
159898	reqHeaders.Set("Content-Type", "application/json")
159899	c.urlParams_.Set("alt", alt)
159900	c.urlParams_.Set("prettyPrint", "false")
159901	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslPolicies/{resource}/testIamPermissions")
159902	urls += "?" + c.urlParams_.Encode()
159903	req, err := http.NewRequest("POST", urls, body)
159904	if err != nil {
159905		return nil, err
159906	}
159907	req.Header = reqHeaders
159908	googleapi.Expand(req.URL, map[string]string{
159909		"project":  c.project,
159910		"resource": c.resource,
159911	})
159912	return gensupport.SendRequest(c.ctx_, c.s.client, req)
159913}
159914
159915// Do executes the "compute.sslPolicies.testIamPermissions" call.
159916// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
159917// non-2xx status code is an error. Response headers are in either
159918// *TestPermissionsResponse.ServerResponse.Header or (if a response was
159919// returned at all) in error.(*googleapi.Error).Header. Use
159920// googleapi.IsNotModified to check whether the returned error was
159921// because http.StatusNotModified was returned.
159922func (c *SslPoliciesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
159923	gensupport.SetOptions(c.urlParams_, opts...)
159924	res, err := c.doRequest("json")
159925	if res != nil && res.StatusCode == http.StatusNotModified {
159926		if res.Body != nil {
159927			res.Body.Close()
159928		}
159929		return nil, &googleapi.Error{
159930			Code:   res.StatusCode,
159931			Header: res.Header,
159932		}
159933	}
159934	if err != nil {
159935		return nil, err
159936	}
159937	defer googleapi.CloseBody(res)
159938	if err := googleapi.CheckResponse(res); err != nil {
159939		return nil, err
159940	}
159941	ret := &TestPermissionsResponse{
159942		ServerResponse: googleapi.ServerResponse{
159943			Header:         res.Header,
159944			HTTPStatusCode: res.StatusCode,
159945		},
159946	}
159947	target := &ret
159948	if err := gensupport.DecodeResponse(target, res); err != nil {
159949		return nil, err
159950	}
159951	return ret, nil
159952	// {
159953	//   "description": "Returns permissions that a caller has on the specified resource.",
159954	//   "httpMethod": "POST",
159955	//   "id": "compute.sslPolicies.testIamPermissions",
159956	//   "parameterOrder": [
159957	//     "project",
159958	//     "resource"
159959	//   ],
159960	//   "parameters": {
159961	//     "project": {
159962	//       "description": "Project ID for this request.",
159963	//       "location": "path",
159964	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
159965	//       "required": true,
159966	//       "type": "string"
159967	//     },
159968	//     "resource": {
159969	//       "description": "Name or id of the resource for this request.",
159970	//       "location": "path",
159971	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
159972	//       "required": true,
159973	//       "type": "string"
159974	//     }
159975	//   },
159976	//   "path": "projects/{project}/global/sslPolicies/{resource}/testIamPermissions",
159977	//   "request": {
159978	//     "$ref": "TestPermissionsRequest"
159979	//   },
159980	//   "response": {
159981	//     "$ref": "TestPermissionsResponse"
159982	//   },
159983	//   "scopes": [
159984	//     "https://www.googleapis.com/auth/cloud-platform",
159985	//     "https://www.googleapis.com/auth/compute",
159986	//     "https://www.googleapis.com/auth/compute.readonly"
159987	//   ]
159988	// }
159989
159990}
159991
159992// method id "compute.subnetworks.aggregatedList":
159993
159994type SubnetworksAggregatedListCall struct {
159995	s            *Service
159996	project      string
159997	urlParams_   gensupport.URLParams
159998	ifNoneMatch_ string
159999	ctx_         context.Context
160000	header_      http.Header
160001}
160002
160003// AggregatedList: Retrieves an aggregated list of subnetworks.
160004func (r *SubnetworksService) AggregatedList(project string) *SubnetworksAggregatedListCall {
160005	c := &SubnetworksAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
160006	c.project = project
160007	return c
160008}
160009
160010// Filter sets the optional parameter "filter": A filter expression that
160011// filters resources listed in the response. The expression must specify
160012// the field name, a comparison operator, and the value that you want to
160013// use for filtering. The value must be a string, a number, or a
160014// boolean. The comparison operator must be either `=`, `!=`, `>`, or
160015// `<`.
160016//
160017// For example, if you are filtering Compute Engine instances, you can
160018// exclude instances named `example-instance` by specifying `name !=
160019// example-instance`.
160020//
160021// You can also filter nested fields. For example, you could specify
160022// `scheduling.automaticRestart = false` to include instances only if
160023// they are not scheduled for automatic restarts. You can use filtering
160024// on nested fields to filter based on resource labels.
160025//
160026// To filter on multiple expressions, provide each separate expression
160027// within parentheses. For example: ``` (scheduling.automaticRestart =
160028// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
160029// is an `AND` expression. However, you can include `AND` and `OR`
160030// expressions explicitly. For example: ``` (cpuPlatform = "Intel
160031// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
160032// (scheduling.automaticRestart = true) ```
160033func (c *SubnetworksAggregatedListCall) Filter(filter string) *SubnetworksAggregatedListCall {
160034	c.urlParams_.Set("filter", filter)
160035	return c
160036}
160037
160038// IncludeAllScopes sets the optional parameter "includeAllScopes":
160039// Indicates whether every visible scope for each scope type (zone,
160040// region, global) should be included in the response. For new resource
160041// types added after this field, the flag has no effect as new resource
160042// types will always include every visible scope for each scope type in
160043// response. For resource types which predate this field, if this flag
160044// is omitted or false, only scopes of the scope types where the
160045// resource type is expected to be found will be included.
160046func (c *SubnetworksAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *SubnetworksAggregatedListCall {
160047	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
160048	return c
160049}
160050
160051// MaxResults sets the optional parameter "maxResults": The maximum
160052// number of results per page that should be returned. If the number of
160053// available results is larger than `maxResults`, Compute Engine returns
160054// a `nextPageToken` that can be used to get the next page of results in
160055// subsequent list requests. Acceptable values are `0` to `500`,
160056// inclusive. (Default: `500`)
160057func (c *SubnetworksAggregatedListCall) MaxResults(maxResults int64) *SubnetworksAggregatedListCall {
160058	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
160059	return c
160060}
160061
160062// OrderBy sets the optional parameter "orderBy": Sorts list results by
160063// a certain order. By default, results are returned in alphanumerical
160064// order based on the resource name.
160065//
160066// You can also sort results in descending order based on the creation
160067// timestamp using `orderBy="creationTimestamp desc". This sorts
160068// results based on the `creationTimestamp` field in reverse
160069// chronological order (newest result first). Use this to sort resources
160070// like operations so that the newest operation is returned
160071// first.
160072//
160073// Currently, only sorting by `name` or `creationTimestamp desc` is
160074// supported.
160075func (c *SubnetworksAggregatedListCall) OrderBy(orderBy string) *SubnetworksAggregatedListCall {
160076	c.urlParams_.Set("orderBy", orderBy)
160077	return c
160078}
160079
160080// PageToken sets the optional parameter "pageToken": Specifies a page
160081// token to use. Set `pageToken` to the `nextPageToken` returned by a
160082// previous list request to get the next page of results.
160083func (c *SubnetworksAggregatedListCall) PageToken(pageToken string) *SubnetworksAggregatedListCall {
160084	c.urlParams_.Set("pageToken", pageToken)
160085	return c
160086}
160087
160088// ReturnPartialSuccess sets the optional parameter
160089// "returnPartialSuccess": Opt-in for partial success behavior which
160090// provides partial results in case of failure. The default value is
160091// false.
160092func (c *SubnetworksAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SubnetworksAggregatedListCall {
160093	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
160094	return c
160095}
160096
160097// Fields allows partial responses to be retrieved. See
160098// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
160099// for more information.
160100func (c *SubnetworksAggregatedListCall) Fields(s ...googleapi.Field) *SubnetworksAggregatedListCall {
160101	c.urlParams_.Set("fields", googleapi.CombineFields(s))
160102	return c
160103}
160104
160105// IfNoneMatch sets the optional parameter which makes the operation
160106// fail if the object's ETag matches the given value. This is useful for
160107// getting updates only after the object has changed since the last
160108// request. Use googleapi.IsNotModified to check whether the response
160109// error from Do is the result of In-None-Match.
160110func (c *SubnetworksAggregatedListCall) IfNoneMatch(entityTag string) *SubnetworksAggregatedListCall {
160111	c.ifNoneMatch_ = entityTag
160112	return c
160113}
160114
160115// Context sets the context to be used in this call's Do method. Any
160116// pending HTTP request will be aborted if the provided context is
160117// canceled.
160118func (c *SubnetworksAggregatedListCall) Context(ctx context.Context) *SubnetworksAggregatedListCall {
160119	c.ctx_ = ctx
160120	return c
160121}
160122
160123// Header returns an http.Header that can be modified by the caller to
160124// add HTTP headers to the request.
160125func (c *SubnetworksAggregatedListCall) Header() http.Header {
160126	if c.header_ == nil {
160127		c.header_ = make(http.Header)
160128	}
160129	return c.header_
160130}
160131
160132func (c *SubnetworksAggregatedListCall) doRequest(alt string) (*http.Response, error) {
160133	reqHeaders := make(http.Header)
160134	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
160135	for k, v := range c.header_ {
160136		reqHeaders[k] = v
160137	}
160138	reqHeaders.Set("User-Agent", c.s.userAgent())
160139	if c.ifNoneMatch_ != "" {
160140		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
160141	}
160142	var body io.Reader = nil
160143	c.urlParams_.Set("alt", alt)
160144	c.urlParams_.Set("prettyPrint", "false")
160145	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/subnetworks")
160146	urls += "?" + c.urlParams_.Encode()
160147	req, err := http.NewRequest("GET", urls, body)
160148	if err != nil {
160149		return nil, err
160150	}
160151	req.Header = reqHeaders
160152	googleapi.Expand(req.URL, map[string]string{
160153		"project": c.project,
160154	})
160155	return gensupport.SendRequest(c.ctx_, c.s.client, req)
160156}
160157
160158// Do executes the "compute.subnetworks.aggregatedList" call.
160159// Exactly one of *SubnetworkAggregatedList or error will be non-nil.
160160// Any non-2xx status code is an error. Response headers are in either
160161// *SubnetworkAggregatedList.ServerResponse.Header or (if a response was
160162// returned at all) in error.(*googleapi.Error).Header. Use
160163// googleapi.IsNotModified to check whether the returned error was
160164// because http.StatusNotModified was returned.
160165func (c *SubnetworksAggregatedListCall) Do(opts ...googleapi.CallOption) (*SubnetworkAggregatedList, error) {
160166	gensupport.SetOptions(c.urlParams_, opts...)
160167	res, err := c.doRequest("json")
160168	if res != nil && res.StatusCode == http.StatusNotModified {
160169		if res.Body != nil {
160170			res.Body.Close()
160171		}
160172		return nil, &googleapi.Error{
160173			Code:   res.StatusCode,
160174			Header: res.Header,
160175		}
160176	}
160177	if err != nil {
160178		return nil, err
160179	}
160180	defer googleapi.CloseBody(res)
160181	if err := googleapi.CheckResponse(res); err != nil {
160182		return nil, err
160183	}
160184	ret := &SubnetworkAggregatedList{
160185		ServerResponse: googleapi.ServerResponse{
160186			Header:         res.Header,
160187			HTTPStatusCode: res.StatusCode,
160188		},
160189	}
160190	target := &ret
160191	if err := gensupport.DecodeResponse(target, res); err != nil {
160192		return nil, err
160193	}
160194	return ret, nil
160195	// {
160196	//   "description": "Retrieves an aggregated list of subnetworks.",
160197	//   "httpMethod": "GET",
160198	//   "id": "compute.subnetworks.aggregatedList",
160199	//   "parameterOrder": [
160200	//     "project"
160201	//   ],
160202	//   "parameters": {
160203	//     "filter": {
160204	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
160205	//       "location": "query",
160206	//       "type": "string"
160207	//     },
160208	//     "includeAllScopes": {
160209	//       "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.",
160210	//       "location": "query",
160211	//       "type": "boolean"
160212	//     },
160213	//     "maxResults": {
160214	//       "default": "500",
160215	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
160216	//       "format": "uint32",
160217	//       "location": "query",
160218	//       "minimum": "0",
160219	//       "type": "integer"
160220	//     },
160221	//     "orderBy": {
160222	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
160223	//       "location": "query",
160224	//       "type": "string"
160225	//     },
160226	//     "pageToken": {
160227	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
160228	//       "location": "query",
160229	//       "type": "string"
160230	//     },
160231	//     "project": {
160232	//       "description": "Project ID for this request.",
160233	//       "location": "path",
160234	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
160235	//       "required": true,
160236	//       "type": "string"
160237	//     },
160238	//     "returnPartialSuccess": {
160239	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
160240	//       "location": "query",
160241	//       "type": "boolean"
160242	//     }
160243	//   },
160244	//   "path": "projects/{project}/aggregated/subnetworks",
160245	//   "response": {
160246	//     "$ref": "SubnetworkAggregatedList"
160247	//   },
160248	//   "scopes": [
160249	//     "https://www.googleapis.com/auth/cloud-platform",
160250	//     "https://www.googleapis.com/auth/compute",
160251	//     "https://www.googleapis.com/auth/compute.readonly"
160252	//   ]
160253	// }
160254
160255}
160256
160257// Pages invokes f for each page of results.
160258// A non-nil error returned from f will halt the iteration.
160259// The provided context supersedes any context provided to the Context method.
160260func (c *SubnetworksAggregatedListCall) Pages(ctx context.Context, f func(*SubnetworkAggregatedList) error) error {
160261	c.ctx_ = ctx
160262	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
160263	for {
160264		x, err := c.Do()
160265		if err != nil {
160266			return err
160267		}
160268		if err := f(x); err != nil {
160269			return err
160270		}
160271		if x.NextPageToken == "" {
160272			return nil
160273		}
160274		c.PageToken(x.NextPageToken)
160275	}
160276}
160277
160278// method id "compute.subnetworks.delete":
160279
160280type SubnetworksDeleteCall struct {
160281	s          *Service
160282	project    string
160283	region     string
160284	subnetwork string
160285	urlParams_ gensupport.URLParams
160286	ctx_       context.Context
160287	header_    http.Header
160288}
160289
160290// Delete: Deletes the specified subnetwork.
160291func (r *SubnetworksService) Delete(project string, region string, subnetwork string) *SubnetworksDeleteCall {
160292	c := &SubnetworksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
160293	c.project = project
160294	c.region = region
160295	c.subnetwork = subnetwork
160296	return c
160297}
160298
160299// RequestId sets the optional parameter "requestId": An optional
160300// request ID to identify requests. Specify a unique request ID so that
160301// if you must retry your request, the server will know to ignore the
160302// request if it has already been completed.
160303//
160304// For example, consider a situation where you make an initial request
160305// and the request times out. If you make the request again with the
160306// same request ID, the server can check if original operation with the
160307// same request ID was received, and if so, will ignore the second
160308// request. This prevents clients from accidentally creating duplicate
160309// commitments.
160310//
160311// The request ID must be a valid UUID with the exception that zero UUID
160312// is not supported (00000000-0000-0000-0000-000000000000).
160313func (c *SubnetworksDeleteCall) RequestId(requestId string) *SubnetworksDeleteCall {
160314	c.urlParams_.Set("requestId", requestId)
160315	return c
160316}
160317
160318// Fields allows partial responses to be retrieved. See
160319// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
160320// for more information.
160321func (c *SubnetworksDeleteCall) Fields(s ...googleapi.Field) *SubnetworksDeleteCall {
160322	c.urlParams_.Set("fields", googleapi.CombineFields(s))
160323	return c
160324}
160325
160326// Context sets the context to be used in this call's Do method. Any
160327// pending HTTP request will be aborted if the provided context is
160328// canceled.
160329func (c *SubnetworksDeleteCall) Context(ctx context.Context) *SubnetworksDeleteCall {
160330	c.ctx_ = ctx
160331	return c
160332}
160333
160334// Header returns an http.Header that can be modified by the caller to
160335// add HTTP headers to the request.
160336func (c *SubnetworksDeleteCall) Header() http.Header {
160337	if c.header_ == nil {
160338		c.header_ = make(http.Header)
160339	}
160340	return c.header_
160341}
160342
160343func (c *SubnetworksDeleteCall) doRequest(alt string) (*http.Response, error) {
160344	reqHeaders := make(http.Header)
160345	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
160346	for k, v := range c.header_ {
160347		reqHeaders[k] = v
160348	}
160349	reqHeaders.Set("User-Agent", c.s.userAgent())
160350	var body io.Reader = nil
160351	c.urlParams_.Set("alt", alt)
160352	c.urlParams_.Set("prettyPrint", "false")
160353	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks/{subnetwork}")
160354	urls += "?" + c.urlParams_.Encode()
160355	req, err := http.NewRequest("DELETE", urls, body)
160356	if err != nil {
160357		return nil, err
160358	}
160359	req.Header = reqHeaders
160360	googleapi.Expand(req.URL, map[string]string{
160361		"project":    c.project,
160362		"region":     c.region,
160363		"subnetwork": c.subnetwork,
160364	})
160365	return gensupport.SendRequest(c.ctx_, c.s.client, req)
160366}
160367
160368// Do executes the "compute.subnetworks.delete" call.
160369// Exactly one of *Operation or error will be non-nil. Any non-2xx
160370// status code is an error. Response headers are in either
160371// *Operation.ServerResponse.Header or (if a response was returned at
160372// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
160373// to check whether the returned error was because
160374// http.StatusNotModified was returned.
160375func (c *SubnetworksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
160376	gensupport.SetOptions(c.urlParams_, opts...)
160377	res, err := c.doRequest("json")
160378	if res != nil && res.StatusCode == http.StatusNotModified {
160379		if res.Body != nil {
160380			res.Body.Close()
160381		}
160382		return nil, &googleapi.Error{
160383			Code:   res.StatusCode,
160384			Header: res.Header,
160385		}
160386	}
160387	if err != nil {
160388		return nil, err
160389	}
160390	defer googleapi.CloseBody(res)
160391	if err := googleapi.CheckResponse(res); err != nil {
160392		return nil, err
160393	}
160394	ret := &Operation{
160395		ServerResponse: googleapi.ServerResponse{
160396			Header:         res.Header,
160397			HTTPStatusCode: res.StatusCode,
160398		},
160399	}
160400	target := &ret
160401	if err := gensupport.DecodeResponse(target, res); err != nil {
160402		return nil, err
160403	}
160404	return ret, nil
160405	// {
160406	//   "description": "Deletes the specified subnetwork.",
160407	//   "httpMethod": "DELETE",
160408	//   "id": "compute.subnetworks.delete",
160409	//   "parameterOrder": [
160410	//     "project",
160411	//     "region",
160412	//     "subnetwork"
160413	//   ],
160414	//   "parameters": {
160415	//     "project": {
160416	//       "description": "Project ID for this request.",
160417	//       "location": "path",
160418	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
160419	//       "required": true,
160420	//       "type": "string"
160421	//     },
160422	//     "region": {
160423	//       "description": "Name of the region scoping this request.",
160424	//       "location": "path",
160425	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
160426	//       "required": true,
160427	//       "type": "string"
160428	//     },
160429	//     "requestId": {
160430	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
160431	//       "location": "query",
160432	//       "type": "string"
160433	//     },
160434	//     "subnetwork": {
160435	//       "description": "Name of the Subnetwork resource to delete.",
160436	//       "location": "path",
160437	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
160438	//       "required": true,
160439	//       "type": "string"
160440	//     }
160441	//   },
160442	//   "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}",
160443	//   "response": {
160444	//     "$ref": "Operation"
160445	//   },
160446	//   "scopes": [
160447	//     "https://www.googleapis.com/auth/cloud-platform",
160448	//     "https://www.googleapis.com/auth/compute"
160449	//   ]
160450	// }
160451
160452}
160453
160454// method id "compute.subnetworks.expandIpCidrRange":
160455
160456type SubnetworksExpandIpCidrRangeCall struct {
160457	s                                   *Service
160458	project                             string
160459	region                              string
160460	subnetwork                          string
160461	subnetworksexpandipcidrrangerequest *SubnetworksExpandIpCidrRangeRequest
160462	urlParams_                          gensupport.URLParams
160463	ctx_                                context.Context
160464	header_                             http.Header
160465}
160466
160467// ExpandIpCidrRange: Expands the IP CIDR range of the subnetwork to a
160468// specified value.
160469func (r *SubnetworksService) ExpandIpCidrRange(project string, region string, subnetwork string, subnetworksexpandipcidrrangerequest *SubnetworksExpandIpCidrRangeRequest) *SubnetworksExpandIpCidrRangeCall {
160470	c := &SubnetworksExpandIpCidrRangeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
160471	c.project = project
160472	c.region = region
160473	c.subnetwork = subnetwork
160474	c.subnetworksexpandipcidrrangerequest = subnetworksexpandipcidrrangerequest
160475	return c
160476}
160477
160478// RequestId sets the optional parameter "requestId": An optional
160479// request ID to identify requests. Specify a unique request ID so that
160480// if you must retry your request, the server will know to ignore the
160481// request if it has already been completed.
160482//
160483// For example, consider a situation where you make an initial request
160484// and the request times out. If you make the request again with the
160485// same request ID, the server can check if original operation with the
160486// same request ID was received, and if so, will ignore the second
160487// request. This prevents clients from accidentally creating duplicate
160488// commitments.
160489//
160490// The request ID must be a valid UUID with the exception that zero UUID
160491// is not supported (00000000-0000-0000-0000-000000000000).
160492func (c *SubnetworksExpandIpCidrRangeCall) RequestId(requestId string) *SubnetworksExpandIpCidrRangeCall {
160493	c.urlParams_.Set("requestId", requestId)
160494	return c
160495}
160496
160497// Fields allows partial responses to be retrieved. See
160498// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
160499// for more information.
160500func (c *SubnetworksExpandIpCidrRangeCall) Fields(s ...googleapi.Field) *SubnetworksExpandIpCidrRangeCall {
160501	c.urlParams_.Set("fields", googleapi.CombineFields(s))
160502	return c
160503}
160504
160505// Context sets the context to be used in this call's Do method. Any
160506// pending HTTP request will be aborted if the provided context is
160507// canceled.
160508func (c *SubnetworksExpandIpCidrRangeCall) Context(ctx context.Context) *SubnetworksExpandIpCidrRangeCall {
160509	c.ctx_ = ctx
160510	return c
160511}
160512
160513// Header returns an http.Header that can be modified by the caller to
160514// add HTTP headers to the request.
160515func (c *SubnetworksExpandIpCidrRangeCall) Header() http.Header {
160516	if c.header_ == nil {
160517		c.header_ = make(http.Header)
160518	}
160519	return c.header_
160520}
160521
160522func (c *SubnetworksExpandIpCidrRangeCall) doRequest(alt string) (*http.Response, error) {
160523	reqHeaders := make(http.Header)
160524	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
160525	for k, v := range c.header_ {
160526		reqHeaders[k] = v
160527	}
160528	reqHeaders.Set("User-Agent", c.s.userAgent())
160529	var body io.Reader = nil
160530	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetworksexpandipcidrrangerequest)
160531	if err != nil {
160532		return nil, err
160533	}
160534	reqHeaders.Set("Content-Type", "application/json")
160535	c.urlParams_.Set("alt", alt)
160536	c.urlParams_.Set("prettyPrint", "false")
160537	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks/{subnetwork}/expandIpCidrRange")
160538	urls += "?" + c.urlParams_.Encode()
160539	req, err := http.NewRequest("POST", urls, body)
160540	if err != nil {
160541		return nil, err
160542	}
160543	req.Header = reqHeaders
160544	googleapi.Expand(req.URL, map[string]string{
160545		"project":    c.project,
160546		"region":     c.region,
160547		"subnetwork": c.subnetwork,
160548	})
160549	return gensupport.SendRequest(c.ctx_, c.s.client, req)
160550}
160551
160552// Do executes the "compute.subnetworks.expandIpCidrRange" call.
160553// Exactly one of *Operation or error will be non-nil. Any non-2xx
160554// status code is an error. Response headers are in either
160555// *Operation.ServerResponse.Header or (if a response was returned at
160556// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
160557// to check whether the returned error was because
160558// http.StatusNotModified was returned.
160559func (c *SubnetworksExpandIpCidrRangeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
160560	gensupport.SetOptions(c.urlParams_, opts...)
160561	res, err := c.doRequest("json")
160562	if res != nil && res.StatusCode == http.StatusNotModified {
160563		if res.Body != nil {
160564			res.Body.Close()
160565		}
160566		return nil, &googleapi.Error{
160567			Code:   res.StatusCode,
160568			Header: res.Header,
160569		}
160570	}
160571	if err != nil {
160572		return nil, err
160573	}
160574	defer googleapi.CloseBody(res)
160575	if err := googleapi.CheckResponse(res); err != nil {
160576		return nil, err
160577	}
160578	ret := &Operation{
160579		ServerResponse: googleapi.ServerResponse{
160580			Header:         res.Header,
160581			HTTPStatusCode: res.StatusCode,
160582		},
160583	}
160584	target := &ret
160585	if err := gensupport.DecodeResponse(target, res); err != nil {
160586		return nil, err
160587	}
160588	return ret, nil
160589	// {
160590	//   "description": "Expands the IP CIDR range of the subnetwork to a specified value.",
160591	//   "httpMethod": "POST",
160592	//   "id": "compute.subnetworks.expandIpCidrRange",
160593	//   "parameterOrder": [
160594	//     "project",
160595	//     "region",
160596	//     "subnetwork"
160597	//   ],
160598	//   "parameters": {
160599	//     "project": {
160600	//       "description": "Project ID for this request.",
160601	//       "location": "path",
160602	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
160603	//       "required": true,
160604	//       "type": "string"
160605	//     },
160606	//     "region": {
160607	//       "description": "Name of the region scoping this request.",
160608	//       "location": "path",
160609	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
160610	//       "required": true,
160611	//       "type": "string"
160612	//     },
160613	//     "requestId": {
160614	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
160615	//       "location": "query",
160616	//       "type": "string"
160617	//     },
160618	//     "subnetwork": {
160619	//       "description": "Name of the Subnetwork resource to update.",
160620	//       "location": "path",
160621	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
160622	//       "required": true,
160623	//       "type": "string"
160624	//     }
160625	//   },
160626	//   "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}/expandIpCidrRange",
160627	//   "request": {
160628	//     "$ref": "SubnetworksExpandIpCidrRangeRequest"
160629	//   },
160630	//   "response": {
160631	//     "$ref": "Operation"
160632	//   },
160633	//   "scopes": [
160634	//     "https://www.googleapis.com/auth/cloud-platform",
160635	//     "https://www.googleapis.com/auth/compute"
160636	//   ]
160637	// }
160638
160639}
160640
160641// method id "compute.subnetworks.get":
160642
160643type SubnetworksGetCall struct {
160644	s            *Service
160645	project      string
160646	region       string
160647	subnetwork   string
160648	urlParams_   gensupport.URLParams
160649	ifNoneMatch_ string
160650	ctx_         context.Context
160651	header_      http.Header
160652}
160653
160654// Get: Returns the specified subnetwork. Gets a list of available
160655// subnetworks list() request.
160656func (r *SubnetworksService) Get(project string, region string, subnetwork string) *SubnetworksGetCall {
160657	c := &SubnetworksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
160658	c.project = project
160659	c.region = region
160660	c.subnetwork = subnetwork
160661	return c
160662}
160663
160664// Fields allows partial responses to be retrieved. See
160665// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
160666// for more information.
160667func (c *SubnetworksGetCall) Fields(s ...googleapi.Field) *SubnetworksGetCall {
160668	c.urlParams_.Set("fields", googleapi.CombineFields(s))
160669	return c
160670}
160671
160672// IfNoneMatch sets the optional parameter which makes the operation
160673// fail if the object's ETag matches the given value. This is useful for
160674// getting updates only after the object has changed since the last
160675// request. Use googleapi.IsNotModified to check whether the response
160676// error from Do is the result of In-None-Match.
160677func (c *SubnetworksGetCall) IfNoneMatch(entityTag string) *SubnetworksGetCall {
160678	c.ifNoneMatch_ = entityTag
160679	return c
160680}
160681
160682// Context sets the context to be used in this call's Do method. Any
160683// pending HTTP request will be aborted if the provided context is
160684// canceled.
160685func (c *SubnetworksGetCall) Context(ctx context.Context) *SubnetworksGetCall {
160686	c.ctx_ = ctx
160687	return c
160688}
160689
160690// Header returns an http.Header that can be modified by the caller to
160691// add HTTP headers to the request.
160692func (c *SubnetworksGetCall) Header() http.Header {
160693	if c.header_ == nil {
160694		c.header_ = make(http.Header)
160695	}
160696	return c.header_
160697}
160698
160699func (c *SubnetworksGetCall) doRequest(alt string) (*http.Response, error) {
160700	reqHeaders := make(http.Header)
160701	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
160702	for k, v := range c.header_ {
160703		reqHeaders[k] = v
160704	}
160705	reqHeaders.Set("User-Agent", c.s.userAgent())
160706	if c.ifNoneMatch_ != "" {
160707		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
160708	}
160709	var body io.Reader = nil
160710	c.urlParams_.Set("alt", alt)
160711	c.urlParams_.Set("prettyPrint", "false")
160712	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks/{subnetwork}")
160713	urls += "?" + c.urlParams_.Encode()
160714	req, err := http.NewRequest("GET", urls, body)
160715	if err != nil {
160716		return nil, err
160717	}
160718	req.Header = reqHeaders
160719	googleapi.Expand(req.URL, map[string]string{
160720		"project":    c.project,
160721		"region":     c.region,
160722		"subnetwork": c.subnetwork,
160723	})
160724	return gensupport.SendRequest(c.ctx_, c.s.client, req)
160725}
160726
160727// Do executes the "compute.subnetworks.get" call.
160728// Exactly one of *Subnetwork or error will be non-nil. Any non-2xx
160729// status code is an error. Response headers are in either
160730// *Subnetwork.ServerResponse.Header or (if a response was returned at
160731// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
160732// to check whether the returned error was because
160733// http.StatusNotModified was returned.
160734func (c *SubnetworksGetCall) Do(opts ...googleapi.CallOption) (*Subnetwork, error) {
160735	gensupport.SetOptions(c.urlParams_, opts...)
160736	res, err := c.doRequest("json")
160737	if res != nil && res.StatusCode == http.StatusNotModified {
160738		if res.Body != nil {
160739			res.Body.Close()
160740		}
160741		return nil, &googleapi.Error{
160742			Code:   res.StatusCode,
160743			Header: res.Header,
160744		}
160745	}
160746	if err != nil {
160747		return nil, err
160748	}
160749	defer googleapi.CloseBody(res)
160750	if err := googleapi.CheckResponse(res); err != nil {
160751		return nil, err
160752	}
160753	ret := &Subnetwork{
160754		ServerResponse: googleapi.ServerResponse{
160755			Header:         res.Header,
160756			HTTPStatusCode: res.StatusCode,
160757		},
160758	}
160759	target := &ret
160760	if err := gensupport.DecodeResponse(target, res); err != nil {
160761		return nil, err
160762	}
160763	return ret, nil
160764	// {
160765	//   "description": "Returns the specified subnetwork. Gets a list of available subnetworks list() request.",
160766	//   "httpMethod": "GET",
160767	//   "id": "compute.subnetworks.get",
160768	//   "parameterOrder": [
160769	//     "project",
160770	//     "region",
160771	//     "subnetwork"
160772	//   ],
160773	//   "parameters": {
160774	//     "project": {
160775	//       "description": "Project ID for this request.",
160776	//       "location": "path",
160777	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
160778	//       "required": true,
160779	//       "type": "string"
160780	//     },
160781	//     "region": {
160782	//       "description": "Name of the region scoping this request.",
160783	//       "location": "path",
160784	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
160785	//       "required": true,
160786	//       "type": "string"
160787	//     },
160788	//     "subnetwork": {
160789	//       "description": "Name of the Subnetwork resource to return.",
160790	//       "location": "path",
160791	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
160792	//       "required": true,
160793	//       "type": "string"
160794	//     }
160795	//   },
160796	//   "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}",
160797	//   "response": {
160798	//     "$ref": "Subnetwork"
160799	//   },
160800	//   "scopes": [
160801	//     "https://www.googleapis.com/auth/cloud-platform",
160802	//     "https://www.googleapis.com/auth/compute",
160803	//     "https://www.googleapis.com/auth/compute.readonly"
160804	//   ]
160805	// }
160806
160807}
160808
160809// method id "compute.subnetworks.getIamPolicy":
160810
160811type SubnetworksGetIamPolicyCall struct {
160812	s            *Service
160813	project      string
160814	region       string
160815	resource     string
160816	urlParams_   gensupport.URLParams
160817	ifNoneMatch_ string
160818	ctx_         context.Context
160819	header_      http.Header
160820}
160821
160822// GetIamPolicy: Gets the access control policy for a resource. May be
160823// empty if no such policy or resource exists.
160824func (r *SubnetworksService) GetIamPolicy(project string, region string, resource string) *SubnetworksGetIamPolicyCall {
160825	c := &SubnetworksGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
160826	c.project = project
160827	c.region = region
160828	c.resource = resource
160829	return c
160830}
160831
160832// OptionsRequestedPolicyVersion sets the optional parameter
160833// "optionsRequestedPolicyVersion": Requested IAM Policy version.
160834func (c *SubnetworksGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *SubnetworksGetIamPolicyCall {
160835	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
160836	return c
160837}
160838
160839// Fields allows partial responses to be retrieved. See
160840// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
160841// for more information.
160842func (c *SubnetworksGetIamPolicyCall) Fields(s ...googleapi.Field) *SubnetworksGetIamPolicyCall {
160843	c.urlParams_.Set("fields", googleapi.CombineFields(s))
160844	return c
160845}
160846
160847// IfNoneMatch sets the optional parameter which makes the operation
160848// fail if the object's ETag matches the given value. This is useful for
160849// getting updates only after the object has changed since the last
160850// request. Use googleapi.IsNotModified to check whether the response
160851// error from Do is the result of In-None-Match.
160852func (c *SubnetworksGetIamPolicyCall) IfNoneMatch(entityTag string) *SubnetworksGetIamPolicyCall {
160853	c.ifNoneMatch_ = entityTag
160854	return c
160855}
160856
160857// Context sets the context to be used in this call's Do method. Any
160858// pending HTTP request will be aborted if the provided context is
160859// canceled.
160860func (c *SubnetworksGetIamPolicyCall) Context(ctx context.Context) *SubnetworksGetIamPolicyCall {
160861	c.ctx_ = ctx
160862	return c
160863}
160864
160865// Header returns an http.Header that can be modified by the caller to
160866// add HTTP headers to the request.
160867func (c *SubnetworksGetIamPolicyCall) Header() http.Header {
160868	if c.header_ == nil {
160869		c.header_ = make(http.Header)
160870	}
160871	return c.header_
160872}
160873
160874func (c *SubnetworksGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
160875	reqHeaders := make(http.Header)
160876	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
160877	for k, v := range c.header_ {
160878		reqHeaders[k] = v
160879	}
160880	reqHeaders.Set("User-Agent", c.s.userAgent())
160881	if c.ifNoneMatch_ != "" {
160882		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
160883	}
160884	var body io.Reader = nil
160885	c.urlParams_.Set("alt", alt)
160886	c.urlParams_.Set("prettyPrint", "false")
160887	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks/{resource}/getIamPolicy")
160888	urls += "?" + c.urlParams_.Encode()
160889	req, err := http.NewRequest("GET", urls, body)
160890	if err != nil {
160891		return nil, err
160892	}
160893	req.Header = reqHeaders
160894	googleapi.Expand(req.URL, map[string]string{
160895		"project":  c.project,
160896		"region":   c.region,
160897		"resource": c.resource,
160898	})
160899	return gensupport.SendRequest(c.ctx_, c.s.client, req)
160900}
160901
160902// Do executes the "compute.subnetworks.getIamPolicy" call.
160903// Exactly one of *Policy or error will be non-nil. Any non-2xx status
160904// code is an error. Response headers are in either
160905// *Policy.ServerResponse.Header or (if a response was returned at all)
160906// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
160907// check whether the returned error was because http.StatusNotModified
160908// was returned.
160909func (c *SubnetworksGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
160910	gensupport.SetOptions(c.urlParams_, opts...)
160911	res, err := c.doRequest("json")
160912	if res != nil && res.StatusCode == http.StatusNotModified {
160913		if res.Body != nil {
160914			res.Body.Close()
160915		}
160916		return nil, &googleapi.Error{
160917			Code:   res.StatusCode,
160918			Header: res.Header,
160919		}
160920	}
160921	if err != nil {
160922		return nil, err
160923	}
160924	defer googleapi.CloseBody(res)
160925	if err := googleapi.CheckResponse(res); err != nil {
160926		return nil, err
160927	}
160928	ret := &Policy{
160929		ServerResponse: googleapi.ServerResponse{
160930			Header:         res.Header,
160931			HTTPStatusCode: res.StatusCode,
160932		},
160933	}
160934	target := &ret
160935	if err := gensupport.DecodeResponse(target, res); err != nil {
160936		return nil, err
160937	}
160938	return ret, nil
160939	// {
160940	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
160941	//   "httpMethod": "GET",
160942	//   "id": "compute.subnetworks.getIamPolicy",
160943	//   "parameterOrder": [
160944	//     "project",
160945	//     "region",
160946	//     "resource"
160947	//   ],
160948	//   "parameters": {
160949	//     "optionsRequestedPolicyVersion": {
160950	//       "description": "Requested IAM Policy version.",
160951	//       "format": "int32",
160952	//       "location": "query",
160953	//       "type": "integer"
160954	//     },
160955	//     "project": {
160956	//       "description": "Project ID for this request.",
160957	//       "location": "path",
160958	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
160959	//       "required": true,
160960	//       "type": "string"
160961	//     },
160962	//     "region": {
160963	//       "description": "The name of the region for this request.",
160964	//       "location": "path",
160965	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
160966	//       "required": true,
160967	//       "type": "string"
160968	//     },
160969	//     "resource": {
160970	//       "description": "Name or id of the resource for this request.",
160971	//       "location": "path",
160972	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
160973	//       "required": true,
160974	//       "type": "string"
160975	//     }
160976	//   },
160977	//   "path": "projects/{project}/regions/{region}/subnetworks/{resource}/getIamPolicy",
160978	//   "response": {
160979	//     "$ref": "Policy"
160980	//   },
160981	//   "scopes": [
160982	//     "https://www.googleapis.com/auth/cloud-platform",
160983	//     "https://www.googleapis.com/auth/compute",
160984	//     "https://www.googleapis.com/auth/compute.readonly"
160985	//   ]
160986	// }
160987
160988}
160989
160990// method id "compute.subnetworks.insert":
160991
160992type SubnetworksInsertCall struct {
160993	s          *Service
160994	project    string
160995	region     string
160996	subnetwork *Subnetwork
160997	urlParams_ gensupport.URLParams
160998	ctx_       context.Context
160999	header_    http.Header
161000}
161001
161002// Insert: Creates a subnetwork in the specified project using the data
161003// included in the request.
161004func (r *SubnetworksService) Insert(project string, region string, subnetwork *Subnetwork) *SubnetworksInsertCall {
161005	c := &SubnetworksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
161006	c.project = project
161007	c.region = region
161008	c.subnetwork = subnetwork
161009	return c
161010}
161011
161012// RequestId sets the optional parameter "requestId": An optional
161013// request ID to identify requests. Specify a unique request ID so that
161014// if you must retry your request, the server will know to ignore the
161015// request if it has already been completed.
161016//
161017// For example, consider a situation where you make an initial request
161018// and the request times out. If you make the request again with the
161019// same request ID, the server can check if original operation with the
161020// same request ID was received, and if so, will ignore the second
161021// request. This prevents clients from accidentally creating duplicate
161022// commitments.
161023//
161024// The request ID must be a valid UUID with the exception that zero UUID
161025// is not supported (00000000-0000-0000-0000-000000000000).
161026func (c *SubnetworksInsertCall) RequestId(requestId string) *SubnetworksInsertCall {
161027	c.urlParams_.Set("requestId", requestId)
161028	return c
161029}
161030
161031// Fields allows partial responses to be retrieved. See
161032// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
161033// for more information.
161034func (c *SubnetworksInsertCall) Fields(s ...googleapi.Field) *SubnetworksInsertCall {
161035	c.urlParams_.Set("fields", googleapi.CombineFields(s))
161036	return c
161037}
161038
161039// Context sets the context to be used in this call's Do method. Any
161040// pending HTTP request will be aborted if the provided context is
161041// canceled.
161042func (c *SubnetworksInsertCall) Context(ctx context.Context) *SubnetworksInsertCall {
161043	c.ctx_ = ctx
161044	return c
161045}
161046
161047// Header returns an http.Header that can be modified by the caller to
161048// add HTTP headers to the request.
161049func (c *SubnetworksInsertCall) Header() http.Header {
161050	if c.header_ == nil {
161051		c.header_ = make(http.Header)
161052	}
161053	return c.header_
161054}
161055
161056func (c *SubnetworksInsertCall) doRequest(alt string) (*http.Response, error) {
161057	reqHeaders := make(http.Header)
161058	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
161059	for k, v := range c.header_ {
161060		reqHeaders[k] = v
161061	}
161062	reqHeaders.Set("User-Agent", c.s.userAgent())
161063	var body io.Reader = nil
161064	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetwork)
161065	if err != nil {
161066		return nil, err
161067	}
161068	reqHeaders.Set("Content-Type", "application/json")
161069	c.urlParams_.Set("alt", alt)
161070	c.urlParams_.Set("prettyPrint", "false")
161071	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks")
161072	urls += "?" + c.urlParams_.Encode()
161073	req, err := http.NewRequest("POST", urls, body)
161074	if err != nil {
161075		return nil, err
161076	}
161077	req.Header = reqHeaders
161078	googleapi.Expand(req.URL, map[string]string{
161079		"project": c.project,
161080		"region":  c.region,
161081	})
161082	return gensupport.SendRequest(c.ctx_, c.s.client, req)
161083}
161084
161085// Do executes the "compute.subnetworks.insert" call.
161086// Exactly one of *Operation or error will be non-nil. Any non-2xx
161087// status code is an error. Response headers are in either
161088// *Operation.ServerResponse.Header or (if a response was returned at
161089// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
161090// to check whether the returned error was because
161091// http.StatusNotModified was returned.
161092func (c *SubnetworksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
161093	gensupport.SetOptions(c.urlParams_, opts...)
161094	res, err := c.doRequest("json")
161095	if res != nil && res.StatusCode == http.StatusNotModified {
161096		if res.Body != nil {
161097			res.Body.Close()
161098		}
161099		return nil, &googleapi.Error{
161100			Code:   res.StatusCode,
161101			Header: res.Header,
161102		}
161103	}
161104	if err != nil {
161105		return nil, err
161106	}
161107	defer googleapi.CloseBody(res)
161108	if err := googleapi.CheckResponse(res); err != nil {
161109		return nil, err
161110	}
161111	ret := &Operation{
161112		ServerResponse: googleapi.ServerResponse{
161113			Header:         res.Header,
161114			HTTPStatusCode: res.StatusCode,
161115		},
161116	}
161117	target := &ret
161118	if err := gensupport.DecodeResponse(target, res); err != nil {
161119		return nil, err
161120	}
161121	return ret, nil
161122	// {
161123	//   "description": "Creates a subnetwork in the specified project using the data included in the request.",
161124	//   "httpMethod": "POST",
161125	//   "id": "compute.subnetworks.insert",
161126	//   "parameterOrder": [
161127	//     "project",
161128	//     "region"
161129	//   ],
161130	//   "parameters": {
161131	//     "project": {
161132	//       "description": "Project ID for this request.",
161133	//       "location": "path",
161134	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
161135	//       "required": true,
161136	//       "type": "string"
161137	//     },
161138	//     "region": {
161139	//       "description": "Name of the region scoping this request.",
161140	//       "location": "path",
161141	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
161142	//       "required": true,
161143	//       "type": "string"
161144	//     },
161145	//     "requestId": {
161146	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
161147	//       "location": "query",
161148	//       "type": "string"
161149	//     }
161150	//   },
161151	//   "path": "projects/{project}/regions/{region}/subnetworks",
161152	//   "request": {
161153	//     "$ref": "Subnetwork"
161154	//   },
161155	//   "response": {
161156	//     "$ref": "Operation"
161157	//   },
161158	//   "scopes": [
161159	//     "https://www.googleapis.com/auth/cloud-platform",
161160	//     "https://www.googleapis.com/auth/compute"
161161	//   ]
161162	// }
161163
161164}
161165
161166// method id "compute.subnetworks.list":
161167
161168type SubnetworksListCall struct {
161169	s            *Service
161170	project      string
161171	region       string
161172	urlParams_   gensupport.URLParams
161173	ifNoneMatch_ string
161174	ctx_         context.Context
161175	header_      http.Header
161176}
161177
161178// List: Retrieves a list of subnetworks available to the specified
161179// project.
161180func (r *SubnetworksService) List(project string, region string) *SubnetworksListCall {
161181	c := &SubnetworksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
161182	c.project = project
161183	c.region = region
161184	return c
161185}
161186
161187// Filter sets the optional parameter "filter": A filter expression that
161188// filters resources listed in the response. The expression must specify
161189// the field name, a comparison operator, and the value that you want to
161190// use for filtering. The value must be a string, a number, or a
161191// boolean. The comparison operator must be either `=`, `!=`, `>`, or
161192// `<`.
161193//
161194// For example, if you are filtering Compute Engine instances, you can
161195// exclude instances named `example-instance` by specifying `name !=
161196// example-instance`.
161197//
161198// You can also filter nested fields. For example, you could specify
161199// `scheduling.automaticRestart = false` to include instances only if
161200// they are not scheduled for automatic restarts. You can use filtering
161201// on nested fields to filter based on resource labels.
161202//
161203// To filter on multiple expressions, provide each separate expression
161204// within parentheses. For example: ``` (scheduling.automaticRestart =
161205// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
161206// is an `AND` expression. However, you can include `AND` and `OR`
161207// expressions explicitly. For example: ``` (cpuPlatform = "Intel
161208// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
161209// (scheduling.automaticRestart = true) ```
161210func (c *SubnetworksListCall) Filter(filter string) *SubnetworksListCall {
161211	c.urlParams_.Set("filter", filter)
161212	return c
161213}
161214
161215// MaxResults sets the optional parameter "maxResults": The maximum
161216// number of results per page that should be returned. If the number of
161217// available results is larger than `maxResults`, Compute Engine returns
161218// a `nextPageToken` that can be used to get the next page of results in
161219// subsequent list requests. Acceptable values are `0` to `500`,
161220// inclusive. (Default: `500`)
161221func (c *SubnetworksListCall) MaxResults(maxResults int64) *SubnetworksListCall {
161222	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
161223	return c
161224}
161225
161226// OrderBy sets the optional parameter "orderBy": Sorts list results by
161227// a certain order. By default, results are returned in alphanumerical
161228// order based on the resource name.
161229//
161230// You can also sort results in descending order based on the creation
161231// timestamp using `orderBy="creationTimestamp desc". This sorts
161232// results based on the `creationTimestamp` field in reverse
161233// chronological order (newest result first). Use this to sort resources
161234// like operations so that the newest operation is returned
161235// first.
161236//
161237// Currently, only sorting by `name` or `creationTimestamp desc` is
161238// supported.
161239func (c *SubnetworksListCall) OrderBy(orderBy string) *SubnetworksListCall {
161240	c.urlParams_.Set("orderBy", orderBy)
161241	return c
161242}
161243
161244// PageToken sets the optional parameter "pageToken": Specifies a page
161245// token to use. Set `pageToken` to the `nextPageToken` returned by a
161246// previous list request to get the next page of results.
161247func (c *SubnetworksListCall) PageToken(pageToken string) *SubnetworksListCall {
161248	c.urlParams_.Set("pageToken", pageToken)
161249	return c
161250}
161251
161252// ReturnPartialSuccess sets the optional parameter
161253// "returnPartialSuccess": Opt-in for partial success behavior which
161254// provides partial results in case of failure. The default value is
161255// false.
161256func (c *SubnetworksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SubnetworksListCall {
161257	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
161258	return c
161259}
161260
161261// Fields allows partial responses to be retrieved. See
161262// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
161263// for more information.
161264func (c *SubnetworksListCall) Fields(s ...googleapi.Field) *SubnetworksListCall {
161265	c.urlParams_.Set("fields", googleapi.CombineFields(s))
161266	return c
161267}
161268
161269// IfNoneMatch sets the optional parameter which makes the operation
161270// fail if the object's ETag matches the given value. This is useful for
161271// getting updates only after the object has changed since the last
161272// request. Use googleapi.IsNotModified to check whether the response
161273// error from Do is the result of In-None-Match.
161274func (c *SubnetworksListCall) IfNoneMatch(entityTag string) *SubnetworksListCall {
161275	c.ifNoneMatch_ = entityTag
161276	return c
161277}
161278
161279// Context sets the context to be used in this call's Do method. Any
161280// pending HTTP request will be aborted if the provided context is
161281// canceled.
161282func (c *SubnetworksListCall) Context(ctx context.Context) *SubnetworksListCall {
161283	c.ctx_ = ctx
161284	return c
161285}
161286
161287// Header returns an http.Header that can be modified by the caller to
161288// add HTTP headers to the request.
161289func (c *SubnetworksListCall) Header() http.Header {
161290	if c.header_ == nil {
161291		c.header_ = make(http.Header)
161292	}
161293	return c.header_
161294}
161295
161296func (c *SubnetworksListCall) doRequest(alt string) (*http.Response, error) {
161297	reqHeaders := make(http.Header)
161298	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
161299	for k, v := range c.header_ {
161300		reqHeaders[k] = v
161301	}
161302	reqHeaders.Set("User-Agent", c.s.userAgent())
161303	if c.ifNoneMatch_ != "" {
161304		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
161305	}
161306	var body io.Reader = nil
161307	c.urlParams_.Set("alt", alt)
161308	c.urlParams_.Set("prettyPrint", "false")
161309	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks")
161310	urls += "?" + c.urlParams_.Encode()
161311	req, err := http.NewRequest("GET", urls, body)
161312	if err != nil {
161313		return nil, err
161314	}
161315	req.Header = reqHeaders
161316	googleapi.Expand(req.URL, map[string]string{
161317		"project": c.project,
161318		"region":  c.region,
161319	})
161320	return gensupport.SendRequest(c.ctx_, c.s.client, req)
161321}
161322
161323// Do executes the "compute.subnetworks.list" call.
161324// Exactly one of *SubnetworkList or error will be non-nil. Any non-2xx
161325// status code is an error. Response headers are in either
161326// *SubnetworkList.ServerResponse.Header or (if a response was returned
161327// at all) in error.(*googleapi.Error).Header. Use
161328// googleapi.IsNotModified to check whether the returned error was
161329// because http.StatusNotModified was returned.
161330func (c *SubnetworksListCall) Do(opts ...googleapi.CallOption) (*SubnetworkList, error) {
161331	gensupport.SetOptions(c.urlParams_, opts...)
161332	res, err := c.doRequest("json")
161333	if res != nil && res.StatusCode == http.StatusNotModified {
161334		if res.Body != nil {
161335			res.Body.Close()
161336		}
161337		return nil, &googleapi.Error{
161338			Code:   res.StatusCode,
161339			Header: res.Header,
161340		}
161341	}
161342	if err != nil {
161343		return nil, err
161344	}
161345	defer googleapi.CloseBody(res)
161346	if err := googleapi.CheckResponse(res); err != nil {
161347		return nil, err
161348	}
161349	ret := &SubnetworkList{
161350		ServerResponse: googleapi.ServerResponse{
161351			Header:         res.Header,
161352			HTTPStatusCode: res.StatusCode,
161353		},
161354	}
161355	target := &ret
161356	if err := gensupport.DecodeResponse(target, res); err != nil {
161357		return nil, err
161358	}
161359	return ret, nil
161360	// {
161361	//   "description": "Retrieves a list of subnetworks available to the specified project.",
161362	//   "httpMethod": "GET",
161363	//   "id": "compute.subnetworks.list",
161364	//   "parameterOrder": [
161365	//     "project",
161366	//     "region"
161367	//   ],
161368	//   "parameters": {
161369	//     "filter": {
161370	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
161371	//       "location": "query",
161372	//       "type": "string"
161373	//     },
161374	//     "maxResults": {
161375	//       "default": "500",
161376	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
161377	//       "format": "uint32",
161378	//       "location": "query",
161379	//       "minimum": "0",
161380	//       "type": "integer"
161381	//     },
161382	//     "orderBy": {
161383	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
161384	//       "location": "query",
161385	//       "type": "string"
161386	//     },
161387	//     "pageToken": {
161388	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
161389	//       "location": "query",
161390	//       "type": "string"
161391	//     },
161392	//     "project": {
161393	//       "description": "Project ID for this request.",
161394	//       "location": "path",
161395	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
161396	//       "required": true,
161397	//       "type": "string"
161398	//     },
161399	//     "region": {
161400	//       "description": "Name of the region scoping this request.",
161401	//       "location": "path",
161402	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
161403	//       "required": true,
161404	//       "type": "string"
161405	//     },
161406	//     "returnPartialSuccess": {
161407	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
161408	//       "location": "query",
161409	//       "type": "boolean"
161410	//     }
161411	//   },
161412	//   "path": "projects/{project}/regions/{region}/subnetworks",
161413	//   "response": {
161414	//     "$ref": "SubnetworkList"
161415	//   },
161416	//   "scopes": [
161417	//     "https://www.googleapis.com/auth/cloud-platform",
161418	//     "https://www.googleapis.com/auth/compute",
161419	//     "https://www.googleapis.com/auth/compute.readonly"
161420	//   ]
161421	// }
161422
161423}
161424
161425// Pages invokes f for each page of results.
161426// A non-nil error returned from f will halt the iteration.
161427// The provided context supersedes any context provided to the Context method.
161428func (c *SubnetworksListCall) Pages(ctx context.Context, f func(*SubnetworkList) error) error {
161429	c.ctx_ = ctx
161430	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
161431	for {
161432		x, err := c.Do()
161433		if err != nil {
161434			return err
161435		}
161436		if err := f(x); err != nil {
161437			return err
161438		}
161439		if x.NextPageToken == "" {
161440			return nil
161441		}
161442		c.PageToken(x.NextPageToken)
161443	}
161444}
161445
161446// method id "compute.subnetworks.listUsable":
161447
161448type SubnetworksListUsableCall struct {
161449	s            *Service
161450	project      string
161451	urlParams_   gensupport.URLParams
161452	ifNoneMatch_ string
161453	ctx_         context.Context
161454	header_      http.Header
161455}
161456
161457// ListUsable: Retrieves an aggregated list of all usable subnetworks in
161458// the project.
161459func (r *SubnetworksService) ListUsable(project string) *SubnetworksListUsableCall {
161460	c := &SubnetworksListUsableCall{s: r.s, urlParams_: make(gensupport.URLParams)}
161461	c.project = project
161462	return c
161463}
161464
161465// Filter sets the optional parameter "filter": A filter expression that
161466// filters resources listed in the response. The expression must specify
161467// the field name, a comparison operator, and the value that you want to
161468// use for filtering. The value must be a string, a number, or a
161469// boolean. The comparison operator must be either `=`, `!=`, `>`, or
161470// `<`.
161471//
161472// For example, if you are filtering Compute Engine instances, you can
161473// exclude instances named `example-instance` by specifying `name !=
161474// example-instance`.
161475//
161476// You can also filter nested fields. For example, you could specify
161477// `scheduling.automaticRestart = false` to include instances only if
161478// they are not scheduled for automatic restarts. You can use filtering
161479// on nested fields to filter based on resource labels.
161480//
161481// To filter on multiple expressions, provide each separate expression
161482// within parentheses. For example: ``` (scheduling.automaticRestart =
161483// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
161484// is an `AND` expression. However, you can include `AND` and `OR`
161485// expressions explicitly. For example: ``` (cpuPlatform = "Intel
161486// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
161487// (scheduling.automaticRestart = true) ```
161488func (c *SubnetworksListUsableCall) Filter(filter string) *SubnetworksListUsableCall {
161489	c.urlParams_.Set("filter", filter)
161490	return c
161491}
161492
161493// MaxResults sets the optional parameter "maxResults": The maximum
161494// number of results per page that should be returned. If the number of
161495// available results is larger than `maxResults`, Compute Engine returns
161496// a `nextPageToken` that can be used to get the next page of results in
161497// subsequent list requests. Acceptable values are `0` to `500`,
161498// inclusive. (Default: `500`)
161499func (c *SubnetworksListUsableCall) MaxResults(maxResults int64) *SubnetworksListUsableCall {
161500	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
161501	return c
161502}
161503
161504// OrderBy sets the optional parameter "orderBy": Sorts list results by
161505// a certain order. By default, results are returned in alphanumerical
161506// order based on the resource name.
161507//
161508// You can also sort results in descending order based on the creation
161509// timestamp using `orderBy="creationTimestamp desc". This sorts
161510// results based on the `creationTimestamp` field in reverse
161511// chronological order (newest result first). Use this to sort resources
161512// like operations so that the newest operation is returned
161513// first.
161514//
161515// Currently, only sorting by `name` or `creationTimestamp desc` is
161516// supported.
161517func (c *SubnetworksListUsableCall) OrderBy(orderBy string) *SubnetworksListUsableCall {
161518	c.urlParams_.Set("orderBy", orderBy)
161519	return c
161520}
161521
161522// PageToken sets the optional parameter "pageToken": Specifies a page
161523// token to use. Set `pageToken` to the `nextPageToken` returned by a
161524// previous list request to get the next page of results.
161525func (c *SubnetworksListUsableCall) PageToken(pageToken string) *SubnetworksListUsableCall {
161526	c.urlParams_.Set("pageToken", pageToken)
161527	return c
161528}
161529
161530// ReturnPartialSuccess sets the optional parameter
161531// "returnPartialSuccess": Opt-in for partial success behavior which
161532// provides partial results in case of failure. The default value is
161533// false.
161534func (c *SubnetworksListUsableCall) ReturnPartialSuccess(returnPartialSuccess bool) *SubnetworksListUsableCall {
161535	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
161536	return c
161537}
161538
161539// Fields allows partial responses to be retrieved. See
161540// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
161541// for more information.
161542func (c *SubnetworksListUsableCall) Fields(s ...googleapi.Field) *SubnetworksListUsableCall {
161543	c.urlParams_.Set("fields", googleapi.CombineFields(s))
161544	return c
161545}
161546
161547// IfNoneMatch sets the optional parameter which makes the operation
161548// fail if the object's ETag matches the given value. This is useful for
161549// getting updates only after the object has changed since the last
161550// request. Use googleapi.IsNotModified to check whether the response
161551// error from Do is the result of In-None-Match.
161552func (c *SubnetworksListUsableCall) IfNoneMatch(entityTag string) *SubnetworksListUsableCall {
161553	c.ifNoneMatch_ = entityTag
161554	return c
161555}
161556
161557// Context sets the context to be used in this call's Do method. Any
161558// pending HTTP request will be aborted if the provided context is
161559// canceled.
161560func (c *SubnetworksListUsableCall) Context(ctx context.Context) *SubnetworksListUsableCall {
161561	c.ctx_ = ctx
161562	return c
161563}
161564
161565// Header returns an http.Header that can be modified by the caller to
161566// add HTTP headers to the request.
161567func (c *SubnetworksListUsableCall) Header() http.Header {
161568	if c.header_ == nil {
161569		c.header_ = make(http.Header)
161570	}
161571	return c.header_
161572}
161573
161574func (c *SubnetworksListUsableCall) doRequest(alt string) (*http.Response, error) {
161575	reqHeaders := make(http.Header)
161576	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
161577	for k, v := range c.header_ {
161578		reqHeaders[k] = v
161579	}
161580	reqHeaders.Set("User-Agent", c.s.userAgent())
161581	if c.ifNoneMatch_ != "" {
161582		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
161583	}
161584	var body io.Reader = nil
161585	c.urlParams_.Set("alt", alt)
161586	c.urlParams_.Set("prettyPrint", "false")
161587	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/subnetworks/listUsable")
161588	urls += "?" + c.urlParams_.Encode()
161589	req, err := http.NewRequest("GET", urls, body)
161590	if err != nil {
161591		return nil, err
161592	}
161593	req.Header = reqHeaders
161594	googleapi.Expand(req.URL, map[string]string{
161595		"project": c.project,
161596	})
161597	return gensupport.SendRequest(c.ctx_, c.s.client, req)
161598}
161599
161600// Do executes the "compute.subnetworks.listUsable" call.
161601// Exactly one of *UsableSubnetworksAggregatedList or error will be
161602// non-nil. Any non-2xx status code is an error. Response headers are in
161603// either *UsableSubnetworksAggregatedList.ServerResponse.Header or (if
161604// a response was returned at all) in error.(*googleapi.Error).Header.
161605// Use googleapi.IsNotModified to check whether the returned error was
161606// because http.StatusNotModified was returned.
161607func (c *SubnetworksListUsableCall) Do(opts ...googleapi.CallOption) (*UsableSubnetworksAggregatedList, error) {
161608	gensupport.SetOptions(c.urlParams_, opts...)
161609	res, err := c.doRequest("json")
161610	if res != nil && res.StatusCode == http.StatusNotModified {
161611		if res.Body != nil {
161612			res.Body.Close()
161613		}
161614		return nil, &googleapi.Error{
161615			Code:   res.StatusCode,
161616			Header: res.Header,
161617		}
161618	}
161619	if err != nil {
161620		return nil, err
161621	}
161622	defer googleapi.CloseBody(res)
161623	if err := googleapi.CheckResponse(res); err != nil {
161624		return nil, err
161625	}
161626	ret := &UsableSubnetworksAggregatedList{
161627		ServerResponse: googleapi.ServerResponse{
161628			Header:         res.Header,
161629			HTTPStatusCode: res.StatusCode,
161630		},
161631	}
161632	target := &ret
161633	if err := gensupport.DecodeResponse(target, res); err != nil {
161634		return nil, err
161635	}
161636	return ret, nil
161637	// {
161638	//   "description": "Retrieves an aggregated list of all usable subnetworks in the project.",
161639	//   "httpMethod": "GET",
161640	//   "id": "compute.subnetworks.listUsable",
161641	//   "parameterOrder": [
161642	//     "project"
161643	//   ],
161644	//   "parameters": {
161645	//     "filter": {
161646	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
161647	//       "location": "query",
161648	//       "type": "string"
161649	//     },
161650	//     "maxResults": {
161651	//       "default": "500",
161652	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
161653	//       "format": "uint32",
161654	//       "location": "query",
161655	//       "minimum": "0",
161656	//       "type": "integer"
161657	//     },
161658	//     "orderBy": {
161659	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
161660	//       "location": "query",
161661	//       "type": "string"
161662	//     },
161663	//     "pageToken": {
161664	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
161665	//       "location": "query",
161666	//       "type": "string"
161667	//     },
161668	//     "project": {
161669	//       "description": "Project ID for this request.",
161670	//       "location": "path",
161671	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
161672	//       "required": true,
161673	//       "type": "string"
161674	//     },
161675	//     "returnPartialSuccess": {
161676	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
161677	//       "location": "query",
161678	//       "type": "boolean"
161679	//     }
161680	//   },
161681	//   "path": "projects/{project}/aggregated/subnetworks/listUsable",
161682	//   "response": {
161683	//     "$ref": "UsableSubnetworksAggregatedList"
161684	//   },
161685	//   "scopes": [
161686	//     "https://www.googleapis.com/auth/cloud-platform",
161687	//     "https://www.googleapis.com/auth/compute",
161688	//     "https://www.googleapis.com/auth/compute.readonly"
161689	//   ]
161690	// }
161691
161692}
161693
161694// Pages invokes f for each page of results.
161695// A non-nil error returned from f will halt the iteration.
161696// The provided context supersedes any context provided to the Context method.
161697func (c *SubnetworksListUsableCall) Pages(ctx context.Context, f func(*UsableSubnetworksAggregatedList) error) error {
161698	c.ctx_ = ctx
161699	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
161700	for {
161701		x, err := c.Do()
161702		if err != nil {
161703			return err
161704		}
161705		if err := f(x); err != nil {
161706			return err
161707		}
161708		if x.NextPageToken == "" {
161709			return nil
161710		}
161711		c.PageToken(x.NextPageToken)
161712	}
161713}
161714
161715// method id "compute.subnetworks.patch":
161716
161717type SubnetworksPatchCall struct {
161718	s           *Service
161719	project     string
161720	region      string
161721	subnetwork  string
161722	subnetwork2 *Subnetwork
161723	urlParams_  gensupport.URLParams
161724	ctx_        context.Context
161725	header_     http.Header
161726}
161727
161728// Patch: Patches the specified subnetwork with the data included in the
161729// request. Only certain fields can be updated with a patch request as
161730// indicated in the field descriptions. You must specify the current
161731// fingerprint of the subnetwork resource being patched.
161732func (r *SubnetworksService) Patch(project string, region string, subnetwork string, subnetwork2 *Subnetwork) *SubnetworksPatchCall {
161733	c := &SubnetworksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
161734	c.project = project
161735	c.region = region
161736	c.subnetwork = subnetwork
161737	c.subnetwork2 = subnetwork2
161738	return c
161739}
161740
161741// DrainTimeoutSeconds sets the optional parameter
161742// "drainTimeoutSeconds": The drain timeout specifies the upper bound in
161743// seconds on the amount of time allowed to drain connections from the
161744// current ACTIVE subnetwork to the current BACKUP subnetwork. The drain
161745// timeout is only applicable when the following conditions are true: -
161746// the subnetwork being patched has purpose =
161747// INTERNAL_HTTPS_LOAD_BALANCER - the subnetwork being patched has role
161748// = BACKUP - the patch request is setting the role to ACTIVE. Note that
161749// after this patch operation the roles of the ACTIVE and BACKUP
161750// subnetworks will be swapped.
161751func (c *SubnetworksPatchCall) DrainTimeoutSeconds(drainTimeoutSeconds int64) *SubnetworksPatchCall {
161752	c.urlParams_.Set("drainTimeoutSeconds", fmt.Sprint(drainTimeoutSeconds))
161753	return c
161754}
161755
161756// RequestId sets the optional parameter "requestId": An optional
161757// request ID to identify requests. Specify a unique request ID so that
161758// if you must retry your request, the server will know to ignore the
161759// request if it has already been completed.
161760//
161761// For example, consider a situation where you make an initial request
161762// and the request times out. If you make the request again with the
161763// same request ID, the server can check if original operation with the
161764// same request ID was received, and if so, will ignore the second
161765// request. This prevents clients from accidentally creating duplicate
161766// commitments.
161767//
161768// The request ID must be a valid UUID with the exception that zero UUID
161769// is not supported (00000000-0000-0000-0000-000000000000).
161770func (c *SubnetworksPatchCall) RequestId(requestId string) *SubnetworksPatchCall {
161771	c.urlParams_.Set("requestId", requestId)
161772	return c
161773}
161774
161775// Fields allows partial responses to be retrieved. See
161776// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
161777// for more information.
161778func (c *SubnetworksPatchCall) Fields(s ...googleapi.Field) *SubnetworksPatchCall {
161779	c.urlParams_.Set("fields", googleapi.CombineFields(s))
161780	return c
161781}
161782
161783// Context sets the context to be used in this call's Do method. Any
161784// pending HTTP request will be aborted if the provided context is
161785// canceled.
161786func (c *SubnetworksPatchCall) Context(ctx context.Context) *SubnetworksPatchCall {
161787	c.ctx_ = ctx
161788	return c
161789}
161790
161791// Header returns an http.Header that can be modified by the caller to
161792// add HTTP headers to the request.
161793func (c *SubnetworksPatchCall) Header() http.Header {
161794	if c.header_ == nil {
161795		c.header_ = make(http.Header)
161796	}
161797	return c.header_
161798}
161799
161800func (c *SubnetworksPatchCall) doRequest(alt string) (*http.Response, error) {
161801	reqHeaders := make(http.Header)
161802	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
161803	for k, v := range c.header_ {
161804		reqHeaders[k] = v
161805	}
161806	reqHeaders.Set("User-Agent", c.s.userAgent())
161807	var body io.Reader = nil
161808	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetwork2)
161809	if err != nil {
161810		return nil, err
161811	}
161812	reqHeaders.Set("Content-Type", "application/json")
161813	c.urlParams_.Set("alt", alt)
161814	c.urlParams_.Set("prettyPrint", "false")
161815	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks/{subnetwork}")
161816	urls += "?" + c.urlParams_.Encode()
161817	req, err := http.NewRequest("PATCH", urls, body)
161818	if err != nil {
161819		return nil, err
161820	}
161821	req.Header = reqHeaders
161822	googleapi.Expand(req.URL, map[string]string{
161823		"project":    c.project,
161824		"region":     c.region,
161825		"subnetwork": c.subnetwork,
161826	})
161827	return gensupport.SendRequest(c.ctx_, c.s.client, req)
161828}
161829
161830// Do executes the "compute.subnetworks.patch" call.
161831// Exactly one of *Operation or error will be non-nil. Any non-2xx
161832// status code is an error. Response headers are in either
161833// *Operation.ServerResponse.Header or (if a response was returned at
161834// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
161835// to check whether the returned error was because
161836// http.StatusNotModified was returned.
161837func (c *SubnetworksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
161838	gensupport.SetOptions(c.urlParams_, opts...)
161839	res, err := c.doRequest("json")
161840	if res != nil && res.StatusCode == http.StatusNotModified {
161841		if res.Body != nil {
161842			res.Body.Close()
161843		}
161844		return nil, &googleapi.Error{
161845			Code:   res.StatusCode,
161846			Header: res.Header,
161847		}
161848	}
161849	if err != nil {
161850		return nil, err
161851	}
161852	defer googleapi.CloseBody(res)
161853	if err := googleapi.CheckResponse(res); err != nil {
161854		return nil, err
161855	}
161856	ret := &Operation{
161857		ServerResponse: googleapi.ServerResponse{
161858			Header:         res.Header,
161859			HTTPStatusCode: res.StatusCode,
161860		},
161861	}
161862	target := &ret
161863	if err := gensupport.DecodeResponse(target, res); err != nil {
161864		return nil, err
161865	}
161866	return ret, nil
161867	// {
161868	//   "description": "Patches the specified subnetwork with the data included in the request. Only certain fields can be updated with a patch request as indicated in the field descriptions. You must specify the current fingerprint of the subnetwork resource being patched.",
161869	//   "httpMethod": "PATCH",
161870	//   "id": "compute.subnetworks.patch",
161871	//   "parameterOrder": [
161872	//     "project",
161873	//     "region",
161874	//     "subnetwork"
161875	//   ],
161876	//   "parameters": {
161877	//     "drainTimeoutSeconds": {
161878	//       "description": "The drain timeout specifies the upper bound in seconds on the amount of time allowed to drain connections from the current ACTIVE subnetwork to the current BACKUP subnetwork. The drain timeout is only applicable when the following conditions are true: - the subnetwork being patched has purpose = INTERNAL_HTTPS_LOAD_BALANCER - the subnetwork being patched has role = BACKUP - the patch request is setting the role to ACTIVE. Note that after this patch operation the roles of the ACTIVE and BACKUP subnetworks will be swapped.",
161879	//       "format": "int32",
161880	//       "location": "query",
161881	//       "type": "integer"
161882	//     },
161883	//     "project": {
161884	//       "description": "Project ID for this request.",
161885	//       "location": "path",
161886	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
161887	//       "required": true,
161888	//       "type": "string"
161889	//     },
161890	//     "region": {
161891	//       "description": "Name of the region scoping this request.",
161892	//       "location": "path",
161893	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
161894	//       "required": true,
161895	//       "type": "string"
161896	//     },
161897	//     "requestId": {
161898	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
161899	//       "location": "query",
161900	//       "type": "string"
161901	//     },
161902	//     "subnetwork": {
161903	//       "description": "Name of the Subnetwork resource to patch.",
161904	//       "location": "path",
161905	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
161906	//       "required": true,
161907	//       "type": "string"
161908	//     }
161909	//   },
161910	//   "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}",
161911	//   "request": {
161912	//     "$ref": "Subnetwork"
161913	//   },
161914	//   "response": {
161915	//     "$ref": "Operation"
161916	//   },
161917	//   "scopes": [
161918	//     "https://www.googleapis.com/auth/cloud-platform",
161919	//     "https://www.googleapis.com/auth/compute"
161920	//   ]
161921	// }
161922
161923}
161924
161925// method id "compute.subnetworks.setIamPolicy":
161926
161927type SubnetworksSetIamPolicyCall struct {
161928	s                      *Service
161929	project                string
161930	region                 string
161931	resource               string
161932	regionsetpolicyrequest *RegionSetPolicyRequest
161933	urlParams_             gensupport.URLParams
161934	ctx_                   context.Context
161935	header_                http.Header
161936}
161937
161938// SetIamPolicy: Sets the access control policy on the specified
161939// resource. Replaces any existing policy.
161940func (r *SubnetworksService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *SubnetworksSetIamPolicyCall {
161941	c := &SubnetworksSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
161942	c.project = project
161943	c.region = region
161944	c.resource = resource
161945	c.regionsetpolicyrequest = regionsetpolicyrequest
161946	return c
161947}
161948
161949// Fields allows partial responses to be retrieved. See
161950// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
161951// for more information.
161952func (c *SubnetworksSetIamPolicyCall) Fields(s ...googleapi.Field) *SubnetworksSetIamPolicyCall {
161953	c.urlParams_.Set("fields", googleapi.CombineFields(s))
161954	return c
161955}
161956
161957// Context sets the context to be used in this call's Do method. Any
161958// pending HTTP request will be aborted if the provided context is
161959// canceled.
161960func (c *SubnetworksSetIamPolicyCall) Context(ctx context.Context) *SubnetworksSetIamPolicyCall {
161961	c.ctx_ = ctx
161962	return c
161963}
161964
161965// Header returns an http.Header that can be modified by the caller to
161966// add HTTP headers to the request.
161967func (c *SubnetworksSetIamPolicyCall) Header() http.Header {
161968	if c.header_ == nil {
161969		c.header_ = make(http.Header)
161970	}
161971	return c.header_
161972}
161973
161974func (c *SubnetworksSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
161975	reqHeaders := make(http.Header)
161976	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
161977	for k, v := range c.header_ {
161978		reqHeaders[k] = v
161979	}
161980	reqHeaders.Set("User-Agent", c.s.userAgent())
161981	var body io.Reader = nil
161982	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest)
161983	if err != nil {
161984		return nil, err
161985	}
161986	reqHeaders.Set("Content-Type", "application/json")
161987	c.urlParams_.Set("alt", alt)
161988	c.urlParams_.Set("prettyPrint", "false")
161989	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks/{resource}/setIamPolicy")
161990	urls += "?" + c.urlParams_.Encode()
161991	req, err := http.NewRequest("POST", urls, body)
161992	if err != nil {
161993		return nil, err
161994	}
161995	req.Header = reqHeaders
161996	googleapi.Expand(req.URL, map[string]string{
161997		"project":  c.project,
161998		"region":   c.region,
161999		"resource": c.resource,
162000	})
162001	return gensupport.SendRequest(c.ctx_, c.s.client, req)
162002}
162003
162004// Do executes the "compute.subnetworks.setIamPolicy" call.
162005// Exactly one of *Policy or error will be non-nil. Any non-2xx status
162006// code is an error. Response headers are in either
162007// *Policy.ServerResponse.Header or (if a response was returned at all)
162008// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
162009// check whether the returned error was because http.StatusNotModified
162010// was returned.
162011func (c *SubnetworksSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
162012	gensupport.SetOptions(c.urlParams_, opts...)
162013	res, err := c.doRequest("json")
162014	if res != nil && res.StatusCode == http.StatusNotModified {
162015		if res.Body != nil {
162016			res.Body.Close()
162017		}
162018		return nil, &googleapi.Error{
162019			Code:   res.StatusCode,
162020			Header: res.Header,
162021		}
162022	}
162023	if err != nil {
162024		return nil, err
162025	}
162026	defer googleapi.CloseBody(res)
162027	if err := googleapi.CheckResponse(res); err != nil {
162028		return nil, err
162029	}
162030	ret := &Policy{
162031		ServerResponse: googleapi.ServerResponse{
162032			Header:         res.Header,
162033			HTTPStatusCode: res.StatusCode,
162034		},
162035	}
162036	target := &ret
162037	if err := gensupport.DecodeResponse(target, res); err != nil {
162038		return nil, err
162039	}
162040	return ret, nil
162041	// {
162042	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
162043	//   "httpMethod": "POST",
162044	//   "id": "compute.subnetworks.setIamPolicy",
162045	//   "parameterOrder": [
162046	//     "project",
162047	//     "region",
162048	//     "resource"
162049	//   ],
162050	//   "parameters": {
162051	//     "project": {
162052	//       "description": "Project ID for this request.",
162053	//       "location": "path",
162054	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
162055	//       "required": true,
162056	//       "type": "string"
162057	//     },
162058	//     "region": {
162059	//       "description": "The name of the region for this request.",
162060	//       "location": "path",
162061	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
162062	//       "required": true,
162063	//       "type": "string"
162064	//     },
162065	//     "resource": {
162066	//       "description": "Name or id of the resource for this request.",
162067	//       "location": "path",
162068	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
162069	//       "required": true,
162070	//       "type": "string"
162071	//     }
162072	//   },
162073	//   "path": "projects/{project}/regions/{region}/subnetworks/{resource}/setIamPolicy",
162074	//   "request": {
162075	//     "$ref": "RegionSetPolicyRequest"
162076	//   },
162077	//   "response": {
162078	//     "$ref": "Policy"
162079	//   },
162080	//   "scopes": [
162081	//     "https://www.googleapis.com/auth/cloud-platform",
162082	//     "https://www.googleapis.com/auth/compute"
162083	//   ]
162084	// }
162085
162086}
162087
162088// method id "compute.subnetworks.setPrivateIpGoogleAccess":
162089
162090type SubnetworksSetPrivateIpGoogleAccessCall struct {
162091	s                                          *Service
162092	project                                    string
162093	region                                     string
162094	subnetwork                                 string
162095	subnetworkssetprivateipgoogleaccessrequest *SubnetworksSetPrivateIpGoogleAccessRequest
162096	urlParams_                                 gensupport.URLParams
162097	ctx_                                       context.Context
162098	header_                                    http.Header
162099}
162100
162101// SetPrivateIpGoogleAccess: Set whether VMs in this subnet can access
162102// Google services without assigning external IP addresses through
162103// Private Google Access.
162104func (r *SubnetworksService) SetPrivateIpGoogleAccess(project string, region string, subnetwork string, subnetworkssetprivateipgoogleaccessrequest *SubnetworksSetPrivateIpGoogleAccessRequest) *SubnetworksSetPrivateIpGoogleAccessCall {
162105	c := &SubnetworksSetPrivateIpGoogleAccessCall{s: r.s, urlParams_: make(gensupport.URLParams)}
162106	c.project = project
162107	c.region = region
162108	c.subnetwork = subnetwork
162109	c.subnetworkssetprivateipgoogleaccessrequest = subnetworkssetprivateipgoogleaccessrequest
162110	return c
162111}
162112
162113// RequestId sets the optional parameter "requestId": An optional
162114// request ID to identify requests. Specify a unique request ID so that
162115// if you must retry your request, the server will know to ignore the
162116// request if it has already been completed.
162117//
162118// For example, consider a situation where you make an initial request
162119// and the request times out. If you make the request again with the
162120// same request ID, the server can check if original operation with the
162121// same request ID was received, and if so, will ignore the second
162122// request. This prevents clients from accidentally creating duplicate
162123// commitments.
162124//
162125// The request ID must be a valid UUID with the exception that zero UUID
162126// is not supported (00000000-0000-0000-0000-000000000000).
162127func (c *SubnetworksSetPrivateIpGoogleAccessCall) RequestId(requestId string) *SubnetworksSetPrivateIpGoogleAccessCall {
162128	c.urlParams_.Set("requestId", requestId)
162129	return c
162130}
162131
162132// Fields allows partial responses to be retrieved. See
162133// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
162134// for more information.
162135func (c *SubnetworksSetPrivateIpGoogleAccessCall) Fields(s ...googleapi.Field) *SubnetworksSetPrivateIpGoogleAccessCall {
162136	c.urlParams_.Set("fields", googleapi.CombineFields(s))
162137	return c
162138}
162139
162140// Context sets the context to be used in this call's Do method. Any
162141// pending HTTP request will be aborted if the provided context is
162142// canceled.
162143func (c *SubnetworksSetPrivateIpGoogleAccessCall) Context(ctx context.Context) *SubnetworksSetPrivateIpGoogleAccessCall {
162144	c.ctx_ = ctx
162145	return c
162146}
162147
162148// Header returns an http.Header that can be modified by the caller to
162149// add HTTP headers to the request.
162150func (c *SubnetworksSetPrivateIpGoogleAccessCall) Header() http.Header {
162151	if c.header_ == nil {
162152		c.header_ = make(http.Header)
162153	}
162154	return c.header_
162155}
162156
162157func (c *SubnetworksSetPrivateIpGoogleAccessCall) doRequest(alt string) (*http.Response, error) {
162158	reqHeaders := make(http.Header)
162159	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
162160	for k, v := range c.header_ {
162161		reqHeaders[k] = v
162162	}
162163	reqHeaders.Set("User-Agent", c.s.userAgent())
162164	var body io.Reader = nil
162165	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetworkssetprivateipgoogleaccessrequest)
162166	if err != nil {
162167		return nil, err
162168	}
162169	reqHeaders.Set("Content-Type", "application/json")
162170	c.urlParams_.Set("alt", alt)
162171	c.urlParams_.Set("prettyPrint", "false")
162172	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks/{subnetwork}/setPrivateIpGoogleAccess")
162173	urls += "?" + c.urlParams_.Encode()
162174	req, err := http.NewRequest("POST", urls, body)
162175	if err != nil {
162176		return nil, err
162177	}
162178	req.Header = reqHeaders
162179	googleapi.Expand(req.URL, map[string]string{
162180		"project":    c.project,
162181		"region":     c.region,
162182		"subnetwork": c.subnetwork,
162183	})
162184	return gensupport.SendRequest(c.ctx_, c.s.client, req)
162185}
162186
162187// Do executes the "compute.subnetworks.setPrivateIpGoogleAccess" call.
162188// Exactly one of *Operation or error will be non-nil. Any non-2xx
162189// status code is an error. Response headers are in either
162190// *Operation.ServerResponse.Header or (if a response was returned at
162191// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
162192// to check whether the returned error was because
162193// http.StatusNotModified was returned.
162194func (c *SubnetworksSetPrivateIpGoogleAccessCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
162195	gensupport.SetOptions(c.urlParams_, opts...)
162196	res, err := c.doRequest("json")
162197	if res != nil && res.StatusCode == http.StatusNotModified {
162198		if res.Body != nil {
162199			res.Body.Close()
162200		}
162201		return nil, &googleapi.Error{
162202			Code:   res.StatusCode,
162203			Header: res.Header,
162204		}
162205	}
162206	if err != nil {
162207		return nil, err
162208	}
162209	defer googleapi.CloseBody(res)
162210	if err := googleapi.CheckResponse(res); err != nil {
162211		return nil, err
162212	}
162213	ret := &Operation{
162214		ServerResponse: googleapi.ServerResponse{
162215			Header:         res.Header,
162216			HTTPStatusCode: res.StatusCode,
162217		},
162218	}
162219	target := &ret
162220	if err := gensupport.DecodeResponse(target, res); err != nil {
162221		return nil, err
162222	}
162223	return ret, nil
162224	// {
162225	//   "description": "Set whether VMs in this subnet can access Google services without assigning external IP addresses through Private Google Access.",
162226	//   "httpMethod": "POST",
162227	//   "id": "compute.subnetworks.setPrivateIpGoogleAccess",
162228	//   "parameterOrder": [
162229	//     "project",
162230	//     "region",
162231	//     "subnetwork"
162232	//   ],
162233	//   "parameters": {
162234	//     "project": {
162235	//       "description": "Project ID for this request.",
162236	//       "location": "path",
162237	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
162238	//       "required": true,
162239	//       "type": "string"
162240	//     },
162241	//     "region": {
162242	//       "description": "Name of the region scoping this request.",
162243	//       "location": "path",
162244	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
162245	//       "required": true,
162246	//       "type": "string"
162247	//     },
162248	//     "requestId": {
162249	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
162250	//       "location": "query",
162251	//       "type": "string"
162252	//     },
162253	//     "subnetwork": {
162254	//       "description": "Name of the Subnetwork resource.",
162255	//       "location": "path",
162256	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
162257	//       "required": true,
162258	//       "type": "string"
162259	//     }
162260	//   },
162261	//   "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}/setPrivateIpGoogleAccess",
162262	//   "request": {
162263	//     "$ref": "SubnetworksSetPrivateIpGoogleAccessRequest"
162264	//   },
162265	//   "response": {
162266	//     "$ref": "Operation"
162267	//   },
162268	//   "scopes": [
162269	//     "https://www.googleapis.com/auth/cloud-platform",
162270	//     "https://www.googleapis.com/auth/compute"
162271	//   ]
162272	// }
162273
162274}
162275
162276// method id "compute.subnetworks.testIamPermissions":
162277
162278type SubnetworksTestIamPermissionsCall struct {
162279	s                      *Service
162280	project                string
162281	region                 string
162282	resource               string
162283	testpermissionsrequest *TestPermissionsRequest
162284	urlParams_             gensupport.URLParams
162285	ctx_                   context.Context
162286	header_                http.Header
162287}
162288
162289// TestIamPermissions: Returns permissions that a caller has on the
162290// specified resource.
162291func (r *SubnetworksService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *SubnetworksTestIamPermissionsCall {
162292	c := &SubnetworksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
162293	c.project = project
162294	c.region = region
162295	c.resource = resource
162296	c.testpermissionsrequest = testpermissionsrequest
162297	return c
162298}
162299
162300// Fields allows partial responses to be retrieved. See
162301// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
162302// for more information.
162303func (c *SubnetworksTestIamPermissionsCall) Fields(s ...googleapi.Field) *SubnetworksTestIamPermissionsCall {
162304	c.urlParams_.Set("fields", googleapi.CombineFields(s))
162305	return c
162306}
162307
162308// Context sets the context to be used in this call's Do method. Any
162309// pending HTTP request will be aborted if the provided context is
162310// canceled.
162311func (c *SubnetworksTestIamPermissionsCall) Context(ctx context.Context) *SubnetworksTestIamPermissionsCall {
162312	c.ctx_ = ctx
162313	return c
162314}
162315
162316// Header returns an http.Header that can be modified by the caller to
162317// add HTTP headers to the request.
162318func (c *SubnetworksTestIamPermissionsCall) Header() http.Header {
162319	if c.header_ == nil {
162320		c.header_ = make(http.Header)
162321	}
162322	return c.header_
162323}
162324
162325func (c *SubnetworksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
162326	reqHeaders := make(http.Header)
162327	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
162328	for k, v := range c.header_ {
162329		reqHeaders[k] = v
162330	}
162331	reqHeaders.Set("User-Agent", c.s.userAgent())
162332	var body io.Reader = nil
162333	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
162334	if err != nil {
162335		return nil, err
162336	}
162337	reqHeaders.Set("Content-Type", "application/json")
162338	c.urlParams_.Set("alt", alt)
162339	c.urlParams_.Set("prettyPrint", "false")
162340	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks/{resource}/testIamPermissions")
162341	urls += "?" + c.urlParams_.Encode()
162342	req, err := http.NewRequest("POST", urls, body)
162343	if err != nil {
162344		return nil, err
162345	}
162346	req.Header = reqHeaders
162347	googleapi.Expand(req.URL, map[string]string{
162348		"project":  c.project,
162349		"region":   c.region,
162350		"resource": c.resource,
162351	})
162352	return gensupport.SendRequest(c.ctx_, c.s.client, req)
162353}
162354
162355// Do executes the "compute.subnetworks.testIamPermissions" call.
162356// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
162357// non-2xx status code is an error. Response headers are in either
162358// *TestPermissionsResponse.ServerResponse.Header or (if a response was
162359// returned at all) in error.(*googleapi.Error).Header. Use
162360// googleapi.IsNotModified to check whether the returned error was
162361// because http.StatusNotModified was returned.
162362func (c *SubnetworksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
162363	gensupport.SetOptions(c.urlParams_, opts...)
162364	res, err := c.doRequest("json")
162365	if res != nil && res.StatusCode == http.StatusNotModified {
162366		if res.Body != nil {
162367			res.Body.Close()
162368		}
162369		return nil, &googleapi.Error{
162370			Code:   res.StatusCode,
162371			Header: res.Header,
162372		}
162373	}
162374	if err != nil {
162375		return nil, err
162376	}
162377	defer googleapi.CloseBody(res)
162378	if err := googleapi.CheckResponse(res); err != nil {
162379		return nil, err
162380	}
162381	ret := &TestPermissionsResponse{
162382		ServerResponse: googleapi.ServerResponse{
162383			Header:         res.Header,
162384			HTTPStatusCode: res.StatusCode,
162385		},
162386	}
162387	target := &ret
162388	if err := gensupport.DecodeResponse(target, res); err != nil {
162389		return nil, err
162390	}
162391	return ret, nil
162392	// {
162393	//   "description": "Returns permissions that a caller has on the specified resource.",
162394	//   "httpMethod": "POST",
162395	//   "id": "compute.subnetworks.testIamPermissions",
162396	//   "parameterOrder": [
162397	//     "project",
162398	//     "region",
162399	//     "resource"
162400	//   ],
162401	//   "parameters": {
162402	//     "project": {
162403	//       "description": "Project ID for this request.",
162404	//       "location": "path",
162405	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
162406	//       "required": true,
162407	//       "type": "string"
162408	//     },
162409	//     "region": {
162410	//       "description": "The name of the region for this request.",
162411	//       "location": "path",
162412	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
162413	//       "required": true,
162414	//       "type": "string"
162415	//     },
162416	//     "resource": {
162417	//       "description": "Name or id of the resource for this request.",
162418	//       "location": "path",
162419	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
162420	//       "required": true,
162421	//       "type": "string"
162422	//     }
162423	//   },
162424	//   "path": "projects/{project}/regions/{region}/subnetworks/{resource}/testIamPermissions",
162425	//   "request": {
162426	//     "$ref": "TestPermissionsRequest"
162427	//   },
162428	//   "response": {
162429	//     "$ref": "TestPermissionsResponse"
162430	//   },
162431	//   "scopes": [
162432	//     "https://www.googleapis.com/auth/cloud-platform",
162433	//     "https://www.googleapis.com/auth/compute",
162434	//     "https://www.googleapis.com/auth/compute.readonly"
162435	//   ]
162436	// }
162437
162438}
162439
162440// method id "compute.targetGrpcProxies.delete":
162441
162442type TargetGrpcProxiesDeleteCall struct {
162443	s               *Service
162444	project         string
162445	targetGrpcProxy string
162446	urlParams_      gensupport.URLParams
162447	ctx_            context.Context
162448	header_         http.Header
162449}
162450
162451// Delete: Deletes the specified TargetGrpcProxy in the given scope
162452func (r *TargetGrpcProxiesService) Delete(project string, targetGrpcProxy string) *TargetGrpcProxiesDeleteCall {
162453	c := &TargetGrpcProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
162454	c.project = project
162455	c.targetGrpcProxy = targetGrpcProxy
162456	return c
162457}
162458
162459// RequestId sets the optional parameter "requestId": An optional
162460// request ID to identify requests. Specify a unique request ID so that
162461// if you must retry your request, the server will know to ignore the
162462// request if it has already been completed.
162463//
162464// For example, consider a situation where you make an initial request
162465// and the request times out. If you make the request again with the
162466// same request ID, the server can check if original operation with the
162467// same request ID was received, and if so, will ignore the second
162468// request. This prevents clients from accidentally creating duplicate
162469// commitments.
162470//
162471// The request ID must be a valid UUID with the exception that zero UUID
162472// is not supported (00000000-0000-0000-0000-000000000000).
162473func (c *TargetGrpcProxiesDeleteCall) RequestId(requestId string) *TargetGrpcProxiesDeleteCall {
162474	c.urlParams_.Set("requestId", requestId)
162475	return c
162476}
162477
162478// Fields allows partial responses to be retrieved. See
162479// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
162480// for more information.
162481func (c *TargetGrpcProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetGrpcProxiesDeleteCall {
162482	c.urlParams_.Set("fields", googleapi.CombineFields(s))
162483	return c
162484}
162485
162486// Context sets the context to be used in this call's Do method. Any
162487// pending HTTP request will be aborted if the provided context is
162488// canceled.
162489func (c *TargetGrpcProxiesDeleteCall) Context(ctx context.Context) *TargetGrpcProxiesDeleteCall {
162490	c.ctx_ = ctx
162491	return c
162492}
162493
162494// Header returns an http.Header that can be modified by the caller to
162495// add HTTP headers to the request.
162496func (c *TargetGrpcProxiesDeleteCall) Header() http.Header {
162497	if c.header_ == nil {
162498		c.header_ = make(http.Header)
162499	}
162500	return c.header_
162501}
162502
162503func (c *TargetGrpcProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
162504	reqHeaders := make(http.Header)
162505	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
162506	for k, v := range c.header_ {
162507		reqHeaders[k] = v
162508	}
162509	reqHeaders.Set("User-Agent", c.s.userAgent())
162510	var body io.Reader = nil
162511	c.urlParams_.Set("alt", alt)
162512	c.urlParams_.Set("prettyPrint", "false")
162513	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}")
162514	urls += "?" + c.urlParams_.Encode()
162515	req, err := http.NewRequest("DELETE", urls, body)
162516	if err != nil {
162517		return nil, err
162518	}
162519	req.Header = reqHeaders
162520	googleapi.Expand(req.URL, map[string]string{
162521		"project":         c.project,
162522		"targetGrpcProxy": c.targetGrpcProxy,
162523	})
162524	return gensupport.SendRequest(c.ctx_, c.s.client, req)
162525}
162526
162527// Do executes the "compute.targetGrpcProxies.delete" call.
162528// Exactly one of *Operation or error will be non-nil. Any non-2xx
162529// status code is an error. Response headers are in either
162530// *Operation.ServerResponse.Header or (if a response was returned at
162531// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
162532// to check whether the returned error was because
162533// http.StatusNotModified was returned.
162534func (c *TargetGrpcProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
162535	gensupport.SetOptions(c.urlParams_, opts...)
162536	res, err := c.doRequest("json")
162537	if res != nil && res.StatusCode == http.StatusNotModified {
162538		if res.Body != nil {
162539			res.Body.Close()
162540		}
162541		return nil, &googleapi.Error{
162542			Code:   res.StatusCode,
162543			Header: res.Header,
162544		}
162545	}
162546	if err != nil {
162547		return nil, err
162548	}
162549	defer googleapi.CloseBody(res)
162550	if err := googleapi.CheckResponse(res); err != nil {
162551		return nil, err
162552	}
162553	ret := &Operation{
162554		ServerResponse: googleapi.ServerResponse{
162555			Header:         res.Header,
162556			HTTPStatusCode: res.StatusCode,
162557		},
162558	}
162559	target := &ret
162560	if err := gensupport.DecodeResponse(target, res); err != nil {
162561		return nil, err
162562	}
162563	return ret, nil
162564	// {
162565	//   "description": "Deletes the specified TargetGrpcProxy in the given scope",
162566	//   "httpMethod": "DELETE",
162567	//   "id": "compute.targetGrpcProxies.delete",
162568	//   "parameterOrder": [
162569	//     "project",
162570	//     "targetGrpcProxy"
162571	//   ],
162572	//   "parameters": {
162573	//     "project": {
162574	//       "description": "Project ID for this request.",
162575	//       "location": "path",
162576	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
162577	//       "required": true,
162578	//       "type": "string"
162579	//     },
162580	//     "requestId": {
162581	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
162582	//       "location": "query",
162583	//       "type": "string"
162584	//     },
162585	//     "targetGrpcProxy": {
162586	//       "description": "Name of the TargetGrpcProxy resource to delete.",
162587	//       "location": "path",
162588	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
162589	//       "required": true,
162590	//       "type": "string"
162591	//     }
162592	//   },
162593	//   "path": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}",
162594	//   "response": {
162595	//     "$ref": "Operation"
162596	//   },
162597	//   "scopes": [
162598	//     "https://www.googleapis.com/auth/cloud-platform",
162599	//     "https://www.googleapis.com/auth/compute"
162600	//   ]
162601	// }
162602
162603}
162604
162605// method id "compute.targetGrpcProxies.get":
162606
162607type TargetGrpcProxiesGetCall struct {
162608	s               *Service
162609	project         string
162610	targetGrpcProxy string
162611	urlParams_      gensupport.URLParams
162612	ifNoneMatch_    string
162613	ctx_            context.Context
162614	header_         http.Header
162615}
162616
162617// Get: Returns the specified TargetGrpcProxy resource in the given
162618// scope.
162619func (r *TargetGrpcProxiesService) Get(project string, targetGrpcProxy string) *TargetGrpcProxiesGetCall {
162620	c := &TargetGrpcProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
162621	c.project = project
162622	c.targetGrpcProxy = targetGrpcProxy
162623	return c
162624}
162625
162626// Fields allows partial responses to be retrieved. See
162627// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
162628// for more information.
162629func (c *TargetGrpcProxiesGetCall) Fields(s ...googleapi.Field) *TargetGrpcProxiesGetCall {
162630	c.urlParams_.Set("fields", googleapi.CombineFields(s))
162631	return c
162632}
162633
162634// IfNoneMatch sets the optional parameter which makes the operation
162635// fail if the object's ETag matches the given value. This is useful for
162636// getting updates only after the object has changed since the last
162637// request. Use googleapi.IsNotModified to check whether the response
162638// error from Do is the result of In-None-Match.
162639func (c *TargetGrpcProxiesGetCall) IfNoneMatch(entityTag string) *TargetGrpcProxiesGetCall {
162640	c.ifNoneMatch_ = entityTag
162641	return c
162642}
162643
162644// Context sets the context to be used in this call's Do method. Any
162645// pending HTTP request will be aborted if the provided context is
162646// canceled.
162647func (c *TargetGrpcProxiesGetCall) Context(ctx context.Context) *TargetGrpcProxiesGetCall {
162648	c.ctx_ = ctx
162649	return c
162650}
162651
162652// Header returns an http.Header that can be modified by the caller to
162653// add HTTP headers to the request.
162654func (c *TargetGrpcProxiesGetCall) Header() http.Header {
162655	if c.header_ == nil {
162656		c.header_ = make(http.Header)
162657	}
162658	return c.header_
162659}
162660
162661func (c *TargetGrpcProxiesGetCall) doRequest(alt string) (*http.Response, error) {
162662	reqHeaders := make(http.Header)
162663	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
162664	for k, v := range c.header_ {
162665		reqHeaders[k] = v
162666	}
162667	reqHeaders.Set("User-Agent", c.s.userAgent())
162668	if c.ifNoneMatch_ != "" {
162669		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
162670	}
162671	var body io.Reader = nil
162672	c.urlParams_.Set("alt", alt)
162673	c.urlParams_.Set("prettyPrint", "false")
162674	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}")
162675	urls += "?" + c.urlParams_.Encode()
162676	req, err := http.NewRequest("GET", urls, body)
162677	if err != nil {
162678		return nil, err
162679	}
162680	req.Header = reqHeaders
162681	googleapi.Expand(req.URL, map[string]string{
162682		"project":         c.project,
162683		"targetGrpcProxy": c.targetGrpcProxy,
162684	})
162685	return gensupport.SendRequest(c.ctx_, c.s.client, req)
162686}
162687
162688// Do executes the "compute.targetGrpcProxies.get" call.
162689// Exactly one of *TargetGrpcProxy or error will be non-nil. Any non-2xx
162690// status code is an error. Response headers are in either
162691// *TargetGrpcProxy.ServerResponse.Header or (if a response was returned
162692// at all) in error.(*googleapi.Error).Header. Use
162693// googleapi.IsNotModified to check whether the returned error was
162694// because http.StatusNotModified was returned.
162695func (c *TargetGrpcProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetGrpcProxy, error) {
162696	gensupport.SetOptions(c.urlParams_, opts...)
162697	res, err := c.doRequest("json")
162698	if res != nil && res.StatusCode == http.StatusNotModified {
162699		if res.Body != nil {
162700			res.Body.Close()
162701		}
162702		return nil, &googleapi.Error{
162703			Code:   res.StatusCode,
162704			Header: res.Header,
162705		}
162706	}
162707	if err != nil {
162708		return nil, err
162709	}
162710	defer googleapi.CloseBody(res)
162711	if err := googleapi.CheckResponse(res); err != nil {
162712		return nil, err
162713	}
162714	ret := &TargetGrpcProxy{
162715		ServerResponse: googleapi.ServerResponse{
162716			Header:         res.Header,
162717			HTTPStatusCode: res.StatusCode,
162718		},
162719	}
162720	target := &ret
162721	if err := gensupport.DecodeResponse(target, res); err != nil {
162722		return nil, err
162723	}
162724	return ret, nil
162725	// {
162726	//   "description": "Returns the specified TargetGrpcProxy resource in the given scope.",
162727	//   "httpMethod": "GET",
162728	//   "id": "compute.targetGrpcProxies.get",
162729	//   "parameterOrder": [
162730	//     "project",
162731	//     "targetGrpcProxy"
162732	//   ],
162733	//   "parameters": {
162734	//     "project": {
162735	//       "description": "Project ID for this request.",
162736	//       "location": "path",
162737	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
162738	//       "required": true,
162739	//       "type": "string"
162740	//     },
162741	//     "targetGrpcProxy": {
162742	//       "description": "Name of the TargetGrpcProxy resource to return.",
162743	//       "location": "path",
162744	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
162745	//       "required": true,
162746	//       "type": "string"
162747	//     }
162748	//   },
162749	//   "path": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}",
162750	//   "response": {
162751	//     "$ref": "TargetGrpcProxy"
162752	//   },
162753	//   "scopes": [
162754	//     "https://www.googleapis.com/auth/cloud-platform",
162755	//     "https://www.googleapis.com/auth/compute",
162756	//     "https://www.googleapis.com/auth/compute.readonly"
162757	//   ]
162758	// }
162759
162760}
162761
162762// method id "compute.targetGrpcProxies.insert":
162763
162764type TargetGrpcProxiesInsertCall struct {
162765	s               *Service
162766	project         string
162767	targetgrpcproxy *TargetGrpcProxy
162768	urlParams_      gensupport.URLParams
162769	ctx_            context.Context
162770	header_         http.Header
162771}
162772
162773// Insert: Creates a TargetGrpcProxy in the specified project in the
162774// given scope using the parameters that are included in the request.
162775func (r *TargetGrpcProxiesService) Insert(project string, targetgrpcproxy *TargetGrpcProxy) *TargetGrpcProxiesInsertCall {
162776	c := &TargetGrpcProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
162777	c.project = project
162778	c.targetgrpcproxy = targetgrpcproxy
162779	return c
162780}
162781
162782// RequestId sets the optional parameter "requestId": An optional
162783// request ID to identify requests. Specify a unique request ID so that
162784// if you must retry your request, the server will know to ignore the
162785// request if it has already been completed.
162786//
162787// For example, consider a situation where you make an initial request
162788// and the request times out. If you make the request again with the
162789// same request ID, the server can check if original operation with the
162790// same request ID was received, and if so, will ignore the second
162791// request. This prevents clients from accidentally creating duplicate
162792// commitments.
162793//
162794// The request ID must be a valid UUID with the exception that zero UUID
162795// is not supported (00000000-0000-0000-0000-000000000000).
162796func (c *TargetGrpcProxiesInsertCall) RequestId(requestId string) *TargetGrpcProxiesInsertCall {
162797	c.urlParams_.Set("requestId", requestId)
162798	return c
162799}
162800
162801// Fields allows partial responses to be retrieved. See
162802// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
162803// for more information.
162804func (c *TargetGrpcProxiesInsertCall) Fields(s ...googleapi.Field) *TargetGrpcProxiesInsertCall {
162805	c.urlParams_.Set("fields", googleapi.CombineFields(s))
162806	return c
162807}
162808
162809// Context sets the context to be used in this call's Do method. Any
162810// pending HTTP request will be aborted if the provided context is
162811// canceled.
162812func (c *TargetGrpcProxiesInsertCall) Context(ctx context.Context) *TargetGrpcProxiesInsertCall {
162813	c.ctx_ = ctx
162814	return c
162815}
162816
162817// Header returns an http.Header that can be modified by the caller to
162818// add HTTP headers to the request.
162819func (c *TargetGrpcProxiesInsertCall) Header() http.Header {
162820	if c.header_ == nil {
162821		c.header_ = make(http.Header)
162822	}
162823	return c.header_
162824}
162825
162826func (c *TargetGrpcProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
162827	reqHeaders := make(http.Header)
162828	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
162829	for k, v := range c.header_ {
162830		reqHeaders[k] = v
162831	}
162832	reqHeaders.Set("User-Agent", c.s.userAgent())
162833	var body io.Reader = nil
162834	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetgrpcproxy)
162835	if err != nil {
162836		return nil, err
162837	}
162838	reqHeaders.Set("Content-Type", "application/json")
162839	c.urlParams_.Set("alt", alt)
162840	c.urlParams_.Set("prettyPrint", "false")
162841	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetGrpcProxies")
162842	urls += "?" + c.urlParams_.Encode()
162843	req, err := http.NewRequest("POST", urls, body)
162844	if err != nil {
162845		return nil, err
162846	}
162847	req.Header = reqHeaders
162848	googleapi.Expand(req.URL, map[string]string{
162849		"project": c.project,
162850	})
162851	return gensupport.SendRequest(c.ctx_, c.s.client, req)
162852}
162853
162854// Do executes the "compute.targetGrpcProxies.insert" call.
162855// Exactly one of *Operation or error will be non-nil. Any non-2xx
162856// status code is an error. Response headers are in either
162857// *Operation.ServerResponse.Header or (if a response was returned at
162858// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
162859// to check whether the returned error was because
162860// http.StatusNotModified was returned.
162861func (c *TargetGrpcProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
162862	gensupport.SetOptions(c.urlParams_, opts...)
162863	res, err := c.doRequest("json")
162864	if res != nil && res.StatusCode == http.StatusNotModified {
162865		if res.Body != nil {
162866			res.Body.Close()
162867		}
162868		return nil, &googleapi.Error{
162869			Code:   res.StatusCode,
162870			Header: res.Header,
162871		}
162872	}
162873	if err != nil {
162874		return nil, err
162875	}
162876	defer googleapi.CloseBody(res)
162877	if err := googleapi.CheckResponse(res); err != nil {
162878		return nil, err
162879	}
162880	ret := &Operation{
162881		ServerResponse: googleapi.ServerResponse{
162882			Header:         res.Header,
162883			HTTPStatusCode: res.StatusCode,
162884		},
162885	}
162886	target := &ret
162887	if err := gensupport.DecodeResponse(target, res); err != nil {
162888		return nil, err
162889	}
162890	return ret, nil
162891	// {
162892	//   "description": "Creates a TargetGrpcProxy in the specified project in the given scope using the parameters that are included in the request.",
162893	//   "httpMethod": "POST",
162894	//   "id": "compute.targetGrpcProxies.insert",
162895	//   "parameterOrder": [
162896	//     "project"
162897	//   ],
162898	//   "parameters": {
162899	//     "project": {
162900	//       "description": "Project ID for this request.",
162901	//       "location": "path",
162902	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
162903	//       "required": true,
162904	//       "type": "string"
162905	//     },
162906	//     "requestId": {
162907	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
162908	//       "location": "query",
162909	//       "type": "string"
162910	//     }
162911	//   },
162912	//   "path": "projects/{project}/global/targetGrpcProxies",
162913	//   "request": {
162914	//     "$ref": "TargetGrpcProxy"
162915	//   },
162916	//   "response": {
162917	//     "$ref": "Operation"
162918	//   },
162919	//   "scopes": [
162920	//     "https://www.googleapis.com/auth/cloud-platform",
162921	//     "https://www.googleapis.com/auth/compute"
162922	//   ]
162923	// }
162924
162925}
162926
162927// method id "compute.targetGrpcProxies.list":
162928
162929type TargetGrpcProxiesListCall struct {
162930	s            *Service
162931	project      string
162932	urlParams_   gensupport.URLParams
162933	ifNoneMatch_ string
162934	ctx_         context.Context
162935	header_      http.Header
162936}
162937
162938// List: Lists the TargetGrpcProxies for a project in the given scope.
162939func (r *TargetGrpcProxiesService) List(project string) *TargetGrpcProxiesListCall {
162940	c := &TargetGrpcProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
162941	c.project = project
162942	return c
162943}
162944
162945// Filter sets the optional parameter "filter": A filter expression that
162946// filters resources listed in the response. The expression must specify
162947// the field name, a comparison operator, and the value that you want to
162948// use for filtering. The value must be a string, a number, or a
162949// boolean. The comparison operator must be either `=`, `!=`, `>`, or
162950// `<`.
162951//
162952// For example, if you are filtering Compute Engine instances, you can
162953// exclude instances named `example-instance` by specifying `name !=
162954// example-instance`.
162955//
162956// You can also filter nested fields. For example, you could specify
162957// `scheduling.automaticRestart = false` to include instances only if
162958// they are not scheduled for automatic restarts. You can use filtering
162959// on nested fields to filter based on resource labels.
162960//
162961// To filter on multiple expressions, provide each separate expression
162962// within parentheses. For example: ``` (scheduling.automaticRestart =
162963// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
162964// is an `AND` expression. However, you can include `AND` and `OR`
162965// expressions explicitly. For example: ``` (cpuPlatform = "Intel
162966// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
162967// (scheduling.automaticRestart = true) ```
162968func (c *TargetGrpcProxiesListCall) Filter(filter string) *TargetGrpcProxiesListCall {
162969	c.urlParams_.Set("filter", filter)
162970	return c
162971}
162972
162973// MaxResults sets the optional parameter "maxResults": The maximum
162974// number of results per page that should be returned. If the number of
162975// available results is larger than `maxResults`, Compute Engine returns
162976// a `nextPageToken` that can be used to get the next page of results in
162977// subsequent list requests. Acceptable values are `0` to `500`,
162978// inclusive. (Default: `500`)
162979func (c *TargetGrpcProxiesListCall) MaxResults(maxResults int64) *TargetGrpcProxiesListCall {
162980	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
162981	return c
162982}
162983
162984// OrderBy sets the optional parameter "orderBy": Sorts list results by
162985// a certain order. By default, results are returned in alphanumerical
162986// order based on the resource name.
162987//
162988// You can also sort results in descending order based on the creation
162989// timestamp using `orderBy="creationTimestamp desc". This sorts
162990// results based on the `creationTimestamp` field in reverse
162991// chronological order (newest result first). Use this to sort resources
162992// like operations so that the newest operation is returned
162993// first.
162994//
162995// Currently, only sorting by `name` or `creationTimestamp desc` is
162996// supported.
162997func (c *TargetGrpcProxiesListCall) OrderBy(orderBy string) *TargetGrpcProxiesListCall {
162998	c.urlParams_.Set("orderBy", orderBy)
162999	return c
163000}
163001
163002// PageToken sets the optional parameter "pageToken": Specifies a page
163003// token to use. Set `pageToken` to the `nextPageToken` returned by a
163004// previous list request to get the next page of results.
163005func (c *TargetGrpcProxiesListCall) PageToken(pageToken string) *TargetGrpcProxiesListCall {
163006	c.urlParams_.Set("pageToken", pageToken)
163007	return c
163008}
163009
163010// ReturnPartialSuccess sets the optional parameter
163011// "returnPartialSuccess": Opt-in for partial success behavior which
163012// provides partial results in case of failure. The default value is
163013// false.
163014func (c *TargetGrpcProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetGrpcProxiesListCall {
163015	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
163016	return c
163017}
163018
163019// Fields allows partial responses to be retrieved. See
163020// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
163021// for more information.
163022func (c *TargetGrpcProxiesListCall) Fields(s ...googleapi.Field) *TargetGrpcProxiesListCall {
163023	c.urlParams_.Set("fields", googleapi.CombineFields(s))
163024	return c
163025}
163026
163027// IfNoneMatch sets the optional parameter which makes the operation
163028// fail if the object's ETag matches the given value. This is useful for
163029// getting updates only after the object has changed since the last
163030// request. Use googleapi.IsNotModified to check whether the response
163031// error from Do is the result of In-None-Match.
163032func (c *TargetGrpcProxiesListCall) IfNoneMatch(entityTag string) *TargetGrpcProxiesListCall {
163033	c.ifNoneMatch_ = entityTag
163034	return c
163035}
163036
163037// Context sets the context to be used in this call's Do method. Any
163038// pending HTTP request will be aborted if the provided context is
163039// canceled.
163040func (c *TargetGrpcProxiesListCall) Context(ctx context.Context) *TargetGrpcProxiesListCall {
163041	c.ctx_ = ctx
163042	return c
163043}
163044
163045// Header returns an http.Header that can be modified by the caller to
163046// add HTTP headers to the request.
163047func (c *TargetGrpcProxiesListCall) Header() http.Header {
163048	if c.header_ == nil {
163049		c.header_ = make(http.Header)
163050	}
163051	return c.header_
163052}
163053
163054func (c *TargetGrpcProxiesListCall) doRequest(alt string) (*http.Response, error) {
163055	reqHeaders := make(http.Header)
163056	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
163057	for k, v := range c.header_ {
163058		reqHeaders[k] = v
163059	}
163060	reqHeaders.Set("User-Agent", c.s.userAgent())
163061	if c.ifNoneMatch_ != "" {
163062		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
163063	}
163064	var body io.Reader = nil
163065	c.urlParams_.Set("alt", alt)
163066	c.urlParams_.Set("prettyPrint", "false")
163067	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetGrpcProxies")
163068	urls += "?" + c.urlParams_.Encode()
163069	req, err := http.NewRequest("GET", urls, body)
163070	if err != nil {
163071		return nil, err
163072	}
163073	req.Header = reqHeaders
163074	googleapi.Expand(req.URL, map[string]string{
163075		"project": c.project,
163076	})
163077	return gensupport.SendRequest(c.ctx_, c.s.client, req)
163078}
163079
163080// Do executes the "compute.targetGrpcProxies.list" call.
163081// Exactly one of *TargetGrpcProxyList or error will be non-nil. Any
163082// non-2xx status code is an error. Response headers are in either
163083// *TargetGrpcProxyList.ServerResponse.Header or (if a response was
163084// returned at all) in error.(*googleapi.Error).Header. Use
163085// googleapi.IsNotModified to check whether the returned error was
163086// because http.StatusNotModified was returned.
163087func (c *TargetGrpcProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetGrpcProxyList, error) {
163088	gensupport.SetOptions(c.urlParams_, opts...)
163089	res, err := c.doRequest("json")
163090	if res != nil && res.StatusCode == http.StatusNotModified {
163091		if res.Body != nil {
163092			res.Body.Close()
163093		}
163094		return nil, &googleapi.Error{
163095			Code:   res.StatusCode,
163096			Header: res.Header,
163097		}
163098	}
163099	if err != nil {
163100		return nil, err
163101	}
163102	defer googleapi.CloseBody(res)
163103	if err := googleapi.CheckResponse(res); err != nil {
163104		return nil, err
163105	}
163106	ret := &TargetGrpcProxyList{
163107		ServerResponse: googleapi.ServerResponse{
163108			Header:         res.Header,
163109			HTTPStatusCode: res.StatusCode,
163110		},
163111	}
163112	target := &ret
163113	if err := gensupport.DecodeResponse(target, res); err != nil {
163114		return nil, err
163115	}
163116	return ret, nil
163117	// {
163118	//   "description": "Lists the TargetGrpcProxies for a project in the given scope.",
163119	//   "httpMethod": "GET",
163120	//   "id": "compute.targetGrpcProxies.list",
163121	//   "parameterOrder": [
163122	//     "project"
163123	//   ],
163124	//   "parameters": {
163125	//     "filter": {
163126	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
163127	//       "location": "query",
163128	//       "type": "string"
163129	//     },
163130	//     "maxResults": {
163131	//       "default": "500",
163132	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
163133	//       "format": "uint32",
163134	//       "location": "query",
163135	//       "minimum": "0",
163136	//       "type": "integer"
163137	//     },
163138	//     "orderBy": {
163139	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
163140	//       "location": "query",
163141	//       "type": "string"
163142	//     },
163143	//     "pageToken": {
163144	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
163145	//       "location": "query",
163146	//       "type": "string"
163147	//     },
163148	//     "project": {
163149	//       "description": "Project ID for this request.",
163150	//       "location": "path",
163151	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
163152	//       "required": true,
163153	//       "type": "string"
163154	//     },
163155	//     "returnPartialSuccess": {
163156	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
163157	//       "location": "query",
163158	//       "type": "boolean"
163159	//     }
163160	//   },
163161	//   "path": "projects/{project}/global/targetGrpcProxies",
163162	//   "response": {
163163	//     "$ref": "TargetGrpcProxyList"
163164	//   },
163165	//   "scopes": [
163166	//     "https://www.googleapis.com/auth/cloud-platform",
163167	//     "https://www.googleapis.com/auth/compute",
163168	//     "https://www.googleapis.com/auth/compute.readonly"
163169	//   ]
163170	// }
163171
163172}
163173
163174// Pages invokes f for each page of results.
163175// A non-nil error returned from f will halt the iteration.
163176// The provided context supersedes any context provided to the Context method.
163177func (c *TargetGrpcProxiesListCall) Pages(ctx context.Context, f func(*TargetGrpcProxyList) error) error {
163178	c.ctx_ = ctx
163179	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
163180	for {
163181		x, err := c.Do()
163182		if err != nil {
163183			return err
163184		}
163185		if err := f(x); err != nil {
163186			return err
163187		}
163188		if x.NextPageToken == "" {
163189			return nil
163190		}
163191		c.PageToken(x.NextPageToken)
163192	}
163193}
163194
163195// method id "compute.targetGrpcProxies.patch":
163196
163197type TargetGrpcProxiesPatchCall struct {
163198	s               *Service
163199	project         string
163200	targetGrpcProxy string
163201	targetgrpcproxy *TargetGrpcProxy
163202	urlParams_      gensupport.URLParams
163203	ctx_            context.Context
163204	header_         http.Header
163205}
163206
163207// Patch: Patches the specified TargetGrpcProxy resource with the data
163208// included in the request. This method supports PATCH semantics and
163209// uses JSON merge patch format and processing rules.
163210func (r *TargetGrpcProxiesService) Patch(project string, targetGrpcProxy string, targetgrpcproxy *TargetGrpcProxy) *TargetGrpcProxiesPatchCall {
163211	c := &TargetGrpcProxiesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
163212	c.project = project
163213	c.targetGrpcProxy = targetGrpcProxy
163214	c.targetgrpcproxy = targetgrpcproxy
163215	return c
163216}
163217
163218// RequestId sets the optional parameter "requestId": An optional
163219// request ID to identify requests. Specify a unique request ID so that
163220// if you must retry your request, the server will know to ignore the
163221// request if it has already been completed.
163222//
163223// For example, consider a situation where you make an initial request
163224// and the request times out. If you make the request again with the
163225// same request ID, the server can check if original operation with the
163226// same request ID was received, and if so, will ignore the second
163227// request. This prevents clients from accidentally creating duplicate
163228// commitments.
163229//
163230// The request ID must be a valid UUID with the exception that zero UUID
163231// is not supported (00000000-0000-0000-0000-000000000000).
163232func (c *TargetGrpcProxiesPatchCall) RequestId(requestId string) *TargetGrpcProxiesPatchCall {
163233	c.urlParams_.Set("requestId", requestId)
163234	return c
163235}
163236
163237// Fields allows partial responses to be retrieved. See
163238// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
163239// for more information.
163240func (c *TargetGrpcProxiesPatchCall) Fields(s ...googleapi.Field) *TargetGrpcProxiesPatchCall {
163241	c.urlParams_.Set("fields", googleapi.CombineFields(s))
163242	return c
163243}
163244
163245// Context sets the context to be used in this call's Do method. Any
163246// pending HTTP request will be aborted if the provided context is
163247// canceled.
163248func (c *TargetGrpcProxiesPatchCall) Context(ctx context.Context) *TargetGrpcProxiesPatchCall {
163249	c.ctx_ = ctx
163250	return c
163251}
163252
163253// Header returns an http.Header that can be modified by the caller to
163254// add HTTP headers to the request.
163255func (c *TargetGrpcProxiesPatchCall) Header() http.Header {
163256	if c.header_ == nil {
163257		c.header_ = make(http.Header)
163258	}
163259	return c.header_
163260}
163261
163262func (c *TargetGrpcProxiesPatchCall) doRequest(alt string) (*http.Response, error) {
163263	reqHeaders := make(http.Header)
163264	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
163265	for k, v := range c.header_ {
163266		reqHeaders[k] = v
163267	}
163268	reqHeaders.Set("User-Agent", c.s.userAgent())
163269	var body io.Reader = nil
163270	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetgrpcproxy)
163271	if err != nil {
163272		return nil, err
163273	}
163274	reqHeaders.Set("Content-Type", "application/json")
163275	c.urlParams_.Set("alt", alt)
163276	c.urlParams_.Set("prettyPrint", "false")
163277	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}")
163278	urls += "?" + c.urlParams_.Encode()
163279	req, err := http.NewRequest("PATCH", urls, body)
163280	if err != nil {
163281		return nil, err
163282	}
163283	req.Header = reqHeaders
163284	googleapi.Expand(req.URL, map[string]string{
163285		"project":         c.project,
163286		"targetGrpcProxy": c.targetGrpcProxy,
163287	})
163288	return gensupport.SendRequest(c.ctx_, c.s.client, req)
163289}
163290
163291// Do executes the "compute.targetGrpcProxies.patch" call.
163292// Exactly one of *Operation or error will be non-nil. Any non-2xx
163293// status code is an error. Response headers are in either
163294// *Operation.ServerResponse.Header or (if a response was returned at
163295// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
163296// to check whether the returned error was because
163297// http.StatusNotModified was returned.
163298func (c *TargetGrpcProxiesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
163299	gensupport.SetOptions(c.urlParams_, opts...)
163300	res, err := c.doRequest("json")
163301	if res != nil && res.StatusCode == http.StatusNotModified {
163302		if res.Body != nil {
163303			res.Body.Close()
163304		}
163305		return nil, &googleapi.Error{
163306			Code:   res.StatusCode,
163307			Header: res.Header,
163308		}
163309	}
163310	if err != nil {
163311		return nil, err
163312	}
163313	defer googleapi.CloseBody(res)
163314	if err := googleapi.CheckResponse(res); err != nil {
163315		return nil, err
163316	}
163317	ret := &Operation{
163318		ServerResponse: googleapi.ServerResponse{
163319			Header:         res.Header,
163320			HTTPStatusCode: res.StatusCode,
163321		},
163322	}
163323	target := &ret
163324	if err := gensupport.DecodeResponse(target, res); err != nil {
163325		return nil, err
163326	}
163327	return ret, nil
163328	// {
163329	//   "description": "Patches the specified TargetGrpcProxy resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules.",
163330	//   "httpMethod": "PATCH",
163331	//   "id": "compute.targetGrpcProxies.patch",
163332	//   "parameterOrder": [
163333	//     "project",
163334	//     "targetGrpcProxy"
163335	//   ],
163336	//   "parameters": {
163337	//     "project": {
163338	//       "description": "Project ID for this request.",
163339	//       "location": "path",
163340	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
163341	//       "required": true,
163342	//       "type": "string"
163343	//     },
163344	//     "requestId": {
163345	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
163346	//       "location": "query",
163347	//       "type": "string"
163348	//     },
163349	//     "targetGrpcProxy": {
163350	//       "description": "Name of the TargetGrpcProxy resource to patch.",
163351	//       "location": "path",
163352	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
163353	//       "required": true,
163354	//       "type": "string"
163355	//     }
163356	//   },
163357	//   "path": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}",
163358	//   "request": {
163359	//     "$ref": "TargetGrpcProxy"
163360	//   },
163361	//   "response": {
163362	//     "$ref": "Operation"
163363	//   },
163364	//   "scopes": [
163365	//     "https://www.googleapis.com/auth/cloud-platform",
163366	//     "https://www.googleapis.com/auth/compute"
163367	//   ]
163368	// }
163369
163370}
163371
163372// method id "compute.targetGrpcProxies.testIamPermissions":
163373
163374type TargetGrpcProxiesTestIamPermissionsCall struct {
163375	s                      *Service
163376	project                string
163377	resource               string
163378	testpermissionsrequest *TestPermissionsRequest
163379	urlParams_             gensupport.URLParams
163380	ctx_                   context.Context
163381	header_                http.Header
163382}
163383
163384// TestIamPermissions: Returns permissions that a caller has on the
163385// specified resource.
163386func (r *TargetGrpcProxiesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *TargetGrpcProxiesTestIamPermissionsCall {
163387	c := &TargetGrpcProxiesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
163388	c.project = project
163389	c.resource = resource
163390	c.testpermissionsrequest = testpermissionsrequest
163391	return c
163392}
163393
163394// Fields allows partial responses to be retrieved. See
163395// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
163396// for more information.
163397func (c *TargetGrpcProxiesTestIamPermissionsCall) Fields(s ...googleapi.Field) *TargetGrpcProxiesTestIamPermissionsCall {
163398	c.urlParams_.Set("fields", googleapi.CombineFields(s))
163399	return c
163400}
163401
163402// Context sets the context to be used in this call's Do method. Any
163403// pending HTTP request will be aborted if the provided context is
163404// canceled.
163405func (c *TargetGrpcProxiesTestIamPermissionsCall) Context(ctx context.Context) *TargetGrpcProxiesTestIamPermissionsCall {
163406	c.ctx_ = ctx
163407	return c
163408}
163409
163410// Header returns an http.Header that can be modified by the caller to
163411// add HTTP headers to the request.
163412func (c *TargetGrpcProxiesTestIamPermissionsCall) Header() http.Header {
163413	if c.header_ == nil {
163414		c.header_ = make(http.Header)
163415	}
163416	return c.header_
163417}
163418
163419func (c *TargetGrpcProxiesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
163420	reqHeaders := make(http.Header)
163421	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
163422	for k, v := range c.header_ {
163423		reqHeaders[k] = v
163424	}
163425	reqHeaders.Set("User-Agent", c.s.userAgent())
163426	var body io.Reader = nil
163427	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
163428	if err != nil {
163429		return nil, err
163430	}
163431	reqHeaders.Set("Content-Type", "application/json")
163432	c.urlParams_.Set("alt", alt)
163433	c.urlParams_.Set("prettyPrint", "false")
163434	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetGrpcProxies/{resource}/testIamPermissions")
163435	urls += "?" + c.urlParams_.Encode()
163436	req, err := http.NewRequest("POST", urls, body)
163437	if err != nil {
163438		return nil, err
163439	}
163440	req.Header = reqHeaders
163441	googleapi.Expand(req.URL, map[string]string{
163442		"project":  c.project,
163443		"resource": c.resource,
163444	})
163445	return gensupport.SendRequest(c.ctx_, c.s.client, req)
163446}
163447
163448// Do executes the "compute.targetGrpcProxies.testIamPermissions" call.
163449// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
163450// non-2xx status code is an error. Response headers are in either
163451// *TestPermissionsResponse.ServerResponse.Header or (if a response was
163452// returned at all) in error.(*googleapi.Error).Header. Use
163453// googleapi.IsNotModified to check whether the returned error was
163454// because http.StatusNotModified was returned.
163455func (c *TargetGrpcProxiesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
163456	gensupport.SetOptions(c.urlParams_, opts...)
163457	res, err := c.doRequest("json")
163458	if res != nil && res.StatusCode == http.StatusNotModified {
163459		if res.Body != nil {
163460			res.Body.Close()
163461		}
163462		return nil, &googleapi.Error{
163463			Code:   res.StatusCode,
163464			Header: res.Header,
163465		}
163466	}
163467	if err != nil {
163468		return nil, err
163469	}
163470	defer googleapi.CloseBody(res)
163471	if err := googleapi.CheckResponse(res); err != nil {
163472		return nil, err
163473	}
163474	ret := &TestPermissionsResponse{
163475		ServerResponse: googleapi.ServerResponse{
163476			Header:         res.Header,
163477			HTTPStatusCode: res.StatusCode,
163478		},
163479	}
163480	target := &ret
163481	if err := gensupport.DecodeResponse(target, res); err != nil {
163482		return nil, err
163483	}
163484	return ret, nil
163485	// {
163486	//   "description": "Returns permissions that a caller has on the specified resource.",
163487	//   "httpMethod": "POST",
163488	//   "id": "compute.targetGrpcProxies.testIamPermissions",
163489	//   "parameterOrder": [
163490	//     "project",
163491	//     "resource"
163492	//   ],
163493	//   "parameters": {
163494	//     "project": {
163495	//       "description": "Project ID for this request.",
163496	//       "location": "path",
163497	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
163498	//       "required": true,
163499	//       "type": "string"
163500	//     },
163501	//     "resource": {
163502	//       "description": "Name or id of the resource for this request.",
163503	//       "location": "path",
163504	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
163505	//       "required": true,
163506	//       "type": "string"
163507	//     }
163508	//   },
163509	//   "path": "projects/{project}/global/targetGrpcProxies/{resource}/testIamPermissions",
163510	//   "request": {
163511	//     "$ref": "TestPermissionsRequest"
163512	//   },
163513	//   "response": {
163514	//     "$ref": "TestPermissionsResponse"
163515	//   },
163516	//   "scopes": [
163517	//     "https://www.googleapis.com/auth/cloud-platform",
163518	//     "https://www.googleapis.com/auth/compute",
163519	//     "https://www.googleapis.com/auth/compute.readonly"
163520	//   ]
163521	// }
163522
163523}
163524
163525// method id "compute.targetHttpProxies.aggregatedList":
163526
163527type TargetHttpProxiesAggregatedListCall struct {
163528	s            *Service
163529	project      string
163530	urlParams_   gensupport.URLParams
163531	ifNoneMatch_ string
163532	ctx_         context.Context
163533	header_      http.Header
163534}
163535
163536// AggregatedList: Retrieves the list of all TargetHttpProxy resources,
163537// regional and global, available to the specified project.
163538func (r *TargetHttpProxiesService) AggregatedList(project string) *TargetHttpProxiesAggregatedListCall {
163539	c := &TargetHttpProxiesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
163540	c.project = project
163541	return c
163542}
163543
163544// Filter sets the optional parameter "filter": A filter expression that
163545// filters resources listed in the response. The expression must specify
163546// the field name, a comparison operator, and the value that you want to
163547// use for filtering. The value must be a string, a number, or a
163548// boolean. The comparison operator must be either `=`, `!=`, `>`, or
163549// `<`.
163550//
163551// For example, if you are filtering Compute Engine instances, you can
163552// exclude instances named `example-instance` by specifying `name !=
163553// example-instance`.
163554//
163555// You can also filter nested fields. For example, you could specify
163556// `scheduling.automaticRestart = false` to include instances only if
163557// they are not scheduled for automatic restarts. You can use filtering
163558// on nested fields to filter based on resource labels.
163559//
163560// To filter on multiple expressions, provide each separate expression
163561// within parentheses. For example: ``` (scheduling.automaticRestart =
163562// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
163563// is an `AND` expression. However, you can include `AND` and `OR`
163564// expressions explicitly. For example: ``` (cpuPlatform = "Intel
163565// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
163566// (scheduling.automaticRestart = true) ```
163567func (c *TargetHttpProxiesAggregatedListCall) Filter(filter string) *TargetHttpProxiesAggregatedListCall {
163568	c.urlParams_.Set("filter", filter)
163569	return c
163570}
163571
163572// IncludeAllScopes sets the optional parameter "includeAllScopes":
163573// Indicates whether every visible scope for each scope type (zone,
163574// region, global) should be included in the response. For new resource
163575// types added after this field, the flag has no effect as new resource
163576// types will always include every visible scope for each scope type in
163577// response. For resource types which predate this field, if this flag
163578// is omitted or false, only scopes of the scope types where the
163579// resource type is expected to be found will be included.
163580func (c *TargetHttpProxiesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetHttpProxiesAggregatedListCall {
163581	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
163582	return c
163583}
163584
163585// MaxResults sets the optional parameter "maxResults": The maximum
163586// number of results per page that should be returned. If the number of
163587// available results is larger than `maxResults`, Compute Engine returns
163588// a `nextPageToken` that can be used to get the next page of results in
163589// subsequent list requests. Acceptable values are `0` to `500`,
163590// inclusive. (Default: `500`)
163591func (c *TargetHttpProxiesAggregatedListCall) MaxResults(maxResults int64) *TargetHttpProxiesAggregatedListCall {
163592	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
163593	return c
163594}
163595
163596// OrderBy sets the optional parameter "orderBy": Sorts list results by
163597// a certain order. By default, results are returned in alphanumerical
163598// order based on the resource name.
163599//
163600// You can also sort results in descending order based on the creation
163601// timestamp using `orderBy="creationTimestamp desc". This sorts
163602// results based on the `creationTimestamp` field in reverse
163603// chronological order (newest result first). Use this to sort resources
163604// like operations so that the newest operation is returned
163605// first.
163606//
163607// Currently, only sorting by `name` or `creationTimestamp desc` is
163608// supported.
163609func (c *TargetHttpProxiesAggregatedListCall) OrderBy(orderBy string) *TargetHttpProxiesAggregatedListCall {
163610	c.urlParams_.Set("orderBy", orderBy)
163611	return c
163612}
163613
163614// PageToken sets the optional parameter "pageToken": Specifies a page
163615// token to use. Set `pageToken` to the `nextPageToken` returned by a
163616// previous list request to get the next page of results.
163617func (c *TargetHttpProxiesAggregatedListCall) PageToken(pageToken string) *TargetHttpProxiesAggregatedListCall {
163618	c.urlParams_.Set("pageToken", pageToken)
163619	return c
163620}
163621
163622// ReturnPartialSuccess sets the optional parameter
163623// "returnPartialSuccess": Opt-in for partial success behavior which
163624// provides partial results in case of failure. The default value is
163625// false.
163626func (c *TargetHttpProxiesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetHttpProxiesAggregatedListCall {
163627	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
163628	return c
163629}
163630
163631// Fields allows partial responses to be retrieved. See
163632// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
163633// for more information.
163634func (c *TargetHttpProxiesAggregatedListCall) Fields(s ...googleapi.Field) *TargetHttpProxiesAggregatedListCall {
163635	c.urlParams_.Set("fields", googleapi.CombineFields(s))
163636	return c
163637}
163638
163639// IfNoneMatch sets the optional parameter which makes the operation
163640// fail if the object's ETag matches the given value. This is useful for
163641// getting updates only after the object has changed since the last
163642// request. Use googleapi.IsNotModified to check whether the response
163643// error from Do is the result of In-None-Match.
163644func (c *TargetHttpProxiesAggregatedListCall) IfNoneMatch(entityTag string) *TargetHttpProxiesAggregatedListCall {
163645	c.ifNoneMatch_ = entityTag
163646	return c
163647}
163648
163649// Context sets the context to be used in this call's Do method. Any
163650// pending HTTP request will be aborted if the provided context is
163651// canceled.
163652func (c *TargetHttpProxiesAggregatedListCall) Context(ctx context.Context) *TargetHttpProxiesAggregatedListCall {
163653	c.ctx_ = ctx
163654	return c
163655}
163656
163657// Header returns an http.Header that can be modified by the caller to
163658// add HTTP headers to the request.
163659func (c *TargetHttpProxiesAggregatedListCall) Header() http.Header {
163660	if c.header_ == nil {
163661		c.header_ = make(http.Header)
163662	}
163663	return c.header_
163664}
163665
163666func (c *TargetHttpProxiesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
163667	reqHeaders := make(http.Header)
163668	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
163669	for k, v := range c.header_ {
163670		reqHeaders[k] = v
163671	}
163672	reqHeaders.Set("User-Agent", c.s.userAgent())
163673	if c.ifNoneMatch_ != "" {
163674		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
163675	}
163676	var body io.Reader = nil
163677	c.urlParams_.Set("alt", alt)
163678	c.urlParams_.Set("prettyPrint", "false")
163679	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/targetHttpProxies")
163680	urls += "?" + c.urlParams_.Encode()
163681	req, err := http.NewRequest("GET", urls, body)
163682	if err != nil {
163683		return nil, err
163684	}
163685	req.Header = reqHeaders
163686	googleapi.Expand(req.URL, map[string]string{
163687		"project": c.project,
163688	})
163689	return gensupport.SendRequest(c.ctx_, c.s.client, req)
163690}
163691
163692// Do executes the "compute.targetHttpProxies.aggregatedList" call.
163693// Exactly one of *TargetHttpProxyAggregatedList or error will be
163694// non-nil. Any non-2xx status code is an error. Response headers are in
163695// either *TargetHttpProxyAggregatedList.ServerResponse.Header or (if a
163696// response was returned at all) in error.(*googleapi.Error).Header. Use
163697// googleapi.IsNotModified to check whether the returned error was
163698// because http.StatusNotModified was returned.
163699func (c *TargetHttpProxiesAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxyAggregatedList, error) {
163700	gensupport.SetOptions(c.urlParams_, opts...)
163701	res, err := c.doRequest("json")
163702	if res != nil && res.StatusCode == http.StatusNotModified {
163703		if res.Body != nil {
163704			res.Body.Close()
163705		}
163706		return nil, &googleapi.Error{
163707			Code:   res.StatusCode,
163708			Header: res.Header,
163709		}
163710	}
163711	if err != nil {
163712		return nil, err
163713	}
163714	defer googleapi.CloseBody(res)
163715	if err := googleapi.CheckResponse(res); err != nil {
163716		return nil, err
163717	}
163718	ret := &TargetHttpProxyAggregatedList{
163719		ServerResponse: googleapi.ServerResponse{
163720			Header:         res.Header,
163721			HTTPStatusCode: res.StatusCode,
163722		},
163723	}
163724	target := &ret
163725	if err := gensupport.DecodeResponse(target, res); err != nil {
163726		return nil, err
163727	}
163728	return ret, nil
163729	// {
163730	//   "description": "Retrieves the list of all TargetHttpProxy resources, regional and global, available to the specified project.",
163731	//   "httpMethod": "GET",
163732	//   "id": "compute.targetHttpProxies.aggregatedList",
163733	//   "parameterOrder": [
163734	//     "project"
163735	//   ],
163736	//   "parameters": {
163737	//     "filter": {
163738	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
163739	//       "location": "query",
163740	//       "type": "string"
163741	//     },
163742	//     "includeAllScopes": {
163743	//       "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.",
163744	//       "location": "query",
163745	//       "type": "boolean"
163746	//     },
163747	//     "maxResults": {
163748	//       "default": "500",
163749	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
163750	//       "format": "uint32",
163751	//       "location": "query",
163752	//       "minimum": "0",
163753	//       "type": "integer"
163754	//     },
163755	//     "orderBy": {
163756	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
163757	//       "location": "query",
163758	//       "type": "string"
163759	//     },
163760	//     "pageToken": {
163761	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
163762	//       "location": "query",
163763	//       "type": "string"
163764	//     },
163765	//     "project": {
163766	//       "description": "Name of the project scoping this request.",
163767	//       "location": "path",
163768	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
163769	//       "required": true,
163770	//       "type": "string"
163771	//     },
163772	//     "returnPartialSuccess": {
163773	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
163774	//       "location": "query",
163775	//       "type": "boolean"
163776	//     }
163777	//   },
163778	//   "path": "projects/{project}/aggregated/targetHttpProxies",
163779	//   "response": {
163780	//     "$ref": "TargetHttpProxyAggregatedList"
163781	//   },
163782	//   "scopes": [
163783	//     "https://www.googleapis.com/auth/cloud-platform",
163784	//     "https://www.googleapis.com/auth/compute",
163785	//     "https://www.googleapis.com/auth/compute.readonly"
163786	//   ]
163787	// }
163788
163789}
163790
163791// Pages invokes f for each page of results.
163792// A non-nil error returned from f will halt the iteration.
163793// The provided context supersedes any context provided to the Context method.
163794func (c *TargetHttpProxiesAggregatedListCall) Pages(ctx context.Context, f func(*TargetHttpProxyAggregatedList) error) error {
163795	c.ctx_ = ctx
163796	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
163797	for {
163798		x, err := c.Do()
163799		if err != nil {
163800			return err
163801		}
163802		if err := f(x); err != nil {
163803			return err
163804		}
163805		if x.NextPageToken == "" {
163806			return nil
163807		}
163808		c.PageToken(x.NextPageToken)
163809	}
163810}
163811
163812// method id "compute.targetHttpProxies.delete":
163813
163814type TargetHttpProxiesDeleteCall struct {
163815	s               *Service
163816	project         string
163817	targetHttpProxy string
163818	urlParams_      gensupport.URLParams
163819	ctx_            context.Context
163820	header_         http.Header
163821}
163822
163823// Delete: Deletes the specified TargetHttpProxy resource.
163824// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/delete
163825func (r *TargetHttpProxiesService) Delete(project string, targetHttpProxy string) *TargetHttpProxiesDeleteCall {
163826	c := &TargetHttpProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
163827	c.project = project
163828	c.targetHttpProxy = targetHttpProxy
163829	return c
163830}
163831
163832// RequestId sets the optional parameter "requestId": An optional
163833// request ID to identify requests. Specify a unique request ID so that
163834// if you must retry your request, the server will know to ignore the
163835// request if it has already been completed.
163836//
163837// For example, consider a situation where you make an initial request
163838// and the request times out. If you make the request again with the
163839// same request ID, the server can check if original operation with the
163840// same request ID was received, and if so, will ignore the second
163841// request. This prevents clients from accidentally creating duplicate
163842// commitments.
163843//
163844// The request ID must be a valid UUID with the exception that zero UUID
163845// is not supported (00000000-0000-0000-0000-000000000000).
163846func (c *TargetHttpProxiesDeleteCall) RequestId(requestId string) *TargetHttpProxiesDeleteCall {
163847	c.urlParams_.Set("requestId", requestId)
163848	return c
163849}
163850
163851// Fields allows partial responses to be retrieved. See
163852// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
163853// for more information.
163854func (c *TargetHttpProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetHttpProxiesDeleteCall {
163855	c.urlParams_.Set("fields", googleapi.CombineFields(s))
163856	return c
163857}
163858
163859// Context sets the context to be used in this call's Do method. Any
163860// pending HTTP request will be aborted if the provided context is
163861// canceled.
163862func (c *TargetHttpProxiesDeleteCall) Context(ctx context.Context) *TargetHttpProxiesDeleteCall {
163863	c.ctx_ = ctx
163864	return c
163865}
163866
163867// Header returns an http.Header that can be modified by the caller to
163868// add HTTP headers to the request.
163869func (c *TargetHttpProxiesDeleteCall) Header() http.Header {
163870	if c.header_ == nil {
163871		c.header_ = make(http.Header)
163872	}
163873	return c.header_
163874}
163875
163876func (c *TargetHttpProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
163877	reqHeaders := make(http.Header)
163878	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
163879	for k, v := range c.header_ {
163880		reqHeaders[k] = v
163881	}
163882	reqHeaders.Set("User-Agent", c.s.userAgent())
163883	var body io.Reader = nil
163884	c.urlParams_.Set("alt", alt)
163885	c.urlParams_.Set("prettyPrint", "false")
163886	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpProxies/{targetHttpProxy}")
163887	urls += "?" + c.urlParams_.Encode()
163888	req, err := http.NewRequest("DELETE", urls, body)
163889	if err != nil {
163890		return nil, err
163891	}
163892	req.Header = reqHeaders
163893	googleapi.Expand(req.URL, map[string]string{
163894		"project":         c.project,
163895		"targetHttpProxy": c.targetHttpProxy,
163896	})
163897	return gensupport.SendRequest(c.ctx_, c.s.client, req)
163898}
163899
163900// Do executes the "compute.targetHttpProxies.delete" call.
163901// Exactly one of *Operation or error will be non-nil. Any non-2xx
163902// status code is an error. Response headers are in either
163903// *Operation.ServerResponse.Header or (if a response was returned at
163904// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
163905// to check whether the returned error was because
163906// http.StatusNotModified was returned.
163907func (c *TargetHttpProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
163908	gensupport.SetOptions(c.urlParams_, opts...)
163909	res, err := c.doRequest("json")
163910	if res != nil && res.StatusCode == http.StatusNotModified {
163911		if res.Body != nil {
163912			res.Body.Close()
163913		}
163914		return nil, &googleapi.Error{
163915			Code:   res.StatusCode,
163916			Header: res.Header,
163917		}
163918	}
163919	if err != nil {
163920		return nil, err
163921	}
163922	defer googleapi.CloseBody(res)
163923	if err := googleapi.CheckResponse(res); err != nil {
163924		return nil, err
163925	}
163926	ret := &Operation{
163927		ServerResponse: googleapi.ServerResponse{
163928			Header:         res.Header,
163929			HTTPStatusCode: res.StatusCode,
163930		},
163931	}
163932	target := &ret
163933	if err := gensupport.DecodeResponse(target, res); err != nil {
163934		return nil, err
163935	}
163936	return ret, nil
163937	// {
163938	//   "description": "Deletes the specified TargetHttpProxy resource.",
163939	//   "httpMethod": "DELETE",
163940	//   "id": "compute.targetHttpProxies.delete",
163941	//   "parameterOrder": [
163942	//     "project",
163943	//     "targetHttpProxy"
163944	//   ],
163945	//   "parameters": {
163946	//     "project": {
163947	//       "description": "Project ID for this request.",
163948	//       "location": "path",
163949	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
163950	//       "required": true,
163951	//       "type": "string"
163952	//     },
163953	//     "requestId": {
163954	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
163955	//       "location": "query",
163956	//       "type": "string"
163957	//     },
163958	//     "targetHttpProxy": {
163959	//       "description": "Name of the TargetHttpProxy resource to delete.",
163960	//       "location": "path",
163961	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
163962	//       "required": true,
163963	//       "type": "string"
163964	//     }
163965	//   },
163966	//   "path": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}",
163967	//   "response": {
163968	//     "$ref": "Operation"
163969	//   },
163970	//   "scopes": [
163971	//     "https://www.googleapis.com/auth/cloud-platform",
163972	//     "https://www.googleapis.com/auth/compute"
163973	//   ]
163974	// }
163975
163976}
163977
163978// method id "compute.targetHttpProxies.get":
163979
163980type TargetHttpProxiesGetCall struct {
163981	s               *Service
163982	project         string
163983	targetHttpProxy string
163984	urlParams_      gensupport.URLParams
163985	ifNoneMatch_    string
163986	ctx_            context.Context
163987	header_         http.Header
163988}
163989
163990// Get: Returns the specified TargetHttpProxy resource. Gets a list of
163991// available target HTTP proxies by making a list() request.
163992// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/get
163993func (r *TargetHttpProxiesService) Get(project string, targetHttpProxy string) *TargetHttpProxiesGetCall {
163994	c := &TargetHttpProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
163995	c.project = project
163996	c.targetHttpProxy = targetHttpProxy
163997	return c
163998}
163999
164000// Fields allows partial responses to be retrieved. See
164001// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
164002// for more information.
164003func (c *TargetHttpProxiesGetCall) Fields(s ...googleapi.Field) *TargetHttpProxiesGetCall {
164004	c.urlParams_.Set("fields", googleapi.CombineFields(s))
164005	return c
164006}
164007
164008// IfNoneMatch sets the optional parameter which makes the operation
164009// fail if the object's ETag matches the given value. This is useful for
164010// getting updates only after the object has changed since the last
164011// request. Use googleapi.IsNotModified to check whether the response
164012// error from Do is the result of In-None-Match.
164013func (c *TargetHttpProxiesGetCall) IfNoneMatch(entityTag string) *TargetHttpProxiesGetCall {
164014	c.ifNoneMatch_ = entityTag
164015	return c
164016}
164017
164018// Context sets the context to be used in this call's Do method. Any
164019// pending HTTP request will be aborted if the provided context is
164020// canceled.
164021func (c *TargetHttpProxiesGetCall) Context(ctx context.Context) *TargetHttpProxiesGetCall {
164022	c.ctx_ = ctx
164023	return c
164024}
164025
164026// Header returns an http.Header that can be modified by the caller to
164027// add HTTP headers to the request.
164028func (c *TargetHttpProxiesGetCall) Header() http.Header {
164029	if c.header_ == nil {
164030		c.header_ = make(http.Header)
164031	}
164032	return c.header_
164033}
164034
164035func (c *TargetHttpProxiesGetCall) doRequest(alt string) (*http.Response, error) {
164036	reqHeaders := make(http.Header)
164037	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
164038	for k, v := range c.header_ {
164039		reqHeaders[k] = v
164040	}
164041	reqHeaders.Set("User-Agent", c.s.userAgent())
164042	if c.ifNoneMatch_ != "" {
164043		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
164044	}
164045	var body io.Reader = nil
164046	c.urlParams_.Set("alt", alt)
164047	c.urlParams_.Set("prettyPrint", "false")
164048	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpProxies/{targetHttpProxy}")
164049	urls += "?" + c.urlParams_.Encode()
164050	req, err := http.NewRequest("GET", urls, body)
164051	if err != nil {
164052		return nil, err
164053	}
164054	req.Header = reqHeaders
164055	googleapi.Expand(req.URL, map[string]string{
164056		"project":         c.project,
164057		"targetHttpProxy": c.targetHttpProxy,
164058	})
164059	return gensupport.SendRequest(c.ctx_, c.s.client, req)
164060}
164061
164062// Do executes the "compute.targetHttpProxies.get" call.
164063// Exactly one of *TargetHttpProxy or error will be non-nil. Any non-2xx
164064// status code is an error. Response headers are in either
164065// *TargetHttpProxy.ServerResponse.Header or (if a response was returned
164066// at all) in error.(*googleapi.Error).Header. Use
164067// googleapi.IsNotModified to check whether the returned error was
164068// because http.StatusNotModified was returned.
164069func (c *TargetHttpProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxy, error) {
164070	gensupport.SetOptions(c.urlParams_, opts...)
164071	res, err := c.doRequest("json")
164072	if res != nil && res.StatusCode == http.StatusNotModified {
164073		if res.Body != nil {
164074			res.Body.Close()
164075		}
164076		return nil, &googleapi.Error{
164077			Code:   res.StatusCode,
164078			Header: res.Header,
164079		}
164080	}
164081	if err != nil {
164082		return nil, err
164083	}
164084	defer googleapi.CloseBody(res)
164085	if err := googleapi.CheckResponse(res); err != nil {
164086		return nil, err
164087	}
164088	ret := &TargetHttpProxy{
164089		ServerResponse: googleapi.ServerResponse{
164090			Header:         res.Header,
164091			HTTPStatusCode: res.StatusCode,
164092		},
164093	}
164094	target := &ret
164095	if err := gensupport.DecodeResponse(target, res); err != nil {
164096		return nil, err
164097	}
164098	return ret, nil
164099	// {
164100	//   "description": "Returns the specified TargetHttpProxy resource. Gets a list of available target HTTP proxies by making a list() request.",
164101	//   "httpMethod": "GET",
164102	//   "id": "compute.targetHttpProxies.get",
164103	//   "parameterOrder": [
164104	//     "project",
164105	//     "targetHttpProxy"
164106	//   ],
164107	//   "parameters": {
164108	//     "project": {
164109	//       "description": "Project ID for this request.",
164110	//       "location": "path",
164111	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
164112	//       "required": true,
164113	//       "type": "string"
164114	//     },
164115	//     "targetHttpProxy": {
164116	//       "description": "Name of the TargetHttpProxy resource to return.",
164117	//       "location": "path",
164118	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
164119	//       "required": true,
164120	//       "type": "string"
164121	//     }
164122	//   },
164123	//   "path": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}",
164124	//   "response": {
164125	//     "$ref": "TargetHttpProxy"
164126	//   },
164127	//   "scopes": [
164128	//     "https://www.googleapis.com/auth/cloud-platform",
164129	//     "https://www.googleapis.com/auth/compute",
164130	//     "https://www.googleapis.com/auth/compute.readonly"
164131	//   ]
164132	// }
164133
164134}
164135
164136// method id "compute.targetHttpProxies.insert":
164137
164138type TargetHttpProxiesInsertCall struct {
164139	s               *Service
164140	project         string
164141	targethttpproxy *TargetHttpProxy
164142	urlParams_      gensupport.URLParams
164143	ctx_            context.Context
164144	header_         http.Header
164145}
164146
164147// Insert: Creates a TargetHttpProxy resource in the specified project
164148// using the data included in the request.
164149// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/insert
164150func (r *TargetHttpProxiesService) Insert(project string, targethttpproxy *TargetHttpProxy) *TargetHttpProxiesInsertCall {
164151	c := &TargetHttpProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
164152	c.project = project
164153	c.targethttpproxy = targethttpproxy
164154	return c
164155}
164156
164157// RequestId sets the optional parameter "requestId": An optional
164158// request ID to identify requests. Specify a unique request ID so that
164159// if you must retry your request, the server will know to ignore the
164160// request if it has already been completed.
164161//
164162// For example, consider a situation where you make an initial request
164163// and the request times out. If you make the request again with the
164164// same request ID, the server can check if original operation with the
164165// same request ID was received, and if so, will ignore the second
164166// request. This prevents clients from accidentally creating duplicate
164167// commitments.
164168//
164169// The request ID must be a valid UUID with the exception that zero UUID
164170// is not supported (00000000-0000-0000-0000-000000000000).
164171func (c *TargetHttpProxiesInsertCall) RequestId(requestId string) *TargetHttpProxiesInsertCall {
164172	c.urlParams_.Set("requestId", requestId)
164173	return c
164174}
164175
164176// Fields allows partial responses to be retrieved. See
164177// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
164178// for more information.
164179func (c *TargetHttpProxiesInsertCall) Fields(s ...googleapi.Field) *TargetHttpProxiesInsertCall {
164180	c.urlParams_.Set("fields", googleapi.CombineFields(s))
164181	return c
164182}
164183
164184// Context sets the context to be used in this call's Do method. Any
164185// pending HTTP request will be aborted if the provided context is
164186// canceled.
164187func (c *TargetHttpProxiesInsertCall) Context(ctx context.Context) *TargetHttpProxiesInsertCall {
164188	c.ctx_ = ctx
164189	return c
164190}
164191
164192// Header returns an http.Header that can be modified by the caller to
164193// add HTTP headers to the request.
164194func (c *TargetHttpProxiesInsertCall) Header() http.Header {
164195	if c.header_ == nil {
164196		c.header_ = make(http.Header)
164197	}
164198	return c.header_
164199}
164200
164201func (c *TargetHttpProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
164202	reqHeaders := make(http.Header)
164203	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
164204	for k, v := range c.header_ {
164205		reqHeaders[k] = v
164206	}
164207	reqHeaders.Set("User-Agent", c.s.userAgent())
164208	var body io.Reader = nil
164209	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpproxy)
164210	if err != nil {
164211		return nil, err
164212	}
164213	reqHeaders.Set("Content-Type", "application/json")
164214	c.urlParams_.Set("alt", alt)
164215	c.urlParams_.Set("prettyPrint", "false")
164216	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpProxies")
164217	urls += "?" + c.urlParams_.Encode()
164218	req, err := http.NewRequest("POST", urls, body)
164219	if err != nil {
164220		return nil, err
164221	}
164222	req.Header = reqHeaders
164223	googleapi.Expand(req.URL, map[string]string{
164224		"project": c.project,
164225	})
164226	return gensupport.SendRequest(c.ctx_, c.s.client, req)
164227}
164228
164229// Do executes the "compute.targetHttpProxies.insert" call.
164230// Exactly one of *Operation or error will be non-nil. Any non-2xx
164231// status code is an error. Response headers are in either
164232// *Operation.ServerResponse.Header or (if a response was returned at
164233// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
164234// to check whether the returned error was because
164235// http.StatusNotModified was returned.
164236func (c *TargetHttpProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
164237	gensupport.SetOptions(c.urlParams_, opts...)
164238	res, err := c.doRequest("json")
164239	if res != nil && res.StatusCode == http.StatusNotModified {
164240		if res.Body != nil {
164241			res.Body.Close()
164242		}
164243		return nil, &googleapi.Error{
164244			Code:   res.StatusCode,
164245			Header: res.Header,
164246		}
164247	}
164248	if err != nil {
164249		return nil, err
164250	}
164251	defer googleapi.CloseBody(res)
164252	if err := googleapi.CheckResponse(res); err != nil {
164253		return nil, err
164254	}
164255	ret := &Operation{
164256		ServerResponse: googleapi.ServerResponse{
164257			Header:         res.Header,
164258			HTTPStatusCode: res.StatusCode,
164259		},
164260	}
164261	target := &ret
164262	if err := gensupport.DecodeResponse(target, res); err != nil {
164263		return nil, err
164264	}
164265	return ret, nil
164266	// {
164267	//   "description": "Creates a TargetHttpProxy resource in the specified project using the data included in the request.",
164268	//   "httpMethod": "POST",
164269	//   "id": "compute.targetHttpProxies.insert",
164270	//   "parameterOrder": [
164271	//     "project"
164272	//   ],
164273	//   "parameters": {
164274	//     "project": {
164275	//       "description": "Project ID for this request.",
164276	//       "location": "path",
164277	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
164278	//       "required": true,
164279	//       "type": "string"
164280	//     },
164281	//     "requestId": {
164282	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
164283	//       "location": "query",
164284	//       "type": "string"
164285	//     }
164286	//   },
164287	//   "path": "projects/{project}/global/targetHttpProxies",
164288	//   "request": {
164289	//     "$ref": "TargetHttpProxy"
164290	//   },
164291	//   "response": {
164292	//     "$ref": "Operation"
164293	//   },
164294	//   "scopes": [
164295	//     "https://www.googleapis.com/auth/cloud-platform",
164296	//     "https://www.googleapis.com/auth/compute"
164297	//   ]
164298	// }
164299
164300}
164301
164302// method id "compute.targetHttpProxies.list":
164303
164304type TargetHttpProxiesListCall struct {
164305	s            *Service
164306	project      string
164307	urlParams_   gensupport.URLParams
164308	ifNoneMatch_ string
164309	ctx_         context.Context
164310	header_      http.Header
164311}
164312
164313// List: Retrieves the list of TargetHttpProxy resources available to
164314// the specified project.
164315// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/list
164316func (r *TargetHttpProxiesService) List(project string) *TargetHttpProxiesListCall {
164317	c := &TargetHttpProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
164318	c.project = project
164319	return c
164320}
164321
164322// Filter sets the optional parameter "filter": A filter expression that
164323// filters resources listed in the response. The expression must specify
164324// the field name, a comparison operator, and the value that you want to
164325// use for filtering. The value must be a string, a number, or a
164326// boolean. The comparison operator must be either `=`, `!=`, `>`, or
164327// `<`.
164328//
164329// For example, if you are filtering Compute Engine instances, you can
164330// exclude instances named `example-instance` by specifying `name !=
164331// example-instance`.
164332//
164333// You can also filter nested fields. For example, you could specify
164334// `scheduling.automaticRestart = false` to include instances only if
164335// they are not scheduled for automatic restarts. You can use filtering
164336// on nested fields to filter based on resource labels.
164337//
164338// To filter on multiple expressions, provide each separate expression
164339// within parentheses. For example: ``` (scheduling.automaticRestart =
164340// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
164341// is an `AND` expression. However, you can include `AND` and `OR`
164342// expressions explicitly. For example: ``` (cpuPlatform = "Intel
164343// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
164344// (scheduling.automaticRestart = true) ```
164345func (c *TargetHttpProxiesListCall) Filter(filter string) *TargetHttpProxiesListCall {
164346	c.urlParams_.Set("filter", filter)
164347	return c
164348}
164349
164350// MaxResults sets the optional parameter "maxResults": The maximum
164351// number of results per page that should be returned. If the number of
164352// available results is larger than `maxResults`, Compute Engine returns
164353// a `nextPageToken` that can be used to get the next page of results in
164354// subsequent list requests. Acceptable values are `0` to `500`,
164355// inclusive. (Default: `500`)
164356func (c *TargetHttpProxiesListCall) MaxResults(maxResults int64) *TargetHttpProxiesListCall {
164357	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
164358	return c
164359}
164360
164361// OrderBy sets the optional parameter "orderBy": Sorts list results by
164362// a certain order. By default, results are returned in alphanumerical
164363// order based on the resource name.
164364//
164365// You can also sort results in descending order based on the creation
164366// timestamp using `orderBy="creationTimestamp desc". This sorts
164367// results based on the `creationTimestamp` field in reverse
164368// chronological order (newest result first). Use this to sort resources
164369// like operations so that the newest operation is returned
164370// first.
164371//
164372// Currently, only sorting by `name` or `creationTimestamp desc` is
164373// supported.
164374func (c *TargetHttpProxiesListCall) OrderBy(orderBy string) *TargetHttpProxiesListCall {
164375	c.urlParams_.Set("orderBy", orderBy)
164376	return c
164377}
164378
164379// PageToken sets the optional parameter "pageToken": Specifies a page
164380// token to use. Set `pageToken` to the `nextPageToken` returned by a
164381// previous list request to get the next page of results.
164382func (c *TargetHttpProxiesListCall) PageToken(pageToken string) *TargetHttpProxiesListCall {
164383	c.urlParams_.Set("pageToken", pageToken)
164384	return c
164385}
164386
164387// ReturnPartialSuccess sets the optional parameter
164388// "returnPartialSuccess": Opt-in for partial success behavior which
164389// provides partial results in case of failure. The default value is
164390// false.
164391func (c *TargetHttpProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetHttpProxiesListCall {
164392	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
164393	return c
164394}
164395
164396// Fields allows partial responses to be retrieved. See
164397// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
164398// for more information.
164399func (c *TargetHttpProxiesListCall) Fields(s ...googleapi.Field) *TargetHttpProxiesListCall {
164400	c.urlParams_.Set("fields", googleapi.CombineFields(s))
164401	return c
164402}
164403
164404// IfNoneMatch sets the optional parameter which makes the operation
164405// fail if the object's ETag matches the given value. This is useful for
164406// getting updates only after the object has changed since the last
164407// request. Use googleapi.IsNotModified to check whether the response
164408// error from Do is the result of In-None-Match.
164409func (c *TargetHttpProxiesListCall) IfNoneMatch(entityTag string) *TargetHttpProxiesListCall {
164410	c.ifNoneMatch_ = entityTag
164411	return c
164412}
164413
164414// Context sets the context to be used in this call's Do method. Any
164415// pending HTTP request will be aborted if the provided context is
164416// canceled.
164417func (c *TargetHttpProxiesListCall) Context(ctx context.Context) *TargetHttpProxiesListCall {
164418	c.ctx_ = ctx
164419	return c
164420}
164421
164422// Header returns an http.Header that can be modified by the caller to
164423// add HTTP headers to the request.
164424func (c *TargetHttpProxiesListCall) Header() http.Header {
164425	if c.header_ == nil {
164426		c.header_ = make(http.Header)
164427	}
164428	return c.header_
164429}
164430
164431func (c *TargetHttpProxiesListCall) doRequest(alt string) (*http.Response, error) {
164432	reqHeaders := make(http.Header)
164433	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
164434	for k, v := range c.header_ {
164435		reqHeaders[k] = v
164436	}
164437	reqHeaders.Set("User-Agent", c.s.userAgent())
164438	if c.ifNoneMatch_ != "" {
164439		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
164440	}
164441	var body io.Reader = nil
164442	c.urlParams_.Set("alt", alt)
164443	c.urlParams_.Set("prettyPrint", "false")
164444	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpProxies")
164445	urls += "?" + c.urlParams_.Encode()
164446	req, err := http.NewRequest("GET", urls, body)
164447	if err != nil {
164448		return nil, err
164449	}
164450	req.Header = reqHeaders
164451	googleapi.Expand(req.URL, map[string]string{
164452		"project": c.project,
164453	})
164454	return gensupport.SendRequest(c.ctx_, c.s.client, req)
164455}
164456
164457// Do executes the "compute.targetHttpProxies.list" call.
164458// Exactly one of *TargetHttpProxyList or error will be non-nil. Any
164459// non-2xx status code is an error. Response headers are in either
164460// *TargetHttpProxyList.ServerResponse.Header or (if a response was
164461// returned at all) in error.(*googleapi.Error).Header. Use
164462// googleapi.IsNotModified to check whether the returned error was
164463// because http.StatusNotModified was returned.
164464func (c *TargetHttpProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxyList, error) {
164465	gensupport.SetOptions(c.urlParams_, opts...)
164466	res, err := c.doRequest("json")
164467	if res != nil && res.StatusCode == http.StatusNotModified {
164468		if res.Body != nil {
164469			res.Body.Close()
164470		}
164471		return nil, &googleapi.Error{
164472			Code:   res.StatusCode,
164473			Header: res.Header,
164474		}
164475	}
164476	if err != nil {
164477		return nil, err
164478	}
164479	defer googleapi.CloseBody(res)
164480	if err := googleapi.CheckResponse(res); err != nil {
164481		return nil, err
164482	}
164483	ret := &TargetHttpProxyList{
164484		ServerResponse: googleapi.ServerResponse{
164485			Header:         res.Header,
164486			HTTPStatusCode: res.StatusCode,
164487		},
164488	}
164489	target := &ret
164490	if err := gensupport.DecodeResponse(target, res); err != nil {
164491		return nil, err
164492	}
164493	return ret, nil
164494	// {
164495	//   "description": "Retrieves the list of TargetHttpProxy resources available to the specified project.",
164496	//   "httpMethod": "GET",
164497	//   "id": "compute.targetHttpProxies.list",
164498	//   "parameterOrder": [
164499	//     "project"
164500	//   ],
164501	//   "parameters": {
164502	//     "filter": {
164503	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
164504	//       "location": "query",
164505	//       "type": "string"
164506	//     },
164507	//     "maxResults": {
164508	//       "default": "500",
164509	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
164510	//       "format": "uint32",
164511	//       "location": "query",
164512	//       "minimum": "0",
164513	//       "type": "integer"
164514	//     },
164515	//     "orderBy": {
164516	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
164517	//       "location": "query",
164518	//       "type": "string"
164519	//     },
164520	//     "pageToken": {
164521	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
164522	//       "location": "query",
164523	//       "type": "string"
164524	//     },
164525	//     "project": {
164526	//       "description": "Project ID for this request.",
164527	//       "location": "path",
164528	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
164529	//       "required": true,
164530	//       "type": "string"
164531	//     },
164532	//     "returnPartialSuccess": {
164533	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
164534	//       "location": "query",
164535	//       "type": "boolean"
164536	//     }
164537	//   },
164538	//   "path": "projects/{project}/global/targetHttpProxies",
164539	//   "response": {
164540	//     "$ref": "TargetHttpProxyList"
164541	//   },
164542	//   "scopes": [
164543	//     "https://www.googleapis.com/auth/cloud-platform",
164544	//     "https://www.googleapis.com/auth/compute",
164545	//     "https://www.googleapis.com/auth/compute.readonly"
164546	//   ]
164547	// }
164548
164549}
164550
164551// Pages invokes f for each page of results.
164552// A non-nil error returned from f will halt the iteration.
164553// The provided context supersedes any context provided to the Context method.
164554func (c *TargetHttpProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpProxyList) error) error {
164555	c.ctx_ = ctx
164556	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
164557	for {
164558		x, err := c.Do()
164559		if err != nil {
164560			return err
164561		}
164562		if err := f(x); err != nil {
164563			return err
164564		}
164565		if x.NextPageToken == "" {
164566			return nil
164567		}
164568		c.PageToken(x.NextPageToken)
164569	}
164570}
164571
164572// method id "compute.targetHttpProxies.patch":
164573
164574type TargetHttpProxiesPatchCall struct {
164575	s               *Service
164576	project         string
164577	targetHttpProxy string
164578	targethttpproxy *TargetHttpProxy
164579	urlParams_      gensupport.URLParams
164580	ctx_            context.Context
164581	header_         http.Header
164582}
164583
164584// Patch: Patches the specified TargetHttpProxy resource with the data
164585// included in the request. This method supports PATCH semantics and
164586// uses JSON merge patch format and processing rules. (==
164587// suppress_warning http-rest-shadowed ==)
164588func (r *TargetHttpProxiesService) Patch(project string, targetHttpProxy string, targethttpproxy *TargetHttpProxy) *TargetHttpProxiesPatchCall {
164589	c := &TargetHttpProxiesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
164590	c.project = project
164591	c.targetHttpProxy = targetHttpProxy
164592	c.targethttpproxy = targethttpproxy
164593	return c
164594}
164595
164596// RequestId sets the optional parameter "requestId": An optional
164597// request ID to identify requests. Specify a unique request ID so that
164598// if you must retry your request, the server will know to ignore the
164599// request if it has already been completed.
164600//
164601// For example, consider a situation where you make an initial request
164602// and the request times out. If you make the request again with the
164603// same request ID, the server can check if original operation with the
164604// same request ID was received, and if so, will ignore the second
164605// request. This prevents clients from accidentally creating duplicate
164606// commitments.
164607//
164608// The request ID must be a valid UUID with the exception that zero UUID
164609// is not supported (00000000-0000-0000-0000-000000000000).
164610func (c *TargetHttpProxiesPatchCall) RequestId(requestId string) *TargetHttpProxiesPatchCall {
164611	c.urlParams_.Set("requestId", requestId)
164612	return c
164613}
164614
164615// Fields allows partial responses to be retrieved. See
164616// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
164617// for more information.
164618func (c *TargetHttpProxiesPatchCall) Fields(s ...googleapi.Field) *TargetHttpProxiesPatchCall {
164619	c.urlParams_.Set("fields", googleapi.CombineFields(s))
164620	return c
164621}
164622
164623// Context sets the context to be used in this call's Do method. Any
164624// pending HTTP request will be aborted if the provided context is
164625// canceled.
164626func (c *TargetHttpProxiesPatchCall) Context(ctx context.Context) *TargetHttpProxiesPatchCall {
164627	c.ctx_ = ctx
164628	return c
164629}
164630
164631// Header returns an http.Header that can be modified by the caller to
164632// add HTTP headers to the request.
164633func (c *TargetHttpProxiesPatchCall) Header() http.Header {
164634	if c.header_ == nil {
164635		c.header_ = make(http.Header)
164636	}
164637	return c.header_
164638}
164639
164640func (c *TargetHttpProxiesPatchCall) doRequest(alt string) (*http.Response, error) {
164641	reqHeaders := make(http.Header)
164642	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
164643	for k, v := range c.header_ {
164644		reqHeaders[k] = v
164645	}
164646	reqHeaders.Set("User-Agent", c.s.userAgent())
164647	var body io.Reader = nil
164648	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpproxy)
164649	if err != nil {
164650		return nil, err
164651	}
164652	reqHeaders.Set("Content-Type", "application/json")
164653	c.urlParams_.Set("alt", alt)
164654	c.urlParams_.Set("prettyPrint", "false")
164655	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpProxies/{targetHttpProxy}")
164656	urls += "?" + c.urlParams_.Encode()
164657	req, err := http.NewRequest("PATCH", urls, body)
164658	if err != nil {
164659		return nil, err
164660	}
164661	req.Header = reqHeaders
164662	googleapi.Expand(req.URL, map[string]string{
164663		"project":         c.project,
164664		"targetHttpProxy": c.targetHttpProxy,
164665	})
164666	return gensupport.SendRequest(c.ctx_, c.s.client, req)
164667}
164668
164669// Do executes the "compute.targetHttpProxies.patch" call.
164670// Exactly one of *Operation or error will be non-nil. Any non-2xx
164671// status code is an error. Response headers are in either
164672// *Operation.ServerResponse.Header or (if a response was returned at
164673// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
164674// to check whether the returned error was because
164675// http.StatusNotModified was returned.
164676func (c *TargetHttpProxiesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
164677	gensupport.SetOptions(c.urlParams_, opts...)
164678	res, err := c.doRequest("json")
164679	if res != nil && res.StatusCode == http.StatusNotModified {
164680		if res.Body != nil {
164681			res.Body.Close()
164682		}
164683		return nil, &googleapi.Error{
164684			Code:   res.StatusCode,
164685			Header: res.Header,
164686		}
164687	}
164688	if err != nil {
164689		return nil, err
164690	}
164691	defer googleapi.CloseBody(res)
164692	if err := googleapi.CheckResponse(res); err != nil {
164693		return nil, err
164694	}
164695	ret := &Operation{
164696		ServerResponse: googleapi.ServerResponse{
164697			Header:         res.Header,
164698			HTTPStatusCode: res.StatusCode,
164699		},
164700	}
164701	target := &ret
164702	if err := gensupport.DecodeResponse(target, res); err != nil {
164703		return nil, err
164704	}
164705	return ret, nil
164706	// {
164707	//   "description": "Patches the specified TargetHttpProxy resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules. (== suppress_warning http-rest-shadowed ==)",
164708	//   "httpMethod": "PATCH",
164709	//   "id": "compute.targetHttpProxies.patch",
164710	//   "parameterOrder": [
164711	//     "project",
164712	//     "targetHttpProxy"
164713	//   ],
164714	//   "parameters": {
164715	//     "project": {
164716	//       "description": "Project ID for this request.",
164717	//       "location": "path",
164718	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
164719	//       "required": true,
164720	//       "type": "string"
164721	//     },
164722	//     "requestId": {
164723	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
164724	//       "location": "query",
164725	//       "type": "string"
164726	//     },
164727	//     "targetHttpProxy": {
164728	//       "description": "Name of the TargetHttpProxy resource to patch.",
164729	//       "location": "path",
164730	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
164731	//       "required": true,
164732	//       "type": "string"
164733	//     }
164734	//   },
164735	//   "path": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}",
164736	//   "request": {
164737	//     "$ref": "TargetHttpProxy"
164738	//   },
164739	//   "response": {
164740	//     "$ref": "Operation"
164741	//   },
164742	//   "scopes": [
164743	//     "https://www.googleapis.com/auth/cloud-platform",
164744	//     "https://www.googleapis.com/auth/compute"
164745	//   ]
164746	// }
164747
164748}
164749
164750// method id "compute.targetHttpProxies.setUrlMap":
164751
164752type TargetHttpProxiesSetUrlMapCall struct {
164753	s               *Service
164754	project         string
164755	targetHttpProxy string
164756	urlmapreference *UrlMapReference
164757	urlParams_      gensupport.URLParams
164758	ctx_            context.Context
164759	header_         http.Header
164760}
164761
164762// SetUrlMap: Changes the URL map for TargetHttpProxy.
164763// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/setUrlMap
164764func (r *TargetHttpProxiesService) SetUrlMap(project string, targetHttpProxy string, urlmapreference *UrlMapReference) *TargetHttpProxiesSetUrlMapCall {
164765	c := &TargetHttpProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)}
164766	c.project = project
164767	c.targetHttpProxy = targetHttpProxy
164768	c.urlmapreference = urlmapreference
164769	return c
164770}
164771
164772// RequestId sets the optional parameter "requestId": An optional
164773// request ID to identify requests. Specify a unique request ID so that
164774// if you must retry your request, the server will know to ignore the
164775// request if it has already been completed.
164776//
164777// For example, consider a situation where you make an initial request
164778// and the request times out. If you make the request again with the
164779// same request ID, the server can check if original operation with the
164780// same request ID was received, and if so, will ignore the second
164781// request. This prevents clients from accidentally creating duplicate
164782// commitments.
164783//
164784// The request ID must be a valid UUID with the exception that zero UUID
164785// is not supported (00000000-0000-0000-0000-000000000000).
164786func (c *TargetHttpProxiesSetUrlMapCall) RequestId(requestId string) *TargetHttpProxiesSetUrlMapCall {
164787	c.urlParams_.Set("requestId", requestId)
164788	return c
164789}
164790
164791// Fields allows partial responses to be retrieved. See
164792// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
164793// for more information.
164794func (c *TargetHttpProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *TargetHttpProxiesSetUrlMapCall {
164795	c.urlParams_.Set("fields", googleapi.CombineFields(s))
164796	return c
164797}
164798
164799// Context sets the context to be used in this call's Do method. Any
164800// pending HTTP request will be aborted if the provided context is
164801// canceled.
164802func (c *TargetHttpProxiesSetUrlMapCall) Context(ctx context.Context) *TargetHttpProxiesSetUrlMapCall {
164803	c.ctx_ = ctx
164804	return c
164805}
164806
164807// Header returns an http.Header that can be modified by the caller to
164808// add HTTP headers to the request.
164809func (c *TargetHttpProxiesSetUrlMapCall) Header() http.Header {
164810	if c.header_ == nil {
164811		c.header_ = make(http.Header)
164812	}
164813	return c.header_
164814}
164815
164816func (c *TargetHttpProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, error) {
164817	reqHeaders := make(http.Header)
164818	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
164819	for k, v := range c.header_ {
164820		reqHeaders[k] = v
164821	}
164822	reqHeaders.Set("User-Agent", c.s.userAgent())
164823	var body io.Reader = nil
164824	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapreference)
164825	if err != nil {
164826		return nil, err
164827	}
164828	reqHeaders.Set("Content-Type", "application/json")
164829	c.urlParams_.Set("alt", alt)
164830	c.urlParams_.Set("prettyPrint", "false")
164831	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/targetHttpProxies/{targetHttpProxy}/setUrlMap")
164832	urls += "?" + c.urlParams_.Encode()
164833	req, err := http.NewRequest("POST", urls, body)
164834	if err != nil {
164835		return nil, err
164836	}
164837	req.Header = reqHeaders
164838	googleapi.Expand(req.URL, map[string]string{
164839		"project":         c.project,
164840		"targetHttpProxy": c.targetHttpProxy,
164841	})
164842	return gensupport.SendRequest(c.ctx_, c.s.client, req)
164843}
164844
164845// Do executes the "compute.targetHttpProxies.setUrlMap" call.
164846// Exactly one of *Operation or error will be non-nil. Any non-2xx
164847// status code is an error. Response headers are in either
164848// *Operation.ServerResponse.Header or (if a response was returned at
164849// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
164850// to check whether the returned error was because
164851// http.StatusNotModified was returned.
164852func (c *TargetHttpProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
164853	gensupport.SetOptions(c.urlParams_, opts...)
164854	res, err := c.doRequest("json")
164855	if res != nil && res.StatusCode == http.StatusNotModified {
164856		if res.Body != nil {
164857			res.Body.Close()
164858		}
164859		return nil, &googleapi.Error{
164860			Code:   res.StatusCode,
164861			Header: res.Header,
164862		}
164863	}
164864	if err != nil {
164865		return nil, err
164866	}
164867	defer googleapi.CloseBody(res)
164868	if err := googleapi.CheckResponse(res); err != nil {
164869		return nil, err
164870	}
164871	ret := &Operation{
164872		ServerResponse: googleapi.ServerResponse{
164873			Header:         res.Header,
164874			HTTPStatusCode: res.StatusCode,
164875		},
164876	}
164877	target := &ret
164878	if err := gensupport.DecodeResponse(target, res); err != nil {
164879		return nil, err
164880	}
164881	return ret, nil
164882	// {
164883	//   "description": "Changes the URL map for TargetHttpProxy.",
164884	//   "httpMethod": "POST",
164885	//   "id": "compute.targetHttpProxies.setUrlMap",
164886	//   "parameterOrder": [
164887	//     "project",
164888	//     "targetHttpProxy"
164889	//   ],
164890	//   "parameters": {
164891	//     "project": {
164892	//       "description": "Project ID for this request.",
164893	//       "location": "path",
164894	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
164895	//       "required": true,
164896	//       "type": "string"
164897	//     },
164898	//     "requestId": {
164899	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
164900	//       "location": "query",
164901	//       "type": "string"
164902	//     },
164903	//     "targetHttpProxy": {
164904	//       "description": "Name of the TargetHttpProxy to set a URL map for.",
164905	//       "location": "path",
164906	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
164907	//       "required": true,
164908	//       "type": "string"
164909	//     }
164910	//   },
164911	//   "path": "projects/{project}/targetHttpProxies/{targetHttpProxy}/setUrlMap",
164912	//   "request": {
164913	//     "$ref": "UrlMapReference"
164914	//   },
164915	//   "response": {
164916	//     "$ref": "Operation"
164917	//   },
164918	//   "scopes": [
164919	//     "https://www.googleapis.com/auth/cloud-platform",
164920	//     "https://www.googleapis.com/auth/compute"
164921	//   ]
164922	// }
164923
164924}
164925
164926// method id "compute.targetHttpProxies.testIamPermissions":
164927
164928type TargetHttpProxiesTestIamPermissionsCall struct {
164929	s                      *Service
164930	project                string
164931	resource               string
164932	testpermissionsrequest *TestPermissionsRequest
164933	urlParams_             gensupport.URLParams
164934	ctx_                   context.Context
164935	header_                http.Header
164936}
164937
164938// TestIamPermissions: Returns permissions that a caller has on the
164939// specified resource.
164940func (r *TargetHttpProxiesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *TargetHttpProxiesTestIamPermissionsCall {
164941	c := &TargetHttpProxiesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
164942	c.project = project
164943	c.resource = resource
164944	c.testpermissionsrequest = testpermissionsrequest
164945	return c
164946}
164947
164948// Fields allows partial responses to be retrieved. See
164949// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
164950// for more information.
164951func (c *TargetHttpProxiesTestIamPermissionsCall) Fields(s ...googleapi.Field) *TargetHttpProxiesTestIamPermissionsCall {
164952	c.urlParams_.Set("fields", googleapi.CombineFields(s))
164953	return c
164954}
164955
164956// Context sets the context to be used in this call's Do method. Any
164957// pending HTTP request will be aborted if the provided context is
164958// canceled.
164959func (c *TargetHttpProxiesTestIamPermissionsCall) Context(ctx context.Context) *TargetHttpProxiesTestIamPermissionsCall {
164960	c.ctx_ = ctx
164961	return c
164962}
164963
164964// Header returns an http.Header that can be modified by the caller to
164965// add HTTP headers to the request.
164966func (c *TargetHttpProxiesTestIamPermissionsCall) Header() http.Header {
164967	if c.header_ == nil {
164968		c.header_ = make(http.Header)
164969	}
164970	return c.header_
164971}
164972
164973func (c *TargetHttpProxiesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
164974	reqHeaders := make(http.Header)
164975	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
164976	for k, v := range c.header_ {
164977		reqHeaders[k] = v
164978	}
164979	reqHeaders.Set("User-Agent", c.s.userAgent())
164980	var body io.Reader = nil
164981	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
164982	if err != nil {
164983		return nil, err
164984	}
164985	reqHeaders.Set("Content-Type", "application/json")
164986	c.urlParams_.Set("alt", alt)
164987	c.urlParams_.Set("prettyPrint", "false")
164988	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpProxies/{resource}/testIamPermissions")
164989	urls += "?" + c.urlParams_.Encode()
164990	req, err := http.NewRequest("POST", urls, body)
164991	if err != nil {
164992		return nil, err
164993	}
164994	req.Header = reqHeaders
164995	googleapi.Expand(req.URL, map[string]string{
164996		"project":  c.project,
164997		"resource": c.resource,
164998	})
164999	return gensupport.SendRequest(c.ctx_, c.s.client, req)
165000}
165001
165002// Do executes the "compute.targetHttpProxies.testIamPermissions" call.
165003// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
165004// non-2xx status code is an error. Response headers are in either
165005// *TestPermissionsResponse.ServerResponse.Header or (if a response was
165006// returned at all) in error.(*googleapi.Error).Header. Use
165007// googleapi.IsNotModified to check whether the returned error was
165008// because http.StatusNotModified was returned.
165009func (c *TargetHttpProxiesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
165010	gensupport.SetOptions(c.urlParams_, opts...)
165011	res, err := c.doRequest("json")
165012	if res != nil && res.StatusCode == http.StatusNotModified {
165013		if res.Body != nil {
165014			res.Body.Close()
165015		}
165016		return nil, &googleapi.Error{
165017			Code:   res.StatusCode,
165018			Header: res.Header,
165019		}
165020	}
165021	if err != nil {
165022		return nil, err
165023	}
165024	defer googleapi.CloseBody(res)
165025	if err := googleapi.CheckResponse(res); err != nil {
165026		return nil, err
165027	}
165028	ret := &TestPermissionsResponse{
165029		ServerResponse: googleapi.ServerResponse{
165030			Header:         res.Header,
165031			HTTPStatusCode: res.StatusCode,
165032		},
165033	}
165034	target := &ret
165035	if err := gensupport.DecodeResponse(target, res); err != nil {
165036		return nil, err
165037	}
165038	return ret, nil
165039	// {
165040	//   "description": "Returns permissions that a caller has on the specified resource.",
165041	//   "httpMethod": "POST",
165042	//   "id": "compute.targetHttpProxies.testIamPermissions",
165043	//   "parameterOrder": [
165044	//     "project",
165045	//     "resource"
165046	//   ],
165047	//   "parameters": {
165048	//     "project": {
165049	//       "description": "Project ID for this request.",
165050	//       "location": "path",
165051	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
165052	//       "required": true,
165053	//       "type": "string"
165054	//     },
165055	//     "resource": {
165056	//       "description": "Name or id of the resource for this request.",
165057	//       "location": "path",
165058	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
165059	//       "required": true,
165060	//       "type": "string"
165061	//     }
165062	//   },
165063	//   "path": "projects/{project}/global/targetHttpProxies/{resource}/testIamPermissions",
165064	//   "request": {
165065	//     "$ref": "TestPermissionsRequest"
165066	//   },
165067	//   "response": {
165068	//     "$ref": "TestPermissionsResponse"
165069	//   },
165070	//   "scopes": [
165071	//     "https://www.googleapis.com/auth/cloud-platform",
165072	//     "https://www.googleapis.com/auth/compute",
165073	//     "https://www.googleapis.com/auth/compute.readonly"
165074	//   ]
165075	// }
165076
165077}
165078
165079// method id "compute.targetHttpsProxies.aggregatedList":
165080
165081type TargetHttpsProxiesAggregatedListCall struct {
165082	s            *Service
165083	project      string
165084	urlParams_   gensupport.URLParams
165085	ifNoneMatch_ string
165086	ctx_         context.Context
165087	header_      http.Header
165088}
165089
165090// AggregatedList: Retrieves the list of all TargetHttpsProxy resources,
165091// regional and global, available to the specified project.
165092func (r *TargetHttpsProxiesService) AggregatedList(project string) *TargetHttpsProxiesAggregatedListCall {
165093	c := &TargetHttpsProxiesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
165094	c.project = project
165095	return c
165096}
165097
165098// Filter sets the optional parameter "filter": A filter expression that
165099// filters resources listed in the response. The expression must specify
165100// the field name, a comparison operator, and the value that you want to
165101// use for filtering. The value must be a string, a number, or a
165102// boolean. The comparison operator must be either `=`, `!=`, `>`, or
165103// `<`.
165104//
165105// For example, if you are filtering Compute Engine instances, you can
165106// exclude instances named `example-instance` by specifying `name !=
165107// example-instance`.
165108//
165109// You can also filter nested fields. For example, you could specify
165110// `scheduling.automaticRestart = false` to include instances only if
165111// they are not scheduled for automatic restarts. You can use filtering
165112// on nested fields to filter based on resource labels.
165113//
165114// To filter on multiple expressions, provide each separate expression
165115// within parentheses. For example: ``` (scheduling.automaticRestart =
165116// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
165117// is an `AND` expression. However, you can include `AND` and `OR`
165118// expressions explicitly. For example: ``` (cpuPlatform = "Intel
165119// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
165120// (scheduling.automaticRestart = true) ```
165121func (c *TargetHttpsProxiesAggregatedListCall) Filter(filter string) *TargetHttpsProxiesAggregatedListCall {
165122	c.urlParams_.Set("filter", filter)
165123	return c
165124}
165125
165126// IncludeAllScopes sets the optional parameter "includeAllScopes":
165127// Indicates whether every visible scope for each scope type (zone,
165128// region, global) should be included in the response. For new resource
165129// types added after this field, the flag has no effect as new resource
165130// types will always include every visible scope for each scope type in
165131// response. For resource types which predate this field, if this flag
165132// is omitted or false, only scopes of the scope types where the
165133// resource type is expected to be found will be included.
165134func (c *TargetHttpsProxiesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetHttpsProxiesAggregatedListCall {
165135	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
165136	return c
165137}
165138
165139// MaxResults sets the optional parameter "maxResults": The maximum
165140// number of results per page that should be returned. If the number of
165141// available results is larger than `maxResults`, Compute Engine returns
165142// a `nextPageToken` that can be used to get the next page of results in
165143// subsequent list requests. Acceptable values are `0` to `500`,
165144// inclusive. (Default: `500`)
165145func (c *TargetHttpsProxiesAggregatedListCall) MaxResults(maxResults int64) *TargetHttpsProxiesAggregatedListCall {
165146	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
165147	return c
165148}
165149
165150// OrderBy sets the optional parameter "orderBy": Sorts list results by
165151// a certain order. By default, results are returned in alphanumerical
165152// order based on the resource name.
165153//
165154// You can also sort results in descending order based on the creation
165155// timestamp using `orderBy="creationTimestamp desc". This sorts
165156// results based on the `creationTimestamp` field in reverse
165157// chronological order (newest result first). Use this to sort resources
165158// like operations so that the newest operation is returned
165159// first.
165160//
165161// Currently, only sorting by `name` or `creationTimestamp desc` is
165162// supported.
165163func (c *TargetHttpsProxiesAggregatedListCall) OrderBy(orderBy string) *TargetHttpsProxiesAggregatedListCall {
165164	c.urlParams_.Set("orderBy", orderBy)
165165	return c
165166}
165167
165168// PageToken sets the optional parameter "pageToken": Specifies a page
165169// token to use. Set `pageToken` to the `nextPageToken` returned by a
165170// previous list request to get the next page of results.
165171func (c *TargetHttpsProxiesAggregatedListCall) PageToken(pageToken string) *TargetHttpsProxiesAggregatedListCall {
165172	c.urlParams_.Set("pageToken", pageToken)
165173	return c
165174}
165175
165176// ReturnPartialSuccess sets the optional parameter
165177// "returnPartialSuccess": Opt-in for partial success behavior which
165178// provides partial results in case of failure. The default value is
165179// false.
165180func (c *TargetHttpsProxiesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetHttpsProxiesAggregatedListCall {
165181	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
165182	return c
165183}
165184
165185// Fields allows partial responses to be retrieved. See
165186// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
165187// for more information.
165188func (c *TargetHttpsProxiesAggregatedListCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesAggregatedListCall {
165189	c.urlParams_.Set("fields", googleapi.CombineFields(s))
165190	return c
165191}
165192
165193// IfNoneMatch sets the optional parameter which makes the operation
165194// fail if the object's ETag matches the given value. This is useful for
165195// getting updates only after the object has changed since the last
165196// request. Use googleapi.IsNotModified to check whether the response
165197// error from Do is the result of In-None-Match.
165198func (c *TargetHttpsProxiesAggregatedListCall) IfNoneMatch(entityTag string) *TargetHttpsProxiesAggregatedListCall {
165199	c.ifNoneMatch_ = entityTag
165200	return c
165201}
165202
165203// Context sets the context to be used in this call's Do method. Any
165204// pending HTTP request will be aborted if the provided context is
165205// canceled.
165206func (c *TargetHttpsProxiesAggregatedListCall) Context(ctx context.Context) *TargetHttpsProxiesAggregatedListCall {
165207	c.ctx_ = ctx
165208	return c
165209}
165210
165211// Header returns an http.Header that can be modified by the caller to
165212// add HTTP headers to the request.
165213func (c *TargetHttpsProxiesAggregatedListCall) Header() http.Header {
165214	if c.header_ == nil {
165215		c.header_ = make(http.Header)
165216	}
165217	return c.header_
165218}
165219
165220func (c *TargetHttpsProxiesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
165221	reqHeaders := make(http.Header)
165222	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
165223	for k, v := range c.header_ {
165224		reqHeaders[k] = v
165225	}
165226	reqHeaders.Set("User-Agent", c.s.userAgent())
165227	if c.ifNoneMatch_ != "" {
165228		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
165229	}
165230	var body io.Reader = nil
165231	c.urlParams_.Set("alt", alt)
165232	c.urlParams_.Set("prettyPrint", "false")
165233	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/targetHttpsProxies")
165234	urls += "?" + c.urlParams_.Encode()
165235	req, err := http.NewRequest("GET", urls, body)
165236	if err != nil {
165237		return nil, err
165238	}
165239	req.Header = reqHeaders
165240	googleapi.Expand(req.URL, map[string]string{
165241		"project": c.project,
165242	})
165243	return gensupport.SendRequest(c.ctx_, c.s.client, req)
165244}
165245
165246// Do executes the "compute.targetHttpsProxies.aggregatedList" call.
165247// Exactly one of *TargetHttpsProxyAggregatedList or error will be
165248// non-nil. Any non-2xx status code is an error. Response headers are in
165249// either *TargetHttpsProxyAggregatedList.ServerResponse.Header or (if a
165250// response was returned at all) in error.(*googleapi.Error).Header. Use
165251// googleapi.IsNotModified to check whether the returned error was
165252// because http.StatusNotModified was returned.
165253func (c *TargetHttpsProxiesAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxyAggregatedList, error) {
165254	gensupport.SetOptions(c.urlParams_, opts...)
165255	res, err := c.doRequest("json")
165256	if res != nil && res.StatusCode == http.StatusNotModified {
165257		if res.Body != nil {
165258			res.Body.Close()
165259		}
165260		return nil, &googleapi.Error{
165261			Code:   res.StatusCode,
165262			Header: res.Header,
165263		}
165264	}
165265	if err != nil {
165266		return nil, err
165267	}
165268	defer googleapi.CloseBody(res)
165269	if err := googleapi.CheckResponse(res); err != nil {
165270		return nil, err
165271	}
165272	ret := &TargetHttpsProxyAggregatedList{
165273		ServerResponse: googleapi.ServerResponse{
165274			Header:         res.Header,
165275			HTTPStatusCode: res.StatusCode,
165276		},
165277	}
165278	target := &ret
165279	if err := gensupport.DecodeResponse(target, res); err != nil {
165280		return nil, err
165281	}
165282	return ret, nil
165283	// {
165284	//   "description": "Retrieves the list of all TargetHttpsProxy resources, regional and global, available to the specified project.",
165285	//   "httpMethod": "GET",
165286	//   "id": "compute.targetHttpsProxies.aggregatedList",
165287	//   "parameterOrder": [
165288	//     "project"
165289	//   ],
165290	//   "parameters": {
165291	//     "filter": {
165292	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
165293	//       "location": "query",
165294	//       "type": "string"
165295	//     },
165296	//     "includeAllScopes": {
165297	//       "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.",
165298	//       "location": "query",
165299	//       "type": "boolean"
165300	//     },
165301	//     "maxResults": {
165302	//       "default": "500",
165303	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
165304	//       "format": "uint32",
165305	//       "location": "query",
165306	//       "minimum": "0",
165307	//       "type": "integer"
165308	//     },
165309	//     "orderBy": {
165310	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
165311	//       "location": "query",
165312	//       "type": "string"
165313	//     },
165314	//     "pageToken": {
165315	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
165316	//       "location": "query",
165317	//       "type": "string"
165318	//     },
165319	//     "project": {
165320	//       "description": "Name of the project scoping this request.",
165321	//       "location": "path",
165322	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
165323	//       "required": true,
165324	//       "type": "string"
165325	//     },
165326	//     "returnPartialSuccess": {
165327	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
165328	//       "location": "query",
165329	//       "type": "boolean"
165330	//     }
165331	//   },
165332	//   "path": "projects/{project}/aggregated/targetHttpsProxies",
165333	//   "response": {
165334	//     "$ref": "TargetHttpsProxyAggregatedList"
165335	//   },
165336	//   "scopes": [
165337	//     "https://www.googleapis.com/auth/cloud-platform",
165338	//     "https://www.googleapis.com/auth/compute",
165339	//     "https://www.googleapis.com/auth/compute.readonly"
165340	//   ]
165341	// }
165342
165343}
165344
165345// Pages invokes f for each page of results.
165346// A non-nil error returned from f will halt the iteration.
165347// The provided context supersedes any context provided to the Context method.
165348func (c *TargetHttpsProxiesAggregatedListCall) Pages(ctx context.Context, f func(*TargetHttpsProxyAggregatedList) error) error {
165349	c.ctx_ = ctx
165350	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
165351	for {
165352		x, err := c.Do()
165353		if err != nil {
165354			return err
165355		}
165356		if err := f(x); err != nil {
165357			return err
165358		}
165359		if x.NextPageToken == "" {
165360			return nil
165361		}
165362		c.PageToken(x.NextPageToken)
165363	}
165364}
165365
165366// method id "compute.targetHttpsProxies.delete":
165367
165368type TargetHttpsProxiesDeleteCall struct {
165369	s                *Service
165370	project          string
165371	targetHttpsProxy string
165372	urlParams_       gensupport.URLParams
165373	ctx_             context.Context
165374	header_          http.Header
165375}
165376
165377// Delete: Deletes the specified TargetHttpsProxy resource.
165378func (r *TargetHttpsProxiesService) Delete(project string, targetHttpsProxy string) *TargetHttpsProxiesDeleteCall {
165379	c := &TargetHttpsProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
165380	c.project = project
165381	c.targetHttpsProxy = targetHttpsProxy
165382	return c
165383}
165384
165385// RequestId sets the optional parameter "requestId": An optional
165386// request ID to identify requests. Specify a unique request ID so that
165387// if you must retry your request, the server will know to ignore the
165388// request if it has already been completed.
165389//
165390// For example, consider a situation where you make an initial request
165391// and the request times out. If you make the request again with the
165392// same request ID, the server can check if original operation with the
165393// same request ID was received, and if so, will ignore the second
165394// request. This prevents clients from accidentally creating duplicate
165395// commitments.
165396//
165397// The request ID must be a valid UUID with the exception that zero UUID
165398// is not supported (00000000-0000-0000-0000-000000000000).
165399func (c *TargetHttpsProxiesDeleteCall) RequestId(requestId string) *TargetHttpsProxiesDeleteCall {
165400	c.urlParams_.Set("requestId", requestId)
165401	return c
165402}
165403
165404// Fields allows partial responses to be retrieved. See
165405// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
165406// for more information.
165407func (c *TargetHttpsProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesDeleteCall {
165408	c.urlParams_.Set("fields", googleapi.CombineFields(s))
165409	return c
165410}
165411
165412// Context sets the context to be used in this call's Do method. Any
165413// pending HTTP request will be aborted if the provided context is
165414// canceled.
165415func (c *TargetHttpsProxiesDeleteCall) Context(ctx context.Context) *TargetHttpsProxiesDeleteCall {
165416	c.ctx_ = ctx
165417	return c
165418}
165419
165420// Header returns an http.Header that can be modified by the caller to
165421// add HTTP headers to the request.
165422func (c *TargetHttpsProxiesDeleteCall) Header() http.Header {
165423	if c.header_ == nil {
165424		c.header_ = make(http.Header)
165425	}
165426	return c.header_
165427}
165428
165429func (c *TargetHttpsProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
165430	reqHeaders := make(http.Header)
165431	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
165432	for k, v := range c.header_ {
165433		reqHeaders[k] = v
165434	}
165435	reqHeaders.Set("User-Agent", c.s.userAgent())
165436	var body io.Reader = nil
165437	c.urlParams_.Set("alt", alt)
165438	c.urlParams_.Set("prettyPrint", "false")
165439	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}")
165440	urls += "?" + c.urlParams_.Encode()
165441	req, err := http.NewRequest("DELETE", urls, body)
165442	if err != nil {
165443		return nil, err
165444	}
165445	req.Header = reqHeaders
165446	googleapi.Expand(req.URL, map[string]string{
165447		"project":          c.project,
165448		"targetHttpsProxy": c.targetHttpsProxy,
165449	})
165450	return gensupport.SendRequest(c.ctx_, c.s.client, req)
165451}
165452
165453// Do executes the "compute.targetHttpsProxies.delete" call.
165454// Exactly one of *Operation or error will be non-nil. Any non-2xx
165455// status code is an error. Response headers are in either
165456// *Operation.ServerResponse.Header or (if a response was returned at
165457// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
165458// to check whether the returned error was because
165459// http.StatusNotModified was returned.
165460func (c *TargetHttpsProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
165461	gensupport.SetOptions(c.urlParams_, opts...)
165462	res, err := c.doRequest("json")
165463	if res != nil && res.StatusCode == http.StatusNotModified {
165464		if res.Body != nil {
165465			res.Body.Close()
165466		}
165467		return nil, &googleapi.Error{
165468			Code:   res.StatusCode,
165469			Header: res.Header,
165470		}
165471	}
165472	if err != nil {
165473		return nil, err
165474	}
165475	defer googleapi.CloseBody(res)
165476	if err := googleapi.CheckResponse(res); err != nil {
165477		return nil, err
165478	}
165479	ret := &Operation{
165480		ServerResponse: googleapi.ServerResponse{
165481			Header:         res.Header,
165482			HTTPStatusCode: res.StatusCode,
165483		},
165484	}
165485	target := &ret
165486	if err := gensupport.DecodeResponse(target, res); err != nil {
165487		return nil, err
165488	}
165489	return ret, nil
165490	// {
165491	//   "description": "Deletes the specified TargetHttpsProxy resource.",
165492	//   "httpMethod": "DELETE",
165493	//   "id": "compute.targetHttpsProxies.delete",
165494	//   "parameterOrder": [
165495	//     "project",
165496	//     "targetHttpsProxy"
165497	//   ],
165498	//   "parameters": {
165499	//     "project": {
165500	//       "description": "Project ID for this request.",
165501	//       "location": "path",
165502	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
165503	//       "required": true,
165504	//       "type": "string"
165505	//     },
165506	//     "requestId": {
165507	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
165508	//       "location": "query",
165509	//       "type": "string"
165510	//     },
165511	//     "targetHttpsProxy": {
165512	//       "description": "Name of the TargetHttpsProxy resource to delete.",
165513	//       "location": "path",
165514	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
165515	//       "required": true,
165516	//       "type": "string"
165517	//     }
165518	//   },
165519	//   "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}",
165520	//   "response": {
165521	//     "$ref": "Operation"
165522	//   },
165523	//   "scopes": [
165524	//     "https://www.googleapis.com/auth/cloud-platform",
165525	//     "https://www.googleapis.com/auth/compute"
165526	//   ]
165527	// }
165528
165529}
165530
165531// method id "compute.targetHttpsProxies.get":
165532
165533type TargetHttpsProxiesGetCall struct {
165534	s                *Service
165535	project          string
165536	targetHttpsProxy string
165537	urlParams_       gensupport.URLParams
165538	ifNoneMatch_     string
165539	ctx_             context.Context
165540	header_          http.Header
165541}
165542
165543// Get: Returns the specified TargetHttpsProxy resource. Gets a list of
165544// available target HTTPS proxies by making a list() request.
165545func (r *TargetHttpsProxiesService) Get(project string, targetHttpsProxy string) *TargetHttpsProxiesGetCall {
165546	c := &TargetHttpsProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
165547	c.project = project
165548	c.targetHttpsProxy = targetHttpsProxy
165549	return c
165550}
165551
165552// Fields allows partial responses to be retrieved. See
165553// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
165554// for more information.
165555func (c *TargetHttpsProxiesGetCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesGetCall {
165556	c.urlParams_.Set("fields", googleapi.CombineFields(s))
165557	return c
165558}
165559
165560// IfNoneMatch sets the optional parameter which makes the operation
165561// fail if the object's ETag matches the given value. This is useful for
165562// getting updates only after the object has changed since the last
165563// request. Use googleapi.IsNotModified to check whether the response
165564// error from Do is the result of In-None-Match.
165565func (c *TargetHttpsProxiesGetCall) IfNoneMatch(entityTag string) *TargetHttpsProxiesGetCall {
165566	c.ifNoneMatch_ = entityTag
165567	return c
165568}
165569
165570// Context sets the context to be used in this call's Do method. Any
165571// pending HTTP request will be aborted if the provided context is
165572// canceled.
165573func (c *TargetHttpsProxiesGetCall) Context(ctx context.Context) *TargetHttpsProxiesGetCall {
165574	c.ctx_ = ctx
165575	return c
165576}
165577
165578// Header returns an http.Header that can be modified by the caller to
165579// add HTTP headers to the request.
165580func (c *TargetHttpsProxiesGetCall) Header() http.Header {
165581	if c.header_ == nil {
165582		c.header_ = make(http.Header)
165583	}
165584	return c.header_
165585}
165586
165587func (c *TargetHttpsProxiesGetCall) doRequest(alt string) (*http.Response, error) {
165588	reqHeaders := make(http.Header)
165589	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
165590	for k, v := range c.header_ {
165591		reqHeaders[k] = v
165592	}
165593	reqHeaders.Set("User-Agent", c.s.userAgent())
165594	if c.ifNoneMatch_ != "" {
165595		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
165596	}
165597	var body io.Reader = nil
165598	c.urlParams_.Set("alt", alt)
165599	c.urlParams_.Set("prettyPrint", "false")
165600	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}")
165601	urls += "?" + c.urlParams_.Encode()
165602	req, err := http.NewRequest("GET", urls, body)
165603	if err != nil {
165604		return nil, err
165605	}
165606	req.Header = reqHeaders
165607	googleapi.Expand(req.URL, map[string]string{
165608		"project":          c.project,
165609		"targetHttpsProxy": c.targetHttpsProxy,
165610	})
165611	return gensupport.SendRequest(c.ctx_, c.s.client, req)
165612}
165613
165614// Do executes the "compute.targetHttpsProxies.get" call.
165615// Exactly one of *TargetHttpsProxy or error will be non-nil. Any
165616// non-2xx status code is an error. Response headers are in either
165617// *TargetHttpsProxy.ServerResponse.Header or (if a response was
165618// returned at all) in error.(*googleapi.Error).Header. Use
165619// googleapi.IsNotModified to check whether the returned error was
165620// because http.StatusNotModified was returned.
165621func (c *TargetHttpsProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxy, error) {
165622	gensupport.SetOptions(c.urlParams_, opts...)
165623	res, err := c.doRequest("json")
165624	if res != nil && res.StatusCode == http.StatusNotModified {
165625		if res.Body != nil {
165626			res.Body.Close()
165627		}
165628		return nil, &googleapi.Error{
165629			Code:   res.StatusCode,
165630			Header: res.Header,
165631		}
165632	}
165633	if err != nil {
165634		return nil, err
165635	}
165636	defer googleapi.CloseBody(res)
165637	if err := googleapi.CheckResponse(res); err != nil {
165638		return nil, err
165639	}
165640	ret := &TargetHttpsProxy{
165641		ServerResponse: googleapi.ServerResponse{
165642			Header:         res.Header,
165643			HTTPStatusCode: res.StatusCode,
165644		},
165645	}
165646	target := &ret
165647	if err := gensupport.DecodeResponse(target, res); err != nil {
165648		return nil, err
165649	}
165650	return ret, nil
165651	// {
165652	//   "description": "Returns the specified TargetHttpsProxy resource. Gets a list of available target HTTPS proxies by making a list() request.",
165653	//   "httpMethod": "GET",
165654	//   "id": "compute.targetHttpsProxies.get",
165655	//   "parameterOrder": [
165656	//     "project",
165657	//     "targetHttpsProxy"
165658	//   ],
165659	//   "parameters": {
165660	//     "project": {
165661	//       "description": "Project ID for this request.",
165662	//       "location": "path",
165663	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
165664	//       "required": true,
165665	//       "type": "string"
165666	//     },
165667	//     "targetHttpsProxy": {
165668	//       "description": "Name of the TargetHttpsProxy resource to return.",
165669	//       "location": "path",
165670	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
165671	//       "required": true,
165672	//       "type": "string"
165673	//     }
165674	//   },
165675	//   "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}",
165676	//   "response": {
165677	//     "$ref": "TargetHttpsProxy"
165678	//   },
165679	//   "scopes": [
165680	//     "https://www.googleapis.com/auth/cloud-platform",
165681	//     "https://www.googleapis.com/auth/compute",
165682	//     "https://www.googleapis.com/auth/compute.readonly"
165683	//   ]
165684	// }
165685
165686}
165687
165688// method id "compute.targetHttpsProxies.insert":
165689
165690type TargetHttpsProxiesInsertCall struct {
165691	s                *Service
165692	project          string
165693	targethttpsproxy *TargetHttpsProxy
165694	urlParams_       gensupport.URLParams
165695	ctx_             context.Context
165696	header_          http.Header
165697}
165698
165699// Insert: Creates a TargetHttpsProxy resource in the specified project
165700// using the data included in the request.
165701func (r *TargetHttpsProxiesService) Insert(project string, targethttpsproxy *TargetHttpsProxy) *TargetHttpsProxiesInsertCall {
165702	c := &TargetHttpsProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
165703	c.project = project
165704	c.targethttpsproxy = targethttpsproxy
165705	return c
165706}
165707
165708// RequestId sets the optional parameter "requestId": An optional
165709// request ID to identify requests. Specify a unique request ID so that
165710// if you must retry your request, the server will know to ignore the
165711// request if it has already been completed.
165712//
165713// For example, consider a situation where you make an initial request
165714// and the request times out. If you make the request again with the
165715// same request ID, the server can check if original operation with the
165716// same request ID was received, and if so, will ignore the second
165717// request. This prevents clients from accidentally creating duplicate
165718// commitments.
165719//
165720// The request ID must be a valid UUID with the exception that zero UUID
165721// is not supported (00000000-0000-0000-0000-000000000000).
165722func (c *TargetHttpsProxiesInsertCall) RequestId(requestId string) *TargetHttpsProxiesInsertCall {
165723	c.urlParams_.Set("requestId", requestId)
165724	return c
165725}
165726
165727// Fields allows partial responses to be retrieved. See
165728// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
165729// for more information.
165730func (c *TargetHttpsProxiesInsertCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesInsertCall {
165731	c.urlParams_.Set("fields", googleapi.CombineFields(s))
165732	return c
165733}
165734
165735// Context sets the context to be used in this call's Do method. Any
165736// pending HTTP request will be aborted if the provided context is
165737// canceled.
165738func (c *TargetHttpsProxiesInsertCall) Context(ctx context.Context) *TargetHttpsProxiesInsertCall {
165739	c.ctx_ = ctx
165740	return c
165741}
165742
165743// Header returns an http.Header that can be modified by the caller to
165744// add HTTP headers to the request.
165745func (c *TargetHttpsProxiesInsertCall) Header() http.Header {
165746	if c.header_ == nil {
165747		c.header_ = make(http.Header)
165748	}
165749	return c.header_
165750}
165751
165752func (c *TargetHttpsProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
165753	reqHeaders := make(http.Header)
165754	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
165755	for k, v := range c.header_ {
165756		reqHeaders[k] = v
165757	}
165758	reqHeaders.Set("User-Agent", c.s.userAgent())
165759	var body io.Reader = nil
165760	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxy)
165761	if err != nil {
165762		return nil, err
165763	}
165764	reqHeaders.Set("Content-Type", "application/json")
165765	c.urlParams_.Set("alt", alt)
165766	c.urlParams_.Set("prettyPrint", "false")
165767	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpsProxies")
165768	urls += "?" + c.urlParams_.Encode()
165769	req, err := http.NewRequest("POST", urls, body)
165770	if err != nil {
165771		return nil, err
165772	}
165773	req.Header = reqHeaders
165774	googleapi.Expand(req.URL, map[string]string{
165775		"project": c.project,
165776	})
165777	return gensupport.SendRequest(c.ctx_, c.s.client, req)
165778}
165779
165780// Do executes the "compute.targetHttpsProxies.insert" call.
165781// Exactly one of *Operation or error will be non-nil. Any non-2xx
165782// status code is an error. Response headers are in either
165783// *Operation.ServerResponse.Header or (if a response was returned at
165784// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
165785// to check whether the returned error was because
165786// http.StatusNotModified was returned.
165787func (c *TargetHttpsProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
165788	gensupport.SetOptions(c.urlParams_, opts...)
165789	res, err := c.doRequest("json")
165790	if res != nil && res.StatusCode == http.StatusNotModified {
165791		if res.Body != nil {
165792			res.Body.Close()
165793		}
165794		return nil, &googleapi.Error{
165795			Code:   res.StatusCode,
165796			Header: res.Header,
165797		}
165798	}
165799	if err != nil {
165800		return nil, err
165801	}
165802	defer googleapi.CloseBody(res)
165803	if err := googleapi.CheckResponse(res); err != nil {
165804		return nil, err
165805	}
165806	ret := &Operation{
165807		ServerResponse: googleapi.ServerResponse{
165808			Header:         res.Header,
165809			HTTPStatusCode: res.StatusCode,
165810		},
165811	}
165812	target := &ret
165813	if err := gensupport.DecodeResponse(target, res); err != nil {
165814		return nil, err
165815	}
165816	return ret, nil
165817	// {
165818	//   "description": "Creates a TargetHttpsProxy resource in the specified project using the data included in the request.",
165819	//   "httpMethod": "POST",
165820	//   "id": "compute.targetHttpsProxies.insert",
165821	//   "parameterOrder": [
165822	//     "project"
165823	//   ],
165824	//   "parameters": {
165825	//     "project": {
165826	//       "description": "Project ID for this request.",
165827	//       "location": "path",
165828	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
165829	//       "required": true,
165830	//       "type": "string"
165831	//     },
165832	//     "requestId": {
165833	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
165834	//       "location": "query",
165835	//       "type": "string"
165836	//     }
165837	//   },
165838	//   "path": "projects/{project}/global/targetHttpsProxies",
165839	//   "request": {
165840	//     "$ref": "TargetHttpsProxy"
165841	//   },
165842	//   "response": {
165843	//     "$ref": "Operation"
165844	//   },
165845	//   "scopes": [
165846	//     "https://www.googleapis.com/auth/cloud-platform",
165847	//     "https://www.googleapis.com/auth/compute"
165848	//   ]
165849	// }
165850
165851}
165852
165853// method id "compute.targetHttpsProxies.list":
165854
165855type TargetHttpsProxiesListCall struct {
165856	s            *Service
165857	project      string
165858	urlParams_   gensupport.URLParams
165859	ifNoneMatch_ string
165860	ctx_         context.Context
165861	header_      http.Header
165862}
165863
165864// List: Retrieves the list of TargetHttpsProxy resources available to
165865// the specified project.
165866func (r *TargetHttpsProxiesService) List(project string) *TargetHttpsProxiesListCall {
165867	c := &TargetHttpsProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
165868	c.project = project
165869	return c
165870}
165871
165872// Filter sets the optional parameter "filter": A filter expression that
165873// filters resources listed in the response. The expression must specify
165874// the field name, a comparison operator, and the value that you want to
165875// use for filtering. The value must be a string, a number, or a
165876// boolean. The comparison operator must be either `=`, `!=`, `>`, or
165877// `<`.
165878//
165879// For example, if you are filtering Compute Engine instances, you can
165880// exclude instances named `example-instance` by specifying `name !=
165881// example-instance`.
165882//
165883// You can also filter nested fields. For example, you could specify
165884// `scheduling.automaticRestart = false` to include instances only if
165885// they are not scheduled for automatic restarts. You can use filtering
165886// on nested fields to filter based on resource labels.
165887//
165888// To filter on multiple expressions, provide each separate expression
165889// within parentheses. For example: ``` (scheduling.automaticRestart =
165890// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
165891// is an `AND` expression. However, you can include `AND` and `OR`
165892// expressions explicitly. For example: ``` (cpuPlatform = "Intel
165893// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
165894// (scheduling.automaticRestart = true) ```
165895func (c *TargetHttpsProxiesListCall) Filter(filter string) *TargetHttpsProxiesListCall {
165896	c.urlParams_.Set("filter", filter)
165897	return c
165898}
165899
165900// MaxResults sets the optional parameter "maxResults": The maximum
165901// number of results per page that should be returned. If the number of
165902// available results is larger than `maxResults`, Compute Engine returns
165903// a `nextPageToken` that can be used to get the next page of results in
165904// subsequent list requests. Acceptable values are `0` to `500`,
165905// inclusive. (Default: `500`)
165906func (c *TargetHttpsProxiesListCall) MaxResults(maxResults int64) *TargetHttpsProxiesListCall {
165907	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
165908	return c
165909}
165910
165911// OrderBy sets the optional parameter "orderBy": Sorts list results by
165912// a certain order. By default, results are returned in alphanumerical
165913// order based on the resource name.
165914//
165915// You can also sort results in descending order based on the creation
165916// timestamp using `orderBy="creationTimestamp desc". This sorts
165917// results based on the `creationTimestamp` field in reverse
165918// chronological order (newest result first). Use this to sort resources
165919// like operations so that the newest operation is returned
165920// first.
165921//
165922// Currently, only sorting by `name` or `creationTimestamp desc` is
165923// supported.
165924func (c *TargetHttpsProxiesListCall) OrderBy(orderBy string) *TargetHttpsProxiesListCall {
165925	c.urlParams_.Set("orderBy", orderBy)
165926	return c
165927}
165928
165929// PageToken sets the optional parameter "pageToken": Specifies a page
165930// token to use. Set `pageToken` to the `nextPageToken` returned by a
165931// previous list request to get the next page of results.
165932func (c *TargetHttpsProxiesListCall) PageToken(pageToken string) *TargetHttpsProxiesListCall {
165933	c.urlParams_.Set("pageToken", pageToken)
165934	return c
165935}
165936
165937// ReturnPartialSuccess sets the optional parameter
165938// "returnPartialSuccess": Opt-in for partial success behavior which
165939// provides partial results in case of failure. The default value is
165940// false.
165941func (c *TargetHttpsProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetHttpsProxiesListCall {
165942	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
165943	return c
165944}
165945
165946// Fields allows partial responses to be retrieved. See
165947// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
165948// for more information.
165949func (c *TargetHttpsProxiesListCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesListCall {
165950	c.urlParams_.Set("fields", googleapi.CombineFields(s))
165951	return c
165952}
165953
165954// IfNoneMatch sets the optional parameter which makes the operation
165955// fail if the object's ETag matches the given value. This is useful for
165956// getting updates only after the object has changed since the last
165957// request. Use googleapi.IsNotModified to check whether the response
165958// error from Do is the result of In-None-Match.
165959func (c *TargetHttpsProxiesListCall) IfNoneMatch(entityTag string) *TargetHttpsProxiesListCall {
165960	c.ifNoneMatch_ = entityTag
165961	return c
165962}
165963
165964// Context sets the context to be used in this call's Do method. Any
165965// pending HTTP request will be aborted if the provided context is
165966// canceled.
165967func (c *TargetHttpsProxiesListCall) Context(ctx context.Context) *TargetHttpsProxiesListCall {
165968	c.ctx_ = ctx
165969	return c
165970}
165971
165972// Header returns an http.Header that can be modified by the caller to
165973// add HTTP headers to the request.
165974func (c *TargetHttpsProxiesListCall) Header() http.Header {
165975	if c.header_ == nil {
165976		c.header_ = make(http.Header)
165977	}
165978	return c.header_
165979}
165980
165981func (c *TargetHttpsProxiesListCall) doRequest(alt string) (*http.Response, error) {
165982	reqHeaders := make(http.Header)
165983	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
165984	for k, v := range c.header_ {
165985		reqHeaders[k] = v
165986	}
165987	reqHeaders.Set("User-Agent", c.s.userAgent())
165988	if c.ifNoneMatch_ != "" {
165989		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
165990	}
165991	var body io.Reader = nil
165992	c.urlParams_.Set("alt", alt)
165993	c.urlParams_.Set("prettyPrint", "false")
165994	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpsProxies")
165995	urls += "?" + c.urlParams_.Encode()
165996	req, err := http.NewRequest("GET", urls, body)
165997	if err != nil {
165998		return nil, err
165999	}
166000	req.Header = reqHeaders
166001	googleapi.Expand(req.URL, map[string]string{
166002		"project": c.project,
166003	})
166004	return gensupport.SendRequest(c.ctx_, c.s.client, req)
166005}
166006
166007// Do executes the "compute.targetHttpsProxies.list" call.
166008// Exactly one of *TargetHttpsProxyList or error will be non-nil. Any
166009// non-2xx status code is an error. Response headers are in either
166010// *TargetHttpsProxyList.ServerResponse.Header or (if a response was
166011// returned at all) in error.(*googleapi.Error).Header. Use
166012// googleapi.IsNotModified to check whether the returned error was
166013// because http.StatusNotModified was returned.
166014func (c *TargetHttpsProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxyList, error) {
166015	gensupport.SetOptions(c.urlParams_, opts...)
166016	res, err := c.doRequest("json")
166017	if res != nil && res.StatusCode == http.StatusNotModified {
166018		if res.Body != nil {
166019			res.Body.Close()
166020		}
166021		return nil, &googleapi.Error{
166022			Code:   res.StatusCode,
166023			Header: res.Header,
166024		}
166025	}
166026	if err != nil {
166027		return nil, err
166028	}
166029	defer googleapi.CloseBody(res)
166030	if err := googleapi.CheckResponse(res); err != nil {
166031		return nil, err
166032	}
166033	ret := &TargetHttpsProxyList{
166034		ServerResponse: googleapi.ServerResponse{
166035			Header:         res.Header,
166036			HTTPStatusCode: res.StatusCode,
166037		},
166038	}
166039	target := &ret
166040	if err := gensupport.DecodeResponse(target, res); err != nil {
166041		return nil, err
166042	}
166043	return ret, nil
166044	// {
166045	//   "description": "Retrieves the list of TargetHttpsProxy resources available to the specified project.",
166046	//   "httpMethod": "GET",
166047	//   "id": "compute.targetHttpsProxies.list",
166048	//   "parameterOrder": [
166049	//     "project"
166050	//   ],
166051	//   "parameters": {
166052	//     "filter": {
166053	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
166054	//       "location": "query",
166055	//       "type": "string"
166056	//     },
166057	//     "maxResults": {
166058	//       "default": "500",
166059	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
166060	//       "format": "uint32",
166061	//       "location": "query",
166062	//       "minimum": "0",
166063	//       "type": "integer"
166064	//     },
166065	//     "orderBy": {
166066	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
166067	//       "location": "query",
166068	//       "type": "string"
166069	//     },
166070	//     "pageToken": {
166071	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
166072	//       "location": "query",
166073	//       "type": "string"
166074	//     },
166075	//     "project": {
166076	//       "description": "Project ID for this request.",
166077	//       "location": "path",
166078	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
166079	//       "required": true,
166080	//       "type": "string"
166081	//     },
166082	//     "returnPartialSuccess": {
166083	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
166084	//       "location": "query",
166085	//       "type": "boolean"
166086	//     }
166087	//   },
166088	//   "path": "projects/{project}/global/targetHttpsProxies",
166089	//   "response": {
166090	//     "$ref": "TargetHttpsProxyList"
166091	//   },
166092	//   "scopes": [
166093	//     "https://www.googleapis.com/auth/cloud-platform",
166094	//     "https://www.googleapis.com/auth/compute",
166095	//     "https://www.googleapis.com/auth/compute.readonly"
166096	//   ]
166097	// }
166098
166099}
166100
166101// Pages invokes f for each page of results.
166102// A non-nil error returned from f will halt the iteration.
166103// The provided context supersedes any context provided to the Context method.
166104func (c *TargetHttpsProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpsProxyList) error) error {
166105	c.ctx_ = ctx
166106	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
166107	for {
166108		x, err := c.Do()
166109		if err != nil {
166110			return err
166111		}
166112		if err := f(x); err != nil {
166113			return err
166114		}
166115		if x.NextPageToken == "" {
166116			return nil
166117		}
166118		c.PageToken(x.NextPageToken)
166119	}
166120}
166121
166122// method id "compute.targetHttpsProxies.patch":
166123
166124type TargetHttpsProxiesPatchCall struct {
166125	s                *Service
166126	project          string
166127	targetHttpsProxy string
166128	targethttpsproxy *TargetHttpsProxy
166129	urlParams_       gensupport.URLParams
166130	ctx_             context.Context
166131	header_          http.Header
166132}
166133
166134// Patch: Patches the specified TargetHttpsProxy resource with the data
166135// included in the request. This method supports PATCH semantics and
166136// uses JSON merge patch format and processing rules. (==
166137// suppress_warning http-rest-shadowed ==)
166138func (r *TargetHttpsProxiesService) Patch(project string, targetHttpsProxy string, targethttpsproxy *TargetHttpsProxy) *TargetHttpsProxiesPatchCall {
166139	c := &TargetHttpsProxiesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
166140	c.project = project
166141	c.targetHttpsProxy = targetHttpsProxy
166142	c.targethttpsproxy = targethttpsproxy
166143	return c
166144}
166145
166146// RequestId sets the optional parameter "requestId": An optional
166147// request ID to identify requests. Specify a unique request ID so that
166148// if you must retry your request, the server will know to ignore the
166149// request if it has already been completed.
166150//
166151// For example, consider a situation where you make an initial request
166152// and the request times out. If you make the request again with the
166153// same request ID, the server can check if original operation with the
166154// same request ID was received, and if so, will ignore the second
166155// request. This prevents clients from accidentally creating duplicate
166156// commitments.
166157//
166158// The request ID must be a valid UUID with the exception that zero UUID
166159// is not supported (00000000-0000-0000-0000-000000000000).
166160func (c *TargetHttpsProxiesPatchCall) RequestId(requestId string) *TargetHttpsProxiesPatchCall {
166161	c.urlParams_.Set("requestId", requestId)
166162	return c
166163}
166164
166165// Fields allows partial responses to be retrieved. See
166166// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
166167// for more information.
166168func (c *TargetHttpsProxiesPatchCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesPatchCall {
166169	c.urlParams_.Set("fields", googleapi.CombineFields(s))
166170	return c
166171}
166172
166173// Context sets the context to be used in this call's Do method. Any
166174// pending HTTP request will be aborted if the provided context is
166175// canceled.
166176func (c *TargetHttpsProxiesPatchCall) Context(ctx context.Context) *TargetHttpsProxiesPatchCall {
166177	c.ctx_ = ctx
166178	return c
166179}
166180
166181// Header returns an http.Header that can be modified by the caller to
166182// add HTTP headers to the request.
166183func (c *TargetHttpsProxiesPatchCall) Header() http.Header {
166184	if c.header_ == nil {
166185		c.header_ = make(http.Header)
166186	}
166187	return c.header_
166188}
166189
166190func (c *TargetHttpsProxiesPatchCall) doRequest(alt string) (*http.Response, error) {
166191	reqHeaders := make(http.Header)
166192	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
166193	for k, v := range c.header_ {
166194		reqHeaders[k] = v
166195	}
166196	reqHeaders.Set("User-Agent", c.s.userAgent())
166197	var body io.Reader = nil
166198	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxy)
166199	if err != nil {
166200		return nil, err
166201	}
166202	reqHeaders.Set("Content-Type", "application/json")
166203	c.urlParams_.Set("alt", alt)
166204	c.urlParams_.Set("prettyPrint", "false")
166205	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}")
166206	urls += "?" + c.urlParams_.Encode()
166207	req, err := http.NewRequest("PATCH", urls, body)
166208	if err != nil {
166209		return nil, err
166210	}
166211	req.Header = reqHeaders
166212	googleapi.Expand(req.URL, map[string]string{
166213		"project":          c.project,
166214		"targetHttpsProxy": c.targetHttpsProxy,
166215	})
166216	return gensupport.SendRequest(c.ctx_, c.s.client, req)
166217}
166218
166219// Do executes the "compute.targetHttpsProxies.patch" call.
166220// Exactly one of *Operation or error will be non-nil. Any non-2xx
166221// status code is an error. Response headers are in either
166222// *Operation.ServerResponse.Header or (if a response was returned at
166223// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
166224// to check whether the returned error was because
166225// http.StatusNotModified was returned.
166226func (c *TargetHttpsProxiesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
166227	gensupport.SetOptions(c.urlParams_, opts...)
166228	res, err := c.doRequest("json")
166229	if res != nil && res.StatusCode == http.StatusNotModified {
166230		if res.Body != nil {
166231			res.Body.Close()
166232		}
166233		return nil, &googleapi.Error{
166234			Code:   res.StatusCode,
166235			Header: res.Header,
166236		}
166237	}
166238	if err != nil {
166239		return nil, err
166240	}
166241	defer googleapi.CloseBody(res)
166242	if err := googleapi.CheckResponse(res); err != nil {
166243		return nil, err
166244	}
166245	ret := &Operation{
166246		ServerResponse: googleapi.ServerResponse{
166247			Header:         res.Header,
166248			HTTPStatusCode: res.StatusCode,
166249		},
166250	}
166251	target := &ret
166252	if err := gensupport.DecodeResponse(target, res); err != nil {
166253		return nil, err
166254	}
166255	return ret, nil
166256	// {
166257	//   "description": "Patches the specified TargetHttpsProxy resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules. (== suppress_warning http-rest-shadowed ==)",
166258	//   "httpMethod": "PATCH",
166259	//   "id": "compute.targetHttpsProxies.patch",
166260	//   "parameterOrder": [
166261	//     "project",
166262	//     "targetHttpsProxy"
166263	//   ],
166264	//   "parameters": {
166265	//     "project": {
166266	//       "description": "Project ID for this request.",
166267	//       "location": "path",
166268	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
166269	//       "required": true,
166270	//       "type": "string"
166271	//     },
166272	//     "requestId": {
166273	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
166274	//       "location": "query",
166275	//       "type": "string"
166276	//     },
166277	//     "targetHttpsProxy": {
166278	//       "description": "Name of the TargetHttpsProxy resource to patch.",
166279	//       "location": "path",
166280	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
166281	//       "required": true,
166282	//       "type": "string"
166283	//     }
166284	//   },
166285	//   "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}",
166286	//   "request": {
166287	//     "$ref": "TargetHttpsProxy"
166288	//   },
166289	//   "response": {
166290	//     "$ref": "Operation"
166291	//   },
166292	//   "scopes": [
166293	//     "https://www.googleapis.com/auth/cloud-platform",
166294	//     "https://www.googleapis.com/auth/compute"
166295	//   ]
166296	// }
166297
166298}
166299
166300// method id "compute.targetHttpsProxies.setQuicOverride":
166301
166302type TargetHttpsProxiesSetQuicOverrideCall struct {
166303	s                                        *Service
166304	project                                  string
166305	targetHttpsProxy                         string
166306	targethttpsproxiessetquicoverriderequest *TargetHttpsProxiesSetQuicOverrideRequest
166307	urlParams_                               gensupport.URLParams
166308	ctx_                                     context.Context
166309	header_                                  http.Header
166310}
166311
166312// SetQuicOverride: Sets the QUIC override policy for TargetHttpsProxy.
166313func (r *TargetHttpsProxiesService) SetQuicOverride(project string, targetHttpsProxy string, targethttpsproxiessetquicoverriderequest *TargetHttpsProxiesSetQuicOverrideRequest) *TargetHttpsProxiesSetQuicOverrideCall {
166314	c := &TargetHttpsProxiesSetQuicOverrideCall{s: r.s, urlParams_: make(gensupport.URLParams)}
166315	c.project = project
166316	c.targetHttpsProxy = targetHttpsProxy
166317	c.targethttpsproxiessetquicoverriderequest = targethttpsproxiessetquicoverriderequest
166318	return c
166319}
166320
166321// RequestId sets the optional parameter "requestId": An optional
166322// request ID to identify requests. Specify a unique request ID so that
166323// if you must retry your request, the server will know to ignore the
166324// request if it has already been completed.
166325//
166326// For example, consider a situation where you make an initial request
166327// and the request times out. If you make the request again with the
166328// same request ID, the server can check if original operation with the
166329// same request ID was received, and if so, will ignore the second
166330// request. This prevents clients from accidentally creating duplicate
166331// commitments.
166332//
166333// The request ID must be a valid UUID with the exception that zero UUID
166334// is not supported (00000000-0000-0000-0000-000000000000).
166335func (c *TargetHttpsProxiesSetQuicOverrideCall) RequestId(requestId string) *TargetHttpsProxiesSetQuicOverrideCall {
166336	c.urlParams_.Set("requestId", requestId)
166337	return c
166338}
166339
166340// Fields allows partial responses to be retrieved. See
166341// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
166342// for more information.
166343func (c *TargetHttpsProxiesSetQuicOverrideCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetQuicOverrideCall {
166344	c.urlParams_.Set("fields", googleapi.CombineFields(s))
166345	return c
166346}
166347
166348// Context sets the context to be used in this call's Do method. Any
166349// pending HTTP request will be aborted if the provided context is
166350// canceled.
166351func (c *TargetHttpsProxiesSetQuicOverrideCall) Context(ctx context.Context) *TargetHttpsProxiesSetQuicOverrideCall {
166352	c.ctx_ = ctx
166353	return c
166354}
166355
166356// Header returns an http.Header that can be modified by the caller to
166357// add HTTP headers to the request.
166358func (c *TargetHttpsProxiesSetQuicOverrideCall) Header() http.Header {
166359	if c.header_ == nil {
166360		c.header_ = make(http.Header)
166361	}
166362	return c.header_
166363}
166364
166365func (c *TargetHttpsProxiesSetQuicOverrideCall) doRequest(alt string) (*http.Response, error) {
166366	reqHeaders := make(http.Header)
166367	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
166368	for k, v := range c.header_ {
166369		reqHeaders[k] = v
166370	}
166371	reqHeaders.Set("User-Agent", c.s.userAgent())
166372	var body io.Reader = nil
166373	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxiessetquicoverriderequest)
166374	if err != nil {
166375		return nil, err
166376	}
166377	reqHeaders.Set("Content-Type", "application/json")
166378	c.urlParams_.Set("alt", alt)
166379	c.urlParams_.Set("prettyPrint", "false")
166380	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setQuicOverride")
166381	urls += "?" + c.urlParams_.Encode()
166382	req, err := http.NewRequest("POST", urls, body)
166383	if err != nil {
166384		return nil, err
166385	}
166386	req.Header = reqHeaders
166387	googleapi.Expand(req.URL, map[string]string{
166388		"project":          c.project,
166389		"targetHttpsProxy": c.targetHttpsProxy,
166390	})
166391	return gensupport.SendRequest(c.ctx_, c.s.client, req)
166392}
166393
166394// Do executes the "compute.targetHttpsProxies.setQuicOverride" call.
166395// Exactly one of *Operation or error will be non-nil. Any non-2xx
166396// status code is an error. Response headers are in either
166397// *Operation.ServerResponse.Header or (if a response was returned at
166398// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
166399// to check whether the returned error was because
166400// http.StatusNotModified was returned.
166401func (c *TargetHttpsProxiesSetQuicOverrideCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
166402	gensupport.SetOptions(c.urlParams_, opts...)
166403	res, err := c.doRequest("json")
166404	if res != nil && res.StatusCode == http.StatusNotModified {
166405		if res.Body != nil {
166406			res.Body.Close()
166407		}
166408		return nil, &googleapi.Error{
166409			Code:   res.StatusCode,
166410			Header: res.Header,
166411		}
166412	}
166413	if err != nil {
166414		return nil, err
166415	}
166416	defer googleapi.CloseBody(res)
166417	if err := googleapi.CheckResponse(res); err != nil {
166418		return nil, err
166419	}
166420	ret := &Operation{
166421		ServerResponse: googleapi.ServerResponse{
166422			Header:         res.Header,
166423			HTTPStatusCode: res.StatusCode,
166424		},
166425	}
166426	target := &ret
166427	if err := gensupport.DecodeResponse(target, res); err != nil {
166428		return nil, err
166429	}
166430	return ret, nil
166431	// {
166432	//   "description": "Sets the QUIC override policy for TargetHttpsProxy.",
166433	//   "httpMethod": "POST",
166434	//   "id": "compute.targetHttpsProxies.setQuicOverride",
166435	//   "parameterOrder": [
166436	//     "project",
166437	//     "targetHttpsProxy"
166438	//   ],
166439	//   "parameters": {
166440	//     "project": {
166441	//       "description": "Project ID for this request.",
166442	//       "location": "path",
166443	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
166444	//       "required": true,
166445	//       "type": "string"
166446	//     },
166447	//     "requestId": {
166448	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
166449	//       "location": "query",
166450	//       "type": "string"
166451	//     },
166452	//     "targetHttpsProxy": {
166453	//       "description": "Name of the TargetHttpsProxy resource to set the QUIC override policy for. The name should conform to RFC1035.",
166454	//       "location": "path",
166455	//       "required": true,
166456	//       "type": "string"
166457	//     }
166458	//   },
166459	//   "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setQuicOverride",
166460	//   "request": {
166461	//     "$ref": "TargetHttpsProxiesSetQuicOverrideRequest"
166462	//   },
166463	//   "response": {
166464	//     "$ref": "Operation"
166465	//   },
166466	//   "scopes": [
166467	//     "https://www.googleapis.com/auth/cloud-platform",
166468	//     "https://www.googleapis.com/auth/compute"
166469	//   ]
166470	// }
166471
166472}
166473
166474// method id "compute.targetHttpsProxies.setSslCertificates":
166475
166476type TargetHttpsProxiesSetSslCertificatesCall struct {
166477	s                                           *Service
166478	project                                     string
166479	targetHttpsProxy                            string
166480	targethttpsproxiessetsslcertificatesrequest *TargetHttpsProxiesSetSslCertificatesRequest
166481	urlParams_                                  gensupport.URLParams
166482	ctx_                                        context.Context
166483	header_                                     http.Header
166484}
166485
166486// SetSslCertificates: Replaces SslCertificates for TargetHttpsProxy.
166487func (r *TargetHttpsProxiesService) SetSslCertificates(project string, targetHttpsProxy string, targethttpsproxiessetsslcertificatesrequest *TargetHttpsProxiesSetSslCertificatesRequest) *TargetHttpsProxiesSetSslCertificatesCall {
166488	c := &TargetHttpsProxiesSetSslCertificatesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
166489	c.project = project
166490	c.targetHttpsProxy = targetHttpsProxy
166491	c.targethttpsproxiessetsslcertificatesrequest = targethttpsproxiessetsslcertificatesrequest
166492	return c
166493}
166494
166495// RequestId sets the optional parameter "requestId": An optional
166496// request ID to identify requests. Specify a unique request ID so that
166497// if you must retry your request, the server will know to ignore the
166498// request if it has already been completed.
166499//
166500// For example, consider a situation where you make an initial request
166501// and the request times out. If you make the request again with the
166502// same request ID, the server can check if original operation with the
166503// same request ID was received, and if so, will ignore the second
166504// request. This prevents clients from accidentally creating duplicate
166505// commitments.
166506//
166507// The request ID must be a valid UUID with the exception that zero UUID
166508// is not supported (00000000-0000-0000-0000-000000000000).
166509func (c *TargetHttpsProxiesSetSslCertificatesCall) RequestId(requestId string) *TargetHttpsProxiesSetSslCertificatesCall {
166510	c.urlParams_.Set("requestId", requestId)
166511	return c
166512}
166513
166514// Fields allows partial responses to be retrieved. See
166515// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
166516// for more information.
166517func (c *TargetHttpsProxiesSetSslCertificatesCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetSslCertificatesCall {
166518	c.urlParams_.Set("fields", googleapi.CombineFields(s))
166519	return c
166520}
166521
166522// Context sets the context to be used in this call's Do method. Any
166523// pending HTTP request will be aborted if the provided context is
166524// canceled.
166525func (c *TargetHttpsProxiesSetSslCertificatesCall) Context(ctx context.Context) *TargetHttpsProxiesSetSslCertificatesCall {
166526	c.ctx_ = ctx
166527	return c
166528}
166529
166530// Header returns an http.Header that can be modified by the caller to
166531// add HTTP headers to the request.
166532func (c *TargetHttpsProxiesSetSslCertificatesCall) Header() http.Header {
166533	if c.header_ == nil {
166534		c.header_ = make(http.Header)
166535	}
166536	return c.header_
166537}
166538
166539func (c *TargetHttpsProxiesSetSslCertificatesCall) doRequest(alt string) (*http.Response, error) {
166540	reqHeaders := make(http.Header)
166541	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
166542	for k, v := range c.header_ {
166543		reqHeaders[k] = v
166544	}
166545	reqHeaders.Set("User-Agent", c.s.userAgent())
166546	var body io.Reader = nil
166547	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxiessetsslcertificatesrequest)
166548	if err != nil {
166549		return nil, err
166550	}
166551	reqHeaders.Set("Content-Type", "application/json")
166552	c.urlParams_.Set("alt", alt)
166553	c.urlParams_.Set("prettyPrint", "false")
166554	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates")
166555	urls += "?" + c.urlParams_.Encode()
166556	req, err := http.NewRequest("POST", urls, body)
166557	if err != nil {
166558		return nil, err
166559	}
166560	req.Header = reqHeaders
166561	googleapi.Expand(req.URL, map[string]string{
166562		"project":          c.project,
166563		"targetHttpsProxy": c.targetHttpsProxy,
166564	})
166565	return gensupport.SendRequest(c.ctx_, c.s.client, req)
166566}
166567
166568// Do executes the "compute.targetHttpsProxies.setSslCertificates" call.
166569// Exactly one of *Operation or error will be non-nil. Any non-2xx
166570// status code is an error. Response headers are in either
166571// *Operation.ServerResponse.Header or (if a response was returned at
166572// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
166573// to check whether the returned error was because
166574// http.StatusNotModified was returned.
166575func (c *TargetHttpsProxiesSetSslCertificatesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
166576	gensupport.SetOptions(c.urlParams_, opts...)
166577	res, err := c.doRequest("json")
166578	if res != nil && res.StatusCode == http.StatusNotModified {
166579		if res.Body != nil {
166580			res.Body.Close()
166581		}
166582		return nil, &googleapi.Error{
166583			Code:   res.StatusCode,
166584			Header: res.Header,
166585		}
166586	}
166587	if err != nil {
166588		return nil, err
166589	}
166590	defer googleapi.CloseBody(res)
166591	if err := googleapi.CheckResponse(res); err != nil {
166592		return nil, err
166593	}
166594	ret := &Operation{
166595		ServerResponse: googleapi.ServerResponse{
166596			Header:         res.Header,
166597			HTTPStatusCode: res.StatusCode,
166598		},
166599	}
166600	target := &ret
166601	if err := gensupport.DecodeResponse(target, res); err != nil {
166602		return nil, err
166603	}
166604	return ret, nil
166605	// {
166606	//   "description": "Replaces SslCertificates for TargetHttpsProxy.",
166607	//   "httpMethod": "POST",
166608	//   "id": "compute.targetHttpsProxies.setSslCertificates",
166609	//   "parameterOrder": [
166610	//     "project",
166611	//     "targetHttpsProxy"
166612	//   ],
166613	//   "parameters": {
166614	//     "project": {
166615	//       "description": "Project ID for this request.",
166616	//       "location": "path",
166617	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
166618	//       "required": true,
166619	//       "type": "string"
166620	//     },
166621	//     "requestId": {
166622	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
166623	//       "location": "query",
166624	//       "type": "string"
166625	//     },
166626	//     "targetHttpsProxy": {
166627	//       "description": "Name of the TargetHttpsProxy resource to set an SslCertificates resource for.",
166628	//       "location": "path",
166629	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
166630	//       "required": true,
166631	//       "type": "string"
166632	//     }
166633	//   },
166634	//   "path": "projects/{project}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates",
166635	//   "request": {
166636	//     "$ref": "TargetHttpsProxiesSetSslCertificatesRequest"
166637	//   },
166638	//   "response": {
166639	//     "$ref": "Operation"
166640	//   },
166641	//   "scopes": [
166642	//     "https://www.googleapis.com/auth/cloud-platform",
166643	//     "https://www.googleapis.com/auth/compute"
166644	//   ]
166645	// }
166646
166647}
166648
166649// method id "compute.targetHttpsProxies.setSslPolicy":
166650
166651type TargetHttpsProxiesSetSslPolicyCall struct {
166652	s                  *Service
166653	project            string
166654	targetHttpsProxy   string
166655	sslpolicyreference *SslPolicyReference
166656	urlParams_         gensupport.URLParams
166657	ctx_               context.Context
166658	header_            http.Header
166659}
166660
166661// SetSslPolicy: Sets the SSL policy for TargetHttpsProxy. The SSL
166662// policy specifies the server-side support for SSL features. This
166663// affects connections between clients and the HTTPS proxy load
166664// balancer. They do not affect the connection between the load balancer
166665// and the backends.
166666func (r *TargetHttpsProxiesService) SetSslPolicy(project string, targetHttpsProxy string, sslpolicyreference *SslPolicyReference) *TargetHttpsProxiesSetSslPolicyCall {
166667	c := &TargetHttpsProxiesSetSslPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
166668	c.project = project
166669	c.targetHttpsProxy = targetHttpsProxy
166670	c.sslpolicyreference = sslpolicyreference
166671	return c
166672}
166673
166674// RequestId sets the optional parameter "requestId": An optional
166675// request ID to identify requests. Specify a unique request ID so that
166676// if you must retry your request, the server will know to ignore the
166677// request if it has already been completed.
166678//
166679// For example, consider a situation where you make an initial request
166680// and the request times out. If you make the request again with the
166681// same request ID, the server can check if original operation with the
166682// same request ID was received, and if so, will ignore the second
166683// request. This prevents clients from accidentally creating duplicate
166684// commitments.
166685//
166686// The request ID must be a valid UUID with the exception that zero UUID
166687// is not supported (00000000-0000-0000-0000-000000000000).
166688func (c *TargetHttpsProxiesSetSslPolicyCall) RequestId(requestId string) *TargetHttpsProxiesSetSslPolicyCall {
166689	c.urlParams_.Set("requestId", requestId)
166690	return c
166691}
166692
166693// Fields allows partial responses to be retrieved. See
166694// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
166695// for more information.
166696func (c *TargetHttpsProxiesSetSslPolicyCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetSslPolicyCall {
166697	c.urlParams_.Set("fields", googleapi.CombineFields(s))
166698	return c
166699}
166700
166701// Context sets the context to be used in this call's Do method. Any
166702// pending HTTP request will be aborted if the provided context is
166703// canceled.
166704func (c *TargetHttpsProxiesSetSslPolicyCall) Context(ctx context.Context) *TargetHttpsProxiesSetSslPolicyCall {
166705	c.ctx_ = ctx
166706	return c
166707}
166708
166709// Header returns an http.Header that can be modified by the caller to
166710// add HTTP headers to the request.
166711func (c *TargetHttpsProxiesSetSslPolicyCall) Header() http.Header {
166712	if c.header_ == nil {
166713		c.header_ = make(http.Header)
166714	}
166715	return c.header_
166716}
166717
166718func (c *TargetHttpsProxiesSetSslPolicyCall) doRequest(alt string) (*http.Response, error) {
166719	reqHeaders := make(http.Header)
166720	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
166721	for k, v := range c.header_ {
166722		reqHeaders[k] = v
166723	}
166724	reqHeaders.Set("User-Agent", c.s.userAgent())
166725	var body io.Reader = nil
166726	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicyreference)
166727	if err != nil {
166728		return nil, err
166729	}
166730	reqHeaders.Set("Content-Type", "application/json")
166731	c.urlParams_.Set("alt", alt)
166732	c.urlParams_.Set("prettyPrint", "false")
166733	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setSslPolicy")
166734	urls += "?" + c.urlParams_.Encode()
166735	req, err := http.NewRequest("POST", urls, body)
166736	if err != nil {
166737		return nil, err
166738	}
166739	req.Header = reqHeaders
166740	googleapi.Expand(req.URL, map[string]string{
166741		"project":          c.project,
166742		"targetHttpsProxy": c.targetHttpsProxy,
166743	})
166744	return gensupport.SendRequest(c.ctx_, c.s.client, req)
166745}
166746
166747// Do executes the "compute.targetHttpsProxies.setSslPolicy" call.
166748// Exactly one of *Operation or error will be non-nil. Any non-2xx
166749// status code is an error. Response headers are in either
166750// *Operation.ServerResponse.Header or (if a response was returned at
166751// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
166752// to check whether the returned error was because
166753// http.StatusNotModified was returned.
166754func (c *TargetHttpsProxiesSetSslPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
166755	gensupport.SetOptions(c.urlParams_, opts...)
166756	res, err := c.doRequest("json")
166757	if res != nil && res.StatusCode == http.StatusNotModified {
166758		if res.Body != nil {
166759			res.Body.Close()
166760		}
166761		return nil, &googleapi.Error{
166762			Code:   res.StatusCode,
166763			Header: res.Header,
166764		}
166765	}
166766	if err != nil {
166767		return nil, err
166768	}
166769	defer googleapi.CloseBody(res)
166770	if err := googleapi.CheckResponse(res); err != nil {
166771		return nil, err
166772	}
166773	ret := &Operation{
166774		ServerResponse: googleapi.ServerResponse{
166775			Header:         res.Header,
166776			HTTPStatusCode: res.StatusCode,
166777		},
166778	}
166779	target := &ret
166780	if err := gensupport.DecodeResponse(target, res); err != nil {
166781		return nil, err
166782	}
166783	return ret, nil
166784	// {
166785	//   "description": "Sets the SSL policy for TargetHttpsProxy. The SSL policy specifies the server-side support for SSL features. This affects connections between clients and the HTTPS proxy load balancer. They do not affect the connection between the load balancer and the backends.",
166786	//   "httpMethod": "POST",
166787	//   "id": "compute.targetHttpsProxies.setSslPolicy",
166788	//   "parameterOrder": [
166789	//     "project",
166790	//     "targetHttpsProxy"
166791	//   ],
166792	//   "parameters": {
166793	//     "project": {
166794	//       "description": "Project ID for this request.",
166795	//       "location": "path",
166796	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
166797	//       "required": true,
166798	//       "type": "string"
166799	//     },
166800	//     "requestId": {
166801	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
166802	//       "location": "query",
166803	//       "type": "string"
166804	//     },
166805	//     "targetHttpsProxy": {
166806	//       "description": "Name of the TargetHttpsProxy resource whose SSL policy is to be set. The name must be 1-63 characters long, and comply with RFC1035.",
166807	//       "location": "path",
166808	//       "required": true,
166809	//       "type": "string"
166810	//     }
166811	//   },
166812	//   "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setSslPolicy",
166813	//   "request": {
166814	//     "$ref": "SslPolicyReference"
166815	//   },
166816	//   "response": {
166817	//     "$ref": "Operation"
166818	//   },
166819	//   "scopes": [
166820	//     "https://www.googleapis.com/auth/cloud-platform",
166821	//     "https://www.googleapis.com/auth/compute"
166822	//   ]
166823	// }
166824
166825}
166826
166827// method id "compute.targetHttpsProxies.setUrlMap":
166828
166829type TargetHttpsProxiesSetUrlMapCall struct {
166830	s                *Service
166831	project          string
166832	targetHttpsProxy string
166833	urlmapreference  *UrlMapReference
166834	urlParams_       gensupport.URLParams
166835	ctx_             context.Context
166836	header_          http.Header
166837}
166838
166839// SetUrlMap: Changes the URL map for TargetHttpsProxy.
166840func (r *TargetHttpsProxiesService) SetUrlMap(project string, targetHttpsProxy string, urlmapreference *UrlMapReference) *TargetHttpsProxiesSetUrlMapCall {
166841	c := &TargetHttpsProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)}
166842	c.project = project
166843	c.targetHttpsProxy = targetHttpsProxy
166844	c.urlmapreference = urlmapreference
166845	return c
166846}
166847
166848// RequestId sets the optional parameter "requestId": An optional
166849// request ID to identify requests. Specify a unique request ID so that
166850// if you must retry your request, the server will know to ignore the
166851// request if it has already been completed.
166852//
166853// For example, consider a situation where you make an initial request
166854// and the request times out. If you make the request again with the
166855// same request ID, the server can check if original operation with the
166856// same request ID was received, and if so, will ignore the second
166857// request. This prevents clients from accidentally creating duplicate
166858// commitments.
166859//
166860// The request ID must be a valid UUID with the exception that zero UUID
166861// is not supported (00000000-0000-0000-0000-000000000000).
166862func (c *TargetHttpsProxiesSetUrlMapCall) RequestId(requestId string) *TargetHttpsProxiesSetUrlMapCall {
166863	c.urlParams_.Set("requestId", requestId)
166864	return c
166865}
166866
166867// Fields allows partial responses to be retrieved. See
166868// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
166869// for more information.
166870func (c *TargetHttpsProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetUrlMapCall {
166871	c.urlParams_.Set("fields", googleapi.CombineFields(s))
166872	return c
166873}
166874
166875// Context sets the context to be used in this call's Do method. Any
166876// pending HTTP request will be aborted if the provided context is
166877// canceled.
166878func (c *TargetHttpsProxiesSetUrlMapCall) Context(ctx context.Context) *TargetHttpsProxiesSetUrlMapCall {
166879	c.ctx_ = ctx
166880	return c
166881}
166882
166883// Header returns an http.Header that can be modified by the caller to
166884// add HTTP headers to the request.
166885func (c *TargetHttpsProxiesSetUrlMapCall) Header() http.Header {
166886	if c.header_ == nil {
166887		c.header_ = make(http.Header)
166888	}
166889	return c.header_
166890}
166891
166892func (c *TargetHttpsProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, error) {
166893	reqHeaders := make(http.Header)
166894	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
166895	for k, v := range c.header_ {
166896		reqHeaders[k] = v
166897	}
166898	reqHeaders.Set("User-Agent", c.s.userAgent())
166899	var body io.Reader = nil
166900	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapreference)
166901	if err != nil {
166902		return nil, err
166903	}
166904	reqHeaders.Set("Content-Type", "application/json")
166905	c.urlParams_.Set("alt", alt)
166906	c.urlParams_.Set("prettyPrint", "false")
166907	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap")
166908	urls += "?" + c.urlParams_.Encode()
166909	req, err := http.NewRequest("POST", urls, body)
166910	if err != nil {
166911		return nil, err
166912	}
166913	req.Header = reqHeaders
166914	googleapi.Expand(req.URL, map[string]string{
166915		"project":          c.project,
166916		"targetHttpsProxy": c.targetHttpsProxy,
166917	})
166918	return gensupport.SendRequest(c.ctx_, c.s.client, req)
166919}
166920
166921// Do executes the "compute.targetHttpsProxies.setUrlMap" call.
166922// Exactly one of *Operation or error will be non-nil. Any non-2xx
166923// status code is an error. Response headers are in either
166924// *Operation.ServerResponse.Header or (if a response was returned at
166925// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
166926// to check whether the returned error was because
166927// http.StatusNotModified was returned.
166928func (c *TargetHttpsProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
166929	gensupport.SetOptions(c.urlParams_, opts...)
166930	res, err := c.doRequest("json")
166931	if res != nil && res.StatusCode == http.StatusNotModified {
166932		if res.Body != nil {
166933			res.Body.Close()
166934		}
166935		return nil, &googleapi.Error{
166936			Code:   res.StatusCode,
166937			Header: res.Header,
166938		}
166939	}
166940	if err != nil {
166941		return nil, err
166942	}
166943	defer googleapi.CloseBody(res)
166944	if err := googleapi.CheckResponse(res); err != nil {
166945		return nil, err
166946	}
166947	ret := &Operation{
166948		ServerResponse: googleapi.ServerResponse{
166949			Header:         res.Header,
166950			HTTPStatusCode: res.StatusCode,
166951		},
166952	}
166953	target := &ret
166954	if err := gensupport.DecodeResponse(target, res); err != nil {
166955		return nil, err
166956	}
166957	return ret, nil
166958	// {
166959	//   "description": "Changes the URL map for TargetHttpsProxy.",
166960	//   "httpMethod": "POST",
166961	//   "id": "compute.targetHttpsProxies.setUrlMap",
166962	//   "parameterOrder": [
166963	//     "project",
166964	//     "targetHttpsProxy"
166965	//   ],
166966	//   "parameters": {
166967	//     "project": {
166968	//       "description": "Project ID for this request.",
166969	//       "location": "path",
166970	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
166971	//       "required": true,
166972	//       "type": "string"
166973	//     },
166974	//     "requestId": {
166975	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
166976	//       "location": "query",
166977	//       "type": "string"
166978	//     },
166979	//     "targetHttpsProxy": {
166980	//       "description": "Name of the TargetHttpsProxy resource whose URL map is to be set.",
166981	//       "location": "path",
166982	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
166983	//       "required": true,
166984	//       "type": "string"
166985	//     }
166986	//   },
166987	//   "path": "projects/{project}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap",
166988	//   "request": {
166989	//     "$ref": "UrlMapReference"
166990	//   },
166991	//   "response": {
166992	//     "$ref": "Operation"
166993	//   },
166994	//   "scopes": [
166995	//     "https://www.googleapis.com/auth/cloud-platform",
166996	//     "https://www.googleapis.com/auth/compute"
166997	//   ]
166998	// }
166999
167000}
167001
167002// method id "compute.targetHttpsProxies.testIamPermissions":
167003
167004type TargetHttpsProxiesTestIamPermissionsCall struct {
167005	s                      *Service
167006	project                string
167007	resource               string
167008	testpermissionsrequest *TestPermissionsRequest
167009	urlParams_             gensupport.URLParams
167010	ctx_                   context.Context
167011	header_                http.Header
167012}
167013
167014// TestIamPermissions: Returns permissions that a caller has on the
167015// specified resource.
167016func (r *TargetHttpsProxiesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *TargetHttpsProxiesTestIamPermissionsCall {
167017	c := &TargetHttpsProxiesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
167018	c.project = project
167019	c.resource = resource
167020	c.testpermissionsrequest = testpermissionsrequest
167021	return c
167022}
167023
167024// Fields allows partial responses to be retrieved. See
167025// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
167026// for more information.
167027func (c *TargetHttpsProxiesTestIamPermissionsCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesTestIamPermissionsCall {
167028	c.urlParams_.Set("fields", googleapi.CombineFields(s))
167029	return c
167030}
167031
167032// Context sets the context to be used in this call's Do method. Any
167033// pending HTTP request will be aborted if the provided context is
167034// canceled.
167035func (c *TargetHttpsProxiesTestIamPermissionsCall) Context(ctx context.Context) *TargetHttpsProxiesTestIamPermissionsCall {
167036	c.ctx_ = ctx
167037	return c
167038}
167039
167040// Header returns an http.Header that can be modified by the caller to
167041// add HTTP headers to the request.
167042func (c *TargetHttpsProxiesTestIamPermissionsCall) Header() http.Header {
167043	if c.header_ == nil {
167044		c.header_ = make(http.Header)
167045	}
167046	return c.header_
167047}
167048
167049func (c *TargetHttpsProxiesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
167050	reqHeaders := make(http.Header)
167051	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
167052	for k, v := range c.header_ {
167053		reqHeaders[k] = v
167054	}
167055	reqHeaders.Set("User-Agent", c.s.userAgent())
167056	var body io.Reader = nil
167057	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
167058	if err != nil {
167059		return nil, err
167060	}
167061	reqHeaders.Set("Content-Type", "application/json")
167062	c.urlParams_.Set("alt", alt)
167063	c.urlParams_.Set("prettyPrint", "false")
167064	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpsProxies/{resource}/testIamPermissions")
167065	urls += "?" + c.urlParams_.Encode()
167066	req, err := http.NewRequest("POST", urls, body)
167067	if err != nil {
167068		return nil, err
167069	}
167070	req.Header = reqHeaders
167071	googleapi.Expand(req.URL, map[string]string{
167072		"project":  c.project,
167073		"resource": c.resource,
167074	})
167075	return gensupport.SendRequest(c.ctx_, c.s.client, req)
167076}
167077
167078// Do executes the "compute.targetHttpsProxies.testIamPermissions" call.
167079// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
167080// non-2xx status code is an error. Response headers are in either
167081// *TestPermissionsResponse.ServerResponse.Header or (if a response was
167082// returned at all) in error.(*googleapi.Error).Header. Use
167083// googleapi.IsNotModified to check whether the returned error was
167084// because http.StatusNotModified was returned.
167085func (c *TargetHttpsProxiesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
167086	gensupport.SetOptions(c.urlParams_, opts...)
167087	res, err := c.doRequest("json")
167088	if res != nil && res.StatusCode == http.StatusNotModified {
167089		if res.Body != nil {
167090			res.Body.Close()
167091		}
167092		return nil, &googleapi.Error{
167093			Code:   res.StatusCode,
167094			Header: res.Header,
167095		}
167096	}
167097	if err != nil {
167098		return nil, err
167099	}
167100	defer googleapi.CloseBody(res)
167101	if err := googleapi.CheckResponse(res); err != nil {
167102		return nil, err
167103	}
167104	ret := &TestPermissionsResponse{
167105		ServerResponse: googleapi.ServerResponse{
167106			Header:         res.Header,
167107			HTTPStatusCode: res.StatusCode,
167108		},
167109	}
167110	target := &ret
167111	if err := gensupport.DecodeResponse(target, res); err != nil {
167112		return nil, err
167113	}
167114	return ret, nil
167115	// {
167116	//   "description": "Returns permissions that a caller has on the specified resource.",
167117	//   "httpMethod": "POST",
167118	//   "id": "compute.targetHttpsProxies.testIamPermissions",
167119	//   "parameterOrder": [
167120	//     "project",
167121	//     "resource"
167122	//   ],
167123	//   "parameters": {
167124	//     "project": {
167125	//       "description": "Project ID for this request.",
167126	//       "location": "path",
167127	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
167128	//       "required": true,
167129	//       "type": "string"
167130	//     },
167131	//     "resource": {
167132	//       "description": "Name or id of the resource for this request.",
167133	//       "location": "path",
167134	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
167135	//       "required": true,
167136	//       "type": "string"
167137	//     }
167138	//   },
167139	//   "path": "projects/{project}/global/targetHttpsProxies/{resource}/testIamPermissions",
167140	//   "request": {
167141	//     "$ref": "TestPermissionsRequest"
167142	//   },
167143	//   "response": {
167144	//     "$ref": "TestPermissionsResponse"
167145	//   },
167146	//   "scopes": [
167147	//     "https://www.googleapis.com/auth/cloud-platform",
167148	//     "https://www.googleapis.com/auth/compute",
167149	//     "https://www.googleapis.com/auth/compute.readonly"
167150	//   ]
167151	// }
167152
167153}
167154
167155// method id "compute.targetInstances.aggregatedList":
167156
167157type TargetInstancesAggregatedListCall struct {
167158	s            *Service
167159	project      string
167160	urlParams_   gensupport.URLParams
167161	ifNoneMatch_ string
167162	ctx_         context.Context
167163	header_      http.Header
167164}
167165
167166// AggregatedList: Retrieves an aggregated list of target instances.
167167// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/aggregatedList
167168func (r *TargetInstancesService) AggregatedList(project string) *TargetInstancesAggregatedListCall {
167169	c := &TargetInstancesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
167170	c.project = project
167171	return c
167172}
167173
167174// Filter sets the optional parameter "filter": A filter expression that
167175// filters resources listed in the response. The expression must specify
167176// the field name, a comparison operator, and the value that you want to
167177// use for filtering. The value must be a string, a number, or a
167178// boolean. The comparison operator must be either `=`, `!=`, `>`, or
167179// `<`.
167180//
167181// For example, if you are filtering Compute Engine instances, you can
167182// exclude instances named `example-instance` by specifying `name !=
167183// example-instance`.
167184//
167185// You can also filter nested fields. For example, you could specify
167186// `scheduling.automaticRestart = false` to include instances only if
167187// they are not scheduled for automatic restarts. You can use filtering
167188// on nested fields to filter based on resource labels.
167189//
167190// To filter on multiple expressions, provide each separate expression
167191// within parentheses. For example: ``` (scheduling.automaticRestart =
167192// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
167193// is an `AND` expression. However, you can include `AND` and `OR`
167194// expressions explicitly. For example: ``` (cpuPlatform = "Intel
167195// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
167196// (scheduling.automaticRestart = true) ```
167197func (c *TargetInstancesAggregatedListCall) Filter(filter string) *TargetInstancesAggregatedListCall {
167198	c.urlParams_.Set("filter", filter)
167199	return c
167200}
167201
167202// IncludeAllScopes sets the optional parameter "includeAllScopes":
167203// Indicates whether every visible scope for each scope type (zone,
167204// region, global) should be included in the response. For new resource
167205// types added after this field, the flag has no effect as new resource
167206// types will always include every visible scope for each scope type in
167207// response. For resource types which predate this field, if this flag
167208// is omitted or false, only scopes of the scope types where the
167209// resource type is expected to be found will be included.
167210func (c *TargetInstancesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetInstancesAggregatedListCall {
167211	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
167212	return c
167213}
167214
167215// MaxResults sets the optional parameter "maxResults": The maximum
167216// number of results per page that should be returned. If the number of
167217// available results is larger than `maxResults`, Compute Engine returns
167218// a `nextPageToken` that can be used to get the next page of results in
167219// subsequent list requests. Acceptable values are `0` to `500`,
167220// inclusive. (Default: `500`)
167221func (c *TargetInstancesAggregatedListCall) MaxResults(maxResults int64) *TargetInstancesAggregatedListCall {
167222	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
167223	return c
167224}
167225
167226// OrderBy sets the optional parameter "orderBy": Sorts list results by
167227// a certain order. By default, results are returned in alphanumerical
167228// order based on the resource name.
167229//
167230// You can also sort results in descending order based on the creation
167231// timestamp using `orderBy="creationTimestamp desc". This sorts
167232// results based on the `creationTimestamp` field in reverse
167233// chronological order (newest result first). Use this to sort resources
167234// like operations so that the newest operation is returned
167235// first.
167236//
167237// Currently, only sorting by `name` or `creationTimestamp desc` is
167238// supported.
167239func (c *TargetInstancesAggregatedListCall) OrderBy(orderBy string) *TargetInstancesAggregatedListCall {
167240	c.urlParams_.Set("orderBy", orderBy)
167241	return c
167242}
167243
167244// PageToken sets the optional parameter "pageToken": Specifies a page
167245// token to use. Set `pageToken` to the `nextPageToken` returned by a
167246// previous list request to get the next page of results.
167247func (c *TargetInstancesAggregatedListCall) PageToken(pageToken string) *TargetInstancesAggregatedListCall {
167248	c.urlParams_.Set("pageToken", pageToken)
167249	return c
167250}
167251
167252// ReturnPartialSuccess sets the optional parameter
167253// "returnPartialSuccess": Opt-in for partial success behavior which
167254// provides partial results in case of failure. The default value is
167255// false.
167256func (c *TargetInstancesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetInstancesAggregatedListCall {
167257	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
167258	return c
167259}
167260
167261// Fields allows partial responses to be retrieved. See
167262// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
167263// for more information.
167264func (c *TargetInstancesAggregatedListCall) Fields(s ...googleapi.Field) *TargetInstancesAggregatedListCall {
167265	c.urlParams_.Set("fields", googleapi.CombineFields(s))
167266	return c
167267}
167268
167269// IfNoneMatch sets the optional parameter which makes the operation
167270// fail if the object's ETag matches the given value. This is useful for
167271// getting updates only after the object has changed since the last
167272// request. Use googleapi.IsNotModified to check whether the response
167273// error from Do is the result of In-None-Match.
167274func (c *TargetInstancesAggregatedListCall) IfNoneMatch(entityTag string) *TargetInstancesAggregatedListCall {
167275	c.ifNoneMatch_ = entityTag
167276	return c
167277}
167278
167279// Context sets the context to be used in this call's Do method. Any
167280// pending HTTP request will be aborted if the provided context is
167281// canceled.
167282func (c *TargetInstancesAggregatedListCall) Context(ctx context.Context) *TargetInstancesAggregatedListCall {
167283	c.ctx_ = ctx
167284	return c
167285}
167286
167287// Header returns an http.Header that can be modified by the caller to
167288// add HTTP headers to the request.
167289func (c *TargetInstancesAggregatedListCall) Header() http.Header {
167290	if c.header_ == nil {
167291		c.header_ = make(http.Header)
167292	}
167293	return c.header_
167294}
167295
167296func (c *TargetInstancesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
167297	reqHeaders := make(http.Header)
167298	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
167299	for k, v := range c.header_ {
167300		reqHeaders[k] = v
167301	}
167302	reqHeaders.Set("User-Agent", c.s.userAgent())
167303	if c.ifNoneMatch_ != "" {
167304		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
167305	}
167306	var body io.Reader = nil
167307	c.urlParams_.Set("alt", alt)
167308	c.urlParams_.Set("prettyPrint", "false")
167309	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/targetInstances")
167310	urls += "?" + c.urlParams_.Encode()
167311	req, err := http.NewRequest("GET", urls, body)
167312	if err != nil {
167313		return nil, err
167314	}
167315	req.Header = reqHeaders
167316	googleapi.Expand(req.URL, map[string]string{
167317		"project": c.project,
167318	})
167319	return gensupport.SendRequest(c.ctx_, c.s.client, req)
167320}
167321
167322// Do executes the "compute.targetInstances.aggregatedList" call.
167323// Exactly one of *TargetInstanceAggregatedList or error will be
167324// non-nil. Any non-2xx status code is an error. Response headers are in
167325// either *TargetInstanceAggregatedList.ServerResponse.Header or (if a
167326// response was returned at all) in error.(*googleapi.Error).Header. Use
167327// googleapi.IsNotModified to check whether the returned error was
167328// because http.StatusNotModified was returned.
167329func (c *TargetInstancesAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetInstanceAggregatedList, error) {
167330	gensupport.SetOptions(c.urlParams_, opts...)
167331	res, err := c.doRequest("json")
167332	if res != nil && res.StatusCode == http.StatusNotModified {
167333		if res.Body != nil {
167334			res.Body.Close()
167335		}
167336		return nil, &googleapi.Error{
167337			Code:   res.StatusCode,
167338			Header: res.Header,
167339		}
167340	}
167341	if err != nil {
167342		return nil, err
167343	}
167344	defer googleapi.CloseBody(res)
167345	if err := googleapi.CheckResponse(res); err != nil {
167346		return nil, err
167347	}
167348	ret := &TargetInstanceAggregatedList{
167349		ServerResponse: googleapi.ServerResponse{
167350			Header:         res.Header,
167351			HTTPStatusCode: res.StatusCode,
167352		},
167353	}
167354	target := &ret
167355	if err := gensupport.DecodeResponse(target, res); err != nil {
167356		return nil, err
167357	}
167358	return ret, nil
167359	// {
167360	//   "description": "Retrieves an aggregated list of target instances.",
167361	//   "httpMethod": "GET",
167362	//   "id": "compute.targetInstances.aggregatedList",
167363	//   "parameterOrder": [
167364	//     "project"
167365	//   ],
167366	//   "parameters": {
167367	//     "filter": {
167368	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
167369	//       "location": "query",
167370	//       "type": "string"
167371	//     },
167372	//     "includeAllScopes": {
167373	//       "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.",
167374	//       "location": "query",
167375	//       "type": "boolean"
167376	//     },
167377	//     "maxResults": {
167378	//       "default": "500",
167379	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
167380	//       "format": "uint32",
167381	//       "location": "query",
167382	//       "minimum": "0",
167383	//       "type": "integer"
167384	//     },
167385	//     "orderBy": {
167386	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
167387	//       "location": "query",
167388	//       "type": "string"
167389	//     },
167390	//     "pageToken": {
167391	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
167392	//       "location": "query",
167393	//       "type": "string"
167394	//     },
167395	//     "project": {
167396	//       "description": "Project ID for this request.",
167397	//       "location": "path",
167398	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
167399	//       "required": true,
167400	//       "type": "string"
167401	//     },
167402	//     "returnPartialSuccess": {
167403	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
167404	//       "location": "query",
167405	//       "type": "boolean"
167406	//     }
167407	//   },
167408	//   "path": "projects/{project}/aggregated/targetInstances",
167409	//   "response": {
167410	//     "$ref": "TargetInstanceAggregatedList"
167411	//   },
167412	//   "scopes": [
167413	//     "https://www.googleapis.com/auth/cloud-platform",
167414	//     "https://www.googleapis.com/auth/compute",
167415	//     "https://www.googleapis.com/auth/compute.readonly"
167416	//   ]
167417	// }
167418
167419}
167420
167421// Pages invokes f for each page of results.
167422// A non-nil error returned from f will halt the iteration.
167423// The provided context supersedes any context provided to the Context method.
167424func (c *TargetInstancesAggregatedListCall) Pages(ctx context.Context, f func(*TargetInstanceAggregatedList) error) error {
167425	c.ctx_ = ctx
167426	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
167427	for {
167428		x, err := c.Do()
167429		if err != nil {
167430			return err
167431		}
167432		if err := f(x); err != nil {
167433			return err
167434		}
167435		if x.NextPageToken == "" {
167436			return nil
167437		}
167438		c.PageToken(x.NextPageToken)
167439	}
167440}
167441
167442// method id "compute.targetInstances.delete":
167443
167444type TargetInstancesDeleteCall struct {
167445	s              *Service
167446	project        string
167447	zone           string
167448	targetInstance string
167449	urlParams_     gensupport.URLParams
167450	ctx_           context.Context
167451	header_        http.Header
167452}
167453
167454// Delete: Deletes the specified TargetInstance resource.
167455// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/delete
167456func (r *TargetInstancesService) Delete(project string, zone string, targetInstance string) *TargetInstancesDeleteCall {
167457	c := &TargetInstancesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
167458	c.project = project
167459	c.zone = zone
167460	c.targetInstance = targetInstance
167461	return c
167462}
167463
167464// RequestId sets the optional parameter "requestId": An optional
167465// request ID to identify requests. Specify a unique request ID so that
167466// if you must retry your request, the server will know to ignore the
167467// request if it has already been completed.
167468//
167469// For example, consider a situation where you make an initial request
167470// and the request times out. If you make the request again with the
167471// same request ID, the server can check if original operation with the
167472// same request ID was received, and if so, will ignore the second
167473// request. This prevents clients from accidentally creating duplicate
167474// commitments.
167475//
167476// The request ID must be a valid UUID with the exception that zero UUID
167477// is not supported (00000000-0000-0000-0000-000000000000).
167478func (c *TargetInstancesDeleteCall) RequestId(requestId string) *TargetInstancesDeleteCall {
167479	c.urlParams_.Set("requestId", requestId)
167480	return c
167481}
167482
167483// Fields allows partial responses to be retrieved. See
167484// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
167485// for more information.
167486func (c *TargetInstancesDeleteCall) Fields(s ...googleapi.Field) *TargetInstancesDeleteCall {
167487	c.urlParams_.Set("fields", googleapi.CombineFields(s))
167488	return c
167489}
167490
167491// Context sets the context to be used in this call's Do method. Any
167492// pending HTTP request will be aborted if the provided context is
167493// canceled.
167494func (c *TargetInstancesDeleteCall) Context(ctx context.Context) *TargetInstancesDeleteCall {
167495	c.ctx_ = ctx
167496	return c
167497}
167498
167499// Header returns an http.Header that can be modified by the caller to
167500// add HTTP headers to the request.
167501func (c *TargetInstancesDeleteCall) Header() http.Header {
167502	if c.header_ == nil {
167503		c.header_ = make(http.Header)
167504	}
167505	return c.header_
167506}
167507
167508func (c *TargetInstancesDeleteCall) doRequest(alt string) (*http.Response, error) {
167509	reqHeaders := make(http.Header)
167510	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
167511	for k, v := range c.header_ {
167512		reqHeaders[k] = v
167513	}
167514	reqHeaders.Set("User-Agent", c.s.userAgent())
167515	var body io.Reader = nil
167516	c.urlParams_.Set("alt", alt)
167517	c.urlParams_.Set("prettyPrint", "false")
167518	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/targetInstances/{targetInstance}")
167519	urls += "?" + c.urlParams_.Encode()
167520	req, err := http.NewRequest("DELETE", urls, body)
167521	if err != nil {
167522		return nil, err
167523	}
167524	req.Header = reqHeaders
167525	googleapi.Expand(req.URL, map[string]string{
167526		"project":        c.project,
167527		"zone":           c.zone,
167528		"targetInstance": c.targetInstance,
167529	})
167530	return gensupport.SendRequest(c.ctx_, c.s.client, req)
167531}
167532
167533// Do executes the "compute.targetInstances.delete" call.
167534// Exactly one of *Operation or error will be non-nil. Any non-2xx
167535// status code is an error. Response headers are in either
167536// *Operation.ServerResponse.Header or (if a response was returned at
167537// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
167538// to check whether the returned error was because
167539// http.StatusNotModified was returned.
167540func (c *TargetInstancesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
167541	gensupport.SetOptions(c.urlParams_, opts...)
167542	res, err := c.doRequest("json")
167543	if res != nil && res.StatusCode == http.StatusNotModified {
167544		if res.Body != nil {
167545			res.Body.Close()
167546		}
167547		return nil, &googleapi.Error{
167548			Code:   res.StatusCode,
167549			Header: res.Header,
167550		}
167551	}
167552	if err != nil {
167553		return nil, err
167554	}
167555	defer googleapi.CloseBody(res)
167556	if err := googleapi.CheckResponse(res); err != nil {
167557		return nil, err
167558	}
167559	ret := &Operation{
167560		ServerResponse: googleapi.ServerResponse{
167561			Header:         res.Header,
167562			HTTPStatusCode: res.StatusCode,
167563		},
167564	}
167565	target := &ret
167566	if err := gensupport.DecodeResponse(target, res); err != nil {
167567		return nil, err
167568	}
167569	return ret, nil
167570	// {
167571	//   "description": "Deletes the specified TargetInstance resource.",
167572	//   "httpMethod": "DELETE",
167573	//   "id": "compute.targetInstances.delete",
167574	//   "parameterOrder": [
167575	//     "project",
167576	//     "zone",
167577	//     "targetInstance"
167578	//   ],
167579	//   "parameters": {
167580	//     "project": {
167581	//       "description": "Project ID for this request.",
167582	//       "location": "path",
167583	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
167584	//       "required": true,
167585	//       "type": "string"
167586	//     },
167587	//     "requestId": {
167588	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
167589	//       "location": "query",
167590	//       "type": "string"
167591	//     },
167592	//     "targetInstance": {
167593	//       "description": "Name of the TargetInstance resource to delete.",
167594	//       "location": "path",
167595	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
167596	//       "required": true,
167597	//       "type": "string"
167598	//     },
167599	//     "zone": {
167600	//       "description": "Name of the zone scoping this request.",
167601	//       "location": "path",
167602	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
167603	//       "required": true,
167604	//       "type": "string"
167605	//     }
167606	//   },
167607	//   "path": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}",
167608	//   "response": {
167609	//     "$ref": "Operation"
167610	//   },
167611	//   "scopes": [
167612	//     "https://www.googleapis.com/auth/cloud-platform",
167613	//     "https://www.googleapis.com/auth/compute"
167614	//   ]
167615	// }
167616
167617}
167618
167619// method id "compute.targetInstances.get":
167620
167621type TargetInstancesGetCall struct {
167622	s              *Service
167623	project        string
167624	zone           string
167625	targetInstance string
167626	urlParams_     gensupport.URLParams
167627	ifNoneMatch_   string
167628	ctx_           context.Context
167629	header_        http.Header
167630}
167631
167632// Get: Returns the specified TargetInstance resource. Gets a list of
167633// available target instances by making a list() request.
167634// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/get
167635func (r *TargetInstancesService) Get(project string, zone string, targetInstance string) *TargetInstancesGetCall {
167636	c := &TargetInstancesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
167637	c.project = project
167638	c.zone = zone
167639	c.targetInstance = targetInstance
167640	return c
167641}
167642
167643// Fields allows partial responses to be retrieved. See
167644// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
167645// for more information.
167646func (c *TargetInstancesGetCall) Fields(s ...googleapi.Field) *TargetInstancesGetCall {
167647	c.urlParams_.Set("fields", googleapi.CombineFields(s))
167648	return c
167649}
167650
167651// IfNoneMatch sets the optional parameter which makes the operation
167652// fail if the object's ETag matches the given value. This is useful for
167653// getting updates only after the object has changed since the last
167654// request. Use googleapi.IsNotModified to check whether the response
167655// error from Do is the result of In-None-Match.
167656func (c *TargetInstancesGetCall) IfNoneMatch(entityTag string) *TargetInstancesGetCall {
167657	c.ifNoneMatch_ = entityTag
167658	return c
167659}
167660
167661// Context sets the context to be used in this call's Do method. Any
167662// pending HTTP request will be aborted if the provided context is
167663// canceled.
167664func (c *TargetInstancesGetCall) Context(ctx context.Context) *TargetInstancesGetCall {
167665	c.ctx_ = ctx
167666	return c
167667}
167668
167669// Header returns an http.Header that can be modified by the caller to
167670// add HTTP headers to the request.
167671func (c *TargetInstancesGetCall) Header() http.Header {
167672	if c.header_ == nil {
167673		c.header_ = make(http.Header)
167674	}
167675	return c.header_
167676}
167677
167678func (c *TargetInstancesGetCall) doRequest(alt string) (*http.Response, error) {
167679	reqHeaders := make(http.Header)
167680	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
167681	for k, v := range c.header_ {
167682		reqHeaders[k] = v
167683	}
167684	reqHeaders.Set("User-Agent", c.s.userAgent())
167685	if c.ifNoneMatch_ != "" {
167686		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
167687	}
167688	var body io.Reader = nil
167689	c.urlParams_.Set("alt", alt)
167690	c.urlParams_.Set("prettyPrint", "false")
167691	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/targetInstances/{targetInstance}")
167692	urls += "?" + c.urlParams_.Encode()
167693	req, err := http.NewRequest("GET", urls, body)
167694	if err != nil {
167695		return nil, err
167696	}
167697	req.Header = reqHeaders
167698	googleapi.Expand(req.URL, map[string]string{
167699		"project":        c.project,
167700		"zone":           c.zone,
167701		"targetInstance": c.targetInstance,
167702	})
167703	return gensupport.SendRequest(c.ctx_, c.s.client, req)
167704}
167705
167706// Do executes the "compute.targetInstances.get" call.
167707// Exactly one of *TargetInstance or error will be non-nil. Any non-2xx
167708// status code is an error. Response headers are in either
167709// *TargetInstance.ServerResponse.Header or (if a response was returned
167710// at all) in error.(*googleapi.Error).Header. Use
167711// googleapi.IsNotModified to check whether the returned error was
167712// because http.StatusNotModified was returned.
167713func (c *TargetInstancesGetCall) Do(opts ...googleapi.CallOption) (*TargetInstance, error) {
167714	gensupport.SetOptions(c.urlParams_, opts...)
167715	res, err := c.doRequest("json")
167716	if res != nil && res.StatusCode == http.StatusNotModified {
167717		if res.Body != nil {
167718			res.Body.Close()
167719		}
167720		return nil, &googleapi.Error{
167721			Code:   res.StatusCode,
167722			Header: res.Header,
167723		}
167724	}
167725	if err != nil {
167726		return nil, err
167727	}
167728	defer googleapi.CloseBody(res)
167729	if err := googleapi.CheckResponse(res); err != nil {
167730		return nil, err
167731	}
167732	ret := &TargetInstance{
167733		ServerResponse: googleapi.ServerResponse{
167734			Header:         res.Header,
167735			HTTPStatusCode: res.StatusCode,
167736		},
167737	}
167738	target := &ret
167739	if err := gensupport.DecodeResponse(target, res); err != nil {
167740		return nil, err
167741	}
167742	return ret, nil
167743	// {
167744	//   "description": "Returns the specified TargetInstance resource. Gets a list of available target instances by making a list() request.",
167745	//   "httpMethod": "GET",
167746	//   "id": "compute.targetInstances.get",
167747	//   "parameterOrder": [
167748	//     "project",
167749	//     "zone",
167750	//     "targetInstance"
167751	//   ],
167752	//   "parameters": {
167753	//     "project": {
167754	//       "description": "Project ID for this request.",
167755	//       "location": "path",
167756	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
167757	//       "required": true,
167758	//       "type": "string"
167759	//     },
167760	//     "targetInstance": {
167761	//       "description": "Name of the TargetInstance resource to return.",
167762	//       "location": "path",
167763	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
167764	//       "required": true,
167765	//       "type": "string"
167766	//     },
167767	//     "zone": {
167768	//       "description": "Name of the zone scoping this request.",
167769	//       "location": "path",
167770	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
167771	//       "required": true,
167772	//       "type": "string"
167773	//     }
167774	//   },
167775	//   "path": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}",
167776	//   "response": {
167777	//     "$ref": "TargetInstance"
167778	//   },
167779	//   "scopes": [
167780	//     "https://www.googleapis.com/auth/cloud-platform",
167781	//     "https://www.googleapis.com/auth/compute",
167782	//     "https://www.googleapis.com/auth/compute.readonly"
167783	//   ]
167784	// }
167785
167786}
167787
167788// method id "compute.targetInstances.insert":
167789
167790type TargetInstancesInsertCall struct {
167791	s              *Service
167792	project        string
167793	zone           string
167794	targetinstance *TargetInstance
167795	urlParams_     gensupport.URLParams
167796	ctx_           context.Context
167797	header_        http.Header
167798}
167799
167800// Insert: Creates a TargetInstance resource in the specified project
167801// and zone using the data included in the request.
167802// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/insert
167803func (r *TargetInstancesService) Insert(project string, zone string, targetinstance *TargetInstance) *TargetInstancesInsertCall {
167804	c := &TargetInstancesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
167805	c.project = project
167806	c.zone = zone
167807	c.targetinstance = targetinstance
167808	return c
167809}
167810
167811// RequestId sets the optional parameter "requestId": An optional
167812// request ID to identify requests. Specify a unique request ID so that
167813// if you must retry your request, the server will know to ignore the
167814// request if it has already been completed.
167815//
167816// For example, consider a situation where you make an initial request
167817// and the request times out. If you make the request again with the
167818// same request ID, the server can check if original operation with the
167819// same request ID was received, and if so, will ignore the second
167820// request. This prevents clients from accidentally creating duplicate
167821// commitments.
167822//
167823// The request ID must be a valid UUID with the exception that zero UUID
167824// is not supported (00000000-0000-0000-0000-000000000000).
167825func (c *TargetInstancesInsertCall) RequestId(requestId string) *TargetInstancesInsertCall {
167826	c.urlParams_.Set("requestId", requestId)
167827	return c
167828}
167829
167830// Fields allows partial responses to be retrieved. See
167831// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
167832// for more information.
167833func (c *TargetInstancesInsertCall) Fields(s ...googleapi.Field) *TargetInstancesInsertCall {
167834	c.urlParams_.Set("fields", googleapi.CombineFields(s))
167835	return c
167836}
167837
167838// Context sets the context to be used in this call's Do method. Any
167839// pending HTTP request will be aborted if the provided context is
167840// canceled.
167841func (c *TargetInstancesInsertCall) Context(ctx context.Context) *TargetInstancesInsertCall {
167842	c.ctx_ = ctx
167843	return c
167844}
167845
167846// Header returns an http.Header that can be modified by the caller to
167847// add HTTP headers to the request.
167848func (c *TargetInstancesInsertCall) Header() http.Header {
167849	if c.header_ == nil {
167850		c.header_ = make(http.Header)
167851	}
167852	return c.header_
167853}
167854
167855func (c *TargetInstancesInsertCall) doRequest(alt string) (*http.Response, error) {
167856	reqHeaders := make(http.Header)
167857	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
167858	for k, v := range c.header_ {
167859		reqHeaders[k] = v
167860	}
167861	reqHeaders.Set("User-Agent", c.s.userAgent())
167862	var body io.Reader = nil
167863	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetinstance)
167864	if err != nil {
167865		return nil, err
167866	}
167867	reqHeaders.Set("Content-Type", "application/json")
167868	c.urlParams_.Set("alt", alt)
167869	c.urlParams_.Set("prettyPrint", "false")
167870	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/targetInstances")
167871	urls += "?" + c.urlParams_.Encode()
167872	req, err := http.NewRequest("POST", urls, body)
167873	if err != nil {
167874		return nil, err
167875	}
167876	req.Header = reqHeaders
167877	googleapi.Expand(req.URL, map[string]string{
167878		"project": c.project,
167879		"zone":    c.zone,
167880	})
167881	return gensupport.SendRequest(c.ctx_, c.s.client, req)
167882}
167883
167884// Do executes the "compute.targetInstances.insert" call.
167885// Exactly one of *Operation or error will be non-nil. Any non-2xx
167886// status code is an error. Response headers are in either
167887// *Operation.ServerResponse.Header or (if a response was returned at
167888// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
167889// to check whether the returned error was because
167890// http.StatusNotModified was returned.
167891func (c *TargetInstancesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
167892	gensupport.SetOptions(c.urlParams_, opts...)
167893	res, err := c.doRequest("json")
167894	if res != nil && res.StatusCode == http.StatusNotModified {
167895		if res.Body != nil {
167896			res.Body.Close()
167897		}
167898		return nil, &googleapi.Error{
167899			Code:   res.StatusCode,
167900			Header: res.Header,
167901		}
167902	}
167903	if err != nil {
167904		return nil, err
167905	}
167906	defer googleapi.CloseBody(res)
167907	if err := googleapi.CheckResponse(res); err != nil {
167908		return nil, err
167909	}
167910	ret := &Operation{
167911		ServerResponse: googleapi.ServerResponse{
167912			Header:         res.Header,
167913			HTTPStatusCode: res.StatusCode,
167914		},
167915	}
167916	target := &ret
167917	if err := gensupport.DecodeResponse(target, res); err != nil {
167918		return nil, err
167919	}
167920	return ret, nil
167921	// {
167922	//   "description": "Creates a TargetInstance resource in the specified project and zone using the data included in the request.",
167923	//   "httpMethod": "POST",
167924	//   "id": "compute.targetInstances.insert",
167925	//   "parameterOrder": [
167926	//     "project",
167927	//     "zone"
167928	//   ],
167929	//   "parameters": {
167930	//     "project": {
167931	//       "description": "Project ID for this request.",
167932	//       "location": "path",
167933	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
167934	//       "required": true,
167935	//       "type": "string"
167936	//     },
167937	//     "requestId": {
167938	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
167939	//       "location": "query",
167940	//       "type": "string"
167941	//     },
167942	//     "zone": {
167943	//       "description": "Name of the zone scoping this request.",
167944	//       "location": "path",
167945	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
167946	//       "required": true,
167947	//       "type": "string"
167948	//     }
167949	//   },
167950	//   "path": "projects/{project}/zones/{zone}/targetInstances",
167951	//   "request": {
167952	//     "$ref": "TargetInstance"
167953	//   },
167954	//   "response": {
167955	//     "$ref": "Operation"
167956	//   },
167957	//   "scopes": [
167958	//     "https://www.googleapis.com/auth/cloud-platform",
167959	//     "https://www.googleapis.com/auth/compute"
167960	//   ]
167961	// }
167962
167963}
167964
167965// method id "compute.targetInstances.list":
167966
167967type TargetInstancesListCall struct {
167968	s            *Service
167969	project      string
167970	zone         string
167971	urlParams_   gensupport.URLParams
167972	ifNoneMatch_ string
167973	ctx_         context.Context
167974	header_      http.Header
167975}
167976
167977// List: Retrieves a list of TargetInstance resources available to the
167978// specified project and zone.
167979// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/list
167980func (r *TargetInstancesService) List(project string, zone string) *TargetInstancesListCall {
167981	c := &TargetInstancesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
167982	c.project = project
167983	c.zone = zone
167984	return c
167985}
167986
167987// Filter sets the optional parameter "filter": A filter expression that
167988// filters resources listed in the response. The expression must specify
167989// the field name, a comparison operator, and the value that you want to
167990// use for filtering. The value must be a string, a number, or a
167991// boolean. The comparison operator must be either `=`, `!=`, `>`, or
167992// `<`.
167993//
167994// For example, if you are filtering Compute Engine instances, you can
167995// exclude instances named `example-instance` by specifying `name !=
167996// example-instance`.
167997//
167998// You can also filter nested fields. For example, you could specify
167999// `scheduling.automaticRestart = false` to include instances only if
168000// they are not scheduled for automatic restarts. You can use filtering
168001// on nested fields to filter based on resource labels.
168002//
168003// To filter on multiple expressions, provide each separate expression
168004// within parentheses. For example: ``` (scheduling.automaticRestart =
168005// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
168006// is an `AND` expression. However, you can include `AND` and `OR`
168007// expressions explicitly. For example: ``` (cpuPlatform = "Intel
168008// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
168009// (scheduling.automaticRestart = true) ```
168010func (c *TargetInstancesListCall) Filter(filter string) *TargetInstancesListCall {
168011	c.urlParams_.Set("filter", filter)
168012	return c
168013}
168014
168015// MaxResults sets the optional parameter "maxResults": The maximum
168016// number of results per page that should be returned. If the number of
168017// available results is larger than `maxResults`, Compute Engine returns
168018// a `nextPageToken` that can be used to get the next page of results in
168019// subsequent list requests. Acceptable values are `0` to `500`,
168020// inclusive. (Default: `500`)
168021func (c *TargetInstancesListCall) MaxResults(maxResults int64) *TargetInstancesListCall {
168022	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
168023	return c
168024}
168025
168026// OrderBy sets the optional parameter "orderBy": Sorts list results by
168027// a certain order. By default, results are returned in alphanumerical
168028// order based on the resource name.
168029//
168030// You can also sort results in descending order based on the creation
168031// timestamp using `orderBy="creationTimestamp desc". This sorts
168032// results based on the `creationTimestamp` field in reverse
168033// chronological order (newest result first). Use this to sort resources
168034// like operations so that the newest operation is returned
168035// first.
168036//
168037// Currently, only sorting by `name` or `creationTimestamp desc` is
168038// supported.
168039func (c *TargetInstancesListCall) OrderBy(orderBy string) *TargetInstancesListCall {
168040	c.urlParams_.Set("orderBy", orderBy)
168041	return c
168042}
168043
168044// PageToken sets the optional parameter "pageToken": Specifies a page
168045// token to use. Set `pageToken` to the `nextPageToken` returned by a
168046// previous list request to get the next page of results.
168047func (c *TargetInstancesListCall) PageToken(pageToken string) *TargetInstancesListCall {
168048	c.urlParams_.Set("pageToken", pageToken)
168049	return c
168050}
168051
168052// ReturnPartialSuccess sets the optional parameter
168053// "returnPartialSuccess": Opt-in for partial success behavior which
168054// provides partial results in case of failure. The default value is
168055// false.
168056func (c *TargetInstancesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetInstancesListCall {
168057	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
168058	return c
168059}
168060
168061// Fields allows partial responses to be retrieved. See
168062// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
168063// for more information.
168064func (c *TargetInstancesListCall) Fields(s ...googleapi.Field) *TargetInstancesListCall {
168065	c.urlParams_.Set("fields", googleapi.CombineFields(s))
168066	return c
168067}
168068
168069// IfNoneMatch sets the optional parameter which makes the operation
168070// fail if the object's ETag matches the given value. This is useful for
168071// getting updates only after the object has changed since the last
168072// request. Use googleapi.IsNotModified to check whether the response
168073// error from Do is the result of In-None-Match.
168074func (c *TargetInstancesListCall) IfNoneMatch(entityTag string) *TargetInstancesListCall {
168075	c.ifNoneMatch_ = entityTag
168076	return c
168077}
168078
168079// Context sets the context to be used in this call's Do method. Any
168080// pending HTTP request will be aborted if the provided context is
168081// canceled.
168082func (c *TargetInstancesListCall) Context(ctx context.Context) *TargetInstancesListCall {
168083	c.ctx_ = ctx
168084	return c
168085}
168086
168087// Header returns an http.Header that can be modified by the caller to
168088// add HTTP headers to the request.
168089func (c *TargetInstancesListCall) Header() http.Header {
168090	if c.header_ == nil {
168091		c.header_ = make(http.Header)
168092	}
168093	return c.header_
168094}
168095
168096func (c *TargetInstancesListCall) doRequest(alt string) (*http.Response, error) {
168097	reqHeaders := make(http.Header)
168098	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
168099	for k, v := range c.header_ {
168100		reqHeaders[k] = v
168101	}
168102	reqHeaders.Set("User-Agent", c.s.userAgent())
168103	if c.ifNoneMatch_ != "" {
168104		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
168105	}
168106	var body io.Reader = nil
168107	c.urlParams_.Set("alt", alt)
168108	c.urlParams_.Set("prettyPrint", "false")
168109	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/targetInstances")
168110	urls += "?" + c.urlParams_.Encode()
168111	req, err := http.NewRequest("GET", urls, body)
168112	if err != nil {
168113		return nil, err
168114	}
168115	req.Header = reqHeaders
168116	googleapi.Expand(req.URL, map[string]string{
168117		"project": c.project,
168118		"zone":    c.zone,
168119	})
168120	return gensupport.SendRequest(c.ctx_, c.s.client, req)
168121}
168122
168123// Do executes the "compute.targetInstances.list" call.
168124// Exactly one of *TargetInstanceList or error will be non-nil. Any
168125// non-2xx status code is an error. Response headers are in either
168126// *TargetInstanceList.ServerResponse.Header or (if a response was
168127// returned at all) in error.(*googleapi.Error).Header. Use
168128// googleapi.IsNotModified to check whether the returned error was
168129// because http.StatusNotModified was returned.
168130func (c *TargetInstancesListCall) Do(opts ...googleapi.CallOption) (*TargetInstanceList, error) {
168131	gensupport.SetOptions(c.urlParams_, opts...)
168132	res, err := c.doRequest("json")
168133	if res != nil && res.StatusCode == http.StatusNotModified {
168134		if res.Body != nil {
168135			res.Body.Close()
168136		}
168137		return nil, &googleapi.Error{
168138			Code:   res.StatusCode,
168139			Header: res.Header,
168140		}
168141	}
168142	if err != nil {
168143		return nil, err
168144	}
168145	defer googleapi.CloseBody(res)
168146	if err := googleapi.CheckResponse(res); err != nil {
168147		return nil, err
168148	}
168149	ret := &TargetInstanceList{
168150		ServerResponse: googleapi.ServerResponse{
168151			Header:         res.Header,
168152			HTTPStatusCode: res.StatusCode,
168153		},
168154	}
168155	target := &ret
168156	if err := gensupport.DecodeResponse(target, res); err != nil {
168157		return nil, err
168158	}
168159	return ret, nil
168160	// {
168161	//   "description": "Retrieves a list of TargetInstance resources available to the specified project and zone.",
168162	//   "httpMethod": "GET",
168163	//   "id": "compute.targetInstances.list",
168164	//   "parameterOrder": [
168165	//     "project",
168166	//     "zone"
168167	//   ],
168168	//   "parameters": {
168169	//     "filter": {
168170	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
168171	//       "location": "query",
168172	//       "type": "string"
168173	//     },
168174	//     "maxResults": {
168175	//       "default": "500",
168176	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
168177	//       "format": "uint32",
168178	//       "location": "query",
168179	//       "minimum": "0",
168180	//       "type": "integer"
168181	//     },
168182	//     "orderBy": {
168183	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
168184	//       "location": "query",
168185	//       "type": "string"
168186	//     },
168187	//     "pageToken": {
168188	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
168189	//       "location": "query",
168190	//       "type": "string"
168191	//     },
168192	//     "project": {
168193	//       "description": "Project ID for this request.",
168194	//       "location": "path",
168195	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
168196	//       "required": true,
168197	//       "type": "string"
168198	//     },
168199	//     "returnPartialSuccess": {
168200	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
168201	//       "location": "query",
168202	//       "type": "boolean"
168203	//     },
168204	//     "zone": {
168205	//       "description": "Name of the zone scoping this request.",
168206	//       "location": "path",
168207	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
168208	//       "required": true,
168209	//       "type": "string"
168210	//     }
168211	//   },
168212	//   "path": "projects/{project}/zones/{zone}/targetInstances",
168213	//   "response": {
168214	//     "$ref": "TargetInstanceList"
168215	//   },
168216	//   "scopes": [
168217	//     "https://www.googleapis.com/auth/cloud-platform",
168218	//     "https://www.googleapis.com/auth/compute",
168219	//     "https://www.googleapis.com/auth/compute.readonly"
168220	//   ]
168221	// }
168222
168223}
168224
168225// Pages invokes f for each page of results.
168226// A non-nil error returned from f will halt the iteration.
168227// The provided context supersedes any context provided to the Context method.
168228func (c *TargetInstancesListCall) Pages(ctx context.Context, f func(*TargetInstanceList) error) error {
168229	c.ctx_ = ctx
168230	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
168231	for {
168232		x, err := c.Do()
168233		if err != nil {
168234			return err
168235		}
168236		if err := f(x); err != nil {
168237			return err
168238		}
168239		if x.NextPageToken == "" {
168240			return nil
168241		}
168242		c.PageToken(x.NextPageToken)
168243	}
168244}
168245
168246// method id "compute.targetInstances.testIamPermissions":
168247
168248type TargetInstancesTestIamPermissionsCall struct {
168249	s                      *Service
168250	project                string
168251	zone                   string
168252	resource               string
168253	testpermissionsrequest *TestPermissionsRequest
168254	urlParams_             gensupport.URLParams
168255	ctx_                   context.Context
168256	header_                http.Header
168257}
168258
168259// TestIamPermissions: Returns permissions that a caller has on the
168260// specified resource.
168261func (r *TargetInstancesService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *TargetInstancesTestIamPermissionsCall {
168262	c := &TargetInstancesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
168263	c.project = project
168264	c.zone = zone
168265	c.resource = resource
168266	c.testpermissionsrequest = testpermissionsrequest
168267	return c
168268}
168269
168270// Fields allows partial responses to be retrieved. See
168271// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
168272// for more information.
168273func (c *TargetInstancesTestIamPermissionsCall) Fields(s ...googleapi.Field) *TargetInstancesTestIamPermissionsCall {
168274	c.urlParams_.Set("fields", googleapi.CombineFields(s))
168275	return c
168276}
168277
168278// Context sets the context to be used in this call's Do method. Any
168279// pending HTTP request will be aborted if the provided context is
168280// canceled.
168281func (c *TargetInstancesTestIamPermissionsCall) Context(ctx context.Context) *TargetInstancesTestIamPermissionsCall {
168282	c.ctx_ = ctx
168283	return c
168284}
168285
168286// Header returns an http.Header that can be modified by the caller to
168287// add HTTP headers to the request.
168288func (c *TargetInstancesTestIamPermissionsCall) Header() http.Header {
168289	if c.header_ == nil {
168290		c.header_ = make(http.Header)
168291	}
168292	return c.header_
168293}
168294
168295func (c *TargetInstancesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
168296	reqHeaders := make(http.Header)
168297	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
168298	for k, v := range c.header_ {
168299		reqHeaders[k] = v
168300	}
168301	reqHeaders.Set("User-Agent", c.s.userAgent())
168302	var body io.Reader = nil
168303	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
168304	if err != nil {
168305		return nil, err
168306	}
168307	reqHeaders.Set("Content-Type", "application/json")
168308	c.urlParams_.Set("alt", alt)
168309	c.urlParams_.Set("prettyPrint", "false")
168310	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/targetInstances/{resource}/testIamPermissions")
168311	urls += "?" + c.urlParams_.Encode()
168312	req, err := http.NewRequest("POST", urls, body)
168313	if err != nil {
168314		return nil, err
168315	}
168316	req.Header = reqHeaders
168317	googleapi.Expand(req.URL, map[string]string{
168318		"project":  c.project,
168319		"zone":     c.zone,
168320		"resource": c.resource,
168321	})
168322	return gensupport.SendRequest(c.ctx_, c.s.client, req)
168323}
168324
168325// Do executes the "compute.targetInstances.testIamPermissions" call.
168326// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
168327// non-2xx status code is an error. Response headers are in either
168328// *TestPermissionsResponse.ServerResponse.Header or (if a response was
168329// returned at all) in error.(*googleapi.Error).Header. Use
168330// googleapi.IsNotModified to check whether the returned error was
168331// because http.StatusNotModified was returned.
168332func (c *TargetInstancesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
168333	gensupport.SetOptions(c.urlParams_, opts...)
168334	res, err := c.doRequest("json")
168335	if res != nil && res.StatusCode == http.StatusNotModified {
168336		if res.Body != nil {
168337			res.Body.Close()
168338		}
168339		return nil, &googleapi.Error{
168340			Code:   res.StatusCode,
168341			Header: res.Header,
168342		}
168343	}
168344	if err != nil {
168345		return nil, err
168346	}
168347	defer googleapi.CloseBody(res)
168348	if err := googleapi.CheckResponse(res); err != nil {
168349		return nil, err
168350	}
168351	ret := &TestPermissionsResponse{
168352		ServerResponse: googleapi.ServerResponse{
168353			Header:         res.Header,
168354			HTTPStatusCode: res.StatusCode,
168355		},
168356	}
168357	target := &ret
168358	if err := gensupport.DecodeResponse(target, res); err != nil {
168359		return nil, err
168360	}
168361	return ret, nil
168362	// {
168363	//   "description": "Returns permissions that a caller has on the specified resource.",
168364	//   "httpMethod": "POST",
168365	//   "id": "compute.targetInstances.testIamPermissions",
168366	//   "parameterOrder": [
168367	//     "project",
168368	//     "zone",
168369	//     "resource"
168370	//   ],
168371	//   "parameters": {
168372	//     "project": {
168373	//       "description": "Project ID for this request.",
168374	//       "location": "path",
168375	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
168376	//       "required": true,
168377	//       "type": "string"
168378	//     },
168379	//     "resource": {
168380	//       "description": "Name or id of the resource for this request.",
168381	//       "location": "path",
168382	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
168383	//       "required": true,
168384	//       "type": "string"
168385	//     },
168386	//     "zone": {
168387	//       "description": "The name of the zone for this request.",
168388	//       "location": "path",
168389	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
168390	//       "required": true,
168391	//       "type": "string"
168392	//     }
168393	//   },
168394	//   "path": "projects/{project}/zones/{zone}/targetInstances/{resource}/testIamPermissions",
168395	//   "request": {
168396	//     "$ref": "TestPermissionsRequest"
168397	//   },
168398	//   "response": {
168399	//     "$ref": "TestPermissionsResponse"
168400	//   },
168401	//   "scopes": [
168402	//     "https://www.googleapis.com/auth/cloud-platform",
168403	//     "https://www.googleapis.com/auth/compute",
168404	//     "https://www.googleapis.com/auth/compute.readonly"
168405	//   ]
168406	// }
168407
168408}
168409
168410// method id "compute.targetPools.addHealthCheck":
168411
168412type TargetPoolsAddHealthCheckCall struct {
168413	s                                *Service
168414	project                          string
168415	region                           string
168416	targetPool                       string
168417	targetpoolsaddhealthcheckrequest *TargetPoolsAddHealthCheckRequest
168418	urlParams_                       gensupport.URLParams
168419	ctx_                             context.Context
168420	header_                          http.Header
168421}
168422
168423// AddHealthCheck: Adds health check URLs to a target pool.
168424// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/addHealthCheck
168425func (r *TargetPoolsService) AddHealthCheck(project string, region string, targetPool string, targetpoolsaddhealthcheckrequest *TargetPoolsAddHealthCheckRequest) *TargetPoolsAddHealthCheckCall {
168426	c := &TargetPoolsAddHealthCheckCall{s: r.s, urlParams_: make(gensupport.URLParams)}
168427	c.project = project
168428	c.region = region
168429	c.targetPool = targetPool
168430	c.targetpoolsaddhealthcheckrequest = targetpoolsaddhealthcheckrequest
168431	return c
168432}
168433
168434// RequestId sets the optional parameter "requestId": An optional
168435// request ID to identify requests. Specify a unique request ID so that
168436// if you must retry your request, the server will know to ignore the
168437// request if it has already been completed.
168438//
168439// For example, consider a situation where you make an initial request
168440// and the request times out. If you make the request again with the
168441// same request ID, the server can check if original operation with the
168442// same request ID was received, and if so, will ignore the second
168443// request. This prevents clients from accidentally creating duplicate
168444// commitments.
168445//
168446// The request ID must be a valid UUID with the exception that zero UUID
168447// is not supported (00000000-0000-0000-0000-000000000000).
168448func (c *TargetPoolsAddHealthCheckCall) RequestId(requestId string) *TargetPoolsAddHealthCheckCall {
168449	c.urlParams_.Set("requestId", requestId)
168450	return c
168451}
168452
168453// Fields allows partial responses to be retrieved. See
168454// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
168455// for more information.
168456func (c *TargetPoolsAddHealthCheckCall) Fields(s ...googleapi.Field) *TargetPoolsAddHealthCheckCall {
168457	c.urlParams_.Set("fields", googleapi.CombineFields(s))
168458	return c
168459}
168460
168461// Context sets the context to be used in this call's Do method. Any
168462// pending HTTP request will be aborted if the provided context is
168463// canceled.
168464func (c *TargetPoolsAddHealthCheckCall) Context(ctx context.Context) *TargetPoolsAddHealthCheckCall {
168465	c.ctx_ = ctx
168466	return c
168467}
168468
168469// Header returns an http.Header that can be modified by the caller to
168470// add HTTP headers to the request.
168471func (c *TargetPoolsAddHealthCheckCall) Header() http.Header {
168472	if c.header_ == nil {
168473		c.header_ = make(http.Header)
168474	}
168475	return c.header_
168476}
168477
168478func (c *TargetPoolsAddHealthCheckCall) doRequest(alt string) (*http.Response, error) {
168479	reqHeaders := make(http.Header)
168480	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
168481	for k, v := range c.header_ {
168482		reqHeaders[k] = v
168483	}
168484	reqHeaders.Set("User-Agent", c.s.userAgent())
168485	var body io.Reader = nil
168486	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsaddhealthcheckrequest)
168487	if err != nil {
168488		return nil, err
168489	}
168490	reqHeaders.Set("Content-Type", "application/json")
168491	c.urlParams_.Set("alt", alt)
168492	c.urlParams_.Set("prettyPrint", "false")
168493	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}/addHealthCheck")
168494	urls += "?" + c.urlParams_.Encode()
168495	req, err := http.NewRequest("POST", urls, body)
168496	if err != nil {
168497		return nil, err
168498	}
168499	req.Header = reqHeaders
168500	googleapi.Expand(req.URL, map[string]string{
168501		"project":    c.project,
168502		"region":     c.region,
168503		"targetPool": c.targetPool,
168504	})
168505	return gensupport.SendRequest(c.ctx_, c.s.client, req)
168506}
168507
168508// Do executes the "compute.targetPools.addHealthCheck" call.
168509// Exactly one of *Operation or error will be non-nil. Any non-2xx
168510// status code is an error. Response headers are in either
168511// *Operation.ServerResponse.Header or (if a response was returned at
168512// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
168513// to check whether the returned error was because
168514// http.StatusNotModified was returned.
168515func (c *TargetPoolsAddHealthCheckCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
168516	gensupport.SetOptions(c.urlParams_, opts...)
168517	res, err := c.doRequest("json")
168518	if res != nil && res.StatusCode == http.StatusNotModified {
168519		if res.Body != nil {
168520			res.Body.Close()
168521		}
168522		return nil, &googleapi.Error{
168523			Code:   res.StatusCode,
168524			Header: res.Header,
168525		}
168526	}
168527	if err != nil {
168528		return nil, err
168529	}
168530	defer googleapi.CloseBody(res)
168531	if err := googleapi.CheckResponse(res); err != nil {
168532		return nil, err
168533	}
168534	ret := &Operation{
168535		ServerResponse: googleapi.ServerResponse{
168536			Header:         res.Header,
168537			HTTPStatusCode: res.StatusCode,
168538		},
168539	}
168540	target := &ret
168541	if err := gensupport.DecodeResponse(target, res); err != nil {
168542		return nil, err
168543	}
168544	return ret, nil
168545	// {
168546	//   "description": "Adds health check URLs to a target pool.",
168547	//   "httpMethod": "POST",
168548	//   "id": "compute.targetPools.addHealthCheck",
168549	//   "parameterOrder": [
168550	//     "project",
168551	//     "region",
168552	//     "targetPool"
168553	//   ],
168554	//   "parameters": {
168555	//     "project": {
168556	//       "description": "Project ID for this request.",
168557	//       "location": "path",
168558	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
168559	//       "required": true,
168560	//       "type": "string"
168561	//     },
168562	//     "region": {
168563	//       "description": "Name of the region scoping this request.",
168564	//       "location": "path",
168565	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
168566	//       "required": true,
168567	//       "type": "string"
168568	//     },
168569	//     "requestId": {
168570	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
168571	//       "location": "query",
168572	//       "type": "string"
168573	//     },
168574	//     "targetPool": {
168575	//       "description": "Name of the target pool to add a health check to.",
168576	//       "location": "path",
168577	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
168578	//       "required": true,
168579	//       "type": "string"
168580	//     }
168581	//   },
168582	//   "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/addHealthCheck",
168583	//   "request": {
168584	//     "$ref": "TargetPoolsAddHealthCheckRequest"
168585	//   },
168586	//   "response": {
168587	//     "$ref": "Operation"
168588	//   },
168589	//   "scopes": [
168590	//     "https://www.googleapis.com/auth/cloud-platform",
168591	//     "https://www.googleapis.com/auth/compute"
168592	//   ]
168593	// }
168594
168595}
168596
168597// method id "compute.targetPools.addInstance":
168598
168599type TargetPoolsAddInstanceCall struct {
168600	s                             *Service
168601	project                       string
168602	region                        string
168603	targetPool                    string
168604	targetpoolsaddinstancerequest *TargetPoolsAddInstanceRequest
168605	urlParams_                    gensupport.URLParams
168606	ctx_                          context.Context
168607	header_                       http.Header
168608}
168609
168610// AddInstance: Adds an instance to a target pool.
168611// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/addInstance
168612func (r *TargetPoolsService) AddInstance(project string, region string, targetPool string, targetpoolsaddinstancerequest *TargetPoolsAddInstanceRequest) *TargetPoolsAddInstanceCall {
168613	c := &TargetPoolsAddInstanceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
168614	c.project = project
168615	c.region = region
168616	c.targetPool = targetPool
168617	c.targetpoolsaddinstancerequest = targetpoolsaddinstancerequest
168618	return c
168619}
168620
168621// RequestId sets the optional parameter "requestId": An optional
168622// request ID to identify requests. Specify a unique request ID so that
168623// if you must retry your request, the server will know to ignore the
168624// request if it has already been completed.
168625//
168626// For example, consider a situation where you make an initial request
168627// and the request times out. If you make the request again with the
168628// same request ID, the server can check if original operation with the
168629// same request ID was received, and if so, will ignore the second
168630// request. This prevents clients from accidentally creating duplicate
168631// commitments.
168632//
168633// The request ID must be a valid UUID with the exception that zero UUID
168634// is not supported (00000000-0000-0000-0000-000000000000).
168635func (c *TargetPoolsAddInstanceCall) RequestId(requestId string) *TargetPoolsAddInstanceCall {
168636	c.urlParams_.Set("requestId", requestId)
168637	return c
168638}
168639
168640// Fields allows partial responses to be retrieved. See
168641// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
168642// for more information.
168643func (c *TargetPoolsAddInstanceCall) Fields(s ...googleapi.Field) *TargetPoolsAddInstanceCall {
168644	c.urlParams_.Set("fields", googleapi.CombineFields(s))
168645	return c
168646}
168647
168648// Context sets the context to be used in this call's Do method. Any
168649// pending HTTP request will be aborted if the provided context is
168650// canceled.
168651func (c *TargetPoolsAddInstanceCall) Context(ctx context.Context) *TargetPoolsAddInstanceCall {
168652	c.ctx_ = ctx
168653	return c
168654}
168655
168656// Header returns an http.Header that can be modified by the caller to
168657// add HTTP headers to the request.
168658func (c *TargetPoolsAddInstanceCall) Header() http.Header {
168659	if c.header_ == nil {
168660		c.header_ = make(http.Header)
168661	}
168662	return c.header_
168663}
168664
168665func (c *TargetPoolsAddInstanceCall) doRequest(alt string) (*http.Response, error) {
168666	reqHeaders := make(http.Header)
168667	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
168668	for k, v := range c.header_ {
168669		reqHeaders[k] = v
168670	}
168671	reqHeaders.Set("User-Agent", c.s.userAgent())
168672	var body io.Reader = nil
168673	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsaddinstancerequest)
168674	if err != nil {
168675		return nil, err
168676	}
168677	reqHeaders.Set("Content-Type", "application/json")
168678	c.urlParams_.Set("alt", alt)
168679	c.urlParams_.Set("prettyPrint", "false")
168680	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}/addInstance")
168681	urls += "?" + c.urlParams_.Encode()
168682	req, err := http.NewRequest("POST", urls, body)
168683	if err != nil {
168684		return nil, err
168685	}
168686	req.Header = reqHeaders
168687	googleapi.Expand(req.URL, map[string]string{
168688		"project":    c.project,
168689		"region":     c.region,
168690		"targetPool": c.targetPool,
168691	})
168692	return gensupport.SendRequest(c.ctx_, c.s.client, req)
168693}
168694
168695// Do executes the "compute.targetPools.addInstance" call.
168696// Exactly one of *Operation or error will be non-nil. Any non-2xx
168697// status code is an error. Response headers are in either
168698// *Operation.ServerResponse.Header or (if a response was returned at
168699// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
168700// to check whether the returned error was because
168701// http.StatusNotModified was returned.
168702func (c *TargetPoolsAddInstanceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
168703	gensupport.SetOptions(c.urlParams_, opts...)
168704	res, err := c.doRequest("json")
168705	if res != nil && res.StatusCode == http.StatusNotModified {
168706		if res.Body != nil {
168707			res.Body.Close()
168708		}
168709		return nil, &googleapi.Error{
168710			Code:   res.StatusCode,
168711			Header: res.Header,
168712		}
168713	}
168714	if err != nil {
168715		return nil, err
168716	}
168717	defer googleapi.CloseBody(res)
168718	if err := googleapi.CheckResponse(res); err != nil {
168719		return nil, err
168720	}
168721	ret := &Operation{
168722		ServerResponse: googleapi.ServerResponse{
168723			Header:         res.Header,
168724			HTTPStatusCode: res.StatusCode,
168725		},
168726	}
168727	target := &ret
168728	if err := gensupport.DecodeResponse(target, res); err != nil {
168729		return nil, err
168730	}
168731	return ret, nil
168732	// {
168733	//   "description": "Adds an instance to a target pool.",
168734	//   "httpMethod": "POST",
168735	//   "id": "compute.targetPools.addInstance",
168736	//   "parameterOrder": [
168737	//     "project",
168738	//     "region",
168739	//     "targetPool"
168740	//   ],
168741	//   "parameters": {
168742	//     "project": {
168743	//       "description": "Project ID for this request.",
168744	//       "location": "path",
168745	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
168746	//       "required": true,
168747	//       "type": "string"
168748	//     },
168749	//     "region": {
168750	//       "description": "Name of the region scoping this request.",
168751	//       "location": "path",
168752	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
168753	//       "required": true,
168754	//       "type": "string"
168755	//     },
168756	//     "requestId": {
168757	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
168758	//       "location": "query",
168759	//       "type": "string"
168760	//     },
168761	//     "targetPool": {
168762	//       "description": "Name of the TargetPool resource to add instances to.",
168763	//       "location": "path",
168764	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
168765	//       "required": true,
168766	//       "type": "string"
168767	//     }
168768	//   },
168769	//   "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/addInstance",
168770	//   "request": {
168771	//     "$ref": "TargetPoolsAddInstanceRequest"
168772	//   },
168773	//   "response": {
168774	//     "$ref": "Operation"
168775	//   },
168776	//   "scopes": [
168777	//     "https://www.googleapis.com/auth/cloud-platform",
168778	//     "https://www.googleapis.com/auth/compute"
168779	//   ]
168780	// }
168781
168782}
168783
168784// method id "compute.targetPools.aggregatedList":
168785
168786type TargetPoolsAggregatedListCall struct {
168787	s            *Service
168788	project      string
168789	urlParams_   gensupport.URLParams
168790	ifNoneMatch_ string
168791	ctx_         context.Context
168792	header_      http.Header
168793}
168794
168795// AggregatedList: Retrieves an aggregated list of target pools.
168796// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/aggregatedList
168797func (r *TargetPoolsService) AggregatedList(project string) *TargetPoolsAggregatedListCall {
168798	c := &TargetPoolsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
168799	c.project = project
168800	return c
168801}
168802
168803// Filter sets the optional parameter "filter": A filter expression that
168804// filters resources listed in the response. The expression must specify
168805// the field name, a comparison operator, and the value that you want to
168806// use for filtering. The value must be a string, a number, or a
168807// boolean. The comparison operator must be either `=`, `!=`, `>`, or
168808// `<`.
168809//
168810// For example, if you are filtering Compute Engine instances, you can
168811// exclude instances named `example-instance` by specifying `name !=
168812// example-instance`.
168813//
168814// You can also filter nested fields. For example, you could specify
168815// `scheduling.automaticRestart = false` to include instances only if
168816// they are not scheduled for automatic restarts. You can use filtering
168817// on nested fields to filter based on resource labels.
168818//
168819// To filter on multiple expressions, provide each separate expression
168820// within parentheses. For example: ``` (scheduling.automaticRestart =
168821// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
168822// is an `AND` expression. However, you can include `AND` and `OR`
168823// expressions explicitly. For example: ``` (cpuPlatform = "Intel
168824// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
168825// (scheduling.automaticRestart = true) ```
168826func (c *TargetPoolsAggregatedListCall) Filter(filter string) *TargetPoolsAggregatedListCall {
168827	c.urlParams_.Set("filter", filter)
168828	return c
168829}
168830
168831// IncludeAllScopes sets the optional parameter "includeAllScopes":
168832// Indicates whether every visible scope for each scope type (zone,
168833// region, global) should be included in the response. For new resource
168834// types added after this field, the flag has no effect as new resource
168835// types will always include every visible scope for each scope type in
168836// response. For resource types which predate this field, if this flag
168837// is omitted or false, only scopes of the scope types where the
168838// resource type is expected to be found will be included.
168839func (c *TargetPoolsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetPoolsAggregatedListCall {
168840	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
168841	return c
168842}
168843
168844// MaxResults sets the optional parameter "maxResults": The maximum
168845// number of results per page that should be returned. If the number of
168846// available results is larger than `maxResults`, Compute Engine returns
168847// a `nextPageToken` that can be used to get the next page of results in
168848// subsequent list requests. Acceptable values are `0` to `500`,
168849// inclusive. (Default: `500`)
168850func (c *TargetPoolsAggregatedListCall) MaxResults(maxResults int64) *TargetPoolsAggregatedListCall {
168851	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
168852	return c
168853}
168854
168855// OrderBy sets the optional parameter "orderBy": Sorts list results by
168856// a certain order. By default, results are returned in alphanumerical
168857// order based on the resource name.
168858//
168859// You can also sort results in descending order based on the creation
168860// timestamp using `orderBy="creationTimestamp desc". This sorts
168861// results based on the `creationTimestamp` field in reverse
168862// chronological order (newest result first). Use this to sort resources
168863// like operations so that the newest operation is returned
168864// first.
168865//
168866// Currently, only sorting by `name` or `creationTimestamp desc` is
168867// supported.
168868func (c *TargetPoolsAggregatedListCall) OrderBy(orderBy string) *TargetPoolsAggregatedListCall {
168869	c.urlParams_.Set("orderBy", orderBy)
168870	return c
168871}
168872
168873// PageToken sets the optional parameter "pageToken": Specifies a page
168874// token to use. Set `pageToken` to the `nextPageToken` returned by a
168875// previous list request to get the next page of results.
168876func (c *TargetPoolsAggregatedListCall) PageToken(pageToken string) *TargetPoolsAggregatedListCall {
168877	c.urlParams_.Set("pageToken", pageToken)
168878	return c
168879}
168880
168881// ReturnPartialSuccess sets the optional parameter
168882// "returnPartialSuccess": Opt-in for partial success behavior which
168883// provides partial results in case of failure. The default value is
168884// false.
168885func (c *TargetPoolsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetPoolsAggregatedListCall {
168886	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
168887	return c
168888}
168889
168890// Fields allows partial responses to be retrieved. See
168891// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
168892// for more information.
168893func (c *TargetPoolsAggregatedListCall) Fields(s ...googleapi.Field) *TargetPoolsAggregatedListCall {
168894	c.urlParams_.Set("fields", googleapi.CombineFields(s))
168895	return c
168896}
168897
168898// IfNoneMatch sets the optional parameter which makes the operation
168899// fail if the object's ETag matches the given value. This is useful for
168900// getting updates only after the object has changed since the last
168901// request. Use googleapi.IsNotModified to check whether the response
168902// error from Do is the result of In-None-Match.
168903func (c *TargetPoolsAggregatedListCall) IfNoneMatch(entityTag string) *TargetPoolsAggregatedListCall {
168904	c.ifNoneMatch_ = entityTag
168905	return c
168906}
168907
168908// Context sets the context to be used in this call's Do method. Any
168909// pending HTTP request will be aborted if the provided context is
168910// canceled.
168911func (c *TargetPoolsAggregatedListCall) Context(ctx context.Context) *TargetPoolsAggregatedListCall {
168912	c.ctx_ = ctx
168913	return c
168914}
168915
168916// Header returns an http.Header that can be modified by the caller to
168917// add HTTP headers to the request.
168918func (c *TargetPoolsAggregatedListCall) Header() http.Header {
168919	if c.header_ == nil {
168920		c.header_ = make(http.Header)
168921	}
168922	return c.header_
168923}
168924
168925func (c *TargetPoolsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
168926	reqHeaders := make(http.Header)
168927	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
168928	for k, v := range c.header_ {
168929		reqHeaders[k] = v
168930	}
168931	reqHeaders.Set("User-Agent", c.s.userAgent())
168932	if c.ifNoneMatch_ != "" {
168933		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
168934	}
168935	var body io.Reader = nil
168936	c.urlParams_.Set("alt", alt)
168937	c.urlParams_.Set("prettyPrint", "false")
168938	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/targetPools")
168939	urls += "?" + c.urlParams_.Encode()
168940	req, err := http.NewRequest("GET", urls, body)
168941	if err != nil {
168942		return nil, err
168943	}
168944	req.Header = reqHeaders
168945	googleapi.Expand(req.URL, map[string]string{
168946		"project": c.project,
168947	})
168948	return gensupport.SendRequest(c.ctx_, c.s.client, req)
168949}
168950
168951// Do executes the "compute.targetPools.aggregatedList" call.
168952// Exactly one of *TargetPoolAggregatedList or error will be non-nil.
168953// Any non-2xx status code is an error. Response headers are in either
168954// *TargetPoolAggregatedList.ServerResponse.Header or (if a response was
168955// returned at all) in error.(*googleapi.Error).Header. Use
168956// googleapi.IsNotModified to check whether the returned error was
168957// because http.StatusNotModified was returned.
168958func (c *TargetPoolsAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetPoolAggregatedList, error) {
168959	gensupport.SetOptions(c.urlParams_, opts...)
168960	res, err := c.doRequest("json")
168961	if res != nil && res.StatusCode == http.StatusNotModified {
168962		if res.Body != nil {
168963			res.Body.Close()
168964		}
168965		return nil, &googleapi.Error{
168966			Code:   res.StatusCode,
168967			Header: res.Header,
168968		}
168969	}
168970	if err != nil {
168971		return nil, err
168972	}
168973	defer googleapi.CloseBody(res)
168974	if err := googleapi.CheckResponse(res); err != nil {
168975		return nil, err
168976	}
168977	ret := &TargetPoolAggregatedList{
168978		ServerResponse: googleapi.ServerResponse{
168979			Header:         res.Header,
168980			HTTPStatusCode: res.StatusCode,
168981		},
168982	}
168983	target := &ret
168984	if err := gensupport.DecodeResponse(target, res); err != nil {
168985		return nil, err
168986	}
168987	return ret, nil
168988	// {
168989	//   "description": "Retrieves an aggregated list of target pools.",
168990	//   "httpMethod": "GET",
168991	//   "id": "compute.targetPools.aggregatedList",
168992	//   "parameterOrder": [
168993	//     "project"
168994	//   ],
168995	//   "parameters": {
168996	//     "filter": {
168997	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
168998	//       "location": "query",
168999	//       "type": "string"
169000	//     },
169001	//     "includeAllScopes": {
169002	//       "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.",
169003	//       "location": "query",
169004	//       "type": "boolean"
169005	//     },
169006	//     "maxResults": {
169007	//       "default": "500",
169008	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
169009	//       "format": "uint32",
169010	//       "location": "query",
169011	//       "minimum": "0",
169012	//       "type": "integer"
169013	//     },
169014	//     "orderBy": {
169015	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
169016	//       "location": "query",
169017	//       "type": "string"
169018	//     },
169019	//     "pageToken": {
169020	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
169021	//       "location": "query",
169022	//       "type": "string"
169023	//     },
169024	//     "project": {
169025	//       "description": "Project ID for this request.",
169026	//       "location": "path",
169027	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
169028	//       "required": true,
169029	//       "type": "string"
169030	//     },
169031	//     "returnPartialSuccess": {
169032	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
169033	//       "location": "query",
169034	//       "type": "boolean"
169035	//     }
169036	//   },
169037	//   "path": "projects/{project}/aggregated/targetPools",
169038	//   "response": {
169039	//     "$ref": "TargetPoolAggregatedList"
169040	//   },
169041	//   "scopes": [
169042	//     "https://www.googleapis.com/auth/cloud-platform",
169043	//     "https://www.googleapis.com/auth/compute",
169044	//     "https://www.googleapis.com/auth/compute.readonly"
169045	//   ]
169046	// }
169047
169048}
169049
169050// Pages invokes f for each page of results.
169051// A non-nil error returned from f will halt the iteration.
169052// The provided context supersedes any context provided to the Context method.
169053func (c *TargetPoolsAggregatedListCall) Pages(ctx context.Context, f func(*TargetPoolAggregatedList) error) error {
169054	c.ctx_ = ctx
169055	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
169056	for {
169057		x, err := c.Do()
169058		if err != nil {
169059			return err
169060		}
169061		if err := f(x); err != nil {
169062			return err
169063		}
169064		if x.NextPageToken == "" {
169065			return nil
169066		}
169067		c.PageToken(x.NextPageToken)
169068	}
169069}
169070
169071// method id "compute.targetPools.delete":
169072
169073type TargetPoolsDeleteCall struct {
169074	s          *Service
169075	project    string
169076	region     string
169077	targetPool string
169078	urlParams_ gensupport.URLParams
169079	ctx_       context.Context
169080	header_    http.Header
169081}
169082
169083// Delete: Deletes the specified target pool.
169084// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/delete
169085func (r *TargetPoolsService) Delete(project string, region string, targetPool string) *TargetPoolsDeleteCall {
169086	c := &TargetPoolsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
169087	c.project = project
169088	c.region = region
169089	c.targetPool = targetPool
169090	return c
169091}
169092
169093// RequestId sets the optional parameter "requestId": An optional
169094// request ID to identify requests. Specify a unique request ID so that
169095// if you must retry your request, the server will know to ignore the
169096// request if it has already been completed.
169097//
169098// For example, consider a situation where you make an initial request
169099// and the request times out. If you make the request again with the
169100// same request ID, the server can check if original operation with the
169101// same request ID was received, and if so, will ignore the second
169102// request. This prevents clients from accidentally creating duplicate
169103// commitments.
169104//
169105// The request ID must be a valid UUID with the exception that zero UUID
169106// is not supported (00000000-0000-0000-0000-000000000000).
169107func (c *TargetPoolsDeleteCall) RequestId(requestId string) *TargetPoolsDeleteCall {
169108	c.urlParams_.Set("requestId", requestId)
169109	return c
169110}
169111
169112// Fields allows partial responses to be retrieved. See
169113// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
169114// for more information.
169115func (c *TargetPoolsDeleteCall) Fields(s ...googleapi.Field) *TargetPoolsDeleteCall {
169116	c.urlParams_.Set("fields", googleapi.CombineFields(s))
169117	return c
169118}
169119
169120// Context sets the context to be used in this call's Do method. Any
169121// pending HTTP request will be aborted if the provided context is
169122// canceled.
169123func (c *TargetPoolsDeleteCall) Context(ctx context.Context) *TargetPoolsDeleteCall {
169124	c.ctx_ = ctx
169125	return c
169126}
169127
169128// Header returns an http.Header that can be modified by the caller to
169129// add HTTP headers to the request.
169130func (c *TargetPoolsDeleteCall) Header() http.Header {
169131	if c.header_ == nil {
169132		c.header_ = make(http.Header)
169133	}
169134	return c.header_
169135}
169136
169137func (c *TargetPoolsDeleteCall) doRequest(alt string) (*http.Response, error) {
169138	reqHeaders := make(http.Header)
169139	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
169140	for k, v := range c.header_ {
169141		reqHeaders[k] = v
169142	}
169143	reqHeaders.Set("User-Agent", c.s.userAgent())
169144	var body io.Reader = nil
169145	c.urlParams_.Set("alt", alt)
169146	c.urlParams_.Set("prettyPrint", "false")
169147	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}")
169148	urls += "?" + c.urlParams_.Encode()
169149	req, err := http.NewRequest("DELETE", urls, body)
169150	if err != nil {
169151		return nil, err
169152	}
169153	req.Header = reqHeaders
169154	googleapi.Expand(req.URL, map[string]string{
169155		"project":    c.project,
169156		"region":     c.region,
169157		"targetPool": c.targetPool,
169158	})
169159	return gensupport.SendRequest(c.ctx_, c.s.client, req)
169160}
169161
169162// Do executes the "compute.targetPools.delete" call.
169163// Exactly one of *Operation or error will be non-nil. Any non-2xx
169164// status code is an error. Response headers are in either
169165// *Operation.ServerResponse.Header or (if a response was returned at
169166// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
169167// to check whether the returned error was because
169168// http.StatusNotModified was returned.
169169func (c *TargetPoolsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
169170	gensupport.SetOptions(c.urlParams_, opts...)
169171	res, err := c.doRequest("json")
169172	if res != nil && res.StatusCode == http.StatusNotModified {
169173		if res.Body != nil {
169174			res.Body.Close()
169175		}
169176		return nil, &googleapi.Error{
169177			Code:   res.StatusCode,
169178			Header: res.Header,
169179		}
169180	}
169181	if err != nil {
169182		return nil, err
169183	}
169184	defer googleapi.CloseBody(res)
169185	if err := googleapi.CheckResponse(res); err != nil {
169186		return nil, err
169187	}
169188	ret := &Operation{
169189		ServerResponse: googleapi.ServerResponse{
169190			Header:         res.Header,
169191			HTTPStatusCode: res.StatusCode,
169192		},
169193	}
169194	target := &ret
169195	if err := gensupport.DecodeResponse(target, res); err != nil {
169196		return nil, err
169197	}
169198	return ret, nil
169199	// {
169200	//   "description": "Deletes the specified target pool.",
169201	//   "httpMethod": "DELETE",
169202	//   "id": "compute.targetPools.delete",
169203	//   "parameterOrder": [
169204	//     "project",
169205	//     "region",
169206	//     "targetPool"
169207	//   ],
169208	//   "parameters": {
169209	//     "project": {
169210	//       "description": "Project ID for this request.",
169211	//       "location": "path",
169212	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
169213	//       "required": true,
169214	//       "type": "string"
169215	//     },
169216	//     "region": {
169217	//       "description": "Name of the region scoping this request.",
169218	//       "location": "path",
169219	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
169220	//       "required": true,
169221	//       "type": "string"
169222	//     },
169223	//     "requestId": {
169224	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
169225	//       "location": "query",
169226	//       "type": "string"
169227	//     },
169228	//     "targetPool": {
169229	//       "description": "Name of the TargetPool resource to delete.",
169230	//       "location": "path",
169231	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
169232	//       "required": true,
169233	//       "type": "string"
169234	//     }
169235	//   },
169236	//   "path": "projects/{project}/regions/{region}/targetPools/{targetPool}",
169237	//   "response": {
169238	//     "$ref": "Operation"
169239	//   },
169240	//   "scopes": [
169241	//     "https://www.googleapis.com/auth/cloud-platform",
169242	//     "https://www.googleapis.com/auth/compute"
169243	//   ]
169244	// }
169245
169246}
169247
169248// method id "compute.targetPools.get":
169249
169250type TargetPoolsGetCall struct {
169251	s            *Service
169252	project      string
169253	region       string
169254	targetPool   string
169255	urlParams_   gensupport.URLParams
169256	ifNoneMatch_ string
169257	ctx_         context.Context
169258	header_      http.Header
169259}
169260
169261// Get: Returns the specified target pool. Gets a list of available
169262// target pools by making a list() request.
169263// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/get
169264func (r *TargetPoolsService) Get(project string, region string, targetPool string) *TargetPoolsGetCall {
169265	c := &TargetPoolsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
169266	c.project = project
169267	c.region = region
169268	c.targetPool = targetPool
169269	return c
169270}
169271
169272// Fields allows partial responses to be retrieved. See
169273// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
169274// for more information.
169275func (c *TargetPoolsGetCall) Fields(s ...googleapi.Field) *TargetPoolsGetCall {
169276	c.urlParams_.Set("fields", googleapi.CombineFields(s))
169277	return c
169278}
169279
169280// IfNoneMatch sets the optional parameter which makes the operation
169281// fail if the object's ETag matches the given value. This is useful for
169282// getting updates only after the object has changed since the last
169283// request. Use googleapi.IsNotModified to check whether the response
169284// error from Do is the result of In-None-Match.
169285func (c *TargetPoolsGetCall) IfNoneMatch(entityTag string) *TargetPoolsGetCall {
169286	c.ifNoneMatch_ = entityTag
169287	return c
169288}
169289
169290// Context sets the context to be used in this call's Do method. Any
169291// pending HTTP request will be aborted if the provided context is
169292// canceled.
169293func (c *TargetPoolsGetCall) Context(ctx context.Context) *TargetPoolsGetCall {
169294	c.ctx_ = ctx
169295	return c
169296}
169297
169298// Header returns an http.Header that can be modified by the caller to
169299// add HTTP headers to the request.
169300func (c *TargetPoolsGetCall) Header() http.Header {
169301	if c.header_ == nil {
169302		c.header_ = make(http.Header)
169303	}
169304	return c.header_
169305}
169306
169307func (c *TargetPoolsGetCall) doRequest(alt string) (*http.Response, error) {
169308	reqHeaders := make(http.Header)
169309	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
169310	for k, v := range c.header_ {
169311		reqHeaders[k] = v
169312	}
169313	reqHeaders.Set("User-Agent", c.s.userAgent())
169314	if c.ifNoneMatch_ != "" {
169315		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
169316	}
169317	var body io.Reader = nil
169318	c.urlParams_.Set("alt", alt)
169319	c.urlParams_.Set("prettyPrint", "false")
169320	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}")
169321	urls += "?" + c.urlParams_.Encode()
169322	req, err := http.NewRequest("GET", urls, body)
169323	if err != nil {
169324		return nil, err
169325	}
169326	req.Header = reqHeaders
169327	googleapi.Expand(req.URL, map[string]string{
169328		"project":    c.project,
169329		"region":     c.region,
169330		"targetPool": c.targetPool,
169331	})
169332	return gensupport.SendRequest(c.ctx_, c.s.client, req)
169333}
169334
169335// Do executes the "compute.targetPools.get" call.
169336// Exactly one of *TargetPool or error will be non-nil. Any non-2xx
169337// status code is an error. Response headers are in either
169338// *TargetPool.ServerResponse.Header or (if a response was returned at
169339// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
169340// to check whether the returned error was because
169341// http.StatusNotModified was returned.
169342func (c *TargetPoolsGetCall) Do(opts ...googleapi.CallOption) (*TargetPool, error) {
169343	gensupport.SetOptions(c.urlParams_, opts...)
169344	res, err := c.doRequest("json")
169345	if res != nil && res.StatusCode == http.StatusNotModified {
169346		if res.Body != nil {
169347			res.Body.Close()
169348		}
169349		return nil, &googleapi.Error{
169350			Code:   res.StatusCode,
169351			Header: res.Header,
169352		}
169353	}
169354	if err != nil {
169355		return nil, err
169356	}
169357	defer googleapi.CloseBody(res)
169358	if err := googleapi.CheckResponse(res); err != nil {
169359		return nil, err
169360	}
169361	ret := &TargetPool{
169362		ServerResponse: googleapi.ServerResponse{
169363			Header:         res.Header,
169364			HTTPStatusCode: res.StatusCode,
169365		},
169366	}
169367	target := &ret
169368	if err := gensupport.DecodeResponse(target, res); err != nil {
169369		return nil, err
169370	}
169371	return ret, nil
169372	// {
169373	//   "description": "Returns the specified target pool. Gets a list of available target pools by making a list() request.",
169374	//   "httpMethod": "GET",
169375	//   "id": "compute.targetPools.get",
169376	//   "parameterOrder": [
169377	//     "project",
169378	//     "region",
169379	//     "targetPool"
169380	//   ],
169381	//   "parameters": {
169382	//     "project": {
169383	//       "description": "Project ID for this request.",
169384	//       "location": "path",
169385	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
169386	//       "required": true,
169387	//       "type": "string"
169388	//     },
169389	//     "region": {
169390	//       "description": "Name of the region scoping this request.",
169391	//       "location": "path",
169392	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
169393	//       "required": true,
169394	//       "type": "string"
169395	//     },
169396	//     "targetPool": {
169397	//       "description": "Name of the TargetPool resource to return.",
169398	//       "location": "path",
169399	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
169400	//       "required": true,
169401	//       "type": "string"
169402	//     }
169403	//   },
169404	//   "path": "projects/{project}/regions/{region}/targetPools/{targetPool}",
169405	//   "response": {
169406	//     "$ref": "TargetPool"
169407	//   },
169408	//   "scopes": [
169409	//     "https://www.googleapis.com/auth/cloud-platform",
169410	//     "https://www.googleapis.com/auth/compute",
169411	//     "https://www.googleapis.com/auth/compute.readonly"
169412	//   ]
169413	// }
169414
169415}
169416
169417// method id "compute.targetPools.getHealth":
169418
169419type TargetPoolsGetHealthCall struct {
169420	s                 *Service
169421	project           string
169422	region            string
169423	targetPool        string
169424	instancereference *InstanceReference
169425	urlParams_        gensupport.URLParams
169426	ctx_              context.Context
169427	header_           http.Header
169428}
169429
169430// GetHealth: Gets the most recent health check results for each IP for
169431// the instance that is referenced by the given target pool.
169432// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/getHealth
169433func (r *TargetPoolsService) GetHealth(project string, region string, targetPool string, instancereference *InstanceReference) *TargetPoolsGetHealthCall {
169434	c := &TargetPoolsGetHealthCall{s: r.s, urlParams_: make(gensupport.URLParams)}
169435	c.project = project
169436	c.region = region
169437	c.targetPool = targetPool
169438	c.instancereference = instancereference
169439	return c
169440}
169441
169442// Fields allows partial responses to be retrieved. See
169443// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
169444// for more information.
169445func (c *TargetPoolsGetHealthCall) Fields(s ...googleapi.Field) *TargetPoolsGetHealthCall {
169446	c.urlParams_.Set("fields", googleapi.CombineFields(s))
169447	return c
169448}
169449
169450// Context sets the context to be used in this call's Do method. Any
169451// pending HTTP request will be aborted if the provided context is
169452// canceled.
169453func (c *TargetPoolsGetHealthCall) Context(ctx context.Context) *TargetPoolsGetHealthCall {
169454	c.ctx_ = ctx
169455	return c
169456}
169457
169458// Header returns an http.Header that can be modified by the caller to
169459// add HTTP headers to the request.
169460func (c *TargetPoolsGetHealthCall) Header() http.Header {
169461	if c.header_ == nil {
169462		c.header_ = make(http.Header)
169463	}
169464	return c.header_
169465}
169466
169467func (c *TargetPoolsGetHealthCall) doRequest(alt string) (*http.Response, error) {
169468	reqHeaders := make(http.Header)
169469	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
169470	for k, v := range c.header_ {
169471		reqHeaders[k] = v
169472	}
169473	reqHeaders.Set("User-Agent", c.s.userAgent())
169474	var body io.Reader = nil
169475	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancereference)
169476	if err != nil {
169477		return nil, err
169478	}
169479	reqHeaders.Set("Content-Type", "application/json")
169480	c.urlParams_.Set("alt", alt)
169481	c.urlParams_.Set("prettyPrint", "false")
169482	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}/getHealth")
169483	urls += "?" + c.urlParams_.Encode()
169484	req, err := http.NewRequest("POST", urls, body)
169485	if err != nil {
169486		return nil, err
169487	}
169488	req.Header = reqHeaders
169489	googleapi.Expand(req.URL, map[string]string{
169490		"project":    c.project,
169491		"region":     c.region,
169492		"targetPool": c.targetPool,
169493	})
169494	return gensupport.SendRequest(c.ctx_, c.s.client, req)
169495}
169496
169497// Do executes the "compute.targetPools.getHealth" call.
169498// Exactly one of *TargetPoolInstanceHealth or error will be non-nil.
169499// Any non-2xx status code is an error. Response headers are in either
169500// *TargetPoolInstanceHealth.ServerResponse.Header or (if a response was
169501// returned at all) in error.(*googleapi.Error).Header. Use
169502// googleapi.IsNotModified to check whether the returned error was
169503// because http.StatusNotModified was returned.
169504func (c *TargetPoolsGetHealthCall) Do(opts ...googleapi.CallOption) (*TargetPoolInstanceHealth, error) {
169505	gensupport.SetOptions(c.urlParams_, opts...)
169506	res, err := c.doRequest("json")
169507	if res != nil && res.StatusCode == http.StatusNotModified {
169508		if res.Body != nil {
169509			res.Body.Close()
169510		}
169511		return nil, &googleapi.Error{
169512			Code:   res.StatusCode,
169513			Header: res.Header,
169514		}
169515	}
169516	if err != nil {
169517		return nil, err
169518	}
169519	defer googleapi.CloseBody(res)
169520	if err := googleapi.CheckResponse(res); err != nil {
169521		return nil, err
169522	}
169523	ret := &TargetPoolInstanceHealth{
169524		ServerResponse: googleapi.ServerResponse{
169525			Header:         res.Header,
169526			HTTPStatusCode: res.StatusCode,
169527		},
169528	}
169529	target := &ret
169530	if err := gensupport.DecodeResponse(target, res); err != nil {
169531		return nil, err
169532	}
169533	return ret, nil
169534	// {
169535	//   "description": "Gets the most recent health check results for each IP for the instance that is referenced by the given target pool.",
169536	//   "httpMethod": "POST",
169537	//   "id": "compute.targetPools.getHealth",
169538	//   "parameterOrder": [
169539	//     "project",
169540	//     "region",
169541	//     "targetPool"
169542	//   ],
169543	//   "parameters": {
169544	//     "project": {
169545	//       "description": "Project ID for this request.",
169546	//       "location": "path",
169547	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
169548	//       "required": true,
169549	//       "type": "string"
169550	//     },
169551	//     "region": {
169552	//       "description": "Name of the region scoping this request.",
169553	//       "location": "path",
169554	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
169555	//       "required": true,
169556	//       "type": "string"
169557	//     },
169558	//     "targetPool": {
169559	//       "description": "Name of the TargetPool resource to which the queried instance belongs.",
169560	//       "location": "path",
169561	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
169562	//       "required": true,
169563	//       "type": "string"
169564	//     }
169565	//   },
169566	//   "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/getHealth",
169567	//   "request": {
169568	//     "$ref": "InstanceReference"
169569	//   },
169570	//   "response": {
169571	//     "$ref": "TargetPoolInstanceHealth"
169572	//   },
169573	//   "scopes": [
169574	//     "https://www.googleapis.com/auth/cloud-platform",
169575	//     "https://www.googleapis.com/auth/compute",
169576	//     "https://www.googleapis.com/auth/compute.readonly"
169577	//   ]
169578	// }
169579
169580}
169581
169582// method id "compute.targetPools.insert":
169583
169584type TargetPoolsInsertCall struct {
169585	s          *Service
169586	project    string
169587	region     string
169588	targetpool *TargetPool
169589	urlParams_ gensupport.URLParams
169590	ctx_       context.Context
169591	header_    http.Header
169592}
169593
169594// Insert: Creates a target pool in the specified project and region
169595// using the data included in the request.
169596// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/insert
169597func (r *TargetPoolsService) Insert(project string, region string, targetpool *TargetPool) *TargetPoolsInsertCall {
169598	c := &TargetPoolsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
169599	c.project = project
169600	c.region = region
169601	c.targetpool = targetpool
169602	return c
169603}
169604
169605// RequestId sets the optional parameter "requestId": An optional
169606// request ID to identify requests. Specify a unique request ID so that
169607// if you must retry your request, the server will know to ignore the
169608// request if it has already been completed.
169609//
169610// For example, consider a situation where you make an initial request
169611// and the request times out. If you make the request again with the
169612// same request ID, the server can check if original operation with the
169613// same request ID was received, and if so, will ignore the second
169614// request. This prevents clients from accidentally creating duplicate
169615// commitments.
169616//
169617// The request ID must be a valid UUID with the exception that zero UUID
169618// is not supported (00000000-0000-0000-0000-000000000000).
169619func (c *TargetPoolsInsertCall) RequestId(requestId string) *TargetPoolsInsertCall {
169620	c.urlParams_.Set("requestId", requestId)
169621	return c
169622}
169623
169624// Fields allows partial responses to be retrieved. See
169625// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
169626// for more information.
169627func (c *TargetPoolsInsertCall) Fields(s ...googleapi.Field) *TargetPoolsInsertCall {
169628	c.urlParams_.Set("fields", googleapi.CombineFields(s))
169629	return c
169630}
169631
169632// Context sets the context to be used in this call's Do method. Any
169633// pending HTTP request will be aborted if the provided context is
169634// canceled.
169635func (c *TargetPoolsInsertCall) Context(ctx context.Context) *TargetPoolsInsertCall {
169636	c.ctx_ = ctx
169637	return c
169638}
169639
169640// Header returns an http.Header that can be modified by the caller to
169641// add HTTP headers to the request.
169642func (c *TargetPoolsInsertCall) Header() http.Header {
169643	if c.header_ == nil {
169644		c.header_ = make(http.Header)
169645	}
169646	return c.header_
169647}
169648
169649func (c *TargetPoolsInsertCall) doRequest(alt string) (*http.Response, error) {
169650	reqHeaders := make(http.Header)
169651	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
169652	for k, v := range c.header_ {
169653		reqHeaders[k] = v
169654	}
169655	reqHeaders.Set("User-Agent", c.s.userAgent())
169656	var body io.Reader = nil
169657	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpool)
169658	if err != nil {
169659		return nil, err
169660	}
169661	reqHeaders.Set("Content-Type", "application/json")
169662	c.urlParams_.Set("alt", alt)
169663	c.urlParams_.Set("prettyPrint", "false")
169664	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools")
169665	urls += "?" + c.urlParams_.Encode()
169666	req, err := http.NewRequest("POST", urls, body)
169667	if err != nil {
169668		return nil, err
169669	}
169670	req.Header = reqHeaders
169671	googleapi.Expand(req.URL, map[string]string{
169672		"project": c.project,
169673		"region":  c.region,
169674	})
169675	return gensupport.SendRequest(c.ctx_, c.s.client, req)
169676}
169677
169678// Do executes the "compute.targetPools.insert" call.
169679// Exactly one of *Operation or error will be non-nil. Any non-2xx
169680// status code is an error. Response headers are in either
169681// *Operation.ServerResponse.Header or (if a response was returned at
169682// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
169683// to check whether the returned error was because
169684// http.StatusNotModified was returned.
169685func (c *TargetPoolsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
169686	gensupport.SetOptions(c.urlParams_, opts...)
169687	res, err := c.doRequest("json")
169688	if res != nil && res.StatusCode == http.StatusNotModified {
169689		if res.Body != nil {
169690			res.Body.Close()
169691		}
169692		return nil, &googleapi.Error{
169693			Code:   res.StatusCode,
169694			Header: res.Header,
169695		}
169696	}
169697	if err != nil {
169698		return nil, err
169699	}
169700	defer googleapi.CloseBody(res)
169701	if err := googleapi.CheckResponse(res); err != nil {
169702		return nil, err
169703	}
169704	ret := &Operation{
169705		ServerResponse: googleapi.ServerResponse{
169706			Header:         res.Header,
169707			HTTPStatusCode: res.StatusCode,
169708		},
169709	}
169710	target := &ret
169711	if err := gensupport.DecodeResponse(target, res); err != nil {
169712		return nil, err
169713	}
169714	return ret, nil
169715	// {
169716	//   "description": "Creates a target pool in the specified project and region using the data included in the request.",
169717	//   "httpMethod": "POST",
169718	//   "id": "compute.targetPools.insert",
169719	//   "parameterOrder": [
169720	//     "project",
169721	//     "region"
169722	//   ],
169723	//   "parameters": {
169724	//     "project": {
169725	//       "description": "Project ID for this request.",
169726	//       "location": "path",
169727	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
169728	//       "required": true,
169729	//       "type": "string"
169730	//     },
169731	//     "region": {
169732	//       "description": "Name of the region scoping this request.",
169733	//       "location": "path",
169734	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
169735	//       "required": true,
169736	//       "type": "string"
169737	//     },
169738	//     "requestId": {
169739	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
169740	//       "location": "query",
169741	//       "type": "string"
169742	//     }
169743	//   },
169744	//   "path": "projects/{project}/regions/{region}/targetPools",
169745	//   "request": {
169746	//     "$ref": "TargetPool"
169747	//   },
169748	//   "response": {
169749	//     "$ref": "Operation"
169750	//   },
169751	//   "scopes": [
169752	//     "https://www.googleapis.com/auth/cloud-platform",
169753	//     "https://www.googleapis.com/auth/compute"
169754	//   ]
169755	// }
169756
169757}
169758
169759// method id "compute.targetPools.list":
169760
169761type TargetPoolsListCall struct {
169762	s            *Service
169763	project      string
169764	region       string
169765	urlParams_   gensupport.URLParams
169766	ifNoneMatch_ string
169767	ctx_         context.Context
169768	header_      http.Header
169769}
169770
169771// List: Retrieves a list of target pools available to the specified
169772// project and region.
169773// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/list
169774func (r *TargetPoolsService) List(project string, region string) *TargetPoolsListCall {
169775	c := &TargetPoolsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
169776	c.project = project
169777	c.region = region
169778	return c
169779}
169780
169781// Filter sets the optional parameter "filter": A filter expression that
169782// filters resources listed in the response. The expression must specify
169783// the field name, a comparison operator, and the value that you want to
169784// use for filtering. The value must be a string, a number, or a
169785// boolean. The comparison operator must be either `=`, `!=`, `>`, or
169786// `<`.
169787//
169788// For example, if you are filtering Compute Engine instances, you can
169789// exclude instances named `example-instance` by specifying `name !=
169790// example-instance`.
169791//
169792// You can also filter nested fields. For example, you could specify
169793// `scheduling.automaticRestart = false` to include instances only if
169794// they are not scheduled for automatic restarts. You can use filtering
169795// on nested fields to filter based on resource labels.
169796//
169797// To filter on multiple expressions, provide each separate expression
169798// within parentheses. For example: ``` (scheduling.automaticRestart =
169799// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
169800// is an `AND` expression. However, you can include `AND` and `OR`
169801// expressions explicitly. For example: ``` (cpuPlatform = "Intel
169802// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
169803// (scheduling.automaticRestart = true) ```
169804func (c *TargetPoolsListCall) Filter(filter string) *TargetPoolsListCall {
169805	c.urlParams_.Set("filter", filter)
169806	return c
169807}
169808
169809// MaxResults sets the optional parameter "maxResults": The maximum
169810// number of results per page that should be returned. If the number of
169811// available results is larger than `maxResults`, Compute Engine returns
169812// a `nextPageToken` that can be used to get the next page of results in
169813// subsequent list requests. Acceptable values are `0` to `500`,
169814// inclusive. (Default: `500`)
169815func (c *TargetPoolsListCall) MaxResults(maxResults int64) *TargetPoolsListCall {
169816	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
169817	return c
169818}
169819
169820// OrderBy sets the optional parameter "orderBy": Sorts list results by
169821// a certain order. By default, results are returned in alphanumerical
169822// order based on the resource name.
169823//
169824// You can also sort results in descending order based on the creation
169825// timestamp using `orderBy="creationTimestamp desc". This sorts
169826// results based on the `creationTimestamp` field in reverse
169827// chronological order (newest result first). Use this to sort resources
169828// like operations so that the newest operation is returned
169829// first.
169830//
169831// Currently, only sorting by `name` or `creationTimestamp desc` is
169832// supported.
169833func (c *TargetPoolsListCall) OrderBy(orderBy string) *TargetPoolsListCall {
169834	c.urlParams_.Set("orderBy", orderBy)
169835	return c
169836}
169837
169838// PageToken sets the optional parameter "pageToken": Specifies a page
169839// token to use. Set `pageToken` to the `nextPageToken` returned by a
169840// previous list request to get the next page of results.
169841func (c *TargetPoolsListCall) PageToken(pageToken string) *TargetPoolsListCall {
169842	c.urlParams_.Set("pageToken", pageToken)
169843	return c
169844}
169845
169846// ReturnPartialSuccess sets the optional parameter
169847// "returnPartialSuccess": Opt-in for partial success behavior which
169848// provides partial results in case of failure. The default value is
169849// false.
169850func (c *TargetPoolsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetPoolsListCall {
169851	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
169852	return c
169853}
169854
169855// Fields allows partial responses to be retrieved. See
169856// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
169857// for more information.
169858func (c *TargetPoolsListCall) Fields(s ...googleapi.Field) *TargetPoolsListCall {
169859	c.urlParams_.Set("fields", googleapi.CombineFields(s))
169860	return c
169861}
169862
169863// IfNoneMatch sets the optional parameter which makes the operation
169864// fail if the object's ETag matches the given value. This is useful for
169865// getting updates only after the object has changed since the last
169866// request. Use googleapi.IsNotModified to check whether the response
169867// error from Do is the result of In-None-Match.
169868func (c *TargetPoolsListCall) IfNoneMatch(entityTag string) *TargetPoolsListCall {
169869	c.ifNoneMatch_ = entityTag
169870	return c
169871}
169872
169873// Context sets the context to be used in this call's Do method. Any
169874// pending HTTP request will be aborted if the provided context is
169875// canceled.
169876func (c *TargetPoolsListCall) Context(ctx context.Context) *TargetPoolsListCall {
169877	c.ctx_ = ctx
169878	return c
169879}
169880
169881// Header returns an http.Header that can be modified by the caller to
169882// add HTTP headers to the request.
169883func (c *TargetPoolsListCall) Header() http.Header {
169884	if c.header_ == nil {
169885		c.header_ = make(http.Header)
169886	}
169887	return c.header_
169888}
169889
169890func (c *TargetPoolsListCall) doRequest(alt string) (*http.Response, error) {
169891	reqHeaders := make(http.Header)
169892	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
169893	for k, v := range c.header_ {
169894		reqHeaders[k] = v
169895	}
169896	reqHeaders.Set("User-Agent", c.s.userAgent())
169897	if c.ifNoneMatch_ != "" {
169898		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
169899	}
169900	var body io.Reader = nil
169901	c.urlParams_.Set("alt", alt)
169902	c.urlParams_.Set("prettyPrint", "false")
169903	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools")
169904	urls += "?" + c.urlParams_.Encode()
169905	req, err := http.NewRequest("GET", urls, body)
169906	if err != nil {
169907		return nil, err
169908	}
169909	req.Header = reqHeaders
169910	googleapi.Expand(req.URL, map[string]string{
169911		"project": c.project,
169912		"region":  c.region,
169913	})
169914	return gensupport.SendRequest(c.ctx_, c.s.client, req)
169915}
169916
169917// Do executes the "compute.targetPools.list" call.
169918// Exactly one of *TargetPoolList or error will be non-nil. Any non-2xx
169919// status code is an error. Response headers are in either
169920// *TargetPoolList.ServerResponse.Header or (if a response was returned
169921// at all) in error.(*googleapi.Error).Header. Use
169922// googleapi.IsNotModified to check whether the returned error was
169923// because http.StatusNotModified was returned.
169924func (c *TargetPoolsListCall) Do(opts ...googleapi.CallOption) (*TargetPoolList, error) {
169925	gensupport.SetOptions(c.urlParams_, opts...)
169926	res, err := c.doRequest("json")
169927	if res != nil && res.StatusCode == http.StatusNotModified {
169928		if res.Body != nil {
169929			res.Body.Close()
169930		}
169931		return nil, &googleapi.Error{
169932			Code:   res.StatusCode,
169933			Header: res.Header,
169934		}
169935	}
169936	if err != nil {
169937		return nil, err
169938	}
169939	defer googleapi.CloseBody(res)
169940	if err := googleapi.CheckResponse(res); err != nil {
169941		return nil, err
169942	}
169943	ret := &TargetPoolList{
169944		ServerResponse: googleapi.ServerResponse{
169945			Header:         res.Header,
169946			HTTPStatusCode: res.StatusCode,
169947		},
169948	}
169949	target := &ret
169950	if err := gensupport.DecodeResponse(target, res); err != nil {
169951		return nil, err
169952	}
169953	return ret, nil
169954	// {
169955	//   "description": "Retrieves a list of target pools available to the specified project and region.",
169956	//   "httpMethod": "GET",
169957	//   "id": "compute.targetPools.list",
169958	//   "parameterOrder": [
169959	//     "project",
169960	//     "region"
169961	//   ],
169962	//   "parameters": {
169963	//     "filter": {
169964	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
169965	//       "location": "query",
169966	//       "type": "string"
169967	//     },
169968	//     "maxResults": {
169969	//       "default": "500",
169970	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
169971	//       "format": "uint32",
169972	//       "location": "query",
169973	//       "minimum": "0",
169974	//       "type": "integer"
169975	//     },
169976	//     "orderBy": {
169977	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
169978	//       "location": "query",
169979	//       "type": "string"
169980	//     },
169981	//     "pageToken": {
169982	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
169983	//       "location": "query",
169984	//       "type": "string"
169985	//     },
169986	//     "project": {
169987	//       "description": "Project ID for this request.",
169988	//       "location": "path",
169989	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
169990	//       "required": true,
169991	//       "type": "string"
169992	//     },
169993	//     "region": {
169994	//       "description": "Name of the region scoping this request.",
169995	//       "location": "path",
169996	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
169997	//       "required": true,
169998	//       "type": "string"
169999	//     },
170000	//     "returnPartialSuccess": {
170001	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
170002	//       "location": "query",
170003	//       "type": "boolean"
170004	//     }
170005	//   },
170006	//   "path": "projects/{project}/regions/{region}/targetPools",
170007	//   "response": {
170008	//     "$ref": "TargetPoolList"
170009	//   },
170010	//   "scopes": [
170011	//     "https://www.googleapis.com/auth/cloud-platform",
170012	//     "https://www.googleapis.com/auth/compute",
170013	//     "https://www.googleapis.com/auth/compute.readonly"
170014	//   ]
170015	// }
170016
170017}
170018
170019// Pages invokes f for each page of results.
170020// A non-nil error returned from f will halt the iteration.
170021// The provided context supersedes any context provided to the Context method.
170022func (c *TargetPoolsListCall) Pages(ctx context.Context, f func(*TargetPoolList) error) error {
170023	c.ctx_ = ctx
170024	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
170025	for {
170026		x, err := c.Do()
170027		if err != nil {
170028			return err
170029		}
170030		if err := f(x); err != nil {
170031			return err
170032		}
170033		if x.NextPageToken == "" {
170034			return nil
170035		}
170036		c.PageToken(x.NextPageToken)
170037	}
170038}
170039
170040// method id "compute.targetPools.removeHealthCheck":
170041
170042type TargetPoolsRemoveHealthCheckCall struct {
170043	s                                   *Service
170044	project                             string
170045	region                              string
170046	targetPool                          string
170047	targetpoolsremovehealthcheckrequest *TargetPoolsRemoveHealthCheckRequest
170048	urlParams_                          gensupport.URLParams
170049	ctx_                                context.Context
170050	header_                             http.Header
170051}
170052
170053// RemoveHealthCheck: Removes health check URL from a target pool.
170054// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/removeHealthCheck
170055func (r *TargetPoolsService) RemoveHealthCheck(project string, region string, targetPool string, targetpoolsremovehealthcheckrequest *TargetPoolsRemoveHealthCheckRequest) *TargetPoolsRemoveHealthCheckCall {
170056	c := &TargetPoolsRemoveHealthCheckCall{s: r.s, urlParams_: make(gensupport.URLParams)}
170057	c.project = project
170058	c.region = region
170059	c.targetPool = targetPool
170060	c.targetpoolsremovehealthcheckrequest = targetpoolsremovehealthcheckrequest
170061	return c
170062}
170063
170064// RequestId sets the optional parameter "requestId": An optional
170065// request ID to identify requests. Specify a unique request ID so that
170066// if you must retry your request, the server will know to ignore the
170067// request if it has already been completed.
170068//
170069// For example, consider a situation where you make an initial request
170070// and the request times out. If you make the request again with the
170071// same request ID, the server can check if original operation with the
170072// same request ID was received, and if so, will ignore the second
170073// request. This prevents clients from accidentally creating duplicate
170074// commitments.
170075//
170076// The request ID must be a valid UUID with the exception that zero UUID
170077// is not supported (00000000-0000-0000-0000-000000000000).
170078func (c *TargetPoolsRemoveHealthCheckCall) RequestId(requestId string) *TargetPoolsRemoveHealthCheckCall {
170079	c.urlParams_.Set("requestId", requestId)
170080	return c
170081}
170082
170083// Fields allows partial responses to be retrieved. See
170084// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
170085// for more information.
170086func (c *TargetPoolsRemoveHealthCheckCall) Fields(s ...googleapi.Field) *TargetPoolsRemoveHealthCheckCall {
170087	c.urlParams_.Set("fields", googleapi.CombineFields(s))
170088	return c
170089}
170090
170091// Context sets the context to be used in this call's Do method. Any
170092// pending HTTP request will be aborted if the provided context is
170093// canceled.
170094func (c *TargetPoolsRemoveHealthCheckCall) Context(ctx context.Context) *TargetPoolsRemoveHealthCheckCall {
170095	c.ctx_ = ctx
170096	return c
170097}
170098
170099// Header returns an http.Header that can be modified by the caller to
170100// add HTTP headers to the request.
170101func (c *TargetPoolsRemoveHealthCheckCall) Header() http.Header {
170102	if c.header_ == nil {
170103		c.header_ = make(http.Header)
170104	}
170105	return c.header_
170106}
170107
170108func (c *TargetPoolsRemoveHealthCheckCall) doRequest(alt string) (*http.Response, error) {
170109	reqHeaders := make(http.Header)
170110	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
170111	for k, v := range c.header_ {
170112		reqHeaders[k] = v
170113	}
170114	reqHeaders.Set("User-Agent", c.s.userAgent())
170115	var body io.Reader = nil
170116	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsremovehealthcheckrequest)
170117	if err != nil {
170118		return nil, err
170119	}
170120	reqHeaders.Set("Content-Type", "application/json")
170121	c.urlParams_.Set("alt", alt)
170122	c.urlParams_.Set("prettyPrint", "false")
170123	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}/removeHealthCheck")
170124	urls += "?" + c.urlParams_.Encode()
170125	req, err := http.NewRequest("POST", urls, body)
170126	if err != nil {
170127		return nil, err
170128	}
170129	req.Header = reqHeaders
170130	googleapi.Expand(req.URL, map[string]string{
170131		"project":    c.project,
170132		"region":     c.region,
170133		"targetPool": c.targetPool,
170134	})
170135	return gensupport.SendRequest(c.ctx_, c.s.client, req)
170136}
170137
170138// Do executes the "compute.targetPools.removeHealthCheck" call.
170139// Exactly one of *Operation or error will be non-nil. Any non-2xx
170140// status code is an error. Response headers are in either
170141// *Operation.ServerResponse.Header or (if a response was returned at
170142// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
170143// to check whether the returned error was because
170144// http.StatusNotModified was returned.
170145func (c *TargetPoolsRemoveHealthCheckCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
170146	gensupport.SetOptions(c.urlParams_, opts...)
170147	res, err := c.doRequest("json")
170148	if res != nil && res.StatusCode == http.StatusNotModified {
170149		if res.Body != nil {
170150			res.Body.Close()
170151		}
170152		return nil, &googleapi.Error{
170153			Code:   res.StatusCode,
170154			Header: res.Header,
170155		}
170156	}
170157	if err != nil {
170158		return nil, err
170159	}
170160	defer googleapi.CloseBody(res)
170161	if err := googleapi.CheckResponse(res); err != nil {
170162		return nil, err
170163	}
170164	ret := &Operation{
170165		ServerResponse: googleapi.ServerResponse{
170166			Header:         res.Header,
170167			HTTPStatusCode: res.StatusCode,
170168		},
170169	}
170170	target := &ret
170171	if err := gensupport.DecodeResponse(target, res); err != nil {
170172		return nil, err
170173	}
170174	return ret, nil
170175	// {
170176	//   "description": "Removes health check URL from a target pool.",
170177	//   "httpMethod": "POST",
170178	//   "id": "compute.targetPools.removeHealthCheck",
170179	//   "parameterOrder": [
170180	//     "project",
170181	//     "region",
170182	//     "targetPool"
170183	//   ],
170184	//   "parameters": {
170185	//     "project": {
170186	//       "description": "Project ID for this request.",
170187	//       "location": "path",
170188	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
170189	//       "required": true,
170190	//       "type": "string"
170191	//     },
170192	//     "region": {
170193	//       "description": "Name of the region for this request.",
170194	//       "location": "path",
170195	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
170196	//       "required": true,
170197	//       "type": "string"
170198	//     },
170199	//     "requestId": {
170200	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
170201	//       "location": "query",
170202	//       "type": "string"
170203	//     },
170204	//     "targetPool": {
170205	//       "description": "Name of the target pool to remove health checks from.",
170206	//       "location": "path",
170207	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
170208	//       "required": true,
170209	//       "type": "string"
170210	//     }
170211	//   },
170212	//   "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/removeHealthCheck",
170213	//   "request": {
170214	//     "$ref": "TargetPoolsRemoveHealthCheckRequest"
170215	//   },
170216	//   "response": {
170217	//     "$ref": "Operation"
170218	//   },
170219	//   "scopes": [
170220	//     "https://www.googleapis.com/auth/cloud-platform",
170221	//     "https://www.googleapis.com/auth/compute"
170222	//   ]
170223	// }
170224
170225}
170226
170227// method id "compute.targetPools.removeInstance":
170228
170229type TargetPoolsRemoveInstanceCall struct {
170230	s                                *Service
170231	project                          string
170232	region                           string
170233	targetPool                       string
170234	targetpoolsremoveinstancerequest *TargetPoolsRemoveInstanceRequest
170235	urlParams_                       gensupport.URLParams
170236	ctx_                             context.Context
170237	header_                          http.Header
170238}
170239
170240// RemoveInstance: Removes instance URL from a target pool.
170241// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/removeInstance
170242func (r *TargetPoolsService) RemoveInstance(project string, region string, targetPool string, targetpoolsremoveinstancerequest *TargetPoolsRemoveInstanceRequest) *TargetPoolsRemoveInstanceCall {
170243	c := &TargetPoolsRemoveInstanceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
170244	c.project = project
170245	c.region = region
170246	c.targetPool = targetPool
170247	c.targetpoolsremoveinstancerequest = targetpoolsremoveinstancerequest
170248	return c
170249}
170250
170251// RequestId sets the optional parameter "requestId": An optional
170252// request ID to identify requests. Specify a unique request ID so that
170253// if you must retry your request, the server will know to ignore the
170254// request if it has already been completed.
170255//
170256// For example, consider a situation where you make an initial request
170257// and the request times out. If you make the request again with the
170258// same request ID, the server can check if original operation with the
170259// same request ID was received, and if so, will ignore the second
170260// request. This prevents clients from accidentally creating duplicate
170261// commitments.
170262//
170263// The request ID must be a valid UUID with the exception that zero UUID
170264// is not supported (00000000-0000-0000-0000-000000000000).
170265func (c *TargetPoolsRemoveInstanceCall) RequestId(requestId string) *TargetPoolsRemoveInstanceCall {
170266	c.urlParams_.Set("requestId", requestId)
170267	return c
170268}
170269
170270// Fields allows partial responses to be retrieved. See
170271// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
170272// for more information.
170273func (c *TargetPoolsRemoveInstanceCall) Fields(s ...googleapi.Field) *TargetPoolsRemoveInstanceCall {
170274	c.urlParams_.Set("fields", googleapi.CombineFields(s))
170275	return c
170276}
170277
170278// Context sets the context to be used in this call's Do method. Any
170279// pending HTTP request will be aborted if the provided context is
170280// canceled.
170281func (c *TargetPoolsRemoveInstanceCall) Context(ctx context.Context) *TargetPoolsRemoveInstanceCall {
170282	c.ctx_ = ctx
170283	return c
170284}
170285
170286// Header returns an http.Header that can be modified by the caller to
170287// add HTTP headers to the request.
170288func (c *TargetPoolsRemoveInstanceCall) Header() http.Header {
170289	if c.header_ == nil {
170290		c.header_ = make(http.Header)
170291	}
170292	return c.header_
170293}
170294
170295func (c *TargetPoolsRemoveInstanceCall) doRequest(alt string) (*http.Response, error) {
170296	reqHeaders := make(http.Header)
170297	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
170298	for k, v := range c.header_ {
170299		reqHeaders[k] = v
170300	}
170301	reqHeaders.Set("User-Agent", c.s.userAgent())
170302	var body io.Reader = nil
170303	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsremoveinstancerequest)
170304	if err != nil {
170305		return nil, err
170306	}
170307	reqHeaders.Set("Content-Type", "application/json")
170308	c.urlParams_.Set("alt", alt)
170309	c.urlParams_.Set("prettyPrint", "false")
170310	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}/removeInstance")
170311	urls += "?" + c.urlParams_.Encode()
170312	req, err := http.NewRequest("POST", urls, body)
170313	if err != nil {
170314		return nil, err
170315	}
170316	req.Header = reqHeaders
170317	googleapi.Expand(req.URL, map[string]string{
170318		"project":    c.project,
170319		"region":     c.region,
170320		"targetPool": c.targetPool,
170321	})
170322	return gensupport.SendRequest(c.ctx_, c.s.client, req)
170323}
170324
170325// Do executes the "compute.targetPools.removeInstance" call.
170326// Exactly one of *Operation or error will be non-nil. Any non-2xx
170327// status code is an error. Response headers are in either
170328// *Operation.ServerResponse.Header or (if a response was returned at
170329// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
170330// to check whether the returned error was because
170331// http.StatusNotModified was returned.
170332func (c *TargetPoolsRemoveInstanceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
170333	gensupport.SetOptions(c.urlParams_, opts...)
170334	res, err := c.doRequest("json")
170335	if res != nil && res.StatusCode == http.StatusNotModified {
170336		if res.Body != nil {
170337			res.Body.Close()
170338		}
170339		return nil, &googleapi.Error{
170340			Code:   res.StatusCode,
170341			Header: res.Header,
170342		}
170343	}
170344	if err != nil {
170345		return nil, err
170346	}
170347	defer googleapi.CloseBody(res)
170348	if err := googleapi.CheckResponse(res); err != nil {
170349		return nil, err
170350	}
170351	ret := &Operation{
170352		ServerResponse: googleapi.ServerResponse{
170353			Header:         res.Header,
170354			HTTPStatusCode: res.StatusCode,
170355		},
170356	}
170357	target := &ret
170358	if err := gensupport.DecodeResponse(target, res); err != nil {
170359		return nil, err
170360	}
170361	return ret, nil
170362	// {
170363	//   "description": "Removes instance URL from a target pool.",
170364	//   "httpMethod": "POST",
170365	//   "id": "compute.targetPools.removeInstance",
170366	//   "parameterOrder": [
170367	//     "project",
170368	//     "region",
170369	//     "targetPool"
170370	//   ],
170371	//   "parameters": {
170372	//     "project": {
170373	//       "description": "Project ID for this request.",
170374	//       "location": "path",
170375	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
170376	//       "required": true,
170377	//       "type": "string"
170378	//     },
170379	//     "region": {
170380	//       "description": "Name of the region scoping this request.",
170381	//       "location": "path",
170382	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
170383	//       "required": true,
170384	//       "type": "string"
170385	//     },
170386	//     "requestId": {
170387	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
170388	//       "location": "query",
170389	//       "type": "string"
170390	//     },
170391	//     "targetPool": {
170392	//       "description": "Name of the TargetPool resource to remove instances from.",
170393	//       "location": "path",
170394	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
170395	//       "required": true,
170396	//       "type": "string"
170397	//     }
170398	//   },
170399	//   "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/removeInstance",
170400	//   "request": {
170401	//     "$ref": "TargetPoolsRemoveInstanceRequest"
170402	//   },
170403	//   "response": {
170404	//     "$ref": "Operation"
170405	//   },
170406	//   "scopes": [
170407	//     "https://www.googleapis.com/auth/cloud-platform",
170408	//     "https://www.googleapis.com/auth/compute"
170409	//   ]
170410	// }
170411
170412}
170413
170414// method id "compute.targetPools.setBackup":
170415
170416type TargetPoolsSetBackupCall struct {
170417	s               *Service
170418	project         string
170419	region          string
170420	targetPool      string
170421	targetreference *TargetReference
170422	urlParams_      gensupport.URLParams
170423	ctx_            context.Context
170424	header_         http.Header
170425}
170426
170427// SetBackup: Changes a backup target pool's configurations.
170428// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/setBackup
170429func (r *TargetPoolsService) SetBackup(project string, region string, targetPool string, targetreference *TargetReference) *TargetPoolsSetBackupCall {
170430	c := &TargetPoolsSetBackupCall{s: r.s, urlParams_: make(gensupport.URLParams)}
170431	c.project = project
170432	c.region = region
170433	c.targetPool = targetPool
170434	c.targetreference = targetreference
170435	return c
170436}
170437
170438// FailoverRatio sets the optional parameter "failoverRatio": New
170439// failoverRatio value for the target pool.
170440func (c *TargetPoolsSetBackupCall) FailoverRatio(failoverRatio float64) *TargetPoolsSetBackupCall {
170441	c.urlParams_.Set("failoverRatio", fmt.Sprint(failoverRatio))
170442	return c
170443}
170444
170445// RequestId sets the optional parameter "requestId": An optional
170446// request ID to identify requests. Specify a unique request ID so that
170447// if you must retry your request, the server will know to ignore the
170448// request if it has already been completed.
170449//
170450// For example, consider a situation where you make an initial request
170451// and the request times out. If you make the request again with the
170452// same request ID, the server can check if original operation with the
170453// same request ID was received, and if so, will ignore the second
170454// request. This prevents clients from accidentally creating duplicate
170455// commitments.
170456//
170457// The request ID must be a valid UUID with the exception that zero UUID
170458// is not supported (00000000-0000-0000-0000-000000000000).
170459func (c *TargetPoolsSetBackupCall) RequestId(requestId string) *TargetPoolsSetBackupCall {
170460	c.urlParams_.Set("requestId", requestId)
170461	return c
170462}
170463
170464// Fields allows partial responses to be retrieved. See
170465// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
170466// for more information.
170467func (c *TargetPoolsSetBackupCall) Fields(s ...googleapi.Field) *TargetPoolsSetBackupCall {
170468	c.urlParams_.Set("fields", googleapi.CombineFields(s))
170469	return c
170470}
170471
170472// Context sets the context to be used in this call's Do method. Any
170473// pending HTTP request will be aborted if the provided context is
170474// canceled.
170475func (c *TargetPoolsSetBackupCall) Context(ctx context.Context) *TargetPoolsSetBackupCall {
170476	c.ctx_ = ctx
170477	return c
170478}
170479
170480// Header returns an http.Header that can be modified by the caller to
170481// add HTTP headers to the request.
170482func (c *TargetPoolsSetBackupCall) Header() http.Header {
170483	if c.header_ == nil {
170484		c.header_ = make(http.Header)
170485	}
170486	return c.header_
170487}
170488
170489func (c *TargetPoolsSetBackupCall) doRequest(alt string) (*http.Response, error) {
170490	reqHeaders := make(http.Header)
170491	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
170492	for k, v := range c.header_ {
170493		reqHeaders[k] = v
170494	}
170495	reqHeaders.Set("User-Agent", c.s.userAgent())
170496	var body io.Reader = nil
170497	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetreference)
170498	if err != nil {
170499		return nil, err
170500	}
170501	reqHeaders.Set("Content-Type", "application/json")
170502	c.urlParams_.Set("alt", alt)
170503	c.urlParams_.Set("prettyPrint", "false")
170504	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}/setBackup")
170505	urls += "?" + c.urlParams_.Encode()
170506	req, err := http.NewRequest("POST", urls, body)
170507	if err != nil {
170508		return nil, err
170509	}
170510	req.Header = reqHeaders
170511	googleapi.Expand(req.URL, map[string]string{
170512		"project":    c.project,
170513		"region":     c.region,
170514		"targetPool": c.targetPool,
170515	})
170516	return gensupport.SendRequest(c.ctx_, c.s.client, req)
170517}
170518
170519// Do executes the "compute.targetPools.setBackup" call.
170520// Exactly one of *Operation or error will be non-nil. Any non-2xx
170521// status code is an error. Response headers are in either
170522// *Operation.ServerResponse.Header or (if a response was returned at
170523// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
170524// to check whether the returned error was because
170525// http.StatusNotModified was returned.
170526func (c *TargetPoolsSetBackupCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
170527	gensupport.SetOptions(c.urlParams_, opts...)
170528	res, err := c.doRequest("json")
170529	if res != nil && res.StatusCode == http.StatusNotModified {
170530		if res.Body != nil {
170531			res.Body.Close()
170532		}
170533		return nil, &googleapi.Error{
170534			Code:   res.StatusCode,
170535			Header: res.Header,
170536		}
170537	}
170538	if err != nil {
170539		return nil, err
170540	}
170541	defer googleapi.CloseBody(res)
170542	if err := googleapi.CheckResponse(res); err != nil {
170543		return nil, err
170544	}
170545	ret := &Operation{
170546		ServerResponse: googleapi.ServerResponse{
170547			Header:         res.Header,
170548			HTTPStatusCode: res.StatusCode,
170549		},
170550	}
170551	target := &ret
170552	if err := gensupport.DecodeResponse(target, res); err != nil {
170553		return nil, err
170554	}
170555	return ret, nil
170556	// {
170557	//   "description": "Changes a backup target pool's configurations.",
170558	//   "httpMethod": "POST",
170559	//   "id": "compute.targetPools.setBackup",
170560	//   "parameterOrder": [
170561	//     "project",
170562	//     "region",
170563	//     "targetPool"
170564	//   ],
170565	//   "parameters": {
170566	//     "failoverRatio": {
170567	//       "description": "New failoverRatio value for the target pool.",
170568	//       "format": "float",
170569	//       "location": "query",
170570	//       "type": "number"
170571	//     },
170572	//     "project": {
170573	//       "description": "Project ID for this request.",
170574	//       "location": "path",
170575	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
170576	//       "required": true,
170577	//       "type": "string"
170578	//     },
170579	//     "region": {
170580	//       "description": "Name of the region scoping this request.",
170581	//       "location": "path",
170582	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
170583	//       "required": true,
170584	//       "type": "string"
170585	//     },
170586	//     "requestId": {
170587	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
170588	//       "location": "query",
170589	//       "type": "string"
170590	//     },
170591	//     "targetPool": {
170592	//       "description": "Name of the TargetPool resource to set a backup pool for.",
170593	//       "location": "path",
170594	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
170595	//       "required": true,
170596	//       "type": "string"
170597	//     }
170598	//   },
170599	//   "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/setBackup",
170600	//   "request": {
170601	//     "$ref": "TargetReference"
170602	//   },
170603	//   "response": {
170604	//     "$ref": "Operation"
170605	//   },
170606	//   "scopes": [
170607	//     "https://www.googleapis.com/auth/cloud-platform",
170608	//     "https://www.googleapis.com/auth/compute"
170609	//   ]
170610	// }
170611
170612}
170613
170614// method id "compute.targetPools.testIamPermissions":
170615
170616type TargetPoolsTestIamPermissionsCall struct {
170617	s                      *Service
170618	project                string
170619	region                 string
170620	resource               string
170621	testpermissionsrequest *TestPermissionsRequest
170622	urlParams_             gensupport.URLParams
170623	ctx_                   context.Context
170624	header_                http.Header
170625}
170626
170627// TestIamPermissions: Returns permissions that a caller has on the
170628// specified resource.
170629func (r *TargetPoolsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *TargetPoolsTestIamPermissionsCall {
170630	c := &TargetPoolsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
170631	c.project = project
170632	c.region = region
170633	c.resource = resource
170634	c.testpermissionsrequest = testpermissionsrequest
170635	return c
170636}
170637
170638// Fields allows partial responses to be retrieved. See
170639// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
170640// for more information.
170641func (c *TargetPoolsTestIamPermissionsCall) Fields(s ...googleapi.Field) *TargetPoolsTestIamPermissionsCall {
170642	c.urlParams_.Set("fields", googleapi.CombineFields(s))
170643	return c
170644}
170645
170646// Context sets the context to be used in this call's Do method. Any
170647// pending HTTP request will be aborted if the provided context is
170648// canceled.
170649func (c *TargetPoolsTestIamPermissionsCall) Context(ctx context.Context) *TargetPoolsTestIamPermissionsCall {
170650	c.ctx_ = ctx
170651	return c
170652}
170653
170654// Header returns an http.Header that can be modified by the caller to
170655// add HTTP headers to the request.
170656func (c *TargetPoolsTestIamPermissionsCall) Header() http.Header {
170657	if c.header_ == nil {
170658		c.header_ = make(http.Header)
170659	}
170660	return c.header_
170661}
170662
170663func (c *TargetPoolsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
170664	reqHeaders := make(http.Header)
170665	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
170666	for k, v := range c.header_ {
170667		reqHeaders[k] = v
170668	}
170669	reqHeaders.Set("User-Agent", c.s.userAgent())
170670	var body io.Reader = nil
170671	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
170672	if err != nil {
170673		return nil, err
170674	}
170675	reqHeaders.Set("Content-Type", "application/json")
170676	c.urlParams_.Set("alt", alt)
170677	c.urlParams_.Set("prettyPrint", "false")
170678	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{resource}/testIamPermissions")
170679	urls += "?" + c.urlParams_.Encode()
170680	req, err := http.NewRequest("POST", urls, body)
170681	if err != nil {
170682		return nil, err
170683	}
170684	req.Header = reqHeaders
170685	googleapi.Expand(req.URL, map[string]string{
170686		"project":  c.project,
170687		"region":   c.region,
170688		"resource": c.resource,
170689	})
170690	return gensupport.SendRequest(c.ctx_, c.s.client, req)
170691}
170692
170693// Do executes the "compute.targetPools.testIamPermissions" call.
170694// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
170695// non-2xx status code is an error. Response headers are in either
170696// *TestPermissionsResponse.ServerResponse.Header or (if a response was
170697// returned at all) in error.(*googleapi.Error).Header. Use
170698// googleapi.IsNotModified to check whether the returned error was
170699// because http.StatusNotModified was returned.
170700func (c *TargetPoolsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
170701	gensupport.SetOptions(c.urlParams_, opts...)
170702	res, err := c.doRequest("json")
170703	if res != nil && res.StatusCode == http.StatusNotModified {
170704		if res.Body != nil {
170705			res.Body.Close()
170706		}
170707		return nil, &googleapi.Error{
170708			Code:   res.StatusCode,
170709			Header: res.Header,
170710		}
170711	}
170712	if err != nil {
170713		return nil, err
170714	}
170715	defer googleapi.CloseBody(res)
170716	if err := googleapi.CheckResponse(res); err != nil {
170717		return nil, err
170718	}
170719	ret := &TestPermissionsResponse{
170720		ServerResponse: googleapi.ServerResponse{
170721			Header:         res.Header,
170722			HTTPStatusCode: res.StatusCode,
170723		},
170724	}
170725	target := &ret
170726	if err := gensupport.DecodeResponse(target, res); err != nil {
170727		return nil, err
170728	}
170729	return ret, nil
170730	// {
170731	//   "description": "Returns permissions that a caller has on the specified resource.",
170732	//   "httpMethod": "POST",
170733	//   "id": "compute.targetPools.testIamPermissions",
170734	//   "parameterOrder": [
170735	//     "project",
170736	//     "region",
170737	//     "resource"
170738	//   ],
170739	//   "parameters": {
170740	//     "project": {
170741	//       "description": "Project ID for this request.",
170742	//       "location": "path",
170743	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
170744	//       "required": true,
170745	//       "type": "string"
170746	//     },
170747	//     "region": {
170748	//       "description": "The name of the region for this request.",
170749	//       "location": "path",
170750	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
170751	//       "required": true,
170752	//       "type": "string"
170753	//     },
170754	//     "resource": {
170755	//       "description": "Name or id of the resource for this request.",
170756	//       "location": "path",
170757	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
170758	//       "required": true,
170759	//       "type": "string"
170760	//     }
170761	//   },
170762	//   "path": "projects/{project}/regions/{region}/targetPools/{resource}/testIamPermissions",
170763	//   "request": {
170764	//     "$ref": "TestPermissionsRequest"
170765	//   },
170766	//   "response": {
170767	//     "$ref": "TestPermissionsResponse"
170768	//   },
170769	//   "scopes": [
170770	//     "https://www.googleapis.com/auth/cloud-platform",
170771	//     "https://www.googleapis.com/auth/compute",
170772	//     "https://www.googleapis.com/auth/compute.readonly"
170773	//   ]
170774	// }
170775
170776}
170777
170778// method id "compute.targetSslProxies.delete":
170779
170780type TargetSslProxiesDeleteCall struct {
170781	s              *Service
170782	project        string
170783	targetSslProxy string
170784	urlParams_     gensupport.URLParams
170785	ctx_           context.Context
170786	header_        http.Header
170787}
170788
170789// Delete: Deletes the specified TargetSslProxy resource.
170790func (r *TargetSslProxiesService) Delete(project string, targetSslProxy string) *TargetSslProxiesDeleteCall {
170791	c := &TargetSslProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
170792	c.project = project
170793	c.targetSslProxy = targetSslProxy
170794	return c
170795}
170796
170797// RequestId sets the optional parameter "requestId": An optional
170798// request ID to identify requests. Specify a unique request ID so that
170799// if you must retry your request, the server will know to ignore the
170800// request if it has already been completed.
170801//
170802// For example, consider a situation where you make an initial request
170803// and the request times out. If you make the request again with the
170804// same request ID, the server can check if original operation with the
170805// same request ID was received, and if so, will ignore the second
170806// request. This prevents clients from accidentally creating duplicate
170807// commitments.
170808//
170809// The request ID must be a valid UUID with the exception that zero UUID
170810// is not supported (00000000-0000-0000-0000-000000000000).
170811func (c *TargetSslProxiesDeleteCall) RequestId(requestId string) *TargetSslProxiesDeleteCall {
170812	c.urlParams_.Set("requestId", requestId)
170813	return c
170814}
170815
170816// Fields allows partial responses to be retrieved. See
170817// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
170818// for more information.
170819func (c *TargetSslProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetSslProxiesDeleteCall {
170820	c.urlParams_.Set("fields", googleapi.CombineFields(s))
170821	return c
170822}
170823
170824// Context sets the context to be used in this call's Do method. Any
170825// pending HTTP request will be aborted if the provided context is
170826// canceled.
170827func (c *TargetSslProxiesDeleteCall) Context(ctx context.Context) *TargetSslProxiesDeleteCall {
170828	c.ctx_ = ctx
170829	return c
170830}
170831
170832// Header returns an http.Header that can be modified by the caller to
170833// add HTTP headers to the request.
170834func (c *TargetSslProxiesDeleteCall) Header() http.Header {
170835	if c.header_ == nil {
170836		c.header_ = make(http.Header)
170837	}
170838	return c.header_
170839}
170840
170841func (c *TargetSslProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
170842	reqHeaders := make(http.Header)
170843	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
170844	for k, v := range c.header_ {
170845		reqHeaders[k] = v
170846	}
170847	reqHeaders.Set("User-Agent", c.s.userAgent())
170848	var body io.Reader = nil
170849	c.urlParams_.Set("alt", alt)
170850	c.urlParams_.Set("prettyPrint", "false")
170851	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies/{targetSslProxy}")
170852	urls += "?" + c.urlParams_.Encode()
170853	req, err := http.NewRequest("DELETE", urls, body)
170854	if err != nil {
170855		return nil, err
170856	}
170857	req.Header = reqHeaders
170858	googleapi.Expand(req.URL, map[string]string{
170859		"project":        c.project,
170860		"targetSslProxy": c.targetSslProxy,
170861	})
170862	return gensupport.SendRequest(c.ctx_, c.s.client, req)
170863}
170864
170865// Do executes the "compute.targetSslProxies.delete" call.
170866// Exactly one of *Operation or error will be non-nil. Any non-2xx
170867// status code is an error. Response headers are in either
170868// *Operation.ServerResponse.Header or (if a response was returned at
170869// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
170870// to check whether the returned error was because
170871// http.StatusNotModified was returned.
170872func (c *TargetSslProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
170873	gensupport.SetOptions(c.urlParams_, opts...)
170874	res, err := c.doRequest("json")
170875	if res != nil && res.StatusCode == http.StatusNotModified {
170876		if res.Body != nil {
170877			res.Body.Close()
170878		}
170879		return nil, &googleapi.Error{
170880			Code:   res.StatusCode,
170881			Header: res.Header,
170882		}
170883	}
170884	if err != nil {
170885		return nil, err
170886	}
170887	defer googleapi.CloseBody(res)
170888	if err := googleapi.CheckResponse(res); err != nil {
170889		return nil, err
170890	}
170891	ret := &Operation{
170892		ServerResponse: googleapi.ServerResponse{
170893			Header:         res.Header,
170894			HTTPStatusCode: res.StatusCode,
170895		},
170896	}
170897	target := &ret
170898	if err := gensupport.DecodeResponse(target, res); err != nil {
170899		return nil, err
170900	}
170901	return ret, nil
170902	// {
170903	//   "description": "Deletes the specified TargetSslProxy resource.",
170904	//   "httpMethod": "DELETE",
170905	//   "id": "compute.targetSslProxies.delete",
170906	//   "parameterOrder": [
170907	//     "project",
170908	//     "targetSslProxy"
170909	//   ],
170910	//   "parameters": {
170911	//     "project": {
170912	//       "description": "Project ID for this request.",
170913	//       "location": "path",
170914	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
170915	//       "required": true,
170916	//       "type": "string"
170917	//     },
170918	//     "requestId": {
170919	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
170920	//       "location": "query",
170921	//       "type": "string"
170922	//     },
170923	//     "targetSslProxy": {
170924	//       "description": "Name of the TargetSslProxy resource to delete.",
170925	//       "location": "path",
170926	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
170927	//       "required": true,
170928	//       "type": "string"
170929	//     }
170930	//   },
170931	//   "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}",
170932	//   "response": {
170933	//     "$ref": "Operation"
170934	//   },
170935	//   "scopes": [
170936	//     "https://www.googleapis.com/auth/cloud-platform",
170937	//     "https://www.googleapis.com/auth/compute"
170938	//   ]
170939	// }
170940
170941}
170942
170943// method id "compute.targetSslProxies.get":
170944
170945type TargetSslProxiesGetCall struct {
170946	s              *Service
170947	project        string
170948	targetSslProxy string
170949	urlParams_     gensupport.URLParams
170950	ifNoneMatch_   string
170951	ctx_           context.Context
170952	header_        http.Header
170953}
170954
170955// Get: Returns the specified TargetSslProxy resource. Gets a list of
170956// available target SSL proxies by making a list() request.
170957func (r *TargetSslProxiesService) Get(project string, targetSslProxy string) *TargetSslProxiesGetCall {
170958	c := &TargetSslProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
170959	c.project = project
170960	c.targetSslProxy = targetSslProxy
170961	return c
170962}
170963
170964// Fields allows partial responses to be retrieved. See
170965// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
170966// for more information.
170967func (c *TargetSslProxiesGetCall) Fields(s ...googleapi.Field) *TargetSslProxiesGetCall {
170968	c.urlParams_.Set("fields", googleapi.CombineFields(s))
170969	return c
170970}
170971
170972// IfNoneMatch sets the optional parameter which makes the operation
170973// fail if the object's ETag matches the given value. This is useful for
170974// getting updates only after the object has changed since the last
170975// request. Use googleapi.IsNotModified to check whether the response
170976// error from Do is the result of In-None-Match.
170977func (c *TargetSslProxiesGetCall) IfNoneMatch(entityTag string) *TargetSslProxiesGetCall {
170978	c.ifNoneMatch_ = entityTag
170979	return c
170980}
170981
170982// Context sets the context to be used in this call's Do method. Any
170983// pending HTTP request will be aborted if the provided context is
170984// canceled.
170985func (c *TargetSslProxiesGetCall) Context(ctx context.Context) *TargetSslProxiesGetCall {
170986	c.ctx_ = ctx
170987	return c
170988}
170989
170990// Header returns an http.Header that can be modified by the caller to
170991// add HTTP headers to the request.
170992func (c *TargetSslProxiesGetCall) Header() http.Header {
170993	if c.header_ == nil {
170994		c.header_ = make(http.Header)
170995	}
170996	return c.header_
170997}
170998
170999func (c *TargetSslProxiesGetCall) doRequest(alt string) (*http.Response, error) {
171000	reqHeaders := make(http.Header)
171001	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
171002	for k, v := range c.header_ {
171003		reqHeaders[k] = v
171004	}
171005	reqHeaders.Set("User-Agent", c.s.userAgent())
171006	if c.ifNoneMatch_ != "" {
171007		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
171008	}
171009	var body io.Reader = nil
171010	c.urlParams_.Set("alt", alt)
171011	c.urlParams_.Set("prettyPrint", "false")
171012	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies/{targetSslProxy}")
171013	urls += "?" + c.urlParams_.Encode()
171014	req, err := http.NewRequest("GET", urls, body)
171015	if err != nil {
171016		return nil, err
171017	}
171018	req.Header = reqHeaders
171019	googleapi.Expand(req.URL, map[string]string{
171020		"project":        c.project,
171021		"targetSslProxy": c.targetSslProxy,
171022	})
171023	return gensupport.SendRequest(c.ctx_, c.s.client, req)
171024}
171025
171026// Do executes the "compute.targetSslProxies.get" call.
171027// Exactly one of *TargetSslProxy or error will be non-nil. Any non-2xx
171028// status code is an error. Response headers are in either
171029// *TargetSslProxy.ServerResponse.Header or (if a response was returned
171030// at all) in error.(*googleapi.Error).Header. Use
171031// googleapi.IsNotModified to check whether the returned error was
171032// because http.StatusNotModified was returned.
171033func (c *TargetSslProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetSslProxy, error) {
171034	gensupport.SetOptions(c.urlParams_, opts...)
171035	res, err := c.doRequest("json")
171036	if res != nil && res.StatusCode == http.StatusNotModified {
171037		if res.Body != nil {
171038			res.Body.Close()
171039		}
171040		return nil, &googleapi.Error{
171041			Code:   res.StatusCode,
171042			Header: res.Header,
171043		}
171044	}
171045	if err != nil {
171046		return nil, err
171047	}
171048	defer googleapi.CloseBody(res)
171049	if err := googleapi.CheckResponse(res); err != nil {
171050		return nil, err
171051	}
171052	ret := &TargetSslProxy{
171053		ServerResponse: googleapi.ServerResponse{
171054			Header:         res.Header,
171055			HTTPStatusCode: res.StatusCode,
171056		},
171057	}
171058	target := &ret
171059	if err := gensupport.DecodeResponse(target, res); err != nil {
171060		return nil, err
171061	}
171062	return ret, nil
171063	// {
171064	//   "description": "Returns the specified TargetSslProxy resource. Gets a list of available target SSL proxies by making a list() request.",
171065	//   "httpMethod": "GET",
171066	//   "id": "compute.targetSslProxies.get",
171067	//   "parameterOrder": [
171068	//     "project",
171069	//     "targetSslProxy"
171070	//   ],
171071	//   "parameters": {
171072	//     "project": {
171073	//       "description": "Project ID for this request.",
171074	//       "location": "path",
171075	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
171076	//       "required": true,
171077	//       "type": "string"
171078	//     },
171079	//     "targetSslProxy": {
171080	//       "description": "Name of the TargetSslProxy resource to return.",
171081	//       "location": "path",
171082	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
171083	//       "required": true,
171084	//       "type": "string"
171085	//     }
171086	//   },
171087	//   "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}",
171088	//   "response": {
171089	//     "$ref": "TargetSslProxy"
171090	//   },
171091	//   "scopes": [
171092	//     "https://www.googleapis.com/auth/cloud-platform",
171093	//     "https://www.googleapis.com/auth/compute",
171094	//     "https://www.googleapis.com/auth/compute.readonly"
171095	//   ]
171096	// }
171097
171098}
171099
171100// method id "compute.targetSslProxies.insert":
171101
171102type TargetSslProxiesInsertCall struct {
171103	s              *Service
171104	project        string
171105	targetsslproxy *TargetSslProxy
171106	urlParams_     gensupport.URLParams
171107	ctx_           context.Context
171108	header_        http.Header
171109}
171110
171111// Insert: Creates a TargetSslProxy resource in the specified project
171112// using the data included in the request.
171113func (r *TargetSslProxiesService) Insert(project string, targetsslproxy *TargetSslProxy) *TargetSslProxiesInsertCall {
171114	c := &TargetSslProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
171115	c.project = project
171116	c.targetsslproxy = targetsslproxy
171117	return c
171118}
171119
171120// RequestId sets the optional parameter "requestId": An optional
171121// request ID to identify requests. Specify a unique request ID so that
171122// if you must retry your request, the server will know to ignore the
171123// request if it has already been completed.
171124//
171125// For example, consider a situation where you make an initial request
171126// and the request times out. If you make the request again with the
171127// same request ID, the server can check if original operation with the
171128// same request ID was received, and if so, will ignore the second
171129// request. This prevents clients from accidentally creating duplicate
171130// commitments.
171131//
171132// The request ID must be a valid UUID with the exception that zero UUID
171133// is not supported (00000000-0000-0000-0000-000000000000).
171134func (c *TargetSslProxiesInsertCall) RequestId(requestId string) *TargetSslProxiesInsertCall {
171135	c.urlParams_.Set("requestId", requestId)
171136	return c
171137}
171138
171139// Fields allows partial responses to be retrieved. See
171140// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
171141// for more information.
171142func (c *TargetSslProxiesInsertCall) Fields(s ...googleapi.Field) *TargetSslProxiesInsertCall {
171143	c.urlParams_.Set("fields", googleapi.CombineFields(s))
171144	return c
171145}
171146
171147// Context sets the context to be used in this call's Do method. Any
171148// pending HTTP request will be aborted if the provided context is
171149// canceled.
171150func (c *TargetSslProxiesInsertCall) Context(ctx context.Context) *TargetSslProxiesInsertCall {
171151	c.ctx_ = ctx
171152	return c
171153}
171154
171155// Header returns an http.Header that can be modified by the caller to
171156// add HTTP headers to the request.
171157func (c *TargetSslProxiesInsertCall) Header() http.Header {
171158	if c.header_ == nil {
171159		c.header_ = make(http.Header)
171160	}
171161	return c.header_
171162}
171163
171164func (c *TargetSslProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
171165	reqHeaders := make(http.Header)
171166	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
171167	for k, v := range c.header_ {
171168		reqHeaders[k] = v
171169	}
171170	reqHeaders.Set("User-Agent", c.s.userAgent())
171171	var body io.Reader = nil
171172	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxy)
171173	if err != nil {
171174		return nil, err
171175	}
171176	reqHeaders.Set("Content-Type", "application/json")
171177	c.urlParams_.Set("alt", alt)
171178	c.urlParams_.Set("prettyPrint", "false")
171179	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies")
171180	urls += "?" + c.urlParams_.Encode()
171181	req, err := http.NewRequest("POST", urls, body)
171182	if err != nil {
171183		return nil, err
171184	}
171185	req.Header = reqHeaders
171186	googleapi.Expand(req.URL, map[string]string{
171187		"project": c.project,
171188	})
171189	return gensupport.SendRequest(c.ctx_, c.s.client, req)
171190}
171191
171192// Do executes the "compute.targetSslProxies.insert" call.
171193// Exactly one of *Operation or error will be non-nil. Any non-2xx
171194// status code is an error. Response headers are in either
171195// *Operation.ServerResponse.Header or (if a response was returned at
171196// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
171197// to check whether the returned error was because
171198// http.StatusNotModified was returned.
171199func (c *TargetSslProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
171200	gensupport.SetOptions(c.urlParams_, opts...)
171201	res, err := c.doRequest("json")
171202	if res != nil && res.StatusCode == http.StatusNotModified {
171203		if res.Body != nil {
171204			res.Body.Close()
171205		}
171206		return nil, &googleapi.Error{
171207			Code:   res.StatusCode,
171208			Header: res.Header,
171209		}
171210	}
171211	if err != nil {
171212		return nil, err
171213	}
171214	defer googleapi.CloseBody(res)
171215	if err := googleapi.CheckResponse(res); err != nil {
171216		return nil, err
171217	}
171218	ret := &Operation{
171219		ServerResponse: googleapi.ServerResponse{
171220			Header:         res.Header,
171221			HTTPStatusCode: res.StatusCode,
171222		},
171223	}
171224	target := &ret
171225	if err := gensupport.DecodeResponse(target, res); err != nil {
171226		return nil, err
171227	}
171228	return ret, nil
171229	// {
171230	//   "description": "Creates a TargetSslProxy resource in the specified project using the data included in the request.",
171231	//   "httpMethod": "POST",
171232	//   "id": "compute.targetSslProxies.insert",
171233	//   "parameterOrder": [
171234	//     "project"
171235	//   ],
171236	//   "parameters": {
171237	//     "project": {
171238	//       "description": "Project ID for this request.",
171239	//       "location": "path",
171240	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
171241	//       "required": true,
171242	//       "type": "string"
171243	//     },
171244	//     "requestId": {
171245	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
171246	//       "location": "query",
171247	//       "type": "string"
171248	//     }
171249	//   },
171250	//   "path": "projects/{project}/global/targetSslProxies",
171251	//   "request": {
171252	//     "$ref": "TargetSslProxy"
171253	//   },
171254	//   "response": {
171255	//     "$ref": "Operation"
171256	//   },
171257	//   "scopes": [
171258	//     "https://www.googleapis.com/auth/cloud-platform",
171259	//     "https://www.googleapis.com/auth/compute"
171260	//   ]
171261	// }
171262
171263}
171264
171265// method id "compute.targetSslProxies.list":
171266
171267type TargetSslProxiesListCall struct {
171268	s            *Service
171269	project      string
171270	urlParams_   gensupport.URLParams
171271	ifNoneMatch_ string
171272	ctx_         context.Context
171273	header_      http.Header
171274}
171275
171276// List: Retrieves the list of TargetSslProxy resources available to the
171277// specified project.
171278func (r *TargetSslProxiesService) List(project string) *TargetSslProxiesListCall {
171279	c := &TargetSslProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
171280	c.project = project
171281	return c
171282}
171283
171284// Filter sets the optional parameter "filter": A filter expression that
171285// filters resources listed in the response. The expression must specify
171286// the field name, a comparison operator, and the value that you want to
171287// use for filtering. The value must be a string, a number, or a
171288// boolean. The comparison operator must be either `=`, `!=`, `>`, or
171289// `<`.
171290//
171291// For example, if you are filtering Compute Engine instances, you can
171292// exclude instances named `example-instance` by specifying `name !=
171293// example-instance`.
171294//
171295// You can also filter nested fields. For example, you could specify
171296// `scheduling.automaticRestart = false` to include instances only if
171297// they are not scheduled for automatic restarts. You can use filtering
171298// on nested fields to filter based on resource labels.
171299//
171300// To filter on multiple expressions, provide each separate expression
171301// within parentheses. For example: ``` (scheduling.automaticRestart =
171302// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
171303// is an `AND` expression. However, you can include `AND` and `OR`
171304// expressions explicitly. For example: ``` (cpuPlatform = "Intel
171305// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
171306// (scheduling.automaticRestart = true) ```
171307func (c *TargetSslProxiesListCall) Filter(filter string) *TargetSslProxiesListCall {
171308	c.urlParams_.Set("filter", filter)
171309	return c
171310}
171311
171312// MaxResults sets the optional parameter "maxResults": The maximum
171313// number of results per page that should be returned. If the number of
171314// available results is larger than `maxResults`, Compute Engine returns
171315// a `nextPageToken` that can be used to get the next page of results in
171316// subsequent list requests. Acceptable values are `0` to `500`,
171317// inclusive. (Default: `500`)
171318func (c *TargetSslProxiesListCall) MaxResults(maxResults int64) *TargetSslProxiesListCall {
171319	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
171320	return c
171321}
171322
171323// OrderBy sets the optional parameter "orderBy": Sorts list results by
171324// a certain order. By default, results are returned in alphanumerical
171325// order based on the resource name.
171326//
171327// You can also sort results in descending order based on the creation
171328// timestamp using `orderBy="creationTimestamp desc". This sorts
171329// results based on the `creationTimestamp` field in reverse
171330// chronological order (newest result first). Use this to sort resources
171331// like operations so that the newest operation is returned
171332// first.
171333//
171334// Currently, only sorting by `name` or `creationTimestamp desc` is
171335// supported.
171336func (c *TargetSslProxiesListCall) OrderBy(orderBy string) *TargetSslProxiesListCall {
171337	c.urlParams_.Set("orderBy", orderBy)
171338	return c
171339}
171340
171341// PageToken sets the optional parameter "pageToken": Specifies a page
171342// token to use. Set `pageToken` to the `nextPageToken` returned by a
171343// previous list request to get the next page of results.
171344func (c *TargetSslProxiesListCall) PageToken(pageToken string) *TargetSslProxiesListCall {
171345	c.urlParams_.Set("pageToken", pageToken)
171346	return c
171347}
171348
171349// ReturnPartialSuccess sets the optional parameter
171350// "returnPartialSuccess": Opt-in for partial success behavior which
171351// provides partial results in case of failure. The default value is
171352// false.
171353func (c *TargetSslProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetSslProxiesListCall {
171354	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
171355	return c
171356}
171357
171358// Fields allows partial responses to be retrieved. See
171359// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
171360// for more information.
171361func (c *TargetSslProxiesListCall) Fields(s ...googleapi.Field) *TargetSslProxiesListCall {
171362	c.urlParams_.Set("fields", googleapi.CombineFields(s))
171363	return c
171364}
171365
171366// IfNoneMatch sets the optional parameter which makes the operation
171367// fail if the object's ETag matches the given value. This is useful for
171368// getting updates only after the object has changed since the last
171369// request. Use googleapi.IsNotModified to check whether the response
171370// error from Do is the result of In-None-Match.
171371func (c *TargetSslProxiesListCall) IfNoneMatch(entityTag string) *TargetSslProxiesListCall {
171372	c.ifNoneMatch_ = entityTag
171373	return c
171374}
171375
171376// Context sets the context to be used in this call's Do method. Any
171377// pending HTTP request will be aborted if the provided context is
171378// canceled.
171379func (c *TargetSslProxiesListCall) Context(ctx context.Context) *TargetSslProxiesListCall {
171380	c.ctx_ = ctx
171381	return c
171382}
171383
171384// Header returns an http.Header that can be modified by the caller to
171385// add HTTP headers to the request.
171386func (c *TargetSslProxiesListCall) Header() http.Header {
171387	if c.header_ == nil {
171388		c.header_ = make(http.Header)
171389	}
171390	return c.header_
171391}
171392
171393func (c *TargetSslProxiesListCall) doRequest(alt string) (*http.Response, error) {
171394	reqHeaders := make(http.Header)
171395	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
171396	for k, v := range c.header_ {
171397		reqHeaders[k] = v
171398	}
171399	reqHeaders.Set("User-Agent", c.s.userAgent())
171400	if c.ifNoneMatch_ != "" {
171401		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
171402	}
171403	var body io.Reader = nil
171404	c.urlParams_.Set("alt", alt)
171405	c.urlParams_.Set("prettyPrint", "false")
171406	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies")
171407	urls += "?" + c.urlParams_.Encode()
171408	req, err := http.NewRequest("GET", urls, body)
171409	if err != nil {
171410		return nil, err
171411	}
171412	req.Header = reqHeaders
171413	googleapi.Expand(req.URL, map[string]string{
171414		"project": c.project,
171415	})
171416	return gensupport.SendRequest(c.ctx_, c.s.client, req)
171417}
171418
171419// Do executes the "compute.targetSslProxies.list" call.
171420// Exactly one of *TargetSslProxyList or error will be non-nil. Any
171421// non-2xx status code is an error. Response headers are in either
171422// *TargetSslProxyList.ServerResponse.Header or (if a response was
171423// returned at all) in error.(*googleapi.Error).Header. Use
171424// googleapi.IsNotModified to check whether the returned error was
171425// because http.StatusNotModified was returned.
171426func (c *TargetSslProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetSslProxyList, error) {
171427	gensupport.SetOptions(c.urlParams_, opts...)
171428	res, err := c.doRequest("json")
171429	if res != nil && res.StatusCode == http.StatusNotModified {
171430		if res.Body != nil {
171431			res.Body.Close()
171432		}
171433		return nil, &googleapi.Error{
171434			Code:   res.StatusCode,
171435			Header: res.Header,
171436		}
171437	}
171438	if err != nil {
171439		return nil, err
171440	}
171441	defer googleapi.CloseBody(res)
171442	if err := googleapi.CheckResponse(res); err != nil {
171443		return nil, err
171444	}
171445	ret := &TargetSslProxyList{
171446		ServerResponse: googleapi.ServerResponse{
171447			Header:         res.Header,
171448			HTTPStatusCode: res.StatusCode,
171449		},
171450	}
171451	target := &ret
171452	if err := gensupport.DecodeResponse(target, res); err != nil {
171453		return nil, err
171454	}
171455	return ret, nil
171456	// {
171457	//   "description": "Retrieves the list of TargetSslProxy resources available to the specified project.",
171458	//   "httpMethod": "GET",
171459	//   "id": "compute.targetSslProxies.list",
171460	//   "parameterOrder": [
171461	//     "project"
171462	//   ],
171463	//   "parameters": {
171464	//     "filter": {
171465	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
171466	//       "location": "query",
171467	//       "type": "string"
171468	//     },
171469	//     "maxResults": {
171470	//       "default": "500",
171471	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
171472	//       "format": "uint32",
171473	//       "location": "query",
171474	//       "minimum": "0",
171475	//       "type": "integer"
171476	//     },
171477	//     "orderBy": {
171478	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
171479	//       "location": "query",
171480	//       "type": "string"
171481	//     },
171482	//     "pageToken": {
171483	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
171484	//       "location": "query",
171485	//       "type": "string"
171486	//     },
171487	//     "project": {
171488	//       "description": "Project ID for this request.",
171489	//       "location": "path",
171490	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
171491	//       "required": true,
171492	//       "type": "string"
171493	//     },
171494	//     "returnPartialSuccess": {
171495	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
171496	//       "location": "query",
171497	//       "type": "boolean"
171498	//     }
171499	//   },
171500	//   "path": "projects/{project}/global/targetSslProxies",
171501	//   "response": {
171502	//     "$ref": "TargetSslProxyList"
171503	//   },
171504	//   "scopes": [
171505	//     "https://www.googleapis.com/auth/cloud-platform",
171506	//     "https://www.googleapis.com/auth/compute",
171507	//     "https://www.googleapis.com/auth/compute.readonly"
171508	//   ]
171509	// }
171510
171511}
171512
171513// Pages invokes f for each page of results.
171514// A non-nil error returned from f will halt the iteration.
171515// The provided context supersedes any context provided to the Context method.
171516func (c *TargetSslProxiesListCall) Pages(ctx context.Context, f func(*TargetSslProxyList) error) error {
171517	c.ctx_ = ctx
171518	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
171519	for {
171520		x, err := c.Do()
171521		if err != nil {
171522			return err
171523		}
171524		if err := f(x); err != nil {
171525			return err
171526		}
171527		if x.NextPageToken == "" {
171528			return nil
171529		}
171530		c.PageToken(x.NextPageToken)
171531	}
171532}
171533
171534// method id "compute.targetSslProxies.setBackendService":
171535
171536type TargetSslProxiesSetBackendServiceCall struct {
171537	s                                        *Service
171538	project                                  string
171539	targetSslProxy                           string
171540	targetsslproxiessetbackendservicerequest *TargetSslProxiesSetBackendServiceRequest
171541	urlParams_                               gensupport.URLParams
171542	ctx_                                     context.Context
171543	header_                                  http.Header
171544}
171545
171546// SetBackendService: Changes the BackendService for TargetSslProxy.
171547func (r *TargetSslProxiesService) SetBackendService(project string, targetSslProxy string, targetsslproxiessetbackendservicerequest *TargetSslProxiesSetBackendServiceRequest) *TargetSslProxiesSetBackendServiceCall {
171548	c := &TargetSslProxiesSetBackendServiceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
171549	c.project = project
171550	c.targetSslProxy = targetSslProxy
171551	c.targetsslproxiessetbackendservicerequest = targetsslproxiessetbackendservicerequest
171552	return c
171553}
171554
171555// RequestId sets the optional parameter "requestId": An optional
171556// request ID to identify requests. Specify a unique request ID so that
171557// if you must retry your request, the server will know to ignore the
171558// request if it has already been completed.
171559//
171560// For example, consider a situation where you make an initial request
171561// and the request times out. If you make the request again with the
171562// same request ID, the server can check if original operation with the
171563// same request ID was received, and if so, will ignore the second
171564// request. This prevents clients from accidentally creating duplicate
171565// commitments.
171566//
171567// The request ID must be a valid UUID with the exception that zero UUID
171568// is not supported (00000000-0000-0000-0000-000000000000).
171569func (c *TargetSslProxiesSetBackendServiceCall) RequestId(requestId string) *TargetSslProxiesSetBackendServiceCall {
171570	c.urlParams_.Set("requestId", requestId)
171571	return c
171572}
171573
171574// Fields allows partial responses to be retrieved. See
171575// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
171576// for more information.
171577func (c *TargetSslProxiesSetBackendServiceCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetBackendServiceCall {
171578	c.urlParams_.Set("fields", googleapi.CombineFields(s))
171579	return c
171580}
171581
171582// Context sets the context to be used in this call's Do method. Any
171583// pending HTTP request will be aborted if the provided context is
171584// canceled.
171585func (c *TargetSslProxiesSetBackendServiceCall) Context(ctx context.Context) *TargetSslProxiesSetBackendServiceCall {
171586	c.ctx_ = ctx
171587	return c
171588}
171589
171590// Header returns an http.Header that can be modified by the caller to
171591// add HTTP headers to the request.
171592func (c *TargetSslProxiesSetBackendServiceCall) Header() http.Header {
171593	if c.header_ == nil {
171594		c.header_ = make(http.Header)
171595	}
171596	return c.header_
171597}
171598
171599func (c *TargetSslProxiesSetBackendServiceCall) doRequest(alt string) (*http.Response, error) {
171600	reqHeaders := make(http.Header)
171601	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
171602	for k, v := range c.header_ {
171603		reqHeaders[k] = v
171604	}
171605	reqHeaders.Set("User-Agent", c.s.userAgent())
171606	var body io.Reader = nil
171607	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxiessetbackendservicerequest)
171608	if err != nil {
171609		return nil, err
171610	}
171611	reqHeaders.Set("Content-Type", "application/json")
171612	c.urlParams_.Set("alt", alt)
171613	c.urlParams_.Set("prettyPrint", "false")
171614	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies/{targetSslProxy}/setBackendService")
171615	urls += "?" + c.urlParams_.Encode()
171616	req, err := http.NewRequest("POST", urls, body)
171617	if err != nil {
171618		return nil, err
171619	}
171620	req.Header = reqHeaders
171621	googleapi.Expand(req.URL, map[string]string{
171622		"project":        c.project,
171623		"targetSslProxy": c.targetSslProxy,
171624	})
171625	return gensupport.SendRequest(c.ctx_, c.s.client, req)
171626}
171627
171628// Do executes the "compute.targetSslProxies.setBackendService" call.
171629// Exactly one of *Operation or error will be non-nil. Any non-2xx
171630// status code is an error. Response headers are in either
171631// *Operation.ServerResponse.Header or (if a response was returned at
171632// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
171633// to check whether the returned error was because
171634// http.StatusNotModified was returned.
171635func (c *TargetSslProxiesSetBackendServiceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
171636	gensupport.SetOptions(c.urlParams_, opts...)
171637	res, err := c.doRequest("json")
171638	if res != nil && res.StatusCode == http.StatusNotModified {
171639		if res.Body != nil {
171640			res.Body.Close()
171641		}
171642		return nil, &googleapi.Error{
171643			Code:   res.StatusCode,
171644			Header: res.Header,
171645		}
171646	}
171647	if err != nil {
171648		return nil, err
171649	}
171650	defer googleapi.CloseBody(res)
171651	if err := googleapi.CheckResponse(res); err != nil {
171652		return nil, err
171653	}
171654	ret := &Operation{
171655		ServerResponse: googleapi.ServerResponse{
171656			Header:         res.Header,
171657			HTTPStatusCode: res.StatusCode,
171658		},
171659	}
171660	target := &ret
171661	if err := gensupport.DecodeResponse(target, res); err != nil {
171662		return nil, err
171663	}
171664	return ret, nil
171665	// {
171666	//   "description": "Changes the BackendService for TargetSslProxy.",
171667	//   "httpMethod": "POST",
171668	//   "id": "compute.targetSslProxies.setBackendService",
171669	//   "parameterOrder": [
171670	//     "project",
171671	//     "targetSslProxy"
171672	//   ],
171673	//   "parameters": {
171674	//     "project": {
171675	//       "description": "Project ID for this request.",
171676	//       "location": "path",
171677	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
171678	//       "required": true,
171679	//       "type": "string"
171680	//     },
171681	//     "requestId": {
171682	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
171683	//       "location": "query",
171684	//       "type": "string"
171685	//     },
171686	//     "targetSslProxy": {
171687	//       "description": "Name of the TargetSslProxy resource whose BackendService resource is to be set.",
171688	//       "location": "path",
171689	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
171690	//       "required": true,
171691	//       "type": "string"
171692	//     }
171693	//   },
171694	//   "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setBackendService",
171695	//   "request": {
171696	//     "$ref": "TargetSslProxiesSetBackendServiceRequest"
171697	//   },
171698	//   "response": {
171699	//     "$ref": "Operation"
171700	//   },
171701	//   "scopes": [
171702	//     "https://www.googleapis.com/auth/cloud-platform",
171703	//     "https://www.googleapis.com/auth/compute"
171704	//   ]
171705	// }
171706
171707}
171708
171709// method id "compute.targetSslProxies.setProxyHeader":
171710
171711type TargetSslProxiesSetProxyHeaderCall struct {
171712	s                                     *Service
171713	project                               string
171714	targetSslProxy                        string
171715	targetsslproxiessetproxyheaderrequest *TargetSslProxiesSetProxyHeaderRequest
171716	urlParams_                            gensupport.URLParams
171717	ctx_                                  context.Context
171718	header_                               http.Header
171719}
171720
171721// SetProxyHeader: Changes the ProxyHeaderType for TargetSslProxy.
171722func (r *TargetSslProxiesService) SetProxyHeader(project string, targetSslProxy string, targetsslproxiessetproxyheaderrequest *TargetSslProxiesSetProxyHeaderRequest) *TargetSslProxiesSetProxyHeaderCall {
171723	c := &TargetSslProxiesSetProxyHeaderCall{s: r.s, urlParams_: make(gensupport.URLParams)}
171724	c.project = project
171725	c.targetSslProxy = targetSslProxy
171726	c.targetsslproxiessetproxyheaderrequest = targetsslproxiessetproxyheaderrequest
171727	return c
171728}
171729
171730// RequestId sets the optional parameter "requestId": An optional
171731// request ID to identify requests. Specify a unique request ID so that
171732// if you must retry your request, the server will know to ignore the
171733// request if it has already been completed.
171734//
171735// For example, consider a situation where you make an initial request
171736// and the request times out. If you make the request again with the
171737// same request ID, the server can check if original operation with the
171738// same request ID was received, and if so, will ignore the second
171739// request. This prevents clients from accidentally creating duplicate
171740// commitments.
171741//
171742// The request ID must be a valid UUID with the exception that zero UUID
171743// is not supported (00000000-0000-0000-0000-000000000000).
171744func (c *TargetSslProxiesSetProxyHeaderCall) RequestId(requestId string) *TargetSslProxiesSetProxyHeaderCall {
171745	c.urlParams_.Set("requestId", requestId)
171746	return c
171747}
171748
171749// Fields allows partial responses to be retrieved. See
171750// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
171751// for more information.
171752func (c *TargetSslProxiesSetProxyHeaderCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetProxyHeaderCall {
171753	c.urlParams_.Set("fields", googleapi.CombineFields(s))
171754	return c
171755}
171756
171757// Context sets the context to be used in this call's Do method. Any
171758// pending HTTP request will be aborted if the provided context is
171759// canceled.
171760func (c *TargetSslProxiesSetProxyHeaderCall) Context(ctx context.Context) *TargetSslProxiesSetProxyHeaderCall {
171761	c.ctx_ = ctx
171762	return c
171763}
171764
171765// Header returns an http.Header that can be modified by the caller to
171766// add HTTP headers to the request.
171767func (c *TargetSslProxiesSetProxyHeaderCall) Header() http.Header {
171768	if c.header_ == nil {
171769		c.header_ = make(http.Header)
171770	}
171771	return c.header_
171772}
171773
171774func (c *TargetSslProxiesSetProxyHeaderCall) doRequest(alt string) (*http.Response, error) {
171775	reqHeaders := make(http.Header)
171776	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
171777	for k, v := range c.header_ {
171778		reqHeaders[k] = v
171779	}
171780	reqHeaders.Set("User-Agent", c.s.userAgent())
171781	var body io.Reader = nil
171782	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxiessetproxyheaderrequest)
171783	if err != nil {
171784		return nil, err
171785	}
171786	reqHeaders.Set("Content-Type", "application/json")
171787	c.urlParams_.Set("alt", alt)
171788	c.urlParams_.Set("prettyPrint", "false")
171789	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies/{targetSslProxy}/setProxyHeader")
171790	urls += "?" + c.urlParams_.Encode()
171791	req, err := http.NewRequest("POST", urls, body)
171792	if err != nil {
171793		return nil, err
171794	}
171795	req.Header = reqHeaders
171796	googleapi.Expand(req.URL, map[string]string{
171797		"project":        c.project,
171798		"targetSslProxy": c.targetSslProxy,
171799	})
171800	return gensupport.SendRequest(c.ctx_, c.s.client, req)
171801}
171802
171803// Do executes the "compute.targetSslProxies.setProxyHeader" call.
171804// Exactly one of *Operation or error will be non-nil. Any non-2xx
171805// status code is an error. Response headers are in either
171806// *Operation.ServerResponse.Header or (if a response was returned at
171807// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
171808// to check whether the returned error was because
171809// http.StatusNotModified was returned.
171810func (c *TargetSslProxiesSetProxyHeaderCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
171811	gensupport.SetOptions(c.urlParams_, opts...)
171812	res, err := c.doRequest("json")
171813	if res != nil && res.StatusCode == http.StatusNotModified {
171814		if res.Body != nil {
171815			res.Body.Close()
171816		}
171817		return nil, &googleapi.Error{
171818			Code:   res.StatusCode,
171819			Header: res.Header,
171820		}
171821	}
171822	if err != nil {
171823		return nil, err
171824	}
171825	defer googleapi.CloseBody(res)
171826	if err := googleapi.CheckResponse(res); err != nil {
171827		return nil, err
171828	}
171829	ret := &Operation{
171830		ServerResponse: googleapi.ServerResponse{
171831			Header:         res.Header,
171832			HTTPStatusCode: res.StatusCode,
171833		},
171834	}
171835	target := &ret
171836	if err := gensupport.DecodeResponse(target, res); err != nil {
171837		return nil, err
171838	}
171839	return ret, nil
171840	// {
171841	//   "description": "Changes the ProxyHeaderType for TargetSslProxy.",
171842	//   "httpMethod": "POST",
171843	//   "id": "compute.targetSslProxies.setProxyHeader",
171844	//   "parameterOrder": [
171845	//     "project",
171846	//     "targetSslProxy"
171847	//   ],
171848	//   "parameters": {
171849	//     "project": {
171850	//       "description": "Project ID for this request.",
171851	//       "location": "path",
171852	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
171853	//       "required": true,
171854	//       "type": "string"
171855	//     },
171856	//     "requestId": {
171857	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
171858	//       "location": "query",
171859	//       "type": "string"
171860	//     },
171861	//     "targetSslProxy": {
171862	//       "description": "Name of the TargetSslProxy resource whose ProxyHeader is to be set.",
171863	//       "location": "path",
171864	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
171865	//       "required": true,
171866	//       "type": "string"
171867	//     }
171868	//   },
171869	//   "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setProxyHeader",
171870	//   "request": {
171871	//     "$ref": "TargetSslProxiesSetProxyHeaderRequest"
171872	//   },
171873	//   "response": {
171874	//     "$ref": "Operation"
171875	//   },
171876	//   "scopes": [
171877	//     "https://www.googleapis.com/auth/cloud-platform",
171878	//     "https://www.googleapis.com/auth/compute"
171879	//   ]
171880	// }
171881
171882}
171883
171884// method id "compute.targetSslProxies.setSslCertificates":
171885
171886type TargetSslProxiesSetSslCertificatesCall struct {
171887	s                                         *Service
171888	project                                   string
171889	targetSslProxy                            string
171890	targetsslproxiessetsslcertificatesrequest *TargetSslProxiesSetSslCertificatesRequest
171891	urlParams_                                gensupport.URLParams
171892	ctx_                                      context.Context
171893	header_                                   http.Header
171894}
171895
171896// SetSslCertificates: Changes SslCertificates for TargetSslProxy.
171897func (r *TargetSslProxiesService) SetSslCertificates(project string, targetSslProxy string, targetsslproxiessetsslcertificatesrequest *TargetSslProxiesSetSslCertificatesRequest) *TargetSslProxiesSetSslCertificatesCall {
171898	c := &TargetSslProxiesSetSslCertificatesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
171899	c.project = project
171900	c.targetSslProxy = targetSslProxy
171901	c.targetsslproxiessetsslcertificatesrequest = targetsslproxiessetsslcertificatesrequest
171902	return c
171903}
171904
171905// RequestId sets the optional parameter "requestId": An optional
171906// request ID to identify requests. Specify a unique request ID so that
171907// if you must retry your request, the server will know to ignore the
171908// request if it has already been completed.
171909//
171910// For example, consider a situation where you make an initial request
171911// and the request times out. If you make the request again with the
171912// same request ID, the server can check if original operation with the
171913// same request ID was received, and if so, will ignore the second
171914// request. This prevents clients from accidentally creating duplicate
171915// commitments.
171916//
171917// The request ID must be a valid UUID with the exception that zero UUID
171918// is not supported (00000000-0000-0000-0000-000000000000).
171919func (c *TargetSslProxiesSetSslCertificatesCall) RequestId(requestId string) *TargetSslProxiesSetSslCertificatesCall {
171920	c.urlParams_.Set("requestId", requestId)
171921	return c
171922}
171923
171924// Fields allows partial responses to be retrieved. See
171925// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
171926// for more information.
171927func (c *TargetSslProxiesSetSslCertificatesCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetSslCertificatesCall {
171928	c.urlParams_.Set("fields", googleapi.CombineFields(s))
171929	return c
171930}
171931
171932// Context sets the context to be used in this call's Do method. Any
171933// pending HTTP request will be aborted if the provided context is
171934// canceled.
171935func (c *TargetSslProxiesSetSslCertificatesCall) Context(ctx context.Context) *TargetSslProxiesSetSslCertificatesCall {
171936	c.ctx_ = ctx
171937	return c
171938}
171939
171940// Header returns an http.Header that can be modified by the caller to
171941// add HTTP headers to the request.
171942func (c *TargetSslProxiesSetSslCertificatesCall) Header() http.Header {
171943	if c.header_ == nil {
171944		c.header_ = make(http.Header)
171945	}
171946	return c.header_
171947}
171948
171949func (c *TargetSslProxiesSetSslCertificatesCall) doRequest(alt string) (*http.Response, error) {
171950	reqHeaders := make(http.Header)
171951	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
171952	for k, v := range c.header_ {
171953		reqHeaders[k] = v
171954	}
171955	reqHeaders.Set("User-Agent", c.s.userAgent())
171956	var body io.Reader = nil
171957	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxiessetsslcertificatesrequest)
171958	if err != nil {
171959		return nil, err
171960	}
171961	reqHeaders.Set("Content-Type", "application/json")
171962	c.urlParams_.Set("alt", alt)
171963	c.urlParams_.Set("prettyPrint", "false")
171964	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslCertificates")
171965	urls += "?" + c.urlParams_.Encode()
171966	req, err := http.NewRequest("POST", urls, body)
171967	if err != nil {
171968		return nil, err
171969	}
171970	req.Header = reqHeaders
171971	googleapi.Expand(req.URL, map[string]string{
171972		"project":        c.project,
171973		"targetSslProxy": c.targetSslProxy,
171974	})
171975	return gensupport.SendRequest(c.ctx_, c.s.client, req)
171976}
171977
171978// Do executes the "compute.targetSslProxies.setSslCertificates" call.
171979// Exactly one of *Operation or error will be non-nil. Any non-2xx
171980// status code is an error. Response headers are in either
171981// *Operation.ServerResponse.Header or (if a response was returned at
171982// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
171983// to check whether the returned error was because
171984// http.StatusNotModified was returned.
171985func (c *TargetSslProxiesSetSslCertificatesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
171986	gensupport.SetOptions(c.urlParams_, opts...)
171987	res, err := c.doRequest("json")
171988	if res != nil && res.StatusCode == http.StatusNotModified {
171989		if res.Body != nil {
171990			res.Body.Close()
171991		}
171992		return nil, &googleapi.Error{
171993			Code:   res.StatusCode,
171994			Header: res.Header,
171995		}
171996	}
171997	if err != nil {
171998		return nil, err
171999	}
172000	defer googleapi.CloseBody(res)
172001	if err := googleapi.CheckResponse(res); err != nil {
172002		return nil, err
172003	}
172004	ret := &Operation{
172005		ServerResponse: googleapi.ServerResponse{
172006			Header:         res.Header,
172007			HTTPStatusCode: res.StatusCode,
172008		},
172009	}
172010	target := &ret
172011	if err := gensupport.DecodeResponse(target, res); err != nil {
172012		return nil, err
172013	}
172014	return ret, nil
172015	// {
172016	//   "description": "Changes SslCertificates for TargetSslProxy.",
172017	//   "httpMethod": "POST",
172018	//   "id": "compute.targetSslProxies.setSslCertificates",
172019	//   "parameterOrder": [
172020	//     "project",
172021	//     "targetSslProxy"
172022	//   ],
172023	//   "parameters": {
172024	//     "project": {
172025	//       "description": "Project ID for this request.",
172026	//       "location": "path",
172027	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
172028	//       "required": true,
172029	//       "type": "string"
172030	//     },
172031	//     "requestId": {
172032	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
172033	//       "location": "query",
172034	//       "type": "string"
172035	//     },
172036	//     "targetSslProxy": {
172037	//       "description": "Name of the TargetSslProxy resource whose SslCertificate resource is to be set.",
172038	//       "location": "path",
172039	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
172040	//       "required": true,
172041	//       "type": "string"
172042	//     }
172043	//   },
172044	//   "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslCertificates",
172045	//   "request": {
172046	//     "$ref": "TargetSslProxiesSetSslCertificatesRequest"
172047	//   },
172048	//   "response": {
172049	//     "$ref": "Operation"
172050	//   },
172051	//   "scopes": [
172052	//     "https://www.googleapis.com/auth/cloud-platform",
172053	//     "https://www.googleapis.com/auth/compute"
172054	//   ]
172055	// }
172056
172057}
172058
172059// method id "compute.targetSslProxies.setSslPolicy":
172060
172061type TargetSslProxiesSetSslPolicyCall struct {
172062	s                  *Service
172063	project            string
172064	targetSslProxy     string
172065	sslpolicyreference *SslPolicyReference
172066	urlParams_         gensupport.URLParams
172067	ctx_               context.Context
172068	header_            http.Header
172069}
172070
172071// SetSslPolicy: Sets the SSL policy for TargetSslProxy. The SSL policy
172072// specifies the server-side support for SSL features. This affects
172073// connections between clients and the SSL proxy load balancer. They do
172074// not affect the connection between the load balancer and the backends.
172075func (r *TargetSslProxiesService) SetSslPolicy(project string, targetSslProxy string, sslpolicyreference *SslPolicyReference) *TargetSslProxiesSetSslPolicyCall {
172076	c := &TargetSslProxiesSetSslPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
172077	c.project = project
172078	c.targetSslProxy = targetSslProxy
172079	c.sslpolicyreference = sslpolicyreference
172080	return c
172081}
172082
172083// RequestId sets the optional parameter "requestId": An optional
172084// request ID to identify requests. Specify a unique request ID so that
172085// if you must retry your request, the server will know to ignore the
172086// request if it has already been completed.
172087//
172088// For example, consider a situation where you make an initial request
172089// and the request times out. If you make the request again with the
172090// same request ID, the server can check if original operation with the
172091// same request ID was received, and if so, will ignore the second
172092// request. This prevents clients from accidentally creating duplicate
172093// commitments.
172094//
172095// The request ID must be a valid UUID with the exception that zero UUID
172096// is not supported (00000000-0000-0000-0000-000000000000).
172097func (c *TargetSslProxiesSetSslPolicyCall) RequestId(requestId string) *TargetSslProxiesSetSslPolicyCall {
172098	c.urlParams_.Set("requestId", requestId)
172099	return c
172100}
172101
172102// Fields allows partial responses to be retrieved. See
172103// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
172104// for more information.
172105func (c *TargetSslProxiesSetSslPolicyCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetSslPolicyCall {
172106	c.urlParams_.Set("fields", googleapi.CombineFields(s))
172107	return c
172108}
172109
172110// Context sets the context to be used in this call's Do method. Any
172111// pending HTTP request will be aborted if the provided context is
172112// canceled.
172113func (c *TargetSslProxiesSetSslPolicyCall) Context(ctx context.Context) *TargetSslProxiesSetSslPolicyCall {
172114	c.ctx_ = ctx
172115	return c
172116}
172117
172118// Header returns an http.Header that can be modified by the caller to
172119// add HTTP headers to the request.
172120func (c *TargetSslProxiesSetSslPolicyCall) Header() http.Header {
172121	if c.header_ == nil {
172122		c.header_ = make(http.Header)
172123	}
172124	return c.header_
172125}
172126
172127func (c *TargetSslProxiesSetSslPolicyCall) doRequest(alt string) (*http.Response, error) {
172128	reqHeaders := make(http.Header)
172129	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
172130	for k, v := range c.header_ {
172131		reqHeaders[k] = v
172132	}
172133	reqHeaders.Set("User-Agent", c.s.userAgent())
172134	var body io.Reader = nil
172135	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicyreference)
172136	if err != nil {
172137		return nil, err
172138	}
172139	reqHeaders.Set("Content-Type", "application/json")
172140	c.urlParams_.Set("alt", alt)
172141	c.urlParams_.Set("prettyPrint", "false")
172142	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslPolicy")
172143	urls += "?" + c.urlParams_.Encode()
172144	req, err := http.NewRequest("POST", urls, body)
172145	if err != nil {
172146		return nil, err
172147	}
172148	req.Header = reqHeaders
172149	googleapi.Expand(req.URL, map[string]string{
172150		"project":        c.project,
172151		"targetSslProxy": c.targetSslProxy,
172152	})
172153	return gensupport.SendRequest(c.ctx_, c.s.client, req)
172154}
172155
172156// Do executes the "compute.targetSslProxies.setSslPolicy" call.
172157// Exactly one of *Operation or error will be non-nil. Any non-2xx
172158// status code is an error. Response headers are in either
172159// *Operation.ServerResponse.Header or (if a response was returned at
172160// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
172161// to check whether the returned error was because
172162// http.StatusNotModified was returned.
172163func (c *TargetSslProxiesSetSslPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
172164	gensupport.SetOptions(c.urlParams_, opts...)
172165	res, err := c.doRequest("json")
172166	if res != nil && res.StatusCode == http.StatusNotModified {
172167		if res.Body != nil {
172168			res.Body.Close()
172169		}
172170		return nil, &googleapi.Error{
172171			Code:   res.StatusCode,
172172			Header: res.Header,
172173		}
172174	}
172175	if err != nil {
172176		return nil, err
172177	}
172178	defer googleapi.CloseBody(res)
172179	if err := googleapi.CheckResponse(res); err != nil {
172180		return nil, err
172181	}
172182	ret := &Operation{
172183		ServerResponse: googleapi.ServerResponse{
172184			Header:         res.Header,
172185			HTTPStatusCode: res.StatusCode,
172186		},
172187	}
172188	target := &ret
172189	if err := gensupport.DecodeResponse(target, res); err != nil {
172190		return nil, err
172191	}
172192	return ret, nil
172193	// {
172194	//   "description": "Sets the SSL policy for TargetSslProxy. The SSL policy specifies the server-side support for SSL features. This affects connections between clients and the SSL proxy load balancer. They do not affect the connection between the load balancer and the backends.",
172195	//   "httpMethod": "POST",
172196	//   "id": "compute.targetSslProxies.setSslPolicy",
172197	//   "parameterOrder": [
172198	//     "project",
172199	//     "targetSslProxy"
172200	//   ],
172201	//   "parameters": {
172202	//     "project": {
172203	//       "description": "Project ID for this request.",
172204	//       "location": "path",
172205	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
172206	//       "required": true,
172207	//       "type": "string"
172208	//     },
172209	//     "requestId": {
172210	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
172211	//       "location": "query",
172212	//       "type": "string"
172213	//     },
172214	//     "targetSslProxy": {
172215	//       "description": "Name of the TargetSslProxy resource whose SSL policy is to be set. The name must be 1-63 characters long, and comply with RFC1035.",
172216	//       "location": "path",
172217	//       "required": true,
172218	//       "type": "string"
172219	//     }
172220	//   },
172221	//   "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslPolicy",
172222	//   "request": {
172223	//     "$ref": "SslPolicyReference"
172224	//   },
172225	//   "response": {
172226	//     "$ref": "Operation"
172227	//   },
172228	//   "scopes": [
172229	//     "https://www.googleapis.com/auth/cloud-platform",
172230	//     "https://www.googleapis.com/auth/compute"
172231	//   ]
172232	// }
172233
172234}
172235
172236// method id "compute.targetSslProxies.testIamPermissions":
172237
172238type TargetSslProxiesTestIamPermissionsCall struct {
172239	s                      *Service
172240	project                string
172241	resource               string
172242	testpermissionsrequest *TestPermissionsRequest
172243	urlParams_             gensupport.URLParams
172244	ctx_                   context.Context
172245	header_                http.Header
172246}
172247
172248// TestIamPermissions: Returns permissions that a caller has on the
172249// specified resource.
172250func (r *TargetSslProxiesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *TargetSslProxiesTestIamPermissionsCall {
172251	c := &TargetSslProxiesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
172252	c.project = project
172253	c.resource = resource
172254	c.testpermissionsrequest = testpermissionsrequest
172255	return c
172256}
172257
172258// Fields allows partial responses to be retrieved. See
172259// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
172260// for more information.
172261func (c *TargetSslProxiesTestIamPermissionsCall) Fields(s ...googleapi.Field) *TargetSslProxiesTestIamPermissionsCall {
172262	c.urlParams_.Set("fields", googleapi.CombineFields(s))
172263	return c
172264}
172265
172266// Context sets the context to be used in this call's Do method. Any
172267// pending HTTP request will be aborted if the provided context is
172268// canceled.
172269func (c *TargetSslProxiesTestIamPermissionsCall) Context(ctx context.Context) *TargetSslProxiesTestIamPermissionsCall {
172270	c.ctx_ = ctx
172271	return c
172272}
172273
172274// Header returns an http.Header that can be modified by the caller to
172275// add HTTP headers to the request.
172276func (c *TargetSslProxiesTestIamPermissionsCall) Header() http.Header {
172277	if c.header_ == nil {
172278		c.header_ = make(http.Header)
172279	}
172280	return c.header_
172281}
172282
172283func (c *TargetSslProxiesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
172284	reqHeaders := make(http.Header)
172285	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
172286	for k, v := range c.header_ {
172287		reqHeaders[k] = v
172288	}
172289	reqHeaders.Set("User-Agent", c.s.userAgent())
172290	var body io.Reader = nil
172291	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
172292	if err != nil {
172293		return nil, err
172294	}
172295	reqHeaders.Set("Content-Type", "application/json")
172296	c.urlParams_.Set("alt", alt)
172297	c.urlParams_.Set("prettyPrint", "false")
172298	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies/{resource}/testIamPermissions")
172299	urls += "?" + c.urlParams_.Encode()
172300	req, err := http.NewRequest("POST", urls, body)
172301	if err != nil {
172302		return nil, err
172303	}
172304	req.Header = reqHeaders
172305	googleapi.Expand(req.URL, map[string]string{
172306		"project":  c.project,
172307		"resource": c.resource,
172308	})
172309	return gensupport.SendRequest(c.ctx_, c.s.client, req)
172310}
172311
172312// Do executes the "compute.targetSslProxies.testIamPermissions" call.
172313// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
172314// non-2xx status code is an error. Response headers are in either
172315// *TestPermissionsResponse.ServerResponse.Header or (if a response was
172316// returned at all) in error.(*googleapi.Error).Header. Use
172317// googleapi.IsNotModified to check whether the returned error was
172318// because http.StatusNotModified was returned.
172319func (c *TargetSslProxiesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
172320	gensupport.SetOptions(c.urlParams_, opts...)
172321	res, err := c.doRequest("json")
172322	if res != nil && res.StatusCode == http.StatusNotModified {
172323		if res.Body != nil {
172324			res.Body.Close()
172325		}
172326		return nil, &googleapi.Error{
172327			Code:   res.StatusCode,
172328			Header: res.Header,
172329		}
172330	}
172331	if err != nil {
172332		return nil, err
172333	}
172334	defer googleapi.CloseBody(res)
172335	if err := googleapi.CheckResponse(res); err != nil {
172336		return nil, err
172337	}
172338	ret := &TestPermissionsResponse{
172339		ServerResponse: googleapi.ServerResponse{
172340			Header:         res.Header,
172341			HTTPStatusCode: res.StatusCode,
172342		},
172343	}
172344	target := &ret
172345	if err := gensupport.DecodeResponse(target, res); err != nil {
172346		return nil, err
172347	}
172348	return ret, nil
172349	// {
172350	//   "description": "Returns permissions that a caller has on the specified resource.",
172351	//   "httpMethod": "POST",
172352	//   "id": "compute.targetSslProxies.testIamPermissions",
172353	//   "parameterOrder": [
172354	//     "project",
172355	//     "resource"
172356	//   ],
172357	//   "parameters": {
172358	//     "project": {
172359	//       "description": "Project ID for this request.",
172360	//       "location": "path",
172361	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
172362	//       "required": true,
172363	//       "type": "string"
172364	//     },
172365	//     "resource": {
172366	//       "description": "Name or id of the resource for this request.",
172367	//       "location": "path",
172368	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
172369	//       "required": true,
172370	//       "type": "string"
172371	//     }
172372	//   },
172373	//   "path": "projects/{project}/global/targetSslProxies/{resource}/testIamPermissions",
172374	//   "request": {
172375	//     "$ref": "TestPermissionsRequest"
172376	//   },
172377	//   "response": {
172378	//     "$ref": "TestPermissionsResponse"
172379	//   },
172380	//   "scopes": [
172381	//     "https://www.googleapis.com/auth/cloud-platform",
172382	//     "https://www.googleapis.com/auth/compute",
172383	//     "https://www.googleapis.com/auth/compute.readonly"
172384	//   ]
172385	// }
172386
172387}
172388
172389// method id "compute.targetTcpProxies.delete":
172390
172391type TargetTcpProxiesDeleteCall struct {
172392	s              *Service
172393	project        string
172394	targetTcpProxy string
172395	urlParams_     gensupport.URLParams
172396	ctx_           context.Context
172397	header_        http.Header
172398}
172399
172400// Delete: Deletes the specified TargetTcpProxy resource.
172401func (r *TargetTcpProxiesService) Delete(project string, targetTcpProxy string) *TargetTcpProxiesDeleteCall {
172402	c := &TargetTcpProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
172403	c.project = project
172404	c.targetTcpProxy = targetTcpProxy
172405	return c
172406}
172407
172408// RequestId sets the optional parameter "requestId": An optional
172409// request ID to identify requests. Specify a unique request ID so that
172410// if you must retry your request, the server will know to ignore the
172411// request if it has already been completed.
172412//
172413// For example, consider a situation where you make an initial request
172414// and the request times out. If you make the request again with the
172415// same request ID, the server can check if original operation with the
172416// same request ID was received, and if so, will ignore the second
172417// request. This prevents clients from accidentally creating duplicate
172418// commitments.
172419//
172420// The request ID must be a valid UUID with the exception that zero UUID
172421// is not supported (00000000-0000-0000-0000-000000000000).
172422func (c *TargetTcpProxiesDeleteCall) RequestId(requestId string) *TargetTcpProxiesDeleteCall {
172423	c.urlParams_.Set("requestId", requestId)
172424	return c
172425}
172426
172427// Fields allows partial responses to be retrieved. See
172428// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
172429// for more information.
172430func (c *TargetTcpProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetTcpProxiesDeleteCall {
172431	c.urlParams_.Set("fields", googleapi.CombineFields(s))
172432	return c
172433}
172434
172435// Context sets the context to be used in this call's Do method. Any
172436// pending HTTP request will be aborted if the provided context is
172437// canceled.
172438func (c *TargetTcpProxiesDeleteCall) Context(ctx context.Context) *TargetTcpProxiesDeleteCall {
172439	c.ctx_ = ctx
172440	return c
172441}
172442
172443// Header returns an http.Header that can be modified by the caller to
172444// add HTTP headers to the request.
172445func (c *TargetTcpProxiesDeleteCall) Header() http.Header {
172446	if c.header_ == nil {
172447		c.header_ = make(http.Header)
172448	}
172449	return c.header_
172450}
172451
172452func (c *TargetTcpProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
172453	reqHeaders := make(http.Header)
172454	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
172455	for k, v := range c.header_ {
172456		reqHeaders[k] = v
172457	}
172458	reqHeaders.Set("User-Agent", c.s.userAgent())
172459	var body io.Reader = nil
172460	c.urlParams_.Set("alt", alt)
172461	c.urlParams_.Set("prettyPrint", "false")
172462	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetTcpProxies/{targetTcpProxy}")
172463	urls += "?" + c.urlParams_.Encode()
172464	req, err := http.NewRequest("DELETE", urls, body)
172465	if err != nil {
172466		return nil, err
172467	}
172468	req.Header = reqHeaders
172469	googleapi.Expand(req.URL, map[string]string{
172470		"project":        c.project,
172471		"targetTcpProxy": c.targetTcpProxy,
172472	})
172473	return gensupport.SendRequest(c.ctx_, c.s.client, req)
172474}
172475
172476// Do executes the "compute.targetTcpProxies.delete" call.
172477// Exactly one of *Operation or error will be non-nil. Any non-2xx
172478// status code is an error. Response headers are in either
172479// *Operation.ServerResponse.Header or (if a response was returned at
172480// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
172481// to check whether the returned error was because
172482// http.StatusNotModified was returned.
172483func (c *TargetTcpProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
172484	gensupport.SetOptions(c.urlParams_, opts...)
172485	res, err := c.doRequest("json")
172486	if res != nil && res.StatusCode == http.StatusNotModified {
172487		if res.Body != nil {
172488			res.Body.Close()
172489		}
172490		return nil, &googleapi.Error{
172491			Code:   res.StatusCode,
172492			Header: res.Header,
172493		}
172494	}
172495	if err != nil {
172496		return nil, err
172497	}
172498	defer googleapi.CloseBody(res)
172499	if err := googleapi.CheckResponse(res); err != nil {
172500		return nil, err
172501	}
172502	ret := &Operation{
172503		ServerResponse: googleapi.ServerResponse{
172504			Header:         res.Header,
172505			HTTPStatusCode: res.StatusCode,
172506		},
172507	}
172508	target := &ret
172509	if err := gensupport.DecodeResponse(target, res); err != nil {
172510		return nil, err
172511	}
172512	return ret, nil
172513	// {
172514	//   "description": "Deletes the specified TargetTcpProxy resource.",
172515	//   "httpMethod": "DELETE",
172516	//   "id": "compute.targetTcpProxies.delete",
172517	//   "parameterOrder": [
172518	//     "project",
172519	//     "targetTcpProxy"
172520	//   ],
172521	//   "parameters": {
172522	//     "project": {
172523	//       "description": "Project ID for this request.",
172524	//       "location": "path",
172525	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
172526	//       "required": true,
172527	//       "type": "string"
172528	//     },
172529	//     "requestId": {
172530	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
172531	//       "location": "query",
172532	//       "type": "string"
172533	//     },
172534	//     "targetTcpProxy": {
172535	//       "description": "Name of the TargetTcpProxy resource to delete.",
172536	//       "location": "path",
172537	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
172538	//       "required": true,
172539	//       "type": "string"
172540	//     }
172541	//   },
172542	//   "path": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}",
172543	//   "response": {
172544	//     "$ref": "Operation"
172545	//   },
172546	//   "scopes": [
172547	//     "https://www.googleapis.com/auth/cloud-platform",
172548	//     "https://www.googleapis.com/auth/compute"
172549	//   ]
172550	// }
172551
172552}
172553
172554// method id "compute.targetTcpProxies.get":
172555
172556type TargetTcpProxiesGetCall struct {
172557	s              *Service
172558	project        string
172559	targetTcpProxy string
172560	urlParams_     gensupport.URLParams
172561	ifNoneMatch_   string
172562	ctx_           context.Context
172563	header_        http.Header
172564}
172565
172566// Get: Returns the specified TargetTcpProxy resource. Gets a list of
172567// available target TCP proxies by making a list() request.
172568func (r *TargetTcpProxiesService) Get(project string, targetTcpProxy string) *TargetTcpProxiesGetCall {
172569	c := &TargetTcpProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
172570	c.project = project
172571	c.targetTcpProxy = targetTcpProxy
172572	return c
172573}
172574
172575// Fields allows partial responses to be retrieved. See
172576// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
172577// for more information.
172578func (c *TargetTcpProxiesGetCall) Fields(s ...googleapi.Field) *TargetTcpProxiesGetCall {
172579	c.urlParams_.Set("fields", googleapi.CombineFields(s))
172580	return c
172581}
172582
172583// IfNoneMatch sets the optional parameter which makes the operation
172584// fail if the object's ETag matches the given value. This is useful for
172585// getting updates only after the object has changed since the last
172586// request. Use googleapi.IsNotModified to check whether the response
172587// error from Do is the result of In-None-Match.
172588func (c *TargetTcpProxiesGetCall) IfNoneMatch(entityTag string) *TargetTcpProxiesGetCall {
172589	c.ifNoneMatch_ = entityTag
172590	return c
172591}
172592
172593// Context sets the context to be used in this call's Do method. Any
172594// pending HTTP request will be aborted if the provided context is
172595// canceled.
172596func (c *TargetTcpProxiesGetCall) Context(ctx context.Context) *TargetTcpProxiesGetCall {
172597	c.ctx_ = ctx
172598	return c
172599}
172600
172601// Header returns an http.Header that can be modified by the caller to
172602// add HTTP headers to the request.
172603func (c *TargetTcpProxiesGetCall) Header() http.Header {
172604	if c.header_ == nil {
172605		c.header_ = make(http.Header)
172606	}
172607	return c.header_
172608}
172609
172610func (c *TargetTcpProxiesGetCall) doRequest(alt string) (*http.Response, error) {
172611	reqHeaders := make(http.Header)
172612	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
172613	for k, v := range c.header_ {
172614		reqHeaders[k] = v
172615	}
172616	reqHeaders.Set("User-Agent", c.s.userAgent())
172617	if c.ifNoneMatch_ != "" {
172618		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
172619	}
172620	var body io.Reader = nil
172621	c.urlParams_.Set("alt", alt)
172622	c.urlParams_.Set("prettyPrint", "false")
172623	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetTcpProxies/{targetTcpProxy}")
172624	urls += "?" + c.urlParams_.Encode()
172625	req, err := http.NewRequest("GET", urls, body)
172626	if err != nil {
172627		return nil, err
172628	}
172629	req.Header = reqHeaders
172630	googleapi.Expand(req.URL, map[string]string{
172631		"project":        c.project,
172632		"targetTcpProxy": c.targetTcpProxy,
172633	})
172634	return gensupport.SendRequest(c.ctx_, c.s.client, req)
172635}
172636
172637// Do executes the "compute.targetTcpProxies.get" call.
172638// Exactly one of *TargetTcpProxy or error will be non-nil. Any non-2xx
172639// status code is an error. Response headers are in either
172640// *TargetTcpProxy.ServerResponse.Header or (if a response was returned
172641// at all) in error.(*googleapi.Error).Header. Use
172642// googleapi.IsNotModified to check whether the returned error was
172643// because http.StatusNotModified was returned.
172644func (c *TargetTcpProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetTcpProxy, error) {
172645	gensupport.SetOptions(c.urlParams_, opts...)
172646	res, err := c.doRequest("json")
172647	if res != nil && res.StatusCode == http.StatusNotModified {
172648		if res.Body != nil {
172649			res.Body.Close()
172650		}
172651		return nil, &googleapi.Error{
172652			Code:   res.StatusCode,
172653			Header: res.Header,
172654		}
172655	}
172656	if err != nil {
172657		return nil, err
172658	}
172659	defer googleapi.CloseBody(res)
172660	if err := googleapi.CheckResponse(res); err != nil {
172661		return nil, err
172662	}
172663	ret := &TargetTcpProxy{
172664		ServerResponse: googleapi.ServerResponse{
172665			Header:         res.Header,
172666			HTTPStatusCode: res.StatusCode,
172667		},
172668	}
172669	target := &ret
172670	if err := gensupport.DecodeResponse(target, res); err != nil {
172671		return nil, err
172672	}
172673	return ret, nil
172674	// {
172675	//   "description": "Returns the specified TargetTcpProxy resource. Gets a list of available target TCP proxies by making a list() request.",
172676	//   "httpMethod": "GET",
172677	//   "id": "compute.targetTcpProxies.get",
172678	//   "parameterOrder": [
172679	//     "project",
172680	//     "targetTcpProxy"
172681	//   ],
172682	//   "parameters": {
172683	//     "project": {
172684	//       "description": "Project ID for this request.",
172685	//       "location": "path",
172686	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
172687	//       "required": true,
172688	//       "type": "string"
172689	//     },
172690	//     "targetTcpProxy": {
172691	//       "description": "Name of the TargetTcpProxy resource to return.",
172692	//       "location": "path",
172693	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
172694	//       "required": true,
172695	//       "type": "string"
172696	//     }
172697	//   },
172698	//   "path": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}",
172699	//   "response": {
172700	//     "$ref": "TargetTcpProxy"
172701	//   },
172702	//   "scopes": [
172703	//     "https://www.googleapis.com/auth/cloud-platform",
172704	//     "https://www.googleapis.com/auth/compute",
172705	//     "https://www.googleapis.com/auth/compute.readonly"
172706	//   ]
172707	// }
172708
172709}
172710
172711// method id "compute.targetTcpProxies.insert":
172712
172713type TargetTcpProxiesInsertCall struct {
172714	s              *Service
172715	project        string
172716	targettcpproxy *TargetTcpProxy
172717	urlParams_     gensupport.URLParams
172718	ctx_           context.Context
172719	header_        http.Header
172720}
172721
172722// Insert: Creates a TargetTcpProxy resource in the specified project
172723// using the data included in the request.
172724func (r *TargetTcpProxiesService) Insert(project string, targettcpproxy *TargetTcpProxy) *TargetTcpProxiesInsertCall {
172725	c := &TargetTcpProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
172726	c.project = project
172727	c.targettcpproxy = targettcpproxy
172728	return c
172729}
172730
172731// RequestId sets the optional parameter "requestId": An optional
172732// request ID to identify requests. Specify a unique request ID so that
172733// if you must retry your request, the server will know to ignore the
172734// request if it has already been completed.
172735//
172736// For example, consider a situation where you make an initial request
172737// and the request times out. If you make the request again with the
172738// same request ID, the server can check if original operation with the
172739// same request ID was received, and if so, will ignore the second
172740// request. This prevents clients from accidentally creating duplicate
172741// commitments.
172742//
172743// The request ID must be a valid UUID with the exception that zero UUID
172744// is not supported (00000000-0000-0000-0000-000000000000).
172745func (c *TargetTcpProxiesInsertCall) RequestId(requestId string) *TargetTcpProxiesInsertCall {
172746	c.urlParams_.Set("requestId", requestId)
172747	return c
172748}
172749
172750// Fields allows partial responses to be retrieved. See
172751// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
172752// for more information.
172753func (c *TargetTcpProxiesInsertCall) Fields(s ...googleapi.Field) *TargetTcpProxiesInsertCall {
172754	c.urlParams_.Set("fields", googleapi.CombineFields(s))
172755	return c
172756}
172757
172758// Context sets the context to be used in this call's Do method. Any
172759// pending HTTP request will be aborted if the provided context is
172760// canceled.
172761func (c *TargetTcpProxiesInsertCall) Context(ctx context.Context) *TargetTcpProxiesInsertCall {
172762	c.ctx_ = ctx
172763	return c
172764}
172765
172766// Header returns an http.Header that can be modified by the caller to
172767// add HTTP headers to the request.
172768func (c *TargetTcpProxiesInsertCall) Header() http.Header {
172769	if c.header_ == nil {
172770		c.header_ = make(http.Header)
172771	}
172772	return c.header_
172773}
172774
172775func (c *TargetTcpProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
172776	reqHeaders := make(http.Header)
172777	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
172778	for k, v := range c.header_ {
172779		reqHeaders[k] = v
172780	}
172781	reqHeaders.Set("User-Agent", c.s.userAgent())
172782	var body io.Reader = nil
172783	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targettcpproxy)
172784	if err != nil {
172785		return nil, err
172786	}
172787	reqHeaders.Set("Content-Type", "application/json")
172788	c.urlParams_.Set("alt", alt)
172789	c.urlParams_.Set("prettyPrint", "false")
172790	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetTcpProxies")
172791	urls += "?" + c.urlParams_.Encode()
172792	req, err := http.NewRequest("POST", urls, body)
172793	if err != nil {
172794		return nil, err
172795	}
172796	req.Header = reqHeaders
172797	googleapi.Expand(req.URL, map[string]string{
172798		"project": c.project,
172799	})
172800	return gensupport.SendRequest(c.ctx_, c.s.client, req)
172801}
172802
172803// Do executes the "compute.targetTcpProxies.insert" call.
172804// Exactly one of *Operation or error will be non-nil. Any non-2xx
172805// status code is an error. Response headers are in either
172806// *Operation.ServerResponse.Header or (if a response was returned at
172807// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
172808// to check whether the returned error was because
172809// http.StatusNotModified was returned.
172810func (c *TargetTcpProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
172811	gensupport.SetOptions(c.urlParams_, opts...)
172812	res, err := c.doRequest("json")
172813	if res != nil && res.StatusCode == http.StatusNotModified {
172814		if res.Body != nil {
172815			res.Body.Close()
172816		}
172817		return nil, &googleapi.Error{
172818			Code:   res.StatusCode,
172819			Header: res.Header,
172820		}
172821	}
172822	if err != nil {
172823		return nil, err
172824	}
172825	defer googleapi.CloseBody(res)
172826	if err := googleapi.CheckResponse(res); err != nil {
172827		return nil, err
172828	}
172829	ret := &Operation{
172830		ServerResponse: googleapi.ServerResponse{
172831			Header:         res.Header,
172832			HTTPStatusCode: res.StatusCode,
172833		},
172834	}
172835	target := &ret
172836	if err := gensupport.DecodeResponse(target, res); err != nil {
172837		return nil, err
172838	}
172839	return ret, nil
172840	// {
172841	//   "description": "Creates a TargetTcpProxy resource in the specified project using the data included in the request.",
172842	//   "httpMethod": "POST",
172843	//   "id": "compute.targetTcpProxies.insert",
172844	//   "parameterOrder": [
172845	//     "project"
172846	//   ],
172847	//   "parameters": {
172848	//     "project": {
172849	//       "description": "Project ID for this request.",
172850	//       "location": "path",
172851	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
172852	//       "required": true,
172853	//       "type": "string"
172854	//     },
172855	//     "requestId": {
172856	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
172857	//       "location": "query",
172858	//       "type": "string"
172859	//     }
172860	//   },
172861	//   "path": "projects/{project}/global/targetTcpProxies",
172862	//   "request": {
172863	//     "$ref": "TargetTcpProxy"
172864	//   },
172865	//   "response": {
172866	//     "$ref": "Operation"
172867	//   },
172868	//   "scopes": [
172869	//     "https://www.googleapis.com/auth/cloud-platform",
172870	//     "https://www.googleapis.com/auth/compute"
172871	//   ]
172872	// }
172873
172874}
172875
172876// method id "compute.targetTcpProxies.list":
172877
172878type TargetTcpProxiesListCall struct {
172879	s            *Service
172880	project      string
172881	urlParams_   gensupport.URLParams
172882	ifNoneMatch_ string
172883	ctx_         context.Context
172884	header_      http.Header
172885}
172886
172887// List: Retrieves the list of TargetTcpProxy resources available to the
172888// specified project.
172889func (r *TargetTcpProxiesService) List(project string) *TargetTcpProxiesListCall {
172890	c := &TargetTcpProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
172891	c.project = project
172892	return c
172893}
172894
172895// Filter sets the optional parameter "filter": A filter expression that
172896// filters resources listed in the response. The expression must specify
172897// the field name, a comparison operator, and the value that you want to
172898// use for filtering. The value must be a string, a number, or a
172899// boolean. The comparison operator must be either `=`, `!=`, `>`, or
172900// `<`.
172901//
172902// For example, if you are filtering Compute Engine instances, you can
172903// exclude instances named `example-instance` by specifying `name !=
172904// example-instance`.
172905//
172906// You can also filter nested fields. For example, you could specify
172907// `scheduling.automaticRestart = false` to include instances only if
172908// they are not scheduled for automatic restarts. You can use filtering
172909// on nested fields to filter based on resource labels.
172910//
172911// To filter on multiple expressions, provide each separate expression
172912// within parentheses. For example: ``` (scheduling.automaticRestart =
172913// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
172914// is an `AND` expression. However, you can include `AND` and `OR`
172915// expressions explicitly. For example: ``` (cpuPlatform = "Intel
172916// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
172917// (scheduling.automaticRestart = true) ```
172918func (c *TargetTcpProxiesListCall) Filter(filter string) *TargetTcpProxiesListCall {
172919	c.urlParams_.Set("filter", filter)
172920	return c
172921}
172922
172923// MaxResults sets the optional parameter "maxResults": The maximum
172924// number of results per page that should be returned. If the number of
172925// available results is larger than `maxResults`, Compute Engine returns
172926// a `nextPageToken` that can be used to get the next page of results in
172927// subsequent list requests. Acceptable values are `0` to `500`,
172928// inclusive. (Default: `500`)
172929func (c *TargetTcpProxiesListCall) MaxResults(maxResults int64) *TargetTcpProxiesListCall {
172930	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
172931	return c
172932}
172933
172934// OrderBy sets the optional parameter "orderBy": Sorts list results by
172935// a certain order. By default, results are returned in alphanumerical
172936// order based on the resource name.
172937//
172938// You can also sort results in descending order based on the creation
172939// timestamp using `orderBy="creationTimestamp desc". This sorts
172940// results based on the `creationTimestamp` field in reverse
172941// chronological order (newest result first). Use this to sort resources
172942// like operations so that the newest operation is returned
172943// first.
172944//
172945// Currently, only sorting by `name` or `creationTimestamp desc` is
172946// supported.
172947func (c *TargetTcpProxiesListCall) OrderBy(orderBy string) *TargetTcpProxiesListCall {
172948	c.urlParams_.Set("orderBy", orderBy)
172949	return c
172950}
172951
172952// PageToken sets the optional parameter "pageToken": Specifies a page
172953// token to use. Set `pageToken` to the `nextPageToken` returned by a
172954// previous list request to get the next page of results.
172955func (c *TargetTcpProxiesListCall) PageToken(pageToken string) *TargetTcpProxiesListCall {
172956	c.urlParams_.Set("pageToken", pageToken)
172957	return c
172958}
172959
172960// ReturnPartialSuccess sets the optional parameter
172961// "returnPartialSuccess": Opt-in for partial success behavior which
172962// provides partial results in case of failure. The default value is
172963// false.
172964func (c *TargetTcpProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetTcpProxiesListCall {
172965	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
172966	return c
172967}
172968
172969// Fields allows partial responses to be retrieved. See
172970// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
172971// for more information.
172972func (c *TargetTcpProxiesListCall) Fields(s ...googleapi.Field) *TargetTcpProxiesListCall {
172973	c.urlParams_.Set("fields", googleapi.CombineFields(s))
172974	return c
172975}
172976
172977// IfNoneMatch sets the optional parameter which makes the operation
172978// fail if the object's ETag matches the given value. This is useful for
172979// getting updates only after the object has changed since the last
172980// request. Use googleapi.IsNotModified to check whether the response
172981// error from Do is the result of In-None-Match.
172982func (c *TargetTcpProxiesListCall) IfNoneMatch(entityTag string) *TargetTcpProxiesListCall {
172983	c.ifNoneMatch_ = entityTag
172984	return c
172985}
172986
172987// Context sets the context to be used in this call's Do method. Any
172988// pending HTTP request will be aborted if the provided context is
172989// canceled.
172990func (c *TargetTcpProxiesListCall) Context(ctx context.Context) *TargetTcpProxiesListCall {
172991	c.ctx_ = ctx
172992	return c
172993}
172994
172995// Header returns an http.Header that can be modified by the caller to
172996// add HTTP headers to the request.
172997func (c *TargetTcpProxiesListCall) Header() http.Header {
172998	if c.header_ == nil {
172999		c.header_ = make(http.Header)
173000	}
173001	return c.header_
173002}
173003
173004func (c *TargetTcpProxiesListCall) doRequest(alt string) (*http.Response, error) {
173005	reqHeaders := make(http.Header)
173006	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
173007	for k, v := range c.header_ {
173008		reqHeaders[k] = v
173009	}
173010	reqHeaders.Set("User-Agent", c.s.userAgent())
173011	if c.ifNoneMatch_ != "" {
173012		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
173013	}
173014	var body io.Reader = nil
173015	c.urlParams_.Set("alt", alt)
173016	c.urlParams_.Set("prettyPrint", "false")
173017	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetTcpProxies")
173018	urls += "?" + c.urlParams_.Encode()
173019	req, err := http.NewRequest("GET", urls, body)
173020	if err != nil {
173021		return nil, err
173022	}
173023	req.Header = reqHeaders
173024	googleapi.Expand(req.URL, map[string]string{
173025		"project": c.project,
173026	})
173027	return gensupport.SendRequest(c.ctx_, c.s.client, req)
173028}
173029
173030// Do executes the "compute.targetTcpProxies.list" call.
173031// Exactly one of *TargetTcpProxyList or error will be non-nil. Any
173032// non-2xx status code is an error. Response headers are in either
173033// *TargetTcpProxyList.ServerResponse.Header or (if a response was
173034// returned at all) in error.(*googleapi.Error).Header. Use
173035// googleapi.IsNotModified to check whether the returned error was
173036// because http.StatusNotModified was returned.
173037func (c *TargetTcpProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetTcpProxyList, error) {
173038	gensupport.SetOptions(c.urlParams_, opts...)
173039	res, err := c.doRequest("json")
173040	if res != nil && res.StatusCode == http.StatusNotModified {
173041		if res.Body != nil {
173042			res.Body.Close()
173043		}
173044		return nil, &googleapi.Error{
173045			Code:   res.StatusCode,
173046			Header: res.Header,
173047		}
173048	}
173049	if err != nil {
173050		return nil, err
173051	}
173052	defer googleapi.CloseBody(res)
173053	if err := googleapi.CheckResponse(res); err != nil {
173054		return nil, err
173055	}
173056	ret := &TargetTcpProxyList{
173057		ServerResponse: googleapi.ServerResponse{
173058			Header:         res.Header,
173059			HTTPStatusCode: res.StatusCode,
173060		},
173061	}
173062	target := &ret
173063	if err := gensupport.DecodeResponse(target, res); err != nil {
173064		return nil, err
173065	}
173066	return ret, nil
173067	// {
173068	//   "description": "Retrieves the list of TargetTcpProxy resources available to the specified project.",
173069	//   "httpMethod": "GET",
173070	//   "id": "compute.targetTcpProxies.list",
173071	//   "parameterOrder": [
173072	//     "project"
173073	//   ],
173074	//   "parameters": {
173075	//     "filter": {
173076	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
173077	//       "location": "query",
173078	//       "type": "string"
173079	//     },
173080	//     "maxResults": {
173081	//       "default": "500",
173082	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
173083	//       "format": "uint32",
173084	//       "location": "query",
173085	//       "minimum": "0",
173086	//       "type": "integer"
173087	//     },
173088	//     "orderBy": {
173089	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
173090	//       "location": "query",
173091	//       "type": "string"
173092	//     },
173093	//     "pageToken": {
173094	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
173095	//       "location": "query",
173096	//       "type": "string"
173097	//     },
173098	//     "project": {
173099	//       "description": "Project ID for this request.",
173100	//       "location": "path",
173101	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
173102	//       "required": true,
173103	//       "type": "string"
173104	//     },
173105	//     "returnPartialSuccess": {
173106	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
173107	//       "location": "query",
173108	//       "type": "boolean"
173109	//     }
173110	//   },
173111	//   "path": "projects/{project}/global/targetTcpProxies",
173112	//   "response": {
173113	//     "$ref": "TargetTcpProxyList"
173114	//   },
173115	//   "scopes": [
173116	//     "https://www.googleapis.com/auth/cloud-platform",
173117	//     "https://www.googleapis.com/auth/compute",
173118	//     "https://www.googleapis.com/auth/compute.readonly"
173119	//   ]
173120	// }
173121
173122}
173123
173124// Pages invokes f for each page of results.
173125// A non-nil error returned from f will halt the iteration.
173126// The provided context supersedes any context provided to the Context method.
173127func (c *TargetTcpProxiesListCall) Pages(ctx context.Context, f func(*TargetTcpProxyList) error) error {
173128	c.ctx_ = ctx
173129	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
173130	for {
173131		x, err := c.Do()
173132		if err != nil {
173133			return err
173134		}
173135		if err := f(x); err != nil {
173136			return err
173137		}
173138		if x.NextPageToken == "" {
173139			return nil
173140		}
173141		c.PageToken(x.NextPageToken)
173142	}
173143}
173144
173145// method id "compute.targetTcpProxies.setBackendService":
173146
173147type TargetTcpProxiesSetBackendServiceCall struct {
173148	s                                        *Service
173149	project                                  string
173150	targetTcpProxy                           string
173151	targettcpproxiessetbackendservicerequest *TargetTcpProxiesSetBackendServiceRequest
173152	urlParams_                               gensupport.URLParams
173153	ctx_                                     context.Context
173154	header_                                  http.Header
173155}
173156
173157// SetBackendService: Changes the BackendService for TargetTcpProxy.
173158func (r *TargetTcpProxiesService) SetBackendService(project string, targetTcpProxy string, targettcpproxiessetbackendservicerequest *TargetTcpProxiesSetBackendServiceRequest) *TargetTcpProxiesSetBackendServiceCall {
173159	c := &TargetTcpProxiesSetBackendServiceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
173160	c.project = project
173161	c.targetTcpProxy = targetTcpProxy
173162	c.targettcpproxiessetbackendservicerequest = targettcpproxiessetbackendservicerequest
173163	return c
173164}
173165
173166// RequestId sets the optional parameter "requestId": An optional
173167// request ID to identify requests. Specify a unique request ID so that
173168// if you must retry your request, the server will know to ignore the
173169// request if it has already been completed.
173170//
173171// For example, consider a situation where you make an initial request
173172// and the request times out. If you make the request again with the
173173// same request ID, the server can check if original operation with the
173174// same request ID was received, and if so, will ignore the second
173175// request. This prevents clients from accidentally creating duplicate
173176// commitments.
173177//
173178// The request ID must be a valid UUID with the exception that zero UUID
173179// is not supported (00000000-0000-0000-0000-000000000000).
173180func (c *TargetTcpProxiesSetBackendServiceCall) RequestId(requestId string) *TargetTcpProxiesSetBackendServiceCall {
173181	c.urlParams_.Set("requestId", requestId)
173182	return c
173183}
173184
173185// Fields allows partial responses to be retrieved. See
173186// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
173187// for more information.
173188func (c *TargetTcpProxiesSetBackendServiceCall) Fields(s ...googleapi.Field) *TargetTcpProxiesSetBackendServiceCall {
173189	c.urlParams_.Set("fields", googleapi.CombineFields(s))
173190	return c
173191}
173192
173193// Context sets the context to be used in this call's Do method. Any
173194// pending HTTP request will be aborted if the provided context is
173195// canceled.
173196func (c *TargetTcpProxiesSetBackendServiceCall) Context(ctx context.Context) *TargetTcpProxiesSetBackendServiceCall {
173197	c.ctx_ = ctx
173198	return c
173199}
173200
173201// Header returns an http.Header that can be modified by the caller to
173202// add HTTP headers to the request.
173203func (c *TargetTcpProxiesSetBackendServiceCall) Header() http.Header {
173204	if c.header_ == nil {
173205		c.header_ = make(http.Header)
173206	}
173207	return c.header_
173208}
173209
173210func (c *TargetTcpProxiesSetBackendServiceCall) doRequest(alt string) (*http.Response, error) {
173211	reqHeaders := make(http.Header)
173212	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
173213	for k, v := range c.header_ {
173214		reqHeaders[k] = v
173215	}
173216	reqHeaders.Set("User-Agent", c.s.userAgent())
173217	var body io.Reader = nil
173218	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targettcpproxiessetbackendservicerequest)
173219	if err != nil {
173220		return nil, err
173221	}
173222	reqHeaders.Set("Content-Type", "application/json")
173223	c.urlParams_.Set("alt", alt)
173224	c.urlParams_.Set("prettyPrint", "false")
173225	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setBackendService")
173226	urls += "?" + c.urlParams_.Encode()
173227	req, err := http.NewRequest("POST", urls, body)
173228	if err != nil {
173229		return nil, err
173230	}
173231	req.Header = reqHeaders
173232	googleapi.Expand(req.URL, map[string]string{
173233		"project":        c.project,
173234		"targetTcpProxy": c.targetTcpProxy,
173235	})
173236	return gensupport.SendRequest(c.ctx_, c.s.client, req)
173237}
173238
173239// Do executes the "compute.targetTcpProxies.setBackendService" call.
173240// Exactly one of *Operation or error will be non-nil. Any non-2xx
173241// status code is an error. Response headers are in either
173242// *Operation.ServerResponse.Header or (if a response was returned at
173243// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
173244// to check whether the returned error was because
173245// http.StatusNotModified was returned.
173246func (c *TargetTcpProxiesSetBackendServiceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
173247	gensupport.SetOptions(c.urlParams_, opts...)
173248	res, err := c.doRequest("json")
173249	if res != nil && res.StatusCode == http.StatusNotModified {
173250		if res.Body != nil {
173251			res.Body.Close()
173252		}
173253		return nil, &googleapi.Error{
173254			Code:   res.StatusCode,
173255			Header: res.Header,
173256		}
173257	}
173258	if err != nil {
173259		return nil, err
173260	}
173261	defer googleapi.CloseBody(res)
173262	if err := googleapi.CheckResponse(res); err != nil {
173263		return nil, err
173264	}
173265	ret := &Operation{
173266		ServerResponse: googleapi.ServerResponse{
173267			Header:         res.Header,
173268			HTTPStatusCode: res.StatusCode,
173269		},
173270	}
173271	target := &ret
173272	if err := gensupport.DecodeResponse(target, res); err != nil {
173273		return nil, err
173274	}
173275	return ret, nil
173276	// {
173277	//   "description": "Changes the BackendService for TargetTcpProxy.",
173278	//   "httpMethod": "POST",
173279	//   "id": "compute.targetTcpProxies.setBackendService",
173280	//   "parameterOrder": [
173281	//     "project",
173282	//     "targetTcpProxy"
173283	//   ],
173284	//   "parameters": {
173285	//     "project": {
173286	//       "description": "Project ID for this request.",
173287	//       "location": "path",
173288	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
173289	//       "required": true,
173290	//       "type": "string"
173291	//     },
173292	//     "requestId": {
173293	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
173294	//       "location": "query",
173295	//       "type": "string"
173296	//     },
173297	//     "targetTcpProxy": {
173298	//       "description": "Name of the TargetTcpProxy resource whose BackendService resource is to be set.",
173299	//       "location": "path",
173300	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
173301	//       "required": true,
173302	//       "type": "string"
173303	//     }
173304	//   },
173305	//   "path": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setBackendService",
173306	//   "request": {
173307	//     "$ref": "TargetTcpProxiesSetBackendServiceRequest"
173308	//   },
173309	//   "response": {
173310	//     "$ref": "Operation"
173311	//   },
173312	//   "scopes": [
173313	//     "https://www.googleapis.com/auth/cloud-platform",
173314	//     "https://www.googleapis.com/auth/compute"
173315	//   ]
173316	// }
173317
173318}
173319
173320// method id "compute.targetTcpProxies.setProxyHeader":
173321
173322type TargetTcpProxiesSetProxyHeaderCall struct {
173323	s                                     *Service
173324	project                               string
173325	targetTcpProxy                        string
173326	targettcpproxiessetproxyheaderrequest *TargetTcpProxiesSetProxyHeaderRequest
173327	urlParams_                            gensupport.URLParams
173328	ctx_                                  context.Context
173329	header_                               http.Header
173330}
173331
173332// SetProxyHeader: Changes the ProxyHeaderType for TargetTcpProxy.
173333func (r *TargetTcpProxiesService) SetProxyHeader(project string, targetTcpProxy string, targettcpproxiessetproxyheaderrequest *TargetTcpProxiesSetProxyHeaderRequest) *TargetTcpProxiesSetProxyHeaderCall {
173334	c := &TargetTcpProxiesSetProxyHeaderCall{s: r.s, urlParams_: make(gensupport.URLParams)}
173335	c.project = project
173336	c.targetTcpProxy = targetTcpProxy
173337	c.targettcpproxiessetproxyheaderrequest = targettcpproxiessetproxyheaderrequest
173338	return c
173339}
173340
173341// RequestId sets the optional parameter "requestId": An optional
173342// request ID to identify requests. Specify a unique request ID so that
173343// if you must retry your request, the server will know to ignore the
173344// request if it has already been completed.
173345//
173346// For example, consider a situation where you make an initial request
173347// and the request times out. If you make the request again with the
173348// same request ID, the server can check if original operation with the
173349// same request ID was received, and if so, will ignore the second
173350// request. This prevents clients from accidentally creating duplicate
173351// commitments.
173352//
173353// The request ID must be a valid UUID with the exception that zero UUID
173354// is not supported (00000000-0000-0000-0000-000000000000).
173355func (c *TargetTcpProxiesSetProxyHeaderCall) RequestId(requestId string) *TargetTcpProxiesSetProxyHeaderCall {
173356	c.urlParams_.Set("requestId", requestId)
173357	return c
173358}
173359
173360// Fields allows partial responses to be retrieved. See
173361// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
173362// for more information.
173363func (c *TargetTcpProxiesSetProxyHeaderCall) Fields(s ...googleapi.Field) *TargetTcpProxiesSetProxyHeaderCall {
173364	c.urlParams_.Set("fields", googleapi.CombineFields(s))
173365	return c
173366}
173367
173368// Context sets the context to be used in this call's Do method. Any
173369// pending HTTP request will be aborted if the provided context is
173370// canceled.
173371func (c *TargetTcpProxiesSetProxyHeaderCall) Context(ctx context.Context) *TargetTcpProxiesSetProxyHeaderCall {
173372	c.ctx_ = ctx
173373	return c
173374}
173375
173376// Header returns an http.Header that can be modified by the caller to
173377// add HTTP headers to the request.
173378func (c *TargetTcpProxiesSetProxyHeaderCall) Header() http.Header {
173379	if c.header_ == nil {
173380		c.header_ = make(http.Header)
173381	}
173382	return c.header_
173383}
173384
173385func (c *TargetTcpProxiesSetProxyHeaderCall) doRequest(alt string) (*http.Response, error) {
173386	reqHeaders := make(http.Header)
173387	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
173388	for k, v := range c.header_ {
173389		reqHeaders[k] = v
173390	}
173391	reqHeaders.Set("User-Agent", c.s.userAgent())
173392	var body io.Reader = nil
173393	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targettcpproxiessetproxyheaderrequest)
173394	if err != nil {
173395		return nil, err
173396	}
173397	reqHeaders.Set("Content-Type", "application/json")
173398	c.urlParams_.Set("alt", alt)
173399	c.urlParams_.Set("prettyPrint", "false")
173400	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setProxyHeader")
173401	urls += "?" + c.urlParams_.Encode()
173402	req, err := http.NewRequest("POST", urls, body)
173403	if err != nil {
173404		return nil, err
173405	}
173406	req.Header = reqHeaders
173407	googleapi.Expand(req.URL, map[string]string{
173408		"project":        c.project,
173409		"targetTcpProxy": c.targetTcpProxy,
173410	})
173411	return gensupport.SendRequest(c.ctx_, c.s.client, req)
173412}
173413
173414// Do executes the "compute.targetTcpProxies.setProxyHeader" call.
173415// Exactly one of *Operation or error will be non-nil. Any non-2xx
173416// status code is an error. Response headers are in either
173417// *Operation.ServerResponse.Header or (if a response was returned at
173418// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
173419// to check whether the returned error was because
173420// http.StatusNotModified was returned.
173421func (c *TargetTcpProxiesSetProxyHeaderCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
173422	gensupport.SetOptions(c.urlParams_, opts...)
173423	res, err := c.doRequest("json")
173424	if res != nil && res.StatusCode == http.StatusNotModified {
173425		if res.Body != nil {
173426			res.Body.Close()
173427		}
173428		return nil, &googleapi.Error{
173429			Code:   res.StatusCode,
173430			Header: res.Header,
173431		}
173432	}
173433	if err != nil {
173434		return nil, err
173435	}
173436	defer googleapi.CloseBody(res)
173437	if err := googleapi.CheckResponse(res); err != nil {
173438		return nil, err
173439	}
173440	ret := &Operation{
173441		ServerResponse: googleapi.ServerResponse{
173442			Header:         res.Header,
173443			HTTPStatusCode: res.StatusCode,
173444		},
173445	}
173446	target := &ret
173447	if err := gensupport.DecodeResponse(target, res); err != nil {
173448		return nil, err
173449	}
173450	return ret, nil
173451	// {
173452	//   "description": "Changes the ProxyHeaderType for TargetTcpProxy.",
173453	//   "httpMethod": "POST",
173454	//   "id": "compute.targetTcpProxies.setProxyHeader",
173455	//   "parameterOrder": [
173456	//     "project",
173457	//     "targetTcpProxy"
173458	//   ],
173459	//   "parameters": {
173460	//     "project": {
173461	//       "description": "Project ID for this request.",
173462	//       "location": "path",
173463	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
173464	//       "required": true,
173465	//       "type": "string"
173466	//     },
173467	//     "requestId": {
173468	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
173469	//       "location": "query",
173470	//       "type": "string"
173471	//     },
173472	//     "targetTcpProxy": {
173473	//       "description": "Name of the TargetTcpProxy resource whose ProxyHeader is to be set.",
173474	//       "location": "path",
173475	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
173476	//       "required": true,
173477	//       "type": "string"
173478	//     }
173479	//   },
173480	//   "path": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setProxyHeader",
173481	//   "request": {
173482	//     "$ref": "TargetTcpProxiesSetProxyHeaderRequest"
173483	//   },
173484	//   "response": {
173485	//     "$ref": "Operation"
173486	//   },
173487	//   "scopes": [
173488	//     "https://www.googleapis.com/auth/cloud-platform",
173489	//     "https://www.googleapis.com/auth/compute"
173490	//   ]
173491	// }
173492
173493}
173494
173495// method id "compute.targetTcpProxies.testIamPermissions":
173496
173497type TargetTcpProxiesTestIamPermissionsCall struct {
173498	s                      *Service
173499	project                string
173500	resource               string
173501	testpermissionsrequest *TestPermissionsRequest
173502	urlParams_             gensupport.URLParams
173503	ctx_                   context.Context
173504	header_                http.Header
173505}
173506
173507// TestIamPermissions: Returns permissions that a caller has on the
173508// specified resource.
173509func (r *TargetTcpProxiesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *TargetTcpProxiesTestIamPermissionsCall {
173510	c := &TargetTcpProxiesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
173511	c.project = project
173512	c.resource = resource
173513	c.testpermissionsrequest = testpermissionsrequest
173514	return c
173515}
173516
173517// Fields allows partial responses to be retrieved. See
173518// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
173519// for more information.
173520func (c *TargetTcpProxiesTestIamPermissionsCall) Fields(s ...googleapi.Field) *TargetTcpProxiesTestIamPermissionsCall {
173521	c.urlParams_.Set("fields", googleapi.CombineFields(s))
173522	return c
173523}
173524
173525// Context sets the context to be used in this call's Do method. Any
173526// pending HTTP request will be aborted if the provided context is
173527// canceled.
173528func (c *TargetTcpProxiesTestIamPermissionsCall) Context(ctx context.Context) *TargetTcpProxiesTestIamPermissionsCall {
173529	c.ctx_ = ctx
173530	return c
173531}
173532
173533// Header returns an http.Header that can be modified by the caller to
173534// add HTTP headers to the request.
173535func (c *TargetTcpProxiesTestIamPermissionsCall) Header() http.Header {
173536	if c.header_ == nil {
173537		c.header_ = make(http.Header)
173538	}
173539	return c.header_
173540}
173541
173542func (c *TargetTcpProxiesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
173543	reqHeaders := make(http.Header)
173544	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
173545	for k, v := range c.header_ {
173546		reqHeaders[k] = v
173547	}
173548	reqHeaders.Set("User-Agent", c.s.userAgent())
173549	var body io.Reader = nil
173550	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
173551	if err != nil {
173552		return nil, err
173553	}
173554	reqHeaders.Set("Content-Type", "application/json")
173555	c.urlParams_.Set("alt", alt)
173556	c.urlParams_.Set("prettyPrint", "false")
173557	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetTcpProxies/{resource}/testIamPermissions")
173558	urls += "?" + c.urlParams_.Encode()
173559	req, err := http.NewRequest("POST", urls, body)
173560	if err != nil {
173561		return nil, err
173562	}
173563	req.Header = reqHeaders
173564	googleapi.Expand(req.URL, map[string]string{
173565		"project":  c.project,
173566		"resource": c.resource,
173567	})
173568	return gensupport.SendRequest(c.ctx_, c.s.client, req)
173569}
173570
173571// Do executes the "compute.targetTcpProxies.testIamPermissions" call.
173572// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
173573// non-2xx status code is an error. Response headers are in either
173574// *TestPermissionsResponse.ServerResponse.Header or (if a response was
173575// returned at all) in error.(*googleapi.Error).Header. Use
173576// googleapi.IsNotModified to check whether the returned error was
173577// because http.StatusNotModified was returned.
173578func (c *TargetTcpProxiesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
173579	gensupport.SetOptions(c.urlParams_, opts...)
173580	res, err := c.doRequest("json")
173581	if res != nil && res.StatusCode == http.StatusNotModified {
173582		if res.Body != nil {
173583			res.Body.Close()
173584		}
173585		return nil, &googleapi.Error{
173586			Code:   res.StatusCode,
173587			Header: res.Header,
173588		}
173589	}
173590	if err != nil {
173591		return nil, err
173592	}
173593	defer googleapi.CloseBody(res)
173594	if err := googleapi.CheckResponse(res); err != nil {
173595		return nil, err
173596	}
173597	ret := &TestPermissionsResponse{
173598		ServerResponse: googleapi.ServerResponse{
173599			Header:         res.Header,
173600			HTTPStatusCode: res.StatusCode,
173601		},
173602	}
173603	target := &ret
173604	if err := gensupport.DecodeResponse(target, res); err != nil {
173605		return nil, err
173606	}
173607	return ret, nil
173608	// {
173609	//   "description": "Returns permissions that a caller has on the specified resource.",
173610	//   "httpMethod": "POST",
173611	//   "id": "compute.targetTcpProxies.testIamPermissions",
173612	//   "parameterOrder": [
173613	//     "project",
173614	//     "resource"
173615	//   ],
173616	//   "parameters": {
173617	//     "project": {
173618	//       "description": "Project ID for this request.",
173619	//       "location": "path",
173620	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
173621	//       "required": true,
173622	//       "type": "string"
173623	//     },
173624	//     "resource": {
173625	//       "description": "Name or id of the resource for this request.",
173626	//       "location": "path",
173627	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
173628	//       "required": true,
173629	//       "type": "string"
173630	//     }
173631	//   },
173632	//   "path": "projects/{project}/global/targetTcpProxies/{resource}/testIamPermissions",
173633	//   "request": {
173634	//     "$ref": "TestPermissionsRequest"
173635	//   },
173636	//   "response": {
173637	//     "$ref": "TestPermissionsResponse"
173638	//   },
173639	//   "scopes": [
173640	//     "https://www.googleapis.com/auth/cloud-platform",
173641	//     "https://www.googleapis.com/auth/compute",
173642	//     "https://www.googleapis.com/auth/compute.readonly"
173643	//   ]
173644	// }
173645
173646}
173647
173648// method id "compute.targetVpnGateways.aggregatedList":
173649
173650type TargetVpnGatewaysAggregatedListCall struct {
173651	s            *Service
173652	project      string
173653	urlParams_   gensupport.URLParams
173654	ifNoneMatch_ string
173655	ctx_         context.Context
173656	header_      http.Header
173657}
173658
173659// AggregatedList: Retrieves an aggregated list of target VPN gateways.
173660func (r *TargetVpnGatewaysService) AggregatedList(project string) *TargetVpnGatewaysAggregatedListCall {
173661	c := &TargetVpnGatewaysAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
173662	c.project = project
173663	return c
173664}
173665
173666// Filter sets the optional parameter "filter": A filter expression that
173667// filters resources listed in the response. The expression must specify
173668// the field name, a comparison operator, and the value that you want to
173669// use for filtering. The value must be a string, a number, or a
173670// boolean. The comparison operator must be either `=`, `!=`, `>`, or
173671// `<`.
173672//
173673// For example, if you are filtering Compute Engine instances, you can
173674// exclude instances named `example-instance` by specifying `name !=
173675// example-instance`.
173676//
173677// You can also filter nested fields. For example, you could specify
173678// `scheduling.automaticRestart = false` to include instances only if
173679// they are not scheduled for automatic restarts. You can use filtering
173680// on nested fields to filter based on resource labels.
173681//
173682// To filter on multiple expressions, provide each separate expression
173683// within parentheses. For example: ``` (scheduling.automaticRestart =
173684// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
173685// is an `AND` expression. However, you can include `AND` and `OR`
173686// expressions explicitly. For example: ``` (cpuPlatform = "Intel
173687// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
173688// (scheduling.automaticRestart = true) ```
173689func (c *TargetVpnGatewaysAggregatedListCall) Filter(filter string) *TargetVpnGatewaysAggregatedListCall {
173690	c.urlParams_.Set("filter", filter)
173691	return c
173692}
173693
173694// IncludeAllScopes sets the optional parameter "includeAllScopes":
173695// Indicates whether every visible scope for each scope type (zone,
173696// region, global) should be included in the response. For new resource
173697// types added after this field, the flag has no effect as new resource
173698// types will always include every visible scope for each scope type in
173699// response. For resource types which predate this field, if this flag
173700// is omitted or false, only scopes of the scope types where the
173701// resource type is expected to be found will be included.
173702func (c *TargetVpnGatewaysAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetVpnGatewaysAggregatedListCall {
173703	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
173704	return c
173705}
173706
173707// MaxResults sets the optional parameter "maxResults": The maximum
173708// number of results per page that should be returned. If the number of
173709// available results is larger than `maxResults`, Compute Engine returns
173710// a `nextPageToken` that can be used to get the next page of results in
173711// subsequent list requests. Acceptable values are `0` to `500`,
173712// inclusive. (Default: `500`)
173713func (c *TargetVpnGatewaysAggregatedListCall) MaxResults(maxResults int64) *TargetVpnGatewaysAggregatedListCall {
173714	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
173715	return c
173716}
173717
173718// OrderBy sets the optional parameter "orderBy": Sorts list results by
173719// a certain order. By default, results are returned in alphanumerical
173720// order based on the resource name.
173721//
173722// You can also sort results in descending order based on the creation
173723// timestamp using `orderBy="creationTimestamp desc". This sorts
173724// results based on the `creationTimestamp` field in reverse
173725// chronological order (newest result first). Use this to sort resources
173726// like operations so that the newest operation is returned
173727// first.
173728//
173729// Currently, only sorting by `name` or `creationTimestamp desc` is
173730// supported.
173731func (c *TargetVpnGatewaysAggregatedListCall) OrderBy(orderBy string) *TargetVpnGatewaysAggregatedListCall {
173732	c.urlParams_.Set("orderBy", orderBy)
173733	return c
173734}
173735
173736// PageToken sets the optional parameter "pageToken": Specifies a page
173737// token to use. Set `pageToken` to the `nextPageToken` returned by a
173738// previous list request to get the next page of results.
173739func (c *TargetVpnGatewaysAggregatedListCall) PageToken(pageToken string) *TargetVpnGatewaysAggregatedListCall {
173740	c.urlParams_.Set("pageToken", pageToken)
173741	return c
173742}
173743
173744// ReturnPartialSuccess sets the optional parameter
173745// "returnPartialSuccess": Opt-in for partial success behavior which
173746// provides partial results in case of failure. The default value is
173747// false.
173748func (c *TargetVpnGatewaysAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetVpnGatewaysAggregatedListCall {
173749	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
173750	return c
173751}
173752
173753// Fields allows partial responses to be retrieved. See
173754// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
173755// for more information.
173756func (c *TargetVpnGatewaysAggregatedListCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysAggregatedListCall {
173757	c.urlParams_.Set("fields", googleapi.CombineFields(s))
173758	return c
173759}
173760
173761// IfNoneMatch sets the optional parameter which makes the operation
173762// fail if the object's ETag matches the given value. This is useful for
173763// getting updates only after the object has changed since the last
173764// request. Use googleapi.IsNotModified to check whether the response
173765// error from Do is the result of In-None-Match.
173766func (c *TargetVpnGatewaysAggregatedListCall) IfNoneMatch(entityTag string) *TargetVpnGatewaysAggregatedListCall {
173767	c.ifNoneMatch_ = entityTag
173768	return c
173769}
173770
173771// Context sets the context to be used in this call's Do method. Any
173772// pending HTTP request will be aborted if the provided context is
173773// canceled.
173774func (c *TargetVpnGatewaysAggregatedListCall) Context(ctx context.Context) *TargetVpnGatewaysAggregatedListCall {
173775	c.ctx_ = ctx
173776	return c
173777}
173778
173779// Header returns an http.Header that can be modified by the caller to
173780// add HTTP headers to the request.
173781func (c *TargetVpnGatewaysAggregatedListCall) Header() http.Header {
173782	if c.header_ == nil {
173783		c.header_ = make(http.Header)
173784	}
173785	return c.header_
173786}
173787
173788func (c *TargetVpnGatewaysAggregatedListCall) doRequest(alt string) (*http.Response, error) {
173789	reqHeaders := make(http.Header)
173790	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
173791	for k, v := range c.header_ {
173792		reqHeaders[k] = v
173793	}
173794	reqHeaders.Set("User-Agent", c.s.userAgent())
173795	if c.ifNoneMatch_ != "" {
173796		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
173797	}
173798	var body io.Reader = nil
173799	c.urlParams_.Set("alt", alt)
173800	c.urlParams_.Set("prettyPrint", "false")
173801	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/targetVpnGateways")
173802	urls += "?" + c.urlParams_.Encode()
173803	req, err := http.NewRequest("GET", urls, body)
173804	if err != nil {
173805		return nil, err
173806	}
173807	req.Header = reqHeaders
173808	googleapi.Expand(req.URL, map[string]string{
173809		"project": c.project,
173810	})
173811	return gensupport.SendRequest(c.ctx_, c.s.client, req)
173812}
173813
173814// Do executes the "compute.targetVpnGateways.aggregatedList" call.
173815// Exactly one of *TargetVpnGatewayAggregatedList or error will be
173816// non-nil. Any non-2xx status code is an error. Response headers are in
173817// either *TargetVpnGatewayAggregatedList.ServerResponse.Header or (if a
173818// response was returned at all) in error.(*googleapi.Error).Header. Use
173819// googleapi.IsNotModified to check whether the returned error was
173820// because http.StatusNotModified was returned.
173821func (c *TargetVpnGatewaysAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetVpnGatewayAggregatedList, error) {
173822	gensupport.SetOptions(c.urlParams_, opts...)
173823	res, err := c.doRequest("json")
173824	if res != nil && res.StatusCode == http.StatusNotModified {
173825		if res.Body != nil {
173826			res.Body.Close()
173827		}
173828		return nil, &googleapi.Error{
173829			Code:   res.StatusCode,
173830			Header: res.Header,
173831		}
173832	}
173833	if err != nil {
173834		return nil, err
173835	}
173836	defer googleapi.CloseBody(res)
173837	if err := googleapi.CheckResponse(res); err != nil {
173838		return nil, err
173839	}
173840	ret := &TargetVpnGatewayAggregatedList{
173841		ServerResponse: googleapi.ServerResponse{
173842			Header:         res.Header,
173843			HTTPStatusCode: res.StatusCode,
173844		},
173845	}
173846	target := &ret
173847	if err := gensupport.DecodeResponse(target, res); err != nil {
173848		return nil, err
173849	}
173850	return ret, nil
173851	// {
173852	//   "description": "Retrieves an aggregated list of target VPN gateways.",
173853	//   "httpMethod": "GET",
173854	//   "id": "compute.targetVpnGateways.aggregatedList",
173855	//   "parameterOrder": [
173856	//     "project"
173857	//   ],
173858	//   "parameters": {
173859	//     "filter": {
173860	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
173861	//       "location": "query",
173862	//       "type": "string"
173863	//     },
173864	//     "includeAllScopes": {
173865	//       "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.",
173866	//       "location": "query",
173867	//       "type": "boolean"
173868	//     },
173869	//     "maxResults": {
173870	//       "default": "500",
173871	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
173872	//       "format": "uint32",
173873	//       "location": "query",
173874	//       "minimum": "0",
173875	//       "type": "integer"
173876	//     },
173877	//     "orderBy": {
173878	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
173879	//       "location": "query",
173880	//       "type": "string"
173881	//     },
173882	//     "pageToken": {
173883	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
173884	//       "location": "query",
173885	//       "type": "string"
173886	//     },
173887	//     "project": {
173888	//       "description": "Project ID for this request.",
173889	//       "location": "path",
173890	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
173891	//       "required": true,
173892	//       "type": "string"
173893	//     },
173894	//     "returnPartialSuccess": {
173895	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
173896	//       "location": "query",
173897	//       "type": "boolean"
173898	//     }
173899	//   },
173900	//   "path": "projects/{project}/aggregated/targetVpnGateways",
173901	//   "response": {
173902	//     "$ref": "TargetVpnGatewayAggregatedList"
173903	//   },
173904	//   "scopes": [
173905	//     "https://www.googleapis.com/auth/cloud-platform",
173906	//     "https://www.googleapis.com/auth/compute",
173907	//     "https://www.googleapis.com/auth/compute.readonly"
173908	//   ]
173909	// }
173910
173911}
173912
173913// Pages invokes f for each page of results.
173914// A non-nil error returned from f will halt the iteration.
173915// The provided context supersedes any context provided to the Context method.
173916func (c *TargetVpnGatewaysAggregatedListCall) Pages(ctx context.Context, f func(*TargetVpnGatewayAggregatedList) error) error {
173917	c.ctx_ = ctx
173918	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
173919	for {
173920		x, err := c.Do()
173921		if err != nil {
173922			return err
173923		}
173924		if err := f(x); err != nil {
173925			return err
173926		}
173927		if x.NextPageToken == "" {
173928			return nil
173929		}
173930		c.PageToken(x.NextPageToken)
173931	}
173932}
173933
173934// method id "compute.targetVpnGateways.delete":
173935
173936type TargetVpnGatewaysDeleteCall struct {
173937	s                *Service
173938	project          string
173939	region           string
173940	targetVpnGateway string
173941	urlParams_       gensupport.URLParams
173942	ctx_             context.Context
173943	header_          http.Header
173944}
173945
173946// Delete: Deletes the specified target VPN gateway.
173947func (r *TargetVpnGatewaysService) Delete(project string, region string, targetVpnGateway string) *TargetVpnGatewaysDeleteCall {
173948	c := &TargetVpnGatewaysDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
173949	c.project = project
173950	c.region = region
173951	c.targetVpnGateway = targetVpnGateway
173952	return c
173953}
173954
173955// RequestId sets the optional parameter "requestId": An optional
173956// request ID to identify requests. Specify a unique request ID so that
173957// if you must retry your request, the server will know to ignore the
173958// request if it has already been completed.
173959//
173960// For example, consider a situation where you make an initial request
173961// and the request times out. If you make the request again with the
173962// same request ID, the server can check if original operation with the
173963// same request ID was received, and if so, will ignore the second
173964// request. This prevents clients from accidentally creating duplicate
173965// commitments.
173966//
173967// The request ID must be a valid UUID with the exception that zero UUID
173968// is not supported (00000000-0000-0000-0000-000000000000).
173969func (c *TargetVpnGatewaysDeleteCall) RequestId(requestId string) *TargetVpnGatewaysDeleteCall {
173970	c.urlParams_.Set("requestId", requestId)
173971	return c
173972}
173973
173974// Fields allows partial responses to be retrieved. See
173975// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
173976// for more information.
173977func (c *TargetVpnGatewaysDeleteCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysDeleteCall {
173978	c.urlParams_.Set("fields", googleapi.CombineFields(s))
173979	return c
173980}
173981
173982// Context sets the context to be used in this call's Do method. Any
173983// pending HTTP request will be aborted if the provided context is
173984// canceled.
173985func (c *TargetVpnGatewaysDeleteCall) Context(ctx context.Context) *TargetVpnGatewaysDeleteCall {
173986	c.ctx_ = ctx
173987	return c
173988}
173989
173990// Header returns an http.Header that can be modified by the caller to
173991// add HTTP headers to the request.
173992func (c *TargetVpnGatewaysDeleteCall) Header() http.Header {
173993	if c.header_ == nil {
173994		c.header_ = make(http.Header)
173995	}
173996	return c.header_
173997}
173998
173999func (c *TargetVpnGatewaysDeleteCall) doRequest(alt string) (*http.Response, error) {
174000	reqHeaders := make(http.Header)
174001	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
174002	for k, v := range c.header_ {
174003		reqHeaders[k] = v
174004	}
174005	reqHeaders.Set("User-Agent", c.s.userAgent())
174006	var body io.Reader = nil
174007	c.urlParams_.Set("alt", alt)
174008	c.urlParams_.Set("prettyPrint", "false")
174009	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}")
174010	urls += "?" + c.urlParams_.Encode()
174011	req, err := http.NewRequest("DELETE", urls, body)
174012	if err != nil {
174013		return nil, err
174014	}
174015	req.Header = reqHeaders
174016	googleapi.Expand(req.URL, map[string]string{
174017		"project":          c.project,
174018		"region":           c.region,
174019		"targetVpnGateway": c.targetVpnGateway,
174020	})
174021	return gensupport.SendRequest(c.ctx_, c.s.client, req)
174022}
174023
174024// Do executes the "compute.targetVpnGateways.delete" call.
174025// Exactly one of *Operation or error will be non-nil. Any non-2xx
174026// status code is an error. Response headers are in either
174027// *Operation.ServerResponse.Header or (if a response was returned at
174028// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
174029// to check whether the returned error was because
174030// http.StatusNotModified was returned.
174031func (c *TargetVpnGatewaysDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
174032	gensupport.SetOptions(c.urlParams_, opts...)
174033	res, err := c.doRequest("json")
174034	if res != nil && res.StatusCode == http.StatusNotModified {
174035		if res.Body != nil {
174036			res.Body.Close()
174037		}
174038		return nil, &googleapi.Error{
174039			Code:   res.StatusCode,
174040			Header: res.Header,
174041		}
174042	}
174043	if err != nil {
174044		return nil, err
174045	}
174046	defer googleapi.CloseBody(res)
174047	if err := googleapi.CheckResponse(res); err != nil {
174048		return nil, err
174049	}
174050	ret := &Operation{
174051		ServerResponse: googleapi.ServerResponse{
174052			Header:         res.Header,
174053			HTTPStatusCode: res.StatusCode,
174054		},
174055	}
174056	target := &ret
174057	if err := gensupport.DecodeResponse(target, res); err != nil {
174058		return nil, err
174059	}
174060	return ret, nil
174061	// {
174062	//   "description": "Deletes the specified target VPN gateway.",
174063	//   "httpMethod": "DELETE",
174064	//   "id": "compute.targetVpnGateways.delete",
174065	//   "parameterOrder": [
174066	//     "project",
174067	//     "region",
174068	//     "targetVpnGateway"
174069	//   ],
174070	//   "parameters": {
174071	//     "project": {
174072	//       "description": "Project ID for this request.",
174073	//       "location": "path",
174074	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
174075	//       "required": true,
174076	//       "type": "string"
174077	//     },
174078	//     "region": {
174079	//       "description": "Name of the region for this request.",
174080	//       "location": "path",
174081	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
174082	//       "required": true,
174083	//       "type": "string"
174084	//     },
174085	//     "requestId": {
174086	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
174087	//       "location": "query",
174088	//       "type": "string"
174089	//     },
174090	//     "targetVpnGateway": {
174091	//       "description": "Name of the target VPN gateway to delete.",
174092	//       "location": "path",
174093	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
174094	//       "required": true,
174095	//       "type": "string"
174096	//     }
174097	//   },
174098	//   "path": "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}",
174099	//   "response": {
174100	//     "$ref": "Operation"
174101	//   },
174102	//   "scopes": [
174103	//     "https://www.googleapis.com/auth/cloud-platform",
174104	//     "https://www.googleapis.com/auth/compute"
174105	//   ]
174106	// }
174107
174108}
174109
174110// method id "compute.targetVpnGateways.get":
174111
174112type TargetVpnGatewaysGetCall struct {
174113	s                *Service
174114	project          string
174115	region           string
174116	targetVpnGateway string
174117	urlParams_       gensupport.URLParams
174118	ifNoneMatch_     string
174119	ctx_             context.Context
174120	header_          http.Header
174121}
174122
174123// Get: Returns the specified target VPN gateway. Gets a list of
174124// available target VPN gateways by making a list() request.
174125func (r *TargetVpnGatewaysService) Get(project string, region string, targetVpnGateway string) *TargetVpnGatewaysGetCall {
174126	c := &TargetVpnGatewaysGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
174127	c.project = project
174128	c.region = region
174129	c.targetVpnGateway = targetVpnGateway
174130	return c
174131}
174132
174133// Fields allows partial responses to be retrieved. See
174134// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
174135// for more information.
174136func (c *TargetVpnGatewaysGetCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysGetCall {
174137	c.urlParams_.Set("fields", googleapi.CombineFields(s))
174138	return c
174139}
174140
174141// IfNoneMatch sets the optional parameter which makes the operation
174142// fail if the object's ETag matches the given value. This is useful for
174143// getting updates only after the object has changed since the last
174144// request. Use googleapi.IsNotModified to check whether the response
174145// error from Do is the result of In-None-Match.
174146func (c *TargetVpnGatewaysGetCall) IfNoneMatch(entityTag string) *TargetVpnGatewaysGetCall {
174147	c.ifNoneMatch_ = entityTag
174148	return c
174149}
174150
174151// Context sets the context to be used in this call's Do method. Any
174152// pending HTTP request will be aborted if the provided context is
174153// canceled.
174154func (c *TargetVpnGatewaysGetCall) Context(ctx context.Context) *TargetVpnGatewaysGetCall {
174155	c.ctx_ = ctx
174156	return c
174157}
174158
174159// Header returns an http.Header that can be modified by the caller to
174160// add HTTP headers to the request.
174161func (c *TargetVpnGatewaysGetCall) Header() http.Header {
174162	if c.header_ == nil {
174163		c.header_ = make(http.Header)
174164	}
174165	return c.header_
174166}
174167
174168func (c *TargetVpnGatewaysGetCall) doRequest(alt string) (*http.Response, error) {
174169	reqHeaders := make(http.Header)
174170	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
174171	for k, v := range c.header_ {
174172		reqHeaders[k] = v
174173	}
174174	reqHeaders.Set("User-Agent", c.s.userAgent())
174175	if c.ifNoneMatch_ != "" {
174176		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
174177	}
174178	var body io.Reader = nil
174179	c.urlParams_.Set("alt", alt)
174180	c.urlParams_.Set("prettyPrint", "false")
174181	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}")
174182	urls += "?" + c.urlParams_.Encode()
174183	req, err := http.NewRequest("GET", urls, body)
174184	if err != nil {
174185		return nil, err
174186	}
174187	req.Header = reqHeaders
174188	googleapi.Expand(req.URL, map[string]string{
174189		"project":          c.project,
174190		"region":           c.region,
174191		"targetVpnGateway": c.targetVpnGateway,
174192	})
174193	return gensupport.SendRequest(c.ctx_, c.s.client, req)
174194}
174195
174196// Do executes the "compute.targetVpnGateways.get" call.
174197// Exactly one of *TargetVpnGateway or error will be non-nil. Any
174198// non-2xx status code is an error. Response headers are in either
174199// *TargetVpnGateway.ServerResponse.Header or (if a response was
174200// returned at all) in error.(*googleapi.Error).Header. Use
174201// googleapi.IsNotModified to check whether the returned error was
174202// because http.StatusNotModified was returned.
174203func (c *TargetVpnGatewaysGetCall) Do(opts ...googleapi.CallOption) (*TargetVpnGateway, error) {
174204	gensupport.SetOptions(c.urlParams_, opts...)
174205	res, err := c.doRequest("json")
174206	if res != nil && res.StatusCode == http.StatusNotModified {
174207		if res.Body != nil {
174208			res.Body.Close()
174209		}
174210		return nil, &googleapi.Error{
174211			Code:   res.StatusCode,
174212			Header: res.Header,
174213		}
174214	}
174215	if err != nil {
174216		return nil, err
174217	}
174218	defer googleapi.CloseBody(res)
174219	if err := googleapi.CheckResponse(res); err != nil {
174220		return nil, err
174221	}
174222	ret := &TargetVpnGateway{
174223		ServerResponse: googleapi.ServerResponse{
174224			Header:         res.Header,
174225			HTTPStatusCode: res.StatusCode,
174226		},
174227	}
174228	target := &ret
174229	if err := gensupport.DecodeResponse(target, res); err != nil {
174230		return nil, err
174231	}
174232	return ret, nil
174233	// {
174234	//   "description": "Returns the specified target VPN gateway. Gets a list of available target VPN gateways by making a list() request.",
174235	//   "httpMethod": "GET",
174236	//   "id": "compute.targetVpnGateways.get",
174237	//   "parameterOrder": [
174238	//     "project",
174239	//     "region",
174240	//     "targetVpnGateway"
174241	//   ],
174242	//   "parameters": {
174243	//     "project": {
174244	//       "description": "Project ID for this request.",
174245	//       "location": "path",
174246	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
174247	//       "required": true,
174248	//       "type": "string"
174249	//     },
174250	//     "region": {
174251	//       "description": "Name of the region for this request.",
174252	//       "location": "path",
174253	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
174254	//       "required": true,
174255	//       "type": "string"
174256	//     },
174257	//     "targetVpnGateway": {
174258	//       "description": "Name of the target VPN gateway to return.",
174259	//       "location": "path",
174260	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
174261	//       "required": true,
174262	//       "type": "string"
174263	//     }
174264	//   },
174265	//   "path": "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}",
174266	//   "response": {
174267	//     "$ref": "TargetVpnGateway"
174268	//   },
174269	//   "scopes": [
174270	//     "https://www.googleapis.com/auth/cloud-platform",
174271	//     "https://www.googleapis.com/auth/compute",
174272	//     "https://www.googleapis.com/auth/compute.readonly"
174273	//   ]
174274	// }
174275
174276}
174277
174278// method id "compute.targetVpnGateways.insert":
174279
174280type TargetVpnGatewaysInsertCall struct {
174281	s                *Service
174282	project          string
174283	region           string
174284	targetvpngateway *TargetVpnGateway
174285	urlParams_       gensupport.URLParams
174286	ctx_             context.Context
174287	header_          http.Header
174288}
174289
174290// Insert: Creates a target VPN gateway in the specified project and
174291// region using the data included in the request.
174292func (r *TargetVpnGatewaysService) Insert(project string, region string, targetvpngateway *TargetVpnGateway) *TargetVpnGatewaysInsertCall {
174293	c := &TargetVpnGatewaysInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
174294	c.project = project
174295	c.region = region
174296	c.targetvpngateway = targetvpngateway
174297	return c
174298}
174299
174300// RequestId sets the optional parameter "requestId": An optional
174301// request ID to identify requests. Specify a unique request ID so that
174302// if you must retry your request, the server will know to ignore the
174303// request if it has already been completed.
174304//
174305// For example, consider a situation where you make an initial request
174306// and the request times out. If you make the request again with the
174307// same request ID, the server can check if original operation with the
174308// same request ID was received, and if so, will ignore the second
174309// request. This prevents clients from accidentally creating duplicate
174310// commitments.
174311//
174312// The request ID must be a valid UUID with the exception that zero UUID
174313// is not supported (00000000-0000-0000-0000-000000000000).
174314func (c *TargetVpnGatewaysInsertCall) RequestId(requestId string) *TargetVpnGatewaysInsertCall {
174315	c.urlParams_.Set("requestId", requestId)
174316	return c
174317}
174318
174319// Fields allows partial responses to be retrieved. See
174320// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
174321// for more information.
174322func (c *TargetVpnGatewaysInsertCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysInsertCall {
174323	c.urlParams_.Set("fields", googleapi.CombineFields(s))
174324	return c
174325}
174326
174327// Context sets the context to be used in this call's Do method. Any
174328// pending HTTP request will be aborted if the provided context is
174329// canceled.
174330func (c *TargetVpnGatewaysInsertCall) Context(ctx context.Context) *TargetVpnGatewaysInsertCall {
174331	c.ctx_ = ctx
174332	return c
174333}
174334
174335// Header returns an http.Header that can be modified by the caller to
174336// add HTTP headers to the request.
174337func (c *TargetVpnGatewaysInsertCall) Header() http.Header {
174338	if c.header_ == nil {
174339		c.header_ = make(http.Header)
174340	}
174341	return c.header_
174342}
174343
174344func (c *TargetVpnGatewaysInsertCall) doRequest(alt string) (*http.Response, error) {
174345	reqHeaders := make(http.Header)
174346	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
174347	for k, v := range c.header_ {
174348		reqHeaders[k] = v
174349	}
174350	reqHeaders.Set("User-Agent", c.s.userAgent())
174351	var body io.Reader = nil
174352	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetvpngateway)
174353	if err != nil {
174354		return nil, err
174355	}
174356	reqHeaders.Set("Content-Type", "application/json")
174357	c.urlParams_.Set("alt", alt)
174358	c.urlParams_.Set("prettyPrint", "false")
174359	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetVpnGateways")
174360	urls += "?" + c.urlParams_.Encode()
174361	req, err := http.NewRequest("POST", urls, body)
174362	if err != nil {
174363		return nil, err
174364	}
174365	req.Header = reqHeaders
174366	googleapi.Expand(req.URL, map[string]string{
174367		"project": c.project,
174368		"region":  c.region,
174369	})
174370	return gensupport.SendRequest(c.ctx_, c.s.client, req)
174371}
174372
174373// Do executes the "compute.targetVpnGateways.insert" call.
174374// Exactly one of *Operation or error will be non-nil. Any non-2xx
174375// status code is an error. Response headers are in either
174376// *Operation.ServerResponse.Header or (if a response was returned at
174377// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
174378// to check whether the returned error was because
174379// http.StatusNotModified was returned.
174380func (c *TargetVpnGatewaysInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
174381	gensupport.SetOptions(c.urlParams_, opts...)
174382	res, err := c.doRequest("json")
174383	if res != nil && res.StatusCode == http.StatusNotModified {
174384		if res.Body != nil {
174385			res.Body.Close()
174386		}
174387		return nil, &googleapi.Error{
174388			Code:   res.StatusCode,
174389			Header: res.Header,
174390		}
174391	}
174392	if err != nil {
174393		return nil, err
174394	}
174395	defer googleapi.CloseBody(res)
174396	if err := googleapi.CheckResponse(res); err != nil {
174397		return nil, err
174398	}
174399	ret := &Operation{
174400		ServerResponse: googleapi.ServerResponse{
174401			Header:         res.Header,
174402			HTTPStatusCode: res.StatusCode,
174403		},
174404	}
174405	target := &ret
174406	if err := gensupport.DecodeResponse(target, res); err != nil {
174407		return nil, err
174408	}
174409	return ret, nil
174410	// {
174411	//   "description": "Creates a target VPN gateway in the specified project and region using the data included in the request.",
174412	//   "httpMethod": "POST",
174413	//   "id": "compute.targetVpnGateways.insert",
174414	//   "parameterOrder": [
174415	//     "project",
174416	//     "region"
174417	//   ],
174418	//   "parameters": {
174419	//     "project": {
174420	//       "description": "Project ID for this request.",
174421	//       "location": "path",
174422	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
174423	//       "required": true,
174424	//       "type": "string"
174425	//     },
174426	//     "region": {
174427	//       "description": "Name of the region for this request.",
174428	//       "location": "path",
174429	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
174430	//       "required": true,
174431	//       "type": "string"
174432	//     },
174433	//     "requestId": {
174434	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
174435	//       "location": "query",
174436	//       "type": "string"
174437	//     }
174438	//   },
174439	//   "path": "projects/{project}/regions/{region}/targetVpnGateways",
174440	//   "request": {
174441	//     "$ref": "TargetVpnGateway"
174442	//   },
174443	//   "response": {
174444	//     "$ref": "Operation"
174445	//   },
174446	//   "scopes": [
174447	//     "https://www.googleapis.com/auth/cloud-platform",
174448	//     "https://www.googleapis.com/auth/compute"
174449	//   ]
174450	// }
174451
174452}
174453
174454// method id "compute.targetVpnGateways.list":
174455
174456type TargetVpnGatewaysListCall struct {
174457	s            *Service
174458	project      string
174459	region       string
174460	urlParams_   gensupport.URLParams
174461	ifNoneMatch_ string
174462	ctx_         context.Context
174463	header_      http.Header
174464}
174465
174466// List: Retrieves a list of target VPN gateways available to the
174467// specified project and region.
174468func (r *TargetVpnGatewaysService) List(project string, region string) *TargetVpnGatewaysListCall {
174469	c := &TargetVpnGatewaysListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
174470	c.project = project
174471	c.region = region
174472	return c
174473}
174474
174475// Filter sets the optional parameter "filter": A filter expression that
174476// filters resources listed in the response. The expression must specify
174477// the field name, a comparison operator, and the value that you want to
174478// use for filtering. The value must be a string, a number, or a
174479// boolean. The comparison operator must be either `=`, `!=`, `>`, or
174480// `<`.
174481//
174482// For example, if you are filtering Compute Engine instances, you can
174483// exclude instances named `example-instance` by specifying `name !=
174484// example-instance`.
174485//
174486// You can also filter nested fields. For example, you could specify
174487// `scheduling.automaticRestart = false` to include instances only if
174488// they are not scheduled for automatic restarts. You can use filtering
174489// on nested fields to filter based on resource labels.
174490//
174491// To filter on multiple expressions, provide each separate expression
174492// within parentheses. For example: ``` (scheduling.automaticRestart =
174493// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
174494// is an `AND` expression. However, you can include `AND` and `OR`
174495// expressions explicitly. For example: ``` (cpuPlatform = "Intel
174496// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
174497// (scheduling.automaticRestart = true) ```
174498func (c *TargetVpnGatewaysListCall) Filter(filter string) *TargetVpnGatewaysListCall {
174499	c.urlParams_.Set("filter", filter)
174500	return c
174501}
174502
174503// MaxResults sets the optional parameter "maxResults": The maximum
174504// number of results per page that should be returned. If the number of
174505// available results is larger than `maxResults`, Compute Engine returns
174506// a `nextPageToken` that can be used to get the next page of results in
174507// subsequent list requests. Acceptable values are `0` to `500`,
174508// inclusive. (Default: `500`)
174509func (c *TargetVpnGatewaysListCall) MaxResults(maxResults int64) *TargetVpnGatewaysListCall {
174510	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
174511	return c
174512}
174513
174514// OrderBy sets the optional parameter "orderBy": Sorts list results by
174515// a certain order. By default, results are returned in alphanumerical
174516// order based on the resource name.
174517//
174518// You can also sort results in descending order based on the creation
174519// timestamp using `orderBy="creationTimestamp desc". This sorts
174520// results based on the `creationTimestamp` field in reverse
174521// chronological order (newest result first). Use this to sort resources
174522// like operations so that the newest operation is returned
174523// first.
174524//
174525// Currently, only sorting by `name` or `creationTimestamp desc` is
174526// supported.
174527func (c *TargetVpnGatewaysListCall) OrderBy(orderBy string) *TargetVpnGatewaysListCall {
174528	c.urlParams_.Set("orderBy", orderBy)
174529	return c
174530}
174531
174532// PageToken sets the optional parameter "pageToken": Specifies a page
174533// token to use. Set `pageToken` to the `nextPageToken` returned by a
174534// previous list request to get the next page of results.
174535func (c *TargetVpnGatewaysListCall) PageToken(pageToken string) *TargetVpnGatewaysListCall {
174536	c.urlParams_.Set("pageToken", pageToken)
174537	return c
174538}
174539
174540// ReturnPartialSuccess sets the optional parameter
174541// "returnPartialSuccess": Opt-in for partial success behavior which
174542// provides partial results in case of failure. The default value is
174543// false.
174544func (c *TargetVpnGatewaysListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetVpnGatewaysListCall {
174545	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
174546	return c
174547}
174548
174549// Fields allows partial responses to be retrieved. See
174550// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
174551// for more information.
174552func (c *TargetVpnGatewaysListCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysListCall {
174553	c.urlParams_.Set("fields", googleapi.CombineFields(s))
174554	return c
174555}
174556
174557// IfNoneMatch sets the optional parameter which makes the operation
174558// fail if the object's ETag matches the given value. This is useful for
174559// getting updates only after the object has changed since the last
174560// request. Use googleapi.IsNotModified to check whether the response
174561// error from Do is the result of In-None-Match.
174562func (c *TargetVpnGatewaysListCall) IfNoneMatch(entityTag string) *TargetVpnGatewaysListCall {
174563	c.ifNoneMatch_ = entityTag
174564	return c
174565}
174566
174567// Context sets the context to be used in this call's Do method. Any
174568// pending HTTP request will be aborted if the provided context is
174569// canceled.
174570func (c *TargetVpnGatewaysListCall) Context(ctx context.Context) *TargetVpnGatewaysListCall {
174571	c.ctx_ = ctx
174572	return c
174573}
174574
174575// Header returns an http.Header that can be modified by the caller to
174576// add HTTP headers to the request.
174577func (c *TargetVpnGatewaysListCall) Header() http.Header {
174578	if c.header_ == nil {
174579		c.header_ = make(http.Header)
174580	}
174581	return c.header_
174582}
174583
174584func (c *TargetVpnGatewaysListCall) doRequest(alt string) (*http.Response, error) {
174585	reqHeaders := make(http.Header)
174586	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
174587	for k, v := range c.header_ {
174588		reqHeaders[k] = v
174589	}
174590	reqHeaders.Set("User-Agent", c.s.userAgent())
174591	if c.ifNoneMatch_ != "" {
174592		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
174593	}
174594	var body io.Reader = nil
174595	c.urlParams_.Set("alt", alt)
174596	c.urlParams_.Set("prettyPrint", "false")
174597	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetVpnGateways")
174598	urls += "?" + c.urlParams_.Encode()
174599	req, err := http.NewRequest("GET", urls, body)
174600	if err != nil {
174601		return nil, err
174602	}
174603	req.Header = reqHeaders
174604	googleapi.Expand(req.URL, map[string]string{
174605		"project": c.project,
174606		"region":  c.region,
174607	})
174608	return gensupport.SendRequest(c.ctx_, c.s.client, req)
174609}
174610
174611// Do executes the "compute.targetVpnGateways.list" call.
174612// Exactly one of *TargetVpnGatewayList or error will be non-nil. Any
174613// non-2xx status code is an error. Response headers are in either
174614// *TargetVpnGatewayList.ServerResponse.Header or (if a response was
174615// returned at all) in error.(*googleapi.Error).Header. Use
174616// googleapi.IsNotModified to check whether the returned error was
174617// because http.StatusNotModified was returned.
174618func (c *TargetVpnGatewaysListCall) Do(opts ...googleapi.CallOption) (*TargetVpnGatewayList, error) {
174619	gensupport.SetOptions(c.urlParams_, opts...)
174620	res, err := c.doRequest("json")
174621	if res != nil && res.StatusCode == http.StatusNotModified {
174622		if res.Body != nil {
174623			res.Body.Close()
174624		}
174625		return nil, &googleapi.Error{
174626			Code:   res.StatusCode,
174627			Header: res.Header,
174628		}
174629	}
174630	if err != nil {
174631		return nil, err
174632	}
174633	defer googleapi.CloseBody(res)
174634	if err := googleapi.CheckResponse(res); err != nil {
174635		return nil, err
174636	}
174637	ret := &TargetVpnGatewayList{
174638		ServerResponse: googleapi.ServerResponse{
174639			Header:         res.Header,
174640			HTTPStatusCode: res.StatusCode,
174641		},
174642	}
174643	target := &ret
174644	if err := gensupport.DecodeResponse(target, res); err != nil {
174645		return nil, err
174646	}
174647	return ret, nil
174648	// {
174649	//   "description": "Retrieves a list of target VPN gateways available to the specified project and region.",
174650	//   "httpMethod": "GET",
174651	//   "id": "compute.targetVpnGateways.list",
174652	//   "parameterOrder": [
174653	//     "project",
174654	//     "region"
174655	//   ],
174656	//   "parameters": {
174657	//     "filter": {
174658	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
174659	//       "location": "query",
174660	//       "type": "string"
174661	//     },
174662	//     "maxResults": {
174663	//       "default": "500",
174664	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
174665	//       "format": "uint32",
174666	//       "location": "query",
174667	//       "minimum": "0",
174668	//       "type": "integer"
174669	//     },
174670	//     "orderBy": {
174671	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
174672	//       "location": "query",
174673	//       "type": "string"
174674	//     },
174675	//     "pageToken": {
174676	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
174677	//       "location": "query",
174678	//       "type": "string"
174679	//     },
174680	//     "project": {
174681	//       "description": "Project ID for this request.",
174682	//       "location": "path",
174683	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
174684	//       "required": true,
174685	//       "type": "string"
174686	//     },
174687	//     "region": {
174688	//       "description": "Name of the region for this request.",
174689	//       "location": "path",
174690	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
174691	//       "required": true,
174692	//       "type": "string"
174693	//     },
174694	//     "returnPartialSuccess": {
174695	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
174696	//       "location": "query",
174697	//       "type": "boolean"
174698	//     }
174699	//   },
174700	//   "path": "projects/{project}/regions/{region}/targetVpnGateways",
174701	//   "response": {
174702	//     "$ref": "TargetVpnGatewayList"
174703	//   },
174704	//   "scopes": [
174705	//     "https://www.googleapis.com/auth/cloud-platform",
174706	//     "https://www.googleapis.com/auth/compute",
174707	//     "https://www.googleapis.com/auth/compute.readonly"
174708	//   ]
174709	// }
174710
174711}
174712
174713// Pages invokes f for each page of results.
174714// A non-nil error returned from f will halt the iteration.
174715// The provided context supersedes any context provided to the Context method.
174716func (c *TargetVpnGatewaysListCall) Pages(ctx context.Context, f func(*TargetVpnGatewayList) error) error {
174717	c.ctx_ = ctx
174718	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
174719	for {
174720		x, err := c.Do()
174721		if err != nil {
174722			return err
174723		}
174724		if err := f(x); err != nil {
174725			return err
174726		}
174727		if x.NextPageToken == "" {
174728			return nil
174729		}
174730		c.PageToken(x.NextPageToken)
174731	}
174732}
174733
174734// method id "compute.targetVpnGateways.setLabels":
174735
174736type TargetVpnGatewaysSetLabelsCall struct {
174737	s                      *Service
174738	project                string
174739	region                 string
174740	resource               string
174741	regionsetlabelsrequest *RegionSetLabelsRequest
174742	urlParams_             gensupport.URLParams
174743	ctx_                   context.Context
174744	header_                http.Header
174745}
174746
174747// SetLabels: Sets the labels on a TargetVpnGateway. To learn more about
174748// labels, read the Labeling Resources documentation.
174749func (r *TargetVpnGatewaysService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *TargetVpnGatewaysSetLabelsCall {
174750	c := &TargetVpnGatewaysSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
174751	c.project = project
174752	c.region = region
174753	c.resource = resource
174754	c.regionsetlabelsrequest = regionsetlabelsrequest
174755	return c
174756}
174757
174758// RequestId sets the optional parameter "requestId": An optional
174759// request ID to identify requests. Specify a unique request ID so that
174760// if you must retry your request, the server will know to ignore the
174761// request if it has already been completed.
174762//
174763// For example, consider a situation where you make an initial request
174764// and the request times out. If you make the request again with the
174765// same request ID, the server can check if original operation with the
174766// same request ID was received, and if so, will ignore the second
174767// request. This prevents clients from accidentally creating duplicate
174768// commitments.
174769//
174770// The request ID must be a valid UUID with the exception that zero UUID
174771// is not supported (00000000-0000-0000-0000-000000000000).
174772func (c *TargetVpnGatewaysSetLabelsCall) RequestId(requestId string) *TargetVpnGatewaysSetLabelsCall {
174773	c.urlParams_.Set("requestId", requestId)
174774	return c
174775}
174776
174777// Fields allows partial responses to be retrieved. See
174778// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
174779// for more information.
174780func (c *TargetVpnGatewaysSetLabelsCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysSetLabelsCall {
174781	c.urlParams_.Set("fields", googleapi.CombineFields(s))
174782	return c
174783}
174784
174785// Context sets the context to be used in this call's Do method. Any
174786// pending HTTP request will be aborted if the provided context is
174787// canceled.
174788func (c *TargetVpnGatewaysSetLabelsCall) Context(ctx context.Context) *TargetVpnGatewaysSetLabelsCall {
174789	c.ctx_ = ctx
174790	return c
174791}
174792
174793// Header returns an http.Header that can be modified by the caller to
174794// add HTTP headers to the request.
174795func (c *TargetVpnGatewaysSetLabelsCall) Header() http.Header {
174796	if c.header_ == nil {
174797		c.header_ = make(http.Header)
174798	}
174799	return c.header_
174800}
174801
174802func (c *TargetVpnGatewaysSetLabelsCall) doRequest(alt string) (*http.Response, error) {
174803	reqHeaders := make(http.Header)
174804	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
174805	for k, v := range c.header_ {
174806		reqHeaders[k] = v
174807	}
174808	reqHeaders.Set("User-Agent", c.s.userAgent())
174809	var body io.Reader = nil
174810	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
174811	if err != nil {
174812		return nil, err
174813	}
174814	reqHeaders.Set("Content-Type", "application/json")
174815	c.urlParams_.Set("alt", alt)
174816	c.urlParams_.Set("prettyPrint", "false")
174817	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetVpnGateways/{resource}/setLabels")
174818	urls += "?" + c.urlParams_.Encode()
174819	req, err := http.NewRequest("POST", urls, body)
174820	if err != nil {
174821		return nil, err
174822	}
174823	req.Header = reqHeaders
174824	googleapi.Expand(req.URL, map[string]string{
174825		"project":  c.project,
174826		"region":   c.region,
174827		"resource": c.resource,
174828	})
174829	return gensupport.SendRequest(c.ctx_, c.s.client, req)
174830}
174831
174832// Do executes the "compute.targetVpnGateways.setLabels" call.
174833// Exactly one of *Operation or error will be non-nil. Any non-2xx
174834// status code is an error. Response headers are in either
174835// *Operation.ServerResponse.Header or (if a response was returned at
174836// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
174837// to check whether the returned error was because
174838// http.StatusNotModified was returned.
174839func (c *TargetVpnGatewaysSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
174840	gensupport.SetOptions(c.urlParams_, opts...)
174841	res, err := c.doRequest("json")
174842	if res != nil && res.StatusCode == http.StatusNotModified {
174843		if res.Body != nil {
174844			res.Body.Close()
174845		}
174846		return nil, &googleapi.Error{
174847			Code:   res.StatusCode,
174848			Header: res.Header,
174849		}
174850	}
174851	if err != nil {
174852		return nil, err
174853	}
174854	defer googleapi.CloseBody(res)
174855	if err := googleapi.CheckResponse(res); err != nil {
174856		return nil, err
174857	}
174858	ret := &Operation{
174859		ServerResponse: googleapi.ServerResponse{
174860			Header:         res.Header,
174861			HTTPStatusCode: res.StatusCode,
174862		},
174863	}
174864	target := &ret
174865	if err := gensupport.DecodeResponse(target, res); err != nil {
174866		return nil, err
174867	}
174868	return ret, nil
174869	// {
174870	//   "description": "Sets the labels on a TargetVpnGateway. To learn more about labels, read the Labeling Resources documentation.",
174871	//   "httpMethod": "POST",
174872	//   "id": "compute.targetVpnGateways.setLabels",
174873	//   "parameterOrder": [
174874	//     "project",
174875	//     "region",
174876	//     "resource"
174877	//   ],
174878	//   "parameters": {
174879	//     "project": {
174880	//       "description": "Project ID for this request.",
174881	//       "location": "path",
174882	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
174883	//       "required": true,
174884	//       "type": "string"
174885	//     },
174886	//     "region": {
174887	//       "description": "The region for this request.",
174888	//       "location": "path",
174889	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
174890	//       "required": true,
174891	//       "type": "string"
174892	//     },
174893	//     "requestId": {
174894	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
174895	//       "location": "query",
174896	//       "type": "string"
174897	//     },
174898	//     "resource": {
174899	//       "description": "Name or id of the resource for this request.",
174900	//       "location": "path",
174901	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
174902	//       "required": true,
174903	//       "type": "string"
174904	//     }
174905	//   },
174906	//   "path": "projects/{project}/regions/{region}/targetVpnGateways/{resource}/setLabels",
174907	//   "request": {
174908	//     "$ref": "RegionSetLabelsRequest"
174909	//   },
174910	//   "response": {
174911	//     "$ref": "Operation"
174912	//   },
174913	//   "scopes": [
174914	//     "https://www.googleapis.com/auth/cloud-platform",
174915	//     "https://www.googleapis.com/auth/compute"
174916	//   ]
174917	// }
174918
174919}
174920
174921// method id "compute.targetVpnGateways.testIamPermissions":
174922
174923type TargetVpnGatewaysTestIamPermissionsCall struct {
174924	s                      *Service
174925	project                string
174926	region                 string
174927	resource               string
174928	testpermissionsrequest *TestPermissionsRequest
174929	urlParams_             gensupport.URLParams
174930	ctx_                   context.Context
174931	header_                http.Header
174932}
174933
174934// TestIamPermissions: Returns permissions that a caller has on the
174935// specified resource.
174936func (r *TargetVpnGatewaysService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *TargetVpnGatewaysTestIamPermissionsCall {
174937	c := &TargetVpnGatewaysTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
174938	c.project = project
174939	c.region = region
174940	c.resource = resource
174941	c.testpermissionsrequest = testpermissionsrequest
174942	return c
174943}
174944
174945// Fields allows partial responses to be retrieved. See
174946// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
174947// for more information.
174948func (c *TargetVpnGatewaysTestIamPermissionsCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysTestIamPermissionsCall {
174949	c.urlParams_.Set("fields", googleapi.CombineFields(s))
174950	return c
174951}
174952
174953// Context sets the context to be used in this call's Do method. Any
174954// pending HTTP request will be aborted if the provided context is
174955// canceled.
174956func (c *TargetVpnGatewaysTestIamPermissionsCall) Context(ctx context.Context) *TargetVpnGatewaysTestIamPermissionsCall {
174957	c.ctx_ = ctx
174958	return c
174959}
174960
174961// Header returns an http.Header that can be modified by the caller to
174962// add HTTP headers to the request.
174963func (c *TargetVpnGatewaysTestIamPermissionsCall) Header() http.Header {
174964	if c.header_ == nil {
174965		c.header_ = make(http.Header)
174966	}
174967	return c.header_
174968}
174969
174970func (c *TargetVpnGatewaysTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
174971	reqHeaders := make(http.Header)
174972	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
174973	for k, v := range c.header_ {
174974		reqHeaders[k] = v
174975	}
174976	reqHeaders.Set("User-Agent", c.s.userAgent())
174977	var body io.Reader = nil
174978	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
174979	if err != nil {
174980		return nil, err
174981	}
174982	reqHeaders.Set("Content-Type", "application/json")
174983	c.urlParams_.Set("alt", alt)
174984	c.urlParams_.Set("prettyPrint", "false")
174985	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetVpnGateways/{resource}/testIamPermissions")
174986	urls += "?" + c.urlParams_.Encode()
174987	req, err := http.NewRequest("POST", urls, body)
174988	if err != nil {
174989		return nil, err
174990	}
174991	req.Header = reqHeaders
174992	googleapi.Expand(req.URL, map[string]string{
174993		"project":  c.project,
174994		"region":   c.region,
174995		"resource": c.resource,
174996	})
174997	return gensupport.SendRequest(c.ctx_, c.s.client, req)
174998}
174999
175000// Do executes the "compute.targetVpnGateways.testIamPermissions" call.
175001// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
175002// non-2xx status code is an error. Response headers are in either
175003// *TestPermissionsResponse.ServerResponse.Header or (if a response was
175004// returned at all) in error.(*googleapi.Error).Header. Use
175005// googleapi.IsNotModified to check whether the returned error was
175006// because http.StatusNotModified was returned.
175007func (c *TargetVpnGatewaysTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
175008	gensupport.SetOptions(c.urlParams_, opts...)
175009	res, err := c.doRequest("json")
175010	if res != nil && res.StatusCode == http.StatusNotModified {
175011		if res.Body != nil {
175012			res.Body.Close()
175013		}
175014		return nil, &googleapi.Error{
175015			Code:   res.StatusCode,
175016			Header: res.Header,
175017		}
175018	}
175019	if err != nil {
175020		return nil, err
175021	}
175022	defer googleapi.CloseBody(res)
175023	if err := googleapi.CheckResponse(res); err != nil {
175024		return nil, err
175025	}
175026	ret := &TestPermissionsResponse{
175027		ServerResponse: googleapi.ServerResponse{
175028			Header:         res.Header,
175029			HTTPStatusCode: res.StatusCode,
175030		},
175031	}
175032	target := &ret
175033	if err := gensupport.DecodeResponse(target, res); err != nil {
175034		return nil, err
175035	}
175036	return ret, nil
175037	// {
175038	//   "description": "Returns permissions that a caller has on the specified resource.",
175039	//   "httpMethod": "POST",
175040	//   "id": "compute.targetVpnGateways.testIamPermissions",
175041	//   "parameterOrder": [
175042	//     "project",
175043	//     "region",
175044	//     "resource"
175045	//   ],
175046	//   "parameters": {
175047	//     "project": {
175048	//       "description": "Project ID for this request.",
175049	//       "location": "path",
175050	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
175051	//       "required": true,
175052	//       "type": "string"
175053	//     },
175054	//     "region": {
175055	//       "description": "The name of the region for this request.",
175056	//       "location": "path",
175057	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
175058	//       "required": true,
175059	//       "type": "string"
175060	//     },
175061	//     "resource": {
175062	//       "description": "Name or id of the resource for this request.",
175063	//       "location": "path",
175064	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
175065	//       "required": true,
175066	//       "type": "string"
175067	//     }
175068	//   },
175069	//   "path": "projects/{project}/regions/{region}/targetVpnGateways/{resource}/testIamPermissions",
175070	//   "request": {
175071	//     "$ref": "TestPermissionsRequest"
175072	//   },
175073	//   "response": {
175074	//     "$ref": "TestPermissionsResponse"
175075	//   },
175076	//   "scopes": [
175077	//     "https://www.googleapis.com/auth/cloud-platform",
175078	//     "https://www.googleapis.com/auth/compute",
175079	//     "https://www.googleapis.com/auth/compute.readonly"
175080	//   ]
175081	// }
175082
175083}
175084
175085// method id "compute.urlMaps.aggregatedList":
175086
175087type UrlMapsAggregatedListCall struct {
175088	s            *Service
175089	project      string
175090	urlParams_   gensupport.URLParams
175091	ifNoneMatch_ string
175092	ctx_         context.Context
175093	header_      http.Header
175094}
175095
175096// AggregatedList: Retrieves the list of all UrlMap resources, regional
175097// and global, available to the specified project.
175098func (r *UrlMapsService) AggregatedList(project string) *UrlMapsAggregatedListCall {
175099	c := &UrlMapsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
175100	c.project = project
175101	return c
175102}
175103
175104// Filter sets the optional parameter "filter": A filter expression that
175105// filters resources listed in the response. The expression must specify
175106// the field name, a comparison operator, and the value that you want to
175107// use for filtering. The value must be a string, a number, or a
175108// boolean. The comparison operator must be either `=`, `!=`, `>`, or
175109// `<`.
175110//
175111// For example, if you are filtering Compute Engine instances, you can
175112// exclude instances named `example-instance` by specifying `name !=
175113// example-instance`.
175114//
175115// You can also filter nested fields. For example, you could specify
175116// `scheduling.automaticRestart = false` to include instances only if
175117// they are not scheduled for automatic restarts. You can use filtering
175118// on nested fields to filter based on resource labels.
175119//
175120// To filter on multiple expressions, provide each separate expression
175121// within parentheses. For example: ``` (scheduling.automaticRestart =
175122// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
175123// is an `AND` expression. However, you can include `AND` and `OR`
175124// expressions explicitly. For example: ``` (cpuPlatform = "Intel
175125// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
175126// (scheduling.automaticRestart = true) ```
175127func (c *UrlMapsAggregatedListCall) Filter(filter string) *UrlMapsAggregatedListCall {
175128	c.urlParams_.Set("filter", filter)
175129	return c
175130}
175131
175132// IncludeAllScopes sets the optional parameter "includeAllScopes":
175133// Indicates whether every visible scope for each scope type (zone,
175134// region, global) should be included in the response. For new resource
175135// types added after this field, the flag has no effect as new resource
175136// types will always include every visible scope for each scope type in
175137// response. For resource types which predate this field, if this flag
175138// is omitted or false, only scopes of the scope types where the
175139// resource type is expected to be found will be included.
175140func (c *UrlMapsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *UrlMapsAggregatedListCall {
175141	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
175142	return c
175143}
175144
175145// MaxResults sets the optional parameter "maxResults": The maximum
175146// number of results per page that should be returned. If the number of
175147// available results is larger than `maxResults`, Compute Engine returns
175148// a `nextPageToken` that can be used to get the next page of results in
175149// subsequent list requests. Acceptable values are `0` to `500`,
175150// inclusive. (Default: `500`)
175151func (c *UrlMapsAggregatedListCall) MaxResults(maxResults int64) *UrlMapsAggregatedListCall {
175152	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
175153	return c
175154}
175155
175156// OrderBy sets the optional parameter "orderBy": Sorts list results by
175157// a certain order. By default, results are returned in alphanumerical
175158// order based on the resource name.
175159//
175160// You can also sort results in descending order based on the creation
175161// timestamp using `orderBy="creationTimestamp desc". This sorts
175162// results based on the `creationTimestamp` field in reverse
175163// chronological order (newest result first). Use this to sort resources
175164// like operations so that the newest operation is returned
175165// first.
175166//
175167// Currently, only sorting by `name` or `creationTimestamp desc` is
175168// supported.
175169func (c *UrlMapsAggregatedListCall) OrderBy(orderBy string) *UrlMapsAggregatedListCall {
175170	c.urlParams_.Set("orderBy", orderBy)
175171	return c
175172}
175173
175174// PageToken sets the optional parameter "pageToken": Specifies a page
175175// token to use. Set `pageToken` to the `nextPageToken` returned by a
175176// previous list request to get the next page of results.
175177func (c *UrlMapsAggregatedListCall) PageToken(pageToken string) *UrlMapsAggregatedListCall {
175178	c.urlParams_.Set("pageToken", pageToken)
175179	return c
175180}
175181
175182// ReturnPartialSuccess sets the optional parameter
175183// "returnPartialSuccess": Opt-in for partial success behavior which
175184// provides partial results in case of failure. The default value is
175185// false.
175186func (c *UrlMapsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *UrlMapsAggregatedListCall {
175187	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
175188	return c
175189}
175190
175191// Fields allows partial responses to be retrieved. See
175192// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
175193// for more information.
175194func (c *UrlMapsAggregatedListCall) Fields(s ...googleapi.Field) *UrlMapsAggregatedListCall {
175195	c.urlParams_.Set("fields", googleapi.CombineFields(s))
175196	return c
175197}
175198
175199// IfNoneMatch sets the optional parameter which makes the operation
175200// fail if the object's ETag matches the given value. This is useful for
175201// getting updates only after the object has changed since the last
175202// request. Use googleapi.IsNotModified to check whether the response
175203// error from Do is the result of In-None-Match.
175204func (c *UrlMapsAggregatedListCall) IfNoneMatch(entityTag string) *UrlMapsAggregatedListCall {
175205	c.ifNoneMatch_ = entityTag
175206	return c
175207}
175208
175209// Context sets the context to be used in this call's Do method. Any
175210// pending HTTP request will be aborted if the provided context is
175211// canceled.
175212func (c *UrlMapsAggregatedListCall) Context(ctx context.Context) *UrlMapsAggregatedListCall {
175213	c.ctx_ = ctx
175214	return c
175215}
175216
175217// Header returns an http.Header that can be modified by the caller to
175218// add HTTP headers to the request.
175219func (c *UrlMapsAggregatedListCall) Header() http.Header {
175220	if c.header_ == nil {
175221		c.header_ = make(http.Header)
175222	}
175223	return c.header_
175224}
175225
175226func (c *UrlMapsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
175227	reqHeaders := make(http.Header)
175228	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
175229	for k, v := range c.header_ {
175230		reqHeaders[k] = v
175231	}
175232	reqHeaders.Set("User-Agent", c.s.userAgent())
175233	if c.ifNoneMatch_ != "" {
175234		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
175235	}
175236	var body io.Reader = nil
175237	c.urlParams_.Set("alt", alt)
175238	c.urlParams_.Set("prettyPrint", "false")
175239	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/urlMaps")
175240	urls += "?" + c.urlParams_.Encode()
175241	req, err := http.NewRequest("GET", urls, body)
175242	if err != nil {
175243		return nil, err
175244	}
175245	req.Header = reqHeaders
175246	googleapi.Expand(req.URL, map[string]string{
175247		"project": c.project,
175248	})
175249	return gensupport.SendRequest(c.ctx_, c.s.client, req)
175250}
175251
175252// Do executes the "compute.urlMaps.aggregatedList" call.
175253// Exactly one of *UrlMapsAggregatedList or error will be non-nil. Any
175254// non-2xx status code is an error. Response headers are in either
175255// *UrlMapsAggregatedList.ServerResponse.Header or (if a response was
175256// returned at all) in error.(*googleapi.Error).Header. Use
175257// googleapi.IsNotModified to check whether the returned error was
175258// because http.StatusNotModified was returned.
175259func (c *UrlMapsAggregatedListCall) Do(opts ...googleapi.CallOption) (*UrlMapsAggregatedList, error) {
175260	gensupport.SetOptions(c.urlParams_, opts...)
175261	res, err := c.doRequest("json")
175262	if res != nil && res.StatusCode == http.StatusNotModified {
175263		if res.Body != nil {
175264			res.Body.Close()
175265		}
175266		return nil, &googleapi.Error{
175267			Code:   res.StatusCode,
175268			Header: res.Header,
175269		}
175270	}
175271	if err != nil {
175272		return nil, err
175273	}
175274	defer googleapi.CloseBody(res)
175275	if err := googleapi.CheckResponse(res); err != nil {
175276		return nil, err
175277	}
175278	ret := &UrlMapsAggregatedList{
175279		ServerResponse: googleapi.ServerResponse{
175280			Header:         res.Header,
175281			HTTPStatusCode: res.StatusCode,
175282		},
175283	}
175284	target := &ret
175285	if err := gensupport.DecodeResponse(target, res); err != nil {
175286		return nil, err
175287	}
175288	return ret, nil
175289	// {
175290	//   "description": "Retrieves the list of all UrlMap resources, regional and global, available to the specified project.",
175291	//   "httpMethod": "GET",
175292	//   "id": "compute.urlMaps.aggregatedList",
175293	//   "parameterOrder": [
175294	//     "project"
175295	//   ],
175296	//   "parameters": {
175297	//     "filter": {
175298	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
175299	//       "location": "query",
175300	//       "type": "string"
175301	//     },
175302	//     "includeAllScopes": {
175303	//       "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.",
175304	//       "location": "query",
175305	//       "type": "boolean"
175306	//     },
175307	//     "maxResults": {
175308	//       "default": "500",
175309	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
175310	//       "format": "uint32",
175311	//       "location": "query",
175312	//       "minimum": "0",
175313	//       "type": "integer"
175314	//     },
175315	//     "orderBy": {
175316	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
175317	//       "location": "query",
175318	//       "type": "string"
175319	//     },
175320	//     "pageToken": {
175321	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
175322	//       "location": "query",
175323	//       "type": "string"
175324	//     },
175325	//     "project": {
175326	//       "description": "Name of the project scoping this request.",
175327	//       "location": "path",
175328	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
175329	//       "required": true,
175330	//       "type": "string"
175331	//     },
175332	//     "returnPartialSuccess": {
175333	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
175334	//       "location": "query",
175335	//       "type": "boolean"
175336	//     }
175337	//   },
175338	//   "path": "projects/{project}/aggregated/urlMaps",
175339	//   "response": {
175340	//     "$ref": "UrlMapsAggregatedList"
175341	//   },
175342	//   "scopes": [
175343	//     "https://www.googleapis.com/auth/cloud-platform",
175344	//     "https://www.googleapis.com/auth/compute",
175345	//     "https://www.googleapis.com/auth/compute.readonly"
175346	//   ]
175347	// }
175348
175349}
175350
175351// Pages invokes f for each page of results.
175352// A non-nil error returned from f will halt the iteration.
175353// The provided context supersedes any context provided to the Context method.
175354func (c *UrlMapsAggregatedListCall) Pages(ctx context.Context, f func(*UrlMapsAggregatedList) error) error {
175355	c.ctx_ = ctx
175356	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
175357	for {
175358		x, err := c.Do()
175359		if err != nil {
175360			return err
175361		}
175362		if err := f(x); err != nil {
175363			return err
175364		}
175365		if x.NextPageToken == "" {
175366			return nil
175367		}
175368		c.PageToken(x.NextPageToken)
175369	}
175370}
175371
175372// method id "compute.urlMaps.delete":
175373
175374type UrlMapsDeleteCall struct {
175375	s          *Service
175376	project    string
175377	urlMap     string
175378	urlParams_ gensupport.URLParams
175379	ctx_       context.Context
175380	header_    http.Header
175381}
175382
175383// Delete: Deletes the specified UrlMap resource.
175384// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/delete
175385func (r *UrlMapsService) Delete(project string, urlMap string) *UrlMapsDeleteCall {
175386	c := &UrlMapsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
175387	c.project = project
175388	c.urlMap = urlMap
175389	return c
175390}
175391
175392// RequestId sets the optional parameter "requestId": An optional
175393// request ID to identify requests. Specify a unique request ID so that
175394// if you must retry your request, the server will know to ignore the
175395// request if it has already been completed.
175396//
175397// For example, consider a situation where you make an initial request
175398// and the request times out. If you make the request again with the
175399// same request ID, the server can check if original operation with the
175400// same request ID was received, and if so, will ignore the second
175401// request. This prevents clients from accidentally creating duplicate
175402// commitments.
175403//
175404// The request ID must be a valid UUID with the exception that zero UUID
175405// is not supported (00000000-0000-0000-0000-000000000000).
175406func (c *UrlMapsDeleteCall) RequestId(requestId string) *UrlMapsDeleteCall {
175407	c.urlParams_.Set("requestId", requestId)
175408	return c
175409}
175410
175411// Fields allows partial responses to be retrieved. See
175412// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
175413// for more information.
175414func (c *UrlMapsDeleteCall) Fields(s ...googleapi.Field) *UrlMapsDeleteCall {
175415	c.urlParams_.Set("fields", googleapi.CombineFields(s))
175416	return c
175417}
175418
175419// Context sets the context to be used in this call's Do method. Any
175420// pending HTTP request will be aborted if the provided context is
175421// canceled.
175422func (c *UrlMapsDeleteCall) Context(ctx context.Context) *UrlMapsDeleteCall {
175423	c.ctx_ = ctx
175424	return c
175425}
175426
175427// Header returns an http.Header that can be modified by the caller to
175428// add HTTP headers to the request.
175429func (c *UrlMapsDeleteCall) Header() http.Header {
175430	if c.header_ == nil {
175431		c.header_ = make(http.Header)
175432	}
175433	return c.header_
175434}
175435
175436func (c *UrlMapsDeleteCall) doRequest(alt string) (*http.Response, error) {
175437	reqHeaders := make(http.Header)
175438	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
175439	for k, v := range c.header_ {
175440		reqHeaders[k] = v
175441	}
175442	reqHeaders.Set("User-Agent", c.s.userAgent())
175443	var body io.Reader = nil
175444	c.urlParams_.Set("alt", alt)
175445	c.urlParams_.Set("prettyPrint", "false")
175446	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps/{urlMap}")
175447	urls += "?" + c.urlParams_.Encode()
175448	req, err := http.NewRequest("DELETE", urls, body)
175449	if err != nil {
175450		return nil, err
175451	}
175452	req.Header = reqHeaders
175453	googleapi.Expand(req.URL, map[string]string{
175454		"project": c.project,
175455		"urlMap":  c.urlMap,
175456	})
175457	return gensupport.SendRequest(c.ctx_, c.s.client, req)
175458}
175459
175460// Do executes the "compute.urlMaps.delete" call.
175461// Exactly one of *Operation or error will be non-nil. Any non-2xx
175462// status code is an error. Response headers are in either
175463// *Operation.ServerResponse.Header or (if a response was returned at
175464// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
175465// to check whether the returned error was because
175466// http.StatusNotModified was returned.
175467func (c *UrlMapsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
175468	gensupport.SetOptions(c.urlParams_, opts...)
175469	res, err := c.doRequest("json")
175470	if res != nil && res.StatusCode == http.StatusNotModified {
175471		if res.Body != nil {
175472			res.Body.Close()
175473		}
175474		return nil, &googleapi.Error{
175475			Code:   res.StatusCode,
175476			Header: res.Header,
175477		}
175478	}
175479	if err != nil {
175480		return nil, err
175481	}
175482	defer googleapi.CloseBody(res)
175483	if err := googleapi.CheckResponse(res); err != nil {
175484		return nil, err
175485	}
175486	ret := &Operation{
175487		ServerResponse: googleapi.ServerResponse{
175488			Header:         res.Header,
175489			HTTPStatusCode: res.StatusCode,
175490		},
175491	}
175492	target := &ret
175493	if err := gensupport.DecodeResponse(target, res); err != nil {
175494		return nil, err
175495	}
175496	return ret, nil
175497	// {
175498	//   "description": "Deletes the specified UrlMap resource.",
175499	//   "httpMethod": "DELETE",
175500	//   "id": "compute.urlMaps.delete",
175501	//   "parameterOrder": [
175502	//     "project",
175503	//     "urlMap"
175504	//   ],
175505	//   "parameters": {
175506	//     "project": {
175507	//       "description": "Project ID for this request.",
175508	//       "location": "path",
175509	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
175510	//       "required": true,
175511	//       "type": "string"
175512	//     },
175513	//     "requestId": {
175514	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
175515	//       "location": "query",
175516	//       "type": "string"
175517	//     },
175518	//     "urlMap": {
175519	//       "description": "Name of the UrlMap resource to delete.",
175520	//       "location": "path",
175521	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
175522	//       "required": true,
175523	//       "type": "string"
175524	//     }
175525	//   },
175526	//   "path": "projects/{project}/global/urlMaps/{urlMap}",
175527	//   "response": {
175528	//     "$ref": "Operation"
175529	//   },
175530	//   "scopes": [
175531	//     "https://www.googleapis.com/auth/cloud-platform",
175532	//     "https://www.googleapis.com/auth/compute"
175533	//   ]
175534	// }
175535
175536}
175537
175538// method id "compute.urlMaps.get":
175539
175540type UrlMapsGetCall struct {
175541	s            *Service
175542	project      string
175543	urlMap       string
175544	urlParams_   gensupport.URLParams
175545	ifNoneMatch_ string
175546	ctx_         context.Context
175547	header_      http.Header
175548}
175549
175550// Get: Returns the specified UrlMap resource. Gets a list of available
175551// URL maps by making a list() request.
175552// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/get
175553func (r *UrlMapsService) Get(project string, urlMap string) *UrlMapsGetCall {
175554	c := &UrlMapsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
175555	c.project = project
175556	c.urlMap = urlMap
175557	return c
175558}
175559
175560// Fields allows partial responses to be retrieved. See
175561// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
175562// for more information.
175563func (c *UrlMapsGetCall) Fields(s ...googleapi.Field) *UrlMapsGetCall {
175564	c.urlParams_.Set("fields", googleapi.CombineFields(s))
175565	return c
175566}
175567
175568// IfNoneMatch sets the optional parameter which makes the operation
175569// fail if the object's ETag matches the given value. This is useful for
175570// getting updates only after the object has changed since the last
175571// request. Use googleapi.IsNotModified to check whether the response
175572// error from Do is the result of In-None-Match.
175573func (c *UrlMapsGetCall) IfNoneMatch(entityTag string) *UrlMapsGetCall {
175574	c.ifNoneMatch_ = entityTag
175575	return c
175576}
175577
175578// Context sets the context to be used in this call's Do method. Any
175579// pending HTTP request will be aborted if the provided context is
175580// canceled.
175581func (c *UrlMapsGetCall) Context(ctx context.Context) *UrlMapsGetCall {
175582	c.ctx_ = ctx
175583	return c
175584}
175585
175586// Header returns an http.Header that can be modified by the caller to
175587// add HTTP headers to the request.
175588func (c *UrlMapsGetCall) Header() http.Header {
175589	if c.header_ == nil {
175590		c.header_ = make(http.Header)
175591	}
175592	return c.header_
175593}
175594
175595func (c *UrlMapsGetCall) doRequest(alt string) (*http.Response, error) {
175596	reqHeaders := make(http.Header)
175597	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
175598	for k, v := range c.header_ {
175599		reqHeaders[k] = v
175600	}
175601	reqHeaders.Set("User-Agent", c.s.userAgent())
175602	if c.ifNoneMatch_ != "" {
175603		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
175604	}
175605	var body io.Reader = nil
175606	c.urlParams_.Set("alt", alt)
175607	c.urlParams_.Set("prettyPrint", "false")
175608	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps/{urlMap}")
175609	urls += "?" + c.urlParams_.Encode()
175610	req, err := http.NewRequest("GET", urls, body)
175611	if err != nil {
175612		return nil, err
175613	}
175614	req.Header = reqHeaders
175615	googleapi.Expand(req.URL, map[string]string{
175616		"project": c.project,
175617		"urlMap":  c.urlMap,
175618	})
175619	return gensupport.SendRequest(c.ctx_, c.s.client, req)
175620}
175621
175622// Do executes the "compute.urlMaps.get" call.
175623// Exactly one of *UrlMap or error will be non-nil. Any non-2xx status
175624// code is an error. Response headers are in either
175625// *UrlMap.ServerResponse.Header or (if a response was returned at all)
175626// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
175627// check whether the returned error was because http.StatusNotModified
175628// was returned.
175629func (c *UrlMapsGetCall) Do(opts ...googleapi.CallOption) (*UrlMap, error) {
175630	gensupport.SetOptions(c.urlParams_, opts...)
175631	res, err := c.doRequest("json")
175632	if res != nil && res.StatusCode == http.StatusNotModified {
175633		if res.Body != nil {
175634			res.Body.Close()
175635		}
175636		return nil, &googleapi.Error{
175637			Code:   res.StatusCode,
175638			Header: res.Header,
175639		}
175640	}
175641	if err != nil {
175642		return nil, err
175643	}
175644	defer googleapi.CloseBody(res)
175645	if err := googleapi.CheckResponse(res); err != nil {
175646		return nil, err
175647	}
175648	ret := &UrlMap{
175649		ServerResponse: googleapi.ServerResponse{
175650			Header:         res.Header,
175651			HTTPStatusCode: res.StatusCode,
175652		},
175653	}
175654	target := &ret
175655	if err := gensupport.DecodeResponse(target, res); err != nil {
175656		return nil, err
175657	}
175658	return ret, nil
175659	// {
175660	//   "description": "Returns the specified UrlMap resource. Gets a list of available URL maps by making a list() request.",
175661	//   "httpMethod": "GET",
175662	//   "id": "compute.urlMaps.get",
175663	//   "parameterOrder": [
175664	//     "project",
175665	//     "urlMap"
175666	//   ],
175667	//   "parameters": {
175668	//     "project": {
175669	//       "description": "Project ID for this request.",
175670	//       "location": "path",
175671	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
175672	//       "required": true,
175673	//       "type": "string"
175674	//     },
175675	//     "urlMap": {
175676	//       "description": "Name of the UrlMap resource to return.",
175677	//       "location": "path",
175678	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
175679	//       "required": true,
175680	//       "type": "string"
175681	//     }
175682	//   },
175683	//   "path": "projects/{project}/global/urlMaps/{urlMap}",
175684	//   "response": {
175685	//     "$ref": "UrlMap"
175686	//   },
175687	//   "scopes": [
175688	//     "https://www.googleapis.com/auth/cloud-platform",
175689	//     "https://www.googleapis.com/auth/compute",
175690	//     "https://www.googleapis.com/auth/compute.readonly"
175691	//   ]
175692	// }
175693
175694}
175695
175696// method id "compute.urlMaps.insert":
175697
175698type UrlMapsInsertCall struct {
175699	s          *Service
175700	project    string
175701	urlmap     *UrlMap
175702	urlParams_ gensupport.URLParams
175703	ctx_       context.Context
175704	header_    http.Header
175705}
175706
175707// Insert: Creates a UrlMap resource in the specified project using the
175708// data included in the request.
175709// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/insert
175710func (r *UrlMapsService) Insert(project string, urlmap *UrlMap) *UrlMapsInsertCall {
175711	c := &UrlMapsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
175712	c.project = project
175713	c.urlmap = urlmap
175714	return c
175715}
175716
175717// RequestId sets the optional parameter "requestId": An optional
175718// request ID to identify requests. Specify a unique request ID so that
175719// if you must retry your request, the server will know to ignore the
175720// request if it has already been completed.
175721//
175722// For example, consider a situation where you make an initial request
175723// and the request times out. If you make the request again with the
175724// same request ID, the server can check if original operation with the
175725// same request ID was received, and if so, will ignore the second
175726// request. This prevents clients from accidentally creating duplicate
175727// commitments.
175728//
175729// The request ID must be a valid UUID with the exception that zero UUID
175730// is not supported (00000000-0000-0000-0000-000000000000).
175731func (c *UrlMapsInsertCall) RequestId(requestId string) *UrlMapsInsertCall {
175732	c.urlParams_.Set("requestId", requestId)
175733	return c
175734}
175735
175736// Fields allows partial responses to be retrieved. See
175737// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
175738// for more information.
175739func (c *UrlMapsInsertCall) Fields(s ...googleapi.Field) *UrlMapsInsertCall {
175740	c.urlParams_.Set("fields", googleapi.CombineFields(s))
175741	return c
175742}
175743
175744// Context sets the context to be used in this call's Do method. Any
175745// pending HTTP request will be aborted if the provided context is
175746// canceled.
175747func (c *UrlMapsInsertCall) Context(ctx context.Context) *UrlMapsInsertCall {
175748	c.ctx_ = ctx
175749	return c
175750}
175751
175752// Header returns an http.Header that can be modified by the caller to
175753// add HTTP headers to the request.
175754func (c *UrlMapsInsertCall) Header() http.Header {
175755	if c.header_ == nil {
175756		c.header_ = make(http.Header)
175757	}
175758	return c.header_
175759}
175760
175761func (c *UrlMapsInsertCall) doRequest(alt string) (*http.Response, error) {
175762	reqHeaders := make(http.Header)
175763	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
175764	for k, v := range c.header_ {
175765		reqHeaders[k] = v
175766	}
175767	reqHeaders.Set("User-Agent", c.s.userAgent())
175768	var body io.Reader = nil
175769	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
175770	if err != nil {
175771		return nil, err
175772	}
175773	reqHeaders.Set("Content-Type", "application/json")
175774	c.urlParams_.Set("alt", alt)
175775	c.urlParams_.Set("prettyPrint", "false")
175776	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps")
175777	urls += "?" + c.urlParams_.Encode()
175778	req, err := http.NewRequest("POST", urls, body)
175779	if err != nil {
175780		return nil, err
175781	}
175782	req.Header = reqHeaders
175783	googleapi.Expand(req.URL, map[string]string{
175784		"project": c.project,
175785	})
175786	return gensupport.SendRequest(c.ctx_, c.s.client, req)
175787}
175788
175789// Do executes the "compute.urlMaps.insert" call.
175790// Exactly one of *Operation or error will be non-nil. Any non-2xx
175791// status code is an error. Response headers are in either
175792// *Operation.ServerResponse.Header or (if a response was returned at
175793// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
175794// to check whether the returned error was because
175795// http.StatusNotModified was returned.
175796func (c *UrlMapsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
175797	gensupport.SetOptions(c.urlParams_, opts...)
175798	res, err := c.doRequest("json")
175799	if res != nil && res.StatusCode == http.StatusNotModified {
175800		if res.Body != nil {
175801			res.Body.Close()
175802		}
175803		return nil, &googleapi.Error{
175804			Code:   res.StatusCode,
175805			Header: res.Header,
175806		}
175807	}
175808	if err != nil {
175809		return nil, err
175810	}
175811	defer googleapi.CloseBody(res)
175812	if err := googleapi.CheckResponse(res); err != nil {
175813		return nil, err
175814	}
175815	ret := &Operation{
175816		ServerResponse: googleapi.ServerResponse{
175817			Header:         res.Header,
175818			HTTPStatusCode: res.StatusCode,
175819		},
175820	}
175821	target := &ret
175822	if err := gensupport.DecodeResponse(target, res); err != nil {
175823		return nil, err
175824	}
175825	return ret, nil
175826	// {
175827	//   "description": "Creates a UrlMap resource in the specified project using the data included in the request.",
175828	//   "httpMethod": "POST",
175829	//   "id": "compute.urlMaps.insert",
175830	//   "parameterOrder": [
175831	//     "project"
175832	//   ],
175833	//   "parameters": {
175834	//     "project": {
175835	//       "description": "Project ID for this request.",
175836	//       "location": "path",
175837	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
175838	//       "required": true,
175839	//       "type": "string"
175840	//     },
175841	//     "requestId": {
175842	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
175843	//       "location": "query",
175844	//       "type": "string"
175845	//     }
175846	//   },
175847	//   "path": "projects/{project}/global/urlMaps",
175848	//   "request": {
175849	//     "$ref": "UrlMap"
175850	//   },
175851	//   "response": {
175852	//     "$ref": "Operation"
175853	//   },
175854	//   "scopes": [
175855	//     "https://www.googleapis.com/auth/cloud-platform",
175856	//     "https://www.googleapis.com/auth/compute"
175857	//   ]
175858	// }
175859
175860}
175861
175862// method id "compute.urlMaps.invalidateCache":
175863
175864type UrlMapsInvalidateCacheCall struct {
175865	s                     *Service
175866	project               string
175867	urlMap                string
175868	cacheinvalidationrule *CacheInvalidationRule
175869	urlParams_            gensupport.URLParams
175870	ctx_                  context.Context
175871	header_               http.Header
175872}
175873
175874// InvalidateCache: Initiates a cache invalidation operation,
175875// invalidating the specified path, scoped to the specified UrlMap.
175876//
175877// For more information, see Invalidating cached content
175878// (/cdn/docs/invalidating-cached-content).
175879func (r *UrlMapsService) InvalidateCache(project string, urlMap string, cacheinvalidationrule *CacheInvalidationRule) *UrlMapsInvalidateCacheCall {
175880	c := &UrlMapsInvalidateCacheCall{s: r.s, urlParams_: make(gensupport.URLParams)}
175881	c.project = project
175882	c.urlMap = urlMap
175883	c.cacheinvalidationrule = cacheinvalidationrule
175884	return c
175885}
175886
175887// RequestId sets the optional parameter "requestId": An optional
175888// request ID to identify requests. Specify a unique request ID so that
175889// if you must retry your request, the server will know to ignore the
175890// request if it has already been completed.
175891//
175892// For example, consider a situation where you make an initial request
175893// and the request times out. If you make the request again with the
175894// same request ID, the server can check if original operation with the
175895// same request ID was received, and if so, will ignore the second
175896// request. This prevents clients from accidentally creating duplicate
175897// commitments.
175898//
175899// The request ID must be a valid UUID with the exception that zero UUID
175900// is not supported (00000000-0000-0000-0000-000000000000).
175901func (c *UrlMapsInvalidateCacheCall) RequestId(requestId string) *UrlMapsInvalidateCacheCall {
175902	c.urlParams_.Set("requestId", requestId)
175903	return c
175904}
175905
175906// Fields allows partial responses to be retrieved. See
175907// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
175908// for more information.
175909func (c *UrlMapsInvalidateCacheCall) Fields(s ...googleapi.Field) *UrlMapsInvalidateCacheCall {
175910	c.urlParams_.Set("fields", googleapi.CombineFields(s))
175911	return c
175912}
175913
175914// Context sets the context to be used in this call's Do method. Any
175915// pending HTTP request will be aborted if the provided context is
175916// canceled.
175917func (c *UrlMapsInvalidateCacheCall) Context(ctx context.Context) *UrlMapsInvalidateCacheCall {
175918	c.ctx_ = ctx
175919	return c
175920}
175921
175922// Header returns an http.Header that can be modified by the caller to
175923// add HTTP headers to the request.
175924func (c *UrlMapsInvalidateCacheCall) Header() http.Header {
175925	if c.header_ == nil {
175926		c.header_ = make(http.Header)
175927	}
175928	return c.header_
175929}
175930
175931func (c *UrlMapsInvalidateCacheCall) doRequest(alt string) (*http.Response, error) {
175932	reqHeaders := make(http.Header)
175933	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
175934	for k, v := range c.header_ {
175935		reqHeaders[k] = v
175936	}
175937	reqHeaders.Set("User-Agent", c.s.userAgent())
175938	var body io.Reader = nil
175939	body, err := googleapi.WithoutDataWrapper.JSONReader(c.cacheinvalidationrule)
175940	if err != nil {
175941		return nil, err
175942	}
175943	reqHeaders.Set("Content-Type", "application/json")
175944	c.urlParams_.Set("alt", alt)
175945	c.urlParams_.Set("prettyPrint", "false")
175946	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps/{urlMap}/invalidateCache")
175947	urls += "?" + c.urlParams_.Encode()
175948	req, err := http.NewRequest("POST", urls, body)
175949	if err != nil {
175950		return nil, err
175951	}
175952	req.Header = reqHeaders
175953	googleapi.Expand(req.URL, map[string]string{
175954		"project": c.project,
175955		"urlMap":  c.urlMap,
175956	})
175957	return gensupport.SendRequest(c.ctx_, c.s.client, req)
175958}
175959
175960// Do executes the "compute.urlMaps.invalidateCache" call.
175961// Exactly one of *Operation or error will be non-nil. Any non-2xx
175962// status code is an error. Response headers are in either
175963// *Operation.ServerResponse.Header or (if a response was returned at
175964// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
175965// to check whether the returned error was because
175966// http.StatusNotModified was returned.
175967func (c *UrlMapsInvalidateCacheCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
175968	gensupport.SetOptions(c.urlParams_, opts...)
175969	res, err := c.doRequest("json")
175970	if res != nil && res.StatusCode == http.StatusNotModified {
175971		if res.Body != nil {
175972			res.Body.Close()
175973		}
175974		return nil, &googleapi.Error{
175975			Code:   res.StatusCode,
175976			Header: res.Header,
175977		}
175978	}
175979	if err != nil {
175980		return nil, err
175981	}
175982	defer googleapi.CloseBody(res)
175983	if err := googleapi.CheckResponse(res); err != nil {
175984		return nil, err
175985	}
175986	ret := &Operation{
175987		ServerResponse: googleapi.ServerResponse{
175988			Header:         res.Header,
175989			HTTPStatusCode: res.StatusCode,
175990		},
175991	}
175992	target := &ret
175993	if err := gensupport.DecodeResponse(target, res); err != nil {
175994		return nil, err
175995	}
175996	return ret, nil
175997	// {
175998	//   "description": "Initiates a cache invalidation operation, invalidating the specified path, scoped to the specified UrlMap.\n\nFor more information, see [Invalidating cached content](/cdn/docs/invalidating-cached-content).",
175999	//   "httpMethod": "POST",
176000	//   "id": "compute.urlMaps.invalidateCache",
176001	//   "parameterOrder": [
176002	//     "project",
176003	//     "urlMap"
176004	//   ],
176005	//   "parameters": {
176006	//     "project": {
176007	//       "description": "Project ID for this request.",
176008	//       "location": "path",
176009	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
176010	//       "required": true,
176011	//       "type": "string"
176012	//     },
176013	//     "requestId": {
176014	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
176015	//       "location": "query",
176016	//       "type": "string"
176017	//     },
176018	//     "urlMap": {
176019	//       "description": "Name of the UrlMap scoping this request.",
176020	//       "location": "path",
176021	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
176022	//       "required": true,
176023	//       "type": "string"
176024	//     }
176025	//   },
176026	//   "path": "projects/{project}/global/urlMaps/{urlMap}/invalidateCache",
176027	//   "request": {
176028	//     "$ref": "CacheInvalidationRule"
176029	//   },
176030	//   "response": {
176031	//     "$ref": "Operation"
176032	//   },
176033	//   "scopes": [
176034	//     "https://www.googleapis.com/auth/cloud-platform",
176035	//     "https://www.googleapis.com/auth/compute"
176036	//   ]
176037	// }
176038
176039}
176040
176041// method id "compute.urlMaps.list":
176042
176043type UrlMapsListCall struct {
176044	s            *Service
176045	project      string
176046	urlParams_   gensupport.URLParams
176047	ifNoneMatch_ string
176048	ctx_         context.Context
176049	header_      http.Header
176050}
176051
176052// List: Retrieves the list of UrlMap resources available to the
176053// specified project.
176054// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/list
176055func (r *UrlMapsService) List(project string) *UrlMapsListCall {
176056	c := &UrlMapsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
176057	c.project = project
176058	return c
176059}
176060
176061// Filter sets the optional parameter "filter": A filter expression that
176062// filters resources listed in the response. The expression must specify
176063// the field name, a comparison operator, and the value that you want to
176064// use for filtering. The value must be a string, a number, or a
176065// boolean. The comparison operator must be either `=`, `!=`, `>`, or
176066// `<`.
176067//
176068// For example, if you are filtering Compute Engine instances, you can
176069// exclude instances named `example-instance` by specifying `name !=
176070// example-instance`.
176071//
176072// You can also filter nested fields. For example, you could specify
176073// `scheduling.automaticRestart = false` to include instances only if
176074// they are not scheduled for automatic restarts. You can use filtering
176075// on nested fields to filter based on resource labels.
176076//
176077// To filter on multiple expressions, provide each separate expression
176078// within parentheses. For example: ``` (scheduling.automaticRestart =
176079// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
176080// is an `AND` expression. However, you can include `AND` and `OR`
176081// expressions explicitly. For example: ``` (cpuPlatform = "Intel
176082// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
176083// (scheduling.automaticRestart = true) ```
176084func (c *UrlMapsListCall) Filter(filter string) *UrlMapsListCall {
176085	c.urlParams_.Set("filter", filter)
176086	return c
176087}
176088
176089// MaxResults sets the optional parameter "maxResults": The maximum
176090// number of results per page that should be returned. If the number of
176091// available results is larger than `maxResults`, Compute Engine returns
176092// a `nextPageToken` that can be used to get the next page of results in
176093// subsequent list requests. Acceptable values are `0` to `500`,
176094// inclusive. (Default: `500`)
176095func (c *UrlMapsListCall) MaxResults(maxResults int64) *UrlMapsListCall {
176096	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
176097	return c
176098}
176099
176100// OrderBy sets the optional parameter "orderBy": Sorts list results by
176101// a certain order. By default, results are returned in alphanumerical
176102// order based on the resource name.
176103//
176104// You can also sort results in descending order based on the creation
176105// timestamp using `orderBy="creationTimestamp desc". This sorts
176106// results based on the `creationTimestamp` field in reverse
176107// chronological order (newest result first). Use this to sort resources
176108// like operations so that the newest operation is returned
176109// first.
176110//
176111// Currently, only sorting by `name` or `creationTimestamp desc` is
176112// supported.
176113func (c *UrlMapsListCall) OrderBy(orderBy string) *UrlMapsListCall {
176114	c.urlParams_.Set("orderBy", orderBy)
176115	return c
176116}
176117
176118// PageToken sets the optional parameter "pageToken": Specifies a page
176119// token to use. Set `pageToken` to the `nextPageToken` returned by a
176120// previous list request to get the next page of results.
176121func (c *UrlMapsListCall) PageToken(pageToken string) *UrlMapsListCall {
176122	c.urlParams_.Set("pageToken", pageToken)
176123	return c
176124}
176125
176126// ReturnPartialSuccess sets the optional parameter
176127// "returnPartialSuccess": Opt-in for partial success behavior which
176128// provides partial results in case of failure. The default value is
176129// false.
176130func (c *UrlMapsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *UrlMapsListCall {
176131	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
176132	return c
176133}
176134
176135// Fields allows partial responses to be retrieved. See
176136// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
176137// for more information.
176138func (c *UrlMapsListCall) Fields(s ...googleapi.Field) *UrlMapsListCall {
176139	c.urlParams_.Set("fields", googleapi.CombineFields(s))
176140	return c
176141}
176142
176143// IfNoneMatch sets the optional parameter which makes the operation
176144// fail if the object's ETag matches the given value. This is useful for
176145// getting updates only after the object has changed since the last
176146// request. Use googleapi.IsNotModified to check whether the response
176147// error from Do is the result of In-None-Match.
176148func (c *UrlMapsListCall) IfNoneMatch(entityTag string) *UrlMapsListCall {
176149	c.ifNoneMatch_ = entityTag
176150	return c
176151}
176152
176153// Context sets the context to be used in this call's Do method. Any
176154// pending HTTP request will be aborted if the provided context is
176155// canceled.
176156func (c *UrlMapsListCall) Context(ctx context.Context) *UrlMapsListCall {
176157	c.ctx_ = ctx
176158	return c
176159}
176160
176161// Header returns an http.Header that can be modified by the caller to
176162// add HTTP headers to the request.
176163func (c *UrlMapsListCall) Header() http.Header {
176164	if c.header_ == nil {
176165		c.header_ = make(http.Header)
176166	}
176167	return c.header_
176168}
176169
176170func (c *UrlMapsListCall) doRequest(alt string) (*http.Response, error) {
176171	reqHeaders := make(http.Header)
176172	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
176173	for k, v := range c.header_ {
176174		reqHeaders[k] = v
176175	}
176176	reqHeaders.Set("User-Agent", c.s.userAgent())
176177	if c.ifNoneMatch_ != "" {
176178		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
176179	}
176180	var body io.Reader = nil
176181	c.urlParams_.Set("alt", alt)
176182	c.urlParams_.Set("prettyPrint", "false")
176183	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps")
176184	urls += "?" + c.urlParams_.Encode()
176185	req, err := http.NewRequest("GET", urls, body)
176186	if err != nil {
176187		return nil, err
176188	}
176189	req.Header = reqHeaders
176190	googleapi.Expand(req.URL, map[string]string{
176191		"project": c.project,
176192	})
176193	return gensupport.SendRequest(c.ctx_, c.s.client, req)
176194}
176195
176196// Do executes the "compute.urlMaps.list" call.
176197// Exactly one of *UrlMapList or error will be non-nil. Any non-2xx
176198// status code is an error. Response headers are in either
176199// *UrlMapList.ServerResponse.Header or (if a response was returned at
176200// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
176201// to check whether the returned error was because
176202// http.StatusNotModified was returned.
176203func (c *UrlMapsListCall) Do(opts ...googleapi.CallOption) (*UrlMapList, error) {
176204	gensupport.SetOptions(c.urlParams_, opts...)
176205	res, err := c.doRequest("json")
176206	if res != nil && res.StatusCode == http.StatusNotModified {
176207		if res.Body != nil {
176208			res.Body.Close()
176209		}
176210		return nil, &googleapi.Error{
176211			Code:   res.StatusCode,
176212			Header: res.Header,
176213		}
176214	}
176215	if err != nil {
176216		return nil, err
176217	}
176218	defer googleapi.CloseBody(res)
176219	if err := googleapi.CheckResponse(res); err != nil {
176220		return nil, err
176221	}
176222	ret := &UrlMapList{
176223		ServerResponse: googleapi.ServerResponse{
176224			Header:         res.Header,
176225			HTTPStatusCode: res.StatusCode,
176226		},
176227	}
176228	target := &ret
176229	if err := gensupport.DecodeResponse(target, res); err != nil {
176230		return nil, err
176231	}
176232	return ret, nil
176233	// {
176234	//   "description": "Retrieves the list of UrlMap resources available to the specified project.",
176235	//   "httpMethod": "GET",
176236	//   "id": "compute.urlMaps.list",
176237	//   "parameterOrder": [
176238	//     "project"
176239	//   ],
176240	//   "parameters": {
176241	//     "filter": {
176242	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
176243	//       "location": "query",
176244	//       "type": "string"
176245	//     },
176246	//     "maxResults": {
176247	//       "default": "500",
176248	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
176249	//       "format": "uint32",
176250	//       "location": "query",
176251	//       "minimum": "0",
176252	//       "type": "integer"
176253	//     },
176254	//     "orderBy": {
176255	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
176256	//       "location": "query",
176257	//       "type": "string"
176258	//     },
176259	//     "pageToken": {
176260	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
176261	//       "location": "query",
176262	//       "type": "string"
176263	//     },
176264	//     "project": {
176265	//       "description": "Project ID for this request.",
176266	//       "location": "path",
176267	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
176268	//       "required": true,
176269	//       "type": "string"
176270	//     },
176271	//     "returnPartialSuccess": {
176272	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
176273	//       "location": "query",
176274	//       "type": "boolean"
176275	//     }
176276	//   },
176277	//   "path": "projects/{project}/global/urlMaps",
176278	//   "response": {
176279	//     "$ref": "UrlMapList"
176280	//   },
176281	//   "scopes": [
176282	//     "https://www.googleapis.com/auth/cloud-platform",
176283	//     "https://www.googleapis.com/auth/compute",
176284	//     "https://www.googleapis.com/auth/compute.readonly"
176285	//   ]
176286	// }
176287
176288}
176289
176290// Pages invokes f for each page of results.
176291// A non-nil error returned from f will halt the iteration.
176292// The provided context supersedes any context provided to the Context method.
176293func (c *UrlMapsListCall) Pages(ctx context.Context, f func(*UrlMapList) error) error {
176294	c.ctx_ = ctx
176295	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
176296	for {
176297		x, err := c.Do()
176298		if err != nil {
176299			return err
176300		}
176301		if err := f(x); err != nil {
176302			return err
176303		}
176304		if x.NextPageToken == "" {
176305			return nil
176306		}
176307		c.PageToken(x.NextPageToken)
176308	}
176309}
176310
176311// method id "compute.urlMaps.patch":
176312
176313type UrlMapsPatchCall struct {
176314	s          *Service
176315	project    string
176316	urlMap     string
176317	urlmap     *UrlMap
176318	urlParams_ gensupport.URLParams
176319	ctx_       context.Context
176320	header_    http.Header
176321}
176322
176323// Patch: Patches the specified UrlMap resource with the data included
176324// in the request. This method supports PATCH semantics and uses the
176325// JSON merge patch format and processing rules.
176326// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/patch
176327func (r *UrlMapsService) Patch(project string, urlMap string, urlmap *UrlMap) *UrlMapsPatchCall {
176328	c := &UrlMapsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
176329	c.project = project
176330	c.urlMap = urlMap
176331	c.urlmap = urlmap
176332	return c
176333}
176334
176335// RequestId sets the optional parameter "requestId": An optional
176336// request ID to identify requests. Specify a unique request ID so that
176337// if you must retry your request, the server will know to ignore the
176338// request if it has already been completed.
176339//
176340// For example, consider a situation where you make an initial request
176341// and the request times out. If you make the request again with the
176342// same request ID, the server can check if original operation with the
176343// same request ID was received, and if so, will ignore the second
176344// request. This prevents clients from accidentally creating duplicate
176345// commitments.
176346//
176347// The request ID must be a valid UUID with the exception that zero UUID
176348// is not supported (00000000-0000-0000-0000-000000000000).
176349func (c *UrlMapsPatchCall) RequestId(requestId string) *UrlMapsPatchCall {
176350	c.urlParams_.Set("requestId", requestId)
176351	return c
176352}
176353
176354// Fields allows partial responses to be retrieved. See
176355// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
176356// for more information.
176357func (c *UrlMapsPatchCall) Fields(s ...googleapi.Field) *UrlMapsPatchCall {
176358	c.urlParams_.Set("fields", googleapi.CombineFields(s))
176359	return c
176360}
176361
176362// Context sets the context to be used in this call's Do method. Any
176363// pending HTTP request will be aborted if the provided context is
176364// canceled.
176365func (c *UrlMapsPatchCall) Context(ctx context.Context) *UrlMapsPatchCall {
176366	c.ctx_ = ctx
176367	return c
176368}
176369
176370// Header returns an http.Header that can be modified by the caller to
176371// add HTTP headers to the request.
176372func (c *UrlMapsPatchCall) Header() http.Header {
176373	if c.header_ == nil {
176374		c.header_ = make(http.Header)
176375	}
176376	return c.header_
176377}
176378
176379func (c *UrlMapsPatchCall) doRequest(alt string) (*http.Response, error) {
176380	reqHeaders := make(http.Header)
176381	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
176382	for k, v := range c.header_ {
176383		reqHeaders[k] = v
176384	}
176385	reqHeaders.Set("User-Agent", c.s.userAgent())
176386	var body io.Reader = nil
176387	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
176388	if err != nil {
176389		return nil, err
176390	}
176391	reqHeaders.Set("Content-Type", "application/json")
176392	c.urlParams_.Set("alt", alt)
176393	c.urlParams_.Set("prettyPrint", "false")
176394	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps/{urlMap}")
176395	urls += "?" + c.urlParams_.Encode()
176396	req, err := http.NewRequest("PATCH", urls, body)
176397	if err != nil {
176398		return nil, err
176399	}
176400	req.Header = reqHeaders
176401	googleapi.Expand(req.URL, map[string]string{
176402		"project": c.project,
176403		"urlMap":  c.urlMap,
176404	})
176405	return gensupport.SendRequest(c.ctx_, c.s.client, req)
176406}
176407
176408// Do executes the "compute.urlMaps.patch" call.
176409// Exactly one of *Operation or error will be non-nil. Any non-2xx
176410// status code is an error. Response headers are in either
176411// *Operation.ServerResponse.Header or (if a response was returned at
176412// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
176413// to check whether the returned error was because
176414// http.StatusNotModified was returned.
176415func (c *UrlMapsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
176416	gensupport.SetOptions(c.urlParams_, opts...)
176417	res, err := c.doRequest("json")
176418	if res != nil && res.StatusCode == http.StatusNotModified {
176419		if res.Body != nil {
176420			res.Body.Close()
176421		}
176422		return nil, &googleapi.Error{
176423			Code:   res.StatusCode,
176424			Header: res.Header,
176425		}
176426	}
176427	if err != nil {
176428		return nil, err
176429	}
176430	defer googleapi.CloseBody(res)
176431	if err := googleapi.CheckResponse(res); err != nil {
176432		return nil, err
176433	}
176434	ret := &Operation{
176435		ServerResponse: googleapi.ServerResponse{
176436			Header:         res.Header,
176437			HTTPStatusCode: res.StatusCode,
176438		},
176439	}
176440	target := &ret
176441	if err := gensupport.DecodeResponse(target, res); err != nil {
176442		return nil, err
176443	}
176444	return ret, nil
176445	// {
176446	//   "description": "Patches the specified UrlMap resource with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.",
176447	//   "httpMethod": "PATCH",
176448	//   "id": "compute.urlMaps.patch",
176449	//   "parameterOrder": [
176450	//     "project",
176451	//     "urlMap"
176452	//   ],
176453	//   "parameters": {
176454	//     "project": {
176455	//       "description": "Project ID for this request.",
176456	//       "location": "path",
176457	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
176458	//       "required": true,
176459	//       "type": "string"
176460	//     },
176461	//     "requestId": {
176462	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
176463	//       "location": "query",
176464	//       "type": "string"
176465	//     },
176466	//     "urlMap": {
176467	//       "description": "Name of the UrlMap resource to patch.",
176468	//       "location": "path",
176469	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
176470	//       "required": true,
176471	//       "type": "string"
176472	//     }
176473	//   },
176474	//   "path": "projects/{project}/global/urlMaps/{urlMap}",
176475	//   "request": {
176476	//     "$ref": "UrlMap"
176477	//   },
176478	//   "response": {
176479	//     "$ref": "Operation"
176480	//   },
176481	//   "scopes": [
176482	//     "https://www.googleapis.com/auth/cloud-platform",
176483	//     "https://www.googleapis.com/auth/compute"
176484	//   ]
176485	// }
176486
176487}
176488
176489// method id "compute.urlMaps.testIamPermissions":
176490
176491type UrlMapsTestIamPermissionsCall struct {
176492	s                      *Service
176493	project                string
176494	resource               string
176495	testpermissionsrequest *TestPermissionsRequest
176496	urlParams_             gensupport.URLParams
176497	ctx_                   context.Context
176498	header_                http.Header
176499}
176500
176501// TestIamPermissions: Returns permissions that a caller has on the
176502// specified resource.
176503func (r *UrlMapsService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *UrlMapsTestIamPermissionsCall {
176504	c := &UrlMapsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
176505	c.project = project
176506	c.resource = resource
176507	c.testpermissionsrequest = testpermissionsrequest
176508	return c
176509}
176510
176511// Fields allows partial responses to be retrieved. See
176512// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
176513// for more information.
176514func (c *UrlMapsTestIamPermissionsCall) Fields(s ...googleapi.Field) *UrlMapsTestIamPermissionsCall {
176515	c.urlParams_.Set("fields", googleapi.CombineFields(s))
176516	return c
176517}
176518
176519// Context sets the context to be used in this call's Do method. Any
176520// pending HTTP request will be aborted if the provided context is
176521// canceled.
176522func (c *UrlMapsTestIamPermissionsCall) Context(ctx context.Context) *UrlMapsTestIamPermissionsCall {
176523	c.ctx_ = ctx
176524	return c
176525}
176526
176527// Header returns an http.Header that can be modified by the caller to
176528// add HTTP headers to the request.
176529func (c *UrlMapsTestIamPermissionsCall) Header() http.Header {
176530	if c.header_ == nil {
176531		c.header_ = make(http.Header)
176532	}
176533	return c.header_
176534}
176535
176536func (c *UrlMapsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
176537	reqHeaders := make(http.Header)
176538	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
176539	for k, v := range c.header_ {
176540		reqHeaders[k] = v
176541	}
176542	reqHeaders.Set("User-Agent", c.s.userAgent())
176543	var body io.Reader = nil
176544	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
176545	if err != nil {
176546		return nil, err
176547	}
176548	reqHeaders.Set("Content-Type", "application/json")
176549	c.urlParams_.Set("alt", alt)
176550	c.urlParams_.Set("prettyPrint", "false")
176551	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps/{resource}/testIamPermissions")
176552	urls += "?" + c.urlParams_.Encode()
176553	req, err := http.NewRequest("POST", urls, body)
176554	if err != nil {
176555		return nil, err
176556	}
176557	req.Header = reqHeaders
176558	googleapi.Expand(req.URL, map[string]string{
176559		"project":  c.project,
176560		"resource": c.resource,
176561	})
176562	return gensupport.SendRequest(c.ctx_, c.s.client, req)
176563}
176564
176565// Do executes the "compute.urlMaps.testIamPermissions" call.
176566// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
176567// non-2xx status code is an error. Response headers are in either
176568// *TestPermissionsResponse.ServerResponse.Header or (if a response was
176569// returned at all) in error.(*googleapi.Error).Header. Use
176570// googleapi.IsNotModified to check whether the returned error was
176571// because http.StatusNotModified was returned.
176572func (c *UrlMapsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
176573	gensupport.SetOptions(c.urlParams_, opts...)
176574	res, err := c.doRequest("json")
176575	if res != nil && res.StatusCode == http.StatusNotModified {
176576		if res.Body != nil {
176577			res.Body.Close()
176578		}
176579		return nil, &googleapi.Error{
176580			Code:   res.StatusCode,
176581			Header: res.Header,
176582		}
176583	}
176584	if err != nil {
176585		return nil, err
176586	}
176587	defer googleapi.CloseBody(res)
176588	if err := googleapi.CheckResponse(res); err != nil {
176589		return nil, err
176590	}
176591	ret := &TestPermissionsResponse{
176592		ServerResponse: googleapi.ServerResponse{
176593			Header:         res.Header,
176594			HTTPStatusCode: res.StatusCode,
176595		},
176596	}
176597	target := &ret
176598	if err := gensupport.DecodeResponse(target, res); err != nil {
176599		return nil, err
176600	}
176601	return ret, nil
176602	// {
176603	//   "description": "Returns permissions that a caller has on the specified resource.",
176604	//   "httpMethod": "POST",
176605	//   "id": "compute.urlMaps.testIamPermissions",
176606	//   "parameterOrder": [
176607	//     "project",
176608	//     "resource"
176609	//   ],
176610	//   "parameters": {
176611	//     "project": {
176612	//       "description": "Project ID for this request.",
176613	//       "location": "path",
176614	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
176615	//       "required": true,
176616	//       "type": "string"
176617	//     },
176618	//     "resource": {
176619	//       "description": "Name or id of the resource for this request.",
176620	//       "location": "path",
176621	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
176622	//       "required": true,
176623	//       "type": "string"
176624	//     }
176625	//   },
176626	//   "path": "projects/{project}/global/urlMaps/{resource}/testIamPermissions",
176627	//   "request": {
176628	//     "$ref": "TestPermissionsRequest"
176629	//   },
176630	//   "response": {
176631	//     "$ref": "TestPermissionsResponse"
176632	//   },
176633	//   "scopes": [
176634	//     "https://www.googleapis.com/auth/cloud-platform",
176635	//     "https://www.googleapis.com/auth/compute",
176636	//     "https://www.googleapis.com/auth/compute.readonly"
176637	//   ]
176638	// }
176639
176640}
176641
176642// method id "compute.urlMaps.update":
176643
176644type UrlMapsUpdateCall struct {
176645	s          *Service
176646	project    string
176647	urlMap     string
176648	urlmap     *UrlMap
176649	urlParams_ gensupport.URLParams
176650	ctx_       context.Context
176651	header_    http.Header
176652}
176653
176654// Update: Updates the specified UrlMap resource with the data included
176655// in the request.
176656// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/update
176657func (r *UrlMapsService) Update(project string, urlMap string, urlmap *UrlMap) *UrlMapsUpdateCall {
176658	c := &UrlMapsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
176659	c.project = project
176660	c.urlMap = urlMap
176661	c.urlmap = urlmap
176662	return c
176663}
176664
176665// RequestId sets the optional parameter "requestId": An optional
176666// request ID to identify requests. Specify a unique request ID so that
176667// if you must retry your request, the server will know to ignore the
176668// request if it has already been completed.
176669//
176670// For example, consider a situation where you make an initial request
176671// and the request times out. If you make the request again with the
176672// same request ID, the server can check if original operation with the
176673// same request ID was received, and if so, will ignore the second
176674// request. This prevents clients from accidentally creating duplicate
176675// commitments.
176676//
176677// The request ID must be a valid UUID with the exception that zero UUID
176678// is not supported (00000000-0000-0000-0000-000000000000).
176679func (c *UrlMapsUpdateCall) RequestId(requestId string) *UrlMapsUpdateCall {
176680	c.urlParams_.Set("requestId", requestId)
176681	return c
176682}
176683
176684// Fields allows partial responses to be retrieved. See
176685// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
176686// for more information.
176687func (c *UrlMapsUpdateCall) Fields(s ...googleapi.Field) *UrlMapsUpdateCall {
176688	c.urlParams_.Set("fields", googleapi.CombineFields(s))
176689	return c
176690}
176691
176692// Context sets the context to be used in this call's Do method. Any
176693// pending HTTP request will be aborted if the provided context is
176694// canceled.
176695func (c *UrlMapsUpdateCall) Context(ctx context.Context) *UrlMapsUpdateCall {
176696	c.ctx_ = ctx
176697	return c
176698}
176699
176700// Header returns an http.Header that can be modified by the caller to
176701// add HTTP headers to the request.
176702func (c *UrlMapsUpdateCall) Header() http.Header {
176703	if c.header_ == nil {
176704		c.header_ = make(http.Header)
176705	}
176706	return c.header_
176707}
176708
176709func (c *UrlMapsUpdateCall) doRequest(alt string) (*http.Response, error) {
176710	reqHeaders := make(http.Header)
176711	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
176712	for k, v := range c.header_ {
176713		reqHeaders[k] = v
176714	}
176715	reqHeaders.Set("User-Agent", c.s.userAgent())
176716	var body io.Reader = nil
176717	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
176718	if err != nil {
176719		return nil, err
176720	}
176721	reqHeaders.Set("Content-Type", "application/json")
176722	c.urlParams_.Set("alt", alt)
176723	c.urlParams_.Set("prettyPrint", "false")
176724	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps/{urlMap}")
176725	urls += "?" + c.urlParams_.Encode()
176726	req, err := http.NewRequest("PUT", urls, body)
176727	if err != nil {
176728		return nil, err
176729	}
176730	req.Header = reqHeaders
176731	googleapi.Expand(req.URL, map[string]string{
176732		"project": c.project,
176733		"urlMap":  c.urlMap,
176734	})
176735	return gensupport.SendRequest(c.ctx_, c.s.client, req)
176736}
176737
176738// Do executes the "compute.urlMaps.update" call.
176739// Exactly one of *Operation or error will be non-nil. Any non-2xx
176740// status code is an error. Response headers are in either
176741// *Operation.ServerResponse.Header or (if a response was returned at
176742// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
176743// to check whether the returned error was because
176744// http.StatusNotModified was returned.
176745func (c *UrlMapsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
176746	gensupport.SetOptions(c.urlParams_, opts...)
176747	res, err := c.doRequest("json")
176748	if res != nil && res.StatusCode == http.StatusNotModified {
176749		if res.Body != nil {
176750			res.Body.Close()
176751		}
176752		return nil, &googleapi.Error{
176753			Code:   res.StatusCode,
176754			Header: res.Header,
176755		}
176756	}
176757	if err != nil {
176758		return nil, err
176759	}
176760	defer googleapi.CloseBody(res)
176761	if err := googleapi.CheckResponse(res); err != nil {
176762		return nil, err
176763	}
176764	ret := &Operation{
176765		ServerResponse: googleapi.ServerResponse{
176766			Header:         res.Header,
176767			HTTPStatusCode: res.StatusCode,
176768		},
176769	}
176770	target := &ret
176771	if err := gensupport.DecodeResponse(target, res); err != nil {
176772		return nil, err
176773	}
176774	return ret, nil
176775	// {
176776	//   "description": "Updates the specified UrlMap resource with the data included in the request.",
176777	//   "httpMethod": "PUT",
176778	//   "id": "compute.urlMaps.update",
176779	//   "parameterOrder": [
176780	//     "project",
176781	//     "urlMap"
176782	//   ],
176783	//   "parameters": {
176784	//     "project": {
176785	//       "description": "Project ID for this request.",
176786	//       "location": "path",
176787	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
176788	//       "required": true,
176789	//       "type": "string"
176790	//     },
176791	//     "requestId": {
176792	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
176793	//       "location": "query",
176794	//       "type": "string"
176795	//     },
176796	//     "urlMap": {
176797	//       "description": "Name of the UrlMap resource to update.",
176798	//       "location": "path",
176799	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
176800	//       "required": true,
176801	//       "type": "string"
176802	//     }
176803	//   },
176804	//   "path": "projects/{project}/global/urlMaps/{urlMap}",
176805	//   "request": {
176806	//     "$ref": "UrlMap"
176807	//   },
176808	//   "response": {
176809	//     "$ref": "Operation"
176810	//   },
176811	//   "scopes": [
176812	//     "https://www.googleapis.com/auth/cloud-platform",
176813	//     "https://www.googleapis.com/auth/compute"
176814	//   ]
176815	// }
176816
176817}
176818
176819// method id "compute.urlMaps.validate":
176820
176821type UrlMapsValidateCall struct {
176822	s                      *Service
176823	project                string
176824	urlMap                 string
176825	urlmapsvalidaterequest *UrlMapsValidateRequest
176826	urlParams_             gensupport.URLParams
176827	ctx_                   context.Context
176828	header_                http.Header
176829}
176830
176831// Validate: Runs static validation for the UrlMap. In particular, the
176832// tests of the provided UrlMap will be run. Calling this method does
176833// NOT create the UrlMap.
176834// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/validate
176835func (r *UrlMapsService) Validate(project string, urlMap string, urlmapsvalidaterequest *UrlMapsValidateRequest) *UrlMapsValidateCall {
176836	c := &UrlMapsValidateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
176837	c.project = project
176838	c.urlMap = urlMap
176839	c.urlmapsvalidaterequest = urlmapsvalidaterequest
176840	return c
176841}
176842
176843// Fields allows partial responses to be retrieved. See
176844// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
176845// for more information.
176846func (c *UrlMapsValidateCall) Fields(s ...googleapi.Field) *UrlMapsValidateCall {
176847	c.urlParams_.Set("fields", googleapi.CombineFields(s))
176848	return c
176849}
176850
176851// Context sets the context to be used in this call's Do method. Any
176852// pending HTTP request will be aborted if the provided context is
176853// canceled.
176854func (c *UrlMapsValidateCall) Context(ctx context.Context) *UrlMapsValidateCall {
176855	c.ctx_ = ctx
176856	return c
176857}
176858
176859// Header returns an http.Header that can be modified by the caller to
176860// add HTTP headers to the request.
176861func (c *UrlMapsValidateCall) Header() http.Header {
176862	if c.header_ == nil {
176863		c.header_ = make(http.Header)
176864	}
176865	return c.header_
176866}
176867
176868func (c *UrlMapsValidateCall) doRequest(alt string) (*http.Response, error) {
176869	reqHeaders := make(http.Header)
176870	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
176871	for k, v := range c.header_ {
176872		reqHeaders[k] = v
176873	}
176874	reqHeaders.Set("User-Agent", c.s.userAgent())
176875	var body io.Reader = nil
176876	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapsvalidaterequest)
176877	if err != nil {
176878		return nil, err
176879	}
176880	reqHeaders.Set("Content-Type", "application/json")
176881	c.urlParams_.Set("alt", alt)
176882	c.urlParams_.Set("prettyPrint", "false")
176883	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps/{urlMap}/validate")
176884	urls += "?" + c.urlParams_.Encode()
176885	req, err := http.NewRequest("POST", urls, body)
176886	if err != nil {
176887		return nil, err
176888	}
176889	req.Header = reqHeaders
176890	googleapi.Expand(req.URL, map[string]string{
176891		"project": c.project,
176892		"urlMap":  c.urlMap,
176893	})
176894	return gensupport.SendRequest(c.ctx_, c.s.client, req)
176895}
176896
176897// Do executes the "compute.urlMaps.validate" call.
176898// Exactly one of *UrlMapsValidateResponse or error will be non-nil. Any
176899// non-2xx status code is an error. Response headers are in either
176900// *UrlMapsValidateResponse.ServerResponse.Header or (if a response was
176901// returned at all) in error.(*googleapi.Error).Header. Use
176902// googleapi.IsNotModified to check whether the returned error was
176903// because http.StatusNotModified was returned.
176904func (c *UrlMapsValidateCall) Do(opts ...googleapi.CallOption) (*UrlMapsValidateResponse, error) {
176905	gensupport.SetOptions(c.urlParams_, opts...)
176906	res, err := c.doRequest("json")
176907	if res != nil && res.StatusCode == http.StatusNotModified {
176908		if res.Body != nil {
176909			res.Body.Close()
176910		}
176911		return nil, &googleapi.Error{
176912			Code:   res.StatusCode,
176913			Header: res.Header,
176914		}
176915	}
176916	if err != nil {
176917		return nil, err
176918	}
176919	defer googleapi.CloseBody(res)
176920	if err := googleapi.CheckResponse(res); err != nil {
176921		return nil, err
176922	}
176923	ret := &UrlMapsValidateResponse{
176924		ServerResponse: googleapi.ServerResponse{
176925			Header:         res.Header,
176926			HTTPStatusCode: res.StatusCode,
176927		},
176928	}
176929	target := &ret
176930	if err := gensupport.DecodeResponse(target, res); err != nil {
176931		return nil, err
176932	}
176933	return ret, nil
176934	// {
176935	//   "description": "Runs static validation for the UrlMap. In particular, the tests of the provided UrlMap will be run. Calling this method does NOT create the UrlMap.",
176936	//   "httpMethod": "POST",
176937	//   "id": "compute.urlMaps.validate",
176938	//   "parameterOrder": [
176939	//     "project",
176940	//     "urlMap"
176941	//   ],
176942	//   "parameters": {
176943	//     "project": {
176944	//       "description": "Project ID for this request.",
176945	//       "location": "path",
176946	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
176947	//       "required": true,
176948	//       "type": "string"
176949	//     },
176950	//     "urlMap": {
176951	//       "description": "Name of the UrlMap resource to be validated as.",
176952	//       "location": "path",
176953	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
176954	//       "required": true,
176955	//       "type": "string"
176956	//     }
176957	//   },
176958	//   "path": "projects/{project}/global/urlMaps/{urlMap}/validate",
176959	//   "request": {
176960	//     "$ref": "UrlMapsValidateRequest"
176961	//   },
176962	//   "response": {
176963	//     "$ref": "UrlMapsValidateResponse"
176964	//   },
176965	//   "scopes": [
176966	//     "https://www.googleapis.com/auth/cloud-platform",
176967	//     "https://www.googleapis.com/auth/compute"
176968	//   ]
176969	// }
176970
176971}
176972
176973// method id "compute.vpnGateways.aggregatedList":
176974
176975type VpnGatewaysAggregatedListCall struct {
176976	s            *Service
176977	project      string
176978	urlParams_   gensupport.URLParams
176979	ifNoneMatch_ string
176980	ctx_         context.Context
176981	header_      http.Header
176982}
176983
176984// AggregatedList: Retrieves an aggregated list of VPN gateways.
176985func (r *VpnGatewaysService) AggregatedList(project string) *VpnGatewaysAggregatedListCall {
176986	c := &VpnGatewaysAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
176987	c.project = project
176988	return c
176989}
176990
176991// Filter sets the optional parameter "filter": A filter expression that
176992// filters resources listed in the response. The expression must specify
176993// the field name, a comparison operator, and the value that you want to
176994// use for filtering. The value must be a string, a number, or a
176995// boolean. The comparison operator must be either `=`, `!=`, `>`, or
176996// `<`.
176997//
176998// For example, if you are filtering Compute Engine instances, you can
176999// exclude instances named `example-instance` by specifying `name !=
177000// example-instance`.
177001//
177002// You can also filter nested fields. For example, you could specify
177003// `scheduling.automaticRestart = false` to include instances only if
177004// they are not scheduled for automatic restarts. You can use filtering
177005// on nested fields to filter based on resource labels.
177006//
177007// To filter on multiple expressions, provide each separate expression
177008// within parentheses. For example: ``` (scheduling.automaticRestart =
177009// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
177010// is an `AND` expression. However, you can include `AND` and `OR`
177011// expressions explicitly. For example: ``` (cpuPlatform = "Intel
177012// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
177013// (scheduling.automaticRestart = true) ```
177014func (c *VpnGatewaysAggregatedListCall) Filter(filter string) *VpnGatewaysAggregatedListCall {
177015	c.urlParams_.Set("filter", filter)
177016	return c
177017}
177018
177019// IncludeAllScopes sets the optional parameter "includeAllScopes":
177020// Indicates whether every visible scope for each scope type (zone,
177021// region, global) should be included in the response. For new resource
177022// types added after this field, the flag has no effect as new resource
177023// types will always include every visible scope for each scope type in
177024// response. For resource types which predate this field, if this flag
177025// is omitted or false, only scopes of the scope types where the
177026// resource type is expected to be found will be included.
177027func (c *VpnGatewaysAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *VpnGatewaysAggregatedListCall {
177028	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
177029	return c
177030}
177031
177032// MaxResults sets the optional parameter "maxResults": The maximum
177033// number of results per page that should be returned. If the number of
177034// available results is larger than `maxResults`, Compute Engine returns
177035// a `nextPageToken` that can be used to get the next page of results in
177036// subsequent list requests. Acceptable values are `0` to `500`,
177037// inclusive. (Default: `500`)
177038func (c *VpnGatewaysAggregatedListCall) MaxResults(maxResults int64) *VpnGatewaysAggregatedListCall {
177039	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
177040	return c
177041}
177042
177043// OrderBy sets the optional parameter "orderBy": Sorts list results by
177044// a certain order. By default, results are returned in alphanumerical
177045// order based on the resource name.
177046//
177047// You can also sort results in descending order based on the creation
177048// timestamp using `orderBy="creationTimestamp desc". This sorts
177049// results based on the `creationTimestamp` field in reverse
177050// chronological order (newest result first). Use this to sort resources
177051// like operations so that the newest operation is returned
177052// first.
177053//
177054// Currently, only sorting by `name` or `creationTimestamp desc` is
177055// supported.
177056func (c *VpnGatewaysAggregatedListCall) OrderBy(orderBy string) *VpnGatewaysAggregatedListCall {
177057	c.urlParams_.Set("orderBy", orderBy)
177058	return c
177059}
177060
177061// PageToken sets the optional parameter "pageToken": Specifies a page
177062// token to use. Set `pageToken` to the `nextPageToken` returned by a
177063// previous list request to get the next page of results.
177064func (c *VpnGatewaysAggregatedListCall) PageToken(pageToken string) *VpnGatewaysAggregatedListCall {
177065	c.urlParams_.Set("pageToken", pageToken)
177066	return c
177067}
177068
177069// ReturnPartialSuccess sets the optional parameter
177070// "returnPartialSuccess": Opt-in for partial success behavior which
177071// provides partial results in case of failure. The default value is
177072// false.
177073func (c *VpnGatewaysAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *VpnGatewaysAggregatedListCall {
177074	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
177075	return c
177076}
177077
177078// Fields allows partial responses to be retrieved. See
177079// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
177080// for more information.
177081func (c *VpnGatewaysAggregatedListCall) Fields(s ...googleapi.Field) *VpnGatewaysAggregatedListCall {
177082	c.urlParams_.Set("fields", googleapi.CombineFields(s))
177083	return c
177084}
177085
177086// IfNoneMatch sets the optional parameter which makes the operation
177087// fail if the object's ETag matches the given value. This is useful for
177088// getting updates only after the object has changed since the last
177089// request. Use googleapi.IsNotModified to check whether the response
177090// error from Do is the result of In-None-Match.
177091func (c *VpnGatewaysAggregatedListCall) IfNoneMatch(entityTag string) *VpnGatewaysAggregatedListCall {
177092	c.ifNoneMatch_ = entityTag
177093	return c
177094}
177095
177096// Context sets the context to be used in this call's Do method. Any
177097// pending HTTP request will be aborted if the provided context is
177098// canceled.
177099func (c *VpnGatewaysAggregatedListCall) Context(ctx context.Context) *VpnGatewaysAggregatedListCall {
177100	c.ctx_ = ctx
177101	return c
177102}
177103
177104// Header returns an http.Header that can be modified by the caller to
177105// add HTTP headers to the request.
177106func (c *VpnGatewaysAggregatedListCall) Header() http.Header {
177107	if c.header_ == nil {
177108		c.header_ = make(http.Header)
177109	}
177110	return c.header_
177111}
177112
177113func (c *VpnGatewaysAggregatedListCall) doRequest(alt string) (*http.Response, error) {
177114	reqHeaders := make(http.Header)
177115	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
177116	for k, v := range c.header_ {
177117		reqHeaders[k] = v
177118	}
177119	reqHeaders.Set("User-Agent", c.s.userAgent())
177120	if c.ifNoneMatch_ != "" {
177121		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
177122	}
177123	var body io.Reader = nil
177124	c.urlParams_.Set("alt", alt)
177125	c.urlParams_.Set("prettyPrint", "false")
177126	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/vpnGateways")
177127	urls += "?" + c.urlParams_.Encode()
177128	req, err := http.NewRequest("GET", urls, body)
177129	if err != nil {
177130		return nil, err
177131	}
177132	req.Header = reqHeaders
177133	googleapi.Expand(req.URL, map[string]string{
177134		"project": c.project,
177135	})
177136	return gensupport.SendRequest(c.ctx_, c.s.client, req)
177137}
177138
177139// Do executes the "compute.vpnGateways.aggregatedList" call.
177140// Exactly one of *VpnGatewayAggregatedList or error will be non-nil.
177141// Any non-2xx status code is an error. Response headers are in either
177142// *VpnGatewayAggregatedList.ServerResponse.Header or (if a response was
177143// returned at all) in error.(*googleapi.Error).Header. Use
177144// googleapi.IsNotModified to check whether the returned error was
177145// because http.StatusNotModified was returned.
177146func (c *VpnGatewaysAggregatedListCall) Do(opts ...googleapi.CallOption) (*VpnGatewayAggregatedList, error) {
177147	gensupport.SetOptions(c.urlParams_, opts...)
177148	res, err := c.doRequest("json")
177149	if res != nil && res.StatusCode == http.StatusNotModified {
177150		if res.Body != nil {
177151			res.Body.Close()
177152		}
177153		return nil, &googleapi.Error{
177154			Code:   res.StatusCode,
177155			Header: res.Header,
177156		}
177157	}
177158	if err != nil {
177159		return nil, err
177160	}
177161	defer googleapi.CloseBody(res)
177162	if err := googleapi.CheckResponse(res); err != nil {
177163		return nil, err
177164	}
177165	ret := &VpnGatewayAggregatedList{
177166		ServerResponse: googleapi.ServerResponse{
177167			Header:         res.Header,
177168			HTTPStatusCode: res.StatusCode,
177169		},
177170	}
177171	target := &ret
177172	if err := gensupport.DecodeResponse(target, res); err != nil {
177173		return nil, err
177174	}
177175	return ret, nil
177176	// {
177177	//   "description": "Retrieves an aggregated list of VPN gateways.",
177178	//   "httpMethod": "GET",
177179	//   "id": "compute.vpnGateways.aggregatedList",
177180	//   "parameterOrder": [
177181	//     "project"
177182	//   ],
177183	//   "parameters": {
177184	//     "filter": {
177185	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
177186	//       "location": "query",
177187	//       "type": "string"
177188	//     },
177189	//     "includeAllScopes": {
177190	//       "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.",
177191	//       "location": "query",
177192	//       "type": "boolean"
177193	//     },
177194	//     "maxResults": {
177195	//       "default": "500",
177196	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
177197	//       "format": "uint32",
177198	//       "location": "query",
177199	//       "minimum": "0",
177200	//       "type": "integer"
177201	//     },
177202	//     "orderBy": {
177203	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
177204	//       "location": "query",
177205	//       "type": "string"
177206	//     },
177207	//     "pageToken": {
177208	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
177209	//       "location": "query",
177210	//       "type": "string"
177211	//     },
177212	//     "project": {
177213	//       "description": "Project ID for this request.",
177214	//       "location": "path",
177215	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
177216	//       "required": true,
177217	//       "type": "string"
177218	//     },
177219	//     "returnPartialSuccess": {
177220	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
177221	//       "location": "query",
177222	//       "type": "boolean"
177223	//     }
177224	//   },
177225	//   "path": "projects/{project}/aggregated/vpnGateways",
177226	//   "response": {
177227	//     "$ref": "VpnGatewayAggregatedList"
177228	//   },
177229	//   "scopes": [
177230	//     "https://www.googleapis.com/auth/cloud-platform",
177231	//     "https://www.googleapis.com/auth/compute",
177232	//     "https://www.googleapis.com/auth/compute.readonly"
177233	//   ]
177234	// }
177235
177236}
177237
177238// Pages invokes f for each page of results.
177239// A non-nil error returned from f will halt the iteration.
177240// The provided context supersedes any context provided to the Context method.
177241func (c *VpnGatewaysAggregatedListCall) Pages(ctx context.Context, f func(*VpnGatewayAggregatedList) error) error {
177242	c.ctx_ = ctx
177243	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
177244	for {
177245		x, err := c.Do()
177246		if err != nil {
177247			return err
177248		}
177249		if err := f(x); err != nil {
177250			return err
177251		}
177252		if x.NextPageToken == "" {
177253			return nil
177254		}
177255		c.PageToken(x.NextPageToken)
177256	}
177257}
177258
177259// method id "compute.vpnGateways.delete":
177260
177261type VpnGatewaysDeleteCall struct {
177262	s          *Service
177263	project    string
177264	region     string
177265	vpnGateway string
177266	urlParams_ gensupport.URLParams
177267	ctx_       context.Context
177268	header_    http.Header
177269}
177270
177271// Delete: Deletes the specified VPN gateway.
177272func (r *VpnGatewaysService) Delete(project string, region string, vpnGateway string) *VpnGatewaysDeleteCall {
177273	c := &VpnGatewaysDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
177274	c.project = project
177275	c.region = region
177276	c.vpnGateway = vpnGateway
177277	return c
177278}
177279
177280// RequestId sets the optional parameter "requestId": An optional
177281// request ID to identify requests. Specify a unique request ID so that
177282// if you must retry your request, the server will know to ignore the
177283// request if it has already been completed.
177284//
177285// For example, consider a situation where you make an initial request
177286// and the request times out. If you make the request again with the
177287// same request ID, the server can check if original operation with the
177288// same request ID was received, and if so, will ignore the second
177289// request. This prevents clients from accidentally creating duplicate
177290// commitments.
177291//
177292// The request ID must be a valid UUID with the exception that zero UUID
177293// is not supported (00000000-0000-0000-0000-000000000000).
177294func (c *VpnGatewaysDeleteCall) RequestId(requestId string) *VpnGatewaysDeleteCall {
177295	c.urlParams_.Set("requestId", requestId)
177296	return c
177297}
177298
177299// Fields allows partial responses to be retrieved. See
177300// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
177301// for more information.
177302func (c *VpnGatewaysDeleteCall) Fields(s ...googleapi.Field) *VpnGatewaysDeleteCall {
177303	c.urlParams_.Set("fields", googleapi.CombineFields(s))
177304	return c
177305}
177306
177307// Context sets the context to be used in this call's Do method. Any
177308// pending HTTP request will be aborted if the provided context is
177309// canceled.
177310func (c *VpnGatewaysDeleteCall) Context(ctx context.Context) *VpnGatewaysDeleteCall {
177311	c.ctx_ = ctx
177312	return c
177313}
177314
177315// Header returns an http.Header that can be modified by the caller to
177316// add HTTP headers to the request.
177317func (c *VpnGatewaysDeleteCall) Header() http.Header {
177318	if c.header_ == nil {
177319		c.header_ = make(http.Header)
177320	}
177321	return c.header_
177322}
177323
177324func (c *VpnGatewaysDeleteCall) doRequest(alt string) (*http.Response, error) {
177325	reqHeaders := make(http.Header)
177326	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
177327	for k, v := range c.header_ {
177328		reqHeaders[k] = v
177329	}
177330	reqHeaders.Set("User-Agent", c.s.userAgent())
177331	var body io.Reader = nil
177332	c.urlParams_.Set("alt", alt)
177333	c.urlParams_.Set("prettyPrint", "false")
177334	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}")
177335	urls += "?" + c.urlParams_.Encode()
177336	req, err := http.NewRequest("DELETE", urls, body)
177337	if err != nil {
177338		return nil, err
177339	}
177340	req.Header = reqHeaders
177341	googleapi.Expand(req.URL, map[string]string{
177342		"project":    c.project,
177343		"region":     c.region,
177344		"vpnGateway": c.vpnGateway,
177345	})
177346	return gensupport.SendRequest(c.ctx_, c.s.client, req)
177347}
177348
177349// Do executes the "compute.vpnGateways.delete" call.
177350// Exactly one of *Operation or error will be non-nil. Any non-2xx
177351// status code is an error. Response headers are in either
177352// *Operation.ServerResponse.Header or (if a response was returned at
177353// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
177354// to check whether the returned error was because
177355// http.StatusNotModified was returned.
177356func (c *VpnGatewaysDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
177357	gensupport.SetOptions(c.urlParams_, opts...)
177358	res, err := c.doRequest("json")
177359	if res != nil && res.StatusCode == http.StatusNotModified {
177360		if res.Body != nil {
177361			res.Body.Close()
177362		}
177363		return nil, &googleapi.Error{
177364			Code:   res.StatusCode,
177365			Header: res.Header,
177366		}
177367	}
177368	if err != nil {
177369		return nil, err
177370	}
177371	defer googleapi.CloseBody(res)
177372	if err := googleapi.CheckResponse(res); err != nil {
177373		return nil, err
177374	}
177375	ret := &Operation{
177376		ServerResponse: googleapi.ServerResponse{
177377			Header:         res.Header,
177378			HTTPStatusCode: res.StatusCode,
177379		},
177380	}
177381	target := &ret
177382	if err := gensupport.DecodeResponse(target, res); err != nil {
177383		return nil, err
177384	}
177385	return ret, nil
177386	// {
177387	//   "description": "Deletes the specified VPN gateway.",
177388	//   "httpMethod": "DELETE",
177389	//   "id": "compute.vpnGateways.delete",
177390	//   "parameterOrder": [
177391	//     "project",
177392	//     "region",
177393	//     "vpnGateway"
177394	//   ],
177395	//   "parameters": {
177396	//     "project": {
177397	//       "description": "Project ID for this request.",
177398	//       "location": "path",
177399	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
177400	//       "required": true,
177401	//       "type": "string"
177402	//     },
177403	//     "region": {
177404	//       "description": "Name of the region for this request.",
177405	//       "location": "path",
177406	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
177407	//       "required": true,
177408	//       "type": "string"
177409	//     },
177410	//     "requestId": {
177411	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
177412	//       "location": "query",
177413	//       "type": "string"
177414	//     },
177415	//     "vpnGateway": {
177416	//       "description": "Name of the VPN gateway to delete.",
177417	//       "location": "path",
177418	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
177419	//       "required": true,
177420	//       "type": "string"
177421	//     }
177422	//   },
177423	//   "path": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}",
177424	//   "response": {
177425	//     "$ref": "Operation"
177426	//   },
177427	//   "scopes": [
177428	//     "https://www.googleapis.com/auth/cloud-platform",
177429	//     "https://www.googleapis.com/auth/compute"
177430	//   ]
177431	// }
177432
177433}
177434
177435// method id "compute.vpnGateways.get":
177436
177437type VpnGatewaysGetCall struct {
177438	s            *Service
177439	project      string
177440	region       string
177441	vpnGateway   string
177442	urlParams_   gensupport.URLParams
177443	ifNoneMatch_ string
177444	ctx_         context.Context
177445	header_      http.Header
177446}
177447
177448// Get: Returns the specified VPN gateway. Gets a list of available VPN
177449// gateways by making a list() request.
177450func (r *VpnGatewaysService) Get(project string, region string, vpnGateway string) *VpnGatewaysGetCall {
177451	c := &VpnGatewaysGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
177452	c.project = project
177453	c.region = region
177454	c.vpnGateway = vpnGateway
177455	return c
177456}
177457
177458// Fields allows partial responses to be retrieved. See
177459// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
177460// for more information.
177461func (c *VpnGatewaysGetCall) Fields(s ...googleapi.Field) *VpnGatewaysGetCall {
177462	c.urlParams_.Set("fields", googleapi.CombineFields(s))
177463	return c
177464}
177465
177466// IfNoneMatch sets the optional parameter which makes the operation
177467// fail if the object's ETag matches the given value. This is useful for
177468// getting updates only after the object has changed since the last
177469// request. Use googleapi.IsNotModified to check whether the response
177470// error from Do is the result of In-None-Match.
177471func (c *VpnGatewaysGetCall) IfNoneMatch(entityTag string) *VpnGatewaysGetCall {
177472	c.ifNoneMatch_ = entityTag
177473	return c
177474}
177475
177476// Context sets the context to be used in this call's Do method. Any
177477// pending HTTP request will be aborted if the provided context is
177478// canceled.
177479func (c *VpnGatewaysGetCall) Context(ctx context.Context) *VpnGatewaysGetCall {
177480	c.ctx_ = ctx
177481	return c
177482}
177483
177484// Header returns an http.Header that can be modified by the caller to
177485// add HTTP headers to the request.
177486func (c *VpnGatewaysGetCall) Header() http.Header {
177487	if c.header_ == nil {
177488		c.header_ = make(http.Header)
177489	}
177490	return c.header_
177491}
177492
177493func (c *VpnGatewaysGetCall) doRequest(alt string) (*http.Response, error) {
177494	reqHeaders := make(http.Header)
177495	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
177496	for k, v := range c.header_ {
177497		reqHeaders[k] = v
177498	}
177499	reqHeaders.Set("User-Agent", c.s.userAgent())
177500	if c.ifNoneMatch_ != "" {
177501		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
177502	}
177503	var body io.Reader = nil
177504	c.urlParams_.Set("alt", alt)
177505	c.urlParams_.Set("prettyPrint", "false")
177506	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}")
177507	urls += "?" + c.urlParams_.Encode()
177508	req, err := http.NewRequest("GET", urls, body)
177509	if err != nil {
177510		return nil, err
177511	}
177512	req.Header = reqHeaders
177513	googleapi.Expand(req.URL, map[string]string{
177514		"project":    c.project,
177515		"region":     c.region,
177516		"vpnGateway": c.vpnGateway,
177517	})
177518	return gensupport.SendRequest(c.ctx_, c.s.client, req)
177519}
177520
177521// Do executes the "compute.vpnGateways.get" call.
177522// Exactly one of *VpnGateway or error will be non-nil. Any non-2xx
177523// status code is an error. Response headers are in either
177524// *VpnGateway.ServerResponse.Header or (if a response was returned at
177525// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
177526// to check whether the returned error was because
177527// http.StatusNotModified was returned.
177528func (c *VpnGatewaysGetCall) Do(opts ...googleapi.CallOption) (*VpnGateway, error) {
177529	gensupport.SetOptions(c.urlParams_, opts...)
177530	res, err := c.doRequest("json")
177531	if res != nil && res.StatusCode == http.StatusNotModified {
177532		if res.Body != nil {
177533			res.Body.Close()
177534		}
177535		return nil, &googleapi.Error{
177536			Code:   res.StatusCode,
177537			Header: res.Header,
177538		}
177539	}
177540	if err != nil {
177541		return nil, err
177542	}
177543	defer googleapi.CloseBody(res)
177544	if err := googleapi.CheckResponse(res); err != nil {
177545		return nil, err
177546	}
177547	ret := &VpnGateway{
177548		ServerResponse: googleapi.ServerResponse{
177549			Header:         res.Header,
177550			HTTPStatusCode: res.StatusCode,
177551		},
177552	}
177553	target := &ret
177554	if err := gensupport.DecodeResponse(target, res); err != nil {
177555		return nil, err
177556	}
177557	return ret, nil
177558	// {
177559	//   "description": "Returns the specified VPN gateway. Gets a list of available VPN gateways by making a list() request.",
177560	//   "httpMethod": "GET",
177561	//   "id": "compute.vpnGateways.get",
177562	//   "parameterOrder": [
177563	//     "project",
177564	//     "region",
177565	//     "vpnGateway"
177566	//   ],
177567	//   "parameters": {
177568	//     "project": {
177569	//       "description": "Project ID for this request.",
177570	//       "location": "path",
177571	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
177572	//       "required": true,
177573	//       "type": "string"
177574	//     },
177575	//     "region": {
177576	//       "description": "Name of the region for this request.",
177577	//       "location": "path",
177578	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
177579	//       "required": true,
177580	//       "type": "string"
177581	//     },
177582	//     "vpnGateway": {
177583	//       "description": "Name of the VPN gateway to return.",
177584	//       "location": "path",
177585	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
177586	//       "required": true,
177587	//       "type": "string"
177588	//     }
177589	//   },
177590	//   "path": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}",
177591	//   "response": {
177592	//     "$ref": "VpnGateway"
177593	//   },
177594	//   "scopes": [
177595	//     "https://www.googleapis.com/auth/cloud-platform",
177596	//     "https://www.googleapis.com/auth/compute",
177597	//     "https://www.googleapis.com/auth/compute.readonly"
177598	//   ]
177599	// }
177600
177601}
177602
177603// method id "compute.vpnGateways.getStatus":
177604
177605type VpnGatewaysGetStatusCall struct {
177606	s            *Service
177607	project      string
177608	region       string
177609	vpnGateway   string
177610	urlParams_   gensupport.URLParams
177611	ifNoneMatch_ string
177612	ctx_         context.Context
177613	header_      http.Header
177614}
177615
177616// GetStatus: Returns the status for the specified VPN gateway.
177617func (r *VpnGatewaysService) GetStatus(project string, region string, vpnGateway string) *VpnGatewaysGetStatusCall {
177618	c := &VpnGatewaysGetStatusCall{s: r.s, urlParams_: make(gensupport.URLParams)}
177619	c.project = project
177620	c.region = region
177621	c.vpnGateway = vpnGateway
177622	return c
177623}
177624
177625// Fields allows partial responses to be retrieved. See
177626// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
177627// for more information.
177628func (c *VpnGatewaysGetStatusCall) Fields(s ...googleapi.Field) *VpnGatewaysGetStatusCall {
177629	c.urlParams_.Set("fields", googleapi.CombineFields(s))
177630	return c
177631}
177632
177633// IfNoneMatch sets the optional parameter which makes the operation
177634// fail if the object's ETag matches the given value. This is useful for
177635// getting updates only after the object has changed since the last
177636// request. Use googleapi.IsNotModified to check whether the response
177637// error from Do is the result of In-None-Match.
177638func (c *VpnGatewaysGetStatusCall) IfNoneMatch(entityTag string) *VpnGatewaysGetStatusCall {
177639	c.ifNoneMatch_ = entityTag
177640	return c
177641}
177642
177643// Context sets the context to be used in this call's Do method. Any
177644// pending HTTP request will be aborted if the provided context is
177645// canceled.
177646func (c *VpnGatewaysGetStatusCall) Context(ctx context.Context) *VpnGatewaysGetStatusCall {
177647	c.ctx_ = ctx
177648	return c
177649}
177650
177651// Header returns an http.Header that can be modified by the caller to
177652// add HTTP headers to the request.
177653func (c *VpnGatewaysGetStatusCall) Header() http.Header {
177654	if c.header_ == nil {
177655		c.header_ = make(http.Header)
177656	}
177657	return c.header_
177658}
177659
177660func (c *VpnGatewaysGetStatusCall) doRequest(alt string) (*http.Response, error) {
177661	reqHeaders := make(http.Header)
177662	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
177663	for k, v := range c.header_ {
177664		reqHeaders[k] = v
177665	}
177666	reqHeaders.Set("User-Agent", c.s.userAgent())
177667	if c.ifNoneMatch_ != "" {
177668		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
177669	}
177670	var body io.Reader = nil
177671	c.urlParams_.Set("alt", alt)
177672	c.urlParams_.Set("prettyPrint", "false")
177673	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}/getStatus")
177674	urls += "?" + c.urlParams_.Encode()
177675	req, err := http.NewRequest("GET", urls, body)
177676	if err != nil {
177677		return nil, err
177678	}
177679	req.Header = reqHeaders
177680	googleapi.Expand(req.URL, map[string]string{
177681		"project":    c.project,
177682		"region":     c.region,
177683		"vpnGateway": c.vpnGateway,
177684	})
177685	return gensupport.SendRequest(c.ctx_, c.s.client, req)
177686}
177687
177688// Do executes the "compute.vpnGateways.getStatus" call.
177689// Exactly one of *VpnGatewaysGetStatusResponse or error will be
177690// non-nil. Any non-2xx status code is an error. Response headers are in
177691// either *VpnGatewaysGetStatusResponse.ServerResponse.Header or (if a
177692// response was returned at all) in error.(*googleapi.Error).Header. Use
177693// googleapi.IsNotModified to check whether the returned error was
177694// because http.StatusNotModified was returned.
177695func (c *VpnGatewaysGetStatusCall) Do(opts ...googleapi.CallOption) (*VpnGatewaysGetStatusResponse, error) {
177696	gensupport.SetOptions(c.urlParams_, opts...)
177697	res, err := c.doRequest("json")
177698	if res != nil && res.StatusCode == http.StatusNotModified {
177699		if res.Body != nil {
177700			res.Body.Close()
177701		}
177702		return nil, &googleapi.Error{
177703			Code:   res.StatusCode,
177704			Header: res.Header,
177705		}
177706	}
177707	if err != nil {
177708		return nil, err
177709	}
177710	defer googleapi.CloseBody(res)
177711	if err := googleapi.CheckResponse(res); err != nil {
177712		return nil, err
177713	}
177714	ret := &VpnGatewaysGetStatusResponse{
177715		ServerResponse: googleapi.ServerResponse{
177716			Header:         res.Header,
177717			HTTPStatusCode: res.StatusCode,
177718		},
177719	}
177720	target := &ret
177721	if err := gensupport.DecodeResponse(target, res); err != nil {
177722		return nil, err
177723	}
177724	return ret, nil
177725	// {
177726	//   "description": "Returns the status for the specified VPN gateway.",
177727	//   "httpMethod": "GET",
177728	//   "id": "compute.vpnGateways.getStatus",
177729	//   "parameterOrder": [
177730	//     "project",
177731	//     "region",
177732	//     "vpnGateway"
177733	//   ],
177734	//   "parameters": {
177735	//     "project": {
177736	//       "description": "Project ID for this request.",
177737	//       "location": "path",
177738	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
177739	//       "required": true,
177740	//       "type": "string"
177741	//     },
177742	//     "region": {
177743	//       "description": "Name of the region for this request.",
177744	//       "location": "path",
177745	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
177746	//       "required": true,
177747	//       "type": "string"
177748	//     },
177749	//     "vpnGateway": {
177750	//       "description": "Name of the VPN gateway to return.",
177751	//       "location": "path",
177752	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
177753	//       "required": true,
177754	//       "type": "string"
177755	//     }
177756	//   },
177757	//   "path": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}/getStatus",
177758	//   "response": {
177759	//     "$ref": "VpnGatewaysGetStatusResponse"
177760	//   },
177761	//   "scopes": [
177762	//     "https://www.googleapis.com/auth/cloud-platform",
177763	//     "https://www.googleapis.com/auth/compute",
177764	//     "https://www.googleapis.com/auth/compute.readonly"
177765	//   ]
177766	// }
177767
177768}
177769
177770// method id "compute.vpnGateways.insert":
177771
177772type VpnGatewaysInsertCall struct {
177773	s          *Service
177774	project    string
177775	region     string
177776	vpngateway *VpnGateway
177777	urlParams_ gensupport.URLParams
177778	ctx_       context.Context
177779	header_    http.Header
177780}
177781
177782// Insert: Creates a VPN gateway in the specified project and region
177783// using the data included in the request.
177784func (r *VpnGatewaysService) Insert(project string, region string, vpngateway *VpnGateway) *VpnGatewaysInsertCall {
177785	c := &VpnGatewaysInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
177786	c.project = project
177787	c.region = region
177788	c.vpngateway = vpngateway
177789	return c
177790}
177791
177792// RequestId sets the optional parameter "requestId": An optional
177793// request ID to identify requests. Specify a unique request ID so that
177794// if you must retry your request, the server will know to ignore the
177795// request if it has already been completed.
177796//
177797// For example, consider a situation where you make an initial request
177798// and the request times out. If you make the request again with the
177799// same request ID, the server can check if original operation with the
177800// same request ID was received, and if so, will ignore the second
177801// request. This prevents clients from accidentally creating duplicate
177802// commitments.
177803//
177804// The request ID must be a valid UUID with the exception that zero UUID
177805// is not supported (00000000-0000-0000-0000-000000000000).
177806func (c *VpnGatewaysInsertCall) RequestId(requestId string) *VpnGatewaysInsertCall {
177807	c.urlParams_.Set("requestId", requestId)
177808	return c
177809}
177810
177811// Fields allows partial responses to be retrieved. See
177812// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
177813// for more information.
177814func (c *VpnGatewaysInsertCall) Fields(s ...googleapi.Field) *VpnGatewaysInsertCall {
177815	c.urlParams_.Set("fields", googleapi.CombineFields(s))
177816	return c
177817}
177818
177819// Context sets the context to be used in this call's Do method. Any
177820// pending HTTP request will be aborted if the provided context is
177821// canceled.
177822func (c *VpnGatewaysInsertCall) Context(ctx context.Context) *VpnGatewaysInsertCall {
177823	c.ctx_ = ctx
177824	return c
177825}
177826
177827// Header returns an http.Header that can be modified by the caller to
177828// add HTTP headers to the request.
177829func (c *VpnGatewaysInsertCall) Header() http.Header {
177830	if c.header_ == nil {
177831		c.header_ = make(http.Header)
177832	}
177833	return c.header_
177834}
177835
177836func (c *VpnGatewaysInsertCall) doRequest(alt string) (*http.Response, error) {
177837	reqHeaders := make(http.Header)
177838	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
177839	for k, v := range c.header_ {
177840		reqHeaders[k] = v
177841	}
177842	reqHeaders.Set("User-Agent", c.s.userAgent())
177843	var body io.Reader = nil
177844	body, err := googleapi.WithoutDataWrapper.JSONReader(c.vpngateway)
177845	if err != nil {
177846		return nil, err
177847	}
177848	reqHeaders.Set("Content-Type", "application/json")
177849	c.urlParams_.Set("alt", alt)
177850	c.urlParams_.Set("prettyPrint", "false")
177851	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnGateways")
177852	urls += "?" + c.urlParams_.Encode()
177853	req, err := http.NewRequest("POST", urls, body)
177854	if err != nil {
177855		return nil, err
177856	}
177857	req.Header = reqHeaders
177858	googleapi.Expand(req.URL, map[string]string{
177859		"project": c.project,
177860		"region":  c.region,
177861	})
177862	return gensupport.SendRequest(c.ctx_, c.s.client, req)
177863}
177864
177865// Do executes the "compute.vpnGateways.insert" call.
177866// Exactly one of *Operation or error will be non-nil. Any non-2xx
177867// status code is an error. Response headers are in either
177868// *Operation.ServerResponse.Header or (if a response was returned at
177869// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
177870// to check whether the returned error was because
177871// http.StatusNotModified was returned.
177872func (c *VpnGatewaysInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
177873	gensupport.SetOptions(c.urlParams_, opts...)
177874	res, err := c.doRequest("json")
177875	if res != nil && res.StatusCode == http.StatusNotModified {
177876		if res.Body != nil {
177877			res.Body.Close()
177878		}
177879		return nil, &googleapi.Error{
177880			Code:   res.StatusCode,
177881			Header: res.Header,
177882		}
177883	}
177884	if err != nil {
177885		return nil, err
177886	}
177887	defer googleapi.CloseBody(res)
177888	if err := googleapi.CheckResponse(res); err != nil {
177889		return nil, err
177890	}
177891	ret := &Operation{
177892		ServerResponse: googleapi.ServerResponse{
177893			Header:         res.Header,
177894			HTTPStatusCode: res.StatusCode,
177895		},
177896	}
177897	target := &ret
177898	if err := gensupport.DecodeResponse(target, res); err != nil {
177899		return nil, err
177900	}
177901	return ret, nil
177902	// {
177903	//   "description": "Creates a VPN gateway in the specified project and region using the data included in the request.",
177904	//   "httpMethod": "POST",
177905	//   "id": "compute.vpnGateways.insert",
177906	//   "parameterOrder": [
177907	//     "project",
177908	//     "region"
177909	//   ],
177910	//   "parameters": {
177911	//     "project": {
177912	//       "description": "Project ID for this request.",
177913	//       "location": "path",
177914	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
177915	//       "required": true,
177916	//       "type": "string"
177917	//     },
177918	//     "region": {
177919	//       "description": "Name of the region for this request.",
177920	//       "location": "path",
177921	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
177922	//       "required": true,
177923	//       "type": "string"
177924	//     },
177925	//     "requestId": {
177926	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
177927	//       "location": "query",
177928	//       "type": "string"
177929	//     }
177930	//   },
177931	//   "path": "projects/{project}/regions/{region}/vpnGateways",
177932	//   "request": {
177933	//     "$ref": "VpnGateway"
177934	//   },
177935	//   "response": {
177936	//     "$ref": "Operation"
177937	//   },
177938	//   "scopes": [
177939	//     "https://www.googleapis.com/auth/cloud-platform",
177940	//     "https://www.googleapis.com/auth/compute"
177941	//   ]
177942	// }
177943
177944}
177945
177946// method id "compute.vpnGateways.list":
177947
177948type VpnGatewaysListCall struct {
177949	s            *Service
177950	project      string
177951	region       string
177952	urlParams_   gensupport.URLParams
177953	ifNoneMatch_ string
177954	ctx_         context.Context
177955	header_      http.Header
177956}
177957
177958// List: Retrieves a list of VPN gateways available to the specified
177959// project and region.
177960func (r *VpnGatewaysService) List(project string, region string) *VpnGatewaysListCall {
177961	c := &VpnGatewaysListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
177962	c.project = project
177963	c.region = region
177964	return c
177965}
177966
177967// Filter sets the optional parameter "filter": A filter expression that
177968// filters resources listed in the response. The expression must specify
177969// the field name, a comparison operator, and the value that you want to
177970// use for filtering. The value must be a string, a number, or a
177971// boolean. The comparison operator must be either `=`, `!=`, `>`, or
177972// `<`.
177973//
177974// For example, if you are filtering Compute Engine instances, you can
177975// exclude instances named `example-instance` by specifying `name !=
177976// example-instance`.
177977//
177978// You can also filter nested fields. For example, you could specify
177979// `scheduling.automaticRestart = false` to include instances only if
177980// they are not scheduled for automatic restarts. You can use filtering
177981// on nested fields to filter based on resource labels.
177982//
177983// To filter on multiple expressions, provide each separate expression
177984// within parentheses. For example: ``` (scheduling.automaticRestart =
177985// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
177986// is an `AND` expression. However, you can include `AND` and `OR`
177987// expressions explicitly. For example: ``` (cpuPlatform = "Intel
177988// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
177989// (scheduling.automaticRestart = true) ```
177990func (c *VpnGatewaysListCall) Filter(filter string) *VpnGatewaysListCall {
177991	c.urlParams_.Set("filter", filter)
177992	return c
177993}
177994
177995// MaxResults sets the optional parameter "maxResults": The maximum
177996// number of results per page that should be returned. If the number of
177997// available results is larger than `maxResults`, Compute Engine returns
177998// a `nextPageToken` that can be used to get the next page of results in
177999// subsequent list requests. Acceptable values are `0` to `500`,
178000// inclusive. (Default: `500`)
178001func (c *VpnGatewaysListCall) MaxResults(maxResults int64) *VpnGatewaysListCall {
178002	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
178003	return c
178004}
178005
178006// OrderBy sets the optional parameter "orderBy": Sorts list results by
178007// a certain order. By default, results are returned in alphanumerical
178008// order based on the resource name.
178009//
178010// You can also sort results in descending order based on the creation
178011// timestamp using `orderBy="creationTimestamp desc". This sorts
178012// results based on the `creationTimestamp` field in reverse
178013// chronological order (newest result first). Use this to sort resources
178014// like operations so that the newest operation is returned
178015// first.
178016//
178017// Currently, only sorting by `name` or `creationTimestamp desc` is
178018// supported.
178019func (c *VpnGatewaysListCall) OrderBy(orderBy string) *VpnGatewaysListCall {
178020	c.urlParams_.Set("orderBy", orderBy)
178021	return c
178022}
178023
178024// PageToken sets the optional parameter "pageToken": Specifies a page
178025// token to use. Set `pageToken` to the `nextPageToken` returned by a
178026// previous list request to get the next page of results.
178027func (c *VpnGatewaysListCall) PageToken(pageToken string) *VpnGatewaysListCall {
178028	c.urlParams_.Set("pageToken", pageToken)
178029	return c
178030}
178031
178032// ReturnPartialSuccess sets the optional parameter
178033// "returnPartialSuccess": Opt-in for partial success behavior which
178034// provides partial results in case of failure. The default value is
178035// false.
178036func (c *VpnGatewaysListCall) ReturnPartialSuccess(returnPartialSuccess bool) *VpnGatewaysListCall {
178037	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
178038	return c
178039}
178040
178041// Fields allows partial responses to be retrieved. See
178042// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
178043// for more information.
178044func (c *VpnGatewaysListCall) Fields(s ...googleapi.Field) *VpnGatewaysListCall {
178045	c.urlParams_.Set("fields", googleapi.CombineFields(s))
178046	return c
178047}
178048
178049// IfNoneMatch sets the optional parameter which makes the operation
178050// fail if the object's ETag matches the given value. This is useful for
178051// getting updates only after the object has changed since the last
178052// request. Use googleapi.IsNotModified to check whether the response
178053// error from Do is the result of In-None-Match.
178054func (c *VpnGatewaysListCall) IfNoneMatch(entityTag string) *VpnGatewaysListCall {
178055	c.ifNoneMatch_ = entityTag
178056	return c
178057}
178058
178059// Context sets the context to be used in this call's Do method. Any
178060// pending HTTP request will be aborted if the provided context is
178061// canceled.
178062func (c *VpnGatewaysListCall) Context(ctx context.Context) *VpnGatewaysListCall {
178063	c.ctx_ = ctx
178064	return c
178065}
178066
178067// Header returns an http.Header that can be modified by the caller to
178068// add HTTP headers to the request.
178069func (c *VpnGatewaysListCall) Header() http.Header {
178070	if c.header_ == nil {
178071		c.header_ = make(http.Header)
178072	}
178073	return c.header_
178074}
178075
178076func (c *VpnGatewaysListCall) doRequest(alt string) (*http.Response, error) {
178077	reqHeaders := make(http.Header)
178078	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
178079	for k, v := range c.header_ {
178080		reqHeaders[k] = v
178081	}
178082	reqHeaders.Set("User-Agent", c.s.userAgent())
178083	if c.ifNoneMatch_ != "" {
178084		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
178085	}
178086	var body io.Reader = nil
178087	c.urlParams_.Set("alt", alt)
178088	c.urlParams_.Set("prettyPrint", "false")
178089	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnGateways")
178090	urls += "?" + c.urlParams_.Encode()
178091	req, err := http.NewRequest("GET", urls, body)
178092	if err != nil {
178093		return nil, err
178094	}
178095	req.Header = reqHeaders
178096	googleapi.Expand(req.URL, map[string]string{
178097		"project": c.project,
178098		"region":  c.region,
178099	})
178100	return gensupport.SendRequest(c.ctx_, c.s.client, req)
178101}
178102
178103// Do executes the "compute.vpnGateways.list" call.
178104// Exactly one of *VpnGatewayList or error will be non-nil. Any non-2xx
178105// status code is an error. Response headers are in either
178106// *VpnGatewayList.ServerResponse.Header or (if a response was returned
178107// at all) in error.(*googleapi.Error).Header. Use
178108// googleapi.IsNotModified to check whether the returned error was
178109// because http.StatusNotModified was returned.
178110func (c *VpnGatewaysListCall) Do(opts ...googleapi.CallOption) (*VpnGatewayList, error) {
178111	gensupport.SetOptions(c.urlParams_, opts...)
178112	res, err := c.doRequest("json")
178113	if res != nil && res.StatusCode == http.StatusNotModified {
178114		if res.Body != nil {
178115			res.Body.Close()
178116		}
178117		return nil, &googleapi.Error{
178118			Code:   res.StatusCode,
178119			Header: res.Header,
178120		}
178121	}
178122	if err != nil {
178123		return nil, err
178124	}
178125	defer googleapi.CloseBody(res)
178126	if err := googleapi.CheckResponse(res); err != nil {
178127		return nil, err
178128	}
178129	ret := &VpnGatewayList{
178130		ServerResponse: googleapi.ServerResponse{
178131			Header:         res.Header,
178132			HTTPStatusCode: res.StatusCode,
178133		},
178134	}
178135	target := &ret
178136	if err := gensupport.DecodeResponse(target, res); err != nil {
178137		return nil, err
178138	}
178139	return ret, nil
178140	// {
178141	//   "description": "Retrieves a list of VPN gateways available to the specified project and region.",
178142	//   "httpMethod": "GET",
178143	//   "id": "compute.vpnGateways.list",
178144	//   "parameterOrder": [
178145	//     "project",
178146	//     "region"
178147	//   ],
178148	//   "parameters": {
178149	//     "filter": {
178150	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
178151	//       "location": "query",
178152	//       "type": "string"
178153	//     },
178154	//     "maxResults": {
178155	//       "default": "500",
178156	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
178157	//       "format": "uint32",
178158	//       "location": "query",
178159	//       "minimum": "0",
178160	//       "type": "integer"
178161	//     },
178162	//     "orderBy": {
178163	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
178164	//       "location": "query",
178165	//       "type": "string"
178166	//     },
178167	//     "pageToken": {
178168	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
178169	//       "location": "query",
178170	//       "type": "string"
178171	//     },
178172	//     "project": {
178173	//       "description": "Project ID for this request.",
178174	//       "location": "path",
178175	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
178176	//       "required": true,
178177	//       "type": "string"
178178	//     },
178179	//     "region": {
178180	//       "description": "Name of the region for this request.",
178181	//       "location": "path",
178182	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
178183	//       "required": true,
178184	//       "type": "string"
178185	//     },
178186	//     "returnPartialSuccess": {
178187	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
178188	//       "location": "query",
178189	//       "type": "boolean"
178190	//     }
178191	//   },
178192	//   "path": "projects/{project}/regions/{region}/vpnGateways",
178193	//   "response": {
178194	//     "$ref": "VpnGatewayList"
178195	//   },
178196	//   "scopes": [
178197	//     "https://www.googleapis.com/auth/cloud-platform",
178198	//     "https://www.googleapis.com/auth/compute",
178199	//     "https://www.googleapis.com/auth/compute.readonly"
178200	//   ]
178201	// }
178202
178203}
178204
178205// Pages invokes f for each page of results.
178206// A non-nil error returned from f will halt the iteration.
178207// The provided context supersedes any context provided to the Context method.
178208func (c *VpnGatewaysListCall) Pages(ctx context.Context, f func(*VpnGatewayList) error) error {
178209	c.ctx_ = ctx
178210	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
178211	for {
178212		x, err := c.Do()
178213		if err != nil {
178214			return err
178215		}
178216		if err := f(x); err != nil {
178217			return err
178218		}
178219		if x.NextPageToken == "" {
178220			return nil
178221		}
178222		c.PageToken(x.NextPageToken)
178223	}
178224}
178225
178226// method id "compute.vpnGateways.setLabels":
178227
178228type VpnGatewaysSetLabelsCall struct {
178229	s                      *Service
178230	project                string
178231	region                 string
178232	resource               string
178233	regionsetlabelsrequest *RegionSetLabelsRequest
178234	urlParams_             gensupport.URLParams
178235	ctx_                   context.Context
178236	header_                http.Header
178237}
178238
178239// SetLabels: Sets the labels on a VpnGateway. To learn more about
178240// labels, read the Labeling Resources documentation.
178241func (r *VpnGatewaysService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *VpnGatewaysSetLabelsCall {
178242	c := &VpnGatewaysSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
178243	c.project = project
178244	c.region = region
178245	c.resource = resource
178246	c.regionsetlabelsrequest = regionsetlabelsrequest
178247	return c
178248}
178249
178250// RequestId sets the optional parameter "requestId": An optional
178251// request ID to identify requests. Specify a unique request ID so that
178252// if you must retry your request, the server will know to ignore the
178253// request if it has already been completed.
178254//
178255// For example, consider a situation where you make an initial request
178256// and the request times out. If you make the request again with the
178257// same request ID, the server can check if original operation with the
178258// same request ID was received, and if so, will ignore the second
178259// request. This prevents clients from accidentally creating duplicate
178260// commitments.
178261//
178262// The request ID must be a valid UUID with the exception that zero UUID
178263// is not supported (00000000-0000-0000-0000-000000000000).
178264func (c *VpnGatewaysSetLabelsCall) RequestId(requestId string) *VpnGatewaysSetLabelsCall {
178265	c.urlParams_.Set("requestId", requestId)
178266	return c
178267}
178268
178269// Fields allows partial responses to be retrieved. See
178270// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
178271// for more information.
178272func (c *VpnGatewaysSetLabelsCall) Fields(s ...googleapi.Field) *VpnGatewaysSetLabelsCall {
178273	c.urlParams_.Set("fields", googleapi.CombineFields(s))
178274	return c
178275}
178276
178277// Context sets the context to be used in this call's Do method. Any
178278// pending HTTP request will be aborted if the provided context is
178279// canceled.
178280func (c *VpnGatewaysSetLabelsCall) Context(ctx context.Context) *VpnGatewaysSetLabelsCall {
178281	c.ctx_ = ctx
178282	return c
178283}
178284
178285// Header returns an http.Header that can be modified by the caller to
178286// add HTTP headers to the request.
178287func (c *VpnGatewaysSetLabelsCall) Header() http.Header {
178288	if c.header_ == nil {
178289		c.header_ = make(http.Header)
178290	}
178291	return c.header_
178292}
178293
178294func (c *VpnGatewaysSetLabelsCall) doRequest(alt string) (*http.Response, error) {
178295	reqHeaders := make(http.Header)
178296	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
178297	for k, v := range c.header_ {
178298		reqHeaders[k] = v
178299	}
178300	reqHeaders.Set("User-Agent", c.s.userAgent())
178301	var body io.Reader = nil
178302	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
178303	if err != nil {
178304		return nil, err
178305	}
178306	reqHeaders.Set("Content-Type", "application/json")
178307	c.urlParams_.Set("alt", alt)
178308	c.urlParams_.Set("prettyPrint", "false")
178309	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnGateways/{resource}/setLabels")
178310	urls += "?" + c.urlParams_.Encode()
178311	req, err := http.NewRequest("POST", urls, body)
178312	if err != nil {
178313		return nil, err
178314	}
178315	req.Header = reqHeaders
178316	googleapi.Expand(req.URL, map[string]string{
178317		"project":  c.project,
178318		"region":   c.region,
178319		"resource": c.resource,
178320	})
178321	return gensupport.SendRequest(c.ctx_, c.s.client, req)
178322}
178323
178324// Do executes the "compute.vpnGateways.setLabels" call.
178325// Exactly one of *Operation or error will be non-nil. Any non-2xx
178326// status code is an error. Response headers are in either
178327// *Operation.ServerResponse.Header or (if a response was returned at
178328// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
178329// to check whether the returned error was because
178330// http.StatusNotModified was returned.
178331func (c *VpnGatewaysSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
178332	gensupport.SetOptions(c.urlParams_, opts...)
178333	res, err := c.doRequest("json")
178334	if res != nil && res.StatusCode == http.StatusNotModified {
178335		if res.Body != nil {
178336			res.Body.Close()
178337		}
178338		return nil, &googleapi.Error{
178339			Code:   res.StatusCode,
178340			Header: res.Header,
178341		}
178342	}
178343	if err != nil {
178344		return nil, err
178345	}
178346	defer googleapi.CloseBody(res)
178347	if err := googleapi.CheckResponse(res); err != nil {
178348		return nil, err
178349	}
178350	ret := &Operation{
178351		ServerResponse: googleapi.ServerResponse{
178352			Header:         res.Header,
178353			HTTPStatusCode: res.StatusCode,
178354		},
178355	}
178356	target := &ret
178357	if err := gensupport.DecodeResponse(target, res); err != nil {
178358		return nil, err
178359	}
178360	return ret, nil
178361	// {
178362	//   "description": "Sets the labels on a VpnGateway. To learn more about labels, read the Labeling Resources documentation.",
178363	//   "httpMethod": "POST",
178364	//   "id": "compute.vpnGateways.setLabels",
178365	//   "parameterOrder": [
178366	//     "project",
178367	//     "region",
178368	//     "resource"
178369	//   ],
178370	//   "parameters": {
178371	//     "project": {
178372	//       "description": "Project ID for this request.",
178373	//       "location": "path",
178374	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
178375	//       "required": true,
178376	//       "type": "string"
178377	//     },
178378	//     "region": {
178379	//       "description": "The region for this request.",
178380	//       "location": "path",
178381	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
178382	//       "required": true,
178383	//       "type": "string"
178384	//     },
178385	//     "requestId": {
178386	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
178387	//       "location": "query",
178388	//       "type": "string"
178389	//     },
178390	//     "resource": {
178391	//       "description": "Name or id of the resource for this request.",
178392	//       "location": "path",
178393	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
178394	//       "required": true,
178395	//       "type": "string"
178396	//     }
178397	//   },
178398	//   "path": "projects/{project}/regions/{region}/vpnGateways/{resource}/setLabels",
178399	//   "request": {
178400	//     "$ref": "RegionSetLabelsRequest"
178401	//   },
178402	//   "response": {
178403	//     "$ref": "Operation"
178404	//   },
178405	//   "scopes": [
178406	//     "https://www.googleapis.com/auth/cloud-platform",
178407	//     "https://www.googleapis.com/auth/compute"
178408	//   ]
178409	// }
178410
178411}
178412
178413// method id "compute.vpnGateways.testIamPermissions":
178414
178415type VpnGatewaysTestIamPermissionsCall struct {
178416	s                      *Service
178417	project                string
178418	region                 string
178419	resource               string
178420	testpermissionsrequest *TestPermissionsRequest
178421	urlParams_             gensupport.URLParams
178422	ctx_                   context.Context
178423	header_                http.Header
178424}
178425
178426// TestIamPermissions: Returns permissions that a caller has on the
178427// specified resource.
178428func (r *VpnGatewaysService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *VpnGatewaysTestIamPermissionsCall {
178429	c := &VpnGatewaysTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
178430	c.project = project
178431	c.region = region
178432	c.resource = resource
178433	c.testpermissionsrequest = testpermissionsrequest
178434	return c
178435}
178436
178437// Fields allows partial responses to be retrieved. See
178438// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
178439// for more information.
178440func (c *VpnGatewaysTestIamPermissionsCall) Fields(s ...googleapi.Field) *VpnGatewaysTestIamPermissionsCall {
178441	c.urlParams_.Set("fields", googleapi.CombineFields(s))
178442	return c
178443}
178444
178445// Context sets the context to be used in this call's Do method. Any
178446// pending HTTP request will be aborted if the provided context is
178447// canceled.
178448func (c *VpnGatewaysTestIamPermissionsCall) Context(ctx context.Context) *VpnGatewaysTestIamPermissionsCall {
178449	c.ctx_ = ctx
178450	return c
178451}
178452
178453// Header returns an http.Header that can be modified by the caller to
178454// add HTTP headers to the request.
178455func (c *VpnGatewaysTestIamPermissionsCall) Header() http.Header {
178456	if c.header_ == nil {
178457		c.header_ = make(http.Header)
178458	}
178459	return c.header_
178460}
178461
178462func (c *VpnGatewaysTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
178463	reqHeaders := make(http.Header)
178464	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
178465	for k, v := range c.header_ {
178466		reqHeaders[k] = v
178467	}
178468	reqHeaders.Set("User-Agent", c.s.userAgent())
178469	var body io.Reader = nil
178470	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
178471	if err != nil {
178472		return nil, err
178473	}
178474	reqHeaders.Set("Content-Type", "application/json")
178475	c.urlParams_.Set("alt", alt)
178476	c.urlParams_.Set("prettyPrint", "false")
178477	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnGateways/{resource}/testIamPermissions")
178478	urls += "?" + c.urlParams_.Encode()
178479	req, err := http.NewRequest("POST", urls, body)
178480	if err != nil {
178481		return nil, err
178482	}
178483	req.Header = reqHeaders
178484	googleapi.Expand(req.URL, map[string]string{
178485		"project":  c.project,
178486		"region":   c.region,
178487		"resource": c.resource,
178488	})
178489	return gensupport.SendRequest(c.ctx_, c.s.client, req)
178490}
178491
178492// Do executes the "compute.vpnGateways.testIamPermissions" call.
178493// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
178494// non-2xx status code is an error. Response headers are in either
178495// *TestPermissionsResponse.ServerResponse.Header or (if a response was
178496// returned at all) in error.(*googleapi.Error).Header. Use
178497// googleapi.IsNotModified to check whether the returned error was
178498// because http.StatusNotModified was returned.
178499func (c *VpnGatewaysTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
178500	gensupport.SetOptions(c.urlParams_, opts...)
178501	res, err := c.doRequest("json")
178502	if res != nil && res.StatusCode == http.StatusNotModified {
178503		if res.Body != nil {
178504			res.Body.Close()
178505		}
178506		return nil, &googleapi.Error{
178507			Code:   res.StatusCode,
178508			Header: res.Header,
178509		}
178510	}
178511	if err != nil {
178512		return nil, err
178513	}
178514	defer googleapi.CloseBody(res)
178515	if err := googleapi.CheckResponse(res); err != nil {
178516		return nil, err
178517	}
178518	ret := &TestPermissionsResponse{
178519		ServerResponse: googleapi.ServerResponse{
178520			Header:         res.Header,
178521			HTTPStatusCode: res.StatusCode,
178522		},
178523	}
178524	target := &ret
178525	if err := gensupport.DecodeResponse(target, res); err != nil {
178526		return nil, err
178527	}
178528	return ret, nil
178529	// {
178530	//   "description": "Returns permissions that a caller has on the specified resource.",
178531	//   "httpMethod": "POST",
178532	//   "id": "compute.vpnGateways.testIamPermissions",
178533	//   "parameterOrder": [
178534	//     "project",
178535	//     "region",
178536	//     "resource"
178537	//   ],
178538	//   "parameters": {
178539	//     "project": {
178540	//       "description": "Project ID for this request.",
178541	//       "location": "path",
178542	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
178543	//       "required": true,
178544	//       "type": "string"
178545	//     },
178546	//     "region": {
178547	//       "description": "The name of the region for this request.",
178548	//       "location": "path",
178549	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
178550	//       "required": true,
178551	//       "type": "string"
178552	//     },
178553	//     "resource": {
178554	//       "description": "Name or id of the resource for this request.",
178555	//       "location": "path",
178556	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
178557	//       "required": true,
178558	//       "type": "string"
178559	//     }
178560	//   },
178561	//   "path": "projects/{project}/regions/{region}/vpnGateways/{resource}/testIamPermissions",
178562	//   "request": {
178563	//     "$ref": "TestPermissionsRequest"
178564	//   },
178565	//   "response": {
178566	//     "$ref": "TestPermissionsResponse"
178567	//   },
178568	//   "scopes": [
178569	//     "https://www.googleapis.com/auth/cloud-platform",
178570	//     "https://www.googleapis.com/auth/compute",
178571	//     "https://www.googleapis.com/auth/compute.readonly"
178572	//   ]
178573	// }
178574
178575}
178576
178577// method id "compute.vpnTunnels.aggregatedList":
178578
178579type VpnTunnelsAggregatedListCall struct {
178580	s            *Service
178581	project      string
178582	urlParams_   gensupport.URLParams
178583	ifNoneMatch_ string
178584	ctx_         context.Context
178585	header_      http.Header
178586}
178587
178588// AggregatedList: Retrieves an aggregated list of VPN tunnels.
178589func (r *VpnTunnelsService) AggregatedList(project string) *VpnTunnelsAggregatedListCall {
178590	c := &VpnTunnelsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
178591	c.project = project
178592	return c
178593}
178594
178595// Filter sets the optional parameter "filter": A filter expression that
178596// filters resources listed in the response. The expression must specify
178597// the field name, a comparison operator, and the value that you want to
178598// use for filtering. The value must be a string, a number, or a
178599// boolean. The comparison operator must be either `=`, `!=`, `>`, or
178600// `<`.
178601//
178602// For example, if you are filtering Compute Engine instances, you can
178603// exclude instances named `example-instance` by specifying `name !=
178604// example-instance`.
178605//
178606// You can also filter nested fields. For example, you could specify
178607// `scheduling.automaticRestart = false` to include instances only if
178608// they are not scheduled for automatic restarts. You can use filtering
178609// on nested fields to filter based on resource labels.
178610//
178611// To filter on multiple expressions, provide each separate expression
178612// within parentheses. For example: ``` (scheduling.automaticRestart =
178613// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
178614// is an `AND` expression. However, you can include `AND` and `OR`
178615// expressions explicitly. For example: ``` (cpuPlatform = "Intel
178616// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
178617// (scheduling.automaticRestart = true) ```
178618func (c *VpnTunnelsAggregatedListCall) Filter(filter string) *VpnTunnelsAggregatedListCall {
178619	c.urlParams_.Set("filter", filter)
178620	return c
178621}
178622
178623// IncludeAllScopes sets the optional parameter "includeAllScopes":
178624// Indicates whether every visible scope for each scope type (zone,
178625// region, global) should be included in the response. For new resource
178626// types added after this field, the flag has no effect as new resource
178627// types will always include every visible scope for each scope type in
178628// response. For resource types which predate this field, if this flag
178629// is omitted or false, only scopes of the scope types where the
178630// resource type is expected to be found will be included.
178631func (c *VpnTunnelsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *VpnTunnelsAggregatedListCall {
178632	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
178633	return c
178634}
178635
178636// MaxResults sets the optional parameter "maxResults": The maximum
178637// number of results per page that should be returned. If the number of
178638// available results is larger than `maxResults`, Compute Engine returns
178639// a `nextPageToken` that can be used to get the next page of results in
178640// subsequent list requests. Acceptable values are `0` to `500`,
178641// inclusive. (Default: `500`)
178642func (c *VpnTunnelsAggregatedListCall) MaxResults(maxResults int64) *VpnTunnelsAggregatedListCall {
178643	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
178644	return c
178645}
178646
178647// OrderBy sets the optional parameter "orderBy": Sorts list results by
178648// a certain order. By default, results are returned in alphanumerical
178649// order based on the resource name.
178650//
178651// You can also sort results in descending order based on the creation
178652// timestamp using `orderBy="creationTimestamp desc". This sorts
178653// results based on the `creationTimestamp` field in reverse
178654// chronological order (newest result first). Use this to sort resources
178655// like operations so that the newest operation is returned
178656// first.
178657//
178658// Currently, only sorting by `name` or `creationTimestamp desc` is
178659// supported.
178660func (c *VpnTunnelsAggregatedListCall) OrderBy(orderBy string) *VpnTunnelsAggregatedListCall {
178661	c.urlParams_.Set("orderBy", orderBy)
178662	return c
178663}
178664
178665// PageToken sets the optional parameter "pageToken": Specifies a page
178666// token to use. Set `pageToken` to the `nextPageToken` returned by a
178667// previous list request to get the next page of results.
178668func (c *VpnTunnelsAggregatedListCall) PageToken(pageToken string) *VpnTunnelsAggregatedListCall {
178669	c.urlParams_.Set("pageToken", pageToken)
178670	return c
178671}
178672
178673// ReturnPartialSuccess sets the optional parameter
178674// "returnPartialSuccess": Opt-in for partial success behavior which
178675// provides partial results in case of failure. The default value is
178676// false.
178677func (c *VpnTunnelsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *VpnTunnelsAggregatedListCall {
178678	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
178679	return c
178680}
178681
178682// Fields allows partial responses to be retrieved. See
178683// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
178684// for more information.
178685func (c *VpnTunnelsAggregatedListCall) Fields(s ...googleapi.Field) *VpnTunnelsAggregatedListCall {
178686	c.urlParams_.Set("fields", googleapi.CombineFields(s))
178687	return c
178688}
178689
178690// IfNoneMatch sets the optional parameter which makes the operation
178691// fail if the object's ETag matches the given value. This is useful for
178692// getting updates only after the object has changed since the last
178693// request. Use googleapi.IsNotModified to check whether the response
178694// error from Do is the result of In-None-Match.
178695func (c *VpnTunnelsAggregatedListCall) IfNoneMatch(entityTag string) *VpnTunnelsAggregatedListCall {
178696	c.ifNoneMatch_ = entityTag
178697	return c
178698}
178699
178700// Context sets the context to be used in this call's Do method. Any
178701// pending HTTP request will be aborted if the provided context is
178702// canceled.
178703func (c *VpnTunnelsAggregatedListCall) Context(ctx context.Context) *VpnTunnelsAggregatedListCall {
178704	c.ctx_ = ctx
178705	return c
178706}
178707
178708// Header returns an http.Header that can be modified by the caller to
178709// add HTTP headers to the request.
178710func (c *VpnTunnelsAggregatedListCall) Header() http.Header {
178711	if c.header_ == nil {
178712		c.header_ = make(http.Header)
178713	}
178714	return c.header_
178715}
178716
178717func (c *VpnTunnelsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
178718	reqHeaders := make(http.Header)
178719	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
178720	for k, v := range c.header_ {
178721		reqHeaders[k] = v
178722	}
178723	reqHeaders.Set("User-Agent", c.s.userAgent())
178724	if c.ifNoneMatch_ != "" {
178725		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
178726	}
178727	var body io.Reader = nil
178728	c.urlParams_.Set("alt", alt)
178729	c.urlParams_.Set("prettyPrint", "false")
178730	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/vpnTunnels")
178731	urls += "?" + c.urlParams_.Encode()
178732	req, err := http.NewRequest("GET", urls, body)
178733	if err != nil {
178734		return nil, err
178735	}
178736	req.Header = reqHeaders
178737	googleapi.Expand(req.URL, map[string]string{
178738		"project": c.project,
178739	})
178740	return gensupport.SendRequest(c.ctx_, c.s.client, req)
178741}
178742
178743// Do executes the "compute.vpnTunnels.aggregatedList" call.
178744// Exactly one of *VpnTunnelAggregatedList or error will be non-nil. Any
178745// non-2xx status code is an error. Response headers are in either
178746// *VpnTunnelAggregatedList.ServerResponse.Header or (if a response was
178747// returned at all) in error.(*googleapi.Error).Header. Use
178748// googleapi.IsNotModified to check whether the returned error was
178749// because http.StatusNotModified was returned.
178750func (c *VpnTunnelsAggregatedListCall) Do(opts ...googleapi.CallOption) (*VpnTunnelAggregatedList, error) {
178751	gensupport.SetOptions(c.urlParams_, opts...)
178752	res, err := c.doRequest("json")
178753	if res != nil && res.StatusCode == http.StatusNotModified {
178754		if res.Body != nil {
178755			res.Body.Close()
178756		}
178757		return nil, &googleapi.Error{
178758			Code:   res.StatusCode,
178759			Header: res.Header,
178760		}
178761	}
178762	if err != nil {
178763		return nil, err
178764	}
178765	defer googleapi.CloseBody(res)
178766	if err := googleapi.CheckResponse(res); err != nil {
178767		return nil, err
178768	}
178769	ret := &VpnTunnelAggregatedList{
178770		ServerResponse: googleapi.ServerResponse{
178771			Header:         res.Header,
178772			HTTPStatusCode: res.StatusCode,
178773		},
178774	}
178775	target := &ret
178776	if err := gensupport.DecodeResponse(target, res); err != nil {
178777		return nil, err
178778	}
178779	return ret, nil
178780	// {
178781	//   "description": "Retrieves an aggregated list of VPN tunnels.",
178782	//   "httpMethod": "GET",
178783	//   "id": "compute.vpnTunnels.aggregatedList",
178784	//   "parameterOrder": [
178785	//     "project"
178786	//   ],
178787	//   "parameters": {
178788	//     "filter": {
178789	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
178790	//       "location": "query",
178791	//       "type": "string"
178792	//     },
178793	//     "includeAllScopes": {
178794	//       "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.",
178795	//       "location": "query",
178796	//       "type": "boolean"
178797	//     },
178798	//     "maxResults": {
178799	//       "default": "500",
178800	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
178801	//       "format": "uint32",
178802	//       "location": "query",
178803	//       "minimum": "0",
178804	//       "type": "integer"
178805	//     },
178806	//     "orderBy": {
178807	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
178808	//       "location": "query",
178809	//       "type": "string"
178810	//     },
178811	//     "pageToken": {
178812	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
178813	//       "location": "query",
178814	//       "type": "string"
178815	//     },
178816	//     "project": {
178817	//       "description": "Project ID for this request.",
178818	//       "location": "path",
178819	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
178820	//       "required": true,
178821	//       "type": "string"
178822	//     },
178823	//     "returnPartialSuccess": {
178824	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
178825	//       "location": "query",
178826	//       "type": "boolean"
178827	//     }
178828	//   },
178829	//   "path": "projects/{project}/aggregated/vpnTunnels",
178830	//   "response": {
178831	//     "$ref": "VpnTunnelAggregatedList"
178832	//   },
178833	//   "scopes": [
178834	//     "https://www.googleapis.com/auth/cloud-platform",
178835	//     "https://www.googleapis.com/auth/compute",
178836	//     "https://www.googleapis.com/auth/compute.readonly"
178837	//   ]
178838	// }
178839
178840}
178841
178842// Pages invokes f for each page of results.
178843// A non-nil error returned from f will halt the iteration.
178844// The provided context supersedes any context provided to the Context method.
178845func (c *VpnTunnelsAggregatedListCall) Pages(ctx context.Context, f func(*VpnTunnelAggregatedList) error) error {
178846	c.ctx_ = ctx
178847	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
178848	for {
178849		x, err := c.Do()
178850		if err != nil {
178851			return err
178852		}
178853		if err := f(x); err != nil {
178854			return err
178855		}
178856		if x.NextPageToken == "" {
178857			return nil
178858		}
178859		c.PageToken(x.NextPageToken)
178860	}
178861}
178862
178863// method id "compute.vpnTunnels.delete":
178864
178865type VpnTunnelsDeleteCall struct {
178866	s          *Service
178867	project    string
178868	region     string
178869	vpnTunnel  string
178870	urlParams_ gensupport.URLParams
178871	ctx_       context.Context
178872	header_    http.Header
178873}
178874
178875// Delete: Deletes the specified VpnTunnel resource.
178876func (r *VpnTunnelsService) Delete(project string, region string, vpnTunnel string) *VpnTunnelsDeleteCall {
178877	c := &VpnTunnelsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
178878	c.project = project
178879	c.region = region
178880	c.vpnTunnel = vpnTunnel
178881	return c
178882}
178883
178884// RequestId sets the optional parameter "requestId": An optional
178885// request ID to identify requests. Specify a unique request ID so that
178886// if you must retry your request, the server will know to ignore the
178887// request if it has already been completed.
178888//
178889// For example, consider a situation where you make an initial request
178890// and the request times out. If you make the request again with the
178891// same request ID, the server can check if original operation with the
178892// same request ID was received, and if so, will ignore the second
178893// request. This prevents clients from accidentally creating duplicate
178894// commitments.
178895//
178896// The request ID must be a valid UUID with the exception that zero UUID
178897// is not supported (00000000-0000-0000-0000-000000000000).
178898func (c *VpnTunnelsDeleteCall) RequestId(requestId string) *VpnTunnelsDeleteCall {
178899	c.urlParams_.Set("requestId", requestId)
178900	return c
178901}
178902
178903// Fields allows partial responses to be retrieved. See
178904// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
178905// for more information.
178906func (c *VpnTunnelsDeleteCall) Fields(s ...googleapi.Field) *VpnTunnelsDeleteCall {
178907	c.urlParams_.Set("fields", googleapi.CombineFields(s))
178908	return c
178909}
178910
178911// Context sets the context to be used in this call's Do method. Any
178912// pending HTTP request will be aborted if the provided context is
178913// canceled.
178914func (c *VpnTunnelsDeleteCall) Context(ctx context.Context) *VpnTunnelsDeleteCall {
178915	c.ctx_ = ctx
178916	return c
178917}
178918
178919// Header returns an http.Header that can be modified by the caller to
178920// add HTTP headers to the request.
178921func (c *VpnTunnelsDeleteCall) Header() http.Header {
178922	if c.header_ == nil {
178923		c.header_ = make(http.Header)
178924	}
178925	return c.header_
178926}
178927
178928func (c *VpnTunnelsDeleteCall) doRequest(alt string) (*http.Response, error) {
178929	reqHeaders := make(http.Header)
178930	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
178931	for k, v := range c.header_ {
178932		reqHeaders[k] = v
178933	}
178934	reqHeaders.Set("User-Agent", c.s.userAgent())
178935	var body io.Reader = nil
178936	c.urlParams_.Set("alt", alt)
178937	c.urlParams_.Set("prettyPrint", "false")
178938	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}")
178939	urls += "?" + c.urlParams_.Encode()
178940	req, err := http.NewRequest("DELETE", urls, body)
178941	if err != nil {
178942		return nil, err
178943	}
178944	req.Header = reqHeaders
178945	googleapi.Expand(req.URL, map[string]string{
178946		"project":   c.project,
178947		"region":    c.region,
178948		"vpnTunnel": c.vpnTunnel,
178949	})
178950	return gensupport.SendRequest(c.ctx_, c.s.client, req)
178951}
178952
178953// Do executes the "compute.vpnTunnels.delete" call.
178954// Exactly one of *Operation or error will be non-nil. Any non-2xx
178955// status code is an error. Response headers are in either
178956// *Operation.ServerResponse.Header or (if a response was returned at
178957// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
178958// to check whether the returned error was because
178959// http.StatusNotModified was returned.
178960func (c *VpnTunnelsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
178961	gensupport.SetOptions(c.urlParams_, opts...)
178962	res, err := c.doRequest("json")
178963	if res != nil && res.StatusCode == http.StatusNotModified {
178964		if res.Body != nil {
178965			res.Body.Close()
178966		}
178967		return nil, &googleapi.Error{
178968			Code:   res.StatusCode,
178969			Header: res.Header,
178970		}
178971	}
178972	if err != nil {
178973		return nil, err
178974	}
178975	defer googleapi.CloseBody(res)
178976	if err := googleapi.CheckResponse(res); err != nil {
178977		return nil, err
178978	}
178979	ret := &Operation{
178980		ServerResponse: googleapi.ServerResponse{
178981			Header:         res.Header,
178982			HTTPStatusCode: res.StatusCode,
178983		},
178984	}
178985	target := &ret
178986	if err := gensupport.DecodeResponse(target, res); err != nil {
178987		return nil, err
178988	}
178989	return ret, nil
178990	// {
178991	//   "description": "Deletes the specified VpnTunnel resource.",
178992	//   "httpMethod": "DELETE",
178993	//   "id": "compute.vpnTunnels.delete",
178994	//   "parameterOrder": [
178995	//     "project",
178996	//     "region",
178997	//     "vpnTunnel"
178998	//   ],
178999	//   "parameters": {
179000	//     "project": {
179001	//       "description": "Project ID for this request.",
179002	//       "location": "path",
179003	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
179004	//       "required": true,
179005	//       "type": "string"
179006	//     },
179007	//     "region": {
179008	//       "description": "Name of the region for this request.",
179009	//       "location": "path",
179010	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
179011	//       "required": true,
179012	//       "type": "string"
179013	//     },
179014	//     "requestId": {
179015	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
179016	//       "location": "query",
179017	//       "type": "string"
179018	//     },
179019	//     "vpnTunnel": {
179020	//       "description": "Name of the VpnTunnel resource to delete.",
179021	//       "location": "path",
179022	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
179023	//       "required": true,
179024	//       "type": "string"
179025	//     }
179026	//   },
179027	//   "path": "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}",
179028	//   "response": {
179029	//     "$ref": "Operation"
179030	//   },
179031	//   "scopes": [
179032	//     "https://www.googleapis.com/auth/cloud-platform",
179033	//     "https://www.googleapis.com/auth/compute"
179034	//   ]
179035	// }
179036
179037}
179038
179039// method id "compute.vpnTunnels.get":
179040
179041type VpnTunnelsGetCall struct {
179042	s            *Service
179043	project      string
179044	region       string
179045	vpnTunnel    string
179046	urlParams_   gensupport.URLParams
179047	ifNoneMatch_ string
179048	ctx_         context.Context
179049	header_      http.Header
179050}
179051
179052// Get: Returns the specified VpnTunnel resource. Gets a list of
179053// available VPN tunnels by making a list() request.
179054func (r *VpnTunnelsService) Get(project string, region string, vpnTunnel string) *VpnTunnelsGetCall {
179055	c := &VpnTunnelsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
179056	c.project = project
179057	c.region = region
179058	c.vpnTunnel = vpnTunnel
179059	return c
179060}
179061
179062// Fields allows partial responses to be retrieved. See
179063// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
179064// for more information.
179065func (c *VpnTunnelsGetCall) Fields(s ...googleapi.Field) *VpnTunnelsGetCall {
179066	c.urlParams_.Set("fields", googleapi.CombineFields(s))
179067	return c
179068}
179069
179070// IfNoneMatch sets the optional parameter which makes the operation
179071// fail if the object's ETag matches the given value. This is useful for
179072// getting updates only after the object has changed since the last
179073// request. Use googleapi.IsNotModified to check whether the response
179074// error from Do is the result of In-None-Match.
179075func (c *VpnTunnelsGetCall) IfNoneMatch(entityTag string) *VpnTunnelsGetCall {
179076	c.ifNoneMatch_ = entityTag
179077	return c
179078}
179079
179080// Context sets the context to be used in this call's Do method. Any
179081// pending HTTP request will be aborted if the provided context is
179082// canceled.
179083func (c *VpnTunnelsGetCall) Context(ctx context.Context) *VpnTunnelsGetCall {
179084	c.ctx_ = ctx
179085	return c
179086}
179087
179088// Header returns an http.Header that can be modified by the caller to
179089// add HTTP headers to the request.
179090func (c *VpnTunnelsGetCall) Header() http.Header {
179091	if c.header_ == nil {
179092		c.header_ = make(http.Header)
179093	}
179094	return c.header_
179095}
179096
179097func (c *VpnTunnelsGetCall) doRequest(alt string) (*http.Response, error) {
179098	reqHeaders := make(http.Header)
179099	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
179100	for k, v := range c.header_ {
179101		reqHeaders[k] = v
179102	}
179103	reqHeaders.Set("User-Agent", c.s.userAgent())
179104	if c.ifNoneMatch_ != "" {
179105		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
179106	}
179107	var body io.Reader = nil
179108	c.urlParams_.Set("alt", alt)
179109	c.urlParams_.Set("prettyPrint", "false")
179110	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}")
179111	urls += "?" + c.urlParams_.Encode()
179112	req, err := http.NewRequest("GET", urls, body)
179113	if err != nil {
179114		return nil, err
179115	}
179116	req.Header = reqHeaders
179117	googleapi.Expand(req.URL, map[string]string{
179118		"project":   c.project,
179119		"region":    c.region,
179120		"vpnTunnel": c.vpnTunnel,
179121	})
179122	return gensupport.SendRequest(c.ctx_, c.s.client, req)
179123}
179124
179125// Do executes the "compute.vpnTunnels.get" call.
179126// Exactly one of *VpnTunnel or error will be non-nil. Any non-2xx
179127// status code is an error. Response headers are in either
179128// *VpnTunnel.ServerResponse.Header or (if a response was returned at
179129// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
179130// to check whether the returned error was because
179131// http.StatusNotModified was returned.
179132func (c *VpnTunnelsGetCall) Do(opts ...googleapi.CallOption) (*VpnTunnel, error) {
179133	gensupport.SetOptions(c.urlParams_, opts...)
179134	res, err := c.doRequest("json")
179135	if res != nil && res.StatusCode == http.StatusNotModified {
179136		if res.Body != nil {
179137			res.Body.Close()
179138		}
179139		return nil, &googleapi.Error{
179140			Code:   res.StatusCode,
179141			Header: res.Header,
179142		}
179143	}
179144	if err != nil {
179145		return nil, err
179146	}
179147	defer googleapi.CloseBody(res)
179148	if err := googleapi.CheckResponse(res); err != nil {
179149		return nil, err
179150	}
179151	ret := &VpnTunnel{
179152		ServerResponse: googleapi.ServerResponse{
179153			Header:         res.Header,
179154			HTTPStatusCode: res.StatusCode,
179155		},
179156	}
179157	target := &ret
179158	if err := gensupport.DecodeResponse(target, res); err != nil {
179159		return nil, err
179160	}
179161	return ret, nil
179162	// {
179163	//   "description": "Returns the specified VpnTunnel resource. Gets a list of available VPN tunnels by making a list() request.",
179164	//   "httpMethod": "GET",
179165	//   "id": "compute.vpnTunnels.get",
179166	//   "parameterOrder": [
179167	//     "project",
179168	//     "region",
179169	//     "vpnTunnel"
179170	//   ],
179171	//   "parameters": {
179172	//     "project": {
179173	//       "description": "Project ID for this request.",
179174	//       "location": "path",
179175	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
179176	//       "required": true,
179177	//       "type": "string"
179178	//     },
179179	//     "region": {
179180	//       "description": "Name of the region for this request.",
179181	//       "location": "path",
179182	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
179183	//       "required": true,
179184	//       "type": "string"
179185	//     },
179186	//     "vpnTunnel": {
179187	//       "description": "Name of the VpnTunnel resource to return.",
179188	//       "location": "path",
179189	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
179190	//       "required": true,
179191	//       "type": "string"
179192	//     }
179193	//   },
179194	//   "path": "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}",
179195	//   "response": {
179196	//     "$ref": "VpnTunnel"
179197	//   },
179198	//   "scopes": [
179199	//     "https://www.googleapis.com/auth/cloud-platform",
179200	//     "https://www.googleapis.com/auth/compute",
179201	//     "https://www.googleapis.com/auth/compute.readonly"
179202	//   ]
179203	// }
179204
179205}
179206
179207// method id "compute.vpnTunnels.insert":
179208
179209type VpnTunnelsInsertCall struct {
179210	s          *Service
179211	project    string
179212	region     string
179213	vpntunnel  *VpnTunnel
179214	urlParams_ gensupport.URLParams
179215	ctx_       context.Context
179216	header_    http.Header
179217}
179218
179219// Insert: Creates a VpnTunnel resource in the specified project and
179220// region using the data included in the request.
179221func (r *VpnTunnelsService) Insert(project string, region string, vpntunnel *VpnTunnel) *VpnTunnelsInsertCall {
179222	c := &VpnTunnelsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
179223	c.project = project
179224	c.region = region
179225	c.vpntunnel = vpntunnel
179226	return c
179227}
179228
179229// RequestId sets the optional parameter "requestId": An optional
179230// request ID to identify requests. Specify a unique request ID so that
179231// if you must retry your request, the server will know to ignore the
179232// request if it has already been completed.
179233//
179234// For example, consider a situation where you make an initial request
179235// and the request times out. If you make the request again with the
179236// same request ID, the server can check if original operation with the
179237// same request ID was received, and if so, will ignore the second
179238// request. This prevents clients from accidentally creating duplicate
179239// commitments.
179240//
179241// The request ID must be a valid UUID with the exception that zero UUID
179242// is not supported (00000000-0000-0000-0000-000000000000).
179243func (c *VpnTunnelsInsertCall) RequestId(requestId string) *VpnTunnelsInsertCall {
179244	c.urlParams_.Set("requestId", requestId)
179245	return c
179246}
179247
179248// Fields allows partial responses to be retrieved. See
179249// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
179250// for more information.
179251func (c *VpnTunnelsInsertCall) Fields(s ...googleapi.Field) *VpnTunnelsInsertCall {
179252	c.urlParams_.Set("fields", googleapi.CombineFields(s))
179253	return c
179254}
179255
179256// Context sets the context to be used in this call's Do method. Any
179257// pending HTTP request will be aborted if the provided context is
179258// canceled.
179259func (c *VpnTunnelsInsertCall) Context(ctx context.Context) *VpnTunnelsInsertCall {
179260	c.ctx_ = ctx
179261	return c
179262}
179263
179264// Header returns an http.Header that can be modified by the caller to
179265// add HTTP headers to the request.
179266func (c *VpnTunnelsInsertCall) Header() http.Header {
179267	if c.header_ == nil {
179268		c.header_ = make(http.Header)
179269	}
179270	return c.header_
179271}
179272
179273func (c *VpnTunnelsInsertCall) doRequest(alt string) (*http.Response, error) {
179274	reqHeaders := make(http.Header)
179275	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
179276	for k, v := range c.header_ {
179277		reqHeaders[k] = v
179278	}
179279	reqHeaders.Set("User-Agent", c.s.userAgent())
179280	var body io.Reader = nil
179281	body, err := googleapi.WithoutDataWrapper.JSONReader(c.vpntunnel)
179282	if err != nil {
179283		return nil, err
179284	}
179285	reqHeaders.Set("Content-Type", "application/json")
179286	c.urlParams_.Set("alt", alt)
179287	c.urlParams_.Set("prettyPrint", "false")
179288	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnTunnels")
179289	urls += "?" + c.urlParams_.Encode()
179290	req, err := http.NewRequest("POST", urls, body)
179291	if err != nil {
179292		return nil, err
179293	}
179294	req.Header = reqHeaders
179295	googleapi.Expand(req.URL, map[string]string{
179296		"project": c.project,
179297		"region":  c.region,
179298	})
179299	return gensupport.SendRequest(c.ctx_, c.s.client, req)
179300}
179301
179302// Do executes the "compute.vpnTunnels.insert" call.
179303// Exactly one of *Operation or error will be non-nil. Any non-2xx
179304// status code is an error. Response headers are in either
179305// *Operation.ServerResponse.Header or (if a response was returned at
179306// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
179307// to check whether the returned error was because
179308// http.StatusNotModified was returned.
179309func (c *VpnTunnelsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
179310	gensupport.SetOptions(c.urlParams_, opts...)
179311	res, err := c.doRequest("json")
179312	if res != nil && res.StatusCode == http.StatusNotModified {
179313		if res.Body != nil {
179314			res.Body.Close()
179315		}
179316		return nil, &googleapi.Error{
179317			Code:   res.StatusCode,
179318			Header: res.Header,
179319		}
179320	}
179321	if err != nil {
179322		return nil, err
179323	}
179324	defer googleapi.CloseBody(res)
179325	if err := googleapi.CheckResponse(res); err != nil {
179326		return nil, err
179327	}
179328	ret := &Operation{
179329		ServerResponse: googleapi.ServerResponse{
179330			Header:         res.Header,
179331			HTTPStatusCode: res.StatusCode,
179332		},
179333	}
179334	target := &ret
179335	if err := gensupport.DecodeResponse(target, res); err != nil {
179336		return nil, err
179337	}
179338	return ret, nil
179339	// {
179340	//   "description": "Creates a VpnTunnel resource in the specified project and region using the data included in the request.",
179341	//   "httpMethod": "POST",
179342	//   "id": "compute.vpnTunnels.insert",
179343	//   "parameterOrder": [
179344	//     "project",
179345	//     "region"
179346	//   ],
179347	//   "parameters": {
179348	//     "project": {
179349	//       "description": "Project ID for this request.",
179350	//       "location": "path",
179351	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
179352	//       "required": true,
179353	//       "type": "string"
179354	//     },
179355	//     "region": {
179356	//       "description": "Name of the region for this request.",
179357	//       "location": "path",
179358	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
179359	//       "required": true,
179360	//       "type": "string"
179361	//     },
179362	//     "requestId": {
179363	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
179364	//       "location": "query",
179365	//       "type": "string"
179366	//     }
179367	//   },
179368	//   "path": "projects/{project}/regions/{region}/vpnTunnels",
179369	//   "request": {
179370	//     "$ref": "VpnTunnel"
179371	//   },
179372	//   "response": {
179373	//     "$ref": "Operation"
179374	//   },
179375	//   "scopes": [
179376	//     "https://www.googleapis.com/auth/cloud-platform",
179377	//     "https://www.googleapis.com/auth/compute"
179378	//   ]
179379	// }
179380
179381}
179382
179383// method id "compute.vpnTunnels.list":
179384
179385type VpnTunnelsListCall struct {
179386	s            *Service
179387	project      string
179388	region       string
179389	urlParams_   gensupport.URLParams
179390	ifNoneMatch_ string
179391	ctx_         context.Context
179392	header_      http.Header
179393}
179394
179395// List: Retrieves a list of VpnTunnel resources contained in the
179396// specified project and region.
179397func (r *VpnTunnelsService) List(project string, region string) *VpnTunnelsListCall {
179398	c := &VpnTunnelsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
179399	c.project = project
179400	c.region = region
179401	return c
179402}
179403
179404// Filter sets the optional parameter "filter": A filter expression that
179405// filters resources listed in the response. The expression must specify
179406// the field name, a comparison operator, and the value that you want to
179407// use for filtering. The value must be a string, a number, or a
179408// boolean. The comparison operator must be either `=`, `!=`, `>`, or
179409// `<`.
179410//
179411// For example, if you are filtering Compute Engine instances, you can
179412// exclude instances named `example-instance` by specifying `name !=
179413// example-instance`.
179414//
179415// You can also filter nested fields. For example, you could specify
179416// `scheduling.automaticRestart = false` to include instances only if
179417// they are not scheduled for automatic restarts. You can use filtering
179418// on nested fields to filter based on resource labels.
179419//
179420// To filter on multiple expressions, provide each separate expression
179421// within parentheses. For example: ``` (scheduling.automaticRestart =
179422// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
179423// is an `AND` expression. However, you can include `AND` and `OR`
179424// expressions explicitly. For example: ``` (cpuPlatform = "Intel
179425// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
179426// (scheduling.automaticRestart = true) ```
179427func (c *VpnTunnelsListCall) Filter(filter string) *VpnTunnelsListCall {
179428	c.urlParams_.Set("filter", filter)
179429	return c
179430}
179431
179432// MaxResults sets the optional parameter "maxResults": The maximum
179433// number of results per page that should be returned. If the number of
179434// available results is larger than `maxResults`, Compute Engine returns
179435// a `nextPageToken` that can be used to get the next page of results in
179436// subsequent list requests. Acceptable values are `0` to `500`,
179437// inclusive. (Default: `500`)
179438func (c *VpnTunnelsListCall) MaxResults(maxResults int64) *VpnTunnelsListCall {
179439	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
179440	return c
179441}
179442
179443// OrderBy sets the optional parameter "orderBy": Sorts list results by
179444// a certain order. By default, results are returned in alphanumerical
179445// order based on the resource name.
179446//
179447// You can also sort results in descending order based on the creation
179448// timestamp using `orderBy="creationTimestamp desc". This sorts
179449// results based on the `creationTimestamp` field in reverse
179450// chronological order (newest result first). Use this to sort resources
179451// like operations so that the newest operation is returned
179452// first.
179453//
179454// Currently, only sorting by `name` or `creationTimestamp desc` is
179455// supported.
179456func (c *VpnTunnelsListCall) OrderBy(orderBy string) *VpnTunnelsListCall {
179457	c.urlParams_.Set("orderBy", orderBy)
179458	return c
179459}
179460
179461// PageToken sets the optional parameter "pageToken": Specifies a page
179462// token to use. Set `pageToken` to the `nextPageToken` returned by a
179463// previous list request to get the next page of results.
179464func (c *VpnTunnelsListCall) PageToken(pageToken string) *VpnTunnelsListCall {
179465	c.urlParams_.Set("pageToken", pageToken)
179466	return c
179467}
179468
179469// ReturnPartialSuccess sets the optional parameter
179470// "returnPartialSuccess": Opt-in for partial success behavior which
179471// provides partial results in case of failure. The default value is
179472// false.
179473func (c *VpnTunnelsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *VpnTunnelsListCall {
179474	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
179475	return c
179476}
179477
179478// Fields allows partial responses to be retrieved. See
179479// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
179480// for more information.
179481func (c *VpnTunnelsListCall) Fields(s ...googleapi.Field) *VpnTunnelsListCall {
179482	c.urlParams_.Set("fields", googleapi.CombineFields(s))
179483	return c
179484}
179485
179486// IfNoneMatch sets the optional parameter which makes the operation
179487// fail if the object's ETag matches the given value. This is useful for
179488// getting updates only after the object has changed since the last
179489// request. Use googleapi.IsNotModified to check whether the response
179490// error from Do is the result of In-None-Match.
179491func (c *VpnTunnelsListCall) IfNoneMatch(entityTag string) *VpnTunnelsListCall {
179492	c.ifNoneMatch_ = entityTag
179493	return c
179494}
179495
179496// Context sets the context to be used in this call's Do method. Any
179497// pending HTTP request will be aborted if the provided context is
179498// canceled.
179499func (c *VpnTunnelsListCall) Context(ctx context.Context) *VpnTunnelsListCall {
179500	c.ctx_ = ctx
179501	return c
179502}
179503
179504// Header returns an http.Header that can be modified by the caller to
179505// add HTTP headers to the request.
179506func (c *VpnTunnelsListCall) Header() http.Header {
179507	if c.header_ == nil {
179508		c.header_ = make(http.Header)
179509	}
179510	return c.header_
179511}
179512
179513func (c *VpnTunnelsListCall) doRequest(alt string) (*http.Response, error) {
179514	reqHeaders := make(http.Header)
179515	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
179516	for k, v := range c.header_ {
179517		reqHeaders[k] = v
179518	}
179519	reqHeaders.Set("User-Agent", c.s.userAgent())
179520	if c.ifNoneMatch_ != "" {
179521		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
179522	}
179523	var body io.Reader = nil
179524	c.urlParams_.Set("alt", alt)
179525	c.urlParams_.Set("prettyPrint", "false")
179526	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnTunnels")
179527	urls += "?" + c.urlParams_.Encode()
179528	req, err := http.NewRequest("GET", urls, body)
179529	if err != nil {
179530		return nil, err
179531	}
179532	req.Header = reqHeaders
179533	googleapi.Expand(req.URL, map[string]string{
179534		"project": c.project,
179535		"region":  c.region,
179536	})
179537	return gensupport.SendRequest(c.ctx_, c.s.client, req)
179538}
179539
179540// Do executes the "compute.vpnTunnels.list" call.
179541// Exactly one of *VpnTunnelList or error will be non-nil. Any non-2xx
179542// status code is an error. Response headers are in either
179543// *VpnTunnelList.ServerResponse.Header or (if a response was returned
179544// at all) in error.(*googleapi.Error).Header. Use
179545// googleapi.IsNotModified to check whether the returned error was
179546// because http.StatusNotModified was returned.
179547func (c *VpnTunnelsListCall) Do(opts ...googleapi.CallOption) (*VpnTunnelList, error) {
179548	gensupport.SetOptions(c.urlParams_, opts...)
179549	res, err := c.doRequest("json")
179550	if res != nil && res.StatusCode == http.StatusNotModified {
179551		if res.Body != nil {
179552			res.Body.Close()
179553		}
179554		return nil, &googleapi.Error{
179555			Code:   res.StatusCode,
179556			Header: res.Header,
179557		}
179558	}
179559	if err != nil {
179560		return nil, err
179561	}
179562	defer googleapi.CloseBody(res)
179563	if err := googleapi.CheckResponse(res); err != nil {
179564		return nil, err
179565	}
179566	ret := &VpnTunnelList{
179567		ServerResponse: googleapi.ServerResponse{
179568			Header:         res.Header,
179569			HTTPStatusCode: res.StatusCode,
179570		},
179571	}
179572	target := &ret
179573	if err := gensupport.DecodeResponse(target, res); err != nil {
179574		return nil, err
179575	}
179576	return ret, nil
179577	// {
179578	//   "description": "Retrieves a list of VpnTunnel resources contained in the specified project and region.",
179579	//   "httpMethod": "GET",
179580	//   "id": "compute.vpnTunnels.list",
179581	//   "parameterOrder": [
179582	//     "project",
179583	//     "region"
179584	//   ],
179585	//   "parameters": {
179586	//     "filter": {
179587	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
179588	//       "location": "query",
179589	//       "type": "string"
179590	//     },
179591	//     "maxResults": {
179592	//       "default": "500",
179593	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
179594	//       "format": "uint32",
179595	//       "location": "query",
179596	//       "minimum": "0",
179597	//       "type": "integer"
179598	//     },
179599	//     "orderBy": {
179600	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
179601	//       "location": "query",
179602	//       "type": "string"
179603	//     },
179604	//     "pageToken": {
179605	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
179606	//       "location": "query",
179607	//       "type": "string"
179608	//     },
179609	//     "project": {
179610	//       "description": "Project ID for this request.",
179611	//       "location": "path",
179612	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
179613	//       "required": true,
179614	//       "type": "string"
179615	//     },
179616	//     "region": {
179617	//       "description": "Name of the region for this request.",
179618	//       "location": "path",
179619	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
179620	//       "required": true,
179621	//       "type": "string"
179622	//     },
179623	//     "returnPartialSuccess": {
179624	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
179625	//       "location": "query",
179626	//       "type": "boolean"
179627	//     }
179628	//   },
179629	//   "path": "projects/{project}/regions/{region}/vpnTunnels",
179630	//   "response": {
179631	//     "$ref": "VpnTunnelList"
179632	//   },
179633	//   "scopes": [
179634	//     "https://www.googleapis.com/auth/cloud-platform",
179635	//     "https://www.googleapis.com/auth/compute",
179636	//     "https://www.googleapis.com/auth/compute.readonly"
179637	//   ]
179638	// }
179639
179640}
179641
179642// Pages invokes f for each page of results.
179643// A non-nil error returned from f will halt the iteration.
179644// The provided context supersedes any context provided to the Context method.
179645func (c *VpnTunnelsListCall) Pages(ctx context.Context, f func(*VpnTunnelList) error) error {
179646	c.ctx_ = ctx
179647	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
179648	for {
179649		x, err := c.Do()
179650		if err != nil {
179651			return err
179652		}
179653		if err := f(x); err != nil {
179654			return err
179655		}
179656		if x.NextPageToken == "" {
179657			return nil
179658		}
179659		c.PageToken(x.NextPageToken)
179660	}
179661}
179662
179663// method id "compute.vpnTunnels.setLabels":
179664
179665type VpnTunnelsSetLabelsCall struct {
179666	s                      *Service
179667	project                string
179668	region                 string
179669	resource               string
179670	regionsetlabelsrequest *RegionSetLabelsRequest
179671	urlParams_             gensupport.URLParams
179672	ctx_                   context.Context
179673	header_                http.Header
179674}
179675
179676// SetLabels: Sets the labels on a VpnTunnel. To learn more about
179677// labels, read the Labeling Resources documentation.
179678func (r *VpnTunnelsService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *VpnTunnelsSetLabelsCall {
179679	c := &VpnTunnelsSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
179680	c.project = project
179681	c.region = region
179682	c.resource = resource
179683	c.regionsetlabelsrequest = regionsetlabelsrequest
179684	return c
179685}
179686
179687// RequestId sets the optional parameter "requestId": An optional
179688// request ID to identify requests. Specify a unique request ID so that
179689// if you must retry your request, the server will know to ignore the
179690// request if it has already been completed.
179691//
179692// For example, consider a situation where you make an initial request
179693// and the request times out. If you make the request again with the
179694// same request ID, the server can check if original operation with the
179695// same request ID was received, and if so, will ignore the second
179696// request. This prevents clients from accidentally creating duplicate
179697// commitments.
179698//
179699// The request ID must be a valid UUID with the exception that zero UUID
179700// is not supported (00000000-0000-0000-0000-000000000000).
179701func (c *VpnTunnelsSetLabelsCall) RequestId(requestId string) *VpnTunnelsSetLabelsCall {
179702	c.urlParams_.Set("requestId", requestId)
179703	return c
179704}
179705
179706// Fields allows partial responses to be retrieved. See
179707// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
179708// for more information.
179709func (c *VpnTunnelsSetLabelsCall) Fields(s ...googleapi.Field) *VpnTunnelsSetLabelsCall {
179710	c.urlParams_.Set("fields", googleapi.CombineFields(s))
179711	return c
179712}
179713
179714// Context sets the context to be used in this call's Do method. Any
179715// pending HTTP request will be aborted if the provided context is
179716// canceled.
179717func (c *VpnTunnelsSetLabelsCall) Context(ctx context.Context) *VpnTunnelsSetLabelsCall {
179718	c.ctx_ = ctx
179719	return c
179720}
179721
179722// Header returns an http.Header that can be modified by the caller to
179723// add HTTP headers to the request.
179724func (c *VpnTunnelsSetLabelsCall) Header() http.Header {
179725	if c.header_ == nil {
179726		c.header_ = make(http.Header)
179727	}
179728	return c.header_
179729}
179730
179731func (c *VpnTunnelsSetLabelsCall) doRequest(alt string) (*http.Response, error) {
179732	reqHeaders := make(http.Header)
179733	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
179734	for k, v := range c.header_ {
179735		reqHeaders[k] = v
179736	}
179737	reqHeaders.Set("User-Agent", c.s.userAgent())
179738	var body io.Reader = nil
179739	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
179740	if err != nil {
179741		return nil, err
179742	}
179743	reqHeaders.Set("Content-Type", "application/json")
179744	c.urlParams_.Set("alt", alt)
179745	c.urlParams_.Set("prettyPrint", "false")
179746	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnTunnels/{resource}/setLabels")
179747	urls += "?" + c.urlParams_.Encode()
179748	req, err := http.NewRequest("POST", urls, body)
179749	if err != nil {
179750		return nil, err
179751	}
179752	req.Header = reqHeaders
179753	googleapi.Expand(req.URL, map[string]string{
179754		"project":  c.project,
179755		"region":   c.region,
179756		"resource": c.resource,
179757	})
179758	return gensupport.SendRequest(c.ctx_, c.s.client, req)
179759}
179760
179761// Do executes the "compute.vpnTunnels.setLabels" call.
179762// Exactly one of *Operation or error will be non-nil. Any non-2xx
179763// status code is an error. Response headers are in either
179764// *Operation.ServerResponse.Header or (if a response was returned at
179765// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
179766// to check whether the returned error was because
179767// http.StatusNotModified was returned.
179768func (c *VpnTunnelsSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
179769	gensupport.SetOptions(c.urlParams_, opts...)
179770	res, err := c.doRequest("json")
179771	if res != nil && res.StatusCode == http.StatusNotModified {
179772		if res.Body != nil {
179773			res.Body.Close()
179774		}
179775		return nil, &googleapi.Error{
179776			Code:   res.StatusCode,
179777			Header: res.Header,
179778		}
179779	}
179780	if err != nil {
179781		return nil, err
179782	}
179783	defer googleapi.CloseBody(res)
179784	if err := googleapi.CheckResponse(res); err != nil {
179785		return nil, err
179786	}
179787	ret := &Operation{
179788		ServerResponse: googleapi.ServerResponse{
179789			Header:         res.Header,
179790			HTTPStatusCode: res.StatusCode,
179791		},
179792	}
179793	target := &ret
179794	if err := gensupport.DecodeResponse(target, res); err != nil {
179795		return nil, err
179796	}
179797	return ret, nil
179798	// {
179799	//   "description": "Sets the labels on a VpnTunnel. To learn more about labels, read the Labeling Resources documentation.",
179800	//   "httpMethod": "POST",
179801	//   "id": "compute.vpnTunnels.setLabels",
179802	//   "parameterOrder": [
179803	//     "project",
179804	//     "region",
179805	//     "resource"
179806	//   ],
179807	//   "parameters": {
179808	//     "project": {
179809	//       "description": "Project ID for this request.",
179810	//       "location": "path",
179811	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
179812	//       "required": true,
179813	//       "type": "string"
179814	//     },
179815	//     "region": {
179816	//       "description": "The region for this request.",
179817	//       "location": "path",
179818	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
179819	//       "required": true,
179820	//       "type": "string"
179821	//     },
179822	//     "requestId": {
179823	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
179824	//       "location": "query",
179825	//       "type": "string"
179826	//     },
179827	//     "resource": {
179828	//       "description": "Name or id of the resource for this request.",
179829	//       "location": "path",
179830	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
179831	//       "required": true,
179832	//       "type": "string"
179833	//     }
179834	//   },
179835	//   "path": "projects/{project}/regions/{region}/vpnTunnels/{resource}/setLabels",
179836	//   "request": {
179837	//     "$ref": "RegionSetLabelsRequest"
179838	//   },
179839	//   "response": {
179840	//     "$ref": "Operation"
179841	//   },
179842	//   "scopes": [
179843	//     "https://www.googleapis.com/auth/cloud-platform",
179844	//     "https://www.googleapis.com/auth/compute"
179845	//   ]
179846	// }
179847
179848}
179849
179850// method id "compute.vpnTunnels.testIamPermissions":
179851
179852type VpnTunnelsTestIamPermissionsCall struct {
179853	s                      *Service
179854	project                string
179855	region                 string
179856	resource               string
179857	testpermissionsrequest *TestPermissionsRequest
179858	urlParams_             gensupport.URLParams
179859	ctx_                   context.Context
179860	header_                http.Header
179861}
179862
179863// TestIamPermissions: Returns permissions that a caller has on the
179864// specified resource.
179865func (r *VpnTunnelsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *VpnTunnelsTestIamPermissionsCall {
179866	c := &VpnTunnelsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
179867	c.project = project
179868	c.region = region
179869	c.resource = resource
179870	c.testpermissionsrequest = testpermissionsrequest
179871	return c
179872}
179873
179874// Fields allows partial responses to be retrieved. See
179875// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
179876// for more information.
179877func (c *VpnTunnelsTestIamPermissionsCall) Fields(s ...googleapi.Field) *VpnTunnelsTestIamPermissionsCall {
179878	c.urlParams_.Set("fields", googleapi.CombineFields(s))
179879	return c
179880}
179881
179882// Context sets the context to be used in this call's Do method. Any
179883// pending HTTP request will be aborted if the provided context is
179884// canceled.
179885func (c *VpnTunnelsTestIamPermissionsCall) Context(ctx context.Context) *VpnTunnelsTestIamPermissionsCall {
179886	c.ctx_ = ctx
179887	return c
179888}
179889
179890// Header returns an http.Header that can be modified by the caller to
179891// add HTTP headers to the request.
179892func (c *VpnTunnelsTestIamPermissionsCall) Header() http.Header {
179893	if c.header_ == nil {
179894		c.header_ = make(http.Header)
179895	}
179896	return c.header_
179897}
179898
179899func (c *VpnTunnelsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
179900	reqHeaders := make(http.Header)
179901	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
179902	for k, v := range c.header_ {
179903		reqHeaders[k] = v
179904	}
179905	reqHeaders.Set("User-Agent", c.s.userAgent())
179906	var body io.Reader = nil
179907	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
179908	if err != nil {
179909		return nil, err
179910	}
179911	reqHeaders.Set("Content-Type", "application/json")
179912	c.urlParams_.Set("alt", alt)
179913	c.urlParams_.Set("prettyPrint", "false")
179914	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnTunnels/{resource}/testIamPermissions")
179915	urls += "?" + c.urlParams_.Encode()
179916	req, err := http.NewRequest("POST", urls, body)
179917	if err != nil {
179918		return nil, err
179919	}
179920	req.Header = reqHeaders
179921	googleapi.Expand(req.URL, map[string]string{
179922		"project":  c.project,
179923		"region":   c.region,
179924		"resource": c.resource,
179925	})
179926	return gensupport.SendRequest(c.ctx_, c.s.client, req)
179927}
179928
179929// Do executes the "compute.vpnTunnels.testIamPermissions" call.
179930// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
179931// non-2xx status code is an error. Response headers are in either
179932// *TestPermissionsResponse.ServerResponse.Header or (if a response was
179933// returned at all) in error.(*googleapi.Error).Header. Use
179934// googleapi.IsNotModified to check whether the returned error was
179935// because http.StatusNotModified was returned.
179936func (c *VpnTunnelsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
179937	gensupport.SetOptions(c.urlParams_, opts...)
179938	res, err := c.doRequest("json")
179939	if res != nil && res.StatusCode == http.StatusNotModified {
179940		if res.Body != nil {
179941			res.Body.Close()
179942		}
179943		return nil, &googleapi.Error{
179944			Code:   res.StatusCode,
179945			Header: res.Header,
179946		}
179947	}
179948	if err != nil {
179949		return nil, err
179950	}
179951	defer googleapi.CloseBody(res)
179952	if err := googleapi.CheckResponse(res); err != nil {
179953		return nil, err
179954	}
179955	ret := &TestPermissionsResponse{
179956		ServerResponse: googleapi.ServerResponse{
179957			Header:         res.Header,
179958			HTTPStatusCode: res.StatusCode,
179959		},
179960	}
179961	target := &ret
179962	if err := gensupport.DecodeResponse(target, res); err != nil {
179963		return nil, err
179964	}
179965	return ret, nil
179966	// {
179967	//   "description": "Returns permissions that a caller has on the specified resource.",
179968	//   "httpMethod": "POST",
179969	//   "id": "compute.vpnTunnels.testIamPermissions",
179970	//   "parameterOrder": [
179971	//     "project",
179972	//     "region",
179973	//     "resource"
179974	//   ],
179975	//   "parameters": {
179976	//     "project": {
179977	//       "description": "Project ID for this request.",
179978	//       "location": "path",
179979	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
179980	//       "required": true,
179981	//       "type": "string"
179982	//     },
179983	//     "region": {
179984	//       "description": "The name of the region for this request.",
179985	//       "location": "path",
179986	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
179987	//       "required": true,
179988	//       "type": "string"
179989	//     },
179990	//     "resource": {
179991	//       "description": "Name or id of the resource for this request.",
179992	//       "location": "path",
179993	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
179994	//       "required": true,
179995	//       "type": "string"
179996	//     }
179997	//   },
179998	//   "path": "projects/{project}/regions/{region}/vpnTunnels/{resource}/testIamPermissions",
179999	//   "request": {
180000	//     "$ref": "TestPermissionsRequest"
180001	//   },
180002	//   "response": {
180003	//     "$ref": "TestPermissionsResponse"
180004	//   },
180005	//   "scopes": [
180006	//     "https://www.googleapis.com/auth/cloud-platform",
180007	//     "https://www.googleapis.com/auth/compute",
180008	//     "https://www.googleapis.com/auth/compute.readonly"
180009	//   ]
180010	// }
180011
180012}
180013
180014// method id "compute.zoneOperations.delete":
180015
180016type ZoneOperationsDeleteCall struct {
180017	s          *Service
180018	project    string
180019	zone       string
180020	operation  string
180021	urlParams_ gensupport.URLParams
180022	ctx_       context.Context
180023	header_    http.Header
180024}
180025
180026// Delete: Deletes the specified zone-specific Operations resource.
180027// For details, see https://cloud.google.com/compute/docs/reference/latest/zoneOperations/delete
180028func (r *ZoneOperationsService) Delete(project string, zone string, operation string) *ZoneOperationsDeleteCall {
180029	c := &ZoneOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
180030	c.project = project
180031	c.zone = zone
180032	c.operation = operation
180033	return c
180034}
180035
180036// Fields allows partial responses to be retrieved. See
180037// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
180038// for more information.
180039func (c *ZoneOperationsDeleteCall) Fields(s ...googleapi.Field) *ZoneOperationsDeleteCall {
180040	c.urlParams_.Set("fields", googleapi.CombineFields(s))
180041	return c
180042}
180043
180044// Context sets the context to be used in this call's Do method. Any
180045// pending HTTP request will be aborted if the provided context is
180046// canceled.
180047func (c *ZoneOperationsDeleteCall) Context(ctx context.Context) *ZoneOperationsDeleteCall {
180048	c.ctx_ = ctx
180049	return c
180050}
180051
180052// Header returns an http.Header that can be modified by the caller to
180053// add HTTP headers to the request.
180054func (c *ZoneOperationsDeleteCall) Header() http.Header {
180055	if c.header_ == nil {
180056		c.header_ = make(http.Header)
180057	}
180058	return c.header_
180059}
180060
180061func (c *ZoneOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
180062	reqHeaders := make(http.Header)
180063	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
180064	for k, v := range c.header_ {
180065		reqHeaders[k] = v
180066	}
180067	reqHeaders.Set("User-Agent", c.s.userAgent())
180068	var body io.Reader = nil
180069	c.urlParams_.Set("alt", alt)
180070	c.urlParams_.Set("prettyPrint", "false")
180071	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/operations/{operation}")
180072	urls += "?" + c.urlParams_.Encode()
180073	req, err := http.NewRequest("DELETE", urls, body)
180074	if err != nil {
180075		return nil, err
180076	}
180077	req.Header = reqHeaders
180078	googleapi.Expand(req.URL, map[string]string{
180079		"project":   c.project,
180080		"zone":      c.zone,
180081		"operation": c.operation,
180082	})
180083	return gensupport.SendRequest(c.ctx_, c.s.client, req)
180084}
180085
180086// Do executes the "compute.zoneOperations.delete" call.
180087func (c *ZoneOperationsDeleteCall) Do(opts ...googleapi.CallOption) error {
180088	gensupport.SetOptions(c.urlParams_, opts...)
180089	res, err := c.doRequest("json")
180090	if err != nil {
180091		return err
180092	}
180093	defer googleapi.CloseBody(res)
180094	if err := googleapi.CheckResponse(res); err != nil {
180095		return err
180096	}
180097	return nil
180098	// {
180099	//   "description": "Deletes the specified zone-specific Operations resource.",
180100	//   "httpMethod": "DELETE",
180101	//   "id": "compute.zoneOperations.delete",
180102	//   "parameterOrder": [
180103	//     "project",
180104	//     "zone",
180105	//     "operation"
180106	//   ],
180107	//   "parameters": {
180108	//     "operation": {
180109	//       "description": "Name of the Operations resource to delete.",
180110	//       "location": "path",
180111	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
180112	//       "required": true,
180113	//       "type": "string"
180114	//     },
180115	//     "project": {
180116	//       "description": "Project ID for this request.",
180117	//       "location": "path",
180118	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
180119	//       "required": true,
180120	//       "type": "string"
180121	//     },
180122	//     "zone": {
180123	//       "description": "Name of the zone for this request.",
180124	//       "location": "path",
180125	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
180126	//       "required": true,
180127	//       "type": "string"
180128	//     }
180129	//   },
180130	//   "path": "projects/{project}/zones/{zone}/operations/{operation}",
180131	//   "scopes": [
180132	//     "https://www.googleapis.com/auth/cloud-platform",
180133	//     "https://www.googleapis.com/auth/compute"
180134	//   ]
180135	// }
180136
180137}
180138
180139// method id "compute.zoneOperations.get":
180140
180141type ZoneOperationsGetCall struct {
180142	s            *Service
180143	project      string
180144	zone         string
180145	operation    string
180146	urlParams_   gensupport.URLParams
180147	ifNoneMatch_ string
180148	ctx_         context.Context
180149	header_      http.Header
180150}
180151
180152// Get: Retrieves the specified zone-specific Operations resource.
180153// For details, see https://cloud.google.com/compute/docs/reference/latest/zoneOperations/get
180154func (r *ZoneOperationsService) Get(project string, zone string, operation string) *ZoneOperationsGetCall {
180155	c := &ZoneOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
180156	c.project = project
180157	c.zone = zone
180158	c.operation = operation
180159	return c
180160}
180161
180162// Fields allows partial responses to be retrieved. See
180163// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
180164// for more information.
180165func (c *ZoneOperationsGetCall) Fields(s ...googleapi.Field) *ZoneOperationsGetCall {
180166	c.urlParams_.Set("fields", googleapi.CombineFields(s))
180167	return c
180168}
180169
180170// IfNoneMatch sets the optional parameter which makes the operation
180171// fail if the object's ETag matches the given value. This is useful for
180172// getting updates only after the object has changed since the last
180173// request. Use googleapi.IsNotModified to check whether the response
180174// error from Do is the result of In-None-Match.
180175func (c *ZoneOperationsGetCall) IfNoneMatch(entityTag string) *ZoneOperationsGetCall {
180176	c.ifNoneMatch_ = entityTag
180177	return c
180178}
180179
180180// Context sets the context to be used in this call's Do method. Any
180181// pending HTTP request will be aborted if the provided context is
180182// canceled.
180183func (c *ZoneOperationsGetCall) Context(ctx context.Context) *ZoneOperationsGetCall {
180184	c.ctx_ = ctx
180185	return c
180186}
180187
180188// Header returns an http.Header that can be modified by the caller to
180189// add HTTP headers to the request.
180190func (c *ZoneOperationsGetCall) Header() http.Header {
180191	if c.header_ == nil {
180192		c.header_ = make(http.Header)
180193	}
180194	return c.header_
180195}
180196
180197func (c *ZoneOperationsGetCall) doRequest(alt string) (*http.Response, error) {
180198	reqHeaders := make(http.Header)
180199	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
180200	for k, v := range c.header_ {
180201		reqHeaders[k] = v
180202	}
180203	reqHeaders.Set("User-Agent", c.s.userAgent())
180204	if c.ifNoneMatch_ != "" {
180205		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
180206	}
180207	var body io.Reader = nil
180208	c.urlParams_.Set("alt", alt)
180209	c.urlParams_.Set("prettyPrint", "false")
180210	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/operations/{operation}")
180211	urls += "?" + c.urlParams_.Encode()
180212	req, err := http.NewRequest("GET", urls, body)
180213	if err != nil {
180214		return nil, err
180215	}
180216	req.Header = reqHeaders
180217	googleapi.Expand(req.URL, map[string]string{
180218		"project":   c.project,
180219		"zone":      c.zone,
180220		"operation": c.operation,
180221	})
180222	return gensupport.SendRequest(c.ctx_, c.s.client, req)
180223}
180224
180225// Do executes the "compute.zoneOperations.get" call.
180226// Exactly one of *Operation or error will be non-nil. Any non-2xx
180227// status code is an error. Response headers are in either
180228// *Operation.ServerResponse.Header or (if a response was returned at
180229// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
180230// to check whether the returned error was because
180231// http.StatusNotModified was returned.
180232func (c *ZoneOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
180233	gensupport.SetOptions(c.urlParams_, opts...)
180234	res, err := c.doRequest("json")
180235	if res != nil && res.StatusCode == http.StatusNotModified {
180236		if res.Body != nil {
180237			res.Body.Close()
180238		}
180239		return nil, &googleapi.Error{
180240			Code:   res.StatusCode,
180241			Header: res.Header,
180242		}
180243	}
180244	if err != nil {
180245		return nil, err
180246	}
180247	defer googleapi.CloseBody(res)
180248	if err := googleapi.CheckResponse(res); err != nil {
180249		return nil, err
180250	}
180251	ret := &Operation{
180252		ServerResponse: googleapi.ServerResponse{
180253			Header:         res.Header,
180254			HTTPStatusCode: res.StatusCode,
180255		},
180256	}
180257	target := &ret
180258	if err := gensupport.DecodeResponse(target, res); err != nil {
180259		return nil, err
180260	}
180261	return ret, nil
180262	// {
180263	//   "description": "Retrieves the specified zone-specific Operations resource.",
180264	//   "httpMethod": "GET",
180265	//   "id": "compute.zoneOperations.get",
180266	//   "parameterOrder": [
180267	//     "project",
180268	//     "zone",
180269	//     "operation"
180270	//   ],
180271	//   "parameters": {
180272	//     "operation": {
180273	//       "description": "Name of the Operations resource to return.",
180274	//       "location": "path",
180275	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
180276	//       "required": true,
180277	//       "type": "string"
180278	//     },
180279	//     "project": {
180280	//       "description": "Project ID for this request.",
180281	//       "location": "path",
180282	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
180283	//       "required": true,
180284	//       "type": "string"
180285	//     },
180286	//     "zone": {
180287	//       "description": "Name of the zone for this request.",
180288	//       "location": "path",
180289	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
180290	//       "required": true,
180291	//       "type": "string"
180292	//     }
180293	//   },
180294	//   "path": "projects/{project}/zones/{zone}/operations/{operation}",
180295	//   "response": {
180296	//     "$ref": "Operation"
180297	//   },
180298	//   "scopes": [
180299	//     "https://www.googleapis.com/auth/cloud-platform",
180300	//     "https://www.googleapis.com/auth/compute",
180301	//     "https://www.googleapis.com/auth/compute.readonly"
180302	//   ]
180303	// }
180304
180305}
180306
180307// method id "compute.zoneOperations.list":
180308
180309type ZoneOperationsListCall struct {
180310	s            *Service
180311	project      string
180312	zone         string
180313	urlParams_   gensupport.URLParams
180314	ifNoneMatch_ string
180315	ctx_         context.Context
180316	header_      http.Header
180317}
180318
180319// List: Retrieves a list of Operation resources contained within the
180320// specified zone.
180321// For details, see https://cloud.google.com/compute/docs/reference/latest/zoneOperations/list
180322func (r *ZoneOperationsService) List(project string, zone string) *ZoneOperationsListCall {
180323	c := &ZoneOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
180324	c.project = project
180325	c.zone = zone
180326	return c
180327}
180328
180329// Filter sets the optional parameter "filter": A filter expression that
180330// filters resources listed in the response. The expression must specify
180331// the field name, a comparison operator, and the value that you want to
180332// use for filtering. The value must be a string, a number, or a
180333// boolean. The comparison operator must be either `=`, `!=`, `>`, or
180334// `<`.
180335//
180336// For example, if you are filtering Compute Engine instances, you can
180337// exclude instances named `example-instance` by specifying `name !=
180338// example-instance`.
180339//
180340// You can also filter nested fields. For example, you could specify
180341// `scheduling.automaticRestart = false` to include instances only if
180342// they are not scheduled for automatic restarts. You can use filtering
180343// on nested fields to filter based on resource labels.
180344//
180345// To filter on multiple expressions, provide each separate expression
180346// within parentheses. For example: ``` (scheduling.automaticRestart =
180347// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
180348// is an `AND` expression. However, you can include `AND` and `OR`
180349// expressions explicitly. For example: ``` (cpuPlatform = "Intel
180350// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
180351// (scheduling.automaticRestart = true) ```
180352func (c *ZoneOperationsListCall) Filter(filter string) *ZoneOperationsListCall {
180353	c.urlParams_.Set("filter", filter)
180354	return c
180355}
180356
180357// MaxResults sets the optional parameter "maxResults": The maximum
180358// number of results per page that should be returned. If the number of
180359// available results is larger than `maxResults`, Compute Engine returns
180360// a `nextPageToken` that can be used to get the next page of results in
180361// subsequent list requests. Acceptable values are `0` to `500`,
180362// inclusive. (Default: `500`)
180363func (c *ZoneOperationsListCall) MaxResults(maxResults int64) *ZoneOperationsListCall {
180364	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
180365	return c
180366}
180367
180368// OrderBy sets the optional parameter "orderBy": Sorts list results by
180369// a certain order. By default, results are returned in alphanumerical
180370// order based on the resource name.
180371//
180372// You can also sort results in descending order based on the creation
180373// timestamp using `orderBy="creationTimestamp desc". This sorts
180374// results based on the `creationTimestamp` field in reverse
180375// chronological order (newest result first). Use this to sort resources
180376// like operations so that the newest operation is returned
180377// first.
180378//
180379// Currently, only sorting by `name` or `creationTimestamp desc` is
180380// supported.
180381func (c *ZoneOperationsListCall) OrderBy(orderBy string) *ZoneOperationsListCall {
180382	c.urlParams_.Set("orderBy", orderBy)
180383	return c
180384}
180385
180386// PageToken sets the optional parameter "pageToken": Specifies a page
180387// token to use. Set `pageToken` to the `nextPageToken` returned by a
180388// previous list request to get the next page of results.
180389func (c *ZoneOperationsListCall) PageToken(pageToken string) *ZoneOperationsListCall {
180390	c.urlParams_.Set("pageToken", pageToken)
180391	return c
180392}
180393
180394// ReturnPartialSuccess sets the optional parameter
180395// "returnPartialSuccess": Opt-in for partial success behavior which
180396// provides partial results in case of failure. The default value is
180397// false.
180398func (c *ZoneOperationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ZoneOperationsListCall {
180399	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
180400	return c
180401}
180402
180403// Fields allows partial responses to be retrieved. See
180404// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
180405// for more information.
180406func (c *ZoneOperationsListCall) Fields(s ...googleapi.Field) *ZoneOperationsListCall {
180407	c.urlParams_.Set("fields", googleapi.CombineFields(s))
180408	return c
180409}
180410
180411// IfNoneMatch sets the optional parameter which makes the operation
180412// fail if the object's ETag matches the given value. This is useful for
180413// getting updates only after the object has changed since the last
180414// request. Use googleapi.IsNotModified to check whether the response
180415// error from Do is the result of In-None-Match.
180416func (c *ZoneOperationsListCall) IfNoneMatch(entityTag string) *ZoneOperationsListCall {
180417	c.ifNoneMatch_ = entityTag
180418	return c
180419}
180420
180421// Context sets the context to be used in this call's Do method. Any
180422// pending HTTP request will be aborted if the provided context is
180423// canceled.
180424func (c *ZoneOperationsListCall) Context(ctx context.Context) *ZoneOperationsListCall {
180425	c.ctx_ = ctx
180426	return c
180427}
180428
180429// Header returns an http.Header that can be modified by the caller to
180430// add HTTP headers to the request.
180431func (c *ZoneOperationsListCall) Header() http.Header {
180432	if c.header_ == nil {
180433		c.header_ = make(http.Header)
180434	}
180435	return c.header_
180436}
180437
180438func (c *ZoneOperationsListCall) doRequest(alt string) (*http.Response, error) {
180439	reqHeaders := make(http.Header)
180440	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
180441	for k, v := range c.header_ {
180442		reqHeaders[k] = v
180443	}
180444	reqHeaders.Set("User-Agent", c.s.userAgent())
180445	if c.ifNoneMatch_ != "" {
180446		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
180447	}
180448	var body io.Reader = nil
180449	c.urlParams_.Set("alt", alt)
180450	c.urlParams_.Set("prettyPrint", "false")
180451	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/operations")
180452	urls += "?" + c.urlParams_.Encode()
180453	req, err := http.NewRequest("GET", urls, body)
180454	if err != nil {
180455		return nil, err
180456	}
180457	req.Header = reqHeaders
180458	googleapi.Expand(req.URL, map[string]string{
180459		"project": c.project,
180460		"zone":    c.zone,
180461	})
180462	return gensupport.SendRequest(c.ctx_, c.s.client, req)
180463}
180464
180465// Do executes the "compute.zoneOperations.list" call.
180466// Exactly one of *OperationList or error will be non-nil. Any non-2xx
180467// status code is an error. Response headers are in either
180468// *OperationList.ServerResponse.Header or (if a response was returned
180469// at all) in error.(*googleapi.Error).Header. Use
180470// googleapi.IsNotModified to check whether the returned error was
180471// because http.StatusNotModified was returned.
180472func (c *ZoneOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) {
180473	gensupport.SetOptions(c.urlParams_, opts...)
180474	res, err := c.doRequest("json")
180475	if res != nil && res.StatusCode == http.StatusNotModified {
180476		if res.Body != nil {
180477			res.Body.Close()
180478		}
180479		return nil, &googleapi.Error{
180480			Code:   res.StatusCode,
180481			Header: res.Header,
180482		}
180483	}
180484	if err != nil {
180485		return nil, err
180486	}
180487	defer googleapi.CloseBody(res)
180488	if err := googleapi.CheckResponse(res); err != nil {
180489		return nil, err
180490	}
180491	ret := &OperationList{
180492		ServerResponse: googleapi.ServerResponse{
180493			Header:         res.Header,
180494			HTTPStatusCode: res.StatusCode,
180495		},
180496	}
180497	target := &ret
180498	if err := gensupport.DecodeResponse(target, res); err != nil {
180499		return nil, err
180500	}
180501	return ret, nil
180502	// {
180503	//   "description": "Retrieves a list of Operation resources contained within the specified zone.",
180504	//   "httpMethod": "GET",
180505	//   "id": "compute.zoneOperations.list",
180506	//   "parameterOrder": [
180507	//     "project",
180508	//     "zone"
180509	//   ],
180510	//   "parameters": {
180511	//     "filter": {
180512	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
180513	//       "location": "query",
180514	//       "type": "string"
180515	//     },
180516	//     "maxResults": {
180517	//       "default": "500",
180518	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
180519	//       "format": "uint32",
180520	//       "location": "query",
180521	//       "minimum": "0",
180522	//       "type": "integer"
180523	//     },
180524	//     "orderBy": {
180525	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
180526	//       "location": "query",
180527	//       "type": "string"
180528	//     },
180529	//     "pageToken": {
180530	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
180531	//       "location": "query",
180532	//       "type": "string"
180533	//     },
180534	//     "project": {
180535	//       "description": "Project ID for this request.",
180536	//       "location": "path",
180537	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
180538	//       "required": true,
180539	//       "type": "string"
180540	//     },
180541	//     "returnPartialSuccess": {
180542	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
180543	//       "location": "query",
180544	//       "type": "boolean"
180545	//     },
180546	//     "zone": {
180547	//       "description": "Name of the zone for request.",
180548	//       "location": "path",
180549	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
180550	//       "required": true,
180551	//       "type": "string"
180552	//     }
180553	//   },
180554	//   "path": "projects/{project}/zones/{zone}/operations",
180555	//   "response": {
180556	//     "$ref": "OperationList"
180557	//   },
180558	//   "scopes": [
180559	//     "https://www.googleapis.com/auth/cloud-platform",
180560	//     "https://www.googleapis.com/auth/compute",
180561	//     "https://www.googleapis.com/auth/compute.readonly"
180562	//   ]
180563	// }
180564
180565}
180566
180567// Pages invokes f for each page of results.
180568// A non-nil error returned from f will halt the iteration.
180569// The provided context supersedes any context provided to the Context method.
180570func (c *ZoneOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error {
180571	c.ctx_ = ctx
180572	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
180573	for {
180574		x, err := c.Do()
180575		if err != nil {
180576			return err
180577		}
180578		if err := f(x); err != nil {
180579			return err
180580		}
180581		if x.NextPageToken == "" {
180582			return nil
180583		}
180584		c.PageToken(x.NextPageToken)
180585	}
180586}
180587
180588// method id "compute.zoneOperations.wait":
180589
180590type ZoneOperationsWaitCall struct {
180591	s          *Service
180592	project    string
180593	zone       string
180594	operation  string
180595	urlParams_ gensupport.URLParams
180596	ctx_       context.Context
180597	header_    http.Header
180598}
180599
180600// Wait: Waits for the specified Operation resource to return as `DONE`
180601// or for the request to approach the 2 minute deadline, and retrieves
180602// the specified Operation resource. This method differs from the `GET`
180603// method in that it waits for no more than the default deadline (2
180604// minutes) and then returns the current state of the operation, which
180605// might be `DONE` or still in progress.
180606//
180607// This method is called on a best-effort basis. Specifically:
180608// - In uncommon cases, when the server is overloaded, the request might
180609// return before the default deadline is reached, or might return after
180610// zero seconds.
180611// - If the default deadline is reached, there is no guarantee that the
180612// operation is actually done when the method returns. Be prepared to
180613// retry if the operation is not `DONE`.
180614func (r *ZoneOperationsService) Wait(project string, zone string, operation string) *ZoneOperationsWaitCall {
180615	c := &ZoneOperationsWaitCall{s: r.s, urlParams_: make(gensupport.URLParams)}
180616	c.project = project
180617	c.zone = zone
180618	c.operation = operation
180619	return c
180620}
180621
180622// Fields allows partial responses to be retrieved. See
180623// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
180624// for more information.
180625func (c *ZoneOperationsWaitCall) Fields(s ...googleapi.Field) *ZoneOperationsWaitCall {
180626	c.urlParams_.Set("fields", googleapi.CombineFields(s))
180627	return c
180628}
180629
180630// Context sets the context to be used in this call's Do method. Any
180631// pending HTTP request will be aborted if the provided context is
180632// canceled.
180633func (c *ZoneOperationsWaitCall) Context(ctx context.Context) *ZoneOperationsWaitCall {
180634	c.ctx_ = ctx
180635	return c
180636}
180637
180638// Header returns an http.Header that can be modified by the caller to
180639// add HTTP headers to the request.
180640func (c *ZoneOperationsWaitCall) Header() http.Header {
180641	if c.header_ == nil {
180642		c.header_ = make(http.Header)
180643	}
180644	return c.header_
180645}
180646
180647func (c *ZoneOperationsWaitCall) doRequest(alt string) (*http.Response, error) {
180648	reqHeaders := make(http.Header)
180649	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
180650	for k, v := range c.header_ {
180651		reqHeaders[k] = v
180652	}
180653	reqHeaders.Set("User-Agent", c.s.userAgent())
180654	var body io.Reader = nil
180655	c.urlParams_.Set("alt", alt)
180656	c.urlParams_.Set("prettyPrint", "false")
180657	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/operations/{operation}/wait")
180658	urls += "?" + c.urlParams_.Encode()
180659	req, err := http.NewRequest("POST", urls, body)
180660	if err != nil {
180661		return nil, err
180662	}
180663	req.Header = reqHeaders
180664	googleapi.Expand(req.URL, map[string]string{
180665		"project":   c.project,
180666		"zone":      c.zone,
180667		"operation": c.operation,
180668	})
180669	return gensupport.SendRequest(c.ctx_, c.s.client, req)
180670}
180671
180672// Do executes the "compute.zoneOperations.wait" call.
180673// Exactly one of *Operation or error will be non-nil. Any non-2xx
180674// status code is an error. Response headers are in either
180675// *Operation.ServerResponse.Header or (if a response was returned at
180676// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
180677// to check whether the returned error was because
180678// http.StatusNotModified was returned.
180679func (c *ZoneOperationsWaitCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
180680	gensupport.SetOptions(c.urlParams_, opts...)
180681	res, err := c.doRequest("json")
180682	if res != nil && res.StatusCode == http.StatusNotModified {
180683		if res.Body != nil {
180684			res.Body.Close()
180685		}
180686		return nil, &googleapi.Error{
180687			Code:   res.StatusCode,
180688			Header: res.Header,
180689		}
180690	}
180691	if err != nil {
180692		return nil, err
180693	}
180694	defer googleapi.CloseBody(res)
180695	if err := googleapi.CheckResponse(res); err != nil {
180696		return nil, err
180697	}
180698	ret := &Operation{
180699		ServerResponse: googleapi.ServerResponse{
180700			Header:         res.Header,
180701			HTTPStatusCode: res.StatusCode,
180702		},
180703	}
180704	target := &ret
180705	if err := gensupport.DecodeResponse(target, res); err != nil {
180706		return nil, err
180707	}
180708	return ret, nil
180709	// {
180710	//   "description": "Waits for the specified Operation resource to return as `DONE` or for the request to approach the 2 minute deadline, and retrieves the specified Operation resource. This method differs from the `GET` method in that it waits for no more than the default deadline (2 minutes) and then returns the current state of the operation, which might be `DONE` or still in progress.\n\nThis method is called on a best-effort basis. Specifically:  \n- In uncommon cases, when the server is overloaded, the request might return before the default deadline is reached, or might return after zero seconds. \n- If the default deadline is reached, there is no guarantee that the operation is actually done when the method returns. Be prepared to retry if the operation is not `DONE`.",
180711	//   "httpMethod": "POST",
180712	//   "id": "compute.zoneOperations.wait",
180713	//   "parameterOrder": [
180714	//     "project",
180715	//     "zone",
180716	//     "operation"
180717	//   ],
180718	//   "parameters": {
180719	//     "operation": {
180720	//       "description": "Name of the Operations resource to return.",
180721	//       "location": "path",
180722	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
180723	//       "required": true,
180724	//       "type": "string"
180725	//     },
180726	//     "project": {
180727	//       "description": "Project ID for this request.",
180728	//       "location": "path",
180729	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
180730	//       "required": true,
180731	//       "type": "string"
180732	//     },
180733	//     "zone": {
180734	//       "description": "Name of the zone for this request.",
180735	//       "location": "path",
180736	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
180737	//       "required": true,
180738	//       "type": "string"
180739	//     }
180740	//   },
180741	//   "path": "projects/{project}/zones/{zone}/operations/{operation}/wait",
180742	//   "response": {
180743	//     "$ref": "Operation"
180744	//   },
180745	//   "scopes": [
180746	//     "https://www.googleapis.com/auth/cloud-platform",
180747	//     "https://www.googleapis.com/auth/compute",
180748	//     "https://www.googleapis.com/auth/compute.readonly"
180749	//   ]
180750	// }
180751
180752}
180753
180754// method id "compute.zones.get":
180755
180756type ZonesGetCall struct {
180757	s            *Service
180758	project      string
180759	zone         string
180760	urlParams_   gensupport.URLParams
180761	ifNoneMatch_ string
180762	ctx_         context.Context
180763	header_      http.Header
180764}
180765
180766// Get: Returns the specified Zone resource. Gets a list of available
180767// zones by making a list() request.
180768// For details, see https://cloud.google.com/compute/docs/reference/latest/zones/get
180769func (r *ZonesService) Get(project string, zone string) *ZonesGetCall {
180770	c := &ZonesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
180771	c.project = project
180772	c.zone = zone
180773	return c
180774}
180775
180776// Fields allows partial responses to be retrieved. See
180777// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
180778// for more information.
180779func (c *ZonesGetCall) Fields(s ...googleapi.Field) *ZonesGetCall {
180780	c.urlParams_.Set("fields", googleapi.CombineFields(s))
180781	return c
180782}
180783
180784// IfNoneMatch sets the optional parameter which makes the operation
180785// fail if the object's ETag matches the given value. This is useful for
180786// getting updates only after the object has changed since the last
180787// request. Use googleapi.IsNotModified to check whether the response
180788// error from Do is the result of In-None-Match.
180789func (c *ZonesGetCall) IfNoneMatch(entityTag string) *ZonesGetCall {
180790	c.ifNoneMatch_ = entityTag
180791	return c
180792}
180793
180794// Context sets the context to be used in this call's Do method. Any
180795// pending HTTP request will be aborted if the provided context is
180796// canceled.
180797func (c *ZonesGetCall) Context(ctx context.Context) *ZonesGetCall {
180798	c.ctx_ = ctx
180799	return c
180800}
180801
180802// Header returns an http.Header that can be modified by the caller to
180803// add HTTP headers to the request.
180804func (c *ZonesGetCall) Header() http.Header {
180805	if c.header_ == nil {
180806		c.header_ = make(http.Header)
180807	}
180808	return c.header_
180809}
180810
180811func (c *ZonesGetCall) doRequest(alt string) (*http.Response, error) {
180812	reqHeaders := make(http.Header)
180813	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
180814	for k, v := range c.header_ {
180815		reqHeaders[k] = v
180816	}
180817	reqHeaders.Set("User-Agent", c.s.userAgent())
180818	if c.ifNoneMatch_ != "" {
180819		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
180820	}
180821	var body io.Reader = nil
180822	c.urlParams_.Set("alt", alt)
180823	c.urlParams_.Set("prettyPrint", "false")
180824	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}")
180825	urls += "?" + c.urlParams_.Encode()
180826	req, err := http.NewRequest("GET", urls, body)
180827	if err != nil {
180828		return nil, err
180829	}
180830	req.Header = reqHeaders
180831	googleapi.Expand(req.URL, map[string]string{
180832		"project": c.project,
180833		"zone":    c.zone,
180834	})
180835	return gensupport.SendRequest(c.ctx_, c.s.client, req)
180836}
180837
180838// Do executes the "compute.zones.get" call.
180839// Exactly one of *Zone or error will be non-nil. Any non-2xx status
180840// code is an error. Response headers are in either
180841// *Zone.ServerResponse.Header or (if a response was returned at all) in
180842// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
180843// whether the returned error was because http.StatusNotModified was
180844// returned.
180845func (c *ZonesGetCall) Do(opts ...googleapi.CallOption) (*Zone, error) {
180846	gensupport.SetOptions(c.urlParams_, opts...)
180847	res, err := c.doRequest("json")
180848	if res != nil && res.StatusCode == http.StatusNotModified {
180849		if res.Body != nil {
180850			res.Body.Close()
180851		}
180852		return nil, &googleapi.Error{
180853			Code:   res.StatusCode,
180854			Header: res.Header,
180855		}
180856	}
180857	if err != nil {
180858		return nil, err
180859	}
180860	defer googleapi.CloseBody(res)
180861	if err := googleapi.CheckResponse(res); err != nil {
180862		return nil, err
180863	}
180864	ret := &Zone{
180865		ServerResponse: googleapi.ServerResponse{
180866			Header:         res.Header,
180867			HTTPStatusCode: res.StatusCode,
180868		},
180869	}
180870	target := &ret
180871	if err := gensupport.DecodeResponse(target, res); err != nil {
180872		return nil, err
180873	}
180874	return ret, nil
180875	// {
180876	//   "description": "Returns the specified Zone resource. Gets a list of available zones by making a list() request.",
180877	//   "httpMethod": "GET",
180878	//   "id": "compute.zones.get",
180879	//   "parameterOrder": [
180880	//     "project",
180881	//     "zone"
180882	//   ],
180883	//   "parameters": {
180884	//     "project": {
180885	//       "description": "Project ID for this request.",
180886	//       "location": "path",
180887	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
180888	//       "required": true,
180889	//       "type": "string"
180890	//     },
180891	//     "zone": {
180892	//       "description": "Name of the zone resource to return.",
180893	//       "location": "path",
180894	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
180895	//       "required": true,
180896	//       "type": "string"
180897	//     }
180898	//   },
180899	//   "path": "projects/{project}/zones/{zone}",
180900	//   "response": {
180901	//     "$ref": "Zone"
180902	//   },
180903	//   "scopes": [
180904	//     "https://www.googleapis.com/auth/cloud-platform",
180905	//     "https://www.googleapis.com/auth/compute",
180906	//     "https://www.googleapis.com/auth/compute.readonly"
180907	//   ]
180908	// }
180909
180910}
180911
180912// method id "compute.zones.list":
180913
180914type ZonesListCall struct {
180915	s            *Service
180916	project      string
180917	urlParams_   gensupport.URLParams
180918	ifNoneMatch_ string
180919	ctx_         context.Context
180920	header_      http.Header
180921}
180922
180923// List: Retrieves the list of Zone resources available to the specified
180924// project.
180925// For details, see https://cloud.google.com/compute/docs/reference/latest/zones/list
180926func (r *ZonesService) List(project string) *ZonesListCall {
180927	c := &ZonesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
180928	c.project = project
180929	return c
180930}
180931
180932// Filter sets the optional parameter "filter": A filter expression that
180933// filters resources listed in the response. The expression must specify
180934// the field name, a comparison operator, and the value that you want to
180935// use for filtering. The value must be a string, a number, or a
180936// boolean. The comparison operator must be either `=`, `!=`, `>`, or
180937// `<`.
180938//
180939// For example, if you are filtering Compute Engine instances, you can
180940// exclude instances named `example-instance` by specifying `name !=
180941// example-instance`.
180942//
180943// You can also filter nested fields. For example, you could specify
180944// `scheduling.automaticRestart = false` to include instances only if
180945// they are not scheduled for automatic restarts. You can use filtering
180946// on nested fields to filter based on resource labels.
180947//
180948// To filter on multiple expressions, provide each separate expression
180949// within parentheses. For example: ``` (scheduling.automaticRestart =
180950// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
180951// is an `AND` expression. However, you can include `AND` and `OR`
180952// expressions explicitly. For example: ``` (cpuPlatform = "Intel
180953// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
180954// (scheduling.automaticRestart = true) ```
180955func (c *ZonesListCall) Filter(filter string) *ZonesListCall {
180956	c.urlParams_.Set("filter", filter)
180957	return c
180958}
180959
180960// MaxResults sets the optional parameter "maxResults": The maximum
180961// number of results per page that should be returned. If the number of
180962// available results is larger than `maxResults`, Compute Engine returns
180963// a `nextPageToken` that can be used to get the next page of results in
180964// subsequent list requests. Acceptable values are `0` to `500`,
180965// inclusive. (Default: `500`)
180966func (c *ZonesListCall) MaxResults(maxResults int64) *ZonesListCall {
180967	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
180968	return c
180969}
180970
180971// OrderBy sets the optional parameter "orderBy": Sorts list results by
180972// a certain order. By default, results are returned in alphanumerical
180973// order based on the resource name.
180974//
180975// You can also sort results in descending order based on the creation
180976// timestamp using `orderBy="creationTimestamp desc". This sorts
180977// results based on the `creationTimestamp` field in reverse
180978// chronological order (newest result first). Use this to sort resources
180979// like operations so that the newest operation is returned
180980// first.
180981//
180982// Currently, only sorting by `name` or `creationTimestamp desc` is
180983// supported.
180984func (c *ZonesListCall) OrderBy(orderBy string) *ZonesListCall {
180985	c.urlParams_.Set("orderBy", orderBy)
180986	return c
180987}
180988
180989// PageToken sets the optional parameter "pageToken": Specifies a page
180990// token to use. Set `pageToken` to the `nextPageToken` returned by a
180991// previous list request to get the next page of results.
180992func (c *ZonesListCall) PageToken(pageToken string) *ZonesListCall {
180993	c.urlParams_.Set("pageToken", pageToken)
180994	return c
180995}
180996
180997// ReturnPartialSuccess sets the optional parameter
180998// "returnPartialSuccess": Opt-in for partial success behavior which
180999// provides partial results in case of failure. The default value is
181000// false.
181001func (c *ZonesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ZonesListCall {
181002	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
181003	return c
181004}
181005
181006// Fields allows partial responses to be retrieved. See
181007// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
181008// for more information.
181009func (c *ZonesListCall) Fields(s ...googleapi.Field) *ZonesListCall {
181010	c.urlParams_.Set("fields", googleapi.CombineFields(s))
181011	return c
181012}
181013
181014// IfNoneMatch sets the optional parameter which makes the operation
181015// fail if the object's ETag matches the given value. This is useful for
181016// getting updates only after the object has changed since the last
181017// request. Use googleapi.IsNotModified to check whether the response
181018// error from Do is the result of In-None-Match.
181019func (c *ZonesListCall) IfNoneMatch(entityTag string) *ZonesListCall {
181020	c.ifNoneMatch_ = entityTag
181021	return c
181022}
181023
181024// Context sets the context to be used in this call's Do method. Any
181025// pending HTTP request will be aborted if the provided context is
181026// canceled.
181027func (c *ZonesListCall) Context(ctx context.Context) *ZonesListCall {
181028	c.ctx_ = ctx
181029	return c
181030}
181031
181032// Header returns an http.Header that can be modified by the caller to
181033// add HTTP headers to the request.
181034func (c *ZonesListCall) Header() http.Header {
181035	if c.header_ == nil {
181036		c.header_ = make(http.Header)
181037	}
181038	return c.header_
181039}
181040
181041func (c *ZonesListCall) doRequest(alt string) (*http.Response, error) {
181042	reqHeaders := make(http.Header)
181043	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
181044	for k, v := range c.header_ {
181045		reqHeaders[k] = v
181046	}
181047	reqHeaders.Set("User-Agent", c.s.userAgent())
181048	if c.ifNoneMatch_ != "" {
181049		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
181050	}
181051	var body io.Reader = nil
181052	c.urlParams_.Set("alt", alt)
181053	c.urlParams_.Set("prettyPrint", "false")
181054	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones")
181055	urls += "?" + c.urlParams_.Encode()
181056	req, err := http.NewRequest("GET", urls, body)
181057	if err != nil {
181058		return nil, err
181059	}
181060	req.Header = reqHeaders
181061	googleapi.Expand(req.URL, map[string]string{
181062		"project": c.project,
181063	})
181064	return gensupport.SendRequest(c.ctx_, c.s.client, req)
181065}
181066
181067// Do executes the "compute.zones.list" call.
181068// Exactly one of *ZoneList or error will be non-nil. Any non-2xx status
181069// code is an error. Response headers are in either
181070// *ZoneList.ServerResponse.Header or (if a response was returned at
181071// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
181072// to check whether the returned error was because
181073// http.StatusNotModified was returned.
181074func (c *ZonesListCall) Do(opts ...googleapi.CallOption) (*ZoneList, error) {
181075	gensupport.SetOptions(c.urlParams_, opts...)
181076	res, err := c.doRequest("json")
181077	if res != nil && res.StatusCode == http.StatusNotModified {
181078		if res.Body != nil {
181079			res.Body.Close()
181080		}
181081		return nil, &googleapi.Error{
181082			Code:   res.StatusCode,
181083			Header: res.Header,
181084		}
181085	}
181086	if err != nil {
181087		return nil, err
181088	}
181089	defer googleapi.CloseBody(res)
181090	if err := googleapi.CheckResponse(res); err != nil {
181091		return nil, err
181092	}
181093	ret := &ZoneList{
181094		ServerResponse: googleapi.ServerResponse{
181095			Header:         res.Header,
181096			HTTPStatusCode: res.StatusCode,
181097		},
181098	}
181099	target := &ret
181100	if err := gensupport.DecodeResponse(target, res); err != nil {
181101		return nil, err
181102	}
181103	return ret, nil
181104	// {
181105	//   "description": "Retrieves the list of Zone resources available to the specified project.",
181106	//   "httpMethod": "GET",
181107	//   "id": "compute.zones.list",
181108	//   "parameterOrder": [
181109	//     "project"
181110	//   ],
181111	//   "parameters": {
181112	//     "filter": {
181113	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
181114	//       "location": "query",
181115	//       "type": "string"
181116	//     },
181117	//     "maxResults": {
181118	//       "default": "500",
181119	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
181120	//       "format": "uint32",
181121	//       "location": "query",
181122	//       "minimum": "0",
181123	//       "type": "integer"
181124	//     },
181125	//     "orderBy": {
181126	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
181127	//       "location": "query",
181128	//       "type": "string"
181129	//     },
181130	//     "pageToken": {
181131	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
181132	//       "location": "query",
181133	//       "type": "string"
181134	//     },
181135	//     "project": {
181136	//       "description": "Project ID for this request.",
181137	//       "location": "path",
181138	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
181139	//       "required": true,
181140	//       "type": "string"
181141	//     },
181142	//     "returnPartialSuccess": {
181143	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
181144	//       "location": "query",
181145	//       "type": "boolean"
181146	//     }
181147	//   },
181148	//   "path": "projects/{project}/zones",
181149	//   "response": {
181150	//     "$ref": "ZoneList"
181151	//   },
181152	//   "scopes": [
181153	//     "https://www.googleapis.com/auth/cloud-platform",
181154	//     "https://www.googleapis.com/auth/compute",
181155	//     "https://www.googleapis.com/auth/compute.readonly"
181156	//   ]
181157	// }
181158
181159}
181160
181161// Pages invokes f for each page of results.
181162// A non-nil error returned from f will halt the iteration.
181163// The provided context supersedes any context provided to the Context method.
181164func (c *ZonesListCall) Pages(ctx context.Context, f func(*ZoneList) error) error {
181165	c.ctx_ = ctx
181166	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
181167	for {
181168		x, err := c.Do()
181169		if err != nil {
181170			return err
181171		}
181172		if err := f(x); err != nil {
181173			return err
181174		}
181175		if x.NextPageToken == "" {
181176			return nil
181177		}
181178		c.PageToken(x.NextPageToken)
181179	}
181180}
181181